Unix & Linux

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

4
mkdir แบบเรียกซ้ำ
มีคำสั่ง linux หรือไม่ที่ฉันมองข้ามซึ่งทำให้สามารถทำบางสิ่งได้ตามบรรทัด: (หลอก) $ mkdir -R foo/bar/zoo/andsoforth หรือไม่มีทางเลือกอื่นนอกจากทำไดเร็กตอรี่ทีละไฟล์?
305 mkdir 

14
ฉันจะป้องกัน 'grep' ไม่ให้ปรากฏในผลลัพธ์ ps ได้อย่างไร
เมื่อฉันค้นหากระบวนการบางอย่างที่ไม่มีอยู่เช่น $ ps aux | grep fnord wayne 15745 0.0 0.0 13580 928 pts/6 S+ 03:58 0:00 grep fnord เห็นได้ชัดว่าฉันไม่สนใจ grep - ซึ่งก็สมเหตุสมผลกับการค้นหาpsกระบวนการ! ฉันจะป้องกัน grep ไม่ให้ปรากฏในผลลัพธ์ได้อย่างไร
304 grep  ps 


10
วิธีต่อท้ายหลายบรรทัดในไฟล์
ฉันกำลังเขียนสคริปต์ทุบตีเพื่อค้นหาไฟล์หากไม่มีอยู่ให้สร้างและผนวกกับมัน: Host localhost ForwardAgent yes ดังนั้น"line then new line 'tab' then text"ฉันคิดว่ามันเป็นรูปแบบที่ละเอียดอ่อน ฉันรู้ว่าคุณสามารถทำได้: cat temp.txt >> data.txt แต่มันดูแปลก ๆ ตั้งแต่สองบรรทัด มีวิธีต่อท้ายที่ในรูปแบบนี้หรือไม่: echo "hello" >> greetings.txt

16
วิธีการคำนวณจำนวนเต็มและลอยในทุบตีหรือภาษา / กรอบอื่น ๆ ?
การใช้echo "20+5"ข้อความจะสร้างข้อความ " 20+5" อย่างแท้จริง ฉันสามารถใช้คำสั่งใดในการรับผลรวมตัวเลข25ในกรณีนี้ นอกจากนี้วิธีที่ง่ายที่สุดในการทำเพียงแค่ใช้ bash สำหรับจุดลอยคืออะไร ตัวอย่างเช่นecho $((3224/3807.0))พิมพ์0:( ฉันกำลังมองหาคำตอบโดยใช้เชลล์คำสั่งพื้นฐาน ('บรรทัดคำสั่ง') เองหรือผ่านการใช้ภาษาที่มีให้จากบรรทัดคำสั่ง

8
grep สามารถส่งออกเฉพาะกลุ่มที่ระบุที่ตรงกันหรือไม่
บอกว่าฉันมีไฟล์: # file: 'test.txt' foobar bash 1 bash foobar happy foobar ฉันแค่อยากรู้ว่าคำใดปรากฏหลัง "foobar" ดังนั้นฉันสามารถใช้ regex นี้: "foobar \(\w\+\)" วงเล็บแสดงว่าฉันมีความสนใจเป็นพิเศษในคำทันทีหลังจาก foobar แต่เมื่อฉันทำgrep "foobar \(\w\+\)" test.txtฉันจะได้ทั้งบรรทัดที่ตรงกับ regex ทั้งหมดมากกว่าเพียงแค่ "คำหลังจาก foobar": foobar bash 1 foobar happy ฉันชอบที่ผลลัพธ์ของคำสั่งนั้นจะเป็นดังนี้: bash happy มีวิธีบอก grep ให้แสดงเฉพาะรายการที่ตรงกับการจัดกลุ่ม (หรือการจัดกลุ่มเฉพาะ) ในนิพจน์ทั่วไปหรือไม่?

16
รับสถานะทางออกของกระบวนการที่ถูกส่งไปยังกระบวนการอื่น
ฉันมีสองกระบวนการfooและbarเชื่อมต่อกับท่อ: $ foo | bar barออกจาก 0 เสมอ fooฉันสนใจในรหัสทางออกของ มีวิธีใดบ้างที่จะไปถึงที่นั่น?
287 shell  pipe  exit 

5
เรื่องราวเบื้องหลัง Super Cow Powers คืออะไร?
อย่างที่เรารู้apt-getมีพลังอำนาจ Super Cow และaptitudeไม่: $ apt-get --help | grep -i cow This APT has Super Cow Powers. $ aptitude --help | grep -i cow This aptitude does not have Super Cow Powers. และแน่นอน APT มีไข่อีสเตอร์ไว้ด้วย: $ apt-get moo (__) (oo) /------\/ / | || * /\---/\ ~~ ~~ ...."Have you …
286 debian  apt  history 

5
ทำไมเชลล์สคริปต์ของฉันถึงสำลักในช่องว่างหรืออักขระพิเศษอื่น ๆ
หรือคู่มือแนะนำการจัดการชื่อไฟล์ที่มีประสิทธิภาพและการส่งผ่านสตริงอื่น ๆ ในเชลล์สคริปต์ ฉันเขียนเชลล์สคริปต์ซึ่งทำงานได้ดีเกือบตลอดเวลา แต่มันฉายาบางอินพุต (เช่นชื่อไฟล์บางชื่อ) ฉันพบปัญหาเช่นต่อไปนี้: ฉันมีชื่อไฟล์ที่มีพื้นที่hello worldและมันก็ถือว่าเป็นสองไฟล์แยกต่างหากและhelloworld ฉันมีสายอินพุตพร้อมช่องว่างสองช่องติดต่อกัน ช่องว่างนำหน้าและต่อท้ายหายไปจากบรรทัดอินพุต บางครั้งเมื่ออินพุตมีอักขระหนึ่งตัวอักขระ\[*?เหล่านั้นจะถูกแทนที่ด้วยข้อความบางส่วนซึ่งเป็นชื่อไฟล์จริง มีเครื่องหมายอะโพสโทรฟี'(หรือเครื่องหมายคำพูดคู่") ในอินพุตและสิ่งต่าง ๆ แปลกประหลาดหลังจากจุดนั้น มีแบ็กสแลชในอินพุต (หรือ: ฉันใช้ Cygwin และชื่อไฟล์บางส่วนของฉันมี\ตัวคั่นสไตล์ Windows ) เกิดอะไรขึ้นและฉันจะแก้ไขได้อย่างไร


9
ฉันจะหา symlinks ที่ชำรุดได้อย่างไร
มีวิธีการค้นหาลิงก์สัญลักษณ์ทั้งหมดที่ไม่ได้ชี้ไปที่ใด? find ./ -type l จะให้ลิงก์สัญลักษณ์ทั้งหมดแก่ฉัน แต่ไม่แยกความแตกต่างระหว่างลิงก์ที่ไปที่ใดที่หนึ่งและลิงก์ที่ไม่มี ฉันกำลังทำ: find ./ -type l -exec file {} \; |grep broken แต่ฉันสงสัยว่ามีวิธีแก้ปัญหาอื่นใดบ้าง

17
ฉันจะตั้งค่า DNS ของฉันเมื่อ resolv.conf ถูกเขียนทับได้อย่างไร
ข้อมูลส่วนใหญ่ที่ฉันเห็นทางออนไลน์บอกว่าจะแก้ไข/etc/resolv.confแต่การเปลี่ยนแปลงใด ๆ ที่ฉันทำจะทำให้ถูกแทนที่ได้ $ cat /etc/resolv.conf # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- # YOUR CHANGES WILL BE OVERWRITTEN nameserver 127.0.1.1 มันดูเหมือนว่า 127.0.1.1 dnsmasqเป็นตัวอย่างของท้องถิ่น เอกสารบอกว่าจะแก้ไขdnsmasq /etc/resolv.confฉันพยายามวางเซิร์ฟเวอร์ที่กำหนดเองใน/etc/resolv.conf.d/baseแต่การเปลี่ยนแปลงไม่ได้แสดงในหลังจากทำงาน/etc/resolv.confsudo resolvconf -u FYI ฉันไม่ต้องการเปลี่ยน DNS ตามการเชื่อมต่อฉันต้องการตั้งค่า DNS เริ่มต้นให้ใช้สำหรับการเชื่อมต่อทั้งหมดเมื่อไม่ได้ระบุเป็นอย่างอื่น UPDATE: ฉันตอบคำถามนี้ด้วยตัวเอง: https://unix.stackexchange.com/a/163506/67024 ฉันคิดว่ามันเป็นทางออกที่ดีที่สุดตั้งแต่: …


23
ฉันจะรับที่อยู่ IP ภายนอกในเชลล์สคริปต์ได้อย่างไร
ฉันต้องการค้นหาที่อยู่ IP ภายนอกของฉันจากเชลล์สคริปต์ ในขณะนี้ฉันใช้ฟังก์ชั่นนี้: myip () { lwp-request -o text checkip.dyndns.org | awk '{ print $NF }' } แต่มันขึ้นอยู่กับperl-libwww, perl-html-format, perl-html-treeติดตั้ง ฉันจะรับ IP ภายนอกของฉันได้อีกวิธีใด
273 linux  shell-script  ip 


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