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

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

1
ความสับสนเกี่ยวกับการเปลี่ยนความหมายของข้อโต้แย้งและตัวเลือกมีคำจำกัดความมาตรฐานอย่างเป็นทางการหรือไม่?
ฉันเจอความสับสนในการทำความเข้าใจว่าตัวเลือกและข้อโต้แย้งเกี่ยวข้องกับไวยากรณ์ของคำสั่งอย่างไร ตัวอย่างเช่นฉันพบคำจำกัดความเช่น: command -a -b -c d e f ความแตกต่างระหว่างบางอย่าง-a -b -cเรียกพวกเขาว่าตัวเลือกหรือสวิทช์และd e fโดยการเรียกพวกเขาขัดแย้ง command -a -b -c d e f บางตัวอย่างเช่นbashคู่มือโทร-a -b -c d e fอาร์กิวเมนต์ทั้งหมดและอธิบายว่าพวกเขาทั้งหมดสามารถเข้าถึงได้จากสคริปต์$1 $2 $3 $4 $5 $6ตามลำดับ command -a b=c บางคนเรียก-aตัวเลือกbอาร์กิวเมนต์และcค่า แต่คนอื่น ๆ ผสมมันเหมือนในสองจุดแรกในหลากหลายรูปแบบที่เรียก-a b cอาร์กิวเมนต์ทั้งหมด ทั้งสามรุ่นนี้เป็นเพียงตัวอย่างสำหรับสายพันธุ์ที่แตกต่างกันมากมายฉันไม่รู้ด้วยซ้ำว่าจะแสดงรายการทั้งหมดได้อย่างไร แต่ฉันสังเกตเห็นว่าไม่มีการตั้งชื่อแบบคงที่ หรืออย่างน้อยก็ไม่มีมาตรฐานการตั้งชื่อแบบมาตรฐานที่ฉันรู้เพราะฉันเจอแหล่งข้อมูลแบบสุ่มที่แตกต่างกัน แต่แม้แต่ในเว็บไซต์หรือคู่มืออย่างเป็นทางการของ Linux และ GNU ที่ฉันพบเจอก็ไม่สอดคล้องกัน มีรูปแบบการตั้งชื่ออย่างเป็นทางการที่ฉันสามารถอ้างถึงได้ไหม?

9
เปลี่ยนลำดับของบรรทัดในไฟล์
ฉันพยายามเปลี่ยนลำดับของเส้นในรูปแบบเฉพาะ การทำงานกับไฟล์ที่มีหลายบรรทัด (เช่น 99 บรรทัด) สำหรับทุกสามบรรทัดฉันต้องการให้บรรทัดที่สองเป็นบรรทัดที่สามและบรรทัดที่สามจะเป็นบรรทัดที่สอง ตัวอย่าง. 1- อินพุต: gi_1234 My cat is blue. I have a cat. gi_5678 My dog is orange. I also have a dog. ... 2- เอาท์พุท: gi_1234 I have a cat. My cat is blue. gi_5678 I also have a dog. My dog is orange. …

3
ลบไฟล์ แต่เป็น symlink เท่านั้น
เป็นการดีที่ฉันต้องการคำสั่งเช่นนี้ rm --only-if-symlink link-to-file เพราะฉันเขียนตัวเองหลายครั้งเกินไปการลบไฟล์โดยไม่ได้ตั้งใจแทนที่จะเป็น symlink ที่ชี้ไปที่ไฟล์ สิ่งนี้อาจไม่ดีโดยเฉพาะอย่างยิ่งเมื่อเกี่ยวข้องกับ sudo ตอนนี้ฉันทำแน่นอนls -alเพื่อให้แน่ใจว่ามันเป็น symlink จริง ๆ แต่มันก็มีความเสี่ยงต่อข้อผิดพลาดของผู้ปฏิบัติงาน (ไฟล์ที่มีชื่อคล้ายกันพิมพ์ผิด ฯลฯ ) และสภาพการแข่งขัน (ถ้ามีคนต้องการให้ฉันลบไฟล์ด้วยเหตุผลบางอย่าง) มีวิธีการตรวจสอบว่าไฟล์เป็น symlink และลบมันถ้ามันอยู่ในคำสั่งเดียว?
11 bash  command-line  rm 

8
ย้าย N บรรทัดแรกของเอาต์พุตไปยังจุดสิ้นสุดโดยไม่ต้องใช้ไฟล์ชั่วคราว
ลองนึกภาพผลลัพธ์ของคำสั่งเช่น 44444 55555 11111 22222 33333 ฉันจะดึงบรรทัด N แรกออกมาได้อย่างไร (สองบรรทัดแรกในตัวอย่างด้านบน) และต่อท้ายบรรทัด แต่ไม่ต้องใช้ไฟล์ temp ( โดยใช้ไพพ์เท่านั้น) 11111 22222 33333 44444 55555 บางสิ่งบางอย่างตามแนวของ| sed -n '3,5p;1,2p'(ซึ่งเห็นได้ชัดว่าใช้งานไม่ได้เพราะความใจร้อนไม่สนใจคำสั่งของคำสั่ง)

4
พิมพ์หน้าคนที่มีความกว้างคงที่
ด้วยคำสั่งตัวอย่าง man apropos > outputfile ไฟล์ข้อความจะถูกสร้างขึ้นซึ่งมีหน้าที่จัดรูปแบบmanของapropos(มีความแตกต่างเล็กน้อยเกี่ยวกับการman aproposพิมพ์โดยตรงบนหน้าจอเช่นตัวหนา) แต่ฉันต้องการตั้งค่าความกว้างบรรทัดสูงสุดของไฟล์เอาต์พุตที่สร้างขึ้นด้วยตนเองเพื่อให้ย่อหน้าทั้งหมดจะถูกปรับความกว้างนั้น manหน้าถูกสร้างขึ้นผ่านgroff: ตัวอย่างเช่นฉันพยายามวางไว้.ll 50ก่อนหน้าย่อหน้าของไฟล์ต้นฉบับดั้งเดิม.gz manแต่มันก็เล็กน้อยถ้าฉันต้องทำงานกับหลาย ๆmanหน้า ยิ่งไปกว่านั้นตัวละครทุกตัวไม่ได้รับการยอมรับ: apropos.1:45: warning: can't find character with input code 195 apropos.1:45: warning: can't find character with input code 168 apropos.1:47: warning: can't find character with input code 178 apropos.1:131: warning: can't find character with input code 169 …

2
วิธีการเข้าถึงอาร์กิวเมนต์ที่สองจากคำสั่งสุดท้ายในประวัติศาสตร์?
ฉันเริ่มเรียนรู้ Regex บางอย่างดังนั้นฉันใช้คำสั่งนี้ซ้ำ ๆ : grep pattern /usr/share/dict/american-english เฉพาะส่วนที่มีการเปลี่ยนแปลงรูปแบบดังนั้นฉันต้องเขียนนิพจน์แบบยาว " / usr / share / dict / american-english " ซ้ำแล้วซ้ำอีก ใครบางคนทำข้อสังเกตว่ามันเป็นไปได้ที่จะขยายการโต้แย้งของคำสั่งจากประวัติคำสั่งโดยการพิมพ์ชุดอักขระที่เป็นความลับแทนการแสดงออกเต็มรูปแบบ คุณช่วยบอกชุดอักขระที่เป็นความลับเหล่านั้นให้ฉันได้ไหม

3
sudo -i ส่งคืนข้อผิดพลาด
เมื่อฉันพยายามที่จะเปลี่ยนเป็นรูทโดยใช้sudo -iฉันได้รับข้อผิดพลาด/var/tmp/sclDvf3Vx: line 8: -i: command not found... อย่างไรก็ตามsu -งานที่ฉันจะใช้ต่อไป ฉันไม่ได้เป็นผู้ดูแลระบบลินุกซ์ดังนั้นสภาพแวดล้อมยังคงมีหมอกหนาสำหรับฉัน ฉันเดาคำถามของฉัน: ทำไมข้อผิดพลาดถูกโยน? ความแตกต่างระหว่างสองคำสั่งคืออะไร? ทำไมคุณถึงใช้อันอื่น? ปรับปรุง: ฉันใช้ CentOS เวอร์ชัน: CentOS รีลีส 6.6 (สุดท้าย) นี่คือผลลัพธ์จากคำสั่งบางคำสั่งที่ฉันถูกขอให้เรียกใช้ในความคิดเห็นด้านล่าง type sudo : sudo is /opt/centos/devtoolset-1.1/root/usr/bin/sudo sudo -V : /var/tmp/sclIU7gkA: line 8: -V: command not found grep'^root:' /etc/passwd : root:x:0:0:root:/root:/bin/bash ปรับปรุง: สิ่งนี้ถูกเพิ่มไปยังผู้ใช้ที่ไม่ใช่รูทของฉัน ~ / .bashrc สักครู่เพราะฉันต้องการการสนับสนุน …

3
ฉันจะลบไฟล์ทั้งหมดในโฟลเดอร์ยกเว้นไฟล์ที่ระบุได้อย่างไร
ฉันต้องการลบไฟล์ทั้งหมดในไดเรกทอรีในขณะที่เหลือเพียงบางไฟล์ที่ระบุพวกเขาไม่มีอะไรเหมือนกันโดยใช้ชื่อ ฉันจะบรรลุสิ่งนั้นได้อย่างไร ตัวอย่างเช่นชื่อไฟล์ที่ฉันต้องการเก็บคือ: file_1.png, another_file.jpg,some_music.mp3
11 command-line  files  rm 

2
เปลี่ยนข้อมูลผู้ใช้บนบรรทัดคำสั่ง
ฉันได้สร้างผู้ใช้ในมินต์ 16 แต่ต้องการเปลี่ยนชื่อและนามสกุลโดยไม่ลบมันและเริ่มจากศูนย์ ฉันรู้ว่าต้องทำอย่างไรกับ GUI แต่ฉันต้องการทราบทางเลือกคำสั่งเทอร์มินัล ฉันได้ตรวจสอบ man pages ของ usermod แล้ว แต่ไม่สามารถเข้าใจได้ว่าเป็นอย่างไร

6
ฉันจะแสดงความแตกต่างระหว่าง 2 ไฟล์ได้อย่างไร
ไฟล์ของฉันประกอบด้วยสิ่งต่อไปนี้; ประมาณ: username:username:username:username:username บรรทัดด้านบนยังคงประมาณ 600 อักขระ ฉันใช้awkคำสั่งเพื่อใช้เป็นอาร์กิวเมนต์ในคำขอ API / HTTP ที่ส่งจากบรรทัดคำสั่ง ฉันกำลังใช้สคริปต์เพื่อรับรายการบัญชีผู้ใช้ 'ติดตาม' ฉันและทุก ๆ 24 ชั่วโมงหรือมากกว่านั้นเปรียบเทียบรายการต้นฉบับบนฮาร์ดดิสก์ของฉันกับรายการชื่อผู้ใช้ที่เพิ่งแสดงผลใหม่ (และแสดงว่าใครไม่ได้ติดตาม ฉัน . ฉันจะต้องสรุปตรรกะของฉันเป็นลูปโดยใช้ bash .. ทดสอบชื่อผู้ใช้แต่ละคน สคริปต์ปัจจุบันของฉัน: user=$(awk -F: '{ print $1 }' FILE) # Grab $User to use as an argument. following=$(exec CURRENT_FOLLOWERS) # Outputs the new file echo "X amount …

5
วิธีการสุ่มเอาท์พุทจาก seq?
ฉันรู้ว่าฉันสามารถใช้seqเพื่อสร้างรายการตัวเลขแบบสุ่ม: 1, 2, 3, 4 ... ฉันต้องการให้ตัวเลขเหล่านั้นเรียงลำดับแบบสุ่มเช่น 3, 1, 4, 2 ... ฉันรู้ว่าฉันสามารถใช้shufเพื่อสลับบรรทัดไฟล์ ดังนั้นฉันสามารถใช้seqเพื่อเขียนตัวเลขสุ่มไปยังไฟล์แล้วใช้shufเพื่อสับเปลี่ยนพวกเขา - หรือเขียนฟังก์ชันสับเปลี่ยนบางประเภท แต่ดูเหมือนว่าจะซับซ้อนโดยไม่จำเป็น มีวิธีที่ง่ายกว่าในการสุ่มรายการในอาเรย์ด้วยคำสั่งเดียว?
11 command-line  seq 

3
วิธีรันคำสั่งซ้ำ ๆ ด้วยอาร์กิวเมนต์ที่ต่างกัน?
ฉันใช้ Ubuntu ฉันคัดลอกบางอาร์กิวเมนต์ (คั่นด้วย newline) และฉันสามารถใช้xselเพื่อพิมพ์ออกมาเช่นนี้ $ xsel arg1 arg2 arg3 arg4 ... ตอนนี้ฉันต้องการใช้แต่ละอาร์กิวเมนต์เหล่านี้สำหรับคำสั่งอื่นและดำเนินการคำสั่งนั้นหลายครั้งตามที่มีข้อโต้แย้ง ดังนั้นฉันจึงพยายาม $ xsel | mycommand "constantArgument" $1 อย่างไรก็ตามสิ่งนี้ดำเนินการmycommandสำหรับอาร์กิวเมนต์แรกเท่านั้น ฉันจะรันมันสำหรับทุก ๆ การโต้แย้งได้อย่างไร?

4
ค้นหาไดเรกทอรีย่อยสิ้นสุดทั้งหมดในทรี
รับโครงสร้างต่อไปนี้: oz123@debian:~/ $ tree . . ├── a │ ├── a1 │ ├── a2 │ └── a3 ├── a1 │ ├── a11 │ ├── a12 │ └── a31 ├── b │ └── b1 │ ├── b11 │ │ └── b21 │ │ └── b31 │ ├── b12 │ └── b3 …

4
คำนวณขนาดไฟล์เฉลี่ย
ฉันกำลังมองหาซับในที่สะดวกสำหรับการคำนวณขนาดไฟล์เฉลี่ยในไดเรกทอรี สิ่งที่ฉันต้องการคือ: ขนาดของไฟล์ทั้งหมด / จำนวนไฟล์ในไดเรกทอรี

4
Bash: การจับภาพ / ใช้บรรทัดสุดท้าย (หรือ Nth) ใน stdout
สอบถาม ฉันใช้ Bash เมื่อฉันค้นหาไฟล์บ่อยครั้งที่ฉันจะทำสิ่งต่อไปนี้: find -name stackexchange.hs และผลลัพธ์มักจะมีลักษณะดังนี้: /youre/the/man/now/dog/stackexchange.hs /you/are/no/longer/the/dog/dog/stackexchange.hs /this/is/the/file/i/want/stackexchange.hs จากนั้นฉันจะทำอย่างใดอย่างหนึ่งต่อไปนี้: ตัวเลือกที่ 1: เปิดรายการสุดท้ายในรายการผลลัพธ์ในกลุ่ม ตัวเลือกที่ 2: เปิดรายการชับในรายการผลลัพธ์ในกลุ่ม ปัจจุบันฉันตัดและวางด้วยเมาส์ ซึ่งนำมาสู่คำถามของฉัน: มีซับในหนึ่งเดียวที่ง่ายต่อการบรรลุตัวเลือกที่ 1 และ 2 หรือไม่? ทราบว่านี้เกิดขึ้นหลังจากที่findคำสั่ง มีวิธีจับ N-line จาก stdout ใน bash vector / array หรือไม่? การใช้งานในอุดมคติ $ find -name am_i_really_all_alone.txt ./borges/library/you_are_not_alone.txt ./borges/library/am_i_really_all_alone.txt $ vim (N) (ไวยากรณ์และความหมายอาจแตกต่างกัน แต่คุณจะได้รับคะแนน) Similaria ดูเหมือนจะมีคำถามที่คล้ายกันหลายอย่าง …

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