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

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

5
การสอนทุบตีแก่ผู้เริ่มต้นที่ใช้ Windows เพียง [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ฉันควรจะแนะนำให้รู้จักกับการใช้เปลือก (เช่นทุบตี) เพื่อเริ่มต้นทั้งหมด อะไรคือสิ่งพื้นฐาน / มีประโยชน์ที่สุดที่ฉันสามารถสอนใครบางคนภายใน 1 1/2 ชั่วโมงโดยไม่เรียกร้องมากเกินไป? นี่คือบางจุดที่ฉันคิด: ฉันอยู่ที่ไหน (pwd) เปลี่ยนไดเรกทอรี (cd, cd .. , cd -) สร้างไดเรกทอรี (mkdir, mkdir -p) เปลี่ยนชื่อไฟล์ / นาม (mv) คัดลอกไฟล์ / ไดเรกทอรี (cp, cp -r) รายการไดเรกทอรีรายการ (ls, ls -l, ls -a)
14 bash  education 

3
เป็นไปได้หรือไม่ที่จะให้สีพรอมต์ใน Bash?
เป็นไปได้หรือไม่ที่จะให้สีพรอมต์ ("user @ host: ~ / dir / $") เป็น Bash? คำสั่งบางคำสั่งจะสร้างเอาต์พุตจำนวนมากและบางครั้งก็ยากที่จะหาตำแหน่งที่เริ่มต้น การระบายสีจะช่วยได้มาก

9
เปลี่ยนไดเรกทอรี (cd) แต่โดยการแทนที่ส่วนของเส้นทางเท่านั้น
ไม่แน่ใจว่าเป็นไปได้หรือไม่ แต่ดูเหมือนว่าฉันจะจำได้ตั้งแต่สมัยโบราณโดยใช้ AIX มันเป็นไปได้ที่จะเปลี่ยนเส้นทางของฉันโดยเพียงบอกว่าส่วนใดของเส้นทางที่ต้องถูกแทนที่ด้วยอย่างอื่น เช่นสมมติว่าฉันมีสองเส้นทาง: /etc/application-2.0.1/options/default และ /etc/application-1.0.8/options/default ที่ฉันสามารถเปลี่ยนจากโฟลเดอร์ 1 เป็น 2 โดยใช้คำสั่งเช่น cd /2.0.1/1.0.8/ ซึ่งจะเข้ามาแทนที่ในเส้นทางสตริงไป2.0.1 1.0.8เห็นได้ชัดว่านี่ไม่ได้ผลสำหรับฉันตอนนี้ แต่มีวิธีทำเช่นนี้หรือไม่?
14 bash 

1
ความแตกต่างระหว่าง“ xargs” และการทดแทนคำสั่ง?
xargsในหลายกรณีผมใช้แทนคำสั่งแทน ตัวอย่างเช่นrm $(ls)เดียวกับls | xargs rm อะไรคือความแตกต่างระหว่างพวกเขาจริง ๆ ? ฉันคิดว่าหนึ่งในความแตกต่างคือการทดแทนคำสั่งที่ทำงานใน subshell ในขณะที่xargsทำงานในเปลือกปัจจุบัน แต่ฉันไม่แน่ใจ กรุณาระบุความแตกต่าง
14 bash  xargs 


1
รับข้อผิดพลาด“ โครงการที่หายไป” กับ wget
ฉันเขียนสคริปต์เล็กน้อยที่คว้าภาพพื้นหลังแบบสุ่มจากDesktoppr API และเปลี่ยนภาพพื้นหลังเดสก์ทอปของฉันเป็น: #!/bin/bash url=$(curl 'https://api.desktoppr.co/1/wallpapers?page='$(shuf -i 1-1000 -n 1) | jq ".response[].image.url" | sed $(shuf -i 1-20 -n 1)'!d') && wget "$url" เมื่อฉันรันสคริปต์wgetคำสั่งสุดท้ายล้มเหลวด้วยข้อผิดพลาด: "http://a.desktopprassets.com/wallpapers/...jpg": Scheme missing. เมื่อฉันใส่ URL โดยตรงในคำสั่ง wget เช่น: wget "http://a.desktopprassets.com/wallpapers/...jpg" ... คำสั่งดำเนินการอย่างถูกต้องและดาวน์โหลดภาพซึ่งหมายความว่าข้อผิดพลาดเกิดขึ้นเนื่องจากปัญหาบางอย่างในตัวแปร ฉันคิดว่านี่อาจมีบางอย่างที่เกี่ยวข้องกับjqไลบรารีที่ฉันใช้เพื่อแยกการตอบสนอง JSON จาก Desktoprr API
14 bash  wget 

4
นำ ZSH ออกแล้วไม่สามารถ relogin ได้
ดังนั้นฉันจึงติดตั้งzshและฉันไม่ชอบมัน ดังนั้นฉันทำapt-get remove zsh จากจุดที่ฉันไม่สามารถ relogin ฉันคลิกผู้ใช้ของฉัน .. แล้วมันก็กลับไปที่หน้าจอเข้าสู่ระบบ ฉันสามารถเข้าสู่ระบบด้วยGuest sessionฉันเท่านั้นที่สามารถเข้าสู่ระบบด้วย ฉันคิดว่าปัญหาเกิดขึ้นเนื่องจากเชลล์ defualt ที่ผู้ใช้ของฉันคือ zsh และมันไม่มีอยู่อีกต่อไป .. ฉันจะติดตั้งใหม่จากเซสชันผู้เยี่ยมชมเพื่อเปลี่ยนเชลล์เริ่มต้นของผู้ใช้สำหรับผู้ใช้ทั่วไปได้อย่างไร แม้พยายามที่จะเข้าสู่ระบบด้วย ctrl+alt+f2/6ฉันพิมพ์ผู้ใช้และรหัสผ่านของฉัน การเข้าสู่ระบบประสบความสำเร็จ แต่ฉันถูกโยนกลับไปที่การเข้าสู่ระบบ ความคิดใด ๆ

3
ฉันจะใส่ฟังก์ชั่นเชลล์ที่ผู้ใช้กำหนดได้ที่ไหน
ฉันวางแผนที่จะสร้างฟังก์ชั่นที่จะทำให้สิ่งต่าง ๆ สำหรับฉันง่ายขึ้น ฟังก์ชั่นจะเป็นอย่างไร function lazymode() { echo "Hello World!"; } เพื่อที่ว่าเมื่อผมใช้คำสั่งlazymodeในเปลือกHello World!ก็จะเอาท์พุท ไฟล์ใดที่ฉันควรใส่ฟังก์ชั่นที่ผู้ใช้กำหนด?

1
วิธีทำให้แท็บ bash stop เติมไดเรกทอรีที่ซ่อนอยู่โดยอัตโนมัติ
ส่วนใหญ่ฉันไม่ต้องการการเติมข้อความอัตโนมัติสำหรับไดเรกทอรีที่ซ่อนอยู่ของฉัน อันที่จริงแล้วนั่นคือจุดซ่อนเร้นของพวกเขา! อย่างไรก็ตามน่ารำคาญทุบตีพิจารณาไดเรกทอรีเหล่านี้เมื่อพิจารณาการเติมข้อความอัตโนมัติของแท็บ นี่เป็นเรื่องที่น่ารำคาญอย่างยิ่งเมื่อฉันมีสถานการณ์ต่อไปนี้: a. svn foler พร้อมกับโฟลเดอร์เดียวที่ฉันต้องการเข้าไปโดยกดแท็บ (โดยทั่วไปจะเกิดขึ้นกับแพ็คเกจ Java ลึก ... ) มีวิธีใดที่จะเปลี่ยนพฤติกรรมเริ่มต้นหรือไม่ สถานการณ์กรณีที่เลวร้ายที่สุดที่ฉันต้องพิมพ์ '.' ก่อนแท็บซึ่งดูเหมือนเป็นเกมง่ายๆสำหรับการใช้งานของฉัน

1
Bash alias - = … (ชื่อนามแฝงควรเป็นเส้นประอย่างง่าย) ไม่ทำงาน
ฉันต้องการสร้างนามแฝงcd -ที่ควรจะเป็นเพียงเส้นประ ( -) ฉันพยายามไม่สำเร็จ: alias -='cd -' # bash: alias: -=: Invalid option alias \-='cd -' # bash: alias: -=: Invalid option alias '-'='cd -' # bash: alias: -=: Invalid option alias '\-'='cd -' # bash: alias: `\-': Invalid alias name. สามตัวแรกนั้นเหมือนกัน (เฉพาะอินพุตที่แตกต่างกัน แต่ bash เปลี่ยนพวกมันทั้งหมดเป็นคำสั่งเดียวกันaliasด้วยอาร์กิวเมนต์เดียว-=cd -) ดังนั้นจึงไม่แปลกใจที่ข้อความแสดงข้อผิดพลาดจะเหมือนกัน ฉันเดาว่าถ้าการโต้แย้งเริ่มต้นด้วยเส้นประมันจะแยกเป็นธงแทนที่จะเป็นชื่อนามแฝง …
14 bash  alias 

1
ค้นหาไฟล์หรือไดเรกทอรีในโครงสร้างไดเรกทอรีทั้งหมด
ฉันจะค้นหาไฟล์ที่มีชื่อเฉพาะในทุบตีได้อย่างไร ฉันต้องการค้นหาทั้งระบบ ฉันลองใช้ find แต่ก็ทำได้แค่ระดับเดียวเท่านั้น
14 bash  directory  find 

3
จะข้ามการประเมินของเครื่องหมายและในบรรทัดคำสั่งได้อย่างไร
เมื่อป้อน URL ของ Google Maps Directions ในบรรทัดคำสั่ง (สำหรับเปิดด้วยโครเมียมเบราว์เซอร์ผ่าน Terminal) จะมีเครื่องหมายและ ( &) ใน URL อย่างไรก็ตามเทอร์มินัลจะแตกเนื่องจากมีสิ่ง Unix เป็น Unix มีบางอย่างที่ฉันสามารถพิมพ์ลงในเทอร์มินัลว่าเมื่อคำสั่งผ่านไปจริง ๆ มันจะได้รับการปฏิบัติเหมือนเครื่องหมายและ? ความประสงค์; งาน?

2
Windows 10 Bash“ ไม่สามารถเชื่อมต่อเพื่อแสดง!”
ฉันเพิ่งติดตั้ง Bash สำหรับ Windows 10 (yay!) ฉันต้องการมันเพื่อเรียกใช้ซอฟต์แวร์ประมวลผลของฉันที่เรียกว่า 'Seismic Unix' ซึ่งติดตั้งได้ดี อย่างไรก็ตามเมื่อฉันรันคำสั่งที่แนบมามันทำให้เกิดข้อผิดพลาดนี้ "ไม่สามารถเชื่อมต่อกับจอแสดงผล!" คำสั่งนี้ควรจะแสดงรูปภาพบนหน้าจอและฉันคิดว่า Bash ไม่สามารถเข้าถึงหน้าจอแล็ปท็อปของฉันเพื่อแสดงผลลัพธ์ ภาพหน้าจอของข้อผิดพลาด "ไม่สามารถเชื่อมต่อกับจอแสดงผล!" นี่คือคำสั่ง: suplane | suximage title="My first test" & ฉันหวังว่าจะได้ยินจากคุณและขอขอบคุณล่วงหน้า

3
เรียกใช้แอป Chrome จากบรรทัดคำสั่ง
ฉันหาวิธีเปิดแอป Chrome จากทุบตีไม่เจอ? ฉันพยายามที่จะบรรลุเป้าหมายนี้กับบุรุษไปรษณีย์ จากgoogle-chrome -hฉันลอง (น่าเสียดาย) สิ่งเหล่านั้น: $ google-chrome --app="Postman" $ google-chrome --extension="postman" ผลลัพธ์คือหน้าต่างว่างใหม่เปิดขึ้น เดาแรกของฉันคือแอพถูกเก็บไว้ในเครื่องของฉันและฉันต้องเปิดไฟล์เฉพาะ (ดัชนีแอพ) เพื่อเปิดมัน เป็นไปได้ไหมที่จะบรรลุเป้าหมายนี้? และถ้าเป็นไปได้จะทำอย่างไร?

1
“ ไม่สามารถ chdir ไปยังไดเรกทอรีบ้าน / home / me: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”
ฉันใช้ 12.04 บนเซิร์ฟเวอร์ของฉัน ฉันสร้างผู้ใช้ใหม่โดยใช้adduser meและpasswd meและเพิ่มไปยัง sudo เมื่อฉันเข้าสู่ระบบนี่คือสิ่งที่ฉันเห็น Could not chdir to home directory /home/me: No such file or directory $ ฉันพิมพ์bashและมันเริ่มที่จะดู "ปกติ" $ bash me@server:/$ ฉันจะหลีกเลี่ยงการพิมพ์bashทุกครั้งที่เข้าสู่ระบบได้อย่างไร

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