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

Zsh เป็นเชลล์ที่ออกแบบมาสำหรับการใช้งานแบบโต้ตอบแม้ว่ามันจะเป็นภาษาสคริปต์ที่ทรงพลังเช่นกัน

1
ฉันจะกำหนดค่าสีของไดเรกทอรี 'ls' ใต้ zsh ได้อย่างไร
ฉันใช้ 'zsh' ในบางไดเรกทอรีเมื่อฉันทำ 'ls --color = tty' ฉันเห็นบางไดเรกทอรีมี 'ข้อความสีฟ้า' พร้อม 'พื้นหลังสีเขียว' ซึ่งทำให้อ่านยาก คุณช่วยบอกวิธีกำหนดค่านี้ได้ไหม ขอขอบคุณ.
20 zsh 

2
การเขียนเชลล์สคริปต์ที่จะทำงานบนเชลล์ใด ๆ (ใช้หลายบรรทัด Shebang?)
ฉันเพิ่งเริ่มเข้าใจเชลล์สคริปต์มากขึ้นและฉันก็แค่โยนสคริปต์ลงในไฟล์ทำเครื่องหมายchmod +xและทำทุกอย่างแล้ว/path/to/script.shให้ล่ามทุกตัวที่เป็นค่าเริ่มต้นมีทางด้วยซึ่งฉันคิดว่าเป็น zsh เพราะนั่นคือสิ่งที่ ฉันใช้เปลือกของฉัน เห็นได้ชัดว่ามันก็ดูเหมือนว่ามันเป็นเพียง/bin/shโดยค่าเริ่มต้นแม้ว่าผมจะรันสคริปต์จาก zsh พรอมต์เพราะผมเริ่มวางสิ่ง zsh zsh /path/to/script.shเฉพาะในสคริปต์ของฉันและมันก็ล้มเหลวถ้าฉันทำงาน เพื่อให้ตรงประเด็นนี่คือคำถามของฉัน: เชลล์ตัวไหนรันสคริปต์เมื่อไม่มีบรรทัด shebang ( #!/path/to/shell) ที่จุดเริ่มต้น? ฉันถือว่า/bin/shแต่ฉันไม่สามารถยืนยันได้ อะไรคือ "แนวทางปฏิบัติที่ดีที่สุด" ในแง่ของการเขียนเชลล์สคริปต์ที่จะทำงานบนแพลตฟอร์มใด ๆ (ตกลงนี่เป็นแบบปลายเปิด) เป็นไปได้ไหมที่จะเขียนสคริปต์ที่พยายามใช้ zsh และกลับไปใช้ทุบตีหาก zsh ไม่พร้อมใช้งาน? ฉันได้ลองใส่ Shebang สองบรรทัดเช่นด้านล่าง แต่มันก็ผิดพลาดbad interpreter: /bin/zsh: no such file or directoryถ้าฉันลองมันบนเครื่องที่ไม่มี zsh #!/bin/zsh #!/bin/bash

2
วิธีการลบนามแฝง zsh?
ฉันมีนามแฝงที่กำหนดไว้ล่วงหน้าโดยปลั๊กอิน oh-my-zsh -> % alias gcm gcm='git checkout master' ฉันต้องการลบมันเช่นฉันต้องการalias | pcregrep "\bgcm\b"คืน 1 ฉันได้ลองด้วยalias gcm=''แต่หลังจากนั้นนามแฝงยังคงมีอยู่
19 zsh  alias 

3
เปลี่ยนรูปแบบเอาต์พุตของเวลาของ zsh
ฉันเพิ่งเปลี่ยนมาzshเป็น อย่างไรก็ตามฉันไม่ชอบวิธีการที่timeคำสั่ง builtin ยังส่งออกคำสั่งว่ามันเป็นเวลา ฉันชอบbashเอาท์พุทสไตล์มาก ใครรู้วิธีสลับมันได้หรือไม่ zsh: [casqa1:~/temp]$ time grep foo /dev/null /usr/local/gnu/bin/grep --color -i foo /dev/null 0.00s user 0.00s system 53% cpu 0.004 total ทุบตี: [casqa1:~/temp]$ bash casqa1.nyc:~/temp> time grep foo /dev/null real 0.0 user 0.0 sys 0.0 ขอบคุณ / YGA
19 time  zsh 

1
วิธีการรับรายการฟังก์ชันที่กำหนดใน zsh (เช่นคำสั่ง alias สำหรับ alias)
ฉันพิมพ์ได้ alias และรับรายการนามแฝงที่กำหนดใน zsh ฉันจะรับรายการชื่อฟังก์ชันที่กำหนดใน zsh ได้อย่างไร? เมื่อฉันพิมพ์ "ฟังก์ชั่น" หน้าต่าง shell ของฉันจะค้างหลังจากแสดงฟังก์ชั่นมากมายโดยจะสิ้นสุดที่ __rvm_checksum_none () { [[ -z "${_checksum_md5:-}" && -z "${_checksum_sha512:-}" ]] } __rvm_checksum_read () { สิ่งที่น่ารำคาญอย่างยิ่งคือสิ่งนี้จะไม่เลิกกับ ctrl-c (ใช้ item2 และ terminal) iterm2: รูปภาพของเทอร์มินัลมีปัญหาเดียวกัน:
19 zsh 

5
ALT + ลูกศรเลื่อนไปมาระหว่างคำใน zsh และ iTerm2
ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ผู้ให้บริการโฮสต์แห่งหนึ่งและสังเกตเห็น ALT + ซ้ายและ ALT + ย้ายไปทางขวาระหว่างคำในเชลล์พรอมต์ในหน้าจอ GNU การโยงคีย์ชนิดใดที่ฉันต้องกำหนดค่าและตำแหน่งที่จะรับพฤติกรรมนี้กับ OS X zsh ในพื้นที่ของฉันที่ทำงานใน iTerm2

1
ฉันจะปฏิเสธการแสดงออกของ zsh globbing อย่างถูกต้องได้อย่างไร
ฉันต้องการแสดงรายการไฟล์ทั้งหมด แต่ที่ลงท้ายด้วย owp: ดังนั้นฉันได้ลอง: ls -l *.(^owp) zsh: unknown sort specifier ls -l *(^owp) zsh: unknown sort specifier ls -l *[^o][^w][^p] # does not work either, missing some files ไม่มีใครทำงาน ฉันจะทำอย่างไรในวิธีที่ถูกต้อง? . zshrc ของฉันมี "set extendedglob"
18 zsh  globbing 

2
Shell SIGKILL การทำพวงกุญแจ
ฉันจะตั้งค่าการผูกกุญแจเพื่อส่งSIGKILLงานเบื้องหน้าปัจจุบันได้อย่างไร ผมรู้อยู่แล้วว่าCtrl+ Cเป็นSIGINTและCtrl+ คือ\ SIGQUITฉันต้องการตัวเลือกที่รุนแรงกว่านี้ มีอะไรที่ไม่สามารถจัดการได้อย่างจริงจังเกี่ยวกับเรื่องนี้?

3
วิธีลบไฟล์ในบรรทัดคำสั่งด้วยนิพจน์ทั่วไป
ช่วยบอกว่าฉันมี 20 ไฟล์ชื่อ FOOXX โดยที่ XX คือจำนวนไฟล์เช่น 01, 02 เป็นต้น ในตอนนี้ถ้าฉันต้องการลบไฟล์ทั้งหมดที่ต่ำกว่าหมายเลข 10 มันเป็นเรื่องง่ายและฉันก็ใช้ไวด์การ์ดเช่น rm FOO0 * อย่างไรก็ตามหากฉันต้องการลบไฟล์ในช่วงที่ระบุเช่น 13-15 นี่จะยากขึ้น rm FPP [13-15] ไม่ทำงานและถามฉันว่าฉันต้องการลบไฟล์ทั้งหมดหรือไม่ Likewse rm FOO1 [3-5] ต้องการลบไฟล์ทั้งหมดที่ขึ้นต้นด้วย FOO1 ดังนั้นวิธีที่ดีที่สุดในการลบช่วงของไฟล์เช่นนี้คืออะไร? ฉันได้ลองทั้ง bash และ zsh แล้วและฉันไม่คิดว่าพวกเขาจะแตกต่างกันมากนักสำหรับงานพื้นฐานเช่นนี้?
18 linux  bash  shell  regex  zsh 

2
การแท็บ ZSH ของคำสั่ง git ช้ามาก ฉันจะปิดได้อย่างไร
ถ้าฉันพิมพ์: rm <TAB> ฉันจะเห็นความสำเร็จที่เป็นไปได้เกือบจะในทันที อย่างไรก็ตามถ้าฉันพิมพ์: git rm <TAB> มันจะหยุดเป็นเวลาหลายวินาทีหากอยู่ใน git repo หรือไม่สามารถแสดงความสำเร็จใด ๆ ได้ถ้าฉันอยู่นอก git repo ฉันจะแก้ไขพฤติกรรมนี้ได้อย่างไร ไม่มีอะไรใน. zshrc ของฉันที่ดูเหมือนว่าเกี่ยวข้องกับ git: - /
18 unix  shell  git  zsh 

3
การลบช่องว่างที่ไร้ประโยชน์เมื่อสิ้นสุดพรอมต์ขวาของ zsh ($ RPROMPT)
ใน zsh มีอักขระเว้นวรรคอยู่ทางด้านขวาของพรอมต์ขวาของฉัน ฉันพยายามด้วย. zshrc ง่าย ๆ เช่น: PROMPT="#" RPROMPT="*" มีช่องว่างหลังจาก * ทางด้านขวาของหน้าจอเสมอ นี่คือภาพหน้าจอที่แสดงปัญหา (ฉันเลือกพื้นที่บนหนึ่งบรรทัด) ขอบคุณ
18 zsh  prompt 

1
หยุด zsh จากการกินพื้นที่ก่อนสัญลักษณ์ท่อได้อย่างไร
เมื่อฉันพิมพ์ช่องว่างตามด้วยสัญลักษณ์'|'ไพพ์บนบรรทัดคำสั่ง zsh zsh กินช่องว่างวางสัญลักษณ์ไพพ์ขึ้นตรงกับคำก่อนหน้า ฉันจะหยุดมันจากการทำเช่นนั้นได้อย่างไร ฉันไม่แน่ใจเกี่ยวกับอนุสัญญาโวหารใด ๆ ที่เป็นไปได้ แต่ฉันชอบช่องว่างทั้งสองด้านของสัญลักษณ์ไปป์เพื่อความสะดวกในการอ่าน ฉันใช้ oh-my-zsh ค่อนข้างออกนอกกรอบ วิธีการแก้ จากคำตอบของ mpy ด้านล่างฉันใช้วิธีแก้ปัญหาต่อไปนี้: โดยค่าเริ่มต้น ZLE_REMOVE_SUFFIX_CHARS จะไม่ได้กำหนดใน zsh / ohmyzsh เมื่อไม่ได้กำหนดจะทำหน้าที่เหมือนเป็น: ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|' ฉันเพิ่มคำจำกัดความต่อไปนี้ใน ~ / .zshrc ของฉัน: ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&' (ทั้งหมดยกเว้น pipe) และ presto สมบูรณ์แบบ! ปัญหาหายไป
18 zsh  oh-my-zsh 

2
Zsh พูดว่า "ไม่พบรายการที่ตรงกัน" เมื่อพยายามดาวน์โหลดวิดีโอด้วย youtube-dl
ฉันดาวน์โหลด youtube-dl โดยใช้ pip บน CrunchBang (Debian Wheezy distro) เมื่อฉันวิ่ง youtube-dl {video URL} ฉันเข้าใจ zsh: no matches found: {video URL} ฉันเดาว่ามันเกี่ยวข้องกับ zsh เพราะฉันพบผู้ใช้บางคนในฟอรัม Arch ที่บ่นเกี่ยวกับเรื่องนี้ เมื่อฉันเปลี่ยนเป็นการทุบตีมันก็ใช้ได้
17 linux  zsh 

2
Zsh-Terminal กลับมาทำงาน (OS X Lion)
OS X Lion มีคุณสมบัติ "ดำเนินการต่อ" เช่นเมื่อคุณเปิดแอปอีกครั้งแอปจะเรียกคืนหน้าต่างและเนื้อหาทั้งหมด ใช้งานได้กับ Terminal เช่นกัน แต่ถ้าคุณใช้ Zsh แทน Bash มันจะไม่คืนค่าไดเรกทอรีที่เปิด ฉันจะแก้ไขสิ่งนี้ได้อย่างไร


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