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

Zsh เป็นเชลล์ที่มีคุณสมบัติบรรทัดคำสั่งและสคริปต์ขั้นสูงมากมาย

3
มีวิธีการเพิ่มไดเรกทอรีไปยัง PATH ของฉันเป็น zsh หากยังไม่มีอยู่หรือไม่?
มีวิธีง่ายๆในการ zsh เพื่อเพิ่มไดเรกทอรีไปยังเส้นทางของฉันเท่านั้นหากมันไม่ได้มีอยู่แล้ว? (หรือโดยทั่วไปตัวแปรสภาพแวดล้อมใด ๆ ) ฉันได้พยายาม: PATH+=/my/directory ... แต่ถ้าถูกดำเนินการสองครั้งระบบจะเพิ่มสองครั้ง
15 zsh  path 

1
อะไรคือความแตกต่างที่สำคัญระหว่างการกำหนดค่า grml zsh และการกำหนดค่า oh-my-zsh
ตอนนี้ฉันอยู่บน oh-my-zsh แต่ฉันไม่แน่ใจว่ามันเป็นตัวเลือกที่สมบูรณ์แบบ เป็นความแตกต่างที่สำคัญระหว่างสิ่งที่grml zsh การตั้งค่า ( GitHub repo ) และOh-My-zsh การตั้งค่า ? ฉันควรเลือก grml หรือ oh-my-zsh ในกรณีใด
15 zsh  oh-my-zsh  grml 

2
ฉันสามารถทำให้อินเทอร์แอคทีฟได้เฉพาะเมื่อใช้ globbing หรือไม่ (ใน bash หรือ zsh หรือทั้งสองอย่าง)
เมื่อใดก็ตามที่ฉันมีrmหลายรายการพร้อม ๆ กันกับที่มีเปลือกหอยกลมและมีความเป็นไปได้แม้แต่น้อยที่สุดที่รูปแบบขยายออกไปมากกว่าที่ฉันคาดไว้ฉันพยายามจำไว้เสมอว่าจะเพิ่ม-iแต่แน่นอนฉันสามารถลืมและระเบิดสิ่งที่มีประโยชน์ บางคนพยายามที่จะแก้ปัญหานี้ด้วยนามแฝงเช่นalias rm='rm -i'แต่ฉันเกลียดความคิดในการสร้าง rm แบบอินเทอร์แอคทีฟเสมอเพราะจากนั้นฉันจะใช้นิสัย-fตลอดเวลาซึ่งจะเอาชนะวัตถุประสงค์ทั้งหมดอย่างเห็นได้ชัด สิ่งที่ผมอยากจะทำคือให้rmใช้เฉพาะ-iเมื่อฉันใช้ globbing และ-fแน่นอนที่จะแทนที่ดังนั้นฉันยังคงสามารถระเบิดไดเรกทอรีออกไปทั้งที่มีตามปกติ-irm -rf junk ดังนั้นrm *blah*จริงๆจะเป็นrm -i *blah*แต่rm blahจะทำงานตรงตามที่พิมพ์ ในกรณีที่มีความแตกต่างในวิธีการที่จะประสบความสำเร็จในเปลือกหอยที่แตกต่างกันฉันจะเลือกคำตอบที่ให้วิธีการสำหรับทั้ง bash และ zsh มากกว่าคำตอบที่ครอบคลุมอย่างใดอย่างหนึ่งเท่านั้น หมายเหตุ : ฉันไม่เชื่อจริง ๆ ว่านี่เป็นความคิดที่ดี ฉันแค่ถามว่ามันเป็นไปได้ หากคุณคิดว่านี่เป็นความคิดที่โง่ฉันจะมีความสุขมากที่จะได้ยินเหตุผลที่อยู่เบื้องหลังความคิดเห็นของคุณ แต่โปรดอย่าแสดงความคิดเห็นไม่ได้โพสต์ดังกล่าวในฟิลด์คำตอบ คำตอบจริง ๆ บอกฉันว่าจะทำอย่างไรหรืออธิบายว่า / ทำไมจึงเป็นไปไม่ได้ (หรืออาจเสนอวิธีอื่นในการรับผลลัพธ์ที่คล้ายกัน) แต่ถ้าคุณต้องการที่จะบอกฉันว่าทำไมนี้เป็นใบ้กรุณาโพสต์เป็นความคิดเห็น ฉันจะลบล้างความคิดเห็นที่มีเหตุผลแม้ว่าฉันจะไม่เห็นด้วยกับข้อสรุปก็ตาม
15 bash  zsh  wildcards  rm 

4
การวางจากคลิปบอร์ดไปยัง zsh หรือ bash เชลล์ที่เปิดใช้งาน vi
ฉันต้องการวางจากคลิปบอร์ดของระบบ (หรือการเลือกข้อความ) ลงในเชลล์พร้อมคำสั่งแบบ "vi-like" โดยใช้แป้นพิมพ์ ปกติฉันจะใช้ zsh และบางครั้งก็ทุบตี ในทั้งสองกรณีฉันมีการตั้งค่าเชลล์ที่มีพฤติกรรมคล้าย vi ( bindkey -v/ set -o vi) "+pในกลุ่มพฤติกรรมฉันกำลังมองหาที่สามารถใช้ได้กับลำดับที่สำคัญ ลำดับของคีย์เฉพาะนี้ไม่ทำงานอย่างที่คาดไว้ใน shell prompt ที่เปิดใช้งาน vi มีวิธีใดบ้างที่จะเปิดใช้งานสิ่งนี้หรือลักษณะการทำงานที่คล้ายกันโดยใช้แป้นพิมพ์เท่านั้นในขณะที่ยังคงอยู่กับการทำ keybindings เหมือน vi ในพรอมต์ zsh หรือ bash shell? - แก้ไข - กรณีการใช้งาน: ฉันมักจะนำทางระหว่าง Firefox ด้วยPentadactyl addon , เทอร์มินัลอีมูเลเตอร์และกลุ่มตัวเอง - โดยใช้ตัวจัดการหน้าต่างXmonadด้วยปุ่มที่กำหนดเองเพื่อเลื่อนไปมา ทั้งสามโปรแกรมมีการโยงคีย์คล้าย vi ซึ่งมีประสิทธิภาพมาก (สำหรับ "หน่วยความจำนิ้ว") ดังนั้นจึงเป็นข้อความในอุดมคติสำหรับการสื่อสารระหว่างกันโดยใช้ไวยากรณ์ vim …
15 bash  shell  zsh  vi  clipboard 

3
การตรวจสอบ rm ซ้ำสองครั้งใน zsh
เมื่อฉันทำ rm * เป็น zsh ฉันจะได้รับสิ่งนี้: 2014-06-08 10:14:23 $ rm * zsh: sure you want to delete all the files in /home/assay/assay/log [yn]? y rm: remove regular file `development.log'? y zsh แรกถามฉันว่าฉันแน่ใจว่าฉันต้องการลบทั้งหมดหรือไม่จากนั้น rm จะขอไฟล์เฉพาะแต่ละไฟล์ ฉันจะยืนยัน zsh ได้อย่างไร
15 zsh  rm 

2
ฉันจะเปลี่ยน umask สำหรับคำสั่งเดียวเท่านั้นได้อย่างไร
ฉันจะรันคำสั่งแบบโต้ตอบใน Linux (zsh หากมีความสำคัญ) ด้วย umask ที่แตกต่างจากค่าเริ่มต้นสำหรับคำสั่งเดียวเท่านั้นได้อย่างไร บางทีการรวมคำสั่งเข้าด้วยกันในบรรทัดเดียว? umask ใหม่ควรใช้กับคำสั่งนั้นและกลับสู่ค่าเริ่มต้นสำหรับคำสั่งถัดไปที่ป้อน โดยหลักการแล้วคำสั่งจะไม่เชื่อในการบังคับ umask เริ่มต้นก่อนที่จะป้อน (กล่าวอีกนัยหนึ่ง umask เริ่มต้นไม่จำเป็นต้องระบุ)
15 zsh  umask 

8
ตรวจสอบตัวแปรเป็นอาร์เรย์ใน Bourne like shell หรือไม่
ใน Bourne like shell ซึ่งสนับสนุนตัวแปรอาเรย์เราสามารถใช้การวิเคราะห์คำเพื่อตรวจสอบว่าตัวแปรเป็นอาร์เรย์หรือไม่ a=(1 2 3)คำสั่งทั้งหมดด้านล่างนี้ถูกเรียกใช้หลังจากการทำงาน zsh: $ declare -p a typeset -a a a=( 1 2 3 ) bash: $ declare -p a declare -a a='([0]="1" [1]="2" [2]="3")' ksh93: $ typeset -p a typeset -a a=(1 2 3) pdksh และอนุพันธ์: $ typeset -p a set -A a …
14 bash  shell  zsh  ksh  yash 

2
พร้อมรับคำ 256 สีใน Zsh
ฉันจะตั้งค่าพรอมต์ของฉันให้เป็นสีแบบ 256 สีได้อย่างไร ฉันกำลังมองหาที่เทียบเท่ากับพรอมต์ทุบตี: local DEFAULT="\[\033[0;39m\]" local ROOK="\[\033[38;5;24m\]" PS1="${ROOK}\$${DEFAULT} "
14 zsh  colors 

1
เปลี่ยนธีม Zsh ใน Android Studio
ฉันเพิ่งกระโดดขึ้นเรือมาzshและฉันใช้Oh my Zsh! blinksกระทู้ มันดูดีมากในเทอร์มินัล OSX แต่มันดูแย่มากในเทอร์มินัลของ Android Studio ดังนั้นคำถามของฉันคือมีวิธีการตรวจสอบว่าเซสชั่นนี้ได้เปิดใน Android Studio และไม่ได้อยู่ใน Terminal OSX และเปลี่ยนzshชุดรูปแบบตามที่?

2
คำสั่ง scp ทำงานใน bash ไม่ทำงานใน zsh
คำสั่งนี้ทำงานได้ดีในทุบตี: bash-3.2$ scp luna4:/u/paige/maye/src/diviner/notebooks/plots/hk_* . hk_az.png 100% 126KB 126.0KB/s 00:00 hk_baffle.png 100% 166KB 166.3KB/s 00:01 hk_bb.png 100% 144KB 143.8KB/s 00:00 hk_el.png 100% 115KB 115.3KB/s 00:00 hk_fpa.png 100% 123KB 123.2KB/s 00:00 hk_fpb.png 100% 126KB 125.7KB/s 00:00 hk_hybrid.png 100% 99KB 98.7KB/s 00:00 hk_oba.png 100% 140KB 139.7KB/s 00:00 hk_solar.png 100% 206KB 205.6KB/s 00:00 …
14 zsh  scp 

5
รายการ X ไฟล์สุ่มจากไดเรกทอรี
มีวิธีในการแสดงรายการชุดของไฟล์ที่สุ่ม 30 ไฟล์จากไดเรกทอรีโดยใช้คำสั่ง Linux มาตรฐานหรือไม่? (ในzsh) คำตอบสูงสุดที่อธิบายไว้ที่นี่ไม่ทำงานสำหรับฉัน ( sortไม่รู้จักตัวเลือก-R)
14 shell  files  zsh 

4
วิธีการลบคำสั่งสุดท้าย (หรือคำสั่งปัจจุบันสำหรับโบนัส) จากประวัติ zsh
แน่นอนว่ามีวิธีที่ชาญฉลาดอย่างง่ายที่สุดในการทำเช่นนี้ แต่เนื่องจากประวัติใน zshell ดูเหมือนจะใช้นามแฝงเป็น fc จึงไม่มีวิธีใช้เทคนิคที่กล่าวถึงในวิธีการลบบรรทัดเดียวออกจากประวัติ . ตัวชี้ใด ๆ เกี่ยวกับวิธีการทำเช่นนี้? กรณีการใช้งานของฉันคือการลบคำสั่งที่ออกล่าสุดจากประวัติดังนั้นจึงหยุดการเติมข้อความอัตโนมัติ (ส่วนใหญ่เมื่อคุณพิมพ์ผิดบางอย่าง ฉันรู้ว่าฉันสามารถรับคำสั่งที่ออกล่าสุดโดยทำ history | tail -n 1แต่ history -d ไม่ทำงานและฉันไม่พบเอกสารที่เหมาะสมสำหรับ zsh

2
ยกเลิกการเสร็จสิ้น แต่เสร็จสมบูรณ์เท่านั้นใน zsh
เมื่อฟังก์ชั่นเสร็จสิ้นใช้เวลานานฉันสามารถขัดจังหวะโดยกดCtrl+ C(คีย์อินเตอร์รัปต์เทอร์มินัลส่ง SIGINT) หรือCtrl+ G(ผูกไว้กับsend-break) ฉันถูกทิ้งให้อยู่กับคำที่ไม่สมบูรณ์ อย่างไรก็ตามหากฉันกดCtrl+ CหรือCtrl+ Gเมื่อฟังก์ชั่นเสร็จสิ้นการกดปุ่มของฉันอาจยกเลิกบรรทัดคำสั่งและแจ้งให้ฉันทราบทันทีแทนการยกเลิกการเสร็จสิ้น ฉันจะตั้งค่า zsh ได้อย่างไรเพื่อให้บางคีย์จะยกเลิกการเสร็จสิ้นอย่างต่อเนื่อง แต่จะไม่ทำอะไรเลยหากไม่มีฟังก์ชั่นเสร็จสิ้นที่ทำงานอยู่?

5
CP ไฟล์ที่ซ่อนอยู่กับรูปแบบ glob
สถานการณ์: $ mkdir foo && touch foo/.test $ cp foo/* . zsh: no matches found: foo/* (or bash : cp: cannot stat ‘foo/*’: No such file or directory) ฉันมีไดเรกทอรีที่เต็มไปด้วยโฟลเดอร์และไฟล์ที่ซ่อนอยู่ เกิดอะไรขึ้นและทางออกคืออะไร?
13 zsh  wildcards  cp  dot-files 

1
Zsh เสร็จทำให้เปิดใช้งาน shift-tab
เมื่อ zsh แสดงเมนูของความสำเร็จที่เป็นไปได้ฉันต้องการให้ฉันใช้shift-tabเพื่อเข้าถึงรายการที่เสร็จสมบูรณ์ก่อนหน้านี้ - มีตัวเลือกที่ควบคุมว่าจะใช้คีย์ใดในการเข้าถึงรายการที่เสร็จสมบูรณ์ก่อนหน้านี้หรือไม่ และถ้าเป็นเช่นนั้นสิ่งที่ฉันจะต้องเพิ่มไปยัง~/.zshrc ไฟล์ของฉันเพื่อตั้งค่า ถ้ามันสร้างความแตกต่างฉันสามารถนำทางผ่านเมนูเสร็จโดยใช้ปุ่มลูกศร แต่ฉันไม่ชอบการทำเช่นนี้เพราะปุ่มลูกศรรู้สึกผิดที่และใช้งานไม่สะดวก

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