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

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

5
สลับรูปแบบของสตริงพรอมต์ terminal gnome ตามคำสั่งหรือไม่
เทอร์มินัลของฉันมีรูปแบบพร้อมท์เริ่มต้นดังนี้ ชื่อผู้ใช้ @ boxname / path / to / current / directory $ รหัสที่สร้างให้มีลักษณะดังนี้: (มีคำจำกัดความบางสีด้วย) PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]' หากเส้นทางไปยังไดเรกทอรีปัจจุบันยาวเกินไปมันจะไม่เป็นที่พอใจเมื่อใช้งานกับเทอร์มินัลเนื่องจากคุณแบ่งสายอย่างต่อเนื่อง ในกรณีเช่นนี้ฉันต้องการรูปแบบที่สร้างสตริงที่สั้นกว่าเช่นนี้: ชื่อผู้ใช้ @ boxname current_dir_name $ รหัสที่สร้างมันจะมีลักษณะเช่นนี้ (อีกครั้งด้วยสี): PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] $(basename ${PWD}) \$ \[\033[00m\]' ไม่มีใครทราบว่าฉันสามารถทำได้อย่างง่ายดายสลับรูปแบบของหน้าต่าง terminal ปัจจุบันจากรูปแบบหนึ่งไปที่อื่น ๆ โดยเพียงแค่พิมพ์ตัวอย่างเช่น: prompttoggle?

2
ฉันเปลี่ยนตัวแปร PATH อย่างถาวรโดยไม่ได้ตั้งใจและไม่สามารถเข้าสู่ระบบได้ในขณะนี้ ฉันจะเปลี่ยนตัวแปร PATH เป็นค่าเริ่มต้นได้อย่างไร
ฉันใช้sudo -H gedit /etc/environmentคำสั่งบนเทอร์มินัลเพื่อเปลี่ยนตัวแปร PATH อย่างถาวร เพื่อแก้ไขให้ถูกต้องฉันกดCtrl+ Alt+ F1และใช้export PATHคำสั่ง แต่การเข้าถึงถูกปฏิเสธ คำสั่งหลายคน (รวมทั้งsudoและnano) /usr/binไม่ได้รับการยอมรับว่าเป็นตัวแปรเส้นทางใหม่ไม่ได้ ฉันยังใหม่กับคำสั่ง Linux ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


1
บรรทัดเอาต์พุตพิเศษเหล่านี้มีอะไรบ้างใน bash?
สำหรับบางครั้งที่บรรทัดเหล่านี้สามารถเห็นได้หลังจากรันคำสั่ง (แบบสุ่ม): [1]- Done wget -c http://downloads.sourceforge.net/project/zorin-os/9/zorin-os-9-core-32.iso?r=http%3A%2F%2Fzorinos.com%2Fdownload9.html [2]+ Done ts=1460659842 บรรทัดแรกคือคำสั่งและมันไม่ได้เกิดขึ้นเสมอไป แต่บางครั้งแอพบรรทัดคำสั่งจะหยุดโดยไม่กลับไปที่บรรทัดรับคำสั่งจนกว่าฉันจะกด Enter; ซึ่งแสดงบรรทัดเหล่านี้ ระบบของฉันไม่ทำงานเช่นนี้จนกระทั่งหนึ่งสัปดาห์ที่ผ่านมา นี่เป็นปัญหาหรือไม่?

2
วิธีเปลี่ยนชื่อผู้ใช้ของฉันในสคริปต์ด้วยตัวแปร
ฉันต้องการสร้างสคริปต์การติดตั้งสำหรับพีซีที่บ้านของฉันและฉันต้องการทำให้มีความยืดหยุ่นมากขึ้น จะเปลี่ยนชื่อผู้ใช้ของฉันด้วยตัวแปรผู้ใช้ปัจจุบันได้อย่างไร ตัวอย่าง: ดาวน์โหลดไปที่: / home / ThisUSER / Downloads /

2
พิมพ์ค่าส่งคืนหลังจากการทำงานของโปรแกรม
ผมสงสัยว่าวิธีการตั้งค่าตัวเลือกในการพิมพ์ค่าตอบแทนอัตโนมัติหลังจากการดำเนินการทุกโปรแกรมใน terminal echo $?โดยไม่ต้องพิมพ์ เป็นสิ่งที่สามารถตั้งค่าได้หรือไม่? Codeblocks มีคุณสมบัติดังกล่าว

2
ความแตกต่างระหว่าง $ '$ foo' และ $“ $ foo”
ฉันมีปัญหาในการหาความแตกต่างระหว่างคำพูดเดียวและสองครั้งภายในบริบทของตัวแปร ฉันกำหนด: foo=pwd จากนั้นเรียกใช้สิ่งเหล่านี้: echo $'$foo' echos ใด$foo(หมายถึง$คำสั่งแรกในคำสั่ง echo ของฉันถูกดร็อป) echo $"$foo" echos นี้pwd(ซึ่งหมายความว่า bash จะขยาย$foo, ตัวแปรของฉัน, เป็นค่าของมัน) echo $`$foo` ในที่สุด echos นี้$~/scripts(ฉันคาดว่าจะพิมพ์~/scriptsและไม่$~/scripts) ใครสามารถช่วยฉันค้นหาความแตกต่างเหล่านี้ได้บ้าง

1
วงเล็บวงเล็บปีกกาใน Bash
ไขปริศนาที่นี่: ถ้าฉันทำ: touch file{1,2,3} มันสร้าง file1, file2, file3 และถ้าเกิดว่าทำ rm file[1-3] มันลบพวกเขา แต่ถ้าฉันทำ touch file[1-3] มันสร้าง: file[1-3] ทำไม?
9 bash  syntax 

3
ออกจากทั้ง root และผู้ใช้ด้วยคำสั่งเดียว
ฉันรู้เกี่ยวกับ "ไม่ได้ใช้sudo su -" เป็นต้น แต่ขอบอกตามตรงพวกเราเกือบทั้งหมดทำได้ ดังนั้นนี่คือปัญหา เราไม่สามารถเปิดใช้งานการเข้าสู่ระบบรูทได้ดังนั้นเราจึงต้อง ssh ในฐานะผู้ใช้ของเราแล้วไปยังรูต นี่คือแผนผังกระบวนการ: 1 7897 7826 7826 ? -1 S 1000 0:00 sshd: josh@pts/0 7897 7898 7898 7898 pts/0 8182 Ss 1000 0:00 \_ -bash 7898 7990 7990 7898 pts/0 8182 S 0 0:00 \_ sudo su - 7990 7991 7990 7898 …
9 command-line  bash  ssh  sudo  root 

2
จะใช้ grep output เป็นพา ธ ของ cd ได้อย่างไร?
ฉันจะไพพ์grepเอาต์พุตเป็นอาร์กิวเมนต์ของcdคำสั่งได้อย่างไร ตัวอย่างเช่น: [root@xxx xxx]# pip install django | grep '/usr.*' Requirement already satisfied (use --upgrade to upgrade): django in /usr/lib64/python2.7/site-packages นี่/usr/lib64/python2.7/site-packagesคือไฮไลต์และฉันต้องการผ่านสายcdนี้

2
การรัน. sh เพื่อเรียกใช้งานหลายคำสั่ง
ฉันสงสัยว่าฉันจะใช้หลายคำสั่งผ่าน shell script ได้อย่างไร ตัวอย่างเช่นเพียงลองใช้ฉันต้องการเชื่อมต่อ .desktop กับ. sh ที่จะเรียกใช้รหัสอัปเดตทั้งหมดดังนั้นฉันจึงไม่ต้องพิมพ์ออกมา ฉันรู้วิธีรันคำสั่งเดียวผ่าน. sh ไม่ใช่หลายคำสั่ง อย่างไรก็ตาม?

4
การเปิดแท็บเทอร์มินัลหลายแท็บและคำสั่งที่รันอยู่
ฉันต้องการเปิดแท็บเทอร์มินัลหลายแท็บตั้งชื่อให้ไปที่ไดเรกทอรีและทำให้แต่ละแท็บเรียกใช้คำสั่ง ฉันยังใหม่กับ Linux และ shell scripting หลังจากค้นหาออนไลน์และตรวจสอบโซลูชันฉันได้สร้างสคริปต์นี้ ( แก้ไขตามคำตอบด้านล่าง): #!/bin/bash cd /media/Extra/Project tab=" --tab-with-profile=Default" options=(--tab --title=Terminal) cmds[1]="'rails s'" titles[1]="Server" cmds[2]="'rails c'" titles[2]="Console" for i in 1 2; do options+=($tab --title="${titles[i]}" -e "bash -c \"${cmds[i]} ; bash\"" ) done gnome-terminal "${options[@]}" exit 0 มันเปิดแท็บชื่อพวกเขา แต่ล้มเหลวในการดำเนินการคำสั่งสร้างข้อผิดพลาดนี้: มีข้อผิดพลาดในการสร้างกระบวนการลูกสำหรับเทอร์มินัลนี้ ข้อบกพร่องอีกอย่างคือถ้าฉันหยุดคำสั่งที่กำลังรันมันจะปิดแท็บซึ่งฉันไม่ต้องการ ฉันต้องสามารถหยุดคำสั่งและเรียกใช้อีกครั้งภายในแท็บเดียวกัน เกิดอะไรขึ้นกับสคริปต์ มีวิธีอื่นที่ง่ายกว่าในการทำเช่นนั้น? หมายเหตุ: …

4
เปลี่ยนทิศทางเอาต์พุตไปที่ไฟล์จากคำสั่ง piping grep
ฉันกำลังทำงานนี้: cat /dev/urandom|hexdump| grep -i "ffff f" > random และฉันไม่ได้อะไรเลยในไฟล์randomมันยังคงมีความยาวเป็นศูนย์หลังจากคำสั่งถูกขัดจังหวะ จะทำให้มันเขียนออกไปยังไฟล์ได้อย่างไร? ฉันต้องเขียนผลลัพธ์ไปยังไฟล์ซึ่งควรมีข้อมูลผลลัพธ์เช่นนี้ 021bc40 7724 d4f5 59ec bcbb ffff fd26 ab3c 9b7c 03a9100 b3a5 8601 fa33 ffff f23c 4326 2e7f 0c8a 0449810 e459 d5af 4e11 ffff fc55 8660 9efb 3c9b

2
จะบอกพารามิเตอร์ใดที่จะถูกส่งไปยังคำสั่งด้วยโอเปอเรเตอร์โอเปอเรเตอร์
งานนี้: $ echo "แจ้งเตือน - ส่ง HELLO" | ณ ตอนนี้ สิ่งนี้ไม่: $ ที่ตอนนี้ <echo "แจ้งเตือน - ส่ง HELLO" มันระบุว่า 'ไม่พบไฟล์หรือไดเรกทอรี " ฉันเข้าใจว่ามี-fตัวเลือกสำหรับคำสั่งนี้ซึ่งฉันสามารถจัดหาไฟล์ที่จะดำเนินการในช่วงเวลาที่กำหนด ดังนั้นนี่ทำให้ฉันคิดว่า ... โดยทั่วไปฉันจะทราบได้อย่างไรว่าพารามิเตอร์ใดที่ผู้ดำเนินการเปลี่ยนเส้นทางจัดหาค่า

1
ออกจากเปลือกปลา
ฉันมีการตั้งค่าปลาเป็นเปลือกเริ่มต้นของฉัน ฉันต้องการที่จะออกจากการfishbash ฉันจะทำอย่างนั้นกับเปลือกปลาที่เปิดได้อย่างไร

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