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

Bash คือ Bourne Again SHell ผู้สืบทอดมาจาก Unix sh (shell) คลาสสิก

3
ส่งเอาต์พุต bash -x ไปที่ logfile โดยไม่รบกวนเอาต์พุตมาตรฐาน
มีวิธีการส่งข้อมูลที่แสดงโดยการรันสคริปต์ bash พร้อมกับตัวเลือก -x ไปยังไฟล์หรือไม่ในขณะที่ไม่ได้เปลี่ยนเอาท์พุทมาตรฐานที่ผู้ใช้รันสคริปต์มองเห็น? นี่เป็นคุณสมบัติการแก้ไขข้อบกพร่องที่ฉันต้องการนำไปใช้ในสคริปต์ทุบตีที่เราใช้การเปลี่ยนแปลงนั้นบ่อยครั้ง ชื่นชมมาก

5
เชลล์สคริปต์สามารถรอให้ไฟล์เปลี่ยนแปลงและดำเนินการได้หรือไม่?
ฉันสงสัยว่าฉันสามารถเขียนสคริปต์ที่จะตรวจสอบการเปลี่ยนแปลงในไฟล์และดำเนินการบางอย่างเมื่อตรวจพบการเปลี่ยนแปลงหรือไม่ คำอธิบายโดยละเอียด: OpenVPN เขียนสถานะลงในไฟล์ทุก ๆ 1 นาที ฉันต้องแจงไฟล์สถานะนี้แล้วดำเนินการ OpenVPN ตัดทอนไฟล์สถานะก่อนที่จะเขียนลงไป ฉันลองเขียนไปที่ไปป์ที่มีชื่อ แต่ฉันพบข้อผิดพลาดที่ไม่พึงประสงค์ (แต่ไม่ถึงตาย) ในแอพเมื่อไม่สามารถตัดทอนได้

4
แป้นพิมพ์ลัดเพื่อเก็บคำสั่งที่พิมพ์และล้างบรรทัด
คุณรู้สถานการณ์: คุณกำลังพิมพ์คำสั่งแบบยาว (ตัวอย่างเช่นข้อความยืนยัน) และรู้ว่าคุณลืมที่จะใช้คำสั่งสิ่งที่จำเป็นต้องมีที่ไม่สามารถเพิ่ม&&ได้ โดยปกติเมื่อเกิดขึ้นกับฉันฉันเลือกสิ่งที่ฉันพิมพ์ด้วยเมาส์คัดลอกไปยังคลิปบอร์ดกด Ctrl-U เพื่อล้างบรรทัดเรียกใช้คำสั่งข้อกำหนดเบื้องต้นของฉันและวางรูปแบบคลิปบอร์ด แต่อาจจะมีวิธีที่ดีกว่าโดยเฉพาะอย่างยิ่งโดยไม่จำเป็นต้องใช้เมาส์? ฉันกำลังมองหาวิธีแก้ปัญหาสำหรับ bash และ / หรือ zsh

2
ฉันจะเรียกคืนกระบวนการที่ถูกปฏิเสธได้อย่างไร
คล้ายกับคำถามก่อนหน้านี้หลายอย่างฉันพบว่าตัวเองกำลังทำงานที่ฉันหวังว่าฉันจะได้ทำงานในหน้าจอ ฉันถูกบังคับให้ปฏิเสธกระบวนการเพราะฉันต้องการตัดการเชื่อมต่อ ตอนนี้ฉันได้เชื่อมต่อใหม่ฉันเห็นว่ากระบวนการยังคงทำงานอยู่ ฉันจะ "เรียกคืน" กระบวนการได้อย่างไรเพื่อที่ฉันจะได้เห็นผลลัพธ์ของมันและให้มันเข้ามา? คำถามนี้แตกต่างจากเพียงแค่ย้ายกระบวนการทำงานไปที่หน้าจอซึ่งเกี่ยวข้องกับการเปิด stdin / out / err หมายเลขอ้างอิงที่หายไปอีกครั้ง
12 bash  terminal 

8
ใช้ su ภายในของเชลล์สคริปต์
ฉันกำลังทำให้กระบวนการปรับใช้เป็นไปโดยอัตโนมัติและฉันต้องการเรียกไฟล์. sh หนึ่งไฟล์บนเครื่องของฉันให้ฉันสร้างและอัปโหลด. zip ไปยังเซิร์ฟเวอร์แล้วทำสิ่งต่าง ๆ บนเซิร์ฟเวอร์ หนึ่งในสิ่งที่ฉันต้องทำคือให้ฉันต้องรูต ดังนั้นสิ่งที่ฉันต้องการทำคือ: ssh user@172.1.1.101 <<END_SCRIPT su - #password... somehow... #stop jboss service server_instance stop #a bunch of stuff here #all done! exit END_SCRIPT เป็นไปได้ไหม
12 ssh  bash  sudo  su 

7
ใน * nix จะตรวจสอบว่าระบบไฟล์ใดที่ไฟล์นั้นเปิดอยู่ได้อย่างไร
ในสภาพแวดล้อมยูนิกซ์ทั่วไปที่ทันสมัย ​​(เช่น GNU / Linux, GNU / Solaris หรือ Mac OS X) มีวิธีที่ดีในการตรวจสอบว่าจุดเมานท์และระบบไฟล์ประเภทใดที่พา ธ ของไฟล์แน่นอนอยู่ ฉันคิดว่าฉันสามารถรันmountคำสั่งและแยกวิเคราะห์ผลลัพธ์ด้วยตนเองและเปรียบเทียบสตริงกับพา ธ ไฟล์ของฉัน แต่ก่อนที่ฉันจะทำฉันสงสัยว่ามีวิธีที่สวยงามกว่านี้หรือไม่ ฉันกำลังพัฒนาสคริปต์ BASH ที่ใช้ประโยชน์จากคุณสมบัติเพิ่มเติมและต้องการทำให้สิ่งที่ถูกต้อง (เท่าที่เป็นไปได้) สำหรับระบบไฟล์และสภาพแวดล้อมโฮสต์ที่หลากหลาย

2
ฉันจะวัดการใช้งานเครือข่ายสะสมของกระบวนการตั้งแต่เริ่มต้นจนถึงสิ้นสุด
ฉันต้องการวัดจำนวนแบนด์วิดท์ที่git pullใช้โดยเฉพาะอย่างยิ่งโดย prefixing คำสั่ง git กับโปรแกรมที่ต้องการเช่นnettally git pull อีกวิธีหนึ่งมีวิธีลับๆล่อๆในการสะสมข้อมูล nethogs / wireshark และเพิ่มตัวเลขหลังการประหารชีวิตหรือไม่? ขอบคุณ

2
วิธีตั้งค่ารหัสผ่านผู้ใช้ postgresql ใน bash script
ฉันต้องการที่จะตั้งรหัสผ่านสำหรับผู้ใช้เซิร์ฟเวอร์เริ่มต้น PostgreSQL postgresที่ ฉันทำได้โดยใช้: sudo -u postgres psql # \password postgres ฉันต้องการทำขั้นตอนนี้ในหลาย ๆ เครื่องดังนั้นฉันต้องการสร้างbashสคริปต์เพื่อทำสิ่งเดียวกัน วิธีการบรรลุสิ่งนี้ในทุบตี?

5
มีการแจ้งเตือนสีแตกต่างกันสำหรับเครื่องที่แตกต่างกันเมื่อใช้เทอร์มินัล / ssh?
ฉันมี 5 เครื่องที่ฉันทำงานอยู่ตลอดเวลา มันน่าผิดหวังมากขึ้นเมื่อฉันออกคำสั่งผิดในกล่องที่ไม่ถูกต้อง โชคดีที่ฉันยังไม่ได้ทำอะไรที่ไม่ดีเลย ฉันต้องการทราบว่ามีแฮ็กใดบ้างที่ฉันสามารถเข้ารหัสซึ่งจะแสดงข้อความแจ้งของฉันเป็นสีต่าง ๆ ตามเครื่องที่ฉันใช้อยู่ เช่นสีน้ำเงินสำหรับ desktop1, ม่วงสำหรับแล็ปท็อป, สีแดงสำหรับเซิร์ฟเวอร์ ฯลฯ ? เป็นไปได้ไหม ขณะนี้ฉันกำลังใช้คำสั่งนี้ส่งออก PS1 = "\ e [0; 31m [\ u @ \ h \ W] \ $ \ e [m" นำมาจากที่นี่http://www.cyberciti.biz/faq/bash-shell -change-the-color-of-my-shell-prompt-under-linux-or-unix / แต่เห็นได้ชัดว่ามันใช้งานไม่ได้กับ ssh นอกจากนี้หากคุณมีเคล็ดลับทุบตีเด็ด ๆ อื่น ๆ ที่ช่วยให้ฉันผ่อนคลายสายตาของฉันจะยอดเยี่ยม ฉันได้รับเคล็ดลับนี้ซึ่งสีคนหน้า http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/

9
ข้อผิดพลาด 'รายการอาร์กิวเมนต์ยาวเกินไป' ขณะคัดลอกไฟล์จำนวนมาก
ฉันใช้คำสั่งต่อไปนี้: \cp -uf /home/ftpuser1/public_html/ftparea/*.jpg /home/ftpuser2/public_html/ftparea/ และฉันได้รับข้อผิดพลาด: -bash: /bin/cp: Argument list too long ฉันได้ลองด้วย: ls /home/ftpuser1/public_html/ftparea/*.jpg | xargs -I {} cp -uf {} /home/ftpuser2/public_html/ftparea/ ยังคงได้รับ -bash: / bin / ls: รายการอาร์กิวเมนต์ยาวเกินไป ความคิดใด ๆ
12 linux  bash  unix-shell 

2
วิธีกรองข้อความ rsyslog ด้วยแท็ก
ฉันมีแอพพลิเคชั่นและสคริปต์หลายตัวที่ฉันต้องการเปลี่ยนเส้นทางไปยังไฟล์ที่กำหนดเอง ฉันเปิดแอปพลิเคชันเหล่านั้นโดยใช้ command | logger -t TAG ฉันต้องการกรองข้อความเหล่านี้ตามแท็กและเปลี่ยนเส้นทางไปยังไฟล์ต่างๆ ฉันไม่ต้องการใช้การเปลี่ยนเส้นทาง bash เนื่องจากแอปพลิเคชันเหล่านี้ส่วนใหญ่ใช้เวลาในการประมวลผลนานและต้องการการหมุนเวียนบันทึกที่เหมาะสม ฉันพยายามเพิ่มตัวกรองที่กำหนดเองใน /etc/rsyslog.d/60-myfilter.conf; if $syslogtag == 'giomanager' then /var/log/giomanager.log ผมทำอะไรผิดหรือเปล่า ? เป็นวิธีที่เหมาะสมในการกรองตามแท็กหรือมีตัวเลือกที่ดีกว่าเพื่อให้ได้ผลลัพธ์ที่คล้ายกัน?
12 bash  logging  syslog  rsyslog 

5
คุณช่วยอธิบายเรื่องนี้ให้ฉัน #ln -s ทราบ:“ เป้าหมายไม่ใช่ไดเรกทอรี” หรือไม่
ฉันทำสิ่งนี้: sudo ln –s /etc/apache2/sites-available/LoginProject /etc/apache2/sites-enabled/LoginProject และฉันได้รับ: ln: target `/etc/apache2/sites-enabled/LoginProject' is not a directory / etc / apache2 / sites-available / LoginProject เป็นไฟล์ แก้ไข: คำสั่งนี้: ls -l /etc/apache2/sites-enabled/LoginProject /etc/apache2/sites-available/LoginProject เอาท์พุท: ls: cannot access /etc/apache2/sites-enabled/LoginProject: No such file or directory -rw-r--r-- 1 root root 526 2011-09-27 18:40 /etc/apache2/sites-available/LoginProject แก้ไข 2: $ls …
12 bash  linux 

5
ลบ IP ด้วยคำสั่ง ip ใน linux
ถ้าฉันเพิ่มสอง IP เช่นนี้: ip addr add 1.1.1.1/24 dev eth2 ip addr add 1.1.1.2/24 dev eth2 แล้วฉันพยายามที่จะลบแบบนี้: ip addr del 1.1.1.2/24 dev eth2 IP ทั้งคู่จะถูกลบและฉันไม่รู้วิธีจัดการกับมัน มีใครรู้วิธีแก้ปัญหาเหรอ?


4
พบคำสั่ง linux แต่ไม่พบเมื่อใช้ sudo
ฉันพยายามเรียกใช้การติดตั้ง python3 ดังนี้: pip3 install django ฉันได้รับข้อผิดพลาด: PermissionError: [Errno 13] การอนุญาตถูกปฏิเสธ: '/usr/local/lib/python3.6/site-packages/pytz' ฉันลองแล้ว: sudo pip3 install django ฉันได้รับข้อผิดพลาด: sudo: pip3: ไม่พบคำสั่ง นี่คือลักษณะของ $ PATH ของฉัน: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin ฉันจะเข้าถึง sudo ไปยัง pip3 ได้อย่างไร
11 linux  centos  bash  sudo 

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