Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

7
เทอร์มินัลพรอมต์ไม่ถูกต้อง
ฉันมีปัญหาเมื่อฉันพิมพ์คำสั่งที่ยาวมากใน bash เทอร์มินัลจะไม่แสดงสิ่งที่ฉันพิมพ์อย่างถูกต้อง ฉันคาดหวังว่าถ้าฉันมีคำสั่งดังต่อไปนี้: username@someserver ~/somepath $ ssh -i /path/to/private/key myusername@something.someserver.com คำสั่งควรแสดงผลสองบรรทัด แต่มันมักจะพันไปรอบ ๆ และเริ่มเขียนที่ส่วนบนของพรอมต์ของฉันค่อนข้างเป็นดังนี้: myreallylongusername@something.somelongserver.comh -i /path/to/private/key หากฉันตัดสินใจย้อนกลับและเปลี่ยนการโต้แย้งบางอย่างไม่มีการบอกตำแหน่งที่เคอร์เซอร์จะปรากฏขึ้นบางครั้งในช่วงกลางของพรอมต์ แต่โดยทั่วไปจะอยู่บนบรรทัดด้านบนที่ฉันพิมพ์ ความสนุกสนานเพิ่มเติมเกิดขึ้นเมื่อฉันUpไปที่คำสั่งก่อนหน้า ฉันได้ลองใช้ทั้ง gnome-terminal และ terminator และใน i3 และ Cinnamon มีคนแนะนำว่านั่นคือพรอมต์ของฉันดังนั้นนี่คือ: \[\033[01;32m\]\u:\[\033[01;34m\] \W\033[01;34m \$\[\033[00m\] Ctrll, resetและclearทุกคนทำในสิ่งที่พวกเขาพูด แต่เมื่อฉันพิมพ์คำสั่งกลับมาหรือUpสิ่งเดียวกันเกิดขึ้น ฉันตรวจสอบและcheckwinsizeเปิดใช้งานในทุบตี สิ่งนี้เกิดขึ้นใน 80x24 และขนาดหน้าต่างอื่น ๆ นี่เป็นเพียงสิ่งที่ฉันเรียนรู้ที่จะอยู่ด้วยหรือไม่? มีชิ้นส่วนของเวทมนตร์ที่ฉันควรรู้หรือไม่? ฉันได้ตัดสินเพียงแค่ใช้พรอมต์สั้น ๆ แต่ก็ไม่สามารถแก้ไขปัญหาได้
171 bash  terminal  prompt 

7
'ไดเรกทอรีทำงาน' คืออะไรเมื่อ cron ประมวลผลงาน?
ฉันมีสคริปต์ที่ทำงานเมื่อฉันเรียกใช้จากบรรทัดคำสั่ง แต่เมื่อฉันกำหนดเวลาด้วยcronฉันพบข้อผิดพลาดที่ไม่สามารถค้นหาไฟล์หรือคำสั่งได้ คำถามของฉันคือสองเท่า: เมื่อฉันจัดตารางเวลางาน cron โดยใช้crontab -eมันใช้ ID ผู้ใช้ของฉันเป็นพื้นฐานสำหรับการอนุญาตหรือไม่ หรือว่าจะใช้ ID ผู้ใช้ cron ของบางประเภทและสิทธิ์ที่เกี่ยวข้อง? เมื่อเปิดใช้งาน cron แล้วไดเรคทอรี่การทำงานคืออะไร? เป็นไดเรกทอรีที่ฉันระบุสคริปต์ให้เรียกใช้หรือไดเรกทอรีอื่นหรือไม่ นี่คืองาน cron ของฉัน: 15 7 * * * /home/xxxx/Documents/Scripts/email_ip_script.sh นี่คือสคริปต์จริง: vIP_ADDR="`curl automation.whatismyip.com/n09230945.asp`" echo "$vIP_ADDR" sed "s/IPADDR/$vIP_ADDR/g" template.txt > emailmsg.txt ssmtp XXXXX@gmail.com < emailmsg.txt นี่คือข้อผิดพลาดที่ฉันได้รับเมื่อฉันดูmailข้อความที่ผลิตโดยcron: sed: can't read template.txt: No such file or …


10
วิธีการตรวจสอบการใช้งาน CPU / หน่วยความจำของกระบวนการเดียว?
ฉันต้องการตรวจสอบการใช้งานหน่วยความจำ / cpu ของกระบวนการแบบเรียลไทม์ คล้ายกับtopแต่กำหนดเป้าหมายเพียงหนึ่งกระบวนการโดยเฉพาะอย่างยิ่งกับกราฟประวัติของบางประเภท
170 shell  process  monitoring  top 

3
ค้นหาคำสั่ง: วิธีการเพิกเฉยกรณีและปัญหา?
ฉันกำลังมองหาไฟล์ "WSFY321.c" ในลำดับชั้นไดเรกทอรีขนาดใหญ่ โดยปกติฉันจะใช้GNU ค้นหา : find . -name "WSFY321.c" แต่ฉันไม่ทราบว่าเป็นตัวพิมพ์ใหญ่อาจเป็นตัวพิมพ์ใหญ่ตัวพิมพ์เล็กหรือทั้งสองอย่าง วิธีที่ง่ายที่สุดในการค้นหาไฟล์นี้คืออะไร? มีอะไรที่ดีไปกว่านี้find . | grep -i "WSFY321.c"?
170 find 

6
เหตุใดการวนซ้ำของผลลัพธ์ที่ไม่เหมาะสมของ find find
คำถามนี้ได้รับแรงบันดาลใจจาก เหตุใดการใช้เชลล์ลูปเพื่อประมวลผลข้อความจึงถือว่าไม่ดี? ฉันเห็นโครงสร้างเหล่านี้ for file in `find . -type f -name ...`; do smth with ${file}; done และ for dir in $(find . -type d -name ...); do smth with ${dir}; done ถูกใช้ที่นี่เกือบทุกวันแม้ว่าบางคนใช้เวลาในการแสดงความคิดเห็นในโพสต์เหล่านั้นอธิบายว่าทำไมสิ่งประเภทนี้ควรหลีกเลี่ยง ... การ เห็นจำนวนโพสต์ดังกล่าว (และความจริงที่ว่าบางครั้งความคิดเห็นเหล่านั้น ฉันคิดว่าฉันอาจถามคำถามเช่นกัน: ทำไมวนลูปfindของการส่งออกปฏิบัติไม่ดีและสิ่งที่เป็นวิธีการที่เหมาะสมในการทำงานอย่างน้อยหนึ่งคำสั่งสำหรับแต่ละชื่อไฟล์ / เส้นทางกลับโดยfind?
170 files  find  filenames  for 

8
ความแตกต่างระหว่าง / sbin / nologin และ / bin / false คืออะไร
ในทางเทคนิคหากไม่มีการpamตั้งค่าให้ตรวจสอบเชลล์ของคุณด้วยpam_shellsสิ่งเหล่านี้จะไม่สามารถป้องกันการเข้าสู่ระบบของคุณได้หากคุณไม่ได้ใช้เชลล์ ในระบบของฉันมีขนาดต่างกันดังนั้นฉันสงสัยว่าพวกเขาทำอะไรบางอย่างจริงๆ ดังนั้นความแตกต่างคืออะไร? ทำไมพวกเขาทั้งสองอยู่? ทำไมฉันถึงต้องใช้อันเดียวกัน -rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false -rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
169 shell  security  login 

13
วิธีการรันโปรแกรมเฉพาะในฐานะรูทโดยไม่ต้องใส่รหัสผ่าน?
ฉันจำเป็นต้องเรียกใช้บางสิ่งบางอย่างเป็น sudo โดยไม่ต้องใช้รหัสผ่านดังนั้นฉันจึงใช้visudoและเพิ่มลงในsudoersไฟล์ของฉัน: MYUSERNAME ALL = NOPASSWD: /path/to/my/program จากนั้นฉันก็ลองดู: $ sudo /path/to/my/program [sudo] password for MYUSERNAME: ทำไมถึงถามรหัสผ่าน? ฉันจะรัน / ใช้คำสั่งในฐานะรูทกับผู้ใช้ที่ไม่ใช่รูทโดยไม่ต้องขอรหัสผ่านได้อย่างไร
169 sudo 

5
ฉันลบ / bin / rm ฉันจะกู้คืนได้อย่างไร
เพื่อความสนุกฉันคิดว่าฉันจะใช้คำสั่งนี้กับ Raspberry Pi ที่รัน Raspbian: sudo rm -f /bin/rm ฉันคิดว่าฉันสามารถติดตั้งใหม่ได้coreutils: ฉันผิด! apt-get install --reinstall coreutilsทำให้เกิดข้อผิดพลาดdpkgโดยบอกว่าไม่สามารถลบแพ็คเกจได้ รวบรวมจากแหล่งที่ไม่ได้ทำงานเพราะการใช้งานMakefilerm ฉันจะrmกลับไปทำงานได้อย่างไร
168 command-line  rm  dpkg 

5
ลบบรรทัดใน vi
ฉันจะลบบรรทัดใน VI ได้อย่างไร นี่ฉันกำลังทำอะไรอยู่ตอนนี้: เปิด terminal alt+ ctrl+t vi a.txt ผมเลื่อนเคอร์เซอร์ของฉันกับสายซึ่งผม wan ลบแล้วสิ่งที่สำคัญคือการรวมกันควรใช้เพื่อลบเส้นใน vi แก้ไข ?
168 ubuntu  terminal  vim  vi 

4
ค้นหาไดเรกทอรีทำงานปัจจุบันของกระบวนการทำงานหรือไม่
คำสั่งใดที่สามารถใช้เพื่อค้นหาไดเรกทอรีการทำงานปัจจุบัน (CWD) ของกระบวนการที่กำลังทำงานอยู่ เหล่านี้จะเป็นคำสั่งที่คุณสามารถใช้จากภายนอกได้

11
ฉันจะแก้ไขหลายไฟล์ใน VIM ได้อย่างไร
ฉันรู้ว่าฉันสามารถเปิดหลายไฟล์ด้วยvimการทำสิ่งที่ชอบvim 2011-12*.logแต่ฉันจะสลับระหว่างไฟล์และปิดไฟล์ทีละไฟล์ได้อย่างไร นอกจากนี้ฉันจะบอกชื่อไฟล์ของไฟล์ปัจจุบันที่ฉันแก้ไขได้อย่างไร
167 linux  command-line  vim  files 

5
วิธีหยุดชั่วคราวและนำกระบวนการพื้นหลังมาทำงานเบื้องหน้า
ฉันมีกระบวนการที่ทำงานอยู่เบื้องหน้า ฉันหยุดทำงานโดยCtrl+ Zจากนั้นให้ทำงานในพื้นหลังbg <jobid>ต่อ ฉันสงสัยว่าจะระงับกระบวนการที่ทำงานในพื้นหลังได้อย่างไร ฉันจะนำกระบวนการพื้นหลังมาสู่เบื้องหน้าได้อย่างไร แก้ไข: กระบวนการส่งออกไปยัง stderr ดังนั้นฉันจะออกคำสั่งfg <jobid>ในขณะที่กระบวนการส่งออกไปยังเทอร์มินัลได้อย่างไร

12
ฉันจะเปลี่ยนนามสกุลของหลายไฟล์ได้อย่างไร
ผมอยากจะเปลี่ยนนามสกุลไฟล์จากไป*.txt *.textฉันพยายามใช้basenameคำสั่ง แต่ฉันมีปัญหาในการเปลี่ยนมากกว่าหนึ่งไฟล์ นี่คือรหัสของฉัน: files=`ls -1 *.txt` for x in $files do mv $x "`basename $files .txt`.text" done ฉันได้รับข้อผิดพลาดนี้: basename: too many arguments Try basename --help' for more information

6
การเพิ่มบรรทัดใหม่ไปยังจุดสิ้นสุดของไฟล์คืออะไร
คอมไพเลอร์บางตัว (โดยเฉพาะ C หรือ C ++) ให้คำเตือนเกี่ยวกับ: No new line at end of file ฉันคิดว่านี่จะเป็นปัญหาเฉพาะโปรแกรมเมอร์ C แต่ github แสดงข้อความในมุมมองการส่ง: \ No newline at end of file สำหรับไฟล์ PHP ฉันเข้าใจสิ่งที่ตัวประมวลผลล่วงหน้าได้อธิบายไว้ในหัวข้อนี้แต่สิ่งนี้เกี่ยวข้องกับ PHP หรือไม่ มันเป็นinclude()สิ่งเดียวกันหรือเกี่ยวข้อง\r\nกับ\nหัวข้อvs ? จุดในการมีบรรทัดใหม่ที่ท้ายไฟล์คืออะไร
166 files  newlines 

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