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

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

1
เสียงสะท้อนที่มีสัญลักษณ์“ >>” ทำหน้าที่อะไร
ฉันเห็นคำสั่งบางอย่างเช่น echo '* - nofile 65535' >> /etc/security/limits.conf ฉันรู้ว่า echo พิมพ์บางอย่างบนหน้าจอ และ limit.conf เป็นไฟล์ในพา ธ นั้น / etc / security แต่ต้องการ>>ทำที่นี่ มันหมายถึงบางสิ่งเช่น 'ถึง' หรือ 'ใน'?

4
ที่เก็บบันทึกทั้งหมด / ประวัติเทอร์มินัลของ Ubuntu
โฟลเดอร์ใดบ้างที่เก็บบันทึกและประวัติคีย์เพื่อให้ฉันสามารถสร้างสคริปต์เพื่อกำจัดพวกเขา มีโฟลเดอร์เฉพาะสำหรับพาร์ติชันการไฮเบอร์เนตหรือไฟล์ที่จะเก็บข้อมูล RAM ในโหมดไฮเบอร์เนตหรือไม่? มีใครบางคนต้องการกำจัดประวัติคำสั่งทั้งหมด / ประวัติการโหลดโปรแกรม / ประวัติการดำเนินการของโปรแกรมพวกเขาจะไปที่ไหน แสงขอบคุณ

2
วิธีการป้องกัน grep จากการพิมพ์สตริงเดียวกันหลาย ๆ ครั้ง?
หากฉัน grep ไฟล์ที่มีต่อไปนี้: These are words These are words These are words These are words ... สำหรับคำTheseนั้นมันจะพิมพ์สตริงThese are wordsสี่ครั้ง ฉันจะป้องกัน grep ไม่ให้พิมพ์สตริงที่เกิดซ้ำมากกว่าหนึ่งครั้งได้อย่างไร มิฉะนั้นฉันจะจัดการเอาต์พุตของ grep เพื่อลบบรรทัดที่ซ้ำกันได้อย่างไร

4
วิธีการส่ง regex เมื่อค้นหาเส้นทางไดเรกทอรีในทุบตี?
ฉันได้เขียนสคริปต์ทุบตีขนาดเล็กเพื่อหาถ้าไดเรกทอรีชื่อanacondaหรือผู้ใช้ของฉันminiconda $HOMEแต่ไม่พบminiconda2ไดเรกทอรีในบ้านของฉัน ฉันจะแก้ไขสิ่งนี้ได้อย่างไร if [ -d "$HOME"/"(ana|mini)conda[0-9]?" ]; then echo "miniconda directory is found in your $HOME" else echo "anaconda/miniconda is not found in your $HOME" fi PS: ถ้าฉันมี[ -d "$HOME"/miniconda2 ]; thenก็พบไดเรกทอรี miniconda2 ดังนั้นฉันคิดว่าข้อผิดพลาดอยู่ในส่วน"(ana|mini)conda[0-9]?" ฉันต้องการให้สคริปต์เป็นเรื่องทั่วไป สำหรับฉันมันเป็น miniconda2 แต่สำหรับผู้ใช้อื่น ๆ มันอาจจะเป็น anaconda2, miniconda3 เป็นต้น

2
การใช้อินพุตและเอาต์พุตมาตรฐานกับข้อมูลไบนารีปลอดภัยหรือไม่?
ฉันต้องการแยกไฟล์ไบนารีออกเป็นสองไฟล์ ฉันสงสัยว่าสามารถใช้ส่วนหัวและ / หรือส่วนท้ายได้หรือไม่ แต่ฉันก็สงสัยว่า ... ปลอดภัยไหมที่จะใช้การเปลี่ยนเส้นทางการวางท่อและข้อมูลไบนารีด้วย? มีการขึ้นบรรทัดใหม่ที่ยุ่งกับหรือเป็นโมฆะหรือ backspace หรือลบทำอะไรเป็นพิเศษหรือไม่ (bash, kubuntu 18.04 LTS)

2
มีวิธีการจัดทำภารกิจแบบอนุกรมบนเทอร์มินัลขณะที่งานกำลังดำเนินการ (โดยไม่ใช้ไฟล์) หรือไม่?
สมมติว่ามี 2 งานt1, t2ซึ่งสามารถดำเนินการได้ในทางอนุกรมดังต่อไปนี้: t1 ; t2 # OR t1 && t2 ตอนนี้สมมติว่าฉันลืมเรียกใช้t2และt1กำลังทำงานอยู่ ฉันสามารถเพิ่มt2ไปยังไปป์ไลน์เพื่อให้สามารถดำเนินการได้หลังจากt1เสร็จสิ้นหรือไม่

7
ฉันจะนับไฟล์ที่มีนามสกุลเฉพาะและไดเรกทอรีที่อยู่ในนั้นได้อย่างไร
ฉันต้องการทราบจำนวนไฟล์ปกติที่มีส่วนขยาย.cในโครงสร้างไดเรกทอรีขนาดใหญ่ที่ซับซ้อนและจำนวนไดเรกทอรีไฟล์เหล่านี้จะกระจายไปทั่ว ผลลัพธ์ที่ฉันต้องการเป็นเพียงตัวเลขสองตัวนั้น ฉันเคยเห็นคำถามนี้เกี่ยวกับวิธีรับจำนวนไฟล์ แต่ฉันจำเป็นต้องทราบจำนวนไดเรกทอรีที่ไฟล์อยู่ด้วย ชื่อไฟล์ของฉัน (รวมถึงไดเรกทอรี) อาจมีอักขระใด ๆ พวกเขาอาจเริ่มต้นด้วย.หรือ-และมีช่องว่างหรือขึ้นบรรทัดใหม่ ฉันอาจมี symlink ที่ชื่อลงท้ายด้วย.cและ symlink ไปยังไดเรกทอรี ฉันไม่ต้องการให้มีการติดตามหรือนับจำนวน symlink หรืออย่างน้อยฉันก็ต้องการทราบว่าพวกเขาจะถูกนับเมื่อใดและเมื่อใด โครงสร้างไดเรกทอรีมีหลายระดับและไดเรกทอรีระดับบนสุด (ไดเรกทอรีทำงาน) มี.cไฟล์อย่างน้อยหนึ่งไฟล์ ฉันรีบเขียนคำสั่งบางอย่างในเชลล์ (Bash) เพื่อนับมันด้วยตัวเอง แต่ฉันไม่คิดว่าผลลัพธ์จะแม่นยำ ... shopt -s dotglob shopt -s globstar mkdir out for d in **/; do find "$d" -maxdepth 1 -type f -name "*.c" >> out/$(basename "$d") done …

2
ฉันจะไพพ์แต่ละคำสั่งที่กำหนดให้กับเชลล์ได้อย่างไร?
ฉันต้องการแก้ไข. bashrc ของฉันเพื่อให้ทุกคำสั่งที่ดำเนินการบนเชลล์นั้นถูกไพพ์ไปที่บางอย่างเช่น: $ sudo apt update _________________ < sudo apt update > ----------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || ฉันจัดการสิ่งที่ค่อนข้างคล้ายกัน แต่ไม่ใช่ทั้งหมด: $ bash $ exec > >(cowsay) $ echo "Hello AU!" $ exit _______ < Hello AU! > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ …

5
ซ่อน“ history -d” ในประวัติทุบตี
หากฉันพิมพ์รหัสผ่านของฉันโดยไม่ตั้งใจหรือสิ่งอื่นใดที่มีความละเอียดอ่อนในการทุบตีฉันสามารถลบบรรทัดนั้นได้โดยhistory -d ROW#ง่าย แต่ฉันมักจะทิ้งhistory -d ROW#คำสั่งไว้ในประวัติศาสตร์เพื่อแสดงให้ทุกคนเห็นว่ามีคนแก้ไขข้อผิดพลาด ฉันสามารถต่อท้ายคำสั่งเพื่อป้องกันไม่ให้ปรากฏในประวัติทุบตีได้หรือไม่?

6
สคริปต์ bash แบบเรียกซ้ำเพื่อรวบรวมข้อมูลเกี่ยวกับแต่ละไฟล์ในโครงสร้างไดเรกทอรี
ฉันจะทำงานซ้ำ ๆ ผ่านไดเรคทอรีต้นไม้และรันคำสั่งเฉพาะในแต่ละไฟล์และออกพา ธ , ชื่อไฟล์, นามสกุล, ขนาดไฟล์และข้อความเฉพาะอื่น ๆ ไปยังไฟล์เดียวในไฟล์ทุบตี
14 bash  scripts 

2
ใช้“ ในขณะที่อ่าน…”, echo และ printf จะได้ผลลัพธ์ที่แตกต่างกัน
ตามคำถามนี้ " ใช้" ในขณะที่อ่าน ... "ในสคริปต์ linux " echo '1 2 3 4 5 6' | while read a b c;do echo "$a, $b, $c"; done ผล: 1, 2, 3 4 5 6 แต่เมื่อฉันแทนที่echoด้วยprintf echo '1 2 3 4 5 6' | while read a b c ;do printf "%d, …

5
สร้างนามแฝงสำหรับการเชื่อมต่อ SSH
ฉันต้องการเพิ่มความเร็วในการเชื่อมต่อกับเซิร์ฟเวอร์เฉพาะ ฉันมีเซิร์ฟเวอร์สมมติว่า: 123.123.123.1 123.123.123.2 123.123.123.3 ปกติฉันจะเชื่อมต่อกับสิ่งต่อไปนี้: ssh -p 12345 my_user@123.123.123.1 นี่เป็นความเจ็บปวดเพราะความแตกต่างเพียงอย่างเดียวระหว่างเซิร์ฟเวอร์คือหมายเลขสุดท้ายของ ip ฉันลองรหัสต่อไปนี้: alias ssht='{ ip=$(cat -); ssh -p 12345 my_user@"123.123.123.$ip"; }<<<' อย่างไรก็ตามฉันได้รับข้อผิดพลาด: karl@karls-laptop ~/scripts $ ssht 1 Pseudo-terminal will not be allocated because stdin is not a terminal. มีวิธีในการทำงานนี้หรือไม่?
14 bash  ssh  alias 


2
/ bin / rbash คืออะไร
ฉันเรียนรู้เกี่ยวกับโปรแกรมเชลล์ทั่วไปโปรแกรมเปลือกทั่วไป เมื่อฉันวิ่งcat /etc/shellsมันจะแสดง: # /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash ที่/bin/rbashนี่คืออะไร มันใช้ในการเขียนสคริปต์?

1
ทำไม '!!' ช็อตคัทล้มเหลวในการเรียกใช้คำสั่งที่รันก่อนหน้า
เมื่อเร็ว ๆ นี้ฉันพิมพ์ที่เทอร์มินัลของฉัน username:~$ !! และได้รับข้อผิดพลาดจากทุบตี : bash: !!: command not found ในเวลาเดียวกันมันจะประสบความสำเร็จเมื่อทำภายใต้ superuser ฉันตรวจสอบเนื้อหาของ PATH ของผู้ใช้และไม่พบสิ่งที่น่าสงสัย: /home/username/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin นี่คือผลลัพธ์ของ: username:~$ history | tail 1993 date 1994 cal 1995 vcal 1996 uptime 1997 uname 1998 uptime 1999 uname 2000 uptime 2001 uname 2002 history | tail อื่น ๆ : username:~$ echo …

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