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

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

1
รีบูตเครื่องหลายเครื่องจากระยะไกล
ฉันต้องรีบูตเครื่องหลายเครื่องจากระยะไกล โดยปกติฉันเพิ่งออก for host in <hostlist>;do ssh ${host} 'sudo shutdown -r now';done แต่ฉันต้องการให้ผู้ใช้บางครั้งก่อนรีสตาร์ท อย่างไรก็ตามพวกเขาจะไม่ยกเลิกการเชื่อมต่อเซสชันแม้ว่าฉันจะใช้: ssh -f 'sudo shutdown -r +5 &;disown' ฉันได้รับข้อความแสดงข้อผิดพลาด: bash: -c: บรรทัด 0: เกิดข้อผิดพลาดทางไวยากรณ์ใกล้กับการ;' bash: -c: line 0:ปิดโทเค็นโทเค็นที่ไม่คาดคิด-r +5 &; disown ' ข้อเสนอแนะใด ๆ
11 ssh  bash 

2
การทดสอบช่องโหว่ Shellshock ที่ปรับปรุงแล้วสำหรับ CVE-2014-7169 นั้นทำงานอย่างไร
ฉันเข้าใจการทดสอบดั้งเดิมสำหรับ CVE-2014-6271 ซึ่งก็คือ: $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" แต่ฉันสับสนโดยการทดสอบที่ปรับปรุงและผลลัพธ์ที่สอดคล้องกันสำหรับ CVE-2014-7169: $ env X='() { (a)=>\' sh -c "echo date"; cat echo sh: X: line 1: syntax error near unexpected token `=' sh: X: line 1: `' sh: error importing function definition …
11 security  bash 

1
ไม่มีไฟล์หรือไดเรกทอรีผิดพลาดเมื่อพยายามเรียกใช้สคริปต์เริ่มต้นใน Debian
ใหม่มากสำหรับ Debian (Raspbian) และฉันกำลังดิ้นรนกับอันนี้สองสามวัน ฉันมีสคริปต์เริ่มต้นที่ฉันต้องการเรียกใช้เมื่อเริ่มต้น ฉันได้ดำเนินการคำสั่งต่อไปนี้เพื่อให้สคริปต์ที่ปฏิบัติการและเพื่อเพิ่มด้วยพารามิเตอร์เริ่มต้นเพื่อลำดับการเริ่มต้น sudo chmod 755 /etc/init.d/testsam sudo update-rc.d testsam defaults เมื่อพยายามทดสอบสคริปต์ฉันใช้งานสิ่งต่อไปนี้: sudo /etc/init.d/testsam start แต่เมื่อทำเช่นนั้นฉันได้รับข้อผิดพลาด: ไม่สามารถดำเนินการ /etc/init.d/testsam: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว ฉันย่อขนาดสคริปต์ให้น้อยที่สุด แต่ก็ยังไม่มีเหตุผลที่แท้จริง ฉันหวังว่าบางคนสามารถชี้ให้ฉันเห็นทางออกที่ถูกต้อง? นี่คือสคริปต์ในปัจจุบัน #! /bin/bash # /etc/init.d/testsam case "$1" in start) #echo "starting script" ;; stop) #echo "stopping script" ;; *) #echo "Usage: /etc/init.d/testsam {start|stop}" exit 1 …

3
smtp.gmail.com จาก bash ให้“ ข้อผิดพลาดในใบรับรอง: ไม่รู้จักผู้ออกใบรับรองของเพียร์”
ฉันต้องการสคริปต์ของฉันถึงผู้ดูแลระบบอีเมลหากมีปัญหาและ บริษัท ใช้ Gmail เท่านั้น ทำตามคำแนะนำการโพสต์ไม่กี่ฉันก็สามารถตั้งค่า mailx โดยใช้ไฟล์. mailrc มีข้อผิดพลาดครั้งแรกของ nss-config-dir ฉันแก้ไขได้โดยการคัดลอกไฟล์. db บางไฟล์จากไดเรกทอรี firefox เพื่อ. /certs และมุ่งไปที่มันใน mailrc ส่งจดหมายแล้ว อย่างไรก็ตามข้อผิดพลาดข้างต้นเกิดขึ้น ด้วยความมหัศจรรย์บางอย่างมีใบรับรองของ Google ใน. db มันปรากฏขึ้นพร้อมกับคำสั่งนี้: ~]$ certutil -L -d certs Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI GeoTrust SSL CA ,, VeriSign Class 3 Secure Server CA - G3 ,, Microsoft …
11 ssl  bash  gmail 

2
Debian SSH - เทอร์มินัลการปรับขนาดไม่ได้ลงทะเบียนด้วย bash
เราเพิ่งติดตั้งเซิร์ฟเวอร์ของเราอีกครั้งเนื่องจากความล้มเหลวของดิสก์และตอนนี้เรากำลังมีปัญหากับการปรับขนาดเทอร์มินัล เราติดตั้ง Debian 6.0.6 อาการ เมื่อคุณปรับขนาดเทอร์มินัลไม่มีแอพที่ใช้ ncurses (ทดสอบแล้ว: ytalk, irssi, หน้าจอ, tmux, ตัวอย่างแอพพลิเคชั่น ncurses) ดูเหมือนจะปรับขนาดอย่างถูกต้อง โดยทั่วไปหน้าจอจะว่างเปล่า การบังคับให้วาดใหม่ในแอปพลิเคชันจะวาดใหม่โดยใช้ขนาดเทอร์มินัลเก่า เมื่อปรับขนาดหน้าต่างที่พร้อมท์ bash (4.1.5 (1)) ตัวแปร COLUMNS และ LINES จะไม่ถูกอัปเดต การวินิจฉัย ความพยายามดัก SIGWINCH ด้วยวิธีทุบตีดูเหมือนว่าไม่เคยได้รับ นี่คือการทดสอบด้วย: trap 'touch /home/user/sigwinch' SIGWINCH trap 'touch /home/user/sigusr1' SIGUSR1 kill -s SIGWINCH $$ kill -s SIGUSR1 $$ สิ่งที่ควรสร้างทั้งสองไฟล์ในโฮมไดเร็กตอรี่ของฉัน /home/user/sigusr1มันสร้างขึ้นเฉพาะ การพยายามkill …
11 debian  bash  term 

1
เปลี่ยนระดับที่ดีของสคริปต์ที่รันอยู่ในปัจจุบัน
ฉันต้องการเปลี่ยนระดับที่ดีของสคริปต์ที่กำลังทำงานอยู่: #!/bin/bash nice_it ( ) { nice ps -o "%p %r %y %x %n %c %a" } nice_it ไม่ทำงานเนื่องจากniceพยายามเปลี่ยนระดับ nice ของคำสั่งที่เริ่มโดย เป็นไปได้ไหมที่จะบรรลุเป้าหมายนี้ในการทุบตี?
11 bash  nice 

6
เชื่อมต่อกับบรรทัดรับคำสั่ง MySQL โดยไม่ต้องใช้รหัสผ่านรูต
ฉันกำลังสร้างสคริปต์ Bash สำหรับงานบางอย่าง หนึ่งในภารกิจเหล่านั้นคือการสร้างฐานข้อมูล MySQL จากภายในสคริปต์ทุบตีเดียวกัน สิ่งที่ฉันทำตอนนี้คือการสร้างสอง vars: หนึ่งสำหรับชื่อผู้ใช้ร้านค้าและอื่น ๆ สำหรับรหัสผ่านร้านค้า นี่คือส่วนที่เกี่ยวข้องของสคริปต์ของฉัน: MYSQL_USER=root MYSQL_PASS=mypass_goes_here touch /tmp/$PROY.sql && echo "CREATE DATABASE $DB_NAME;" > /tmp/script.sql mysql --user=$MYSQL_USER --password="$MYSQL_PASS" < /tmp/script.sql rm -rf /tmp/script.sql แต่มักจะได้รับข้อผิดพลาดว่าการเข้าถึงถูกปฏิเสธสำหรับผู้ใช้รูทด้วยรหัสผ่านไม่สิ่งที่ฉันทำผิด? ฉันต้องทำเช่นเดียวกันสำหรับ PostgreSQL

1
การใช้ pgrep / pidof สำหรับชื่อกระบวนการที่ซับซ้อน?
ฉันกำลังพยายามใช้ pidof หรือ pgrep เพื่อให้สามารถส่ง HUP ไปยังกระบวนการในระบบของฉัน ปัญหาคือฉันต้องการฆ่ากระบวนการด้วยพารามิเตอร์ที่แม่นยำเท่านั้น นี่คือผลลัพธ์ของ 'ps awx' 657 ? S 0:00 processname software 658 ? S 0:00 processname demo 659 ? S 0:00 processname test โดยทำสิ่งใดสิ่งหนึ่งต่อไปนี้: pidof processname pgrep processname คุณจะได้รับรายการกระบวนการทั้งหมดที่เริ่มต้นด้วย processname แต่ฉันต้องการทำบางสิ่งเช่น: pidof processname test pgrep processname test เพื่อดึงข้อมูล PID ที่ฉันต้องการเท่านั้น (ในตัวอย่างนี้จะเป็น 659) UPDATE โดยใช้แฟล็ก …

3
Bash script เพื่อนับจำนวนไฟล์
ฉันมีสคริปต์และฉันต้องการที่จะแสดงข้อความที่แตกต่างกันถ้าไฟล์ที่มีอยู่หรือไม่ ฉันมีสคริปต์เช่น: count=ls /import/*.zip | wc -l echo "Number of files: " $count if [ "$count" > "0" ]; then echo "Import $count files" else echo "**** No files found ****" fi อย่างไรก็ตามหากไม่มีไฟล์อยู่แสดงว่าเป็นการแสดงNo such file or directoryแทน 0 ไฟล์ มีไดเรกทอรีอยู่ใน/import/ไดเรกทอรีดังนั้นฉันไม่สามารถทำlsคำสั่งได้เพราะจะส่งคืนค่าที่มากกว่า 0 ฉันจะนับจำนวนไฟล์ของส่วนขยายเฉพาะ (.zip, .gz ฯลฯ ) และใช้ค่านั้นในสคริปต์ทุบตีเพื่อแสดงจำนวนไฟล์จากนั้นใช้ในคำสั่ง if เพื่อแสดงข้อความที่แตกต่างกันอย่างไร
11 bash  scripting 

3
ฉันจะลบไดเรกทอรีว่างทั้งหมดได้อย่างไร
(บนระบบ Linux) ฉันมีชุดย่อยที่ซ้อนกันขนาดใหญ่บนระบบไฟล์ ฉันต้องการตัดเส้นทางไดเรกทอรีทั้งหมดที่ไม่มีไฟล์เลย ในคำอื่น ๆ ฉันต้องการลบทุกไดเรกทอรีที่ไม่มีไฟล์ในไดเรกทอรีนั้นหรือในไดเรกทอรีย่อยใด ๆ ของไดเรกทอรีนั้นซ้ำ
11 linux  unix  bash 

3
การบันทึกกิจกรรม“ บุคคล” ใน Linux
ดังนั้นฉันได้อ่านโพสต์มากมายที่เกี่ยวข้องกับเรื่องนี้และเพิ่งสับสนมากขึ้นกว่า แต่ก่อน มีคำแนะนำสำหรับเครื่องมือต่าง ๆ รวมถึง ttyrec, snoopy, acct, rootsh, sudosh, ttyrpld, การตรวจสอบ unix และอีกมากมาย ในกรณีของฉันฉันต้องการบันทึกคำสั่งทั้งหมดที่ดำเนินการบนระบบ (เช่นประวัติที่เปิดใช้งานการประทับเวลา) แต่ฉันต้องการทราบว่าใครทำอะไรบ้าง อย่างไรก็ตามเราทุกคนเข้าสู่ระบบผ่าน ssh ไปยังบัญชีย่อยบางส่วนของบัญชีผู้ใช้เดียวกัน (ขึ้นอยู่กับสิ่งที่เราทำ) ฉันจะรับบันทึกคำสั่งรวมถึงข้อมูล "ใคร" จะให้ฉัน (เกี่ยวกับการเชื่อมต่อ) เพื่อให้ฉันสามารถติดตามการดำเนินการกับบุคคลที่ระบุว่าเป็น "ผู้ใช้" ทั่วไปได้อย่างไร
11 linux  ssh  bash  logging 

4
ในยูนิกซ์วิธีที่ดีที่สุดในการลดขนาดของไฟล์บันทึกขนาดใหญ่ที่ถูกเขียนลงไปคืออะไร?
บนเซิร์ฟเวอร์ linux ฉันต้องการลดขนาดของไฟล์บันทึกที่มีขนาดใหญ่หลาย GB ตัดครึ่งบนหรืออาจจะล้านบรรทัดแรกจะได้ผล
11 linux  bash  unix  log-files 

2
Linux - ค้นหาไดเร็กทอรีการทำงานปัจจุบันของกระบวนการหรือไม่?
ถ้าฉันมีโพรเซส PID X ฉันจะหาไดเร็กตอรี่ไหนที่มันทำงานอยู่? ฉันสามารถเห็นด้วยps aux | grep Xบรรทัดคำสั่งเต็มรูปแบบที่มันถูกเรียกด้วย อย่างไรก็ตามในกรณีนี้มันเป็น./script.shและฉันต้องการที่จะดูscript.shว่ามันกำลังทำงานอยู่
11 bash  process 


2
เป็นวิธีที่ดีที่สุดในการตั้งค่าตัวแปรสภาพแวดล้อมใน. bashrc คืออะไร?
เมื่อตั้งค่าตัวแปร.bashrcฉันควรใช้สิ่งนี้หรือไม่? export VAR=value หรือนี่จะเพียงพอหรือไม่ VAR=value ความแตกต่างคืออะไร (ถ้ามี)

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