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

เชลล์คือซอฟต์แวร์ที่ช่วยให้ผู้ใช้โต้ตอบกับระบบปฏิบัติการโดยปกติแล้วพิมพ์ที่บรรทัดคำสั่ง

8
วิธีทำ ls เรียงตามนามสกุลไฟล์แล้วชื่อ?
โดยค่าเริ่มต้นคำสั่ง ls จะเรียงลำดับตามชื่อไฟล์ แต่ฉันต้องการให้ไดเรกทอรีปรากฏก่อนประเภทไฟล์อื่น ฉันอาจต้องการเรียงไฟล์ตามนามสกุลเช่นวิธีที่ Windows explorer จัดเรียงตามคอลัมน์ชนิด มีวิธีการทำสิ่งที่คล้ายกับ ls หรือไม่?
44 linux  shell 

6
จะแสดงพา ธ ปัจจุบันใน command prompt ใน linux's sh (ไม่ใช่ bash) ได้อย่างไร?
ฉันต้องการแสดงเส้นทางปัจจุบันใน sh prompt (ไม่ใช่ bash shell) ซึ่งปัจจุบันแสดงเพียง "#" ฉันพยายามแนะนำสิ่งนี้ env PS1="$(whoami)@$(hostname):$(pwd)" และ set PS1="$(whoami)@$(hostname):$(pwd)" ใน/etc/profile. แต่เห็นได้ชัดว่าไม่ได้รีเฟรชเมื่อไดเรกทอรีมีการเปลี่ยนแปลงหรือการเปลี่ยนแปลงผู้ใช้ โปรดแนะนำวิธีสร้างไดนามิกนี้
43 linux  shell  sh  busybox 


5
วนลูปผ่านไดเรกทอรีย่อยและเรียกใช้คำสั่งในแต่ละรายการ
ฉันมีชุดของที่เก็บเรียงลำดับลงในไดเรกทอรีตาม VCS (Git, Mercurial, SVN) ของพวกเขา ด้วยการโค่นล้มฉันสามารถทำงานได้ svn update * ในไดเรกทอรีหลักและจะวนซ้ำแต่ละไดเรกทอรีและอัปเดตที่เก็บแต่ละรายการตามที่คาดไว้ นั่นไม่ใช่กรณีของ Git หรือ Mercurial ฉันต้องการสร้างสคริปต์ทุบตีที่ฉันสามารถเรียกใช้เพื่อทำสิ่งนั้นได้อย่างแน่นอนวนรอบไดเรกทอรีต่างๆ git pull หรือ hg pull ในแต่ละ. ฉันไม่ได้มีประสบการณ์การเขียนสคริปต์ทุบตีมากนัก
42 linux  bash  shell  script 

12
วิธีการเรียกคืนเครื่องพิมพ์ CUPS จากบรรทัดคำสั่ง?
ฉันมีเครื่องพิมพ์ใน CUPS ที่เกิดจากปัญหาไดรเวอร์ (HP 1010) เป็นครั้งคราวจะหยุดชั่วคราว ฉันต้องการเขียนเชลล์สคริปต์ที่จะทำงานหนึ่งครั้งต่อชั่วโมงเพื่อให้เครื่องพิมพ์กลับมาทำงานใน CUPS แต่ฉันไม่มีความคิดหลังจาก googling สองสามนาทีวิธีการดำเนินการต่อเครื่องพิมพ์จากบรรทัดคำสั่งเชลล์
42 linux  shell  printing  cups 

10
ระบบปฏิบัติการมีลักษณะเป็นอย่างไรโดยไม่มีเชลล์?
เชลล์เช่นทุบตีหรือคอมมิชชัน (สูงสุด Windows ME) หรือ CMD.EXE (ในรุ่นที่ใหม่กว่า) ให้อินเทอร์เฟซที่ (เหนือสิ่งอื่นใด) ยอมรับคำสั่งจากผู้ใช้ ระบบปฏิบัติการมีลักษณะอย่างไรก่อนที่เชลล์จะรัน? ระบบใช้งานอย่างไรก่อนที่เชลล์แรกจะถูกพัฒนา (เช่น UNIX ในต้นปี 1970) หากคอมพิวเตอร์ไม่สามารถยอมรับคำสั่ง (ไม่มีบรรทัดคำสั่ง) ผู้ใช้จะโต้ตอบกับมันได้อย่างไร อินเทอร์เฟซพื้นฐานที่สุดนี้คืออะไร ฉันสามารถรันอินเตอร์เฟสนี้ในเทอร์มินัลอีมูเลเตอร์หรือไม่มีวิธีใดที่อยู่เบื้องหลังเชลล์?

5
สามารถ ',,' สามารถใช้นามแฝงเป็น '.. ' ได้หรือไม่
บางครั้งเมื่อฉันต้องการที่จะเปลี่ยนแปลงไปยังไดเรกทอรีแม่ผมเข้าใจผิดพิมพ์แทนcd ,, cd ..มีวิธีที่ฉันสามารถทุบตีพิจารณางบเหล่านี้จะเหมือนกันหรือไม่ ฉันไม่เคยใช้เครื่องหมายจุลภาคในคำสั่งของฉัน จะเป็นการดีที่ผมอยากจะนามแฝงไป,, ..เมื่อฉันลองสิ่งนี้มันไม่ทำงาน ทำไมมันไม่ทำงาน ฉันจะแก้ไขปัญหานี้ได้อย่างไร $ alias ,,=.. $ cd ,, -bash: cd: ,,: No such file or directory
41 linux  bash  shell 

5
การค้นหาคำจำกัดความของฟังก์ชันทุบตี
ฉันทำงานในสภาพแวดล้อมที่มีเวทย์มนตร์เชลล์สคริปต์ดั้งเดิมอยู่มากมาย สิ่งหนึ่งที่ใช้งานหนักจากบรรทัดคำสั่งคือฟังก์ชั่นทุบตีที่ได้รับมาจากไฟล์บางไฟล์ที่รวมจากไฟล์บางไฟล์ที่รวมอยู่ในไฟล์บางไฟล์ ... รวมอยู่ใน. bash_profile ของฉัน มีวิธีรับความหมายหรือตำแหน่งของความหมายของฟังก์ชั่นเหล่านี้ที่ดียิ่งขึ้นโดยไม่ต้องติดตามพวกเขาลงถึง 5 ระดับรวมถึง?
41 bash  shell 

3
การใช้สัญลักษณ์แทนในคำสั่งด้วย zsh
ใช้คำสั่งเช่นrsyncและscpกับZSHฉันพบปัญหา แทนที่จะเป็นพฤติกรรม (ปกติ) ของการให้ไฟล์ที่ตรงกันทั้งหมดแก่ฉันมันจะไม่ทำงานและคืนค่า: ➜ ~ rsync -azP user@server:~/* ~/ zsh: no matches found: user@server:~/* ฉันจะแก้ไขสิ่งนี้ได้อย่างไร ของฉัน .zshrc ZSH=$HOME/.oh-my-zsh ZSH_THEME="robbyrussell" plugins=(git brew) source $ZSH/oh-my-zsh.sh export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/sbin

7
ฉันจะเปลี่ยนไฟล์ทั้งหมดที่เป็นของผู้ใช้รายหนึ่งเป็นผู้ใช้รายอื่นได้อย่างไร
ฉันกำลังมองหาคำสั่ง Linux ที่สามารถเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดที่เป็นของผู้ใช้ที่กำหนดโดยเฉพาะอย่างยิ่งในไดเรกทอรีเป้าหมายเพื่อผู้ใช้ที่ระบุอื่น คำสั่งในฝันของฉันจะมีลักษณะเช่นนี้ ... chuser -R --olduser tom --newuser jerry หรือ chuser -R --olduser 1066 --newuser 1492 นี่คือสถานการณ์ของฉัน ... ฉันมีไฟล์สำรอง (.tgz) ที่เก็บข้อมูลผู้ใช้และกลุ่มไว้ มันถูกนำมาจากเว็บเซิร์ฟเวอร์ที่ใช้ Apache และ MySQL ไฟล์ในการสำรองข้อมูลมาจากทั่วทั้งระบบและมีไฟล์จากผู้ใช้หลายรายและบัญชีประเภทระบบหลายระบบและเป็นกุญแจสำคัญที่เมื่อทำการกู้คืนบนเซิร์ฟเวอร์ใหม่การตั้งค่าจะไม่สูญหาย ปัญหาคือผู้ใช้ในเครื่องไฟล์ที่ถูกกู้คืนไม่ตรงกับไฟล์ในไฟล์สำรอง เช่นเครื่องทั้งสองมีผู้ใช้ MySQL แต่มีรหัสผู้ใช้ที่แตกต่างกันและมีรหัสผู้ใช้หลายตัวที่มีอยู่ในเครื่องทั้งสองที่เป็นของผู้ใช้ที่แตกต่างกัน ซึ่งหมายความว่าไม่มีวิธีการซิงค์ผู้ใช้บนเครื่องใหม่กับผู้ใช้บนเครื่องเก่า ฉันสามารถค้นหาไฟล์ผู้ใช้ทั้งหมดด้วยคำสั่ง find เช่นนี้ ... find /decompressed-backup-dir -uid 1050 หรือ find /decompressed-backup-dir -user tom ถ้าอย่างที่ฉันสงสัยไม่มีวิธีที่จะทำสิ่งที่ฉันต้องการด้วยคำสั่งเดียวแล้วบางทีอาจมีวิธีที่จะไพเราะผลลัพธ์ของคำสั่ง find ไปยังคำสั่งอื่นเพื่อจัดการกับการเปลี่ยนแปลงความเป็นเจ้าของ? ฉันสามารถทำได้ด้วยสคริปต์ …

5
การลบไฟล์นับล้านไฟล์
ฉันมีคนเต็มไปด้วยภาพ gif นับล้าน มีคำสั่ง rm มากเกินไป ฉันได้ลองใช้คำสั่ง find แบบนี้แล้ว: find . -name "*.gif" -print0 | xargs -0 rm ปัญหาคือมันทำให้เครื่องของฉันแย่มากและทำให้ลูกค้าต้องเสียเวลาเนื่องจากเซิร์ฟเวอร์ มีวิธีใดที่เร็วกว่าในการลบไฟล์ทั้งหมดเหล่านี้ ... โดยไม่ล็อคเครื่อง?
38 linux  bash  shell  find  rm 

5
คำสั่งที่รันอยู่ทำให้ verbosely ช้าลงหรือไม่?
ฉันพบว่าตัวเองใช้-vแฟล็กสำหรับแอปพลิเคชั่นมากมายน้อยลงเรื่อย ๆ (โดยเฉพาะอย่างยิ่งสำหรับสิ่งเล็กน้อยเช่นtarและcp) อย่างไรก็ตามเมื่อฉันทำและฉันพูดว่าการขยายไฟล์ขนาดใหญ่มันจะใช้เวลานานกว่าเมื่อฉันไม่ได้ใช้-vแฟล็ก ฉันถือว่านี่เป็นเพราะเทอร์มินัลต้องประมวลผลข้อความและฉันเติมบัฟเฟอร์อะไรก็ตามที่มันอาจมี แต่คำถามของฉันคือสิ่งนี้ทำให้แอปพลิเคชันทำงานช้าลงจริงหรือทำให้เสร็จในระยะเวลาเท่ากันและสิ่งที่ฉันเห็นก็คือเครื่องพยายามติดตาม
37 linux  unix  shell 

4
ไม่สามารถเปลี่ยนชื่อไฟล์ที่ชื่อขึ้นต้นด้วยยัติภังค์
ฉันพยายามที่จะเปลี่ยนชื่อไฟล์ด้วยเครื่องหมายยัติภังค์ที่จุดเริ่มต้นของชื่อและทั้งสองนี้: mv -example-file-name example-file-name และนี่: mv '-example-file-name' example-file-name ผลลัพธ์: mv: invalid option -- 'e'

4
เทียบเท่า / ทางเลือกสำหรับ Alt + Dot ใน Mac
สิ่งหนึ่งที่ฉันพลาดจากเชลล์ลินุกซ์คือทางลัดAlt + Dot มันทำอะไรคือใส่อาร์กิวเมนต์สุดท้ายของคำสั่งก่อนหน้า ดูเหมือนจะเป็นเทคนิคเล็กน้อย แต่มีประโยชน์จริงๆ เช่นถ้าคุณพิมพ์สิ่งนี้: $ ls /Applications/MAMP/conf/apache/ ครั้งต่อไปที่คุณต้องพิมพ์คำสั่ง + ทางลัดและอาร์กิวเมนต์จะเสร็จสมบูรณ์สำหรับคุณ $ cd 'alt+dot' บน Mac ฉันรู้ 2 ทางเลือก; กดปุ่มEsc + Dotหรือพิมพ์! $ , *กับการตั้งค่าพื้นที่มายากล อย่างไรก็ตามในขณะที่ทางเลือกทั้งสองแทรกอาร์กิวเมนต์สุดท้ายที่คุณใช้พวกเขาไม่สามารถเลื่อนย้อนกลับไปในประวัติคำสั่งเช่นพิมพ์Alt + Dotซ้ำ ๆ ตอนนี้ฉันสามารถอยู่กับตัวเลือกนี้ได้ แต่ฉันอยากรู้ว่ามีใครรู้วิธีที่ดีกว่าในการทำสิ่งนี้
36 linux  mac  bash  terminal  shell 

3
Bash Shebang สำหรับหุ่น?
ฉันมีสคริปต์ทุบตีฉันมีการตั้งค่าที่ใช้เป็นส่วนใหญ่ #!/bin/bash แต่ฉันพบบางอย่างที่ดูเหมือน #!/bin/bash -e #!/bin/bash -x #!/bin/bash -ex และอื่น ๆ บางคนสามารถอธิบายความหมายและประโยชน์ของตัวเลือก shebang เหล่านี้และไม่ว่าพวกเขาจะนำไปใช้กับ shebang อื่น ๆ หรือไม่?
36 bash  shell  script 

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