Unix & Linux

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

4
มีไฟล์กำหนดค่า 'rc' สำหรับ grep / egrep หรือไม่ (~ / .egreprc?)
ฉันมักจะทำ grep เมื่อทำการพัฒนาและมีส่วนขยายบางอย่างที่ฉันไม่ต้องการค้นหา (เช่น * .pyc) เป็นไปได้ไหมที่จะสร้าง ~ / .egreprc หรืออะไรทำนองนั้นและทำให้การกรองบางอย่างไม่แสดงผลไฟล์ pyc เสมอ เป็นไปได้หรือฉันจะต้องสร้างนามแฝงสำหรับใช้ grep ในลักษณะนี้และเรียกนามแฝงแทน grep หรือไม่

2
อะไรคือความแตกต่างระหว่างตารางพาร์ทิชันต่างๆ?
เมื่อฉันต้องการสร้างตารางพาร์ติชันใหม่ฉันมีตัวเลือกดังต่อไปนี้: aix amiga bsd dvh gpt mac msdos pc98 sun loop ค่าเริ่มต้นใน gparted ดูเหมือนmsdosว่าฉันคิดว่าเป็นตารางพาร์ทิชัน 'MBR' อย่างไรก็ตามgptเป็นรุ่นล่าสุด แต่มีการรองรับ Windows น้อยกว่า ฉันใช้ลีนุกซ์มาเป็นเวลานาน, แต่ฉันไม่เคยมองการแบ่งพาร์ติชั่นจริงๆ. ตัวเลือกต่าง ๆ และความแตกต่างของพวกเขาคืออะไร? มีหนึ่งแนะนำสำหรับดิสก์เท่านั้น Linux?

3
ฉันจะหยุดดูไฟล์ที่ซ่อนอยู่ใน Midnight Commander ได้อย่างไร
ผู้บัญชาการเที่ยงคืนเป็นเครื่องมือที่มีประโยชน์มากเมื่อเราใช้โหมดข้อความเท่านั้น แต่บางครั้งมันทำให้ฉันรำคาญที่ฉันต้องเห็นไฟล์ที่ซ่อนอยู่ทั้งหมดในโฟลเดอร์ (ไฟล์ที่ขึ้นต้นด้วย ".") ฉันพยายามหาวิธีที่จะเปลี่ยนแปลงการกำหนดค่าด้วยตัวเองแล้วมองไปที่หน้าคน แต่ฉันไม่ประสบความสำเร็จ ไม่มีใครรู้ว่าฉันจะทำอย่างไร

1
วิธีแสดงรายการไฟล์ใน zip โดยไม่มีข้อมูลเพิ่มเติมในบรรทัดคำสั่ง
ในบรรทัดคำสั่ง bash ของฉันเมื่อฉันใช้unzip -l test.zipฉันจะได้ผลลัพธ์เช่นนี้ Archive: test.zip Length Date Time Name --------- ---------- ----- ---- 810000 05-07-2014 15:09 file1.txt 810000 05-07-2014 15:09 file2.txt 810000 05-07-2014 15:09 file3.txt --------- ------- 2430000 3 files แต่ฉันสนใจเฉพาะบรรทัดที่มีรายละเอียดไฟล์ ฉันพยายามทำการกรองโดยใช้ grep เช่นนี้: unzip -l test.zip | grep -v Length | grep -v "\-\-\-\-" | g -v …

3
ฉันจะส่งออก diff diff สีให้น้อยลงได้อย่างไร
ฉันใช้ git diff ซึ่งสร้างเอาต์พุตสี อย่างไรก็ตามตอนนี้ฉันพบว่าฉันจำเป็นต้องใช้ diff ทั่วไปสำหรับบางสิ่งบางอย่างและมันให้ผลผลิตจำนวนมากที่อ่านยากเพราะขาดสี ฉันจะทำให้ diff สร้างเอาต์พุตที่อ่านได้และมีสีได้อย่างไร เป็นการดีที่จะลดขนาดให้เล็กลงเพื่อให้ง่ายต่อการตรวจสอบไฟล์ขนาดใหญ่
37 colors  diff  less 

5
วิธีการเปลี่ยนชื่อหลาย ๆ ไฟล์โดยใช้การค้นหา
ฉันต้องการเปลี่ยนชื่อหลายไฟล์ (file1 ... filen เป็น file1_renamed ... filen_renamed) โดยใช้คำfindสั่ง command: find . -type f -name 'file*' -exec mv filename='{}' $(basename $filename)_renamed ';' แต่รับข้อผิดพลาดนี้: mv: cannot stat ‘filename=./file1’: No such file or directory สิ่งนี้ไม่ทำงานเพราะชื่อไฟล์จะไม่ถูกตีความว่าเป็นตัวแปรเชลล์
37 shell  find 

5
วิธีที่แนะนำในการติดตั้งแพ็กเกจหลามบน Arch
วิธีที่แนะนำในการติดตั้งแพ็กเกจหลามบน Arch คืออะไร? ค้นหาพวกเขาใน AUR และติดตั้งพวกเขาจากที่นั่น (หรือสร้างPKGBUILDไฟล์เพื่อสร้างแพ็คเกจด้วยตัวเอง) หรือใช้pip? ฉันเริ่มต้นด้วยการติดตั้งสิ่งของจาก Pacman และ AUR และไม่ทราบว่าควรผสมกับpipแพ็คเกจหรือไม่

8
ฉันจะทำให้ Vim ทำงานอย่างไรเช่น "tail -f" ได้อย่างไร
ฉันต้องการทราบว่ามีวิธีที่จะทำให้ Vim ทำตัวเป็นแบบtail -fนี้หรือไม่ แม้แต่ปลั๊กอิน Vim ที่ดีที่สุดที่ฉันเคยพบมาก็ไม่ได้ทำตามที่ฉันคาดไว้ ผมต้องการที่จะเห็นการปรับปรุงแฟ้มในเวลาจริง แม้ว่าฉันจะอยู่ห่างจากแป้นพิมพ์ฉันต้องการให้ Vim โหลดบัฟเฟอร์อย่างต่อเนื่องและข้ามไปยังบรรทัดสุดท้าย ทำอย่างไร (ฉันไม่ต้องการโหลดไฟล์ทั้งหมดเนื่องจากไฟล์บันทึกบางไฟล์มีขนาดใหญ่มากวิธีที่ดีที่สุดคือการโหลดบรรทัดสุดท้ายเท่านั้นเช่นtail -fทำ)
36 vim  tail 

3
การ จำกัด ผู้ใช้ SSH / SCP / SFTP ไปยังไดเรกทอรี
มีวิธีง่ายๆในการ จำกัด ผู้ใช้ SCP / SFTP ไปยังไดเรกทอรีหรือไม่? วิธีการทั้งหมดที่ฉันเจอนั้นกำหนดให้ฉันต้องจำคุก chroot โดยการคัดลอกไบนารี แต่ฉันไม่คิดว่ามันจำเป็น
36 ssh  chroot  scp  sftp  openssh 

1
เราควรใช้อักขระ UTF-8 อย่าง⏰ใน bash / shell script หรือไม่?
รหัสง่าย ๆ ที่นี่ทำงานตามที่คาดไว้ในเครื่องของฉันหากเปิดตัวด้วยbash: function ⏰(){ date } ⏰ มีปัญหาสำหรับคนอื่นที่ใช้สิ่งนี้หรือเป็นสากลหรือไม่? ฉันสงสัยเพราะฉันไม่เคยเห็นอะไรแบบนี้ในซอร์สโค้ดอื่นในตอนนี้ แก้ไข: มีความเป็นไปได้ไม่ จำกัด สามารถใช้เพื่อแยกแยะบทบาทของฟังก์ชันกับการใช้อีโมจิได้อย่างรวดเร็ว A 💣สำหรับบางสิ่งที่สามารถแก้ไขหรือลบไฟล์ได้ a หากอยู่ในระหว่างดำเนินการ📃สำหรับเมนูแบบโต้ตอบ ... ฉันเดาว่าเราควรสร้างมาตรฐานสำหรับสิ่งเหล่านั้น แต่ดูเหมือนจะเป็นแนวคิดที่น่าสนใจ บางทีการสุ่มบรรทัดของอักขระ 5 ~ สามารถช่วยให้เราเข้าใจมากว่ารหัสกำลังทำอะไรอยู่ (แน่นอนเราต้องเรียนรู้วิธีอ่าน) แก้ไขเพิ่มเติม: ฉันให้มันยิง สำหรับตอนนี้ถ้าฉันพับฟังก์ชั่นทั้งหมดของฉันในโปรแกรมแก้ไข (หรือcat myscript.sh|grep function) พวกเขาจะมีลักษณะเช่นนี้ (ยูนิโค้ดของฉันดูดีขึ้นมากgeanyหรือเทอร์มินัลของฉันเมื่อเทียบกับที่นี่) function ⬚_1(){ function ⬚⬚_2(){ function ⬚⬚⬚_📃_D(){ function ⬚⬚⬚⬚_📃_X(){ function ⬚⬚⬚⬚⬚_📃_Y(){ function ⬚⬚⬚⬚⬚⬚_❓_P(){ function ⬚⬚⬚⬚_📃_Z(){ function ⬚⬚⬚⬚⬚_❓_U(){ …
36 bash  shell  unicode 

3
เหตุใดการเปิดไฟล์จึงเร็วกว่าการอ่านเนื้อหาตัวแปร
ในbashสคริปต์ฉันต้องการค่าต่าง ๆ จาก/proc/ไฟล์ จนถึงตอนนี้ฉันมีหลายสิบบรรทัด grepping ไฟล์โดยตรงเช่นนั้น: grep -oP '^MemFree: *\K[0-9]+' /proc/meminfo ในความพยายามที่จะทำให้มีประสิทธิภาพมากขึ้นฉันบันทึกเนื้อหาของไฟล์ไว้ในตัวแปรแล้วทำสิ่งต่อไปนี้: a=$(</proc/meminfo) echo "$a" | grep -oP '^MemFree: *\K[0-9]+' แทนที่จะเปิดไฟล์หลายครั้งควรเปิดเพียงครั้งเดียวและ grep เนื้อหาตัวแปรซึ่งฉันคิดว่าน่าจะเร็วกว่า - แต่อันที่จริงมันช้ากว่า: bash 4.4.19 $ time for i in {1..1000};do grep ^MemFree /proc/meminfo;done >/dev/null real 0m0.803s user 0m0.619s sys 0m0.232s bash 4.4.19 $ a=$(</proc/meminfo) bash 4.4.19 $ …

3
ท่อส่ง จำกัด การใช้หน่วยความจำอย่างไร
Brian Kernighan อธิบายในวิดีโอนี้ถึงการดึงดูดเบลล์แล็บในช่วงต้นให้กับภาษา / โปรแกรมเล็ก ๆ เครื่องจักรขนาดใหญ่จะเป็น 64 k-bytes - K ไม่ใช่ M หรือ G - และนั่นหมายความว่าโปรแกรมแต่ละโปรแกรมไม่สามารถมีขนาดใหญ่มากดังนั้นจึงมีแนวโน้มที่จะเขียนโปรแกรมขนาดเล็กและกลไกของท่อ โดยทั่วไปการเปลี่ยนเส้นทางอินพุตเอาต์พุตทำให้สามารถเชื่อมโยงโปรแกรมหนึ่งไปยังอีกโปรแกรมหนึ่งได้ แต่ฉันไม่เข้าใจว่าวิธีนี้จะ จำกัด การใช้หน่วยความจำอย่างไรเนื่องจากต้องเก็บข้อมูลใน RAM เพื่อส่งระหว่างโปรแกรม จากวิกิพีเดีย : ในระบบที่เหมือนยูนิกซ์ส่วนใหญ่กระบวนการทั้งหมดของไปป์ไลน์จะเริ่มพร้อมกันมีการเชื่อมต่อกับสตรีมอย่างเหมาะสมและจัดการโดยตัวกำหนดตารางเวลาร่วมกับกระบวนการอื่น ๆ ทั้งหมดที่ทำงานบนเครื่อง สิ่งสำคัญในเรื่องนี้คือการตั้งค่าท่อ Unix นอกเหนือจากการใช้งานไปป์อื่น ๆ คือแนวคิดของการบัฟเฟอร์: ตัวอย่างเช่นโปรแกรมส่งอาจสร้าง 5,000 ไบต์ต่อวินาทีและโปรแกรมรับอาจยอมรับได้ 100 ไบต์ต่อวินาทีเท่านั้น แต่ไม่มี ข้อมูลสูญหาย แต่ผลลัพธ์ของโปรแกรมส่งจะถูกเก็บไว้ในบัฟเฟอร์แทน เมื่อโปรแกรมรับข้อมูลพร้อมที่จะอ่านข้อมูลโปรแกรมถัดไปในไปป์ไลน์จะอ่านจากบัฟเฟอร์ ใน Linux ขนาดของบัฟเฟอร์คือ 65536 ไบต์ (64KB) ตัวกรองบุคคลที่สามโอเพนซอร์สที่เรียกว่า bfr …
36 pipe  history 

6
การลบไฟล์หลายพันล้านไฟล์จากไดเรกทอรีในขณะที่เห็นความคืบหน้าเช่นกัน
ฉันมีไดเรกทอรี 30 TB ที่มีไฟล์เป็นพันล้านไฟล์ซึ่งเป็นไฟล์ JPEG ทั้งหมด ฉันกำลังลบแต่ละไฟล์ของไฟล์ดังนี้: sudo rm -rf bolands-mills-mhcptz คำสั่งนี้จะทำงานและไม่แสดงอะไรเลยว่ามันทำงานหรือไม่ ฉันต้องการดูว่ามันเป็นการลบไฟล์หรือสถานะปัจจุบันของคำสั่งคืออะไร

5
ฉันจะปรับขนาดตัวจัดการหน้าต่าง i3 สำหรับการแสดงผล HiDPI ของฉันได้อย่างไร
ฉันมี Dell XPS 13 9343 2015 ที่มีความละเอียด 3200x1800 พิกเซล ฉันพยายามที่จะใช้ตัวจัดการ windows i3 บนมัน แต่ทุกอย่างเล็กและอ่านยาก ฉันจัดการเพื่อการใช้งานทุกขนาด (Firefox, terminal, ฯลฯ ... ) โดยใช้.Xresources: ! Fonts {{{ Xft.antialias: true Xft.hinting: true Xft.rgba: rgb Xft.hintstyle: hintfull Xft.dpi: 220 ! }}} แต่อินเทอร์เฟซ i3 ยังไม่ปรับขนาด ... ฉันเข้าใจว่าxrandr --dpi 220อาจแก้ปัญหาได้ แต่ฉันไม่รู้ว่าจะใช้ยังไง / ที่ไหน ใครช่วยสอนฉันเกี่ยวกับปัญหานี้ได้ไหม

7
มันเป็น UUOC (ใช้แมวไร้ประโยชน์) เพื่อเปลี่ยนเส้นทางไฟล์หนึ่งไปยังอีกไฟล์หนึ่งหรือไม่?
ถ้าผมต้องการที่จะทำให้เนื้อหาของfile2ตรงกับเนื้อหาของผมเห็นได้ชัดว่าสามารถทำงานเพียงfile1cp file1 file2 แต่ถ้าผมต้องการที่จะรักษาทุกอย่างที่เกี่ยวกับการfile2 ยกเว้นเนื้อหาเจ้าของสิทธิ์คุณสมบัติการขยาย, ACL ของการเชื่อมโยงอย่างหนัก ฯลฯ ฯลฯ แล้วฉันจะไม่ต้องการที่จะทำงานcp. * ในกรณีที่ว่าผมแค่อยากจะป๋อม เนื้อหาของเข้าfile1file2 ดูเหมือนว่าต่อไปนี้จะทำ: < file1 > file2 แต่มันไม่ทำงาน file2ถูกตัดทอนเป็นไม่มีอะไรและไม่ได้เขียนถึง อย่างไรก็ตาม cat < file1 > file2 ไม่ทำงาน มันทำให้ฉันประหลาดใจว่ารุ่นแรกไม่ทำงาน รุ่นที่สองเป็น UUOC หรือไม่ มีวิธีการทำเช่นนี้โดยไม่ต้องใช้คำสั่งเพียงแค่ใช้การเปลี่ยนเส้นทาง? หมายเหตุ: ฉันทราบว่า UUOC เป็นจุดอวดความรู้มากกว่ารูปแบบการต่อต้านที่แท้จริง * ตามที่ค้นพบ tniles09 จริง ๆแล้วcp จะใช้งานได้ในกรณีนี้

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