Unix & Linux

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

2
เหตุใดหน้า man Unix จึงใช้ backticks คู่แทนเครื่องหมายคำพูดคู่?
ฉันได้สังเกตเห็นว่าหน้าคนและเอกสารอื่น ๆ รูปแบบโดยสาธารณูปโภค Unix มักจะใช้ backticks คู่``ตามด้วยคำพูดเดี่ยวคู่ห่อวลีที่ยกมาแทนของตัวละครราคาคู่'' "คำพูดเดียวจะถูกแทนที่ในทำนองเดียวกัน ทำไมนี้ นี่คือตัวอย่างสองสามข้อจาก man page สำหรับgrep: To find all occurrences of the pattern `.Pp' at the beginning of a line: $ grep '^\.Pp' myfile The apostrophes ensure the entire expression is evaluated by grep instead of by the user's shell. The caret `^' …
32 man  history 

2
เทอร์มินัล Linux ทำงานอย่างไร
หากคุณเรียกใช้งานเทอร์มินัลและเรียกใช้งานโปรแกรมที่เรียกใช้งานได้ (สมมติว่าเป็นส่วนหนึ่งของสายที่เน้นความเรียบง่าย) คุณจะได้รับคำตอบจากคำสั่งของโปรแกรมที่ใช้งานได้ สิ่งนี้จะพิมพ์ให้คุณ (ผู้ใช้) ได้อย่างไร? เครื่องเทอร์มินัลทำอะไรเช่นนี้pexpect? (แบบสำรวจรอการส่งออก) หรืออะไร จะทราบวิธีการพิมพ์ออกมาได้อย่างไร? และเทอร์มินัลเริ่มโปรแกรมอย่างไร? (มันเป็นสิ่งที่คล้ายกับ os.fork ของ python ()?) ฉันงงว่าเทอร์มินัลทำงานอย่างไรฉันเล่นกับเทอร์มินัลอีมูเลเตอร์และฉันก็ยังไม่เข้าใจว่าเวทย์มนตร์นี้ทำงานอย่างไร ฉันกำลังดูที่แหล่งของ konsole (kde) และ yakuake (อาจใช้ konsole) และฉันไม่สามารถรับสิ่งที่เวทมนตร์นั้นเกิดขึ้นได้

1
สัญลักษณ์แทนภายในคำพูด
นี่จะเป็นสิ่งที่ง่าย แต่ในความทรงจำของฉันเมื่อเชลล์สคริปต์การใช้เครื่องหมายคำพูดคู่จะช่วยให้การขยายแบบกลมและตัวแปร แต่ในรหัสต่อไปนี้: #!/bin/sh echo *.sh echo "*.sh" echo '*.sh' echo $LANG echo "$LANG" echo '$LANG' ฉันได้รับผลลัพธ์นี้: bob.sh redeployJboss.sh *.sh *.sh en_US.utf8 en_US.utf8 $LANG การโควตเดี่ยวจะป้องกันไม่ให้ glob และการขยายตัวแปรผัน แต่การโควตสองครั้งจะช่วยให้การขยายตัวแปรเท่านั้นและไม่มีการวนซ้ำ? ฉันสามารถโค้งในรูปแบบการอ้างอิงใด ๆ ?

6
นับจำนวนบรรทัดของเอาต์พุตจากโปรแกรมก่อนหน้า
ฉันพยายามนับจำนวนบรรทัดผลลัพธ์ที่โปรแกรมหนึ่งสร้าง ปัญหาคือโปรแกรมใช้เวลานานในการรันและฉันต้องการที่จะแสดงผลลัพธ์ให้กับผู้ใช้ มีวิธีนับจำนวนบรรทัดคำสั่งสุดท้ายที่เอาต์พุตหรือไม่? ฉันสามารถทำได้program | wc -lแต่นั่นจะไม่แสดงผลลัพธ์ให้กับผู้ใช้ เท่าที่ฉันรู้ฉันต้องทำprogram; program | wc -l- แต่โปรแกรมใช้เวลาอย่างน้อยหนึ่งนาทีในการทำงานดังนั้นฉันไม่ต้องการทำมากกว่าหนึ่งครั้งเพื่อแสดงการนับบรรทัดที่ด้านล่าง แก้ไข: มีวิธีการแสดงผลตามที่เกิดขึ้น (ทีละบรรทัด) แล้วส่งกลับนับในตอนท้าย?

2
บูตหน้าต่างจากพรอมต์คำสั่งช่วยด้วง
ก่อนหน้านี้ฉันได้ติดตั้ง Ubuntu 10.04 และ Windows 7 แล้ว ตอนนี้ฉันเข้าสู่ระบบ Windows เปิดตัวแก้ไขพาร์ติชันและลบไดรฟ์ที่ประกอบด้วย Ubuntu - ฉันคิดว่ามันจะลบ Ubuntu และอาจช่วยฉันติดตั้งระบบปฏิบัติการอื่น - และฉันเริ่มระบบใหม่ มีพรอมต์กู้ภัย GRUB อยู่ที่นั่น ฉันต้องการเข้าสู่ระบบ Windows ฉันจะทำสิ่งนั้นได้อย่างไร ในการกู้ภัยด้วงฉันพยายามต่อไปนี้: ls (hd0) (hd0,3) (hd0,2) (hd0,1) (hd1) (hda1,1) พยายามรวมกันทั้งหมดของls (hdax)/ซึ่งโยนออกมา: error: Unknown Filesystem. ฉันลองสิ่งนี้: rootnoverify (hd0,0) chainloader +1 makeactive boot มันโยนออกมา: Unknown command. แก้ไข: ฉันติดตั้ง Ubuntu จาก …
32 linux  windows  grub  rescue 

4
สิ่งที่ไม่จำเป็นต้องมีการจัดเรียงข้อมูล? Linux หรือ ext2 ext3 FS หรือไม่
ทำไมคุณไม่ต้องจัดเรียงข้อมูลบนระบบ Linux? เพราะมันใช้ระบบไฟล์ ext2 / ext3 หรือเพราะมันเป็นลีนุกซ์ นั่นเป็นสิ่งที่เกี่ยวข้องสำหรับฉันมีระบบบูตคู่ (W7 / Ubuntu) และพาร์ทิชันทั่วไป (NTFS) ที่สามารถเข้าถึงได้โดยทั้งสองระบบ ถ้าฉันใช้พาร์ติชั่นนี้กับลีนุกซ์, มันจะมีการแยกส่วนหรือไม่? ปัญหาอื่นคือคอนเทนเนอร์ Truecrypt ฉันยังเข้าถึงพวกเขาด้วย Linux และ Windows และพวกเขาเป็น FAT32 พวกมันถูกแยกส่วนโดยลีนุกซ์หรือไม่?

2
ทำไม '.' เลือกให้เป็นตัวแทนไดเรกทอรีปัจจุบันและ '.. ' สำหรับไดเรกทอรีหลักหรือไม่
หลังจากอ่านคำถามนี้ทำไมเลือก '~' เพื่อเป็นตัวแทนของโฮมไดเร็กตอรี่? คำถามที่ชัดเจนต่อไปในใจของฉันคือทำไม '.' และ '.. ' ถูกใช้เพื่อแสดงไดเรกทอรีปัจจุบันและไดเรกทอรีหลัก ดูเหมือนว่าจะเป็นสัญชาตญาณตอนนี้ แต่มีเหตุผลพิเศษอะไรบ้าง

3
วิธีตัด (เลือก) ฟิลด์จากการนับบรรทัดข้อความตั้งแต่สิ้นสุด?
ฉันรู้วิธีเลือกเขตข้อมูลจากบรรทัดโดยใช้คำสั่ง cut ตัวอย่างเช่นให้ข้อมูลต่อไปนี้: a,b,c,d,e f,g,h,i,j k,l,m,n,o คำสั่งนี้: cut -d, -f2 # returns the second field of the input line ผลตอบแทน: b g l คำถามของฉัน: ฉันจะเลือกเขตข้อมูลที่สองนับจากท้ายได้อย่างไร ในตัวอย่างก่อนหน้าผลลัพธ์จะเป็น: d i n

3
ฉันจะรู้ได้อย่างไรว่าฉันเป็น sudoer?
ระบบ Linux ทำงานอย่างไรเมื่อฉันไม่ได้ sudoer? นี่คือสิ่งที่เกิดขึ้นถ้าฉันพยายามใช้ sudo: server:/tmp>$ sudo cal [sudo] password for user: Sorry, try again. เป็นไปได้หรือไม่ที่ฉันไม่ทราบรหัสผ่านหรือสิ่งนี้หมายความว่าฉันไม่ได้เป็นคนโง่? (ในระบบเครื่องอื่นพิมพ์ออกมาว่าฉันไม่มี sudoer และเหตุการณ์จะถูกรายงาน)
32 permissions  sudo  root 

2
มีการสะกดบรรทัดคำสั่งเพื่อวางคอลัมน์ในไฟล์ CSV หรือไม่
มีไฟล์ของเนื้อหาต่อไปนี้: 1111,2222,3333,4444 aaaa,bbbb,cccc,dddd ฉันพยายามรับไฟล์เท่ากับต้นฉบับ แต่ไม่มีคอลัมน์ที่ n เช่น n = 2 (หรืออาจเป็น 3) 1111,2222,4444 aaaa,bbbb,dddd หรือสำหรับ n = 0 (หรืออาจเป็น 1) 2222,3333,4444 bbbb,cccc,dddd ไฟล์จริงสามารถเป็นกิกะไบต์ที่มีคอลัมน์ยาวนับหมื่น เช่นเคยในกรณีดังกล่าวฉันสงสัยว่าผู้วิเศษบรรทัดคำสั่งสามารถนำเสนอทางออกที่สง่างาม ... :-) ในกรณีจริงของฉันฉันต้องวางคอลัมน์แรก 2 คอลัมน์ซึ่งสามารถทำได้โดยการวางคอลัมน์แรกสองครั้งในลำดับ แต่ฉันคิดว่ามันน่าสนใจกว่าที่จะพูดคุยเล็กน้อย

2
หนึ่งจะเปลี่ยนความล่าช้าที่เกิดขึ้นหลังจากป้อนรหัสผ่านไม่ถูกต้องได้อย่างไร
หลังจากป้อนรหัสผ่านไม่ถูกต้องที่พรอมต์การลงชื่อเข้าใช้จะมีความล่าช้าประมาณ 3 วินาที ฉันจะเปลี่ยนสิ่งนั้นบนระบบ Linux ด้วย PAM ได้อย่างไร
32 login  pam  hardening 

4
find -exec + vs find | xargs: อันไหนให้เลือก?
ผมเข้าใจว่า-execสามารถใช้ตัวเลือกในการเลียนแบบพฤติกรรมของ+ xargsมีสถานการณ์ใดบ้างที่คุณต้องการให้ฟอร์มหนึ่งเหนืออีกฟอร์มหนึ่ง? ฉันมักจะชอบแบบฟอร์มแรกถ้าเพียงเพื่อหลีกเลี่ยงการใช้ท่อ ฉันคิดว่านักพัฒนาของfindต้องทำการเพิ่มประสิทธิภาพที่เหมาะสม ฉันถูกไหม?
32 bash  find  pipe  xargs 

3
บังคับให้หน้าจอ GNU reflow เป็นความกว้างของเทอร์มินัลปัจจุบันบน reattach?
ฉันต้องการบังคับให้หน้าจอ GNU reflow เป็นความกว้างของเทอร์มินัลที่มีอยู่เมื่อฉัน reattach เซสชัน ดูเหมือนว่าฉันจะทำงานอย่างถูกต้องก่อนที่ฉันจะอัพเกรดเครื่องเป็น CentOS 6 แต่ฉันไม่สามารถหาวิธีกู้คืนได้ ( TERM=xterm) เมื่อใดก็ตามที่ฉันแนบเซสชันโดยไม่คำนึงถึงสถานะเมื่อฉันถอดออกมันจะเปิดตัวที่ 80 คอลัมน์ปรับขนาดเทอร์มินัลของฉัน (PuTTY ในกรณีนี้) พร้อมกับมัน ฉันกำลังเปิดตัวและติดตั้งใหม่กับ: screen -aA -R <session> . screenrc ของฉันมีเฉพาะสิ่งต่อไปนี้และการผูกคีย์ที่ไม่เกี่ยวข้อง: term xterm defscrollback 10000 # status line at the bottom hardstatus on hardstatus alwayslastline hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y …

12
ค้นหาอุปกรณ์เก็บข้อมูลทั้งหมดที่ต่ออยู่กับเครื่อง Linux
ฉันต้องการค้นหาอุปกรณ์เก็บข้อมูลแบบเขียนได้ทั้งหมดที่เชื่อมต่อกับเครื่องที่กำหนดไม่ว่าจะติดตั้งหรือไม่ก็ตาม วิธี dopey ในการทำเช่นนี้คือลองทุกรายการ/devที่สอดคล้องกับอุปกรณ์ที่เขียนได้ (hd * และ sd *) มีวิธีแก้ปัญหาที่ดีกว่านี้หรือฉันควรติดกับอันนี้หรือไม่?
32 linux  storage 

2
ดาวน์โหลดซ้ำด้วย wget
ฉันมีปัญหากับคำสั่ง wget ต่อไปนี้: wget -nd -r -l 10 http://web.archive.org/web/20110726051510/http://feedparser.org/docs/ ควรดาวน์โหลดเอกสารที่เชื่อมโยงซ้ำทั้งหมดบนเว็บดั้งเดิม แต่ดาวน์โหลดได้เพียงสองไฟล์ ( index.htmlและrobots.txt) ฉันจะดาวน์โหลดแบบเรียกซ้ำของเว็บนี้ได้อย่างไร
32 wget 

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