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

คำถามเฉพาะของ Bourne อีกครั้งของเชลล์ใน GNU เมื่อเทียบกับเชลล์ Bourne / POSIX อื่น ๆ สำหรับคำถามเกี่ยวกับเชลล์ Unix โดยทั่วไปให้ใช้ / เชลล์แท็กแทน

6
ลบอักขระบางตัวออกจากตัวแปรโดยใช้ bash
ฉันต้องการแยกตัวแปร (ในกรณีของฉันเป็นรุ่นชุดพัฒนา) เพื่อให้ dot ( .) ฟรี หากการส่งออกที่ต้องการคือversion='2.3.3'233 ฉันพยายามที่ดังต่อไปนี้ แต่ต้องถูกแทนที่ด้วยตัวอักษรอีกให้ฉัน. 2_3_3คงจะดีกว่านี้ถ้าใช้tr . ''งานได้ 1 VERSION='2.3.3' 2 echo "2.3.3" | tr . _

2
มีการแนะนำข้อผิดพลาด shellshock (CVE-2014-6271 / 7169) เมื่อใดและแพตช์ที่แก้ไขได้อย่างสมบูรณ์คืออะไร
บริบทบางอย่างเกี่ยวกับข้อผิดพลาด: CVE-2014-6271 Bash รองรับการส่งออกไม่เพียง แต่ตัวแปรของเชลล์เท่านั้น แต่ยังทำหน้าที่ของเชลล์ไปยังอินสแตนซ์ของ bash อื่น ๆ ผ่านสภาวะแวดล้อมกระบวนการไปยังกระบวนการลูก (โดยอ้อม) เวอร์ชัน bash ปัจจุบันใช้ตัวแปรสภาพแวดล้อมที่ตั้งชื่อตามชื่อฟังก์ชันและนิยามฟังก์ชันที่ขึ้นต้นด้วย“ () {”) ในค่าตัวแปรเพื่อเผยแพร่นิยามฟังก์ชันผ่านสภาพแวดล้อม ช่องโหว่เกิดขึ้นเนื่องจาก bash ไม่หยุดทำงานหลังจากประมวลผลคำจำกัดความฟังก์ชัน มันยังคงแยกวิเคราะห์และรันคำสั่งเชลล์ตามนิยามฟังก์ชัน ตัวอย่างเช่นการตั้งค่าตัวแปรสภาพแวดล้อมของ VAR=() { ignored; }; /bin/id จะดำเนินการ / bin / id เมื่อสภาพแวดล้อมถูกนำเข้าสู่กระบวนการทุบตี ที่มา: http://seclists.org/oss-sec/2014/q3/650 ข้อผิดพลาดถูกนำมาใช้เมื่อใดและตัวแก้ไขที่แก้ไขได้อย่างสมบูรณ์คืออะไร (ดูCVE-2014-7169 ) รุ่นที่มีช่องโหว่นอกเหนือจากที่ระบุไว้ใน CVE (ตอนแรก) (3. {0..2} และ 4 {0..3}) คืออะไร มีการใช้ซอร์สโค้ด buggy ในโครงการอื่นหรือไม่? …

1
การอ้างอิงสองครั้งจำเป็นเมื่อใด
คำแนะนำเก่าที่ใช้ในการอ้างอิงสองครั้งนิพจน์ใด ๆ ที่เกี่ยวข้องกับ a $VARIABLE, อย่างน้อยถ้าใครอยากให้มันถูกตีความโดยเชลล์เป็นหนึ่งรายการเดียวมิฉะนั้นช่องว่างใด ๆ ในเนื้อหาของ$VARIABLEจะทิ้งเปลือก อย่างไรก็ตามฉันเข้าใจว่าใน shells รุ่นที่ใหม่กว่านั้นการอ้างสองครั้งไม่จำเป็นอีกต่อไป (อย่างน้อยก็เพื่อจุดประสงค์ที่อธิบายไว้ข้างต้น) ตัวอย่างเช่นในbash: % FOO='bar baz' % [ $FOO = 'bar baz' ] && echo OK bash: [: too many arguments % [[ $FOO = 'bar baz' ]] && echo OK OK % touch 'bar baz' % ls $FOO ls: …

5
อะไรคือความแตกต่างระหว่าง "sort -u" และ "sort | UNIQ”?
ทุกที่ที่ฉันเห็นคนที่ต้องการเรียงลำดับรายการที่ไม่ซ้ำใครพวกเขาจะไปถึงsort | uniqเสมอ ฉันไม่เคยเห็นตัวอย่างที่มีคนใช้sort -uแทน ทำไมจะไม่ล่ะ? ความแตกต่างคืออะไรและทำไมการใช้ uniq จึงดีกว่าการจัดเรียงค่าสถานะเฉพาะ
120 bash  sort  uniq 

30
การนำทางไดเรกทอรีอย่างรวดเร็วใน bash shell
ผมอยากจะบ่อยสลับไปมาระหว่างไดเรกทอรีที่อยู่ในเส้นทางที่ไม่เกี่ยวข้องกันโดยสิ้นเชิงเช่นและ/Project/Warnest/docs/~/Dropbox/Projects/ds/test/ แต่ฉันไม่ต้องการพิมพ์cd /[full-path]/ตลอดเวลา มีคำสั่งทางลัดเพื่อสลับไปยังไดเรกทอรีที่ใช้งานได้ก่อนหน้า ทางออกหนึ่งที่ฉันคิดได้คือการเพิ่มตัวแปรสภาพแวดล้อมให้bash .profileกับไดเรกทอรีที่ใช้บ่อยและcdเพื่อให้พวกเขาใช้ตัวแปรเหล่านั้น แต่มีวิธีอื่นในการนี้หรือไม่?

4
ฉันจะลบคำย้อนหลังที่บรรทัดคำสั่ง (bash และ zsh) ได้อย่างไร
ฉันจะลบคำย้อนหลังที่บรรทัดคำสั่งได้อย่างไร ฉันเคยชินกับบรรณาธิการบางคนที่ลบ 'word' ล่าสุดโดยใช้Ctrl+ Backspaceและฉันต้องการฟังก์ชันการทำงานที่บรรทัดคำสั่งด้วย ฉันใช้ทุบตีในขณะนี้และแม้ว่าฉันสามารถกระโดดย้อนกลับคำแล้วลบไปข้างหน้าคำที่ฉันอยากจะมีนี้เป็นอย่างรวดเร็วที่สำคัญหรือเหตุการณ์เป็น+CtrlBackspace ทำสิ่งนี้ได้อย่างไร

2
backticks (เช่น `cmd`) ในกระสุน sh ถูกเลิกใช้แล้วหรือยัง?
ฉันเคยเห็นความคิดเห็นนี้หลายครั้งใน Unix & Linux เช่นเดียวกับเว็บไซต์อื่น ๆ ที่ใช้วลี "backticks ได้รับการคัดค้าน" ด้วยความเคารพต่อเชลล์เช่น Bash & Zsh คำสั่งนี้เป็นจริงหรือเท็จ?

5
วัตถุประสงค์ของคำสั่งแฮชคืออะไร?
หากคุณเรียกใช้hashจะแสดงเส้นทางของคำสั่งทั้งหมดที่เรียกใช้นับตั้งแต่แฮชถูกรีเซ็ตล่าสุด ( hash -r) [root@c04c ~]# hash hash: hash table empty [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 1 /usr/bin/whoami [root@c04c ~]# whoami root [root@c04c ~]# hash hits command 2 /usr/bin/whoami ตามหน้า man วัตถุประสงค์ของการแฮชคือ: ยูทิลิตี / usr / bin / hash มีผลต่อวิธีที่สภาพแวดล้อมเชลล์ปัจจุบันจดจำตำแหน่งของยูทิลิตีที่พบ ขึ้นอยู่กับอาร์กิวเมนต์ที่ระบุจะเพิ่มตำแหน่งยูทิลิตี้ในรายการของตำแหน่งที่จดจำหรือลบล้างเนื้อหาของรายการ เมื่อไม่มีการระบุอาร์กิวเมนต์มันจะรายงานเนื้อหาของรายการ -rตัวเลือกที่เป็นสาเหตุของเปลือกจะลืมสถานที่จำได้ทั้งหมด ยูทิลิตี้ที่ให้มาเป็นบิวด์อินกับเชลล์จะไม่ถูกรายงานโดยแฮช อื่น ๆ …
118 bash  history 

5
ฉันสามารถเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์และสร้างกระบวนการในเวลาเดียวกันได้หรือไม่?
ฉันสามารถเปลี่ยนเส้นทางผลลัพธ์ไปยังล็อกไฟล์และสร้างกระบวนการในเวลาเดียวกันได้หรือไม่? กล่าวอีกนัยหนึ่งฉันสามารถทำสิ่งนี้ได้ไหม nohup java -jar myProgram.jar 2>&1 > output.log & หรือว่าไม่ใช่คำสั่งทางกฎหมาย? หรือฉันต้องย้ายมันไปที่พื้นหลังด้วยตนเองเช่น: java -jar myProgram.jar 2>$1 > output.log jobs [CTRL-Z] bg 1
116 bash  shell  shell-script 

3
ฉันจะรันสคริปต์โลคัลบนเครื่องรีโมตและรวมอาร์กิวเมนต์ได้อย่างไร?
ฉันได้เขียนสคริปต์ที่ทำงานได้ดีเมื่อดำเนินการภายใน: ./sysMole -time Aug 18 18 อาร์กิวเมนต์"-time" , "Aug" , "18"และ"18"ถูกส่งผ่านไปยังสคริปต์ได้สำเร็จ ตอนนี้สคริปต์นี้ได้รับการออกแบบให้ทำงานบนเครื่องระยะไกล แต่จากไดเรกทอรีท้องถิ่นในเครื่องท้องถิ่น ตัวอย่าง: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole ที่ยังใช้งานได้ดี แต่ปัญหาเกิดขึ้นเมื่อฉันพยายามที่จะรวมข้อโต้แย้งดังกล่าว(- เวลา 18 สิงหาคม 18)ตัวอย่างเช่น: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18 หลังจากรันสคริปต์นั้นฉันได้รับข้อผิดพลาดต่อไปนี้: bash: cannot set terminal process group (-1): Invalid argument bash: no job control …

3
linux + เพิ่ม X วันเป็นวันและรับวันเสมือนใหม่
ฉันมีเครื่อง Linux (RH 5.3) ฉันต้องการเพิ่ม / คำนวณ 10 วันรวมถึงวันที่ดังนั้นฉันจะได้รับวันใหม่ (วันหมดอายุ) ตัวอย่างเช่น # date Sun Sep 11 07:59:16 IST 2012 ดังนั้นฉันต้องได้รับ NEW_expration_DATE = Sun Sep 21 07:59:16 IST 2012 โปรดแนะนำวิธีการคำนวณวันหมดอายุใหม่ (ด้วยคำสั่ง bash, ksh หรือจัดการกับวันที่?)
115 linux  bash  shell-script  date 

6
ระงับ bash_history ชั่วคราวบนเชลล์ที่กำหนดไว้หรือไม่
มีวิธีในการระงับการติดตามประวัติเป็นการชั่วคราวหรือไม่เพื่อที่จะเข้าสู่โหมด "ไม่ระบุตัวตน" ฉันป้อนข้อมูลลงในเครื่องเทอร์มินัลที่ฉันไม่ต้องการบันทึกข้อมูลทางการเงินที่ละเอียดอ่อน

8
การส่งอาร์กิวเมนต์ที่กำหนดชื่อไปยังสคริปต์ของเชลล์
มีวิธีง่ายๆในการส่งผ่าน (รับ) พารามิเตอร์ชื่อไปยังสคริปต์เชลล์หรือไม่? ตัวอย่างเช่น, my_script -p_out '/some/path' -arg_1 '5' และภายในmy_script.shรับพวกเขาเป็น: # I believe this notation does not work, but is there anything close to it? p_out=$ARGUMENTS['p_out'] arg1=$ARGUMENTS['arg_1'] printf "The Argument p_out is %s" "$p_out" printf "The Argument arg_1 is %s" "$arg1" เป็นไปได้ใน Bash หรือ Zsh?

3
ส่งผ่านอาร์กิวเมนต์บรรทัดคำสั่งไปยังสคริปต์ทุบตี
ฉันยังใหม่กับการเขียนโปรแกรมสคริปต์ทุบตี ฉันต้องการใช้สคริปต์ทุบตี 'deploymLog' ซึ่งยอมรับว่าเป็นอาร์กิวเมนต์สตริงหนึ่งชื่อ (ชื่อ) [root@localhost Desktop]# ./deploymLog.sh name ที่นี่ฉันต้องการผ่านอาร์กิวเมนต์สตริง (ชื่อ) ผ่านบรรทัดคำสั่ง ในฐานะที่เป็นขั้นตอนเริ่มต้นฉันต้องผนวกเวลาประทับปัจจุบันพร้อมกับสตริงอินพุตนี้ไปยังไฟล์บันทึกการพูดLogone.txtในไดเรกทอรีปัจจุบันในรูปแบบด้านล่าง: [name]=[System time timestamp1] เป็นไปได้อย่างไร
114 bash  shell  scripting 

6
วิธีการเรียกใช้โปรแกรมในสภาพแวดล้อมที่สะอาดในทุบตี?
ฉันต้องการเรียกใช้โปรแกรมในสภาพแวดล้อมที่ว่างเปล่า (เช่นไม่มีการตั้งค่าสภาพแวดล้อม) วิธีการทำเช่นนี้ในทุบตี?

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