คำถามติดแท็ก command-line

บรรทัดคำสั่งเป็นอินเทอร์เฟซแบบโต้ตอบกับเชลล์ของคุณ

4
เป็นไปได้ไหมที่จะเปลี่ยนทิศทางเอาต์พุตของคำสั่งไปเป็นคำสั่งมากกว่าหนึ่งคำสั่ง?
เท่าที่ฉันรู้ฉันสามารถใช้คำสั่ง tee เพื่อแยกเอาต์พุตมาตรฐานลงบนหน้าจอและไฟล์เพิ่มเติม: command -option1 -option2 argument | tee file1 file2 file3 เป็นไปได้หรือไม่ที่จะเปลี่ยนเส้นทางเอาต์พุตไปยังคำสั่งแทนที่จะเป็นไฟล์โดยใช้ tee ดังนั้นฉันสามารถสร้างเชนของคำสั่งได้ตามทฤษฎีหรือไม่
21 command-line  pipe  tee 

2
Ctrl + D สำหรับสิ้นสุดอินพุตบรรทัดของเทอร์มินัล
ถ้าฉันทำ $ cat > file.txt ข้อความCtrl- DCtrl-D คำถามที่ 1: ถ้าฉันไม่กด Enter ทำไมฉันต้องกดCtrl- Dสองครั้ง? ถ้าฉันทำ $ cat > file.txt pa bam pshhh Ctrl-Z [2]+ Stopped cat > file.txt $ cat file.txt $ cat > file.txt pa bam pshhh Ctrl-Z [2]+ Stopped cat > file.txt $ cat file.txt pa bam pshhh ทำไมไฟล์ที่มี …

6
มีวิธีง่าย ๆ ในการผนวกบรรทัดต่อท้ายไฟล์นอกเหนือจาก `>> 'หรือไม่?
เมื่อเร็ว ๆ นี้ฉันกำลังสะท้อนประโยคสั้น ๆ ไปยังtree_holeไฟล์ ฉันใช้echo 'something' >> tree_holeเพื่อทำงานนี้ แต่ฉันก็มักจะกังวลว่าถ้าฉันใส่ผิด>แทนที่จะทำ>>เพราะฉันทำสิ่งนี้บ่อย ดังนั้นฉันจึงทำ bash func ทั่วโลกของตัวเองใน bashrc: function th { echo "$1" >> /Users/zen1/zen/pythonstudy/tree_hole; } export -f th แต่ฉันสงสัยว่ามีอีกวิธีที่ง่ายในการต่อท้ายบรรทัดของไฟล์ เพราะฉันอาจจำเป็นต้องใช้บ่อยครั้งในโอกาสอื่น ๆ มีผู้ใด?

1
ls ใช้เวลานานในไดเรกทอรีขนาดเล็ก
ใช้ Ubuntu ฉันเปิดเทอร์มินัลแล้วทำ sudo bash cd / ls | head -n 1000 และส่งคืนไดเรกทอรีประมาณ 20 รายการ อย่างไรก็ตามถ้าฉันทำ ls และไม่ได้แปะไปที่ใด ls ก็แค่ค้างไว้ที่นั่นจนกว่าฉันจะฆ่ามันจากเทอร์มินัลอื่น อาจเกิดอะไรขึ้น แก้ไข: > type ls ls is aliased to `ls --color=auto` แก้ไข: > /bin/ls / <normal response> > /bin/ls --color=auto <hangs indefinitely> เหตุใดการระบายสีเอาต์พุตของ ls ทำให้คำสั่งนี้หยุดทำงาน
21 shell  command-line  files  ls 

6
สเปรดชีตที่เป็นมิตรของบรรทัดคำสั่ง
สิ่งนั้นมีอยู่จริงหรือไม่? สเปรดชีตแบบข้อความที่แสดงได้ดีในสภาพแวดล้อม CLI ฉันรู้ว่าฉันสามารถทำได้cat foobar.csvและทำตามที่ฉันต้องการ แต่มันไม่ได้เป็นประโยชน์หรือน่าสนใจโดยเฉพาะ ฉันไม่สามารถจินตนาการได้ว่ามันยากที่จะจัดรูปแบบตารางและอาจปฏิบัติตามกฎบางอย่าง (คณิตศาสตร์?) เช่นกัน Emacs มีการorg-modeจัดการตารางข้อความที่ค่อนข้างดีและช่วยให้การส่งออกไปยังหลายรูปแบบ อย่างไรก็ตามต้องใช้ Emacs! สิ่งใดในฐานะผู้ใช้ที่เป็นกลุ่มฉันต้องการหลีกเลี่ยง


3
ผู้ใช้รายอื่นสามารถดูอาร์กิวเมนต์ที่ส่งไปยังคำสั่งได้หรือไม่?
ถ้าฉันเรียกคำสั่งที่มีข้อโต้แย้งเช่นนั้น: bob@bob-pc:~$ command -arg1 -arg2 ... ผู้ใช้รายอื่นสามารถดูอาร์กิวเมนต์ที่ส่งไปยังคำสั่งได้หรือไม่

4
ฉันจะฆ่าเธรดเฉพาะของกระบวนการได้อย่างไร
$ ps -e -T | grep myp | grep -v grep 797 797 ? 00:00:00 myp 797 798 ? 00:00:00 myp 797 799 ? 00:00:00 myp 797 800 ? 00:00:00 myp สิ่งนี้แสดงกระบวนการที่mypมี PID = 797 และสี่เธรดที่มี SPID ต่างกัน ฉันจะฆ่าเธรดเฉพาะของกระบวนการโดยไม่ฆ่ากระบวนการทั้งหมดได้อย่างไร ฉันเข้าใจว่าอาจเป็นไปไม่ได้เลยในบางกรณีเมื่อมีการอ้างอิงที่ร้ายแรงในเธรดนั้น แต่มันเป็นไปได้ในกรณีใด ๆ ? ใช่แล้วเป็นอย่างไร ฉันพยายามkill 799แล้วกระบวนการก็สิ้นสุดลง ตอนนี้ฉันไม่แน่ใจว่าเป็นเพราะมีการพึ่งพาที่ทำให้mypล้มเหลวโดยไม่มีกระบวนการ800หรือเพราะการฆ่านั้นง่ายไม่สามารถฆ่าแต่ละกระบวนการได้

2
วันที่คำสั่งให้ผิดหมายเลขสัปดาห์สำหรับ 31 ธันวาคม
เมื่อฉันพยายามรับหมายเลขสัปดาห์สำหรับวันที่ 31 ธันวาคมมันจะกลับมา 1 เมื่อฉันได้รับหมายเลขสัปดาห์สำหรับวันที่ 30 ธันวาคมฉันจะได้ 52 - ซึ่งเป็นสิ่งที่ฉันคาดหวัง วันจันทร์ถูกต้อง นี่คือ RPI ที่ใช้งาน Ubuntu $ date -d "2018-12-30T1:58:55" +"%V%a" 52Sun $ date -d "2018-12-31T1:58:55" +"%V%a" 01Mon ปัญหาเดียวกันโดยไม่มีสตริงเวลา $ date -d "2018-12-31" +"%V%a" 01Mon

2
รูปแบบเอาต์พุตยูทิลิตี้สถิติซ็อกเก็ตของ ss - linux
เมื่อใช้ssกับ-pตัวเลือกuser/pid/fdคอลัมน์จะกระโดดใต้บรรทัดใดบรรทัดหนึ่ง เช่นนี้เป็นสิ่งที่ฉันเห็นจริง: # ss -nulp4 State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 0 *:20000 *:* users:(("perl",pid=9316,fd=6)) UNCONN 0 0 *:10000 *:* users:(("perl",pid=9277,fd=6)) UNCONN 0 0 192.168.100.10:53 *:* users:(("named",pid=95,fd=517),("named",pid=95,fd=516)) UNCONN 0 0 127.0.0.1:53 *:* users:(("named",pid=95,fd=515),("named",pid=95,fd=514)) การจัดรูปแบบผลลัพธ์ที่ต้องการ : # ss -nulp4 State Recv-Q Send-Q Local Address:Port Peer Address:Port UNCONN 0 …

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

6
วิธีย้ายไฟล์ x ไฟล์แรก
ฉันมีโฟลเดอร์ใหญ่นี้ที่มีไฟล์เรียงลำดับหลายพันไฟล์ เป็นไปได้ไหมที่จะย้าย 5000s แรกไปยังโฟลเดอร์ย่อยผ่านmvคำสั่ง? ตอนนี้ฉันย้ายไฟล์ด้วย mv *some_pattern* ./subfolder1/ สำหรับตอนนี้ฉันย้ายภาพไปมาโดยการสุ่มมันไม่สำคัญจริงๆถ้ามีไฟล์ไม่ถึง 5,000 ไฟล์ในแต่ละโฟลเดอร์ย่อย มีวิธีที่ดีกว่าที่จะทำหรือไม่

5
เอาท์พุทบรรทัดทั่วไป (ความเหมือน) ของไฟล์ข้อความสองไฟล์ (ตรงกันข้ามกับ diff)?
Diff เป็นเครื่องมือที่ยอดเยี่ยมในการแสดงการเปลี่ยนแปลงระหว่างสองไฟล์ แต่วิธีการแสดงความคล้ายคลึงกันของไฟล์ข้อความสองไฟล์ (ในขณะที่ละเว้นความแตกต่าง)? Ie ตัวอย่างอินพุต: a: Foo Bar X Hello World 42 b: Foo Baz Hello World 23 Pseudo output (บางอย่างเช่นนี้): @@ 2,3 =Hello World เพียงแค่เรียงลำดับทั้งไฟล์และการใช้งานคอมไม่เพียงพอเพราะในกรณีนี้ข้อมูลเส้นจะหายไป

3
วิธีที่ปลอดภัยในการส่งรหัสผ่านสำหรับ> 1 โปรแกรมใน bash
ฉันเขียนสคริปต์และจำเป็นที่จะต้องขอให้ผู้ใช้รหัสผ่านของเขาและผ่านไปbash opensslในขณะที่opensslสามารถอ่านรหัสผ่านได้ฉันต้องการโปรแกรมสองรันและไม่ต้องการถามผู้ใช้สองครั้ง นี่คือสคริปต์: cp file{,.old} read -sp 'Enter password. ' PASS; echo export PASS # decode | edit | encode openssl enc -d -aes-256-cbc -k "$PASS" -in file.old | \ sed ... | openssl enc -e -aes-256-cbc -k "$PASS" -out file unset PASS รหัสผ่านนี้ไม่ปลอดภัยเนื่องจากสามารถดูรหัสผ่านได้อย่างง่ายดายโดยดูที่บรรทัดคำสั่ง บางคนสามารถอ่านโดยใช้psตัวอย่างเช่น opensslสามารถอ่านรหัสผ่านจากตัวแปรสภาพแวดล้อมดังนั้นฉันสามารถแทนที่-k "$PASS"ด้วย-pass env:PASSแต่ก็ยังไม่ปลอดภัย ตัวแปรสภาพแวดล้อมของกระบวนการใด ๆ …

6
ตัวเลือกใด ๆ ที่จะแทนที่ GNU coreutils บน Linux?
ฉันได้รับความคิดเกี่ยวกับการหยุดใช้ของ GNU coreutils บนระบบลินุกซ์ของฉัน แต่จะซื่อสัตย์แตกต่างจากหลายส่วนประกอบ GNU อื่น ๆ ผมไม่สามารถคิดทางเลือกใด ๆ(บน Linux) coreutils ของ GNU มีทางเลือกอะไรบ้าง? ฉันต้องการมากกว่าหนึ่งแพ็คเกจหรือไม่ ลิงค์ไปยังโครงการจะต้องมีคะแนนโบนัสสำหรับแพ็คเกจการตั้งชื่อ distro นอกจากนี้โปรดอย่าแนะนำสิ่งต่าง ๆ เว้นแต่คุณจะรู้ว่ามันทำงานบน Linux และสามารถอ้างอิงคำแนะนำได้ ฉันสงสัยฉันจะเปลี่ยนเมล็ดในเร็ว ๆ ./configure; make; make installนี้และฉันมากขี้เกียจเกินไปสำหรับสิ่งที่มากเกินตรงไปตรง แน่นอนฉันจะไม่แฮ็ค C สำหรับมัน คำเตือน:หาก distro ของคุณใช้ coreutils ในการลบออกอาจทำลายวิธีการทำงานของ distro ของคุณ อย่างไรก็ตามการไม่มีพวกเขาเป็นสิ่งแรกที่คุณ$PATHไม่ควรทำเพราะสคริปต์ส่วนใหญ่ควรใช้เส้นทางที่สมบูรณ์

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