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

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

0
การบันทึก / การดีบักกระบวนการเริ่มต้น bash
เปลือกทุบตีของฉันบางครั้งใช้เวลาสักครู่ในการเริ่มต้นอาจเป็นเพราะสิ่งต่าง ๆ ที่เกิดขึ้นในไฟล์จุดต่าง ๆ ของฉัน (เช่น. bash_profile ฯลฯ ) มีวิธีใดบ้างในการบันทึกกระบวนการเริ่มต้นระบบ bash อย่างเหมาะสมรวมถึงการเรียกใช้ฟังก์ชันเวลาที่ใช้ต่องานและอื่น ๆ ฉันต้องการตรวจสอบว่ามีชิ้นส่วนเฉพาะของการเริ่มต้นที่ช้ากว่าคนอื่น ๆ
3 bash  logging  debug 

2
ใช้โปรแกรมทุบตีทุกวันในเวลาเดียวกัน
ฉันเขียนโปรแกรมโดยใช้ bash shell ที่ฉันต้องการใช้เพื่อปลุกตัวเองในตอนเช้า (ดึงสภาพอากาศเล่นดนตรี ฯลฯ ) ฉันจะทำให้ Mac OSX ของฉันรันโปรแกรมทุกวันเวลา 7:00 น. โดยอัตโนมัติได้อย่างไร
3 bash  unix  alarm 

1
Bash ย้ายและเปลี่ยนชื่อโดยแยกวิเคราะห์ผลลัพธ์ของ find
ฉันมีไดเรกทอรีที่ซ้อนกันของไฟล์ PDF และฉันต้องการแยกออกเป็นไดเรกทอรีระดับที่สูงขึ้นโดยเปลี่ยนชื่อดังนี้: ไฟล์ของฉันเป็นสิ่งที่ชอบ: ./path1/pathA/fileI.pdf ./path1/pathB/fileII.pdf ฉันต้องการบรรลุ: ./path1_pathA_fileI.pdf ./path1_pathB_fileII.pdf ฉันรู้ว่าฉันสามารถสร้างรายการไฟล์โดยทำ find . -type f -name "*.pdf" และฉันสามารถจินตนาการวิธีแก้ปัญหาโดยใช้ find . -type f -name "*.pdf" | mv -t ... แต่ฉันไม่ทราบวิธีกรอกข้อมูลใน ... เพราะฉันไม่เข้าใจการแยกวิเคราะห์และการมอบหมายตัวแปรในการทุบตี หนึ่งจะแยกเส้นทางที่ '/' และรูปแบบเส้นทางใหม่และชื่อไฟล์ดังกล่าวข้างต้นได้อย่างไร ขอบคุณมากล่วงหน้า!
3 linux  command-line  bash  find  mv 

4
ในทุบตีฉันจะเปรียบเทียบสองโฟลเดอร์เพื่อให้แน่ใจว่ามีไฟล์ชุดเดียวกันได้อย่างไร
ฉันคัดลอกโฟลเดอร์ขนาดใหญ่จากเครื่อง Windows ไปยังเครื่อง Linux และเนื่องจากชื่อไฟล์บางไฟล์มีขนาดใหญ่เกินไป (และข้อผิดพลาดอื่น ๆ ที่ฉันข้ามไป) บางไฟล์จึงไม่สามารถคัดลอกได้ ขณะนี้ฉันกำลังเรียกใช้ diff -r ระหว่างสองโฟลเดอร์เพื่อสร้างรายการไฟล์ที่อยู่ในโฟลเดอร์ดั้งเดิม แต่ไม่ใช่การคัดลอก อย่างไรก็ตามจนถึงเพียงสิ่งเดียวที่ดูเหมือนว่าได้รับการยอมรับคือโฟลเดอร์ที่ขาดหายไปนั่นคือดูเหมือนว่าจะข้ามไฟล์ มีวิธีที่ดีกว่าสำหรับฉันในการเปรียบเทียบนี้หรือไม่? โดยเฉพาะอย่างยิ่งฉันกังวลว่า Bash ไม่รู้จักไฟล์เหล่านี้ด้วยชื่อไฟล์ที่ยาวเกินไป

2
วิธีแทรกข้อความที่จุดเริ่มต้นของแต่ละย่อหน้าใน bash
ฉันมีไฟล์ที่มีหลายย่อหน้าคั่นด้วยบรรทัดว่าง ในทางเทคนิคแล้วพวกเขาไม่ใช่ย่อหน้าเพียงแค่ส่วนของข้อความคั่นด้วยบรรทัดว่าง ฉันต้องการกำหนดหมายเลขย่อหน้าเพื่อพูดโดยการใส่ตัวเลขในบรรทัดแรกของแต่ละบรรทัดหลังจากบรรทัดว่าง ดังนั้นหากไฟล์ของฉันพูดว่า: This is text. This is more text. Even more text! This is text in section two. Some more text. You get the point... ฉันต้องการที่จะทำให้มันพูดว่า: 1This is text this is more text Even more text! 2This is text in section two. Some more text. You get the …

2
วิธีการรับข้อมูลผู้ใช้จากสคริปต์ทุบตีเมื่อเรียกใช้เป็นปฏิบัติการโดยไม่มีขั้ว?
ฉันกำลังพยายามสร้างสคริปต์ทุบตีซึ่งนำข้อมูลผู้ใช้บางส่วนและกระบวนการตามอินพุต สคริปต์นี้สามารถเรียกใช้งานได้และมี shebang สคริปต์มีลักษณะดังนี้: #!/bin/bash read name -p "Enter your name" echo $name >> namelist.txt ฉันไม่ต้องการให้ผู้ใช้เปิดสคริปต์ในเทอร์มินัล สคริปต์ถูกทำให้สามารถเรียกใช้งานได้ (chmod + x) และดับเบิลคลิกที่สคริปต์จะทำให้ทำงาน แต่มันจะไม่หยุดที่จะใส่และไฟล์ยังคงว่างเปล่า

1
วิธีไพพ์เอาต์พุตของสตรีมที่แอ็คทีฟไปยังคำสั่งอื่น
ฉันกำลังพยายามไพพ์สตรีมที่แอ็คทีฟไปยังคำสั่งอื่น (อาจเป็นสคริปต์ทุบตี) แต่ก็ต้องการรอให้สตรีมทั้งหมดเสร็จสิ้นก่อนที่จะประมวลผลคำสั่ง s.g. ฉันสามารถทำสิ่งนี้: tail file.log | grep keyword | xargs -L 1 echo ... และมันจะแสดงผลแถวที่ตรงกันจาก file.log อย่างถูกต้องนำหน้าด้วย "... " เห็นได้ชัดว่าฉันไม่ต้องการเพียงแค่ก้องนั่นเป็นเพียงตัวอย่างที่ง่ายขึ้น ตอนนี้เมื่อฉันลองทำสิ่งนี้: tail -f file.log | grep keyword งานนี้ในที่เป็นผลลัพธ์แถวที่ตรงกันแล้วหยุดชั่วคราวจนกว่า file.log เปลี่ยนแปลงแล้วมันจะออกบรรทัดใหม่ที่ตรงกัน อย่างไรก็ตามถ้าฉันลองทำสิ่งนี้: tail -f file.log | grep keyword | xargs -L 1 echo ... มันไม่มีอะไรส่งออก - ฉันคิดว่ามันกำลังรอกระแสที่เปิดโดย tail -f …

1
วิธีการส่งออกหางแหล่งที่มา (หรือเรียกใช้)
ฉันพยายามโหลดตัวแปรหลายตัวจากไฟล์ (ไม่ใช่ .bash_* ) ซึ่งคล้ายกับ: export MY_VAR='foo' คำสั่งที่ฉันใช้กับ "แหล่งที่มา" นี่คือ `tail -1 myFile` มันใช้งานได้ แต่ฉัน echo $MY_VAR, ฉันเข้าใจ 'foo' แต่จริงๆแล้วฉันวิ่ง export MY_VAR='foo' ใน terminal แล้ว echo $MY_VAR มันเอาท์พุท: foo ทำไมความแตกต่างในคำพูดและฉันจะแก้ไขได้อย่างไร
2 linux  bash 

2
พฤติกรรมที่ไม่คาดคิดของ Ctrl-a x และ Ctrl-a X ในหน้าจอ! ภูมิภาคล็อค
ให้เป็นไปตาม จอภาพ คู่มือ (รุ่น 4.0.2.) C-a x C-a C-x (lockscreen) Lock this terminal. C-a X (remove) Kill the current region. แต่สิ่งที่เกิดขึ้นจริงเมื่อฉันใช้ (หน้าจอรุ่น 4.00.03 (FAU) 23-Oct-06): C-a X locks the terminal and asks me for the password. When I enter the correct passwword, I am back in screen but the region …
2 linux  bash  display 

1
bash shell บน Window จะถูกรีเซ็ตได้อย่างไร
ฉันใหม่สำหรับ Unix แต่สนใจเรียนรู้ดังนั้นเริ่มลองใช้ bash / Ubuntu บน Windows น่าเสียดายที่ทุบตีขัดข้องและตอนนี้ทุบตี / อูบุนตูดูเหมือนว่าจะเสียหายเนื่องจากโฟลเดอร์ส่วนใหญ่ตอนนี้หายไปจากโฟลเดอร์รูท Ubuntu นั่นคือ root@Desktop:~# ls root@Desktop:~# cd /root root@Desktop:~# ls root@Desktop:~# ls -a . .. .bashrc .profile ฉันไม่มี %localappdata%\lxss โฟลเดอร์ (ฉันค่อนข้างแน่ใจว่านี่คือตำแหน่งที่รูต Linux เดิม) ฉันดูเหมือนจะมี %localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc โฟลเดอร์ซึ่งเห็นได้ชัดว่าเป็นตำแหน่งใหม่สำหรับรูท Linux แต่ยังไม่สมบูรณ์ (เช่นไม่มีไฟล์ a ...\LocalState\rootfs โฟลเดอร์) หลังจากค้นหาวิธีแก้ปัญหาที่นี่และที่อื่น ๆ ฉันได้ลอง: ถอนการติดตั้ง Ubuntu \ bash อย่างสมบูรณ์จาก …

1
Bash สคริปต์ลบอัตโนมัติ
ฉันกำลังมองหาสคริปต์ทุบตีที่จะลบโฟลเดอร์ที่เก่าที่สุดโดยอัตโนมัติ (สมมติว่า 3 รายการสุดท้าย) ในไดเรกทอรีเมื่อพื้นที่ว่างลดลงต่ำกว่า X gigs ฉันอ่านโพสต์ที่เกี่ยวข้อง แต่เนื่องจากฉันไม่รู้อะไรเลยฉันไม่ทราบวิธีแก้ไขสคริปต์อย่างปลอดภัยด้วยตนเอง

2
ถอนการติดตั้ง Git อย่างสมบูรณ์บน Ubuntu หรือไม่
ฉันติดตั้ง Git บน Ubuntu Lucid (ล่าสุด) ด้วยตนเองดังนี้ cd ~/tmp wget http://kernel.org/pub/software/scm/git/git-1.7.0.6.tar.gz tar -xzvf git-1.7.0.6.tar.gz cd git-1.7.0.6.tar.gz ./configure sudo make sudo make install ตอนนี้ฉันจะถอนการติดตั้งอย่างสมบูรณ์ได้อย่างไร

1
เทอร์มินัลแสดง“ การใช้งาน launchctl: setenv <key> <value>” ที่ด้านบนของทุกเซสชัน
ทุกครั้งที่ฉันเปิดหน้าต่างเทอร์มินัลจะมีการพิมพ์ที่ด้านบน: launchctl usage: setenv &lt;key&gt; &lt;value&gt; ฉันคิดว่ามีบางอย่างผิดปกติกับฉัน .bash_profile แต่ฉันไม่พบสิ่งใดที่เกี่ยวข้องกับ "Daemons / Services" มันจะเป็นอะไรอีก?
2 bash  osx-lion 

1
วิธีการผลข้างเคียงในท่อ
ฉันใช้ minikube เป็นสภาพแวดล้อมการทดสอบในท้องถิ่นและใช้การสร้างหลายขั้นตอนของ docker เพื่อสร้างคอนเทนเนอร์ของฉัน Minikube เรียกใช้เวอร์ชันของนักเทียบท่าที่ไม่รองรับการสร้างหลายขั้นตอน Minikube แนะนำให้คุณใช้สภาพแวดล้อม docker ในตัวเพื่อสร้างคอนเทนเนอร์ดังนี้: #!/usr/bin/env bash eval $(minikube docker-env) docker build เนื่องจากฉันต้องการใช้อินสแตนซ์นักเทียบท่าโลคัลเพื่อสร้างฉันจึงพบการบันทึก / โหลดนักเทียบท่า หมายความว่าฉันต้องทำสิ่งต่อไปนี้: #!/usr/bin/env bash docker build docker save $IMG &gt; /tmp/container.tar eval $(minikube docker-env) # set up docker env vars docker load -i /tmp/container.tar eval $(minikube docker-env -u) # clean …

2
รันเชลล์สคริปต์ในเบื้องหลังใน Unix ในเวลาที่ระบุรายวัน
ฉันมีเชลล์สคริปต์ task.sh ที่จำเป็นต้องใช้ในพื้นหลังใน Unix ในเวลาที่กำหนดรายวัน ฉันรู้ว่า nohup มีประโยชน์ในการเรียกใช้สคริปต์ในพื้นหลัง แต่กังวลเกี่ยวกับวิธีกำหนดเวลาสคริปต์นี้ให้ทำงานทุกวันตามเวลาที่กำหนด บันทึก: ฉันไม่ใช่ผู้ใช้รูท ฉันไม่ได้รับอนุญาต crontab คำสั่ง ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

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