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

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

2
xclip บนเซิร์ฟเวอร์ headless
ฉันใช้ xclip เพื่อคัดลอกผลลัพธ์ของคำสั่ง bash ดังนี้: pwd | tr -d "\n" | xclip -selection c เพื่อให้ฉันสามารถวางผลลัพธ์ลงในเซสชันเทอร์มินัลอื่น ฉันพยายามที่จะใช้มันบนเซิร์ฟเวอร์ที่ไม่มีส่วนหัว (ubuntu 13.04) ซึ่งเริ่มต้นโดยไม่มี x มันไม่ทำงานกับข้อผิดพลาด: Error: Can't open display: (null) มีวิธีแก้ไขไหม ฉันรู้ว่าการเห็นว่าโปรแกรมเรียกว่า xclip อาจไม่สามารถทำได้

7
วิธีการแก้ปัญหาทั่วไปเพื่อป้องกันไม่ให้งาน cron ยาวทำงานในแบบคู่ขนาน?
ฉันกำลังมองหาโซลูชันที่เรียบง่ายและทั่วไปที่จะช่วยให้คุณสามารถรันสคริปต์หรือแอปพลิเคชันใด ๆ ใน crontab และป้องกันไม่ให้ทำงานสองครั้ง การแก้ปัญหาควรเป็นอิสระในคำสั่งดำเนินการ ฉันคิดว่ามันควรจะดูเหมือนว่าlock && (command ; unlock)ที่ล็อคจะกลับเท็จถ้ามีล็อคอื่น ส่วนที่สองจะเป็นเช่นนั้นหากได้รับการล็อกให้เรียกใช้คำสั่งและปลดล็อกหลังจากดำเนินการคำสั่งแม้ว่าจะส่งกลับข้อผิดพลาด
27 bash  cron 

8
วิธีพิมพ์ข้อความในเทอร์มินัลราวกับว่ากำลังพิมพ์อยู่?
ฉันมีechoงานพิมพ์ง่าย ๆที่ฉันเพิ่มไว้ใน.bashrc: echo "$(tput setaf 2)Wake up....." sleep 2s reset sleep 2s echo "$(tput setaf 2)Wake up....." sleep 2s reset echo "$(tput setaf 2)Wake up neo....." sleep 2s echo "$(tput setaf 2)The Matrix has you......" sleep 2s reset echo "$(tput setaf 2)Follow the white rabbit......" sleep 2s reset cmatrix สิ่งนี้พิมพ์ข้อความไปที่เทอร์มินัล …

4
คัดลอกพรอมต์เทอร์มินัลปัจจุบันไปยังคลิปบอร์ด
มีวิธีการคัดลอกเนื้อหาที่เป็นลายลักษณ์อักษรในปัจจุบันของ bash prompt หรือไม่ พูดว่าฉันเขียนว่า: ping www.google.com เพื่อให้บรรทัดในเทอร์มินัลมีลักษณะดังนี้: petr@sova:~$ ping www.google.com และยังไม่ตีกลับ ฉันต้องการคัดลอกข้อความไปยังคลิปบอร์ด เป็นไปได้ไหม usecase ปกติจะกดปุ่มหลายครั้งและค้นหาคำสั่งที่ฉันต้องการคัดลอก

3
วิธีการคืนค่าไฟล์. bashrc
เทอร์มินัลจะแสดงสิ่งนี้เมื่อเปิด: bash: /home/atlas/.bashrc: line 73: syntax error near unexpected token `[' bash: /home/atlas/.bashrc: line 73: `if [ -x /usr/bin/dircolors ] ; then ' ฉันพยายามแก้ไขโดยใช้: cp /ect/skel/.bashrc ~/ และฉันได้รับสิ่งนี้: cp: cannot stat `/ect/skel/.bashrc': No such file or directory ฉันไม่แน่ใจว่าทำไมสิ่งนี้ถึงทำเช่นนี้และวิธีแก้ไข ก่อนหน้านี้ฉันเคยอยู่ใน.bashrcไฟล์ส่งเสียงไปรอบ ๆ และเห็นได้ชัดว่าฉันทำอะไรบางอย่างผิดพลาด สิ่งที่ฉันต้องการทำคือการคืนค่า.bashrcไฟล์เป็นการตั้งค่าเริ่มต้น
27 bash  bashrc  restore 



4
ฉันจะค้นหาไฟล์ PDF จากบรรทัดคำสั่งได้อย่างไร
ฉันกำลังตรวจสอบการอ้างอิงของกระดาษและต้องการค้นหาตำแหน่งในร่างกายที่มีการอ้างอิงบางกระดาษ (ในรายการอ้างอิง) มีโปรแกรมแก้ไข PDF ที่รองรับการค้นหาผ่าน bash และแยกบริบทของตำแหน่งหรือไม่ ฉันพยายามแปลง PDF เป็นข้อความ แต่ไม่ได้ผลลัพธ์ที่ดี

8
ฉันจะสร้างไฟล์สถานะ dpkg ที่เสียหายได้อย่างไร
เมื่อใดก็ตามที่ฉันพิมพ์sudo apt-get removeแล้วกดTabปุ่มสำหรับการเติมข้อความอัตโนมัติฉันจะได้รับข้อความต่อไปนี้: grep-status: /var/lib/dpkg/status:15945: expected a colon . ฉันไม่เห็นอะไรแปลก ๆ โดยเฉพาะอย่างยิ่งที่บรรทัด 15945 ในไฟล์สถานะ มันเป็นตัวละครจุดในฟิลด์คำอธิบายของแพคเกจห้องสมุดโมโนและการแทรกโคลอนไม่ได้ช่วย การลบบรรทัดที่มีจุดนั้นไม่สามารถทำได้ การเขียนทับไฟล์ด้วยสถานะเก่าทำให้เกิดข้อความเดียวกัน มีวิธีสร้างไฟล์สถานะอีกครั้งหรือไม่?
26 bash  dpkg 

1
ฉันจะดูประวัติของคำสั่งที่รันใน tmux ได้อย่างไร?
ฉันใช้เซิร์ฟเวอร์ 12.04 และเมื่อฉันพิมพ์ประวัติลงใน bash ฉันเห็นคำสั่งส่วนใหญ่ที่ฉันป้อนลงใน bash แต่ฉันไม่เห็นคำสั่งที่ฉันป้อนเมื่ออยู่ในเซสชัน tmux ฉันจะดูประวัติคำสั่งที่ฉันเรียกใช้ภายในเซสชัน tmux บนเซิร์ฟเวอร์ Ubuntu 12.04 หลังจากฉันสิ้นสุดเซสชันได้อย่างไร
26 bash  tmux 

2
การทำความเข้าใจ. bashrc และ. bash_profile
บนเซิร์ฟเวอร์เมื่อฉันเข้าสู่ระบบในฐานะ root ฉันเห็น.bashrc(Ubuntu 10.10) สำหรับ Mac ของฉันฉันมี .bash_profile Ubuntu มี.bashrcไฟล์อยู่.bash_profileหรือไม่ (ฉันแค่สับสนดังนั้นถามฉันรู้ว่าพวกเขาจะแตกต่างกันของ o / s แต่อาจจะมีความสัมพันธ์อย่างใด?) บนเซิร์ฟเวอร์ของฉันฉันต้องการสร้างชื่อแทนฉันควรใส่ไว้ใน.bashrcอะไร ถ้าฉันต้องการให้นามแฝงนี้ถูกใช้เพื่อให้ผู้ใช้ทุกคนสามารถใช้ได้
26 bash  alias 

4
$ # หมายถึงอะไรในการทุบตี?
ฉันมีสคริปต์ในไฟล์ชื่ออินสแตนซ์: echo "hello world" echo ${1} และเมื่อฉันเรียกใช้สคริปต์นี้โดยใช้: ./instance solfish ฉันได้ผลลัพธ์นี้: hello world solfish แต่เมื่อฉันวิ่ง: echo $# มันบอกว่า "0" ทำไม? ฉันไม่เข้าใจความ$#หมาย กรุณาอธิบาย
26 bash 

4
แยกความแตกต่างของการเข้าสู่ระบบอินเทอร์แอคทีฟและเชลล์ที่ไม่ใช่ของอินเทอร์แอคทีฟ
ฉันกำลังพยายามแยกความแตกต่างของการเข้าสู่ระบบสี่คำที่ไม่ใช่การเข้าสู่ระบบแบบโต้ตอบและไม่โต้ตอบ : แบบโต้ตอบ - เชลล์ล็อกอิน แบบโต้ตอบ - เชลล์ที่ไม่ใช่การล็อกอิน ไม่ใช่แบบโต้ตอบ - ล็อกอินเชลล์ ไม่ใช่แบบโต้ตอบ - เชลล์ที่ไม่ได้ล็อกอิน ที่ฉันเข้าใจ แบบโต้ตอบ - เข้าสู่ระบบเชลล์ : เริ่มต้นระบบเข้าสู่ระบบและเปิดเทอร์มินัลและ ไม่โต้ตอบ - เข้าสู่ระบบเชลล์ : telnet กับระบบและเข้าสู่ระบบ แต่สิ่งที่เกี่ยวกับเปลือกโต้ตอบ - เข้าสู่ระบบ? มันเข้าสู่ระบบเปิด terminal เสมือนและเข้าสู่ระบบ? และ ไม่ใช่แบบโต้ตอบ - ไม่ใช่เชลล์, มันใช้สคริปต์อัตโนมัติใน crontab หรือไม่?
25 bash  login 

4
ตัวแปร $ BASH_COMMAND ดีอย่างไร
ตามคู่มือ Bashตัวแปรสภาพแวดล้อมBASH_COMMANDมี คำสั่งที่กำลังดำเนินการหรือกำลังจะถูกดำเนินการยกเว้นว่าเชลล์กำลังดำเนินการคำสั่งเป็นผลมาจากกับดักซึ่งในกรณีนี้มันเป็นคำสั่งที่ดำเนินการในเวลาที่กับดัก การเอามุมของมุมกับดักนั้นไว้ถ้าฉันเข้าใจถูกต้องนี่หมายความว่าเมื่อฉันรันคำสั่งตัวแปรจะBASH_COMMANDมีคำสั่งนั้นอยู่ ไม่ชัดเจนว่าตัวแปรนั้นไม่มีการตั้งค่าหลังจากการดำเนินการคำสั่ง (กล่าวคือเป็นเพียง avaialble ขณะที่คำสั่งกำลังทำงาน แต่ไม่ใช่หลังจาก) แม้ว่าจะมีใครโต้แย้งว่าเป็นเพราะ "คำสั่งที่กำลังดำเนินการอยู่หรือกำลังจะถูกดำเนินการ" มันไม่ใช่คำสั่งที่เพิ่งถูกเรียกใช้งาน แต่ให้ตรวจสอบ: $ set | grep BASH_COMMAND= $ ว่างเปล่า ฉันคาดว่าจะเห็นBASH_COMMAND='set | grep BASH_COMMAND='หรืออาจจะเป็นเพียงBASH_COMMAND='set'แต่ว่างเปล่าทำให้ฉันประหลาดใจ ลองทำอย่างอื่น: $ echo $BASH_COMMAND echo $BASH_COMMAND $ ดีที่ทำให้รู้สึก ผมรันคำสั่งecho $BASH_COMMANDและตัวแปรมีสตริงBASH_COMMAND echo $BASH_COMMANDทำไมเวลานี้ถึงใช้งานได้ แต่ไม่ใช่ก่อนหน้านี้ ลองทำsetอีกครั้ง: $ set | grep BASH_COMMAND= BASH_COMMAND='echo $BASH_COMMAND' $ ดังนั้นรอ มันถูกตั้งค่าเมื่อฉันเรียกใช้งานechoคำสั่งนั้นและจะไม่ถูกยกเลิกหลังจากนั้น แต่เมื่อฉันดำเนินการsetอีกครั้งBASH_COMMAND ไม่ได้ตั้งค่าsetคำสั่ง …

2
เหตุใดเครื่องหมายอัศเจรีย์ภายในเครื่องหมายคำพูดคู่จึงทำให้เกิดข้อผิดพลาด Bash
โปรดดูคำสั่งเหล่านี้: $ notify-send SYNC TIME! $ notify-send 'SYNC TIME!' $ notify-send "SYNC TIME!" bash: !": event not found $ สองคำสั่งแรกสร้างบับเบิลการแจ้งเตือนตามที่คาดไว้ ข้อที่สามแสดงข้อผิดพลาด และ $ echo SYNC TIME! SYNC TIME! $ echo 'SYNC TIME!' SYNC TIME! $ echo "SYNC TIME!" bash: !": event not found $ ที่นี่เช่นกันการechoทำงานสำหรับสองคำสั่งแรก แต่ไม่ใช่ในคำสั่งที่สาม ปัญหาเพิ่มเติมที่นี่ (แม้ว่าฉันไม่ได้วางแผนในการใช้นี้): ทั้งสองnotify-send "SYNC!TIME"และให้echo …
25 bash 

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