Unix & Linux

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


7
โปรแกรมที่ส่ง STDIN ไปยัง STDOUT ด้วยรหัสสีถูกตัดออกหรือไม่
ฉันมีคำสั่งที่ให้ผลลัพธ์เป็นสีและฉันอยากจะแปะมันลงในไฟล์ที่มีรหัสสีหลุดออกมา มีคำสั่งที่ทำงานเหมือนcatยกเว้นว่าจะตัดรหัสสีหรือไม่? ฉันวางแผนที่จะทำสิ่งนี้: $ command-that-produces-colored-output | stripcolorcodes > outfile
64 colors  pipe  filter 


4
ทำไม `['เชลล์สร้างขึ้นในตัวและ` [[' คำสำคัญของเชลล์]
เท่าที่ฉันรู้[[เป็นรุ่นปรับปรุง[แต่ฉันสับสนเมื่อฉันเห็น[[ว่าเป็นคำหลักและ[ถูกแสดงเป็น builtin [root@server ~]# type [ [ is a shell builtin [root@server ~]# type [[ [[ is a shell keyword TLDPพูดว่า builtin อาจเป็นคำพ้องความหมายของคำสั่งระบบที่มีชื่อเดียวกัน แต่ Bash นำมาใช้ใหม่ภายใน ตัวอย่างเช่นคำสั่ง Bash echo ไม่เหมือนกับ / bin / echo แม้ว่าพฤติกรรมของพวกเขาจะเกือบเหมือนกัน และ คำหลักคือคำโทเค็นหรือตัวดำเนินการที่สงวนไว้ คำหลักมีความหมายพิเศษกับเชลล์และแน่นอนว่าเป็นหน่วยการสร้างของไวยากรณ์ของเชลล์ เป็นตัวอย่างสำหรับในขณะที่ทำและ! เป็นคำหลัก เช่นเดียวกับ builtin คีย์เวิร์ดนั้นยากที่จะเขียนลงใน Bash แต่ต่างจาก builtin คำสำคัญนั้นไม่ได้อยู่ในคำสั่ง แต่เป็นหน่วยย่อยของคำสั่งสร้าง [2] ไม่ควรที่จะทำให้ทั้งสอง[และ[[คำหลัก? …

14
เคล็ดลับในการจดจำลำดับของพารามิเตอร์สำหรับ ln
ฉันเคยlnเขียนลิงก์สัญลักษณ์มาหลายปีแล้ว แต่ฉันก็ยังได้คำสั่งของพารามิเตอร์ผิดไปหมด ฉันมักจะเขียนสิ่งนี้: ln -s a b จากนั้นดูผลลัพธ์เพื่อเตือนตัวเอง ฉันมักจะจินตนาการว่าจะเป็นa -> bเมื่อฉันอ่านมันเมื่อมันตรงกันข้ามจริงb -> aๆ สิ่งนี้ให้ความรู้สึกต่อต้านเคาน์เตอร์ดังนั้นฉันจึงพบว่าฉันคาดเดาตัวเองอยู่เสมอ ใครบ้างมีเคล็ดลับที่จะช่วยให้ฉันจำลำดับที่ถูกต้อง?
64 symlink  ln 


14
mount.nfs: การเข้าถึงถูกปฏิเสธโดยเซิร์ฟเวอร์ขณะติดตั้งบนเครื่อง Ubuntu?
ฉันมีเครื่องจักรสามเครื่องในการผลิต - machineA 10.66.136.129 machineB 10.66.138.181 machineC 10.66.138.183 และเครื่องทั้งหมดนั้นมี Ubuntu 12.04 ติดตั้งอยู่ในนั้นและฉันมีสิทธิ์เข้าถึงรูทของทั้งสามเครื่อง ตอนนี้ฉันน่าจะทำสิ่งต่าง ๆ ในเครื่องด้านบนของฉัน - Create mount point /opt/exhibitor/conf Mount the directory in all servers. sudo mount <NFS-SERVER>:/opt/exhibitor/conf /opt/exhibitor/conf/ ฉันได้สร้าง/opt/exhibitor/confไดเรกทอรีในทั้งสามเครื่องดังกล่าวข้างต้นแล้ว ตอนนี้ฉันกำลังพยายามสร้าง Mount Point ดังนั้นฉันจึงปฏิบัติตามกระบวนการด้านล่าง - ติดตั้งไฟล์สนับสนุน NFS และเคอร์เนลเซิร์ฟเวอร์ NFS ในเครื่องสามเครื่องด้านบนทั้งหมด $ sudo apt-get install nfs-common nfs-kernel-server สร้างไดเรกทอรีที่ใช้ร่วมกันในทั้งสามเครื่องด้านบน $ mkdir …
64 linux  ubuntu  mount  nfs 

4
ฉันจะ grep ผลลัพธ์ของ FIND โดยใช้ -EXEC และยังส่งออกไปยังไฟล์ได้อย่างไร?
ดีกว่าที่จะอธิบายในตัวอย่าง ฉันสามารถ: find . -name "*.py" -type f > output.txt แต่ฉันจะเก็บเอาท์พุทเป็นไฟล์เดียวกันได้อย่างไร: find . -name "*.py" -type f -exec grep "something" {} \ ฉันไม่สามารถทำได้ find . -name "*.py" -type f -exec grep "something" {} \ > output.txt
64 find 


3
ทำไม Unix ถึงสนับสนุนตัวเอง?
ฉันอ่านเอกสารของ Ritchie และ Thompson เกี่ยวกับระบบไฟล์ Unix พวกเขาเขียนว่า 'มันคุ้มค่าที่จะสังเกตว่าระบบนี้มีการช่วยเหลือตัวเองทั้งหมด' ระบบก่อนที่ Unix จะไม่สนับสนุนตัวเองหรือไม่? ในรูปแบบใด?

1
เกิดข้อผิดพลาดระหว่างการเริ่มต้นบนคอมพิวเตอร์องค์กรล่าสุด
หลังจากอัปเดตล่าสุดบางอย่างคอมพิวเตอร์ของฉันจะไม่บูทอีกต่อไป! นี่คือสิ่งที่ฉันสามารถตรวจสอบได้: นี่เป็นคอมพิวเตอร์ล่าสุดที่ให้ฉันโดย บริษัท ไอที มันมี Intel CPU ล่าสุด (รุ่น Skylake) คอมพิวเตอร์ใช้งาน Ubuntu 16.04 คอมพิวเตอร์บูตอย่างถูกต้องครั้งล่าสุดในเดือนมีนาคม ปัญหาน่าจะเกิดจากการอัพเดทซอฟต์แวร์หรือบั๊กฮาร์ดแวร์ ฉันมีคอมพิวเตอร์เครื่องอื่นที่ใช้ 16.04 ซึ่งมีซอฟต์แวร์เดียวกันกับที่ติดตั้ง (ฉันใช้apt-clone) และมันใช้งานได้ดี มันมีฮาร์ดแวร์ที่แตกต่างกัน (เช่น amd64 แต่ CPU ที่แตกต่าง, GPU ที่แตกต่างกัน ฯลฯ ) เคอร์เนลเริ่มทำงาน initrd ทำงานได้อย่างถูกต้อง เมื่อฉันบู๊ตด้วยหน้าจอเริ่มต้นในโหมดกราฟิกฉันจะได้รับพร้อมท์ให้ใส่รหัสผ่านสำหรับโวลต์ dm-crypt ของฉันและสิ่งสุดท้ายที่ฉันเห็นคือมันติดตั้งเรียบร้อยแล้ว แฮงค์เกิดขึ้นก่อนที่ฉันจะได้รับพรอมต์การเข้าสู่ระบบ เมื่อคอมพิวเตอร์แฮงค์มันเป็นการแฮงค์อย่างหนัก แม้Alt+ SysRqไม่ตอบสนอง เห็นได้ชัดว่า CPU ถูกตรึงที่ 100% เนื่องจากแฟน ๆ เปิดการระเบิดเต็มรูปแบบ ฉันยังมีเคอร์เนลที่ฉันใช้อยู่ก่อนที่จะรีบูตเครื่อง เมื่อฉันเลือกเคอร์เนลนี้ในเมนูด้วงฉันจะได้รับการล็อคเดียวกัน …

2
การใช้งานร่วมกันได้หมายถึงอะไร
ฉันเคยเห็นคำว่า "sh Compatible" ที่ใช้โดยทั่วไปแล้วในการอ้างอิงถึง shells ฉันไม่แน่ใจว่ามันใช้กับโปรแกรมที่อาจถูกเรียกใช้จากภายใน shells หรือไม่ เชลล์หรือโปรแกรมอื่นมีความหมายว่าอะไร "sh Compatible" การที่ "ขัดกันไม่ได้" หมายความว่าอย่างไร? แก้ไข: คำถามนี้ถามความแตกต่างระหว่าง bash และ sh เกี่ยวข้องกันมาก: ความแตกต่างระหว่าง sh และ bash ฉันยังต้องการคำตอบโดยตรงกับความหมายของคำว่า "เข้ากันได้กับ sh" ความคาดหวังที่สมเหตุสมผลอาจเป็นได้ว่า "sh Compatible" หมายถึง "ใช้ภาษาคำสั่งของเชลล์" แต่ทำไมจึงมีเชลล์ "sh ที่เข้ากันได้" จำนวนมากและทำไมมันถึงแตกต่างกัน?

2
SSH: ช่องสัญญาณที่ไม่มีเชลล์บนเซิร์ฟเวอร์ ssh
ฉันต้องตั้งอุโมงค์ระหว่างสองครอบครัว สำหรับสิ่งนี้ฉันใช้sshในวิธีนี้: ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER หลังจากนั้นฉันลงชื่อเข้าใช้ SSH_SERVER ของฉัน ฉันจะหลีกเลี่ยงคุณสมบัตินี้ได้อย่างไร! ฉันต้องตั้งอุโมงค์เท่านั้น ฉันไม่ต้องลงชื่อเข้าใช้ SSH_SERVER ของฉัน ... ฉันได้ลองใช้ตัวเลือก -N แล้ว แต่มันทำให้เชลล์ไม่ว่าง

6
วิธีไพพ์ผลลัพธ์ของการค้นหา grep ลงในไฟล์ vi ใหม่
ฉันใช้grep -e Peugeot -e PeuGeot carlist.txtเพื่อค้นหาผ่าน carlist.txt และดึงบางรายการออกมาและฉันคิดว่าgrep -e Peugeot -e PeuGeot carlist.txt | viมันน่าจะเป็นสิ่งที่ฉันต้องการ แต่นี่คือสิ่งที่ฉันได้รับ: Vim: Warning: Input is not from a terminal Vim: Error reading input, exiting... Vim: preserving files... Vim: Finished.
63 grep  vi 

3
SCP และบีบอัดในเวลาเดียวกันไม่มีการบันทึกระดับกลาง
วิธีที่บัญญัติไว้คือ: scp ไฟล์ไปยังตำแหน่งระยะไกล บีบอัดไฟล์ระหว่างทาง ( tarหรือไม่ไฟล์เดียวหรือทั้งโฟลเดอร์7zaหรืออย่างอื่นมีประสิทธิภาพยิ่งขึ้น) ทำข้างต้นโดยไม่บันทึกไฟล์กลาง ฉันคุ้นเคยกับเปลือกท่อเช่นนี้ tar cf - MyBackups | 7za a -si -mx=9 -ms=on MyBackups.tar.7z หลัก: กลิ้งโฟลเดอร์ทั้งหมดเป็นโฟลเดอร์เดียว tar ส่งผ่านข้อมูลstdoutไปยังstdinของโปรแกรมบีบอัด ใช้การบีบอัดเชิงรุก วิธีที่ดีที่สุดในการทำเช่นนี้คือการsshเชื่อมโยงกับไฟล์เชื่อมโยงไปถึงบนระบบไฟล์ระยะไกล? ฉันไม่ชอบที่จะsshfsเมาน สิ่งนี้ใช้ไม่ได้: scp <(tar cvf - MyBackups | 7za a -si -mx=9 -so) localhost:/tmp/tmp.tar.7z เพราะ: /dev/fd/63: not a regular file
63 ssh  tar  scp  7z 

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