Unix & Linux

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

3
ลบบรรทัด N สุดท้ายจากประวัติทุบตี
เมื่อตั้งใจวางไฟล์ลงในเชลล์มันจะใส่รายการไร้สาระที่น่าเกลียดมากมายในประวัติทุบตี มีวิธีที่สะอาดในการลบรายการเหล่านั้นหรือไม่ เห็นได้ชัดว่าฉันสามารถปิดเชลล์และแก้ไข.bash_historyไฟล์ด้วยตนเอง แต่อาจมี API บางชนิดที่สามารถแก้ไขประวัติของเชลล์ปัจจุบันได้หรือไม่

2
วิธีการจำความแตกต่างระหว่าง du และ df อย่างไร
duและdfทำสิ่งที่คล้ายกันดังนั้นฉันมักจะพบว่าตัวเองพิมพ์ผิด ฉันคิดว่าถ้าฉันรู้ว่า "du" และ "df" ย่อมาจากอะไรอาจทำให้จำได้ง่ายขึ้นว่าควรใช้อะไร อะไรคือวิธีที่จะแยกความแตกต่างระหว่างสองสิ่งนี้เพื่อให้ฉันสามารถจำได้ว่าการกระทำแบบใด
40 disk-usage  df 

5
วิธีการคัดลอกไดเรกทอรีด้วยการรักษาฮาร์ดลิงก์?
วิธีย้ายไดเรกทอรีที่มีไฟล์เหมือนกันจากพาร์ทิชั่นหนึ่งไปยังอีกพาร์ติชั่น? สมมติว่าเรามีพาร์ติชั่นติดตั้ง/mnt/Xพร้อมกับไดเรกทอรีแชร์ไฟล์ด้วยฮาร์ดลิงก์ วิธีย้ายไดเรกทอรีดังกล่าวไปยังพาร์ติชันอื่นปล่อยให้มันอยู่/mnt/Yกับการรักษาฮาร์ดลิงก์เหล่านั้น เพื่อให้ภาพประกอบดีขึ้นฉันหมายถึงอะไรโดย "ไดเรกทอรีแชร์ไฟล์ร่วมกันกับฮาร์ดลิงก์" นี่คือตัวอย่าง: # let's create three of directories and files mkdir -p a/{b,c,d}/{x,y,z} touch a/{b,c,d}/{x,y,z}/f{1,2,3,4,5} # and copy it with hardlinks cp -r -l a hardlinks_of_a หากต้องการเจาะจงมากขึ้นสมมติว่าขนาดไฟล์ทั้งหมดคือ 10G และแต่ละไฟล์มี 10 ลิงก์ คำถามคือวิธีการย้ายไปยังปลายทางด้วยการใช้ 10G (บางคนอาจพูดเกี่ยวกับการคัดลอกด้วย 100G และจากนั้นใช้การขจัดความซ้ำซ้อน - ไม่ใช่สิ่งที่ฉันถาม)
40 files  cp  hard-link 

2
วิธีนำทางภายในการค้นหาแบบย้อนกลับของ bash
ข้อเสนอทุบตีทำงานเพื่อค้นหากลับผ่าน+Ctrl Rจากนั้นหนึ่งสามารถพิมพ์ในส่วนหนึ่งของคำสั่งมันจะแสดงรายการที่เหมาะสมจากประวัติศาสตร์ สมมติว่านี่เป็นประวัติของฉัน: vim foo1 vim foo2 # I want to go here vim foo3 # this is where I land, how to go back? fooฉันค้นหา กดปุ่มCtrl+ Rอีกครั้งจะแสดงรายการค้นหาที่เหมาะสมถัดไป บ่อยครั้งที่มันเกิดขึ้นกับผมว่าผมเร็วเกินไปและการสำรวจที่ผ่านมาผลตั้งใจของฉันและแสดงให้เห็นและตอนนี้ฉันต้องการที่จะกลับไปvim foo3vim foo2 ดังนั้นคำถามของฉันคือฉันจะนำทางภายในการค้นหาแบบย้อนกลับได้อย่างไร

8
จะค้นหากระบวนการที่จะเขียนลงดิสก์เป็นประจำได้อย่างไร
ฉันจะค้นหากระบวนการใดที่เขียนลงดิสก์อย่างต่อเนื่อง ฉันชอบเวิร์กสเตชันของฉันใกล้จะเงียบและฉันเพิ่งสร้างระบบใหม่ (P8B75-M + Core i5 3450s - the 's' เพราะมันมีค่า TDP สูงสุดที่ต่ำกว่า) พร้อมกับแฟน ๆ เงียบ ๆ และติดตั้ง Debian Wheezy 64-bit บนมัน และมีบางอย่างเข้ามาในเส้นประสาทของฉัน: ฉันสามารถได้ยินรูปแบบบางอย่างเช่นถ้าฮาร์ดดิสก์กำลังเขียนหรือค้นหา someting ( เห็บ ... เห็บ ... เห็บ ... เห็บ ... trrrrrrล้างและทำซ้ำทุก ๆ วินาทีหรือไม่) ในอดีตฉันมีปัญหาที่คล้ายกันในอดีต (หลายปีที่ผ่านมา) และกลายเป็นว่ามีบันทึก CUPS หรืออะไรบางอย่างและฉันเพียงแค่เปลี่ยนเส้นทางที่บันทึก (ไม่สำคัญ) หนึ่งไปยังดิสก์ RAM (จริง) แต่ที่นี่ฉันไม่แน่ใจ ฉันพยายามต่อไปนี้: ls -lR …
40 linux  debian  logs  hard-disk 

4
แปลงวิดีโอ OGV เป็นภาพเคลื่อนไหว GIF หรือไม่
ฉันสร้างวิดีโอ OGV ด้วยgtk-recordmydesktopโปรแกรม screencasting พยายามจัดการปัญหานี้ที่นี่ด้วย bruteforce มากกว่า X ฉันสามารถดูวิดีโอด้วย VLC ได้ ตอนนี้งานคือการหาวิธีการแปลงวิดีโอ OGV เป็นภาพเคลื่อนไหว GIF เพื่อให้ฉันสามารถแสดงบน SE ฉันจะทำสิ่งนั้นได้อย่างไร

5
จะแสดงบรรทัด 2-4 หลังจากผลลัพธ์ grep แต่ละรายการอย่างไร
ฉันกำลังแยกวิเคราะห์ไฟล์เมลที่เก็บเซิร์ฟเวอร์รายงานเพื่อส่งอีเมลไม่สำเร็จ ฉันต้องการแยกที่อยู่อีเมลที่ไม่ดีออกเพื่อให้ฉันลบออกจากระบบ ล็อกไฟล์มีลักษณะดังนี้: ...some content... The mail system <slavicatomic118@hotmail.com>: host mx1.hotmail.com[65.54.188.94] said: 550 Requested action not taken: mailbox unavailable (in reply to RCPT TO command) ...some content... The mail system <oki88@optimumpro.net>: host viking.optimumpro.net[79.101.51.82] said: 550 Unknown user (in reply to RCPT TO command) ...some content... The mail system <sigirna_luka@yahoo.com>: host …
40 grep 

11
เพิ่มเติมด้วย 'sed'
ฉันพยายามดำเนินการทางคณิตศาสตร์ด้วยsedแต่ก็ยังคงรักษาตัวแปรของฉันเป็นสตริง อินพุตเป็นแบบนี้: $ echo 12 | sed 's/[0-9]*/&+3/' $ 12+3 ฉันต้องการที่จะมี 15 เป็นเอาท์พุท ฉันต้องทำการดำเนินการและแทนที่ผลลัพธ์ทางคณิตศาสตร์ในข้อความเดียวเท่านั้นเพราะฉันกำลังเรียกใช้โปรแกรมเป็น Python daemon และฉันต้องการหลีกเลี่ยงข้อความเช่นการเปลี่ยนเส้นทางstdoutบนไฟล์เปิดไฟล์เหล่านั้นดำเนินการดึงผลลัพธ์ทำ การเปลี่ยน สำหรับฉันsedดูเหมือนว่าดีที่สุดในการแสดงทั้งหมดในบรรทัดเดียว ฉันพยายามโยนทั้งอินพุตและเอาต์พุตในรูปแบบต่าง ๆ เช่น $ echo 12 | sed 's/[0-9]*/int(&+3)/' $ echo 12 | sed 's/[0-9]*/\int(&+3)/' $ echo 12 | sed 's/[0-9]*/\int(&+3)/' แต่ผลลัพธ์ที่ได้คือการพิมพ์ฟิลด์ที่สองเสมอ
40 sed  math 

4
เป็นไปได้ไหมที่จะกำหนดค่า ctrl-w (ลบคำ)?
โดยปกติCtrl+ Wลบกลับไปที่ช่องว่างสุดท้าย เป็นไปได้หรือไม่ที่จะกำหนดค่าให้ใช้อักขระเพิ่มเติมเช่น/? แก้ไข: เพื่อให้ชัดเจนยิ่งขึ้น: ฉันไม่ต้องการกำหนดค่าคีย์ให้ฉันต้องการหยุดการลบด้วย/เช่นกัน ตัวอย่าง: vim /foo/bar^W vim /foo/

5
ฉันจะค้นหาไฟล์ทั้งหมดที่ไม่มีสตริงข้อความได้อย่างไร?
ฉันสามารถใช้คำสั่งรวบรัดอะไรเพื่อค้นหาไฟล์ทั้งหมดที่ไม่มีสตริงข้อความ? ฉันลองสิ่งนี้ (โดยใช้ -v เพื่อสลับพารามิเตอร์ของ grep) โดยไม่มีโชค: find . -exec grep -v -l shared.php {} \; มีคนกล่าวว่าสิ่งนี้จะได้ผล: find . ! -exec grep -l shared.php {} \; แต่ดูเหมือนจะไม่ได้ผลสำหรับฉัน หน้านี้มีตัวอย่างนี้: find ./logs -size +1c > t._tmp while read filename do grep -q "Process Complete" $filename if [ $? -ne 0 ] ; …
40 grep  find  recursive 

2
ดำเนินการทุบตีสคริปต์ในการเข้าสู่ไดเรกทอรี
เป็นวิธีที่ดีที่สุดในการรันสคริปต์เมื่อเข้าสู่ไดเรกทอรีอะไร เมื่อฉันย้ายไปยังไดเรกทอรีใหม่ฉันต้องการทุบตีเพื่อเรียกใช้สคริปต์ projectSettings.bash เหมือนที่ RVM ทำ

1
ทำให้ diff ใช้ความกว้างเทอร์มินัลเต็มในโหมดเคียงข้างกัน
แอพพลิเคชั่นส่วนใหญ่ฉลาดเกี่ยวกับการใช้ความกว้างเต็มของเทอร์มินัลที่มีให้ เปลือกของฉันทำ, หน้าจอ, เป็นกลุ่ม, ฯลฯ อย่างไรก็ตามdiffในโหมดแบบเคียงข้างกัน ( -y) ไม่ได้ สิ่งนี้ทำให้ฉันโกรธ ใช้ความกว้างอักขระ 126 ตัวซึ่งไม่ได้แม้แต่ครึ่งหนึ่งของเทอร์มินัลความกว้างบล็อกของฉัน 270 -Wมองผ่านหน้าคนไม่ได้เปิดเผยอะไรโดยเฉพาะอย่างยิ่งเกี่ยวกับการปรับโดยอัตโนมัติความกว้างเพียงด้วยตนเองระบุผ่านทาง อาจมี "คุณสมบัติที่ซ่อนอยู่" ของdiffเพื่อให้ขยายโดยอัตโนมัติเต็มความกว้างของ terminal? หรือ; เส้นทางที่ง่ายที่สุดในการแทรก-W <terminalsize>คำสั่ง diff โดยอัตโนมัติเมื่อใดก็ตามที่ฉันเรียกใช้คืออะไร ฉันอยู่ภายใต้การสันนิษฐานว่าการผนวก -W กับทุกสิ่งไม่สามารถทำร้ายอะไรได้โดยอัตโนมัติเพราะมันจะหมายถึง "ใช้คอลัมน์ $ x" เท่านั้นซึ่งเป็นสิ่งที่ฉันต้องการเสมอไม่ว่าฉันจะอยู่ในโหมดแบบเคียงข้างกัน หรืออย่างอื่น
40 terminal  diff 

4
ทำอย่างไรถึงจะได้ผลลัพธ์ที่ไม่เหมือนใครโดยไม่ต้องเรียงลำดับข้อมูล?
$ cat data.txt aaaaaa aaaaaa cccccc aaaaaa aaaaaa bbbbbb $ cat data.txt | uniq aaaaaa cccccc aaaaaa bbbbbb $ cat data.txt | sort | uniq aaaaaa bbbbbb cccccc $ ผลที่ผมต้องการก็คือการแสดงทุกบรรทัดจากไฟล์ต้นฉบับลบที่ซ้ำกันทั้งหมด (ไม่เพียง แต่คนที่ติดต่อกัน) ขณะที่ยังคงคำสั่งเดิมของงบในแฟ้ม ในตัวอย่างนี้ผลลัพธ์ที่ฉันกำลังมองหาคือ aaaaaa cccccc bbbbbb ฉันจะใช้uniqงานการดำเนินการทั่วไปได้อย่างไร?

1
เลขฐานแปด chmod แรกคืออะไรในค่าตัวเลขสี่หลักสำหรับ
บางครั้งฉันเห็นchmodคำสั่งที่ใช้เลขฐานแปดสี่หลักแทนที่จะเป็นสามหลัก - ตัวเลือกแรกคืออะไร ตัวอย่างเช่นchmod 777เทียบเท่ากับchmod a+rwx; คำสั่งเดียวกันchmod 2777คืออะไร
40 chmod 

4
อะไรทำให้โปรแกรม OSX ไม่สามารถรันได้บน Linux
ฉันรู้ว่ามีความแตกต่างมากมายระหว่าง OSX และ Linux แต่สิ่งที่ทำให้แตกต่างกันอย่างสิ้นเชิงนั่นทำให้พวกเขาไม่ลงรอยกันอย่างลึกซึ้ง?

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