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

เชลล์คือซอฟต์แวร์ที่ช่วยให้ผู้ใช้โต้ตอบกับระบบปฏิบัติการโดยปกติแล้วพิมพ์ที่บรรทัดคำสั่ง

2
มีเครื่องมือบรรทัดคำสั่งมาตรฐานเพื่อทำการค้นหาชื่อโฮสต์หรือไม่
ฉันอยู่ในเชลล์และฉันต้องการทราบที่อยู่ IP ที่สอดคล้องกันสำหรับชื่อโฮสต์ ฉันรู้ว่าฉันสามารถใช้งานได้ผ่าน Perl, PHP, Python หรือภาษาสคริปต์อื่น ๆ (อาจน่ากลัว!) และนี่จะเป็นวิธีแก้ปัญหาของฉัน แต่ฉันประหลาดใจที่ดูเหมือนว่าจะไม่มีเครื่องมือบรรทัดคำสั่งให้ทำ ไม่มีเสื้อคลุมเรียบง่าย ๆ getaddrinfo(). ฉันผิดหรือเปล่า? มีหรือไม่ host, dig และ getent ไม่ต้องนับฉันต้องการสิ่งที่ใช้ libc และทำตาม /etc/nsswitch.confและสิ่งที่อาจติดตั้งในระบบ (linux) ใด ๆ โดยค่าเริ่มต้น ย้ายมาที่นี่จาก https://stackoverflow.com/questions/20211326/is-there-a-standard-command-line-tool-to-do-a-hostname-lookup คำตอบ: ฉันผิด getent ไม่ได้ดูเฉพาะใน /etc/hostsจริง ๆ แล้วมันเป็นการค้นหาที่เหมาะสม
linux  shell 

3
คำสั่งเพื่อลบไฟล์ทั้งหมดยกเว้นไฟล์ล่าสุดที่ทำงานได้ทั้งโซลาริสและลินุกซ์
ฉันกำลังลองหนึ่งคำสั่งซึ่งลบไฟล์ทั้งหมดออกจากตำแหน่งยกเว้นอันล่าสุด ฉันมีคำสั่งทำงานสำหรับ linux แต่มันไม่ทำงานบนเครื่อง Solaris คำสั่งด้านล่างจะลบไฟล์ทั้งหมดยกเว้น 10 รายการสุดท้าย ls -l /*.tps | head -n -10 | rm -rf

2
เป็นไปได้ไหมที่จะเปิดเชลล์เซสชันที่สองที่จะจดจำผู้ใช้เครื่องและไดเรกทอรีที่ฉันใช้
ฉัน ssh'ed เป็นเครื่องและเข้าสู่ระบบในฐานะผู้ใช้อื่น เป็นไปได้ไหมที่จะเปิดหน้าต่างใหม่สองสามอันที่จะยังคงอยู่ในเครื่องเดียวกันนั้นยังคงเข้าสู่ระบบในฐานะผู้ใช้รายนั้น?

1
แยกวิเคราะห์ล็อก vsftpd พร้อมเชลล์สคริปต์
ฉันพยายามแยกบรรทัดนี้ด้วย vsftpd: Sun Apr 7 07:23:33 2013 [pid 23590] [cam02430] OK UPLOAD: Client "206.132.183.209", "/20130407/07/20130407_072324D.avi", 496846 bytes, 383.38Kbyte/sec ด้วย: cut -d" " -f9 | sed 's/\[\(.*\)\]/\1/' นี่เป็นการแยกวิเคราะห์ชื่อผู้ใช้สำเร็จซึ่งก็คือ: cam02430 แต่ตอนนี้วันที่มีการเปลี่ยนแปลง: Wed Apr 10 10:37:50 2013 [pid 26137] [cam02299] OK UPLOAD: Client "206.132.183.201", "/20130410/10/20130410_103802D.avi", 496838 bytes, 363.67Kbyte/sec ตอนนี้ฉันจะแยกวิเคราะห์นี้ใช้: cut -d" " -f8 …

1
Internet Explorer เก็บไดเรกทอรีอัปโหลดที่ใช้ล่าสุดอยู่ที่ไหน
ฉันมีรูปภาพของฮาร์ดไดรฟ์ของผู้ใช้ซึ่งฉันต้องการกู้คืนรูปภาพบางรูป แต่ฉันไม่ทราบชื่อไฟล์หรือไดเรกทอรีที่จัดเก็บไว้ รูปถ่ายไม่ได้อยู่ในโฟลเดอร์โปรไฟล์ทั่วไป ผู้ใช้ระบุว่าภาพถ่ายนั้น "อยู่ที่นั่นเสมอ" เมื่อใดก็ตามที่พวกเขาไปอัปโหลดไฟล์จาก Internet Explorer แน่นอนพวกเขาไม่ทราบว่าเป็นโฟลเดอร์ใด ... เพียงแค่เป็นโฟลเดอร์ที่เกิดขึ้นเมื่อคุณอัปโหลดไฟล์ ในคอมพิวเตอร์ของฉันฉันสร้างโฟลเดอร์ด้วยชื่อที่ไม่ซ้ำใครอัปโหลดไฟล์จากมันโดยใช้ Internet Explorer แล้วค้นหาผ่านรีจิสตรี แต่ไม่พบการอ้างอิงถึงชื่อโฟลเดอร์ ไม่มีใครรู้ว่าฉันจะหาไดเรกทอรีอัพโหลดที่ใช้ล่าสุดได้อย่างไร?

1
มันเป็นไปได้ที่จะลบไดเรกทอรีเมื่ออยู่ในไดเรกทอรีในเปลือก
ฉันมีไดเรกทอรีที่ฉันเรียกใช้โปรแกรมมา / usr / bin / my-dir ฉันต้องเรียกใช้โปรแกรมจากภายในไดเรกทอรีดังนั้นฉันต้องไป cd / usr / bin / my-dir ./my-program ฉันมีสคริปต์ที่จากเครื่องรีโมตอัพเดตโปรแกรมของฉันเช่นนี้: rm -rf / usr / bin / my-dir mv my-program / usr / bin / my-dir ปัญหาคือเมื่อฉันได้ ssh ลงในเครื่องและอยู่ในไดเรกทอรี / usr / bin / my-dir สคริปต์ล้มเหลวเนื่องจากไม่สามารถดำเนินการ rm -rf / usr / bin / …
linux  ssh  shell 

0
วิธีใช้ SCP เพื่อคัดลอกไฟล์ที่สร้างระหว่างวันที่สองวันจากเซิร์ฟเวอร์ระยะไกล
ฉันได้ทำงาน Jenkins เพื่อดาวน์โหลดรายงาน csv ที่เก็บถาวร gz ด้วย scp: sshpass -p $password scp -o StrictHostKeyChecking=no -r $login@$IP:/archive/*.csv.gz . ตอนนี้ฉันต้องดาวน์โหลดเฉพาะไฟล์เก็บถาวรที่สร้างขึ้นระหว่างสองวัน มีการเข้าถึงแบบอ่านอย่างเดียวสำหรับผู้ใช้ส่วนใหญ่ดังนั้นการสร้างรายการไฟล์จึงไม่ใช่ตัวเลือก ฉันไม่กังวลกับปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นและไม่มีรายการเซิร์ฟเวอร์ที่คงที่ให้ดาวน์โหลด ความคิดใด ๆ

2
วิธีกำหนดค่า eshell เอง
ฉันจะปรับแต่งพรอมต์ของได้eshellอย่างไร ฉันจะป้องกันไม่ให้แสดงเส้นทางปัจจุบันแบบเต็มโดยเฉพาะได้อย่างไร
shell  emacs 

2
ฉันจะป้องกันการขึ้นบรรทัดใหม่ใน Vim ได้อย่างไรเมื่อใช้: r! date และคำสั่งเชลล์อื่น ๆ ?
เวลาส่วนใหญ่ของฉันเมื่อฉันใส่วันที่ฉันพยายามที่จะทำในช่วงกลางของบรรทัด ตามค่าเริ่มต้นดูเหมือนว่า:r!รสชาติของการแทรกจะทำให้เกิดผลลัพธ์ในบรรทัดใหม่เสมอ สิ่งนี้ทำให้ฉันรู้สึกบางอย่างเนื่องจากคำสั่งเชลล์ส่วนใหญ่สร้างบรรทัดใหม่ขึ้นมาก่อนที่จะแสดงผลลัพธ์คำสั่ง ในกรณีของการปอกเปลือกออกจาก Vim สำหรับคำสั่งเล็ก ๆ เช่นdate +%xนี้ไม่ได้เป็นพฤติกรรมที่ฉันต้องการ ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

1
ฉันจะตั้งค่าสิ่งที่ควรเกิดขึ้นในเทอร์มินัลด้วยคำสั่งที่แน่นอนได้อย่างไร
ถ้าฉันรัน แคล 2013 ในเทอร์มินัลมันสะท้อนถึงปฏิทินสำหรับปี 2013 สำหรับเรื่องของความสนุกฉันต้องการให้เทอร์มินัลสะท้อนออกมา ปีนี้คงไม่มา ฉันจะทำสิ่งนี้ได้อย่างไร ฉันพยายามเพิ่มมันเป็นนามแฝงใน. bashrc แต่ฉันไม่สามารถสร้างชื่อแทนด้วยช่องว่างได้ ความคิดใด ๆ แก้ไข: ทางออกสุดท้าย: echo "cal() { if [[ \$@ > \"2012\" ]]; then command echo \"This year won't come.\"; else command cal \"\$@\"; fi; }" >> ~/.profile && source ~/.profile

3
วิธีออกจากการถูกระงับโดย bash console
ในเทอร์มินัลระบบเหมือนยูนิกซ์บางครั้งฉันใช้คำสั่งบางอย่างไม่ถูกต้องและทำให้ bash ไม่รู้ว่าต้องทำอะไร เช่น grep 'word' -R จากนั้นฉันจะแก้ไขข้อผิดพลาดหรือกำจัดมันให้ลองใหม่ได้อย่างไร ดูเหมือนว่า CTRL + C จะช่วยให้ฉันกลับมาฟรี แต่ไม่แน่ใจว่านี่เป็นการปฏิบัติที่ดีหรือไม่?
bash  shell 

1
คำสั่ง ssh sudo ไปยังเครื่องโลคอล
ฉันมีนายเครื่องจักรสองนายทาส พวกเขามีการตั้งค่า ssh รหัสผ่านระหว่างพวกเขา ie master -> master และ master -> slave ฉันสังเกตเห็นปัญหาต่อไปนี้ user@master$ ssh master sudo whoami sudo: no tty present and no askpass program specified user@master$ ssh slave sudo whoami root user@master$ ssh -t master sudo whoami [sudo] password for user: ฉันประหลาดใจที่ฉันต้องพิมพ์รหัสผ่านสำหรับเครื่องท้องถิ่น แต่ไม่ใช่สำหรับระยะไกล! ฉันจะข้าม sudo prompt บน master …
linux  shell  ssh 

1
ฉันจะระบุชื่อหน้าจอสำหรับคำสั่ง (Gnu-Screen) ได้อย่างไร
หากมี 2 หน้าจอ gnu ที่มีชื่อ: screen1 และ screen10 ถ้าเราต้องการทำบางสิ่งกับ screen1 ฉันทำไม่ได้เพราะถ้าฉันลองเป็นตัวอย่างเพื่อพิมพ์บางสิ่งบนหน้าจอมันจะบอกว่ามี Screen screen1 และ screen10 ดังนั้นฉันต้องระบุคำสั่งของฉันดังนั้นมันจะพิมพ์ไปที่ screen1 โดยไม่มีปัญหาใด ๆ แต่จะระบุได้อย่างไรดังนั้นคำสั่งด้านล่างนี้จะใช้งานได้อย่างไร screen -x screen1 -p 0 -X stuff `printf "test\r"` หน้าจอแบบแมนนวล: http://www.gnu.org/software/screen/manual/screen.html (ฉันไม่พบข้อโต้แย้งที่จะแก้ปัญหานี้)

1
เชลล์สคริปต์ใช้ตัวแปรเพื่อเก็บการเปลี่ยนเส้นทางเอาต์พุต
ฉันมีสคริปต์ 'ง่าย' ที่รันคำสั่งไม่กี่ปกติฉันแค่ต้องการเห็น echo สองสามแจ้งให้ฉันรู้ว่ามันขึ้นอยู่กับ แต่บางครั้งฉันต้องการเอาต์พุต verbose ซึ่งแสดงผลลัพธ์ของคำสั่งที่ถูกเรียกใช้ ตัวอย่างการใช้งานปกติ echo "Simple message" wget 'http://example.com' > /dev/null ตัวเลือกอย่างละเอียด echo "Simple message" wget 'http://example.com' ฉันคิดว่าการใช้ตัวแปรเพื่อเก็บการเปลี่ยนเส้นทางผลลัพธ์ output="" if [ -z "$1" ] then output="> /dev/null" fi echo "Simple message" wget 'http://example.com' $output ปัญหามันดูเหมือนจะไม่ทำงานดังนั้นฉันจึงเพิ่ม -x ลงใน shebang และผลลัพธ์แสดงให้ฉันเห็น wget 'http://example.com' '>' /dev/null ฉันจะหยุดไม่ให้>อ้างคำพูดเดียวได้อย่างไร สคริปต์ต้นฉบับมีอยู่มากกว่าเรื่องง่าย …

1
วิธีการเปลี่ยนไดเรกทอรีใน Ubuntu
ฉันกำลังพยายามเปลี่ยนไดเรกทอรีของลิงก์สัญลักษณ์ ln -s /usr/local/mysql-cluster-gpl-7.1.5-linux-i686-glibc23 /usr/local/mysql เมื่อฉันพิมพ์คำสั่งcd / usr / local / mysqlมันทำให้ฉันมีข้อผิดพลาด root@lucky:cd /usr/local/mysql bash: cd: mysql: No such file or directory และผลลัพธ์ ls ของฉันคือ root@lucky:~# ls -la /usr/local/ drwxr-xr-x 6 root root 4096 Dec 15 16:22 lib lrwxrwxrwx 1 root root 9 Nov 12 10:18 man -> share/man lrwxrwxrwx …

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