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

Bash (Bourne-Again SHell) เป็นเชลล์ที่ใช้ในอินเตอร์เฟสบรรทัดคำสั่งของ Ubuntu ตามค่าเริ่มต้น


5
ฉันจะรันคำสั่งหลายคำสั่งโดยใช้อาร์กิวเมนต์เดียวกันได้อย่างไร
ฉันสงสัยว่ามันเป็นไปได้ที่จะทำการกระทำลูกโซ่ใน terminal Ubuntu เช่น: action 1 on objectA . then action 2 on objectA โดยไม่ต้องทำซ้ำชื่อของ objectA อีกต่อไป ตัวอย่าง: touch file.js && openEditor "$1" หรืออะไรทำนองนั้น

3
[co] หมายถึงอะไรในคำสั่ง“ rm -rf filename [co]”
สมมติว่าฉันมีสองไฟล์ใน/tmp: root@ubuntu:~# touch /tmp/hello.{pyc,py} root@ubuntu:~# ls /tmp/ hello.py hello.pyc ตอนนี้ให้เรียกใช้rm -rfคำสั่งด้วยตัวเลือก [co] root@ubuntu:~# rm -rf /tmp/hello.py[co] root@ubuntu:~# ls /tmp/ hello.py บางคนช่วยอธิบายสิ่งที่เกิดขึ้นที่นี่ได้ไหม? อะไรคือสิ่งที่[co]พารามิเตอร์? เราจะทำให้มันทำงานกับส่วนขยายอื่น ๆ ได้อย่างไร ถ้าฉันมีfoo.jsและfoo.coffeeไฟล์เราสามารถทำสิ่งที่ต้องการrm -rf /tmp/foo.coffe[co]ลบได้/tmp/foo.jsหรือไม่
16 command-line  bash  rm 

3
วิธีแทรกแท็บก่อนบรรทัดเอาต์พุตจากคำสั่งที่เรียกใช้งาน
แค่คำถามด่วน เป็นไปได้ไหมที่จะแท็บผลลัพธ์บน Ubuntu 16.04 LTS ฉันสร้างสองภาพด้านล่างเพื่อลองและอธิบายสิ่งที่ฉันหมายถึงโดยสิ่งนี้

2
ไม่ใช่ sudo ทางเลือกสำหรับ / usr / local / bin สำหรับสคริปต์ทั่วไป
ฉันคุ้นเคยกับการใส่สคริปต์ทั่วไป/usr/local/binเพื่อให้ฉันสามารถเรียกใช้งานได้จากทุกที่ด้วยเทอร์มินัล ตัวอย่างเช่นฉันสร้างเชลล์สคริปต์ชื่อ1ทำให้สามารถเรียกใช้งานได้ด้วยchmod +x 1และใส่ไว้ใน/usr/local/binและภายในสคริปต์ที่ฉันพิมพ์#!/bin/shในบรรทัดแรกแล้วตามด้วยคำสั่งของฉัน จากนั้นเป็นต้นมาสามารถใช้งานได้อย่างสะดวกและรวดเร็วโดยพิมพ์ 1Enter บนเทอร์มินัลจากภายในโฟลเดอร์ใด ๆ ปัญหาของฉันคือว่าฉันกำลังทำงานบนคอมพิวเตอร์ที่ไม่สามารถทำได้sudoและฉันไม่สามารถคาดหวังว่าจะได้รับมันดังนั้นฉันจึงไม่สามารถวางสคริปต์ไว้ใน/usr/local/binได้ ตัวเลือกของฉันคืออะไร? มีเส้นทางอื่นที่มีความสามารถ "เรียกใช้จากที่ใดก็ได้" เดียวกันซึ่งฉันสามารถเข้าถึงได้โดยไม่ต้องsudoวิธีอื่นเพื่อให้ได้สิ่งที่เทียบเท่าหรือไม่ คำตอบที่ได้รับการยอมรับสำหรับโพสต์นี้พูดว่า สำหรับสคริปต์ที่ผู้ใช้กำหนดให้ใช้ bin / ในไดเรกทอรีบ้านของคุณ ซึ่งฉันพยายาม แต่ไม่มี binโฟลเดอร์ในโฮมไดเร็กตอรี่ของฉันและเมื่อฉันสร้างมันขึ้นมาฉันยังไม่สามารถเรียกใช้สคริปต์จากที่อื่นได้ ฉันกำลังใช้งาน Ubuntu 12.04 LTS

3
การลบอินพุตกลับไปที่เครื่องหมายสแลชสุดท้าย
ฉันมักจะถูกโยนระหว่างหลายไฟล์บนเซิร์ฟเวอร์ ฉันจะเรียกใช้คำสั่งตัวอย่างต่อไปนี้ตามลำดับ: nano /web/site/path/to/file /web/site/script.py nano /web/site/path/to/anotherFile nano /web/site/path/to/yetAnotherFile /web/site/script.py nano /web/site/path/to/etc เพื่อไปจากnanoคำสั่งหนึ่งไปยังอีกฉันกำลังกดUpและBackspaceเพื่อแทนที่ส่วนสุดท้ายของเส้นทาง ปัญหานี้คือฉันขี้เกียจจริงๆ มีแป้นพิมพ์ลัด (หรือ Bashism) ที่สามารถ: รับแทนที่ด้วยพา ธ สุดท้ายที่ใช้ (ด้วยบิตพิเศษที่ส่วนท้าย) ลบในบรรทัดปัจจุบัน (เช่นหลังจากกดUp) กลับไปเป็นครั้งสุดท้าย/

2
เปิด Terminal ที่มีหลายแท็บและเรียกใช้แอปพลิเคชัน
ฉันใหม่สำหรับการเขียนสคริปต์ linux shell ฉันต้องการเขียนเชลล์สคริปต์ซึ่งจะเปิดเทอร์มินัลที่มีหลายแท็บ มันควรรันแอพไคลเอ็นต์ rtsp ในแต่ละแท็บ สำหรับสิ่งนี้ฉันได้ผ่านคำถามมาแล้วในฟอรัมนี้และพยายามที่จะเขียนโค้ดอย่างเบลโลว์ tab="--tab-with-profile=Default -e " cmd="java RunRTSPClient" for i in 1 2 3 4 5 do # foo="$foo $tab $cmd" done gnome-terminal $foo exit 0 สิ่งนี้กำลังทำงานและเปิดหน้าต่างเทอร์มินัลพร้อมแท็บ แต่ทันใดนั้นก็จะปิด ฉันไม่ได้รับข้อผิดพลาดใด ๆ

3
วิธีทำให้ชื่อผู้ใช้ในเทอร์มินัลเล็กลง?
เมื่อคุณเปิดเครื่องเทอร์มินัลจะแสดงชื่อผู้ใช้และชื่อเครื่อง romeo@romeo-Satellite-C660D:~$ในฐานะที่เป็นตัวอย่างที่แสดงให้เห็นว่าข้า มันน่ารำคาญจริงๆเพราะมันค่อนข้างใหญ่ ฉันสามารถทำให้ขนาดเล็กลงเช่นแสดงเฉพาะ romeo ได้หรือไม่ ฉันรู้ว่ามันฟังดูงี่เง่า แต่ฉันใหม่กับระบบปฏิบัติการ Unix

3
การเรียกใช้คำสั่งใด ๆ จะส่งคืน“ ไม่สามารถจัดสรรหน่วยความจำได้” บน Ubuntu Server
ฉันใช้ Ubuntu 14.04 เมื่อเร็ว ๆ นี้เมื่อฉันเข้าสู่ระบบผ่าน SSH ด้วยผู้ใช้ของฉันด้วยสิทธิ์ sudo ทุกคำสั่งที่ฉันเรียกใช้ผลลัพธ์ในข้อผิดพลาด "ไม่สามารถจัดสรรหน่วยความจำ" นี่คือบางส่วนที่ฉันลองที่คอนโซล myuser@mymachine:~$ whoami -bash: fork: Cannot allocate memory myuser@mymachine:~$ uname -a -bash: fork: Cannot allocate memory แม้ว่าฉันจะลองsudo reboot nowฉันพบข้อผิดพลาดด้านบน แต่ฉันก็ไม่รู้ว่าจะพยายามปลดล็อกอินสแตนซ์ของฉันได้อย่างไร โฮสต์คือ DigitalOcean หากเป็นเรื่องสำคัญ แก้ไข:ต่อคำตอบ / ข้อเสนอแนะที่นี่คือผลลัพธ์ของ "ฟรี" myuser@mymachine:~$ free -bash: fork: Cannot allocate memory

4
การเปลี่ยนพฤติกรรมของ bash prompt เมื่อทำหน้าที่เป็น root
ก่อนที่คุณจะคลิกไปนี่ไม่ใช่คำถามทั่วไป "ฉันจะทำให้ bash prompt มีสีได้อย่างไร" ฉันได้กำหนด bash prompt ของฉันให้เป็นแบบนี้แล้ว: [user @ host]----[$(pwd)] $ ที่ทุกอย่างในวงเล็บเป็นสีฟ้าอ่อนและทุกอย่างอื่น (รวมถึง $) เป็นสีดำโดยเพิ่มสิ่งต่อไปนี้ในไฟล์ ~ / .bashrc ของฉัน # Turn the prompt symbol red if the user is root if [ $(id -u) -eq 0 ]; then # you are root, make the prompt red PS1="[\e[01;34m\u @ …

6
tail: inotify ไม่สามารถใช้งาน, ย้อนกลับไปยังการสำรวจ: มีไฟล์ที่เปิดอยู่มากเกินไป
เมื่อฉันพยายามtail -f catalina.outฉันได้รับข้อผิดพลาด: tail: inotify cannot be used, reverting to polling: Too many open files ฉันลองคำตอบในโพสต์นี้: มีไฟล์ที่เปิดมากเกินไป - วิธีค้นหาผู้ร้าย lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head เมื่อฉันรันคำสั่งข้างต้นผลลัพธ์คือ 17 6115 13 6413 10 6417 10 6415 9 6418 9 6416 …
16 bash  apache2  tomcat  sshd  tail 

2
ใครสามารถอธิบายได้ว่าทำไม sudo ls กับ wildcard ถึงใช้งานไม่ได้?
$ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/access* ls: cannot access /sites/servers/server_instance/logs/access*: No such file or directory $ sudo -iu abc ls -ltr /sites/servers/server_instance/logs/ total 594812 -rwxrwxrwx 1 abc abc 45 Mar 21 12:42 old.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 12:45 console.log -rwxrwxrwx 1 abc abc 304537970 Mar 24 …

4
เมื่อเขียนสคริปต์ทุบตีฉันจะหาเส้นทางที่แน่นอนของที่ตั้งของไฟล์ปัจจุบันได้อย่างไร
myBash.bashสมมติว่าฉันมีไฟล์ทุบตีที่เรียกว่า มันอยู่ใน: /myDirect/myFolder/myBash.bash ตอนนี้ฉันต้องการใช้สตริง/myDirect/myFolder(ตำแหน่งmyBash.bash) ภายในสคริปต์ มีคำสั่งที่ฉันสามารถใช้เพื่อค้นหาตำแหน่งนี้หรือไม่? แก้ไข: แนวคิดคือฉันต้องการตั้งค่าโฟลเดอร์ zip ด้วยรหัสที่สามารถเริ่มต้นได้โดยสคริปต์ทุบตีในไฟล์ zip นั้น ฉันรู้เส้นทางไฟล์ที่เกี่ยวข้องของรหัสในไฟล์ zip นั้น แต่ไม่ใช่เส้นทางที่แน่นอนและฉันต้องการมัน วิธีหนึ่งคือการใส่รหัสในพา ธ หรือกำหนดเส้นทางของไฟล์เป็นตัวแปร อย่างไรก็ตามฉันจะค้นหาได้ง่ายขึ้นถ้าเป็นไปได้ที่ bash-file จะหาว่ามันอยู่ที่ไหนด้วยตัวมันเองแล้วสร้างเส้นทางที่เกี่ยวข้องไปยังไฟล์อื่นจากความรู้เกี่ยวกับโครงสร้างของไฟล์ zip

2
ชื่อของข้อความทางด้านซ้ายของคำสั่ง (ตามที่พิมพ์ในเทอร์มินัล) เรียกว่าอะไร?
ฉันสงสัยว่ามีชื่อใดที่ข้อความซ้ายสุด (หลังจากที่เราพิมพ์คำสั่ง) ใน terminal Linux ชอบ ubuntu@Ubuntu:~$ เรามีชื่อสำหรับสิ่งนี้หรือไม่?

4
ลบโฟลเดอร์ย่อยที่ว่างเปล่าเก็บโฟลเดอร์หลัก
เมื่อฉันใช้ find /home/user/parentdir -type d -empty -delete มันจะดูซ้ำ ๆ สำหรับโฟลเดอร์ย่อยที่ว่างอยู่ข้างใน/home/user/parentdirและลบออก แต่ถ้า/home/user/parentdirมันว่างเปล่ามันก็ลบparentdirโฟลเดอร์ด้วยซึ่งไม่เป็นที่พึงปรารถนาสำหรับฉัน ฉันต้องการที่จะเก็บเรื่องนี้ไว้parentdirเพื่อrsyncบางไฟล์เพื่อการสำรองข้อมูลหรือระบบคลาวด์ หลังจากการประมวลผลฉันจำเป็นต้องลบโฟลเดอร์ที่ว่างเปล่า แต่ดูเหมือนจะไม่เกิดผลเพื่อสร้างparentdirทุกครั้ง ข้อเสนอแนะใด ๆ ที่จะเก็บparentdir? ฉันคิดเกี่ยวกับการสร้าง.nocopyไฟล์ที่อยู่ภายในและแยกออกจากrsyncแต่ดูเหมือนว่า overkill มีวิธีที่สง่างามกว่านี้ไหม?

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