คำถามติดแท็ก bash

Bash (Bourne-Again SHell) เป็นเชลล์ที่ใช้ในอินเตอร์เฟสบรรทัดคำสั่งของ Ubuntu ตามค่าเริ่มต้น


2
จะทำให้การเติมข้อความอัตโนมัติของเทอร์มินัลเกิดขึ้นเมื่อมีหลายไฟล์ / ไดเรกทอรีได้อย่างไร?
หากฉันมีหลายไดเรกทอรีเช่น: afoo abar บางครั้งเทอร์มินัลของฉันจะปฏิเสธการเติมข้อความอัตโนมัติเมื่อฉันกดแท็บ (เช่น "cd a" ตามด้วยแท็บ) แล้วพิมพ์รายการไดเรกทอรีแทน บางครั้งมันก็ส่งเสียงที่ดังและน่ารำคาญ แนวคิดใดที่จะทำให้การเติมข้อความอัตโนมัติในกรณีเช่นนี้? เช่นสามารถแสดง abar ก่อนจากนั้น afoo ถ้าฉันกด tab อีกครั้ง ฉันเห็นกรณีนี้เป็นใน windows หรือ applciation บางอย่างใน Ubuntu

4
วิธีใช้ / dev / (u) สุ่ม
ฉันจะใช้/dev/(u)randomบน Ubuntu หรือระบบ * nix ใด ๆ ได้อย่างไร? ฉันลองมัน แต่มันบอกว่าปฏิเสธการอนุญาต หมายเหตุ: ฉันพยายามเป็นรูทด้วย /dev/(u)random sudo /dev/(u)random sudo -s; /dev/(u)random
32 kernel  bash 

3
วิธี grep 2 หรือ 3 บรรทัดหนึ่งมีข้อความที่ฉันต้องการและอื่น ๆ ด้านล่างหรือไม่
นี่เป็นภาพรวมของบันทึกข้อผิดพลาด: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message com.rabbitmq.client.AlreadyClosedException: clean connection shutdown; reason: Attempt to use closed channel at com.rabbitmq.client.impl.AMQChannel.ensureIsOpen(AMQChannel.java:195) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:222) at com.rabbitmq.client.impl.AMQChannel.rpc(AMQChannel.java:208) at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:139) at com.rabbitmq.client.impl.ChannelN.basicGet(ChannelN.java:645) ฉันทำคำสั่งต่อไปนี้: cat foo.log | grep ERROR เพื่อรับ OP เป็น: 06:16:29,933 ERROR EmailRMManager$:45 - Exception In get Message ฉันควรใช้คำสั่งอะไรเพื่อให้ได้ผลลัพธ์เป็น 06:16:29,933 ERROR EmailRMManager$:45 …

2
คำสั่ง bash สำหรับแต่ละไฟล์ในโฟลเดอร์
ฉันมีชุดของไฟล์ที่ฉันต้องการใช้คำสั่งเดียวกันและผลลัพธ์ควรมีชื่อเดียวกับไฟล์ประมวลผล แต่มีนามสกุลต่างกัน ขณะนี้ฉันกำลังเปลี่ยนชื่อ /my/data/Andrew.doc เป็น /my/data/Andrew.txt ฉันต้องการทำเช่นนี้กับไฟล์. doc ทั้งหมดจากโฟลเดอร์ / my / data / และเพื่อคงชื่อไว้ ฉันลองหลายรุ่นแล้ว แต่ฉันคิดว่าฉันมีบางอย่างผิดปกติในไวยากรณ์เนื่องจากฉันใหม่กับ linux


3
การซ่อนเอาต์พุตของคำสั่ง
ฉันมีสคริปต์ที่ตรวจสอบว่ามีการติดตั้งแพคเกจหรือไม่และไม่ว่าจะใช้พอร์ต 8080 โดยกระบวนการเฉพาะหรือไม่ ฉันไม่เคยมีประสบการณ์กับทุบตีเลยดังนั้นฉันจึงทำสิ่งนี้: if dpkg -s net-tools; then if netstat -tlpn | grep 8080 | grep java; then echo "Shut down server before executing this script" exit fi else echo "If the server is running please shut it down before continuing with the execution of this script" fi # …
31 bash  scripts 

5
ฉันจะตั้งค่าไฟล์. bashrc ไฟล์เดียวสำหรับผู้ใช้หลายคนได้อย่างไร
ในระหว่างการทำงานของฉันฉันต้องเพิ่มคำสั่ง alias อย่างต่อเนื่องใน bashrc คำสั่งเหล่านั้นส่วนใหญ่จะต้องถูกเรียกใช้โดยผู้ใช้รายอื่น มีวิธีใดบ้างที่ฉันสามารถเพิ่มคำสั่ง alias ไปยัง bashrc จากแหล่งภายนอก?
30 bash 

2
ทำไมแหล่งเริ่มต้น ~ / .profile ของ Ubuntu ถึง / /bashrc
นี่คือเนื้อหาของหุ้น~/.profileที่มาพร้อมกับ 13.10 ของฉัน (ลบบรรทัดที่มีความคิดเห็น): if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi สิ่งนี้สืบทอดมาจาก Debian แต่ทำไม Canonical จึงตัดสินใจเก็บไว้ เท่าที่ฉันรู้มันไม่ใช่วิธีมาตรฐาน * และฉันได้เห็นระบบต่าง ๆ ที่สิ่งนี้ไม่ได้เกิดขึ้นดังนั้นฉันคิดว่าพวกเขาต้องมีเหตุผลที่ดี สิ่งนี้อาจทำให้เกิดพฤติกรรมที่ไม่คาดคิดเมื่อใช้งานเชลล์ล็อกอิน (เช่นเมื่อ sshing เข้าสู่เครื่องเป็นต้น) ซึ่งผู้ใช้ไม่คาดว่าจะได้รับ~/.bashrcแหล่งที่มา ประโยชน์อย่างเดียวที่ฉันคิดได้คือไม่สับสนผู้ใช้กับไฟล์เริ่มต้นจำนวนมากและอนุญาตให้แก้ไขโดย.bashrcลำพังและอ่านแบบนั้นโดยไม่คำนึงถึงชนิดของเชลล์ อย่างไรก็ตามนั่นเป็นประโยชน์ที่น่าสงสัยเนื่องจากมักจะมีประโยชน์ในการตั้งค่าที่แตกต่างกันสำหรับการเข้าสู่ระบบและสำหรับเชลล์แบบอินเทอร์แอคทีฟและสิ่งนี้จะบล็อกคุณจากการทำเช่นนั้น นอกจากนี้เปลือกล็อกอินมักจะไม่ทำงานในสภาพแวดล้อมแบบกราฟิกและอาจทำให้เกิดข้อผิดพลาดและคำเตือนและปัญหา (โอ้ฉัน!) ขึ้นอยู่กับสิ่งที่คุณตั้งไว้ในไฟล์เหล่านั้น เหตุใด …
30 bash  bashrc  .profile  design 

5
กำลังลบโฟลเดอร์ชื่อ ~
นี่คือผลลัพธ์ของ ls -l ls -l total 53484 drwxr-xr-x 3 root root 4096 2011-02-10 05:59 ~ -rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar -rw-r--r-- 1 root root 384035 2011-02-15 05:33 jobsLog.out ฉันทำไม่ได้rm -rf ~ เพราะจะลบไดเรกทอรีบ้านของฉัน ฉันควรทำอย่างไร? มันไม่ใช่ปัญหาสำหรับฉัน แต่เป็นเพียงอาการปวดตา
30 bash  rm 

4
เรียกใช้คำสั่งที่ต้องใช้ sudo หลังจากเวลาผ่านไป
ฉันมักจะทำ sleep 4h; command เพื่อรันคำสั่งหลังจาก 4 ชม. อย่างไรก็ตามหากคำสั่งนั้นต้องการsudoมันจะไม่ทำงาน เป็นไปได้หรือไม่ที่จะsudoอนุญาตในขณะที่ฉันใช้sleepคำสั่ง?
30 bash  scripts  sudo 

4
การใช้เครื่องหมายตัวหนอนทำงานเป็นทางลัดไปยังไดเรกทอรีบ้านของฉันอย่างไร
ฉันสับสนกำลังพยายามคัดลอกไฟล์จากพีซีเครื่องหนึ่งไปยังอีกเครื่องหนึ่ง ฉันคิดออกแล้ว แต่ซินแท็กซ์ยังสับสนอยู่ งานนี้: scp ~/Desktop/Volenteer.png jay@server.ip:~j0h/b ซึ่งทำให้ในโฟลเดอร์Volenteer.png /home/j0h/bอย่างไรก็ตามวิธีนี้ใช้ไม่ได้: scp ~Desktop/Volenteer.png jay@server.ip:~j0h/b สิ่งนี้ล้มเหลวเช่นกันทำให้ไม่พบไฟล์สถานะการออก 1: scp ~/Desktop/Volenteer.png jay@server.ip:~/j0h/b เช่นนี้: scp ~Desktop/Volenteer.png jay@server.ip:~j0h/b เห็นได้ชัดว่ามีความแตกต่างระหว่าง~และ~/ ความแตกต่างนั่นคือการปรากฏตัวของ/ $~/ bash: /home/j0h/: Is a directory $ ~ bash: /home/j0h: Is a directory เหตุใดจึงเป็นเช่นนี้ใน scp การ~แก้ไขเพื่อ~/? นั่นคือการเดาฉันไม่สามารถยืนยันได้ว่าเกิดอะไรขึ้น แต่ดูเหมือนจะไม่สอดคล้องกันและทำให้เกิดความสับสน นี่เป็นข้อบกพร่องใน scp หรือไม่ หรือมีบางอย่างเกี่ยวกับตัวหนอนฉันหายไป?
30 bash  ssh  scp 

4
ความแตกต่างระหว่าง &> และ 2> & 1 คืออะไร
มีสองรูปแบบของการเปลี่ยนเส้นทางที่มีการส่งออกมาตรฐานและข้อผิดพลาดมาตรฐานเข้าออกมาตรฐาน แต่อันไหนดีกว่ากัน? และทำไมจึง&>ถือว่าสมบูรณ์แบบ ฉันไม่สามารถค้นหาความแตกต่างเพื่อให้บทเรียนมากมายและแม้กระทั่งทุบตีรัฐคู่มือที่ &>ดีกว่า! ดังนั้นทำไมฉันจะต้องใช้&>และไม่2>&1 ส่วนใหญ่ใช้bashเปลือก แก้ไข: ขอบคุณสำหรับผู้แสดงความคิดเห็น เฉพาะ &> ทำงานใน csh หรือ tcsh ใน ksh เพียง 2> & 1 ใช้งานได้ การใช้เส้นประ> ไฟล์ 2> & 1 การเปลี่ยนเส้นทางเท่านั้น แล้วอันไหนที่จะใช้เพื่อให้แน่ใจว่าสคริปต์ของฉันเข้ากันได้กับระบบอื่น ๆ ไม่ว่าเชลล์ที่ใช้คืออะไร!

2
อะไรคือความแตกต่างระหว่าง 'su -', 'sudo bash' และ 'sudo sh'?
ฉันต้องการทราบว่าอะไรคือความแตกต่างระหว่าง su - sudo bash sudo sh ฉันไม่สามารถเข้าสู่ระบบเป็นรากในขณะที่ทำsu -เพราะผมไม่ได้มีรหัสผ่านราก - ฉันหมายความว่าฉันมีของฉันรหัสผ่านของผู้ใช้กับที่ฉันสามารถsudo "command" แต่รหัสผ่านนี้ไม่ได้ทำงานให้su - ฉันสามารถเข้าสู่ระบบเป็นรากที่มีsudo bashกับผู้ใช้ของฉันรหัสผ่านและฉันสามารถเข้าสู่ระบบในขณะที่ ทำsudo shแต่ฉันได้รับคำสั่งในรูปแบบนี้ #

6
ค้นหาชื่อไฟล์ที่ซ้ำกันภายในลำดับชั้นของโฟลเดอร์?
ฉันมีโฟลเดอร์ชื่อโฟลเดอร์imgนี้มีโฟลเดอร์ย่อยหลายระดับซึ่งทั้งหมดมีรูปภาพ ฉันกำลังจะนำเข้ามันไปยังเซิร์ฟเวอร์อิมเมจ โดยทั่วไปรูปภาพ (หรือไฟล์ใด ๆ ) อาจมีชื่อเหมือนกันตราบใดที่อยู่ในพา ธ ไดเร็กทอรีอื่นหรือมีนามสกุลต่างกัน อย่างไรก็ตามเซิร์ฟเวอร์อิมเมจที่ฉันกำลังนำเข้าต้องมีชื่อรูปภาพทั้งหมดไม่ซ้ำกัน (แม้ว่าส่วนขยายจะแตกต่างกัน) ตัวอย่างเช่นรูปภาพbackground.pngและbackground.gifจะไม่ได้รับอนุญาตเพราะแม้ว่าจะมีนามสกุลต่างกัน แต่ก็ยังมีชื่อไฟล์เหมือนกัน แม้ว่าพวกเขาจะอยู่ในโฟลเดอร์ย่อยที่แยกจากกันพวกเขายังคงต้องไม่ซ้ำกัน ดังนั้นฉันสงสัยว่าฉันสามารถทำการค้นหาซ้ำในimgโฟลเดอร์เพื่อค้นหารายการไฟล์ที่มีชื่อเดียวกัน (ไม่รวมส่วนขยาย) มีคำสั่งที่สามารถทำได้หรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.