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

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

1
ฉันไม่สามารถสะท้อนเสียงของสตริงที่ผสมกันลงในไฟล์
บรรทัดนี้ใช้งานได้ตามที่คาดหวังด้วยตัวมันเอง (echo '@$X!'; sleep 3; echo '@$X!') และฉันต้องแทรกบรรทัดนี้ในไฟล์โดยใช้คำสั่งต่อไปนี้ แต่มันไม่ทำงาน echoคำสั่ง 'ed จะต้องปฏิบัติการ echo "(echo '@$X!'; sleep 3; echo '@$X!') | mycmd" >> a มันกลับข้อผิดพลาดนี้ sh: !': event not found ฉันเข้าใจว่าการสะท้อนสตริงระหว่างเครื่องหมายคำพูดเดี่ยวยับยั้ง substituion ตัวแปรหรือการหลบหนีของอักขระ แต่ฉันไม่สามารถใช้สิ่งนั้นเพื่อแก้ปัญหานี้! ฉันต้องทำมันผ่านคำสั่งเพราะฉันจะส่งมันผ่านเครื่องมือเพื่อแก้ไขไฟล์โดยใช้โปรแกรมแก้ไขไม่ได้เป็นตัวเลือกสำหรับฉัน
3 bash  echo 

2
ผนวก dir ไปที่ PATH
ฉันพยายามที่จะ localy เพิ่ม dir ให้กับ$PATHตัวแปรทั่วโลก .bashrcฉันจะเพิ่มต่อไปนี้เพื่อฉัน export PATH=$PATH:$VRS/bin แต่PATHดูเหมือนว่าจะได้รับการเชื่อมต่อกับตัวเองซ้ำแล้วซ้ำอีกทุกครั้งที่ฉันเปิดเปลือก (เช่นการPATHเจริญเติบโต) ความคิดใด ๆ

3
วิธีการเริ่มต้นสคริปต์เชลล์หลายตัวเมื่อเริ่มต้น
ฉันมีเชลล์สคริปต์หกตัวที่ฉันเริ่มต้นเมื่อฉันลงชื่อเข้าใช้เชลล์สคริปต์จะเริ่มต้นด้วยสคริปต์ Python ที่ออกไปและขูดสิ่งต่าง ๆ จากเน็ตเช่นหัวข้อข่าวข้อมูลสภาพอากาศ ฯลฯ ซึ่งฉันเพิ่มลงในเดสก์ท็อปของฉันผ่านทางคอนกี้ ปัญหากำลังเริ่มต้นเชลล์สคริปต์เหล่านี้ทุกครั้งเป็นความเจ็บปวดที่แท้จริง ฉันค้นหาและลองทำบางสิ่ง แต่ดูเหมือนว่าจะไม่ทำงาน ใครบางคนที่นี่สามารถหลั่งน้ำตาแสงบนวิธีที่ดีที่สุดที่จะทำสิ่งนี้ได้โปรด โดยวิธีที่ฉันไม่สามารถรวมเชลล์สคริปต์ในไฟล์เดียวเพราะพวกเขาทั้งหมด 'สลีป' ในช่วงเวลาที่แตกต่างกันหลังจากใช้คำสั่งเริ่มต้น ขอบคุณ - แก้ไข (เพิ่มความคิดเห็นต่อไปนี้) - สคริปต์ทั้งหมดมีรูปแบบต่อไปนี้: #!/bin/bash while true; do python /home/scott/debkaget.py > /home/scott/debka.txt sleep 120 done สามารถเพิ่มเข้าไปในโปรไฟล์ได้หรือไม่ ฉันต้องการด้านการนอนหลับไป ฉันกำลังใช้ KDE 4.9
3 bash 

1
วิธีการผูกลูกศรใน ~ / .inputrc (readline) สำหรับโหมด vim insert?
เมื่ออยู่ใน Readline แอพที่เปิดใช้งานโหมด vim ใน ~ / .inputrc ( set editing-mode vi) มีวิธีผูก<Up>ปุ่มลูกศรในvi-insertโหมดหรือไม่? เพื่อแสดงรายการประวัติก่อนหน้าเช่น ดูเหมือนว่าฉันจะต้องกดปุ่ม ESC ก่อนแล้วจึงใช้งานได้ นี่คือความพยายามของฉันที่ทำให้มันใช้งานได้ (~ / .inputrc): $if mode=vi # INSERT MODE set keymap vi-insert "\e[A": history-search-backward # up-arrow "\e[B": history-search-forward # down-arrow นอกจากนี้ยังทราบว่าเมื่อกดCtrl+vแล้วจะพิมพ์<Up>^[[A ฉันจัดการเพื่อให้มันทำงานเหมือนที่ฉันต้องการใน zsh: http://paulgoscicki.com/archives/2012/09/zsh-vi-mode-with-emacs-keybindings/

1
แก้ไขคำสั่งปัจจุบันในโหมด Zsh Vi
ดังนั้นฉันรู้ว่าคุณสามารถตั้งค่าโหมด vi ในทุบตีด้วย set -o vi ฉันก็รู้ว่าคุณสามารถตั้งค่าโหมด vi ใน zsh ด้วย bindkey -v โหมด vi vในทุบตีมีคุณสมบัติที่ดีที่ช่วยให้คุณสามารถแก้ไขคำสั่งที่คุณกำลังทำงานในโปรแกรมแก้ไขเสียงเรียกเข้าแบบเต็มรูปแบบออกโดยการกด มีวิธีแก้ไขคำสั่งเช่นนี้ใน zsh หรือไม่?
3 linux  command-line  bash  vim  zsh 

2
วิธีการลบ $ PATH echo ใน Mac
หลังจากที่ฉันเปลี่ยนชื่อผู้ใช้ Mac ของฉัน (โดยใช้วิธีการที่กำหนดโดยเอกสาร Apple) ฉันพบว่าเมื่อใดที่echo $PATHมีเส้นทางเก่าในนั้น /usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/Cellar/tomcat/7.0.42/bin:/Users/WaterWood/eclipse/android-sdk-macosx/platform-tools/:/Users/majie/.rvm/bin WaterWood เป็นชื่อผู้ใช้เก่าของฉันและไม่มีอยู่อีกต่อไป (ฉันลบโฟลเดอร์ "/ ผู้ใช้ / WaterWood" ด้วย) ฉันตรวจสอบไฟล์กำหนดค่าทั้งหมดเช่น. bashrc, .bash_profile, .zshrc, / etc / path, /etc/paths.d/ แต่ไม่พบอะไรเลยกับ "/ User / WaterWood" วิธีลบเหล่านี้ออกจาก $ PATH ของฉัน ขอบคุณ ================ ปรับปรุง: ครั้งแรกฉันคิดว่ามันเป็นข้อผิดพลาดของ oh-my-zsh และฉันติดตั้งใหม่ มันทำงานได้ดี แต่เมื่อฉันเข้าสู่ระบบอีกครั้งปัญหาจะปรากฏขึ้นอีกครั้ง เปลี่ยนเชลล์ระบบเป็น zsh (ในการกำหนดค่าตามความชอบระบบ), รัน / usr / libexec …
3 macos  bash  path  zsh 

3
เหตุใดจึงไม่ใช้การวนซ้ำ
นี่เป็นบน Ubuntu 12.04 ฉันพยายามหาวิธีรับ ffmpeg เพื่อทำการแปลงแบบ FLAC เป็น MP3 แบบเรียกซ้ำ ถ้าฉันcdเป็นไดเรกทอรีและใช้ for f in *.flac; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%flac/mp3}"; done ที่ใช้งานได้ดีอย่างสมบูรณ์แบบ อย่างไรก็ตามเมื่อฉันลองสิ่งนี้มันไม่ทำงาน: for f in "$(find . -type f -name *.flac)"; do ffmpeg -i "$f" -c:a libmp3lame -q:a 2 "${f/%flac/mp3}"; done มันไม่ได้ทำให้เกิดข้อผิดพลาดที่เป็นประโยชน์ (แต่นี่คือผลลัพธ์ต่อไปไม่จำเป็นต้องบ่น): evilsoup@enchantment:~/Music/Jean Sibelius$ …

1
เชลล์ลำดับการเปลี่ยนเส้นทางสตรีมมาตรฐานหรือ 2> & 1 1> / dev / null เทียบกับ 1> / dev / null 2> & 1
ใครช่วยอธิบายความแตกต่างได้ไหม บางคนคิดว่าเป็นแนวปฏิบัติที่ดีที่สุดหรือไม่? ถ้าฉันจำถูกต้องฉันอย่างนั้นอ่านดังนั้นสิ่งนี้1>/dev/nullควรนำหน้านี้:2>&1 ls -al /doesNotExists 2>&1 1>/dev/null ls -al /doesNotExists 1>/dev/null 2>&1 ls -al /doesNotExists 1>&2 2>/dev/null ls -al /doesNotExists 2>/dev/null 1>&2 ls -la /doesNotExists 2<&1 1>/dev/null ls -la /doesNotExists 2<&1 2>/dev/null ls -la /doesNotExists 1<&2 1>/dev/null ls -la /doesNotExists 1<&2 2>/dev/null ls -la /doesNotExists 1>/dev/null 2<&1 ls -la …

1
วิธีการเขียนสคริปต์เพื่อ sudo คำสั่งสุดท้าย [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว: เทอร์มินัล: คำนำหน้าคำสั่งก่อนหน้า? 4 คำตอบ โดยปกติสำหรับคำสั่งบางอย่างเช่นapt-get install xxxฉันลืมที่จะเพิ่มsudoก่อนจากนั้นฉันต้องพิมพ์อีกครั้ง resudoสิ่งที่ผมต้องการคือในกรณีดังกล่าวผมเพียงแค่พิมพ์คำสั่งง่ายๆเช่น sudo apt-get install xxxมันจะคำสั่ง sudo ล่าสุดของฉัน เป็นไปได้ในการทุบตี?
3 linux  bash  sudo 

0
วิธีการส่ง trackback ไปยังเอกสาร arXiv จากบล็อก Jekyll?
ขออภัยคำถามของฉันถูกส่งจาก Academia.SE ที่นี่โดยผู้ดูแลระบบ หากมีสถานที่ที่ดีกว่าที่จะถามคำถามนี้โปรดแจ้งให้เราทราบด้วย ฉันเพิ่งสังเกตเห็นว่าเว็บไซต์ arXiv.org อนุญาตให้ลิงก์ย้อนกลับจากบล็อกที่มีการกล่าวถึงกระดาษ arXiv บนหน้าบทคัดย่อของกระดาษ หน้าความช่วยเหลือโดยทั่วไปกล่าวว่าเพื่อให้การเชื่อมโยงการติดตามข้อมูลที่ปรากฏบนหน้า arXiv นามธรรมกระดาษหนึ่งเพียงต้องการที่จะส่ง URL พิเศษการจัดรูปแบบการติดตามข้อมูลกับพวกเขาและบางเว็บไซต์บล็อกเช่น WordPress จริงสามารถทำได้โดยอัตโนมัติ มันดูน่าสนใจที่มีการโพสต์บล็อกของฉันเชื่อมโยงในหน้ากระดาษ arXiv ของฉันเพื่อให้คนพูดคุยเกี่ยวกับงานของฉันในส่วนความคิดเห็นบล็อกของฉัน ปัญหาคือฉันใช้Jekyllเพื่อสร้างโพสต์บล็อกของฉันและไม่ได้เห็นคำแนะนำใด ๆ เกี่ยวกับวิธีการส่งโควต้าการติดตามไปยัง arXiv จาก Jekyll โพสต์บล็อกที่สร้างขึ้น ใครมีประสบการณ์เกี่ยวกับเรื่องนี้? ฉันสามารถยกตัวอย่างว่าฉันได้ลองทำภารกิจนี้อย่างไร ฉันต้องการเชื่อมโยงโพสต์บล็อกของฉันกับกระดาษ arXivและฉันสามารถสร้างไฟล์ xml ต่อไปนี้: <?xml version="1.0" encoding="iso-8859-1"?> <methodCall> <methodName>pingback.ping</methodName> <params> <param> <value> <string>http://i2000s.github.io/2016/02/17/SQuInT-workshop-2016.html</string> </value> </param> <param> <value> <string>http://arxiv.org/abs/1509.02625</string> </value> </param> </params> </methodCall> …
3 bash  website  xml  jekyll 

3
ฉันจะ จำกัด จำนวนไดเรกทอรีในพรอมต์ของฉันได้อย่างไร
ใน Mac OS X 10.6 ของฉันฉันได้ตั้งค่าพรอมต์เป็น PS1='\[\033[01;32m\][\w\[\033[00m\]\[\033[01;34m\]$(__git_ps1 " (%s)")\033[01;32m\]]\[\033[00m\]\$ ' ฉันจะ จำกัด จำนวนไดเรกทอรีในพรอมต์ของฉันได้อย่างไร \wส่วนหนึ่ง? นี่เป็นเพราะเมื่อฉันเข้าไปลึกลงไปในทรีของไดเรคทอรีพรอมต์ก็จะทำให้ความกว้างทั้งหมดของเทอร์มินัล
3 bash  prompt 

2
การเปลี่ยนชื่อเซสชัน
ในทุบตีฉันสามารถเริ่มหน้าจอชื่อโดยทำ screen -S test ถ้าฉันพิมพ์ ctrl-a A new_screen_name มันเพียงเปลี่ยนชื่อของหน้าจอ เมื่อฉันทำ screen -r ฉันเห็นชื่อเซสชันยังคงเหมือนเดิม

1
ฉันจะเรียกใช้ dd เร็วที่สุดได้อย่างไร
ฉันกำลังเรียนรู้bashและอะไรที่ทำให้เกิดความสับสนในหลายๆวิธีมีหลายวิธีในการเขียนไดรฟ์หรือถ่ายโอนข้อมูลจาก / ไปยังหนึ่ง ( shredเทียบddกับpvvs catvs teeและอื่น ๆ ) ฉันจมอยู่แล้ว สำหรับตอนนี้ฉันเลือกอย่างไม่เต็มใจddเนื่องจากดูเหมือนว่าจะมีตัวเลือกบรรทัดคำสั่งที่ดีที่สุดสำหรับทั้งสองการใช้งาน ระบุว่าฉันต้องการให้แน่ใจว่าฉันใช้มันอย่างมีประสิทธิภาพที่สุด ฉันเข้าใจว่าโดยค่าเริ่มต้นddจะรันด้วยขนาดบล็อก 512 ไบต์และการเพิ่มขนาดนี้จะเป็นดังนี้: dd if=/dev/zero of=/dev/sdX bs=3M status=progress ... จะทำให้มันเขียนบล็อกที่ใหญ่ขึ้นและทำเวลาน้อยลงดังนั้นจึงทำให้ทำงานได้เร็วขึ้น แต่ถ้าเพียงตั้งขนาดบล็อกที่ใหญ่กว่าจะทำให้คำสั่งทำงานได้เร็วขึ้นสิ่งใดที่ทำให้ฉันbs=3Gไม่สามารถใช้งานได้ มีข้อเสียอะไรบ้างถ้ามี? ขนาดบล็อกที่ดีที่สุดของ Linux superusers จะแนะนำให้ใช้คืออะไร?
3 linux  bash  dd 

2
ฉันจะปรับโครงสร้างโค้ด bash นี้เพื่อให้ฉันสามารถแสดงความคิดเห็นในแต่ละคำสั่งได้อย่างไร
ฉันมีสายของการทุบตี: SAMPLES=$(for f in `find $IN -iname *fastq.gz `; do basename $f | cut -c 1-4; done | sort | uniq) ซึ่งฉันพยายามแบ่งออกเป็นหลายบรรทัดเพื่อจุดประสงค์ในการแสดงความคิดเห็นแต่ละข้อ ฉันต้องการสิ่งต่อไปนี้พร้อมความคิดเห็นในแต่ละบรรทัดหรือหลังบรรทัด: SAMPLES= #comment $(for f in `find $IN -iname *fastq.gz `; \ #comment do basename $f | #comment cut -c 1-4; done | #comment sort | #comment uniq) …
3 bash  comments 

0
ไม่สามารถติดตั้ง linux-libc-dev บน WSL / Bash บน Ubuntu บน Windows
ฉันพยายามติดตั้ง linux-libc-dev บน Bash บน Ubuntu บน Windows (ระบบย่อย Windows สำหรับ Linux) นี่คือการแก้ไขข้อผิดพลาดทุบตีก่อนหน้านี้: The following packages have unmet dependencies: libc6-dev : Depends: linux-libc-dev but it is not going to be installed E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). ฉันพยายามแก้ไขแพ็คเกจที่เสียหายผ่านsudo apt-get -f install: Unpacking …

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