คำถามติดแท็ก utilities

โปรแกรมขนาดเล็กที่ใช้ในบรรทัดคำสั่งเพื่อทำงานเฉพาะด้าน

2
ปัญหาเกี่ยวกับคำสั่งติดตั้งเพื่อคัดลอกไดเรกทอรีทั้งหมด
ดังนั้นฉันจึงมี repo กับไฟล์ configบางตัวและฉันพยายามสร้าง a makefileเพื่อติดตั้งใน homedir ปัญหาที่ฉันมีคือเมื่อฉันเรียกใช้คำสั่งต่อไปนี้ในทุบตี install -m 755 -d ~/path/to/dotfilesDir/ ~/ ดูเหมือนไม่มีอะไรเกิดขึ้นในขณะที่ install -m 755 ~/path/to/dotfilesDir/{file1,file2,...} ~/ ทำงานตามที่ตั้งใจไว้ ทำไมโซลูชันแรก (ง่ายกว่าและสะอาดกว่า) ไม่ทำงาน

4
เก็บเอาต์พุตของคำสั่งลงในริงบัฟเฟอร์
ฉันมีคำสั่งที่ใช้เวลานานซึ่งสร้างเอาต์พุตจำนวนมากบน stdout ฉันต้องการเก็บตัวอย่างเช่นสามวันสุดท้ายหรือ gibibyte ล่าสุด (หลีกเลี่ยงการตัดเส้นตรงกลาง) และถ้าเป็นไปได้ในไฟล์ไฟล์ไม่เกิน 20 MiB แต่ละอันถูกตั้งชื่อด้วยส่วนต่อท้ายที่เป็นตัวเลขหรือเวลาประทับ สิ่งที่ต้องการ: my-cmd | magic-command --output-file-template=my-cmd-%t \ --keep-bytes=1G \ --keep-time=3d \ --max-chunk-size=20M \ --compress=xz จะเขียน: my-cmd-2014-09-05T10:04:23Z เมื่อถึง 20M มันจะบีบอัดและเปิดไฟล์ใหม่และอื่น ๆ หลังจากนั้นสักครู่มันจะเริ่มลบไฟล์ที่เก่าที่สุด คำสั่งดังกล่าวมีอยู่จริงหรือไม่? ฉันรู้logrotateและความสามารถในการจัดการไฟล์ที่เขียนโดยแอปพลิเคชั่นอื่น แต่ฉันกำลังมองหาสิ่งที่ง่ายกว่าที่ไม่เกี่ยวข้องกับการตั้งค่างาน cron ระบุกฎระงับกระบวนการ ฯลฯ

2
ฟองน้ำจาก moreutils - ความแตกต่างในการเปลี่ยนเส้นทางของเชลล์คืออะไร ตัวอย่างที่มีประโยชน์
> brew install moreutils ==> Downloading https://homebrew.bintray.com/bottles/moreutils-0.55.yosemite.bottle.tar.gz ######################################################################## 100.0% ==> Pouring moreutils0.55.yosemite.bottle.tar.gz 🍺 /usr/local/Cellar/moreutils/0.55: 67 files, 740K ฟองน้ำอ่านอินพุตมาตรฐานและเขียนมันออกไปยังไฟล์ที่ระบุ แตกต่างจากการเปลี่ยนเส้นทางของเชลล์ฟองน้ำดูดซับอินพุตทั้งหมดก่อนที่จะเขียนไฟล์เอาต์พุต สิ่งนี้อนุญาตให้สร้างท่อที่อ่านและเขียนไปยังไฟล์เดียวกัน ฉันไม่เข้าใจ โปรดยกตัวอย่างที่มีประโยชน์ให้ฉัน การดูดซับหมายถึงอะไร

3
หัวกินอักขระพิเศษ
คำสั่ง shell ต่อไปนี้คาดว่าจะพิมพ์บรรทัดคี่ของอินพุตสตรีมเท่านั้น: echo -e "aaa\nbbb\nccc\nddd\n" | (while true; do head -n 1; head -n 1 >/dev/null; done) aaaแต่มันเป็นเพียงแค่พิมพ์บรรทัดแรก: สิ่งเดียวกันจะไม่เกิดขึ้นเมื่อใช้กับตัวเลือก-c( --bytes): echo 12345678901234567890 | (while true; do head -c 5; head -c 5 >/dev/null; done) คำสั่งนี้ส่งออก1234512345ตามที่คาดไว้ แต่นี้จะทำงานเฉพาะในcoreutilsการดำเนินงานของheadยูทิลิตี้ busybox12345การดำเนินงานยังคงกินอักขระพิเศษเพื่อการส่งออกเป็นเพียง ฉันเดาว่าวิธีการใช้งานเฉพาะอย่างนี้ทำเพื่อการเพิ่มประสิทธิภาพ คุณไม่สามารถรู้ได้ว่าเส้นไหนจะจบลงดังนั้นคุณจะไม่ทราบว่าต้องอ่านตัวอักษรกี่ตัว วิธีเดียวที่จะไม่ใช้อักขระพิเศษจากอินพุตสตรีมคือการอ่านสตรีมไบต์เป็นไบต์ แต่การอ่านจากสตรีมทีละหนึ่งไบต์อาจช้า ดังนั้นฉันเดาว่าheadอ่านอินพุตสตรีมไปยังบัฟเฟอร์ใหญ่พอสมควรแล้วนับจำนวนบรรทัดในบัฟเฟอร์นั้น ไม่สามารถพูดแบบเดียวกันสำหรับกรณีได้เมื่อใช้--bytesตัวเลือก ในกรณีนี้คุณรู้จำนวนไบต์ที่คุณต้องอ่าน ดังนั้นคุณอาจอ่านจำนวนไบต์นี้อย่างแน่นอนและไม่มากกว่านั้น corelibsการดำเนินการจะใช้โอกาสนี้ แต่busyboxหนึ่งไม่ก็ยังคงอ่านไบต์มากขึ้นกว่าที่จำเป็นเข้าไปในกันชน มันอาจทำเพื่อทำให้การใช้งานง่ายขึ้น ดังนั้นคำถาม …

4
มีเครื่องมือในการค้นหาสถานะทั่วไปของเครื่องหรือไม่? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ฉันต้องการเครื่องมือสำหรับ linux ที่จะทำให้ฉันมีความคิดทั่วไปว่าเกิดอะไรขึ้นกับเครื่อง ข้อมูลตัวอย่างฉันกำลังมองหา: มีการติดตั้ง daemons ใด (www, db, อื่น ๆ ) กำหนดค่าที่ตั้งสำหรับบริการเหล่านั้น เคอร์เนลและ distro คือเซิร์ฟเวอร์ที่ทำงานและอายุเท่าไหร่ distro คือ (จะรักถ้าเครื่องมือจะบอกด้วยว่า distro นั้นยังรองรับอยู่หรือไม่) ข้อมูล RAM, CPU และพื้นที่ดิสก์ ไดรฟ์ที่ติดตั้ง / เส้นทาง ข้อมูลเกี่ยวกับบัญชีของฉัน: ฉันเป็น sudoer, ข้อมูลที่เป็นประโยชน์อื่น ๆ ข้อมูลเครือข่ายทั่วไป (พอร์ตที่ถูกปิดกั้นหรือค่อนข้างเปิด) แก้ไข: ล่าม / คอมไพเลอร์ที่ติดตั้งและเวอร์ชัน (C, Python ฯลฯ ) …

1
ทำความเข้าใจกับเอาต์พุตของคำสั่ง `who -a`
ฉันถามคำถามนี้เพราะในขณะที่มีคำตอบมากมายบนอินเทอร์เน็ตที่แสดงว่าwho -aเป็นตัวเลือกไม่มีใครอธิบายวิธีการอ่านผลลัพธ์ หากคุณสามารถให้ลิงค์ไปยังเว็บไซต์ออนไลน์ที่อธิบายสิ่งนี้ได้นั่นก็จะเป็นคำตอบที่ยอดเยี่ยมพอ ๆ กัน นี่คือตัวอย่างของสิ่งที่ฉันต้องการถอดรหัส: [bo@hostname ~]$ who -a Jun 17 03:47 590 id=si term=0 exit=0 system boot Jun 17 03:47 run-level 3 Jun 17 03:47 last=S Jun 17 03:48 4424 id=l3 term=0 exit=0 LOGIN tty1 Jun 17 03:48 5503 id=1 LOGIN tty2 Jun 17 03:48 5504 id=2 LOGIN …
14 sshd  utilities 


3
มีทางเลือกอื่นสำหรับ `dd 'หรือไม่?
ฉันควรใช้เครื่องมืออื่นใดในการอ่านและเขียนไฟล์ที่มีการตัด, การค้นหาและการข้าม ตัวเลือกบรรทัดคำสั่งของ dd ดูไม่สะดวกและแปลกปลอมและฉันไม่ชอบการเลือกระหว่างโหมดการค้นหาที่ช้า แต่แม่นยำ ( bs=1) และรวดเร็ว แต่โหมดยืดหยุ่น ( bs=4kหรืออะไรก็ตาม) มีเครื่องมือที่ทันสมัยกว่าในการอ่าน 555 ไบต์จากไฟล์หนึ่งไฟล์ (หรือไพพ์หรือซ็อกเก็ตหรือ dev) จากตำแหน่ง 31337 และเขียนลงในไฟล์อื่นที่ตำแหน่ง 128205 (โดยใช้บล็อก 512 + 43) โดยมีหรือไม่มีการตัดปลาย
14 files  utilities  dd  binary 

1
`unbuffer` หรือ` stdbuf` สำหรับการลบ stdout buffering?
มีความแตกต่างระหว่าง unbuffer (1) และ stdbuf (1) หรือไม่? จากสิ่งที่ฉันรวบรวม unbuffer ทำมากกว่า "ความพยายามที่ดีที่สุด" ในการเรียกใช้ฟังก์ชัน libc set (X) buf ที่จุดเริ่มต้นแล้วปล่อยให้สิ่งต่าง ๆ เป็นอย่างไร
13 utilities  io  stdout  buffer 

2
`ทดสอบ 'และ` [' - ไบนารีต่างกันมีความแตกต่างกันอย่างไร
ผมสังเกตเห็นในขณะที่ตอบคำถามที่ว่าคนอื่นtestและ[เป็นไบนารีแตกต่างกัน แต่[manpage ดึงขึ้นtestมา นอกจากข้อกำหนดสำหรับการจบ]แล้วยังมีความแตกต่างหรือไม่? ถ้าไม่ทำไมพวกเขาแยกไบนารีแทนที่จะถูกเชื่อมโยงกัน? (พวกเขายังสร้างbashภายในและbashไม่แสดงความแตกต่างเช่นกัน)

2
ทางเลือกในการรับชมซึ่งสนับสนุนสี
ฉันมีคำสั่ง ( phpunit) ซึ่งมีเอาต์พุตสี ตามwatchคำสั่งฉันควรจะสามารถใช้--colorธงเพื่อให้การแสดงผลสีผ่าน อย่างไรก็ตามสิ่งนี้ไม่ทำงาน มีวิธีอื่นในการแก้ปัญหานี้หรือไม่?
12 bash  utilities  watch 

3
มีวิธีที่จะทำให้ Perl - ฉันไม่ได้เชื่อมโยงการอุดตัน?
เพื่อนของฉันชี้ให้เห็นว่าถ้าคุณ: perl -pi.bak -e 's/foo/bar/' somefile เมื่อ "somefile" เป็น symlink จริง Perl จะทำตามที่เอกสารบอกว่าจะทำ: ทำได้โดยเปลี่ยนชื่อไฟล์อินพุตเปิดไฟล์เอาต์พุตโดยใช้ชื่อดั้งเดิมและเลือกไฟล์เอาต์พุตนั้นเป็นค่าเริ่มต้นสำหรับคำสั่ง print () ส่วนขยายหากให้มาจะใช้ในการแก้ไขชื่อของไฟล์เก่าเพื่อทำสำเนาสำรอง [... ] ซึ่งส่งผลให้ symlink ใหม่ "somefile.bak" ชี้ไปที่ไฟล์จริงที่ไม่เปลี่ยนแปลงและไฟล์ใหม่ "somefile" ที่มีการเปลี่ยนแปลงปกติพร้อมการเปลี่ยนแปลง ในหลายกรณีการติดตาม symlink จะเป็นพฤติกรรมที่ต้องการ (แม้ว่าจะออกจากตำแหน่งที่ถูกต้องของไฟล์. bak ที่ไม่ชัดเจน) มีวิธีง่ายๆในการทำเช่นนี้นอกเหนือจากการทดสอบ symlink ใน wrapper และการจัดการกรณีอย่างเหมาะสมหรือไม่? ( sedทำสิ่งเดียวกันเพื่อสิ่งที่คุ้มค่า)


2
เหตุใดจึงมีการผสมผสานของ symlink และ hardlinks ใน / bin
ฉันเข้าใจความแตกต่างทางเทคนิคระหว่าง symlink และ hardlinks นี่เป็นคำถามเกี่ยวกับการใช้ในทางปฏิบัติโดยเฉพาะฉันอยากรู้ว่าทำไมทั้งสองถูกใช้ในสภาพที่คล้ายกัน: /binไดเรกทอรี นี่คือรายการในระบบของฉัน: ~$ ls -lai /bin total 10508 32770 drwxr-xr-x 2 root root 4096 Jun 14 11:47 . 2 drwxr-xr-x 28 root root 4096 Sep 6 13:15 .. 119 -rwxr-xr-x 1 root root 959120 Mar 28 22:02 bash 2820 -rwxr-xr-x 3 root root 31112 Dec …

2
การค้นหาประเภทไฟล์ที่ถือว่านามสกุลไม่ถูกต้อง
ฉันมีภาพเก็บถาวรฉันติดตาม บางครั้งเว็บไซต์ที่ฉันดึงพวกเขาจากการจัดรูปแบบไฟล์ในขณะที่รักษานามสกุลเดียวกันส่วนใหญ่มักจะทำให้ภาพ PNG เป็น JPG ของที่ยังคงชื่อ ".png" มีวิธีการค้นพบเมื่อสิ่งนี้เกิดขึ้นและแก้ไขโดยอัตโนมัติหรือไม่ เมื่อใช้ Windows ฉันใช้ IrfanView สำหรับสิ่งนี้ แต่ต้องใช้ Wine wrapper

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