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

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

1
chsh -s / usr / bin / zsh ไม่ทำงาน
ฉันพยายามเปลี่ยนเชลล์เป็น zsh อย่างถาวรโดยใช้chshคำสั่ง แต่มันไม่ทำงาน มีการติดตั้ง zsh (ผ่าน apt) และทำงานได้ดีเมื่อฉันเรียกใช้โดยตรงจากเทอร์มินัล bash prompt แต่ฉันไม่สามารถรับ zsh เพื่อโหลดในอาคารโดยค่าเริ่มต้นและ chsh กำลังทำอะไรแปลก ๆ : $ echo $SHELL /bin/bash $ which zsh /usr/bin/zsh $ chsh -s /usr/bin/zsh Password: $ echo $SHELL /bin/bash $ grep kurtosis /etc/passwd kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh ดูเหมือนว่า chsh ได้จัดการเพื่อเปลี่ยน / etc / passwd อย่างถูกต้อง แต่ไม่ใช่ตัวแปร $ …
24 command-line  bash  zsh 

4
จะหยุดทุบตีในขณะที่วนรอบทำงานในพื้นหลังได้อย่างไร?
ฉันเริ่มในขณะที่ห่วงดังนี้: while true; do {command}; sleep 180; done & &แจ้งให้ทราบล่วงหน้า ฉันคิดว่าเมื่อฉันฆ่าสถานีนี้ในขณะที่วงจะหยุด แต่มันยังคงไป เป็นเวลาหลายชั่วโมงแล้วที่ฉันฆ่าเซสชันเทอร์มินัล ฉันจะหยุดสิ่งนี้ในขณะที่วนรอบได้อย่างไร

6
ขอสิทธิ์รูทจากภายในสคริปต์
ฉันมีสคริปต์ที่สามารถทำงานเป็นsudo script.shหรือpkexec script.sh script.shมันจะดีกว่ามากจากจุดที่ผู้ใช้มุมมองว่าสคริปต์ถามรหัสผ่านจากผู้ใช้เมื่อเพียงแค่ใช้มันโดยใช้ชื่อ ฉันจะ "ฝัง" คำขอไปยังpkexecหรือsudoเรียกใช้สคริปต์ทั้งหมดด้วยสิทธิ์พิเศษได้อย่างไร โปรดทราบว่าการรันทุกอย่างด้วยsudo sh -cอาจไม่ใช่วิธีที่ดีที่สุดเนื่องจากฉันมีฟังก์ชั่นในสคริปต์

2
สร้าง zip ของโฟลเดอร์ด้วยชื่อเดียวกัน
ฉันต้องการสร้าง zip ของโฟลเดอร์จาก command-line zip -r folder.zip folderฉันสามารถทำสิ่งที่ชอบ ฉันต้องการให้ชื่อโฟลเดอร์ซิปเหมือนกับชื่อโฟลเดอร์เดิม ฉันสามารถจำลองสิ่งนี้ได้ด้วยการเขียนสคริปต์: #!/bin/bash zip -r $1 $1 ./script folderและจากนั้นก็ทำ เป็นไปได้ไหมที่จะทำสิ่งนี้โดยไม่ต้องเขียนสคริปต์?
23 bash  zip 

4
จะค้นหาประวัติคำสั่งเชลล์ได้อย่างไรตั้งแต่สร้างเครื่อง?
ฉันสร้างเครื่องเสมือนของ Ubuntu เมื่อสองสามสัปดาห์ที่แล้วและได้ทำโปรเจ็กต์ต่อเนื่องตั้งแต่นั้นมา ตอนนี้ฉันต้องการค้นหาไวยากรณ์ของคำสั่งบางคำสั่งที่ฉันพิมพ์ในเทอร์มินัลเมื่อสัปดาห์ที่แล้ว แต่ฉันได้เปิดและปิดหน้าต่างเทอร์มินัลแล้วรีสตาร์ทเครื่องหลายครั้ง ฉันจะhistoryรับคำสั่งให้กลับไปยังคำสั่งแรกที่ฉันพิมพ์หลังจากที่ฉันสร้างเครื่องได้อย่างไร หรือมีสถานที่อื่นที่เก็บคำสั่งทั้งหมดใน Ubuntu หรือไม่

4
ฉันจะใช้ 'การแจ้งเตือน - ส่ง' เพื่อแทนที่การแจ้งเตือนที่มีอยู่ทันทีได้อย่างไร
เมื่อฉันใช้notify-sendเพื่อแสดงการแจ้งเตือนบนเดสก์ท็อปและจากนั้นใช้อีกครั้งเพื่อแสดงการแจ้งเตือนที่แตกต่างกันฉันได้สังเกตเห็นว่าการแจ้งเตือนที่สองแสดงเฉพาะหลังจากที่การแจ้งเตือนครั้งแรกหายไป มีวิธีในnotify-sendการเปลี่ยนการแจ้งเตือนที่มีอยู่ทันทีด้วยอันที่แตกต่างกันหรือไม่?

5
การเติมข้อความอัตโนมัติไม่ทำงานในขณะที่บันทึกเป็นรูท
ฉันเพิ่งเจอสิ่งที่รบกวนฉันจริงๆ การเติมข้อความอัตโนมัติบน Ubuntu ทำงานได้อย่างมีเสน่ห์ แต่เมื่อฉันเข้าสู่ระบบในฐานะผู้ใช้เช่นsuฉันได้รับการtabเติมข้อความอัตโนมัติในบางครั้งเท่านั้น ทำไมมันถึงเป็นเช่นนั้น สามารถเปลี่ยนแปลงได้หรือไม่

2
ฉันจะแก้ไขข้อผิดพลาด“ $ '\ r': ไม่พบคำสั่ง” ที่รันสคริปต์ Bash ใน WSL ได้อย่างไร
ฉันได้รับข้อผิดพลาดใน WSL ในขณะที่พยายามที่จะใช้junyanz / pytorch-CycleGAN และ pix2pix ผมทำตามทุกขั้นตอนการติดตั้งที่ประสบความสำเร็จบน Windows 10 x 64 โดยใช้ขั้นตอนที่PyTORCH บน Windows 10: การเรียนการสอนกับหน้าจอแล้ว Ubuntu สำหรับ Windows ด้วยเดสก์ทอป GitHub วิธีการติดตั้งและการใช้ลินุกซ์ทุบตีเชลล์บน Windows 10 แต่ฉันถูกบล็อกในขั้นตอนล่าสุด เป็นที่ที่ฉันพยายามดาวน์โหลดหรือฝึกอบรมโมเดลใน Windows ใช้ตัวอย่างเช่นพรอมต์ Ubuntu Linux ฉันนำทางด้วยตนเองไปยังสถานที่ที่เหมาะสมและพิมพ์คำสั่งต่อไปนี้เช่นเดียวกับด้านล่าง (ฉันยังลองในโหมด su) bash pretrained_models/download_pix2pix_model.sh facades_label2photo ฉันได้รับข้อผิดพลาดในทันทีเสมอเหมือนกันกับสิ่งเหล่านี้: root@Azure:/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix# bash pretrained_models/download_pix2pix_model.sh facades_label2photo pretrained_models/download_pix2pix_model.sh: line 2: $'\r': command not found Note: …

2
วิธี 'rm' หรือ 'mv' ช่วงของไฟล์เช่น file01.txt, file02.txt … file85.txt
สมมติว่าฉันมีกลุ่มไฟล์ชื่อด้วยวิธีนี้: file01.txt file02.txt file03.txt ... file20.txt และฉันต้องการรันคำสั่งในช่วงของไฟล์เหล่านี้ ฉันรู้ว่าถ้าต้องการ 'rm' จาก 'file05.txt' ถึง 'file09.txt' ฉันสามารถทำได้: rm file0[5-9].txt แต่ฉันจะ 'ช่วง' จาก file08.txt ถึง file13.txt ได้อย่างไร ฉันลองรหัสนี้ rm file[08-13].txt และมันไม่ทำงาน ฉันสามารถเรียกใช้คำสั่งนี้: rm file0[89].txt file1[0-3].txt แต่ฉันอยากรู้ว่าฉันสามารถทำสิ่งนี้ได้ด้วยการโต้เถียงที่ละเอียดอ่อนกว่าเพียงเพื่อ 'rm' หากเป็นไปได้

5
วิธีที่ดีที่สุดในการอ่านไฟล์กำหนดค่าใน bash
วิธีที่ดีที่สุดในการอ่านไฟล์กำหนดค่าใน bash คืออะไร? ตัวอย่างเช่นคุณมีสคริปต์และไม่เต็มใจที่จะเติมการกำหนดค่าทั้งหมดด้วยตนเองทุกครั้งที่คุณเรียกสคริปต์ แก้ไข 1: ฉันคิดว่าฉันไม่ได้ทำให้ชัดเจนดังนั้น: สิ่งที่ฉันต้องการคือ ... ฉันมี configfile ซึ่งเป็นเหมือน variable_name value variable_name value ... และฉันต้องการอ่าน ฉันรู้ว่าฉันสามารถ grep มันสำหรับข้อโต้แย้งที่ฉันกำลังมองหาหรือดังนั้น ... แต่อาจจะมีวิธีที่ชาญฉลาดมากขึ้น :)
23 bash 

3
ทำไมโหมดวางแบบวงเล็บถูกเปิดใช้งานเป็นระยะในหน้าจอเทอร์มินัลของฉัน
ฉันใช้ Ubuntu 14.04 และฉันมีปัญหาแปลก ๆ กับหน้าจอเทอร์มินัลของฉันซึ่งทำให้ฉันเบื่อมาก มีคนช่วยฉันด้วยหรืออธิบายฉันว่าฉันทำอะไรผิดหรือไม่ใช้ระบบปฏิบัติการลินุกซ์? ฉันมีวิธีแก้ปัญหาบางอย่าง แต่ฉันต้องการเข้าใจว่าทำไมสิ่งนี้ถึงเกิดขึ้นซ้ำแล้วซ้ำอีก ฉันมักจะคัดลอกคำสั่ง bash จากบันทึกย่อของฉันหรือจากอินเทอร์เน็ตและบางครั้งฉันได้รับสัญลักษณ์แปลก ๆ 0 ~ และ 1 ~ ซึ่งล้อมรอบสิ่งที่ฉันคัดลอก มันน่ารำคาญมากและมันเกิดขึ้นแบบสุ่มทั้งหมด หลังจากการค้นหาเป็นเวลานานฉันพบว่าสิ่งนี้เรียกว่าโหมด bracked pasteดังนั้นตอนนี้ฉันใช้คำสั่งนี้printf "\e[?2004l"เพื่อแก้ไขเทอร์มินัลของฉันหากโหมดนี้เปิดใช้งานทันที เป็นไปได้ไหมที่จะปิดการใช้งานคุณสมบัตินี้อย่างถาวร? ฉันต้องเผชิญกับมันในทุกเครื่องของ Ubuntu ที่ฉันทำงานตอนนี้ ก่อนหน้านี้ฉันใช้ Ubuntu 10.10 และ 12.04 และฉันไม่เคยมีปัญหาดังกล่าวมาก่อน

4
`$ คืออะไร ' มันเป็นตัวแปรหรือไม่?
คำถามนี้ค่อนข้างตรงไปตรงมา $?ฉันจะได้รับรหัสทางออกของคำสั่งก่อนหน้าโดยใช้ แต่มันคืออะไรกันแน่? ผมไม่คิดว่ามันเป็นตัวแปรเพราะคุณไม่สามารถมีตัวอักษรพิเศษใด ๆ _ในชื่อของตัวแปรอื่นที่ไม่ใช่ foo?foo=10 จะทำให้เกิดข้อผิดพลาด: foo?foo=10: command not found ดังนั้นถ้ามันไม่ใช่ตัวแปรมันคืออะไร? มีคนอื่นชอบไหม?

6
ฉันจะแสดงรายการคำสั่ง shell builtin ที่มีอยู่ทั้งหมดได้อย่างไร
เรารู้ว่า bash รองรับจำนวน คำสั่ง buitin เช่น: $ type type cd help command type is a shell builtin cd is a shell builtin help is a shell builtin command is a shell builtin ฉันต้องการที่จะได้รับรายชื่อของทุกคำสั่ง builtin เปลือกใช้ได้ ฉันจะทำเช่นนั้นโดยบรรทัดคำสั่งได้อย่างไร

8
Bash หนึ่งซับเพื่อลบเฉพาะเมล็ดเก่า
ฉันได้เห็นเธรดมากมายเกี่ยวกับวิธีเพิ่มพื้นที่ว่างบน / boot พาร์ติชันและนั่นก็เป็นวัตถุประสงค์ของฉันเช่นกัน อย่างไรก็ตามฉันเพียง แต่สนใจที่จะลบเมล็ดเก่าเท่านั้นและไม่ได้ลบแต่ละอันออกจากเมล็ดที่เหลืออยู่ในปัจจุบัน ฉันต้องการวิธีแก้ปัญหาให้เป็นหนึ่งซับเพราะฉันจะเรียกใช้สคริปต์จาก Puppet และฉันไม่ต้องการมีไฟล์พิเศษวางอยู่รอบ ๆ จนถึงตอนนี้ฉันได้รับสิ่งต่อไปนี้: dpkg -l linux-* | awk '/^ii/{print $2}' | egrep [0-9] | sort -t- -k3,4 --version-sort -r | sed -e "1,/$(uname -r | cut -f1,2 -d"-")/d" | grep -v -e `uname -r | cut -f1,2 -d"-"` | xargs sudo apt-get …

6
ปัญหาของ Bash script: 'ประกาศ: ไม่พบ'
ฉันมีสคริปต์ซึ่งทำงานดี declare: not foundแต่เมื่อฉันวิ่งมันในวันนี้มันบอกว่า ฉันใช้ bash shell และพา ธ เมื่อเริ่มต้นสคริปต์ถูกต้อง สองเส้นที่ถูกตั้งค่าสถานะในสคริปต์ของฉันมีดังนี้: declare -a RESPONSE RESPONSE=($RESULT) นอกจากนี้ยังบอกว่า(ไม่คาดคิด แต่ฉันเดาว่าจะเกิดขึ้นเพราะข้อผิดพลาดแรก จุดที่ควรกล่าวถึงคือเมื่อฉันพิมพ์ประกาศทำงานได้ดี declare | grep USER แสดงให้เห็นว่า USER=ashfame USERNAME=ashfame values="$SVN_BASH_USERNAME"; แล้วนี่มันอะไรผิด?
23 bash  scripts 

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