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

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

5
วิธีรับเอาต์พุตบรรทัดก่อนหน้าอย่างรวดเร็วในเทอร์มินัลโดยไม่ใช้เมาส์
เทอร์มินัล Linux (เช่น Ubuntu) มีวิธีรับบรรทัดสุดท้ายหรือไม่ สมมติว่าฉันกำลังพิมพ์tdคำสั่งแบบสุ่มซึ่งยังไม่ได้ติดตั้งในระบบของฉันดังนั้นฉันจะได้รับข้อความเช่นด้านล่าง ฉันต้องการ "ทางลัด" เพื่อให้ทำงานsudo apt-get install textdrawได้อย่างรวดเร็ว มีเครื่องมือหรือฉันจะคัดลอกบรรทัดสุดท้ายไปยังคลิปบอร์ดโดยไม่ใช้เมาส์ได้หรือไม่? username@WorkStation:~$ td The program 'td' is currently not installed. You can install it by typing: sudo apt-get install textdraw username@WorkStation:~$
13 ubuntu  bash  terminal  shell 

2
ทุบตี bash สำหรับรูปแบบชื่อไฟล์หรือไดเรกทอรี
ฉันกำลังพยายามสร้างสคริปต์การทุบตีเสร็จสิ้นและมีปัญหา ฉันต้องการตั้งค่าเพื่อให้รายการที่สมบูรณ์เป็นไฟล์ที่ตรงกับส่วนขยายหรือไดเรกทอรี (ซึ่งอาจมีหรือไม่มีไฟล์ของส่วนขยายนั้น) ปัญหาที่ฉันมีคือวิธีเดียวที่ฉันจะได้รับความสำเร็จในการเก็บไฟล์และไดเรกทอรีคือการใช้สิ่งที่ชอบ-o plusdirs -f -X '!*.txt'แต่เมื่อฉันปล่อยทุบตีหนึ่งในไดเรกทอรีที่สมบูรณ์มันเพิ่งเพิ่มช่องว่างไปยังจุดสิ้นสุดมากกว่า เฉือน _xyz() { local cur=${COMP_WORDS[COMP_CWORD]} local prev=${COMP_WORDS[COMP_CWORD-1]} #COMPREPLY=( $( compgen -f -X '!*.txt' -- $cur ) ) #COMPREPLY=( $( compgen -f -G '*.txt' -- $cur ) ) #COMPREPLY=( $( compgen -o filenames -f -X '!*.txt' -- $cur ) ) #COMPREPLY=( $( compgen …

2
ฉันจะทราบได้อย่างไรว่าไฟล์เป็นนามแฝงหรือลิงก์สัญลักษณ์?
ฉันกำลังทำงานกับระบบดั้งเดิมและฉันมีไฟล์จำนวนมากที่อ้างถึงรูปภาพที่อยู่ในโฟลเดอร์อื่น lrwxrwxrwx 1 user nobody 56 Feb 10 2010 t100x100.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x100.jpg lrwxrwxrwx 1 user nobody 56 Feb 10 2010 t100x133.jpg -> /home/www/virtual/categories/swm/24/m/00012/t100x133.jpg lrwxrwxrwx 1 user nobody 56 Feb 10 2010 t125x150.jpg -> /home/www/virtual/categories/swm/24/m/00012/t125x150.jpg lrwxrwxrwx 1 user nobody 56 Feb 10 2010 t150x200.jpg -> /home/www/virtual/categories/swm/24/m/00012/t150x200.jpg ฉันจะรู้ได้อย่างไรว่าสิ่งเหล่านี้เป็นลิงก์สัญลักษณ์หรือชื่อแทน?
13 bash  unix  shell 


4
ฉันจะสร้าง 5 ไฟล์ได้อย่างง่ายดาย?
ฉันสามารถย้าย 5 ไฟล์ไปที่อื่นโดยใช้: $ mv my-{1..5}.jpg /path/to/dir/ ฉันจะทำสำเนาไฟล์หนึ่งไฟล์ได้อย่างง่ายดาย 5 ครั้งได้อย่างไร # doesn't work $ cp my.jpg my-{1..5}.jpg เป็นไปได้หรือไม่ที่จะไม่ใช้ a for loop?
13 bash 

1
เริ่มเปลือก bash (cygwin) ด้วยเส้นทางที่ถูกต้องโดยไม่ต้องเปลี่ยนไดเรกทอรี
ฉันต้องรันเชลล์สคริปต์ cygwin โดยไม่ต้องเปลี่ยนไดเรกทอรีทำงานจากนอกสภาพแวดล้อม cygwin หากฉันเรียกใช้เพียงแค่\path\to\bash.exe -c commandนั้นเส้นทางจะไม่ได้รับการตั้งค่าอย่างถูกต้องและโปรแกรม cygwin ไม่พบ หากฉันใช้--loginตัวเลือกให้bashตั้งค่าเส้นทางอย่างถูกต้อง แต่เปลี่ยนเป็นโฮมไดเร็กตอรี่ของฉันด้วย ฉันควรใช้ตัวเลือกใดในการเรียกใช้ bash เพื่อเก็บไดเรกทอรีการทำงานปัจจุบันและยังพบว่าสามารถเรียกใช้งาน cygwin ได้อีกด้วย

5
bash: รันคำสั่งที่กำหนดใน commandline และไม่ออก
ฉันจะระบุคำสั่งบน commmandline ของ bash ได้อย่างไรซึ่งจะดำเนินการครั้งเดียวภายใน bash ใหม่หลังจากอ่าน ~ / .bashrc - แต่ทั้งหมดนี้โดยไม่ให้ bash exit หลังจากคำสั่งเสร็จสิ้น? ฉันเล่นซอกับ "boot-up-configuration" สำหรับterminatorที่ตัวแยกบางตัวควรเริ่มบางแอปพลิเคชั่น (vim, mutt, irrsi) หลังจากเริ่มทำงาน แต่ฉันยังต้องการเปลือกหอยปกติในพื้นหลัง (ctrl-z และอื่น ๆ ... ) ดังนั้นหลังจากออกจากแอปพลิเคชันฉันมีเปลือกเดียวกันซึ่งฉันมีในช่วงอายุการใช้งาน eapplications ... อะไรไม่ทำงานสำหรับฉัน (ขึ้นอยู่กับคำตอบที่ได้รับ) ( bash; vim ) # vim waits for the exit of bash... bash -c vim # bash …
13 bash  boot  bashrc  terminator 

3
Ctrl + A ไม่ทำงานใน Bash Terminal บน OS X Lion
ในทุบตี windows โดยใช้ Terminal.app บน OS X Lion ฉันไม่สามารถใช้ctrl+ Aเป็นทางลัดสำหรับไปที่จุดเริ่มต้นของบรรทัดคำสั่ง ctrlตัวละครอื่น ๆเช่นctrl+ Eไม่ทำงานอีกต่อไป ความคิดใด ๆ

2
เป็นไปได้หรือไม่ที่จะรันสคริปต์ทุบตีในประเภทของ sandbox?
ผลิตภัณฑ์ของเรามีความจำเป็นต้องเรียกใช้งานสคริปต์ทุบตีที่ไม่รู้จักบนเซิร์ฟเวอร์ที่ละเอียดอ่อนเพื่อให้บรรลุเป้าหมายที่แน่นอน สคริปต์ทุบตีนี้จัดทำโดยผู้ใช้ เรามีความสนใจในการทำให้มั่นใจว่าคำสั่งเฉพาะที่ได้รับอนุญาตและอื่น ๆ ทั้งหมดไม่ได้ นอกจากนี้เราต้องแทนที่คำสั่งบางคำด้วยคำสั่งอื่น ตัวอย่างเช่นเราต้องการรันสคริปต์และอนุญาตคำสั่งต่อไปนี้: echo cat awk แต่ไม่อนุญาตคำสั่งอื่น ๆ (เราไม่ต้องการให้รายการที่เฉพาะเจาะจงที่นี่) นอกจากนี้หากสคริปต์มีคำสั่ง cp เราต้องการรวบรวมและเปลี่ยนเส้นทางไปยังคำสั่งอื่น (ซึ่งสามารถทำได้โดยใช้นามแฝง) มีความคิดอย่างไรที่จะทำเช่นนี้?
13 bash 

3
Windows 10 bash และ mintty
ฉันเพิ่งติดตั้งระบบย่อย Linux ใหม่ใน Windows 10 เป็นเรื่องดีจริง ๆ ที่มีการเข้าถึงที่เก็บ Ubuntu แต่ฉันเกลียดโปรแกรมเทอร์มินัลเริ่มต้นอย่างแน่นอน Cygwin มาพร้อมกับ MinTTY ซึ่งดีมากและใช้งานได้ดีมาก แต่ฉันไม่พบแพ็คเกจแบบสแตนด์อโลนสำหรับ MinTTY มีวิธีในการทำให้ MinTTY เป็นเทอร์มินัลเริ่มต้นสำหรับ WSL เมื่อเรียกใช้ทางลัดใด ๆ แก้ไข: เพื่อความชัดเจนฉันไม่ต้องการติดตั้ง Cygwin ฉันต้องการใช้ระบบย่อย Linux ใหม่และ bash shell ของมัน แต่ฉันต้องการใช้มินต์เป็นเทอร์มินัลของฉัน

1
การใช้ sed เพื่อเปิดใช้งานไฟล์. htaccess ใน Apache config
ฉันกำลังพยายามจัดเตรียมกล่องเก็บข้อมูลของ Ubuntu Vagrant โดยอัตโนมัติด้วยสคริปต์ Bash ทุกอย่างดี แต่ฉันมีปัญหากับการกำหนดค่า Apache เพื่อให้แทนที่จาก.htaccessไฟล์ ในไฟล์ปรับแต่งของฉันมีบล็อกดังต่อไปนี้: <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ทั้งหมดที่ฉันต้องการจะทำคือแทนที่ด้วยAllowOverride None AllowOverride allดูเหมือนว่าจะเป็นงานสำหรับsedแต่มี<Directory>บล็อกอื่น ๆในไฟล์ปรับแต่งนี้ที่ฉันไม่ต้องการให้มีการแทนที่ ฉันจะใช้ sed เพื่อแทนที่สตริงเฉพาะด้วยสตริงใหม่ได้อย่างไรเมื่อสตริงที่ระบุนั้นเกิดขึ้นระหว่างสองสตริงที่ระบุอื่น ๆ กล่าวอีกนัยหนึ่งฉันจะแทนที่AllowOverride Noneเฉพาะเมื่อมันปรากฏระหว่าง<Directory /var/www/>และ</Directory>? ฉันสามารถใช้คำสั่งต่อไปนี้เพื่อรับบล็อกที่ฉันสนใจ: sed -n '/<Directory \/var\/www\/>/,/<\/Directory>/p' 000-default

4
echo newline character ไม่ทำงานในการทุบตี
ฉันมีสคริปต์ทุบตีซึ่งมีจำนวนมากechoงบและฉัน aliased echoการecho -eทั้งใน.bash_profileและ.bashrcเพื่อให้สายใหม่จะมีการพิมพ์อย่างถูกต้องสำหรับคำสั่งเช่นecho 'Hello\nWorld'การส่งออกที่ควรจะเป็น Hello World แต่ผลลัพธ์ที่ฉันได้รับคือ Hello\nWorld ฉันลองใช้shopt -s expand_aliasesในสคริปต์มันก็ไม่ได้ช่วยอะไร ฉันใช้สคริปต์ของฉันเป็นbash /scripts/scriptnm.sh; ถ้าฉันเรียกใช้ในขณะที่. /scripts/scriptnm.shฉันได้รับผลลัพธ์ที่ต้องการ ...
13 linux  bash  shell  script 

2
ฉันจะตรวจสอบประวัติคำสั่งผู้ใช้ใน Unix ได้อย่างไร?
ฉันรู้ว่าคำสั่ง 'history' ให้รายการของคำสั่งที่ฉันพิมพ์ลงในเทอร์มินัล Unix ฉันจะดูประวัติคำสั่งสำหรับผู้ใช้ทั้งหมดที่เข้าสู่ระบบในปัจจุบันได้อย่างไร?
13 linux  bash  unix  terminal  history 

3
หยุด Mac ไม่ให้ทำงานขณะที่สคริปต์ทุบตีทำงานอยู่จากนั้นปล่อยให้เครื่องเข้าสู่โหมดสลีปตามปกติเมื่อเสร็จสิ้น
ฉันมี Mac ของฉันให้ตื่นขึ้นมาในตอนกลางคืนและเรียกใช้ rsync เพื่อสำรองข้อมูล สิ่งนี้ถูกกำหนดค่าผ่านตัวประหยัดพลังงาน> กำหนดเวลา อย่างไรก็ตามดูเหมือนว่ามันจะกลับไปนอนก่อนที่จะสามารถทำอะไรได้ดังนั้นฉันต้องหยุดการทำงานระหว่างการดำเนินการของสคริปต์ทุบตีที่ rsync ทำงาน ฉันคิดว่าวิธีที่ดีที่สุด (ถ้าเป็นไปได้) คือการออกคำสั่งให้ตั้งเวลาพักเป็น "ไม่เคย" หรือหมดเวลานานมากก่อนที่จะ rsyncs แล้วกลับสู่ปกติเมื่อมันเสร็จสมบูรณ์ มีวิธีแก้ปัญหาที่ดีกว่าสำหรับการทำสิ่งนี้หรือไม่?
13 mac  bash  sleep  rsync 

2
Ctrl-e และ Ctrl-a ไม่ทำงานบน Ubuntu Hardy หรือไม่
ฉันใช้ Mac ดังนั้นฉันจึงไม่มีHomeและEndแป้นบนแป้นพิมพ์ ฉันยัง SSH เซิร์ฟเวอร์ Linux ค่อนข้างน้อย ฉันพบว่าเมื่อฉัน SSH ไปยังเซิร์ฟเวอร์ Ubuntu Linux ที่ใช้ Jaunty ฉันสามารถใช้การโยงคีย์ - การผูกCtrl- aและCtrl- eเพื่อเลื่อนเคอร์เซอร์ไปที่จุดเริ่มต้นหรือจุดสิ้นสุดของบรรทัด แต่มีเซิร์ฟเวอร์ Hardy สองสามตัวที่ฉันมักจะ SSH ไปยังและการเชื่อมโยงคีย์เหล่านั้นไม่ทำงานเมื่อเชื่อมต่อกับพวกเขา ฉันได้ลองเชื่อมต่อกับพวกเขาจากกล่อง Linux แทนในกรณีที่มันเป็นสิ่งที่ต้องทำเกี่ยวกับวิธีการกำหนดค่า Mac Terminal ของฉันและฉันเห็นผลลัพธ์เดียวกัน ไม่มีใครมีความคิดว่าทำไมและวิธีการแก้ไขปัญหานี้หรือไม่
13 linux  bash  shell  readline 

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