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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

2
ทำไมการตั้งค่าพรอมต์ bash (PS1) ด้วยตนเองทำให้รูทมี $ แทนที่จะเป็น #
ฉันใช้ CentOS 6.4 โดยค่าเริ่มต้นผู้ใช้รากของพรอมต์มีสัญลักษณ์คือมันมีลักษณะคล้าย#[root@myserver ~]# echo $PS1พิมพ์ออกมา[\u@\h \W]\$; แต่ถ้าผมทำPS1="[\u@\h \W]\$"(ซึ่งไม่ควรเปลี่ยนอะไร afaics) [root@myserver ~]$ผมจบลงด้วยพรอมต์ที่มีลักษณะเช่นนี้ ทำไมเมื่อฉันพยายามที่จะตั้งค่าตัวเอง (ในที่สุดฉันต้องการที่จะเปลี่ยนเป็นสิ่งที่มีประโยชน์มากขึ้น) มันตีความ$ตัวอักษร? เกือบทุกหน้าที่ฉันสามารถหาได้ (เช่นวิธี: เปลี่ยน / ตั้งค่า bash custom prompt (PS1) ) บอกว่า\$ควรส่งผล#ให้ผู้ใช้รูท
11 bash  prompt 

5
มีคำสั่งใน Linux ที่รอจนกว่าจะถูกยกเลิก?
ฉันกำลังพยายามสร้างไฟล์แบตช์ของ Windows ซึ่งเริ่มมีสีโป๊ว / plink ด้วยการส่งต่อพอร์ตและไม่มีอะไรอื่น ส่วน Windows พร้อมแล้ว: start plink.exe -ssh -i key.ppk -L 1234:localhost:80 sampleUser@192.168.0.1 เนื่องจากฉันไม่ต้องการอนุญาตให้เรียกใช้งานคำสั่งอื่นหลังจากการตรวจสอบฉันจึงใช้ForceCommandกับการMatch Userประกาศ: Match User sampleUser ForceCommand echo 'Success! Close this window to log out.' ปัญหาคือการรันไฟล์แบตช์เริ่มฉาบอย่างถูกต้อง แต่มันจะปิดทันทีหลังจากรัน echoing ข้อความที่ฉันระบุ ความคิดของฉันคือการใช้สิ่งนี้: ForceCommand echo 'Success! Close this window to log out.' && waitTillControlC ด้วยวิธีนี้สีโป๊ว / SSH …
11 linux  bash  ssh  terminal  putty 

3
รั้งการขยาย: รันหลายคำสั่งแทนที่จะขยายในหนึ่งบรรทัด?
เมื่อคุณใช้การขยายรั้งในทุบตีสิ่งที่ต้องการ echo {a,b,c} กลายเป็น echo a b c มีวิธีขยายคำสั่งเป็น 3 คำสั่งแยกกันหรือไม่สำหรับแต่ละส่วนขยาย ดังนั้น: echo {a,b,c} จะกลายเป็น echo a echo b echo c
11 linux  bash  expansion 

4
มีวิธีบันทึกแมโครแป้นพิมพ์ในทุบตีหรือไม่
ผมอยากจะถาวรบันทึกแมโครแป้นพิมพ์ที่ผมเคยบันทึกโดยใช้และC-x ( C-x )มีวิธีง่าย ๆ ในการ "ดูแหล่งที่มา" สำหรับแมโครที่บันทึกใหม่ของฉันหรือไม่เพื่อให้ฉันสามารถผูกกับแป้นพิมพ์ลัดใน ~ / .inputrc ได้หรือไม่ ฉันคิดว่าdump-macrosจะทำ แต่ดูเหมือนจะไม่ ...

5
ฉันต้อง sftp ไปยังเซิร์ฟเวอร์ระดับกลางหรือไม่
ฉันไม่สามารถ sftp ลงในโฮสต์ได้โดยตรง ในการย้ายไฟล์จากเครื่องที่บ้านของฉันไปยังโฮสต์ฉันต้อง sftp ไฟล์ไปยังโฮสต์ระดับกลาง ssh เข้าสู่โฮสต์ระดับกลาง และ sftp ไฟล์ไปยังปลายทางสุดท้าย เป็นไปได้ไหมที่จะหลีกเลี่ยงความบ้าคลั่งเช่นนี้?
11 linux  bash  unix  ssh  sftp 


2
ทำให้คำสั่ง OS X Terminal ฉันพิมพ์ BOLD
ฉันต้องการสร้างคำสั่งที่ฉันพิมพ์ (อินพุต) ในเทอร์มินัลโดดเด่นจากเอาต์พุตทั้งหมด ตัวอย่างเช่น: imac: ~ มือปราบ $ chmod -R gw myfolder imac: ~ มือปราบ $ cd myfolder imac: มือปราบ myfolder $ ls -l รวม 0 drwxr-xr-x 9 ผู้ดูแลระบบราก 306 20 เมษายน 2010 ถัง drwxr-xr-x 7 ผู้ดูแลระบบ 238 เม.ย. 20 2010 รวม drwxr-xr-x 73 root ผู้ดูแลระบบ 2482 18 พฤษภาคม 17:16 …

3
การเรียกสคริปต์ด้วย. /bla.sh เทียบกับ bla.sh
ใครช่วยอธิบายสิ่งที่เชลล์ทำในสองตัวอย่าง A) และ B) ด้านล่างได้ไหม เห็นได้ชัดว่ามันทำงานแตกต่างกัน แต่ฉันไม่สามารถหาได้ว่าทำไมเอาต์พุตจึงแตกต่างกัน ตัวอย่าง: เรามามีสคริปต์ในไดเรกทอรีปัจจุบันของเราชื่อbla.shด้วยคำสั่งเดียว: echo ${0##/*} hello A) เริ่มเมื่อ: ./bla.sh ให้:./bla.sh hello B) เริ่มต้นเป็น: . bla.sh ให้:-bash hello เนื่องจากฉันใช้สิ่งนี้ในสคริปต์เอาต์พุตที่สอง (เพราะ "-" ที่ด้านหน้าของ -bash) จะฆ่าคำสั่ง แน่นอนง่าย ๆ--ก่อนที่จะ${...}ช่วยเหลือ แต่ฉันชอบที่จะเข้าใจสิ่งที่ทำให้เกิดผลลัพธ์ในครั้งแรก ฉันรักทุบตี และ vi [m] แต่ฉันเชือนแช ...
11 unix  bash  script 

1
Bash บน Windows / Windows Subsytem สำหรับ Linux (WSL) ไม่ได้ติดตั้งอย่างถูกต้อง / แฮงค์
ฉันได้รับการปรับปรุงครบรอบ windows และพยายามติดตั้ง Bash ฉันรัน bash จาก command prompt (โหมดที่ไม่ใช่ผู้ดูแลระบบ) และมันก็ติดขัดในขณะที่พยายามที่จะแยกไฟล์ ฉันปิดหน้าต่างและพยายามทำเช่นเดียวกันกับสิทธิ์ที่ยกระดับ (พร้อมท์คำสั่งรันเป็นผู้ดูแลระบบ ) แต่ตอนนี้เมื่อฉันป้อนทุบตีมันติดอยู่ที่นั่นและไม่เปิดหรือขอให้ฉันติดตั้งทุบตี ฉันเห็นกระบวนการทุบตีใช้ CPU 25% ในพื้นหลัง เมื่อฉันพยายามถอนการติดตั้ง bash ที่ทำงานlxrun /uninstall /fullก็ไม่สามารถถอนการติดตั้งได้: C: \ WINDOWS \ system32> lxrun / uninstall / full สิ่งนี้จะถอนการติดตั้ง Ubuntu บน Windows สิ่งนี้จะลบสภาพแวดล้อมของ Ubuntu รวมถึงการแก้ไขแอปพลิเคชันใหม่และข้อมูลผู้ใช้ พิมพ์ "y" เพื่อดำเนินการต่อ: y ถอนการติดตั้ง ... ข้อผิดพลาด: 0x80080005 ฉันจะรีเซ็ตระบบย่อย …

3
จะใช้ GnuPG ด้วย --passphrase อย่างไร
ฉันต้องการเขียนสคริปต์ที่จะเรียกใช้gpgไฟล์ที่เรียกว่า "ไฟล์" ด้วยข้อความรหัสผ่าน "ทดสอบ" โดยปกติเมื่อฉันใช้gpgฉันมักจะเรียกใช้gpg -c fileและมันถามฉันสำหรับวลีรหัสผ่าน แต่เนื่องจากฉันต้องการให้สคริปต์นี้ทำทุกอย่างด้วยตัวเองฉันจึงต้องการให้ข้อความรหัสผ่านเป็นส่วนหนึ่งของคำสั่ง ตอนนี้เมื่อฉันพยายามใช้: gpg -c file --passphrase testมันจะแสดงผล: การใช้งาน: gpg [ตัวเลือก] --symmetric [filename] gpg --passphrase test --symmetric fileซึ่งตะเข็บเหมือนมันอยากให้ผมใช้ แต่ถ้าฉันทำอย่างนั้นมันจะปรากฏข้อความเพื่อขอให้ฉันใช้วลีรหัสผ่าน; ซึ่งไม่ใช่สิ่งที่ฉันต้องการ ฉันจะตั้งค่าข้อโต้แย้งได้อย่างถูกต้องได้อย่างไร?
11 bash  gnupg 

3
ฉันจะทราบได้อย่างไรว่าแอปพลิเคชันไม่ตอบสนอง
ฉันมีแอปพลิเคชันบน OSX ที่เข้าสู่สถานะไม่ตอบสนองซ้ำแล้วซ้ำอีกและต้องถูกบังคับให้ฆ่า ฉันหวังว่าจะทำให้เป็นอัตโนมัติ แต่เมื่อตรวจสอบกระบวนการด้วยpsฉันไม่เห็นสิ่งใดที่สอดคล้องกับสถานะไม่ตอบสนอง ผมมองที่รัฐบ่งชี้ แต่แสดงให้เห็นว่าเป็น app Sไม่ว่าจะมีการตอบสนองหรือไม่ state สถานะถูกกำหนดโดยลำดับของอักขระตัวอย่างเช่น `` RWNA '' อักขระตัวแรกระบุสถานะการทำงานของกระบวนการ: ฉันทำเครื่องหมายกระบวนการที่ไม่ได้ใช้งาน (กำลังหลับนานกว่าประมาณ 20 วินาที) R ทำเครื่องหมายกระบวนการที่รันได้ S ทำเครื่องหมายกระบวนการที่กำลังหลับน้อยกว่าประมาณ 20 วินาที T หมายถึงกระบวนการที่หยุด U ทำเครื่องหมายกระบวนการในการรอเครื่องสำรอง Z ทำเครื่องหมายกระบวนการที่ตายแล้ว ('`zombie' ') ฉันจะทราบได้อย่างไรว่ากระบวนการไม่ตอบสนองตามที่ตัวจัดการกิจกรรมทำ ฉันเปิดให้โซลูชั่น AppleScript เช่นกัน
11 macos  mac  bash  process 

3
ฉันจะดู man page สำหรับคำสั่ง shell ในตัวได้อย่างไร?
หากฉันเห็นคำสั่งในสคริปต์ที่ฉันไม่รู้จักและฉันพิมพ์ (ตัวอย่าง) man pushdหรือman umaskฉันเห็น man page สำหรับคำสั่งในตัว ฉันรู้ว่าฉันสามารถทำman bashและเลื่อนเพื่อค้นหาความช่วยเหลือสำหรับคำสั่ง builtin นั้นหรือฉันสามารถเปิดเบราว์เซอร์และไปที่หน้าbash man ออนไลน์ซึ่งง่ายต่อการค้นหา แต่มีวิธีที่ง่ายกว่าในการรับ man page สำหรับ คำสั่ง builtin เดียวโดยตรงบนบรรทัดคำสั่ง?

2
วิธีบรรทัดคำสั่งในการส่งการกดแป้นไปที่หน้าต่างที่เปิดใน X-session อื่น
บนเครื่องหลักของฉันฉันมีเดสก์ท็อป Ubuntu ที่เปิดอยู่และเข้าสู่ระบบ ฉันยังเข้าสู่เครื่องนี้จากคอมพิวเตอร์ระยะไกลโดยใช้ X2go ซึ่งสร้างเซสชัน X ใหม่ ฉันมีไฟล์ LibreOffice เปิดในเซสชั่นเดิม ฉันต้องการบันทึกไฟล์นี้และปิด - แต่จากเครื่องระยะไกล! (ทั้งสองเซสชันมีผู้ใช้เดียวกันที่เข้าสู่ระบบฉันสามารถ sudo ถ้าจำเป็น) ฉันลองใช้xdotool searchแต่ไม่สามารถหาหน้าต่างได้ มีวิธีการทำสิ่งที่ฉันต้องการจากเซสชั่นที่สองนี้หรือไม่? ฉันสามารถดูกระบวนการด้วยps -A ฉันยังสามารถดูไฟล์ที่เปิดด้วยlsof! ฉันจะทำ "บันทึกและปิด" กับมันได้อย่างไร

4
การค้นหาและลบไฟล์ที่ซ้ำกันใน osx ด้วยสคริปต์
จาก: http://www.chriswrites.com/2012/02/how-to-find-and-delete-duplicate-files-in-mac-os-x/ ฉันจะแก้ไขได้อย่างไรเพื่อลบเฉพาะเวอร์ชันแรกของ ไฟล์ที่เห็น เปิด Terminal จาก Spotlight หรือโฟลเดอร์ Utilities เปลี่ยนเป็นไดเรกทอรี (โฟลเดอร์) ที่คุณต้องการค้นหา (รวมถึงโฟลเดอร์ย่อย) โดยใช้คำสั่ง cd ที่พรอมต์คำสั่งพิมพ์ cd เช่น cd ~ / Documents เพื่อเปลี่ยนไดเรกทอรีเป็นโฟลเดอร์เอกสารที่บ้านของคุณที่พรอมต์คำสั่งพิมพ์คำสั่งต่อไปนี้: find . -size 20 \! -type d -exec cksum {} \; | sort | tee /tmp/f.tmp | cut -f 1,2 -d ' ' | uniq -d …
11 macos  bash 

3
วนรอบช่วงตัวเลขเพื่อดาวน์โหลดด้วย wget
ฉันจะเขียนสคริปต์ทุบตีที่จะทำสิ่งต่อไปนี้ได้อย่างไร: URL = "example.com/imageID=" while (1..100) wget URL + $i #it will wget example.com/imageID=1, then 2, then 3, etc done ดังนั้นฉันจึงมีจำนวนลูปที่ต้องดำเนินการ URL ที่ลงท้ายด้วยตัวเลขจากลูป ฉันต้องการwgetทั้งหมดเหล่านี้

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