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

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

1
ฉันสามารถย้อนกลับทิศทางการส่งกระแสข้อมูลของเทอร์มินัลของฉันได้หรือไม่?
ฉันไม่แน่ใจว่าจะถามคำถามนี้ด้วยวิธีอื่นได้อย่างไร เป็นไปได้ไหมที่วิธีกลับขั้วของคุณพิมพ์ข้อความ? ตัวอย่างเช่นถ้าฉันพิมพ์คำสั่งฉันพิมพ์จากด้านล่างของเทอร์มินัลและผลผลิตจะถูกผลิตจากด้านล่าง ฉันต้องการทราบว่าฉันสามารถย้อนกลับได้หรือไม่ดังนั้นฉันป้อนข้อมูลจากด้านบนและผลลัพธ์ของฉันมาจากด้านบน
12 bash  terminal  cmd.exe 

2
Mac OS X ตั้งค่าของ $ PATH อย่างไร
ฉันมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการตั้งค่า $ PATH แต่มีเอกสารที่อธิบายอย่างสมบูรณ์ว่า Mac OS จะรับเส้นทางทั้งหมดที่ผนวกเข้ากับ $ PATH ได้อย่างไร ฉันรู้สิ่งที่ชอบ/etc/profile, /etc/pathsและ/etc/profile.dแต่จะมีสคริปต์อื่น ๆ ที่ในที่สุดก็ส่งผลกระทบต่อค่าของ $ PATH หรือไม่ ฉันไม่คุ้นเคยกับระหว่างผู้ที่ไม่ได้ลงชื่อเข้าใช้และผู้ใช้งานเชลล์ ( .bashrc, .bash_profile) แต่ฉันรู้ถึงความแตกต่างพื้นฐาน
12 macos  mac  bash  path 

1
Regex สำหรับ“ หรือ” ของคำหลายคำใน grep
[Computer]$ grep "foo|bar" filename ฉันเข้าใจว่าคำสั่งดังกล่าวควรกลับแต่ละบรรทัดในชื่อไฟล์ที่มี "foo" หรือ "bar" ออก หน้าคนยืนยัน | ในฐานะ Regex หรือสัญลักษณ์และรหัสใช้งานได้กับ "foo" และ "bar" โดยอิสระ ฉันกำลังคิดถึงอะไร
12 bash  unix  regex  grep 

3
วิธีแสดงรายการชื่อไดเรกทอรี แต่ไม่แสดงเนื้อหาใน * N * X
ถ้าฉันทำง่ายlsระบุรูปแบบชื่อไฟล์เช่นls A*สำหรับไดเรกทอรีที่ตรงกับรูปแบบนั้นจะเข้าสู่ไดเรกทอรีและให้รายชื่อเต็ม แต่ฉันจะได้รับเพียงรายชื่อ./และเพียงชื่อของไดเรกทอรีภายใน แต่ไม่ เนื้อหาของพวกเขา?
12 linux  macos  bash  unix  shell 

3
`ssh <host>` เป็นเชลล์การเข้าสู่ระบบ แต่ `ssh <host> <command>` ไม่ใช่?
ฉันสังเกตว่าเมื่อฉันเรียกใช้คำสั่งโดยตรงบนโฮสต์ SSH โดยใช้ssh &lt;host&gt; &lt;command&gt;ไวยากรณ์ฉันเห็นผลลัพธ์ของ.bashrcแต่ไม่ใช่ผลลัพธ์ของ.bash_profile(หรือ.profile) ตัวอย่างเช่นถ้าฉันวางคำสั่งต่อไปนี้ที่ด้านบนของไฟล์ทั้งสอง echo ${BASH_SOURCE[0]} และแหล่งที่มาด้วยตนเอง.bash_profile(ที่มา.bashrcในการเปิด) ฉันจะเห็น $ . .bash_profile .bash_profile .bashrc นี่เป็นผลลัพธ์เดียวกันกับที่ฉันเห็นว่าฉันลงชื่อเข้าใช้คอมพิวเตอร์เครื่องนี้จากระยะไกลผ่าน SSH โดยใช้ssh &lt;host&gt;รูปแบบของคำสั่ง (และถ้าฉันเก็บไว้ที่.bash_profileอื่นชั่วคราวบรรทัดเหล่านี้จะไม่ถูกสะท้อนเลย) อย่างไรก็ตามถ้าฉันรันคำสั่งบนเครื่องรีโมตโดยตรงด้วยssh &lt;host&gt; &lt;command&gt;รูปแบบของsshเอาต์พุตจะมีลักษณะดังนี้: $ ssh &lt;host&gt; echo foo /home/rlue/.bashrc foo ความเข้าใจของฉันอยู่ที่ความแตกต่างระหว่าง.bash_profileและ.bashrcเป็นว่าอดีตเป็นเปลือกหอยเข้าสู่ระบบในขณะที่หลังสำหรับการโต้ตอบและเปลือกหอยที่ไม่เข้าสู่ระบบ ฉันได้ข้อสรุปดังต่อไปนี้: ssh &lt;host&gt;แหล่งที่มาเท่านั้น.bash_profileในขณะที่ ssh &lt;host&gt; &lt;command&gt;แหล่งข้อมูลเท่านั้น.bashrcซึ่งหมายถึง อดีตเป็นเปลือกเข้าสู่ระบบและหลังไม่ได้ ข้อสรุปเหล่านี้ถูกต้องหรือไม่ เหตุใดจึงssh &lt;host&gt; &lt;command&gt;ถือว่าเป็นเชลล์แบบโต้ตอบและไม่ใช่การเข้าสู่ระบบ SSH ยังไม่ได้เข้าสู่เครื่องระยะไกลเพื่อดำเนินการคำสั่งหรือไม่


2
% 1 ใน“ kill% 1” หมายถึงอะไร
ฉันรู้ว่า$!ร้านค้า pid ของกระบวนการ (พื้นหลัง) ล่าสุด แต่%1หมายความว่าอย่างไร ฉันมักจะเห็นมันด้วยกันและมีผลเช่นเดียวกับkill kill $!มีคนให้คำแนะนำแก่ฉันได้ไหม (คำศัพท์เล็ก ๆ เหล่านี้ยากที่ google: - /)
12 bash  kill 

4
ฉันจะดูประวัติ Bash จากเทอร์มินัลเซสชันมากกว่าหนึ่งใน Ubuntu ได้อย่างไร [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : ปิดให้บริการใน10 ปีที่ผ่านมา ซ้ำเป็นไปได้: ไฟล์ประวัติสามารถรวมเป็นหนึ่งเดียวในทุบตี? ฉันใช้ Ubuntu Server 9.10 และฉันต้องการดูประวัติทุบตีของฉันสำหรับเซสชันเทอร์มินัลมากกว่าหนึ่งเซสชัน นั่นคือคำสั่งสุดท้าย 200 คำสั่งหรือมากกว่านั้นแม้ว่าฉันจะออกจากระบบแล้ว เมื่อฉันใช้historyฉันเพิ่งเห็นคำสั่งทั้งหมดจากเซสชันเทอร์มินัลจริงของฉัน ฉันจะดูประวัติคำสั่งเพิ่มเติมจาก Bash ได้อย่างไร มีการตั้งค่าเฉพาะสำหรับทุบตีที่ฉันควรเปลี่ยนจากค่าเริ่มต้นใน Ubuntu หรือไม่ ฉันไม่มี~/.bash_historyไฟล์ แต่ฉันมีและ~/.bashrcด้วยHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredupsHISTCONTROL=ignoreboth echo $HISTFILE /home/sanoj/.bash_history echo $HISTSIZE 500 echo $HISTFILESIZE 500 echo $HISTCONTROL ignoreboth UPDATE:ตอนนี้ฉันลองใช้ Ubuntu Server 10.10 ใน VirtualBox หากฉันเพิ่งปิด VirtualBox โดยไม่ใช้คำสั่ง shutdown ดังนั้นครั้งต่อไปเมื่อฉันบูตคำสั่งจากเซสชันล่าสุดจะไม่ถูกบันทึกในไฟล์ประวัติ คำสั่งจะถูกบันทึกไว้ก็ต่อเมื่อฉันปิดเครื่องด้วยคำสั่งปิดเครื่อง เช่นการปิดเครื่อง -P 0 …

5
ฉันจะค้นหาไฟล์และรวมขนาดไฟล์ได้อย่างไร
ฉันต้องการค้นหาชุดไฟล์ (ตามนิพจน์ตัวแทน) และรวมการใช้งานดิสก์ของพวกเขา บางสิ่งเช่นนี้ $ find . -name 'flibble*' -ctime +90 -exec du -sh {} \; 2.1G ./flibble_116.log 2.1G ./flibble_83.log 2.1G ./flibble_211040_157.log 2.1G ./flibble3747_51.log งานนี้. แต่มันก็ไม่ได้ให้ผลลัพธ์ที่ฉันต้องการ มันแสดงพื้นที่ที่ใช้โดยแต่ละไฟล์เช่นเดียวกับการfindวนซ้ำมัน สิ่งที่ฉันต้องการคือผลรวมduของไฟล์ทั้งหมดที่พบ
12 linux  bash 

3
วิธีการละเว้นข้อความแสดงข้อผิดพลาดในทุบตีบน Ubuntu?
ฉันพยายามแสดงจำนวนบรรทัดคำและตัวอักษรของไฟล์การกำหนดค่าทั้งหมดใน/etc/*conf(พร้อมคำสั่งwc) ฉันจะแก้ไขคำสั่ง (หรือ commandline) เพื่อไม่ดูข้อความผิดพลาดได้อย่างไร?


5
วิธีตั้งค่าการอนุญาตไฟล์เฉพาะเมื่อเปลี่ยนเส้นทางเอาต์พุต
นี่อาจเป็นสิ่งที่ซ้ำกัน แต่การค้นหาทั้งหมดของฉันมีคำถามเกี่ยวกับการอนุญาตที่ผิดพลาด ฉันใช้คำสั่งใน bash shell ฉันต้องการเปลี่ยนเส้นทางเอาต์พุตเพื่อผนวกไปยังไฟล์ที่อาจไม่มีอยู่ในการรันครั้งแรก ฉันต้องการตั้งค่าโหมดการอนุญาตเฉพาะไฟล์หากการเปลี่ยนเส้นทางผลลัพธ์ต้องสร้างไฟล์นี้ มีวิธีทำเช่นนี้ด้วยคำสั่งเดียว? ตัวอย่างเช่นฉันอาจลอง foo &gt;&gt; /tmp/foo.log 0644 ที่0644มีสิทธิ์ที่ฉันต้องการfoo.logจะจบลงด้วย คำสั่งที่สุดที่ผมเคยทดลองกับในทุบตีจบลงด้วยการตีความเป็นอาร์กิวเมนต์เพิ่มเติมเพื่อ0644foo ฉันรู้สึกว่านี่จะเป็นคำสั่งที่สองในchmodการอนุญาตก่อนหรือหลังการเขียนลงไป ฉันใช้ GNU bash 4.2.25 และ Ubuntu 12.04 ถ้านั่นสร้างความแตกต่างได้ - เราต้องการคำตอบทั่วไป

1
สะท้อนข้อความสีใดสีหนึ่งในเชลล์สคริปต์
ฉันกำลังจะเขียนเชลล์สคริปต์ ฉันต้องการแยกความแตกต่างของข้อความเอาต์พุตเป็นคำเตือนด้วยการตั้งค่าสีเป็นสีเหลือง สิ่งนี้ทำได้อย่างไร

2
WSL Bash ไม่เริ่มทำงาน
ฉันใช้ระบบย่อย Windows ของ Windows 10 สำหรับ Linuxbash (Ubuntu ผ่าน Microsoft Store) ในช่วงสองสามสัปดาห์ที่ผ่านมาไม่มีปัญหาคุณลักษณะที่ยอดเยี่ยมไม่มีความสุข แต่วันนี้หยุดทำงานทันที การพิมพ์bashไม่ทำอะไรเลยบนบรรทัดคำสั่ง ( cmdและ PowerShell) ราวกับว่ามันกำลังรออะไรบางอย่างอยู่ มันไม่ได้ผิดพลาดหรือส่งข้อความแสดงข้อผิดพลาด แต่เพียงแค่แสดงเคอร์เซอร์กะพริบ (เคอร์เซอร์มองไม่เห็นบนหน้าจอมันกะพริบ_ในบรรทัดถัดไปหลังจากbash) ตัวจัดการงานแสดงทั้งสองบรรทัดคำสั่งที่ CPU 0% ด้วยกระบวนการ "Microsoft Bash Launcher" เช่นกันที่ 0% CPU: มีความคิดวิธีแก้ปัญหาและแก้ไขปัญหานี้อย่างไร อัปเดต: หลังจากการรีสตาร์ทด้วยตนเองสองสามครั้งและ "ความผิดพลาด" หนึ่งครั้ง (ฉันคิดว่าexplorer.exeหยุดแล้วและไม่ได้กลับมาจริงๆหลังจากฆ่ากระบวนการหลังจากได้รับแจ้ง) ตอนนี้มันใช้งานได้อีกครั้งในตอนนี้ ฉันมีปัญหาเมื่อสองสามสัปดาห์ก่อน (ที่ฉันแก้ไขมันติดตั้ง WSL) ดังนั้นฉันคิดว่ามันจะปรากฏขึ้นอีกไม่ช้าก็เร็ว

5
ลบหรือเปลี่ยนชื่อไฟล์ด้วย \ r เป็นชื่อไฟล์
ฉันมีไฟล์เล็ก ๆ ที่น่ารำคาญซึ่งชื่อดูเหมือนจะเป็นตัวอักษรเดียวและตัวละครนั้นเป็น \r ฉันจะลบสิ่งนี้ได้อย่างไร นี่คือสิ่งที่ฉันได้รับls -bl: -rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r ls -l แค่แสดงมัน "?"

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