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

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

2
รันสคริปต์ทุบตีหลังจากบู๊ตอินสแตนซ์ EC2
ฉันมีสคริปต์บนอินสแตนซ์ EC2 ที่เริ่มอินสแตนซ์อื่นจากระยะไกล เมื่ออินสแตนซ์นี้โหลดเต็มแล้ว (บูตเสร็จ) ฉันต้องการให้มันรันสคริปต์ทุบตีโดยอัตโนมัติสิ่งที่จะเป็นวิธีที่ดีที่สุดในการทำเช่นนี้? ฉันต้องการทุกอย่างที่จะเริ่มต้นอย่างเต็มที่โดยทั่วไปแล้วสคริปต์ทุบตีจะเรียกใช้สคริปต์การแปลงภาพ (โดยใช้ ImageMagick และดำเนินการคำสั่ง "wget" สองสามครั้ง) ปัจจุบันสคริปต์อยู่ที่นี่: /home/root/beginProcess.sh และฉันสามารถเริ่มด้วยตนเองโดยดำเนินการ bash startsProcess.sh RHEL-6.2 Starter-EBS-i386 นอกจากนี้ยังมีปริมาณ EBS ที่แนบมากับสิ่งนี้หากช่วยได้ขอบคุณ!
19 linux  amazon-ec2  bash  boot 

4
ผู้ใช้ทั่วไปสามารถอ่าน / etc / passwd นี่เป็นช่องโหว่ความปลอดภัยหรือไม่?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ls -l /etc/passwd จะช่วยให้ $ ls -l /etc/passwd -rw-r--r-- 1 root root 1862 2011-06-15 21:59 /etc/passwd ดังนั้นผู้ใช้ทั่วไปสามารถอ่านไฟล์ได้ นี่เป็นช่องโหว่หรือไม่
19 linux  security  bash  root 

6
ฆ่าหน้าจอ (แต่ไม่ใช่ทุกหน้าจอ)
ฉันมีหลายหน้าจอที่ทำงานบนเซิร์ฟเวอร์ Ubuntu ที่เริ่มต้นเป็น: screen -dmS screen1 cmd screen -dmS screen2 cmd etc... และฉันต้องฆ่าหน้าจอเดียว แต่ไม่ใช่ทั้งหมด คำสั่งที่ถูกต้องในการฆ่าหน้าจอใดหน้าจอหนึ่งด้วยชื่อของมันคืออะไร? ฉันอ่านหน้า man แล้วแต่ฉันไม่สามารถหาคำสั่งที่ฉันต้องการได้ นอกจากนี้ฉันต้องการเขียนคำสั่งนี้เป็นสคริปต์ทุบตีดังนั้นฉันจึงไม่สามารถscreen -r screen1กดCtrl+ Xตามปกติ
19 bash  gnu-screen  kill 

4
ฉันจะดึงชื่อไฟล์สัมบูรณ์ในเชลล์สคริปต์บน Mac OS X ได้อย่างไร
ฉันต้องการดึงชื่อไฟล์สัมบูรณ์ของไฟล์สคริปต์ที่เรียกใช้ในปัจจุบัน ลิงก์ควรได้รับการแก้ไขเช่นกัน บน Linux ดูเหมือนว่าจะทำเช่นนี้: $(readlink -mn "$0") แต่readlinkดูเหมือนว่าจะทำงานแตกต่างกันมากใน Mac OS X ฉันอ่านแล้วว่านี่ใช้เสร็จแล้ว $(realpath $0) ใน BSD แต่ก็ไม่ได้ผลเช่นกัน Mac OS X realpathไม่ได้ ความคิดใด ๆ
19 mac-osx  bash  shell 

5
ส่งผ่านไพพ์ไปยังคำสั่งที่ต้องการชื่อไฟล์
ว่าฉันมีคำสั่งfooที่ใช้อาร์กิวเมนต์ชื่อไฟล์: foo myfile.txt. น่ารำคาญfooไม่อ่านจากอินพุตมาตรฐาน แทนที่จะเป็นไฟล์จริงฉันต้องการส่งผ่านผลลัพธ์ของคำสั่งอื่น (ในความเป็นจริงpvซึ่งจะจับไฟล์และส่งมิเตอร์วัดความคืบหน้าเป็นผลข้างเคียง) มีวิธีที่จะทำให้สิ่งนี้เกิดขึ้นหรือไม่? ดูเหมือนจะไม่มีอะไรในกระเป๋าของฉัน ( fooในกรณีนี้คือสคริปต์ PHP ซึ่งฉันเชื่อว่าประมวลผลไฟล์ตามลำดับ) ฉันใช้ Ubuntu และ Bash แก้ไขขออภัยสำหรับคำอธิบายปัญหาที่ไม่ชัดเจนเล็กน้อย แต่นี่เป็นคำตอบที่ฉันต้องการ: pv longfile.txt | foo /dev/stdin ชัดเจนมากตอนนี้ที่ฉันเห็นมัน
19 bash  pipe  command 

3
วิธี zip ไฟล์ที่มีขนาด จำกัด
ฉันมีสคริปต์ที่ zip ไฟล์จากโฟลเดอร์ ฉันต้องการตรวจสอบให้แน่ใจว่าไฟล์ซิปไม่เกิน 10 MB หากขนาดมากกว่า 10MB ควรสร้างไฟล์ ZIP ไฟล์อื่น มีคำสั่ง (หรือวิธีอื่น ๆ ) ที่สามารถใช้สำหรับสิ่งนี้ได้หรือไม่?
19 linux  bash  gzip 

1
ปกติ $ BASH_ENV ตั้งอยู่ที่ไหน
ฉันมีเซิร์ฟเวอร์ Linux คู่ที่ควรกำหนดค่าเหมือนกันอย่างไรก็ตามคำสั่ง ssh สำหรับหนึ่งในนั้นกำลังล้มเหลวสำหรับคำสั่งที่ต้องใช้พา ธ ที่ระบุไว้ใน ~ / .bashrc ตัวอย่างเช่นฉันสามารถใช้คำสั่งเช่นpwdทั้งแบบโต้ตอบและผ่าน ssh แต่ถ้าฉันลองเรียกใช้โปรแกรมที่อยู่ในโฟลเดอร์ bin ของแอปพลิเคชันมันจะทำงานในเชลล์แบบโต้ตอบสำหรับเซิร์ฟเวอร์ตัวใดตัวหนึ่งเท่านั้น ไฟล์ / etc / profile และ / etc / environment บนเซิร์ฟเวอร์ทั้งสองเหมือนกันอย่างไรก็ตาม $ BASH_ENV ถูกตั้งค่าเป็น ~ / .bashrc บนเซิร์ฟเวอร์ที่ทำงานอย่างถูกต้อง ฉันต้องการตั้งค่า $ BASH_ENV บนเซิร์ฟเวอร์ที่ไม่ทำงาน แต่ฉันต้องการตั้งไว้ในตำแหน่งเดียวกับที่ตั้งไว้ในเซิร์ฟเวอร์ที่ใช้งานได้ มีสถานที่ใดบ้างที่ Linux จะทำงานในเวลาที่ล็อกอินไม่โต้ตอบเช่นคำสั่ง ssh จากคอมพิวเตอร์เครื่องอื่น? แก้ไข: บรรทัดใน / etc / passwd สำหรับผู้ใช้ระบุ …
19 linux  bash 

3
iftop - วิธีสร้างไฟล์ข้อความด้วยเอาท์พุต
iftopเป็นเครื่องมือที่ยอดเยี่ยมในการดูการใช้งานแบนด์วิดธ์แบบสดเกือบจะแตกต่างโดย source-ip source-port ปลายทาง -ip ปลายทางปลายทาง ฉันใช้มันเพื่อดูว่า IP ของลูกค้ารายใดที่ใช้แบนด์วิดท์มากที่สุด ตอนนี้ฉันต้องการเก็บเอาท์พุทที่ไหนสักแห่ง iftop ใช้ ncurses ดังนั้น iftop > log.txt ไม่ทำงานตามที่คาดไว้ไฟล์ผลลัพธ์ไม่สามารถอ่านได้ มีเครื่องมือเช่นนี้ซึ่งสามารถใช้ในการไพพ์เอาต์พุตไปยังไฟล์ข้อความหรือไม่?


14
สาเหตุของการขาดข้อมูล IP ในเอาต์พุต `last` บนการเข้าสู่ระบบแบบ pts?
ฉันมีห้าระบบ CentOS 6 linux ในที่ทำงานและพบปัญหาที่ค่อนข้างแปลกที่ดูเหมือนจะเกิดขึ้นกับuserid ของฉันในทุกระบบของ linux ที่ฉันมี ... นี่คือตัวอย่างของปัญหาจากรายการที่ฉันยกเว้นจากlastคำสั่ง .. . mpenning pts/19 Fri Nov 16 10:32 - 10:35 (00:03) mpenning pts/17 Fri Nov 16 10:21 - 10:42 (00:21) bill pts/15 sol-bill.local Fri Nov 16 10:19 - 10:36 (00:16) mpenning pts/1 192.0.2.91 Fri Nov 16 10:17 - 10:49 (12+00:31) …
18 linux  centos  bash  login  terminal 

9
สคริปต์เพื่อทดสอบโดยอัตโนมัติหากมีเว็บไซต์
ฉันเป็นผู้พัฒนาเว็บไซต์โดดเดี่ยวที่มี Centos VPS ของตัวเองที่โฮสต์เว็บไซต์เล็ก ๆ น้อย ๆ สำหรับลูกค้าของฉัน วันนี้ฉันค้นพบบริการ httpd ของฉันหยุดทำงาน (โดยไม่มีเหตุผลที่ชัดเจน - แต่นั่นเป็นอีกเธรดหนึ่ง) ฉันรีสตาร์ท แต่ตอนนี้ฉันต้องหาวิธีที่ฉันจะได้รับแจ้งทางอีเมลและ / หรือ SMS หากมันเกิดขึ้นอีกครั้ง - ฉันไม่ชอบเมื่อลูกค้าของฉันโทรหาฉันเพื่อบอกเว็บไซต์ของพวกเขาไม่ทำงาน! ฉันรู้ว่าอาจมีความเป็นไปได้ที่แตกต่างกันมากมายรวมถึงซอฟต์แวร์ตรวจสอบสถานะเซิร์ฟเวอร์ ฉันคิดว่าสิ่งที่ฉันต้องการจริงๆคือสคริปต์ที่ฉันสามารถเรียกใช้เป็นงาน cron จากโฮสต์ dev ของฉัน (ซึ่งทำงานในสำนักงานของฉันอย่างถาวร) ที่พยายามโหลดหน้าจากเซิร์ฟเวอร์ที่ใช้งานจริงของฉันและถ้ามันไม่โหลดภายใน 30 วัน วินาทีจากนั้นจะส่งอีเมลหรือ SMS ฉันค่อนข้างขยะที่เชลล์สคริปต์ดังนั้นคำถามนี้ ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างสุดซึ้ง

4
ใช้ bash ฉันจะหาค่าเฉลี่ยสูงสุดและต่ำสุดจากรายการตัวเลขได้อย่างไร
ฉันมี greps piped อนุกรม awks และ seds ซึ่งสร้างรายการของตัวเลขหนึ่งในแต่ละบรรทัด บางสิ่งเช่นนี้ 1.13 3.59 1.23 ฉันจะไปป์ไลน์นี้กับสิ่งที่จะส่งออกโดยเฉลี่ยสูงสุดและต่ำสุดได้อย่างไร

4
วิธีการเรียกใช้สคริปต์ผ่าน SSH ที่ไม่สิ้นสุดเมื่อฉันปิดการเชื่อมต่อ?
ฉันต้องการเรียกใช้สคริปต์ที่ใช้เวลานานในการรันหรือฉันแค่อยากให้มันรันไปตลอดกาล ฉันไม่สามารถเพียงแค่ SSH กับเครื่องของฉันเพราะเมื่อฉันยกเลิกการเชื่อมต่อหยุดทำงาน มีวิธีการเรียกใช้สคริปต์ที่ไม่ได้ขึ้นอยู่กับเปลือกที่เริ่มมันได้หรือไม่ ฉันใช้ Ubuntu 9.04
18 ubuntu  ssh  bash  scripting 

5
ใช้ sed เพื่อลบทั้งการเปิดและปิดวงเล็บเหลี่ยมรอบสตริง
ฉันใช้คำสั่งนี้ใน bash shell บน Ubuntu 12.04.1 LTS ฉันพยายามที่จะลบทั้งตัวละคร[และ]ตัวละครในฉากที่ตกเช่นเดียวโดยไม่ต้องไปปฎิบัติซ้ำอีกครั้ง ฉันรู้ว่าวงเล็บเหลี่ยมมีความหมายพิเศษใน regex ดังนั้นฉันจึงหลบหนีพวกเขาโดยใส่เครื่องหมายแบ็กสแลชไว้ล่วงหน้า ผลลัพธ์ที่ฉันคาดหวังเป็นเพียงสตริง123แต่วงเล็บเหลี่ยมยังคงอยู่และฉันชอบที่จะรู้ว่าทำไม! ~$ echo '[123]' | sed 's/[\[\]]//' [123]
18 bash  regex  sed 

7
ฆ่ากระบวนการทั้งหมดที่ทำงานนานกว่า 5 นาทีโดยผู้ใช้ที่กำหนดในสคริปต์ linux bash
ฉันต้องการคำสั่งเพื่อฆ่าโปรเซสที่รันอยู่อย่างน้อย 5 นาทีสำหรับกระบวนการที่กำหนด ฉันจะต้องเรียกใช้คำสั่งนั้นทุก ๆ ห้านาทีหรือมากกว่านั้น ขอบคุณหนึ่งล้าน! (ระบบคือ Centos5)
18 linux  bash 

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