Unix & Linux

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

1
รอ bash-builtin เบิร์น CPU ที่ 100 เปอร์เซ็นต์
เกิดขึ้นอย่างน้อยในGNU bash รุ่น 4.3.42 x86_64 && GNU bash รุ่น 4.3.11 x86_64 ฉันใช้sleep & wait $!แทนวิธีง่าย ๆsleepในการทำให้sleepสัญญาณขัดจังหวะ(เหมือนSIGUSR1 ) แต่ดูเหมือนว่าwaitbash-builtin จะทำงานในลักษณะที่แปลกเมื่อคุณเรียกใช้สิ่งต่อไปนี้ อาคาร 1: cat <( trap 'echo SIGUSR1' SIGUSR1; echo $BASHPID; while :;do sleep 1 & wait $!; echo test; done )& อาคาร 2: kill -10 /the pid of the subshell, printed …

4
เมานต์ระบบไฟล์รูทจาก initramfs
มันเป็นสถานการณ์ทั่วไป ไม่ว่าจะด้วยเหตุผลใดก็ตาม initramfs (OpenSUSE ในกรณีที่มีความสำคัญ) ไม่สามารถค้นหาระบบไฟล์รูทได้ ฉันรู้ดีว่าอุปกรณ์ใดบ้างที่ต้องติดตั้ง คำถามของฉัน: ขั้นตอนที่ถูกต้องในการเมาท์ระบบไฟล์รูทคืออะไรและดำเนินการตามลำดับการบู๊ตต่อไป? สันนิษฐานว่าเป็นจุดรวมของคอนโซลกู้ภัย และถึงกระนั้นก็ไม่มีใครทำเอกสารว่าคุณทำสิ่งนี้จริง ๆ เห็นได้ชัดว่าฉันสามารถติดตั้งระบบไฟล์รูทได้ที่ไหนซักแห่ง แต่ฉันจะสร้างรากของทรีของระบบไฟล์ได้อย่างไร และตอนนี้ฉันจะทำขั้นตอนการบู๊ตปกติต่อไปหรือไม่? (ฉันคิดว่าเพียงแค่ออกจากเปลือกจะทำ ... แต่มันไม่ได้) สิ่งที่คุณต้องได้รับการติดตั้งก่อนที่คุณจะดำเนินการต่อและคุณจะทำอย่างไรต่อไป?

2
เหตุใดจึงเว้นช่องว่างระหว่างตัวเลือกและพารามิเตอร์
ตัวอย่างเช่น: xargs -n 1 เป็นเช่นเดียวกับ xargs -n1 แต่ถ้าคุณดูที่man pageตัวเลือกจะแสดงรายการเป็น-n max-argsซึ่งหมายความว่าควรจะรักษาพื้นที่ไว้ ไม่มีอะไรที่เกี่ยวกับรูปแบบย่อ -n เป็นสูงสุด args นอกจากนี้ยังเกิดขึ้นกับสาธารณูปโภค Linux อื่น ๆ อีกมากมาย สิ่งนี้เรียกว่าอะไรใน Linux? ยูทิลิตี้ทั้งหมดสนับสนุนรูปแบบย่อ (แต่ไม่เคยจัดทำเป็นเอกสารไว้ใน man page)?
16 options 

1
เลื่อนไปที่คำสั่งสุดท้ายบน Terminal? (เช่นเครื่องหมาย OS X Terminal)
เครื่องหมายของ Mac OS X Terminalมีประโยชน์อย่างเหลือเชื่อ Cmd+Upตัวอย่างเช่นเมื่อฉันพิมพ์คำสั่งที่สะท้อนการส่งออกเป็นจำนวนมากจึงเป็นเรื่องง่ายที่จะอ่านจุดเริ่มต้นที่มี มันจะเลื่อนไปที่คำสั่งสุดท้ายและเน้นมันตั้งแต่มีตัวเลือกในการทำเครื่องหมายโดยอัตโนมัติสาย PromptและCmd+Upจะเลื่อนไปยังหน้าล่าสุดเครื่องหมาย มีเทอร์มินัลอีมูเลเตอร์ใด ๆ กับฟังก์ชันนี้หรือไม่? หรือปลั๊กอินอะไรก็ได้ คุณจะไปที่คำสั่งสุดท้ายอย่างรวดเร็วโดยเน้นที่คำสั่งนั้นได้อย่างไร

5
ค้นหาไฟล์ที่มีคำค้นหาหลาย ๆ คำในไฟล์
ฉันกำลังมองหาวิธีที่จะแสดงรายการไฟล์ทั้งหมดในไดเรกทอรีที่มีชุดคำหลักเต็มรูปแบบที่ฉันค้นหาทุกที่ในไฟล์ ดังนั้นคำหลักไม่จำเป็นต้องปรากฏในบรรทัดเดียวกัน วิธีหนึ่งในการทำเช่นนี้คือ: grep -l one $(grep -l two $(grep -l three *)) คำหลักสามคำเป็นเพียงตัวอย่างมันอาจมีสองหรือสี่คำเป็นต้น วิธีที่สองที่ฉันนึกได้คือ: grep -l one * | xargs grep -l two | xargs grep -l three วิธีที่สามที่ปรากฏในคำถามอื่นจะเป็น: find . -type f \ -exec grep -q one {} \; -a \ -exec grep -q two {} \; -a …

4
วิธีที่เหมาะสมในการสร้างอิมเมจที่สามารถบูตได้ในระบบของฉันคืออะไร?
จะดีหรือไม่ถ้าฉันสามารถตั้งค่าระบบของฉันได้ทันทีหลังจากติดตั้งด้วยชุดรูปแบบและโปรแกรมและ SDK ที่ฉันต้องการทั้งหมดจากนั้นเพียงบันทึกสแนปชอตนั้น เช่นการสำรองข้อมูลยกเว้นว่าฉันจะสามารถบูตอิมเมจนั้นและติดตั้งลงในเครื่องใดก็ได้ที่ฉันต้องการ ฉันค่อนข้างแน่ใจว่าเป็นไปได้ ในความเป็นจริงผมรู้ว่ามันเป็นไปบ้าง https://help.ubuntu.com/community/LiveCDCustomizationFromScratch แต่จะมีวิธีที่ดีกว่า มีใครรู้เวทมนตร์ที่ฉันสามารถใช้ได้หรือไม่? ฉันไม่สามารถบันทึกสถานะระบบของฉันเพื่อที่ว่าเมื่อฉันติดตั้งซอฟต์แวร์เซิร์ฟเวอร์ที่ไม่รองรับและฉันปิดกั้นระบบของฉันฉันไม่จำเป็นต้องใช้เวลาอีกชั่วโมงในการตั้งค่า

1
pushd, popd vs cd, cd- in bash และ zsh
มีความแตกต่างระหว่างพฤติกรรมของ pushd / popd ใน bash vs zsh หรือไม่? ดูเหมือนว่าใน zsh cd, cd- ทำงานเหมือนกับ pushd / popd (ซึ่งจะเพิ่ม / pops directory โดยอัตโนมัติเมื่อ cd) ในขณะที่ bash cd ไม่มีผลต่อ dir stack หากใครบางคนสามารถให้ฉันตัวชี้ที่จะดี
16 bash  zsh  cd-command  pushd 


1
เรียกใช้คำสั่งเฉพาะเมื่อคำสั่งก่อนหน้านี้ประสบความสำเร็จใน Fish (เช่น && ใน bash)
การใช้ Bash ฉันมักทำสิ่งต่าง ๆ เช่นcd /study && ls -la ฉันเข้าใจว่า double ampersand กำลังบอกว่าเทอร์มินัลไม่ทำงานส่วนที่สองของคำสั่งนี้เว้นแต่ว่าส่วนหนึ่งจะเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด คำถามของฉันคือการเพิ่งย้ายไปที่ Fish shell และลองใช้คำสั่งเดียวกันฉันได้รับข้อผิดพลาดที่ระบุว่าฉันไม่สามารถใช้&&และสั่งให้ฉันใช้งานซิงเกิ้ล&ที่ฉันเชื่อว่าเป็นงานที่ไม่ใช่สิ่งที่ฉันต้องการ ใครช่วยบอกฉันถึงไวยากรณ์ที่ถูกต้องเพื่อเรียกใช้คำสั่ง Bash เก่าของฉันในเปลือกปลา?
16 fish 

1
รันคำสั่งเกี่ยวกับการเลือกแรนเจอร์หรือไม่
ฉันยังไม่พบบทช่วยสอนขั้นสูงrangerดังนั้นคำถามของฉันคือ: สามารถใช้คำสั่งในการเลือกไฟล์ได้rangerหรือไม่? ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร
16 ranger 

4
เซิร์ฟเวอร์ NFS และไฟร์วอลล์
ฉันไม่พบเอกสารสแลม dunk เกี่ยวกับเรื่องนี้ดังนั้นเรามาเริ่มกันเลย บนโฮสต์ CentOS 7.1 ฉันได้ผ่านlinuxconfig HOW-TOรวมถึงfirewall-cmdรายการและฉันมีระบบไฟล์ที่ส่งออกได้ [root@<server> ~]# firewall-cmd --list-all internal (default, active) interfaces: enp5s0 sources: 192.168.10.0/24 services: dhcpv6-client ipp-client mdns ssh ports: 2049/tcp masquerade: no forward-ports: rich rules: [root@<server> ~]# showmount -e localhost Export list for localhost: /export/home/<user> *.localdomain อย่างไรก็ตามถ้าฉันshowmountจากลูกค้าฉันยังคงมีปัญหา [root@<client> ~]# showmount -e <server>.localdomain clnt_create: RPC: …

2
ลบจนถึงการเกิดขึ้นครั้งแรกของลำไส้ใหญ่โดยใช้ sed
คำสั่ง sed ของฉันคือ sed '/(.*:)/d' <<< 'abcd:bcde:cdeaf' มันจะต้องกลับมา bcde:cdeaf (เช่น) ตัวละครทั้งหมดก่อนที่เครื่องหมายโคลอนแรกในบรรทัดและเครื่องหมายโคลอนต้องถูกลบออก แต่นี่ไม่ได้เป็นการลบอะไรเลย ความสับสนของฉันส่วนใหญ่เกิดจาก 1) parens สำหรับการจับคู่รูปแบบจำเป็นต้องได้รับการยกเว้นภายใน sed regex-es หรือไม่? 2) ในกรณีใดกรณีหนึ่ง (ด้วยการหลบหนี / ไม่ต้องใช้การหลบหลีก) มันใช้งานไม่ได้ ฉันเหนื่อย, sed -E '/\\(.*:\\)/d' <<< 'abcd:bcde'
16 sed 

4
จะหยุด sudo PAM ข้อความใน auth.log สำหรับผู้ใช้ที่เฉพาะเจาะจงได้อย่างไร
ฉันใช้ Zabbix เพื่อตรวจสอบสภาพแวดล้อมของฉันและzabbix_agentdดำเนินการในฐานะผู้ใช้zabbixสคริปต์ที่กำหนดเองหนึ่งครั้งทุก ๆ 60 วินาที; จะใช้ในการเรียกใช้สคริปต์นี้เป็นsudoroot ใน/var/log/auth.logฉันเห็นทุก ๆ 60 วินาที: Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session opened for user root by (uid=0) Aug 11 17:40:32 my-server sudo: pam_unix(sudo:session): session closed for user root ฉันต้องการหยุดข้อความนี้ไม่ให้น้ำท่วมบันทึกของฉัน ฉันเพิ่มบรรทัดต่อไปนี้ไปยัง/etc/pam.d/sudoไฟล์ทันทีก่อนsession required pam_unix.so: session [success=1 default=ignore] pam_succeed_if.so service in sudo quiet uid = 0 …

2
ฉันจะใช้ Linux เป็นเกตเวย์ได้อย่างไร
หมายเหตุ: หากอุปกรณ์ไคลเอนต์ ( computer Bในตัวอย่างนี้) ต้องการรับอินเทอร์เน็ตผ่านคอมพิวเตอร์เกตเวย์อาจจำเป็นต้องกำหนดค่าการแก้ไขเนมเซิร์ฟเวอร์ นี่ไม่ได้อธิบายที่นี่ (เกตเวย์ไม่จำเป็นต้องให้บริการอินเทอร์เน็ต) ฉันกำลังพยายามทำความเข้าใจพื้นฐานของการกำหนดเส้นทางเครือข่าย ดังนั้นฉันกำลังทดลองกับ LAN ของฉัน (ตอนนี้ฉันไม่ต้องการอินเทอร์เน็ตแค่ใช้การสื่อสาร LAN) ฉันรู้ว่าการกำหนดค่าเครือข่ายเป็นเรื่องที่ค่อนข้างซับซ้อน แต่ฉันแค่พยายามทำให้คอมพิวเตอร์ (พูดว่า A) ทำหน้าที่เป็นเกตเวย์ของอีกคนหนึ่ง (พูดว่า B) (ทั้งที่ใช้ Ubuntu Linux) ฉันต้องการเพียง B เพื่อให้สามารถเข้าถึงเราเตอร์ที่เข้าถึงได้เฉพาะ A เท่านั้น นี่เป็นกรณี: Router for computer A --> 192.168.0.1 Computer A - eth0 --> 192.168.0.2 Computer A - eth1 --> 192.168.1.1 Computer B …

3
แบบอักษร“ xterm” ที่ใหญ่ขึ้นบนจอแสดงผล HIDPI
หลังจากหลายปีที่มีความสุขในการใช้เทอร์มินัลอีมูเลเตอร์ต่าง ๆ เช่นKonsole , Gnome-TERMINALและเทอร์มินัล XFCEล่าสุดในสภาพแวดล้อมเดสก์ท็อปที่เหมาะสมฉันตัดสินใจใช้xtermเก่าที่มีฟอนต์บิตแมปที่ดี ใช้งานได้ดีรองรับ Unicode และตระกูลฟอนต์คงที่เริ่มต้นมีอักขระจากเกือบทุกภาษาซึ่งยอดเยี่ยมมาก แต่ฉันเจอปัญหาสำคัญ แบบอักษรมีขนาดเล็กมาก แม้แต่ขนาดใหญ่ที่เรียกว่า(ซึ่งเป็นแบบอักษรบิตแมป 10x20) มีขนาดเล็กมากสำหรับฉันและใช้ไม่ได้ การตั้งค่าเริ่มต้นของฉันสำหรับสภาพแวดล้อม XFCE ตั้งไว้ที่ 120 dpi แต่xpdyinfoรายงาน 97x97 DPI $ xdpyinfo |grep resolution resolution: 97x97 dots per inch ดังนั้นฉันจึงพยายามเปลี่ยน DPI ด้วยxrandrแต่ก็ไม่ได้ช่วย $ xrandr --dpi 120 ดูเหมือนว่าผลลัพธ์จะถูกนำไปใช้ $ xdpyinfo | grep resolution resolution: 120x120 dots per inch แต่มันไม่เปลี่ยนความละเอียดxtermเลย …
16 x11  fonts  xterm  xfig 

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