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

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

2
วิธีการพิมพ์ Unicode glyph ชื่อสำหรับสายป้อน?
ฉันต้องการที่จะสามารถทำงานได้ unicode-names 'abç' และดูชื่ออักขระ Unicode ที่เกี่ยวข้อง: LATIN SMALL LETTER A LATIN SMALL LETTER B LATIN SMALL LETTER C WITH CEDILLA การพิมพ์สตริงเป็นชุดของชื่อสัญลักษณ์ Unicode จะเป็นประโยชน์ในหลายกรณี: แยกแยะอักขระที่สับสนได้ง่ายเช่น "i" และ "í" อธิบายว่าสตริงตัวอักษรประกอบด้วยอะไรจริง (ตัวอย่างเช่นอักขระที่ไม่สามารถพิมพ์หรือไม่ได้กำหนดอักขระความกว้างเป็นศูนย์)

2
การใช้ </ dev / null & ในบรรทัดคำสั่ง
ฉันพยายามรันโปรแกรมจาวาตัวอย่างโดยใช้บรรทัดคำสั่งต่อไปนี้ อย่างไรก็ตามฉันไม่ทราบว่าส่วนต่อท้ายที่&lt; /dev/null &amp;ใช้มีไว้เพื่ออะไร java -cp /home/weka.jar weka.classifiers.trees.J48 –t train_file &gt;&amp; log &lt; /dev/null &amp;

3
จะไพพ์รายการคำสั่งที่แสดงโดยของ“ แท็บเสร็จสมบูรณ์” ได้อย่างไร?
เมื่อใช้คำสั่งใน bash ฉันชอบตัวเลือก double tab เพื่อแสดงคำสั่งที่มี คำสั่งบางคำมีการจับคู่ที่เป็นไปได้มากกว่าคำสั่งอื่น ๆ : สกรีนช็อตของการเติมแท็บให้สมบูรณ์ http://img13.imageshack.us/img13/5541/picturemhy.jpg มีวิธีที่ฉันสามารถไพพ์เอาท์พุทของแท็บดับเบิลไปยังที่ใดที่หนึ่งได้grepไหม? ฉันพบโพสต์ที่เกี่ยวข้องแต่ฉันก็ยังไม่แน่ใจว่าจะนำไปใช้กับไพพ์ได้อย่างไร

4
คำสั่ง ls ทำงานแตกต่างกันไปขึ้นอยู่กับผู้รับ
คำสั่งเหมือนlsรู้ว่า stdout มันคืออะไร? ดูเหมือนว่าlsจะทำงานแตกต่างกันไปขึ้นอยู่กับว่า stdout เป้าหมายคืออะไร เช่นถ้าฉัน: ls /home/matt/tmp ผลลัพธ์คือ: a.txt b.txt c.txt อย่างไรก็ตามถ้าฉันทำ ls /home/matt/tmp | cat ผลลัพธ์คือ (เช่นบรรทัดใหม่ต่อผลลัพธ์): a.txt b.txt c.txt กระบวนการผ่านไฟล์ descriptor 1 สำหรับ stdout ใช่ไหม? มันกำหนดวิธีการจัดรูปแบบผลลัพธ์ได้อย่างไร ตัวอธิบายไฟล์เปิดเผยข้อมูลหรือไม่

2
เหตุใดฉันจึงไม่สามารถเปลี่ยนเชลล์ด้วยคำสั่ง chsh ได้
ฉันเรียนรู้คำสั่งใหม่อย่างน้อยฉันก็คิดว่าเพราะคำสั่งนี้: chshไม่ทำงานตามที่อธิบายไว้ มันอธิบายว่าทำงานเช่นนี้: cat /etc/shells รู้ว่าเชลล์ใดติดตั้งอยู่แล้วเพื่อให้คุณสามารถเลือกได้ ทำอย่างไรecho $SHELLให้รู้ว่าคุณใช้เชลล์ตัวไหน เลือกหนึ่งในเปลือกหอยและประเภท chsh -s /path/to/shell ป้อนรหัสผ่านและยืนยันecho $SHELLด้วยว่าคุณอยู่ในเชลล์ใหม่ ฉันได้ทำสิ่งนี้แล้วและฉันไม่ได้รับข้อความแสดงข้อผิดพลาดเมื่อป้อนรหัสผ่าน แต่ฉันยังอยู่ในเชลล์เดียวกัน % echo $SHELL /bin/bash % cat /etc/shells # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash % chsh -s /bin/sh Password: % echo $SHELL /bin/bash

3
ทำไมเราต้องส่งชื่อไฟล์สองครั้งในฟังก์ชั่น exec
ผมอ่านการเขียนโปรแกรมในสภาพแวดล้อมระบบปฏิบัติการยูนิกซ์ขั้นสูงโดยสตีเว่น, 8 THบท ฉันอ่านและเข้าใจทั้งหกฟังก์ชั่นของ exec สิ่งหนึ่งที่ฉันสังเกตเห็นคือในทุกฟังก์ชั่น exec: อาร์กิวเมนต์แรกคือชื่อไฟล์ / ชื่อพา ธ (ขึ้นอยู่กับฟังก์ชั่น exec) อาร์กิวเมนต์ที่สองคือ argv [0] ที่เราเข้าไปmain()ซึ่งเป็นชื่อไฟล์เอง ดังนั้นที่นี่เราต้องส่งชื่อไฟล์สองครั้งในฟังก์ชั่น มีเหตุผลอะไรบ้าง (เช่นเราไม่สามารถรับชื่อไฟล์จากชื่อพา ธ จากอาร์กิวเมนต์แรก)?

3
grep: อินพุตไฟล์ 'X' เป็นเอาต์พุตเช่นกัน
ฉันใช้ubuntu 14.4และพยายามเปลี่ยนเส้นทางผลลัพธ์ของgrepคำสั่งไปยังไฟล์ แต่ฉันได้รับข้อผิดพลาดนี้: grep: input file 'X' is also the output ฉันค้นหาปัญหานี้แล้วและเพิ่งพบว่าเป็นข้อผิดพลาดubuntu 12.4และไม่มีคำอธิบายใด ๆ ใครสามารถช่วยฉันหาปัญหานี้ได้บ้าง ฉันเรียกใช้คำสั่งต่อไปนี้: grep -E -r -o -n r"%}(.*){%" &gt; myfile

4
การบันทึกโลคัลของคำสั่ง ssh ทั้งหมดแบบโลคัล?
ฉันจะเก็บบันทึกโลคัลที่บันทึกเวลาของคำสั่งรีโมตทั้งหมดที่ฉันใช้ในssh(ไคลเอ็นต์ openssh บรรทัดคำสั่งเริ่มต้นผ่านbash) ได้อย่างไร? ที่ต้องการ: ที่สำคัญ: ฝั่งไคลเอ็นต์ 100% โดยไม่ต้องอาศัยการบันทึกเซิร์ฟเวอร์ กำหนดค่าหรือติดตั้งต่อผู้ใช้พร้อมบันทึกที่จัดเก็บในโฮมไดเรกทอรีของผู้ใช้ การสนับสนุนสำหรับการแยกความแตกต่างระหว่างหลายเซสชันพร้อมกันกับผู้ใช้และโฮสต์ที่หลากหลาย ไม่รบกวน (ไม่จำเป็นต้องเปิดใช้งานในแต่ละครั้งและไม่รบกวนการใช้ ssh อย่างมีนัยสำคัญ) ลำดับความสำคัญสูง: เอาต์พุตไม่ถูกล็อกหรือกรองออกให้มากที่สุด รายการรหัสผ่านอย่างใดอย่างหนึ่งจะไม่ถูกบันทึกหรือไฟล์ถูกเข้ารหัส บ่งชี้ถึงคำสั่งจริงที่ใช้ (หลังจากแท็บ / ประวัติเสร็จสมบูรณ์, backspaces, CTRL+ C, ฯลฯ ... ถูกประมวลผลแล้ว) ยินดีที่ได้: ยังบันทึกคำสั่งในเซสชันที่ถูกล่ามโซ่ (คำสั่งที่ป้อนระหว่างระยะไกลsshหรือsu &lt;user&gt;เซสชัน) ควรเริ่มต้นเซสชันและสิ้นสุดเซสชัน ง่ายbash-based, การแก้ปัญหาที่ไม่ใช่รากจะดีที่สุด (บางทีอาจจะเป็นaliasหรือbashสคริปต์เสื้อคลุมสำหรับsshคำสั่ง?) ระดับความสามารถของฉัน: ฉันไม่ได้ใหม่กับการเขียนโปรแกรม แต่ยังคงเรียนรู้bashและ "วิธี Linux" ดังนั้นตัวอย่างโค้ดที่มีคำอธิบายสั้น ๆ จะได้รับการชื่นชมมากที่สุด กลยุทธ์ที่เป็นไปได้ keylogger - ปัญหา: บันทึกรหัสผ่านไม่บันทึกแท็บ / …

3
diff -r สำหรับไฟล์บางประเภทเท่านั้น
มีวิธีที่ฉันสามารถทำซ้ำที่แตกต่างกันของสองไดเรกทอรี แต่เปรียบเทียบไฟล์ (ในสถานที่นั้น ๆ ) ที่ตรงกับชื่อไฟล์ที่เฉพาะเจาะจงหรือคำกริยา filetype? เช่นฉันต้องการทำบางสิ่งเช่น diff -r dir-a dir-b -filenames *.java, ivy.xml, build.xml ... หรือดีกว่า: diff -r dir-a dir-b -filetype text เห็นได้ชัดว่ามันไม่ได้บังคับให้ใช้diffเพราะฉันคิดว่าคาถาด้วยfindและ-exec diffอาจทำเคล็ดลับ (ฉันเพิ่งไม่รู้วิธีการสร้าง filepaths เสริมในกรณีหลัง)

2
คำสั่งเพื่อลบจำนวน N บรรทัดแรกในอินพุต
พื้นหลัง ฉันใช้เซิร์ฟเวอร์ SSH และมีผู้ใช้ที่ฉันต้องการลบ ฉันไม่สามารถลบผู้ใช้รายนี้ได้เนื่องจากเขากำลังใช้งานกระบวนการบางอย่างที่ฉันต้องฆ่าเสียก่อน นี่คือขั้นตอนที่ฉันใช้อยู่ในขณะนี้เพื่อค้นหารหัสกระบวนการทั้งหมดของผู้ใช้ที่ฉันกำลังใช้: ps -u user | awk '{print $1;}' ผลลัพธ์มีลักษณะดังนี้: PID 2121 2122 2124 2125 2369 2370 ฉันต้องการไปป์นี้เพื่อkill -9ฆ่ากระบวนการทั้งหมดเพื่อให้ฉันสามารถลบผู้ใช้ที่โง่เช่นนี้: ps -u user | awk '{print $1;}' | sudo xargs kill -9 แต่สิ่งนี้ไม่ทำงานเนื่องจากPIDหัวข้อ: kill: failed to parse argument: 'PID' คำถาม ฉันคิดว่าจะต้องมีคำสั่ง Unix ง่าย ๆ เพื่อลบบรรทัดแรกของอินพุต ฉันรู้ว่าฉันสามารถใช้ tailสิ่งนี้ได้ …
11 command-line  sed  awk  tail  head 

1
ฉันจะเพิ่มแอพพลิเคชั่นในแถบเปิดแอพพลิเคชั่น lxpanel ผ่านทาง cli ได้อย่างไร?
มีวิธีในแถบเครื่องมือ LXDE เพื่อเปลี่ยนแอปพลิเคชันที่อยู่ในส่วนเปิดใช้ด่วนผ่านทางเทอร์มินัลเพื่อให้สามารถใส่ในแบทช์ไฟล์เพื่อเปลี่ยนบนไคลเอนต์หลาย ๆ เครื่องได้หรือไม่

5
อะตอม gzip หรือไม่
คือgzipอะตอม? จะเกิดอะไรขึ้นถ้าฉันหยุดgzipกระบวนการในขณะที่อยู่ระหว่างการบีบอัดไฟล์ หากไม่ใช่อะตอมลีและถ้าฉันกด Ctrl + C บนgzip *.txtกระบวนการอยู่แล้วฉันจะกลับมาทำงานอย่างปลอดภัยได้อย่างไร? (ฉันไม่เพียงแค่อยากรู้อยากเห็นเกี่ยวกับวิธีการทำงานต่อ แต่ยังเกี่ยวกับว่าgzipอะตอมเป็นพิเศษหรือไม่)

2
ใช้คำสั่ง chmod อย่างคัดเลือก
ฉันต้องการตั้งค่าการอนุญาต 755 ในทุกไฟล์และไดเรกทอรีย่อยภายใต้ไดเรกทอรีเฉพาะ แต่ฉันต้องการรัน chmod 755 เฉพาะสำหรับองค์ประกอบเหล่านั้นซึ่งไม่ได้รับอนุญาต 755 find /main_directory/ -exec chmod 755 {} \; หากfindคำสั่งส่งคืนรายการแบบยาวสิ่งนี้จะใช้เวลานาน ฉันรู้ว่าฉันสามารถใช้คำสั่ง stat เพื่อตรวจสอบการอนุญาตระดับไฟล์ Octal ของแต่ละองค์ประกอบจากนั้นใช้ if-else เพื่อสลับการอนุญาตไฟล์ แต่มีวิธีการบรรทัดเดียวที่ใช้findและxargsก่อนอื่นตรวจสอบสิทธิ์ไฟล์ / ไดเรกทอรีที่มี แล้วใช้chmodเพื่อเปลี่ยนเป็น 755 หากตั้งค่าเป็นอย่างอื่น

8
แสดงบรรทัดว่างโดยคำสั่ง cat
ฉันมีรายชื่อ files.txt ด้านล่าง: -rw-rw-r-- 1 root dev 11 May 16 12:18 20_SumActive.txt -rw-rw-r-- 1 root dev 11 May 16 12:18 22_SumActive.txt -rw-rw-r-- 1 root dev 7 May 16 12:18 24_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 26_SumActive.txt -rw-rw-r-- 1 root dev 0 May 16 12:18 28_SumActive.txt เอาท์พุท: kpgmeddev01&gt; …

2
~ (tilde) คืออะไรเมื่อใช้เป็นคำนำหน้าไปยังเส้นทาง
แก้ไข: นี่คือซ้ำ/programming/998626/meaning-of-tilde-in-linux-bash-not-home-directory/ ฉันไม่มีชื่อเสียงที่จะปิดคำถามนี้ซ้ำ ฉันไม่ได้อ้างถึง~ในไดเรกทอรีบ้าน แต่สิ่งนี้: $ ls ~foo/bar /some/mount/point/foo/bar อย่างไรก็ตามหากฉันลองด้วยจุดเมานต์ที่แตกต่างกันเช่น: $ mount | ag "/dev " devfs on /dev (devfs, local, nobrowse) $ ls /dev/stdin /dev/stdin $ ls ~stdin zsh: no such user or named directory: stdin . # bash has a similar error message: ls: ~stdin: No such file …
11 command-line  osx 

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