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

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

3
การเพิ่ม 1 ให้กับตัวแปรไม่ทำงานตามที่คาดไว้ (Bash arithmetic)
ถ้าฉันเขียนสิ่งต่อไปนี้ลงใน bash terminal: A="0012" B=$((A+1)) echo $B ฉันได้ 11, ไม่ใช่ 13 ตามที่คาดไว้ !!!!! ฉันเล่นไปรอบ ๆ และไม่สามารถอธิบายได้เลยหรือหาวิธีเพิ่มจำนวนได้ (จริง ๆ แล้วฉันต้องการที่จะจบลงด้วย B = "0013" และเพิ่มขึ้นหนึ่งครั้งในขณะที่ฉันใช้สิ่งนี้เป็นคำนำหน้าของการสำรองข้อมูลของฉัน)
16 bash 

13
จะย้ายเข้าและออกจากไดเรกทอรีที่ซ้อนกันอย่างรวดเร็วผ่าน CLI ได้อย่างไร
เรารู้ว่าการใช้cd <directory>จะเปิดไดเรกทอรีถ้ามีอยู่! นอกจากนี้cd ..จะเพิ่มระดับหนึ่งจากไดเรกทอรีการทำงานปัจจุบัน แต่เมื่อเรามีผบซ้อนกันมีเส้นทางอีกต่อไปเหมือน/home/thina/teams/td/tech/app/release/apksมันจะเหนื่อยเพียงแค่ไปลงในโฟลเดอร์และมันเป็นเรื่องยากที่จะได้รับกลับไปยังโหนดอื่นพูดนี่apks/home/thina/teams มีวิธีข้ามการพิมพ์cdและcd ..? ฉันใช้ Ubuntu 16.04

2
ฉันจะ zip หลายไฟล์ในบรรทัดคำสั่งได้อย่างไร
ยกโทษให้กับคำถามพื้นฐานที่สุด แต่ฉันไม่สามารถหาคำตอบโดยตรงหรือตัวอย่างง่ายๆในการแลกเปลี่ยนสแต็ค สมมติว่าฉันมีโฟลเดอร์ของไฟล์ที่ฉันต้องการบีบอัดเป็นไฟล์ zip หนึ่งไฟล์ที่ฉันสามารถแบ่งปันกับเพื่อน Windows ที่น่ากลัวของฉันtarได้ ดูเหมือนว่านี้: . ├── file1.txt ├── file2.txt ├── file3.txt ├── file.jpg └── test.jpg สมมติว่าฉันได้zipติดตั้ง: sudo apt-get install zip ฉันเห็นจากman zipที่อนุญาตให้ฉันใช้รายการไฟล์: - รายชื่อไฟล์ @ หากระบุรายการไฟล์เป็น - @ [ไม่ใช่ใน MacOS] zip จะใช้รายการของไฟล์อินพุตจากอินพุตมาตรฐานแทนจากบรรทัดคำสั่ง ตัวอย่างเช่น, zip -@ foo ดังนั้นฉันสร้างzip.lstที่มีลักษณะเช่นนี้: cat zip.lst file1.txt file2.txt file3.txt file.jpg test.jpg และตอนนี้ฉันพยายาม: zip …
16 bash  zip 

4
ความหมายของสัญลักษณ์ `| 'ในเปลือกคืออะไร?
อะไร|เป็นสัญลักษณ์หมายถึงในsudo ps -ef | grep processnameคำสั่ง? ทุกคนสามารถอธิบายคำสั่งนี้ได้ด้วยหรือไม่ ฉันได้ใช้คำสั่งนี้เท่านั้นในการรับ PID และฆ่ากระบวนการที่ แต่ฉันยังเห็นsudo ps -ef | grep processname | grep -v grepและผมรู้สึกว่า-v grepเป็นเหมือนการฆ่าสร้าง PID grepก่อนหน้านี้สำหรับ ถ้าเป็นเช่นนั้นมันทำงานอย่างไร

4
วิธีการแตกพอร์ตที่แมปจากเอาท์พุทของ `docker ps`
ฉันพยายามรับพอร์ตทั้งหมดที่ใช้โดยคอนเทนเนอร์ Docker ด้วยคำสั่งนี้: sudo docker ps | tail -n1 29ba3137f3e2 java8/local:latest "/bin/bash" 3 hours ago Up 3 hours 0.0.0.0:8080->8080/tcp, 0.0.0.0:8443->8443/tcp, 0.0.0.0:32783->5432/tcp, 0.0.0.0:32782->10523/tcp DEMO-20151118124751 เมื่อฉันวิ่งใน terminal ฉันได้รับฉันต้องการ $ sudo docker ps | tail -n1 | awk '{print $12}' 0.0.0.0:32783->5432/tcp, แต่ฉันต้องการพอร์ตที่แมปทั้งหมด เป็นไปได้ไหมที่จะสร้างเชลล์สคริปต์เช่นนี้ #!/bin/bash paramnum=$(sudo docker ps | grep $lasttimestamp | wc -w); …


1
มีตัวแปรไดเรกทอรีก่อนหน้าหรือไม่?
ตัวแปรสภาวะแวดล้อม$PWDมีไดเร็กทอรีการทำงานปัจจุบัน มีตัวแปรที่มีไดเรกทอรีก่อนหน้าหรือไม่? หากไม่มีจะสร้างได้อย่างไร ฉันคิดว่านี่อาจเป็นประโยชน์

4
ฉันจะลบไฟล์ที่มีหมายเลขในช่วงที่กำหนดได้อย่างไร
ฉันมีที่มีไฟล์บางคนที่มีหมายเลขลำดับเริ่มต้นด้วยfolderA a_000000สิ่งที่ฉันต้องการจะทำคือการลบไฟล์ที่เริ่มต้นจากจำนวนที่เฉพาะเจาะจง: สมมติว่าจนถึงสิ้นไฟล์ในนี้a_000750 folderAใครช่วยกรุณาแนะนำวิธีการใช้เชลล์สคริปต์?

3
dconf เปลี่ยนคีย์สตริง
ฉันกำลังพยายามเปลี่ยนคีย์ dconf ตามสตริงด้วยสคริปต์ทุบตีโดยใช้บรรทัดคำสั่งต่อไปนี้: dconf write /org/gnome/nautilus/preferences/show-directory-item-counts 'never' แต่มันกลับข้อผิดพลาดต่อไปนี้: error: 0-5:unknown keyword Usage: dconf write KEY VALUE Write a new value to a key Arguments: KEY A key path (starting, but not ending with '/') VALUE The value to write (in GVariant format) มีคนช่วยฉันได้ไหม แก้ไข 1: ฉันพยายามทำให้ nautilus ไม่นับจำนวนรายการในไดเรกทอรี (เพื่อการเพิ่มประสิทธิภาพ)
16 bash  scripts  dconf 

1
วิธีการตั้งค่าตัวแปรสภาพแวดล้อมก่อนที่จะเรียกใช้สคริปต์ภายใน hooks / install?
ฉันสร้างเครื่องรางง่ายๆเพื่อรับ symfony2 webapp จากคอมไพล์และปรับใช้กับ ec2 หลังจากได้รับแหล่งที่มาจากคอมไพล์ฉันต้องการเรียกใช้ผู้แต่งเพื่อแก้ไขการอ้างอิง แต่ฉันได้รับข้อผิดพลาดนี้: INFO juju context.go:221 worker/uniter: HOOK The HOME or COMPOSER_HOME environment variable must be set for composer to run correctly ฉันใช้ผู้แต่งโดยใช้คำสั่งด้านล่างใน hooks / สคริปต์ของฉันติดตั้ง juju-log "Running composer" /usr/bin/php composer.phar install ฉันก็ลอง juju-log "Running composer" COMPOSER_HOME=${app_dir};/bin/bash -c "/usr/bin/php composer.phar install" ฉันจะตั้งค่า HOME หรือ COMPOSER_HOME เพื่อให้สามารถใช้คำสั่งนี้ได้อย่างไร
16 bash  php  juju 

1
ทำไมแท็บชื่องานพุ่งพรวดที่กำหนดเองไม่สมบูรณ์ในคำสั่งบริการ
ฉันเคยสร้างบริการพุ่งพรวดด้วยไฟล์ใน/etc/init/<service>.confและมันทำงานได้อย่างสมบูรณ์แบบสิ่งเดียวที่ฉันต้องการคือให้แท็บเสร็จสมบูรณ์ในลักษณะเดียวกับที่ทุกบริการใน /etc/init.d/ มีตอนนี้ เมื่อเขียนบริการ sudo xx ชื่อของบริการควรจะหายไป มีวิธีเพิ่มบริการพุ่งพรวดในรายการเติมข้อความอัตโนมัติหรือไม่
16 bash  upstart 

9
จะตรวจสอบว่าวิดีโอ (mp4) ใช้เชลล์ได้นานแค่ไหน?
ฉันต้อง ftp อัปโหลดไฟล์ mp4 ทั้งหมดในไดเรกทอรีที่มีความยาว> 4 นาทีโดยใช้เชลล์ ฉันไม่พบสคริปต์ใด ๆ เพื่อตรวจสอบระยะเวลาของวิดีโอ ใครบ้างมีความคิดวิธีการทำเช่นนั้น? ขอบคุณมาก!

1
ปัญหาของ PS1 ทำให้ CLI เกิดความสับสน
ฉันทำงาน PS1 อย่างง่าย PS1="\e[0;31m[\W]\$ \e[m " สิ่งที่ฉันต้องการทำคือการเปลี่ยนสีของพรอมต์และแสดงเฉพาะเส้นทางสัมพัทธ์ อย่างไรก็ตามสิ่งนี้จะทำให้ CLI เสีย ตัวอย่างเช่นเมื่อเรียกดูประวัติของ↑มันจะครอบตัดและทับจอแสดงผล เมื่อฉันพิมพ์คำสั่งแบบยาวเคอร์เซอร์จะเลื่อนไปที่จุดเริ่มต้นของหน้าจอซ้อนทับพร้อมกับแสดงพรอมต์ของตัวเอง ฉันทำอะไรผิด
16 command-line  bash  ps1 

6
ฉันจะเปลี่ยน PYTHONPATH ของฉันเป็น 3,2 Python เริ่มต้นของฉันแทน 2.7.2 ได้อย่างไร
ฉันได้ python3.2 /usr/lib/python3.2ตั้งอยู่ใน ฉันไม่แน่ใจว่านั่นหมายความว่าติดตั้งไว้หรือไม่ แต่ฉันคิดว่ามันเป็นตอนนี้ ข้อเท็จจริงบางอย่างเกี่ยวกับระบบของฉัน: $ which python /usr/local/bin/python เมื่อฉันพิมพ์pythonใน terminal ฉันได้รับดังต่อไปนี้ $ python Python 2.7.2 (default, Dec 19 2011, 11:12:13) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. จากนั้นหาเส้นทางที่ฉันทำ >>> sys.info >>> sys.path ['', '/usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/PIL-1.1.7-py2.7-linux-x86_64.egg', '/usr/local/lib/python27.zip', '/usr/local/lib/python2.7', '/usr/local/lib/python2.7/plat-linux2', '/usr/local/lib/python2.7/lib-tk', '/usr/local/lib/python2.7/lib-old', '/usr/local/lib/python2.7/lib-dynload', …

3
เพิ่มโฟลเดอร์สคริปต์ทุบตีเพื่อเส้นทาง?
ฉันมีสคริปต์ทุบตีในโฟลเดอร์แอปพลิเคชันที่ฉันต้องการใช้ราวกับว่ามันอยู่ในเส้นทางของฉัน หากพวกเขาเป็นแอพพลิเคชั่นตรงฉันแค่เพิ่มไดเรคทอรี่ไปที่ ~ / .bashrc แต่นี่คือสคริปต์ เช่น: ~/a_dir/another_dir/foo.sh ~/a_dir/another_dir/foo-gui.sh มีวิธีดีในการตั้งค่าเส้นทางเพื่อให้ฉันสามารถใช้จากไดเรกทอรีใด ๆ เช่น: totally/different/path$ bash foo.sh

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