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

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

3
ทุบตีการเติมข้อมูลอัตโนมัติด้วยช่องว่างเพิ่มเติม - ทำไมและวิธีแก้ไข
ฉันใช้ความสมบูรณ์ของแท็บมากกว่าการพิมพ์ตัวอักษร ฉันเคยพิมพ์rm ~/De<TAB>และมันจะเสร็จสมบูรณ์เพื่อrm ~/Desktop/ให้ฉันสามารถดำเนินการต่อในระดับต่อไป เมื่อเร็ว ๆ นี้พฤติกรรมนั้นเปลี่ยนไป ตอนนี้การเสร็จสมบูรณ์ให้ผลrm ~/Desktop<SPACE>ซึ่งหมายความว่าฉันต้องถอยกลับและพิมพ์เครื่องหมายทับหากฉันต้องการดำเนินการต่อ นี่ทำให้ฉันร้องไห้ การเปลี่ยนแปลงดูเหมือนจะอยู่ในฟังก์ชั่น_longopt()ใน/etc/bash_completionแต่ก็เท่าที่ฉันสามารถติดตาม การเปลี่ยนแปลงนี้ตั้งใจหรือไม่และหากเป็นเช่นนั้นจะมีผลดีกับอะไร? ฉันสามารถใช้พฤติกรรมเก่า ๆ ได้หรือไม่โดยเลือกใช้ตัวเลือกปรับแต่งแทนการคัดลอกรหัสเก่ามาจากระบบอื่นหรือไม่? แก้ไข: ฟังก์ชั่นสำหรับการอ้างอิง _longopt() { local cur prev split=false _get_comp_words_by_ref -n = cur prev _split_longopt && split=true case "$prev" in --*[Dd][Ii][Rr]*) _filedir -d return 0 ;; --*[Ff][Ii][Ll][Ee]*|--*[Pp][Aa][Tt][Hh]*) _filedir return 0 ;; esac $split && return 0 …
29 bash 

6
วิธีการเขียน shscript เพื่อฆ่า -9 a pid ซึ่งพบได้ผ่าน lsof -i
ฉันใช้ทอมแคทและบางครั้งเมื่อฉันบอกให้หยุดมันไม่ได้ฆ่ากระบวนการอย่างถูกต้อง วิธีของฉันเกี่ยวกับสิ่งนี้ก็เช่นกัน: lsof -i tcp:8080 ผลลัพธ์ใด: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 888 root 35u IPv6 780659 0t0 TCP *:http-alt (LISTEN) java 888 root 39r IPv6 790103 0t0 TCP localhost:58916->localhost:http-alt (CLOSE_WAIT) java 888 root 40r IPv6 792585 0t0 TCP localhost:58936->localhost:http-alt (CLOSE_WAIT) java 888 root 75r IPv6 …
29 bash  scripts 

1
หยุดการทำงานชั่วคราวและรออินพุตของผู้ใช้
ฉันมีสคริปต์ที่ฉันทำและฉันมีปัญหากับมัน: ฉันต้องการหยุดการทำงานชั่วคราวและรอการป้อนข้อมูลจากผู้ใช้ ฉันคิดว่าฉันมีมันด้วยread -p -n 1 $fooคำสั่ง แต่ระบบกำลังมีปัญหากับคำสั่งนี้ นี่คือสคริปต์ปัจจุบันของฉัน: #!/bin/sh # Ititialization mainmenu () { echo "Press 1 to update your system" echo "Press 2 to install samba" echo "Press 3 to install vsFTPd" echo "Press 4 to install the current version of Webmin" echo "Press 5 to configure samba …
29 bash 

2
ชุด -e ทำอะไร
ฉันมีสคริปต์ที่ฉันพบและฉันพยายามเรียกใช้มันเพียงแค่ดาวน์โหลดและติดตั้งไลบรารีรันไทม์ Apache บรรทัดแรกคือset -eและทำให้เกิดข้อผิดพลาด; สิ่งที่ไม่set -eทำอะไร?
28 bash 

6
เชลล์สคริปต์เป็น -9 kill ตามชื่อ
มีวิธี (อาจเป็นสคริปต์) วิธีทำให้กระบวนการนี้เป็นไปโดยอัตโนมัติไหม petr@sova:~$ ps -ef | grep middleman petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/ruby-1.9.3-p362/bin/middleman petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman petr@sova:~$ kill -9 18445 น่าเสียดายที่pkillอ่อนแอเกินไปเพราะฉันต้อง-9เลือกออปkillชั่น
28 bash  process  kill 

3
ฉันจะหาตำแหน่งที่กำหนดฟังก์ชัน bash ได้อย่างไร
มีฟังก์ชั่นมากมายที่สามารถใช้ใน Bash shell ได้ คำจำกัดความของพวกเขาสามารถแสดงรายการโดยsetแต่วิธีการค้นหาในไฟล์ที่ฟังก์ชั่นบางอย่างที่ผู้ใช้กำหนดจะถูกกำหนด?
28 bash  functions 

7
สคริปต์หรือฟังก์ชันเพื่อส่งคืนจำนวนวันนับจากวันนี้จนถึงวันที่กำหนด
ฉันต้องการเขียนสคริปต์หรือฟังก์ชั่นเพื่อบอกฉันว่ากี่วันนับจากนี้จนถึงวันที่กำหนดในอนาคต สิ่งที่ฉันกำลังดิ้นรนเพื่อหาวิธีคือการประมวลผลวันที่ที่กำหนดและเปรียบเทียบกับวันที่ปัจจุบัน ... ฉันจินตนาการถึงบางอย่างเช่น read -p "enter the date in the format YYYY-MM-DD " แล้วฉันคิดว่าฉันมีสตริงที่ไม่มีความหมายต่อเชลล์และฉันต้องทำการประเมินบางอย่างเช่น ... ?? (นี่เป็นเพียงตัวอย่าง; ฉันคิดว่าbcจะต้อง) i=$(($(date +%Y)-${REPLY%%-*})) j=$(($(date +%m)-${REPLY:5:2})) k=$(($(date +%d)-${REPLY##*-})) แล้วฉันก็ไม่รู้จะทำยังไงกับตัวเลขเหล่านั้น ... ? if $i > 1 then assign l=$((i*365)) and else what?? # what about leap years? Using $j somehow assign m # confused …

2
วิธีทำให้สคริปต์ bash ทำงานด้วยเวลาแฝง (เช่นรอ 1 วินาทีในการทำซ้ำแต่ละครั้ง)
ฉันมีสคริปต์ทุบตีนี้ for (( i = 1 ; i <= 160 ; i++ )); do qsub myccomputations"${i}".pbs done โดยทั่วไปฉันต้องการถ้ามีการหน่วงเวลา 1 วินาทีระหว่างการทำซ้ำแต่ละครั้ง เหตุผลก็คือในการทำซ้ำแต่ละครั้งมันจะส่งไฟล์โปรแกรมmycomputation"${i}$.pbsไปยังโหนดหลักสำหรับการแก้ปัญหา แรงจูงใจคือการแก้ไขในกรณีนี้เกี่ยวข้องกับการใช้ตัวเลขสุ่มหลอกและ RNG ฉันใช้ (R's) ใช้เวลา CPU เป็นเมล็ด ดังนั้นวิธีที่คุณขอทุบตี for (( i = 1 ; i <= 160 ; i++ )); do wait 1 sec qsub myccomputations"${i}".pbs done

5
นามแฝงคือคำสั่งอะไร
ใครสามารถบอกฉันว่านามแฝงคำสั่งเทอร์มินัลllมีไว้เพื่ออะไร? ฉันทั้งหมดสามารถค้นหาออนไลน์คือหลาย ๆ คนบอกว่ามันเป็นนามแฝงสำหรับls -lหรือหรือls -la ls -ltrแต่นั่นก็ผิด ผลลัพธ์มีลักษณะที่แตกต่างกัน มีวิธีการค้นหาllและดูไวยากรณ์ของมันหรือไม่

2
รับเท็กซ์เอดิเตอร์ดีฟอลต์ที่ใช้ในระบบ
ฉันใช้select-editorแล้วและฉันทราบว่าใช้/usr/bin/nanoอยู่ นี่เป็นโปรแกรมแก้ไขข้อความเริ่มต้นที่ฉันใช้หรือไม่ เมื่อฉันเปิดไฟล์ข้อความมันจะเปิดขึ้นพร้อมกับ gedit ต้องระบุคำสั่งใดในเทอร์มินัลเพื่อรับเท็กซ์เอดิเตอร์ดีฟอลต์ที่ฉันกำลังใช้และส่งคืนไปที่ e ในเทอร์มินัล?

6
เหตุใดข้อความแสดงข้อผิดพลาดสำหรับสองโคลอนเป็นคำสั่ง (: :) ใน bash มีสามโคลอน แต่โคลอนเดียวไม่แสดงผลลัพธ์
ถ้าฉันพิมพ์ :: ฉันได้รับ: -bash: ::: command not found แต่มีเพียง:ผลลัพธ์เดียวเท่านั้นที่ไม่มีเอาต์พุต ทำไมนี้

6
ส่งออก PATH = อะไร: $ PATH หมายถึงอะไร
ฉันยังใหม่กับ Linux และฉันวางคำสั่งต่อไปนี้ไว้ท้ายไฟล์.profileภายใต้โฮมโฟลเดอร์ของฉัน: export PATH="~/.composer/vendor/bin:$PATH" ฉันรู้ปัญหาของตัวแปรสภาพแวดล้อมและค่าของพวกเขาเล็กน้อยจาก Windows แต่ในกรณีนี้ฉันต้องการที่จะเข้าใจสิ่งที่คำสั่งนี้ทำและสิ่งที่เป็นส่วนประกอบด้วย: วลี "ส่งออก" นี้ตอนเริ่มต้นคืออะไร มันกำลังส่งออกข้อมูลเพื่อให้สามารถใช้งานกับ Bash ได้หรือไม่ อะไรคือPATHสิ่งที่หนึ่งและที่สองคืออะไร$PATHและทำไมเราถึงต้องการสอง

4
ฉันจะปลุกสคริปนอนหลับได้อย่างไร
เป็นไปได้ไหมที่จะปลุกกระบวนการที่หยุดชั่วคราวโดยใช้sleepคำสั่ง? ตัวอย่างเช่นสมมติว่าคุณมีสคริปต์นี้: #!/bin/bash echo "I am tired" sleep 8h echo "I am fresh :)" หลังจาก 30 นาทีคุณพบว่าคุณต้องการสคริปต์เพื่อหยุดนั่นคือคุณต้องการให้คุณเขียนsleep 30mแทน คุณไม่ต้องการโทรkill PIDหรือกดCtrl+ Cตั้งแต่นั้นคำสั่งสุดท้ายจะไม่ถูกดำเนินการและคุณจะยังคงเหนื่อย มีวิธีการปลุกกระบวนการจากsleepหรืออาจใช้คำสั่งอื่นที่รองรับการปลุก? ยินดีต้อนรับสู่โซลูชั่นทั้งพื้นหลังและกระบวนการเบื้องหน้า

4
อะไรคือความหมายของ $ 1 ในการทุบตี?
จริง ๆ แล้วฉันกำลังเล่นกับข้อโต้แย้งและมันเกิดขึ้น ฉันแค่คิดว่าอยากจะเห็นว่าจะเกิดอะไรขึ้นถ้าฉันพิมพ์$$1และฉันทำมันและได้บางสิ่งด้านล่าง raja@raja-BONEFISH:~$ $$1 19301: command not found 19301 หมายถึงอะไรมันบอกอะไรบางอย่าง? Bottom-Line: สิ่งที่มีความหมาย$$1ในทุบตี
27 bash 

7
บีบอัดไฟล์หลายไฟล์พร้อมกัน
ฉันมีมากกว่า 200 .zipไฟล์ในโฟลเดอร์เดียว ฉันไม่ต้องการขยายมันทีละอัน ฉันต้องการแยกข้อมูลเหล่านั้นโดยใช้คำสั่งเดียวหรือสคริปต์ วิธีการทำ
27 bash 

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