Unix & Linux

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

5
แสดงชื่อไฟล์ที่จุดเริ่มต้นของแต่ละบรรทัดเมื่อปรับหลายไฟล์พร้อมกันหรือไม่
เมื่อปรับหลายไฟล์พร้อมกันตามที่แสดงด้านล่างมีวิธีใดบ้างที่จะแสดงชื่อไฟล์ที่จุดเริ่มต้นของแต่ละบรรทัด? tail -f one.log two.log กระแสไฟขาออก ==> one.log <== contents of one.log here... contents of one.log here... ==> two.log <== contents of one.log here... contents of two.log here.. กำลังมองหาบางสิ่งที่ชอบ one.log: contents of one.log here... one.log: contents of one.log here... two.log: contents of two.log here... two.log: contents of two.log here...
14 tail 

2
ใช้ bash's `/ dev / udp` ฉันจะรู้ได้อย่างไรว่าพอร์ตนั้นเปิดอยู่
ฉันไม่สามารถเข้าถึงnetcatหรือnmapดังนั้นฉันพยายามใช้bashและ/dev/udp/ไฟล์พิเศษเพื่อทดสอบพอร์ต ฉันสามารถทำสิ่งที่ชอบ: echo "" > /dev/udp/example.com/8000 แต่$?จะเป็นเสมอ0เมื่อใช้ UDP ฉันสมมติว่านั่นเป็นเพราะค่าส่งคืนของecho ""คำสั่งถูกต้องหรือไม่ โดยทั่วไปฉันพยายามทำซ้ำสิ่งที่ฉันสามารถทำได้ด้วยnmapและnetcat: nmap -sU -p 8000 example.com | grep open >/dev/null && echo 'open' nc -z -u example.com 8000 && echo 'open' ฉันจะทำสิ่งนี้ด้วยได้/dev/udpอย่างไร

1
ใช้ inotifywait พร้อมกับเสียงเรียกเข้า
ฉันมีสคริปต์ง่ายๆที่ตรวจสอบไฟล์สำหรับการเปลี่ยนแปลงและ rsyncs ด้วยสำเนาระยะไกล: #!/bin/bash while inotifywait -e close_write somefile do rsync somefile user@host.domain:./somefile done มันใช้งานได้ดีกับนาโน แต่ล้มเหลวด้วยเสียงเรียกเข้า เมื่อฉันใช้ nano มันจะออกผลลัพธ์: somefile CLOSE_WRITE,CLOSE และเริ่มวนรอบถัดไปรอรุ่นอื่น เมื่อฉันใช้เป็นกลุ่มจะไม่มีผลลัพธ์สคริปต์จะปิดด้วยรหัสออก 0 ฉันทำการวิจัยบางอย่างและพบว่า close_write เป็นพารามิเตอร์ที่ถูกต้องสำหรับ uing initofywait พร้อมกับ vim (ตอนแรกฉันต้องการใช้เหตุการณ์แก้ไข) แต่ด้วยเหตุผลบางอย่างมันล้มเหลวสำหรับฉัน
14 files  vim  rsync  inotify 

2
ลบไฟล์ที่เก่ากว่าไฟล์ที่ระบุ
ฉันจำเป็นต้องลบไฟล์ทั้งหมดที่เก่ากว่าไฟล์เฉพาะจากโฟลเดอร์ ใช้ bash บน CentOS 7 ฉันมีทางออกสำหรับสิ่งนี้ แต่ฉันคิดว่าควรมีวิธีที่หรูหรากว่านี้: reference_file=/my/reference/file get_modify_time() { stat $1 | grep -Po "Modify: \K[0-9- :]*" } pit=$(get_modify_time $reference_file) for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done

3
เซิร์ฟเวอร์ NFS ของฉันรุ่นใดที่ใช้งานอยู่
ฉันกำลังติดตั้งระบบไฟล์ NFS บนเครื่องของฉัน ฉันจะทราบได้อย่างไรว่าโปรโตคอล NFS รุ่นใดที่เซิร์ฟเวอร์ใช้ ฉันไม่สามารถเข้าถึงเครื่องเซิร์ฟเวอร์ NFS แต่ฉันมีรูทบนเครื่องไคลเอนต์ของฉัน มีสิ่งใดบ้างที่ฉันสามารถเรียกใช้บนเครื่องไคลเอนต์ของฉันเพื่อระบุเวอร์ชันของโพรโทคอล NFS ที่เซิร์ฟเวอร์ใช้อยู่หรือรุ่นใดที่รองรับ ฉันไม่สามารถค้นหาข้อมูลที่เป็นประโยชน์ใน/var/log/messagesหรือผลลัพธ์การดีบักเคอร์เนล ( dmesg) ฉันลองใช้งานnfsstatแล้ว แต่ไม่แน่ใจว่าเป็นข้อมูลที่มีประโยชน์หรือไม่ อย่างไรก็ตามเมื่อฉันเรียกใช้nfsstat -sเพื่อขอข้อมูลเกี่ยวกับเซิร์ฟเวอร์ฉันไม่เห็นประโยชน์ใด ๆ : # nfsstat -s Server rpc stats: calls badcalls badfmt badauth badclnt 0 0 0 0 0 เมื่อฉันnfsstat -cขอข้อมูลเกี่ยวกับลูกค้าฉันเห็นข้อมูลบางอย่างเกี่ยวกับClient nfs v3แต่ฉันไม่แน่ใจว่าจะตีความสิ่งนี้อย่างไร สิ่งนี้บอกอะไรฉันเกี่ยวกับโปรโตคอลที่ใช้ระหว่างเครื่องไคลเอนต์ของฉันและเซิร์ฟเวอร์ NFS หรือไม่? มันหมายความว่าฉันกำลังใช้ v3 ของโปรโตคอล NFS อยู่หรือเปล่า? มันบอกอะไรฉันเกี่ยวกับโพรโทคอล …


3
ตัวแทน GPG ไม่ได้ลบกุญแจ SSH ของฉันจากพวงกุญแจ
ฉันมีปัญหาหนักใจจริงๆ ฉันไม่สามารถgpg-agentลบคีย์ SSH ของฉันออกจากพวงกุญแจได้และยังคงมีอยู่หลังจากรีบูตหลายครั้ง $ ssh-add -D SSH_AGENT_FAILURE Failed to remove all identities. แม้ว่าฉันจะบอกให้ลบข้อมูลระบุตัวตน: $ ssh-add -d /path/to/private/key Identity removed: /path/to/private/key ฉันดูแล้ว $ ssh-add -l 4096 1b:cb:52:a6:e5:13:e6:78:14:12:92:8f:34:8f:92:88 /path/to/private/key และมันยังอยู่ที่นั่น สิ่งนี้ถูกแคชไว้ที่ไหน ดูเหมือนว่าจะมีการเขียนไปยังดิสก์ด้วยเหตุผลบางอย่างซึ่งเป็นสิ่งที่น่ากลัวสำหรับตัวแทน SSH ที่จะทำ ฉันกำลังเรียกใช้สิ่งต่อไปนี้เพื่อเริ่มต้นgpg-agent: gpg-agent --enable-ssh-support --daemon ทุกอย่างทำงานได้ดี แต่แคชไฟล์นี้อยู่ที่ไหนสักแห่งและฉันต้องลบมัน
14 ssh  gpg-agent 

5
ไฟล์ grep จากรายการ
ฉันกำลังพยายามเรียกใช้ grep กับรายการของไฟล์สองสามร้อย: $ head -n 3 <(cat files.txt) admin.php ajax/accept.php ajax/add_note.php อย่างไรก็ตามแม้ว่าฉันกำลังค้นหาสตริงที่ฉันรู้ว่าพบในไฟล์ต่อไปนี้จะไม่ค้นหาไฟล์: $ grep -i 'foo' <(cat files.txt) $ grep -i 'foo' admin.php The foo was found ฉันคุ้นเคยกับการ-fตั้งค่าสถานะซึ่งจะอ่านรูปแบบจากไฟล์ แต่จะอ่านไฟล์อินพุตได้อย่างไร? ฉันได้พิจารณาวิธีแก้ปัญหาที่น่ากลัวของการคัดลอกไฟล์ไปยังไดเรกทอรีชั่วคราวตามที่cpดูเหมือนว่าจะสนับสนุน<(cat files.txt)รูปแบบและจากนั้นมีการ grepping ไฟล์ เชอร์ลี่ย์มีวิธีที่ดีกว่า

1
เปลี่ยนธีม Zsh ใน Android Studio
ฉันเพิ่งกระโดดขึ้นเรือมาzshและฉันใช้Oh my Zsh! blinksกระทู้ มันดูดีมากในเทอร์มินัล OSX แต่มันดูแย่มากในเทอร์มินัลของ Android Studio ดังนั้นคำถามของฉันคือมีวิธีการตรวจสอบว่าเซสชั่นนี้ได้เปิดใน Android Studio และไม่ได้อยู่ใน Terminal OSX และเปลี่ยนzshชุดรูปแบบตามที่?

1
ไวยากรณ์ HISTTIMEFORMAT
มีจำนวนมากมีbashคำแนะนำที่รวมถึงการเพิ่มเส้นดังกล่าวเป็นHISTTIMEFORMAT='%d/%m/%y %T 'หรือHISTTIMEFORMAT="%F %T "ไปหรือ~/.bashrc/etc/bash.bashrc มีช่องว่างเสมอก่อนที่จะพูดสุดท้าย HISTTIMEFORMAT='%d/%m/%y %T'เช่นไม่เคย ทำไมนี้

3
ฉันจะเริ่มต้นกระบวนการด้วยชื่อใด ๆ ที่ไม่ทำอะไรได้บ้าง?
ฉันต้องการเริ่มต้นกระบวนการที่ไม่ทำอะไรเลย แต่ยังคงทำงานอยู่ ว่าฉันเริ่มกระบวนการที่เรียกว่าsadhadxkและเมื่อฉันเรียกใช้pgrep -x "sadhadxk"ฉันจะได้รับหมายเลข PID กลับเช่นกระบวนการปกติใด ๆ ทำงาน ดังนั้นมีวิธีใดบ้างที่จะเริ่มกระบวนการหลอกตา?
14 bash  process 

2
กระบวนการ init สามารถเป็นเชลล์สคริปต์ใน Linux ได้หรือไม่
ฉันกำลังผ่านการสอนเกี่ยวกับการตั้งค่า initramfsที่กำหนดเองซึ่งระบุว่า: สิ่งเดียวที่ขาดหายไปคือ / init ไฟล์เรียกทำงานในรูทของ initramfs ที่ถูกเรียกใช้โดยเคอร์เนลเมื่อโหลดแล้ว เนื่องจาก sys-apps / busybox มีเชลล์ที่ใช้งานได้อย่างสมบูรณ์ซึ่งหมายความว่าคุณสามารถเขียนไบนารี / init ของคุณเป็นเชลล์สคริปต์แบบง่าย ๆ (แทนที่จะทำให้มันเป็นแอพพลิเคชั่นที่ซับซ้อนที่เขียนใน Assembler หรือ C ที่คุณต้องรวบรวม) และให้ตัวอย่างของ init เป็นเชลล์สคริปต์ที่ขึ้นต้นด้วย #!/bin/busybox sh จนถึงตอนนี้ฉันอยู่ภายใต้การแสดงผลที่ init เป็นกระบวนการหลักที่เปิดตัวและกระบวนการพื้นที่ผู้ใช้อื่น ๆ ทั้งหมดเป็นลูกของ init ในที่สุด อย่างไรก็ตามในตัวอย่างที่กำหนดกระบวนการแรกนั้นจริง ๆ แล้วbin/busybox/ shซึ่ง init นั้นจะเกิดขึ้นในภายหลัง นี่เป็นการรบกวนที่ถูกต้องหรือไม่? ตัวอย่างเช่นถ้าฉันมีล่ามที่มีอยู่ ณ ตอนนั้นฉันสามารถเขียน init เป็นสคริปต์ Python ได้หรือไม่?

2
วิธีการกำหนดสีปัจจุบันของเอาท์พุทคอนโซล?
ฉันรู้ว่าถ้าขั้วสีใช้ได้หนึ่งสามารถสีการส่งออกของมันโดยใช้ตัวหนี แต่มีความเป็นไปได้ที่จะทราบว่าสีใดที่กำลังแสดงอยู่ในขณะนี้ หรือดีกว่าว่าข้อความจะเป็นสีอะไรถ้าฉันจะเอาท์พุทตอนนี้? ฉันขอให้ไม่ทำลายการตั้งค่าสีก่อนหน้านี้เมื่อใช้อักขระเลี่ยงเหล่านี้ อักขระ escape 'เบื้องหน้าสีเริ่มต้น' กำลังรับข้อมูลจากชุดรูปแบบสีแทนที่จะเป็นสีข้อความก่อนที่จะเปลี่ยน

5
วิธีการหยุดหน้าจอจากการทำให้หน้าจอว่างเปล่า / มืดมัว?
ฉันติดตั้ง Debian 7 (Wheezy) ใหม่อีกครั้งหลังจากนั้นไม่นาน เป็นครั้งแรกที่ฉันใช้ไดรเวอร์ Nvidia แบบเปิด (ไม่ใช่นูโว) และ vesafb สำหรับคอนโซลเสมือน ฉันไม่สามารถหยุดหน้าจอจากการปิดบังได้ตลอดชีวิตของฉัน ไม่มีสกรีนเซฟเวอร์ไม่มีอะไรมันว่างเปล่าหลังจากผ่านไปสองสามนาทีที่ไม่มีกิจกรรม นี่ไม่ใช่แค่ช่วง VLC (ซึ่งเคยมีปัญหาดังกล่าวในอดีต) แต่ในช่วงใด ๆ เพื่อทำให้แย่ลงดูเหมือนว่าจะเกิดขึ้นแบบสุ่ม บางครั้งหน้าจอจะไม่ว่างเปล่าเป็นเวลาหลายชั่วโมงและบางครั้งมันก็จะ ขั้นตอนที่ฉันทำไปแล้ว: เพิ่มสองสามบรรทัดใน/etc/X11/xorg.confเพื่อหยุด dpms: Section "ServerLayout" Option "BlankTime" "0" Option "StandbyTime" "0" Option "SuspendTime" "0" Option "OffTime" "0" ... Section "Monitor" ... Option "DPMS" "false" เพิ่มใน.xinitrcไฟล์ของฉัน: xset s off # …

4
เอาต์พุตส่วนหนึ่งของแต่ละบรรทัดไปยังไฟล์แยกกัน
ฉันมีไฟล์เช่นนี้: a AGTACTTCCAGGAACGGTGCACTCTCC b ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCAT c ATATTAAATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATCCACTCCACAC d ATCAGTTTAATATCTGATACGTCCTCTATCCGAGGACAATATATTAAATGGA e TTTGGCTAAGATCAAGTGTAGTATCTGTTCTTATAAGTTTAATATCTGATATGTCCTCTATCTGA ฉันต้องการที่จะทำให้ไฟล์ที่มีลำดับa.seq AGTACTTCCAGGAACGGTGCACTCTCCในทำนองเดียวกันมีb.seq ATGGATTTTTGGAGCAGGGAGATGGAATAGGAGCATGCTCCATในระยะสั้น Column1 ควรใช้เป็นชื่อไฟล์เอาต์พุตที่มีนามสกุล.seqและจากนั้นควรมีลำดับ column2 ที่สอดคล้องกัน ฉันสามารถทำได้โดยการเขียนสคริปต์ Perl แต่สิ่งใดในบรรทัดคำสั่งจะเป็นประโยชน์ หวังว่าจะได้ยินในไม่ช้า

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