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

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

2
ฉันจะทำให้คำสั่งปรากฏเป็นตัวหนาใน zsh ได้อย่างไร
ฉันได้ตั้งค่า bash shell ของฉันเพื่อให้คำสั่งใด ๆ ที่ฉันพิมพ์ปรากฏเป็นตัวหนาและผลลัพธ์ของคำสั่งจะแสดงในน้ำหนักปกติ: ฉันทำสิ่งนี้โดยการเพิ่ม\e[01mที่ส่วนท้ายของPS1ตัวแปรของฉันเพื่อเปิดตัวหนาและใช้trap DEBUGเพื่อปิด: trap 'printf "\e[0m" "$_"' DEBUG ด้วยวิธี\e[0mนี้พิมพ์ก่อนที่จะดำเนินการแต่ละคำสั่งและฉันได้รับน้ำหนักตัวอักษรปกติในการส่งออก ฉันจะไปเกี่ยวกับการรับผลเหมือนกันได้zshอย่างไร
18 zsh  colors  prompt 

3
ฉันจะแสดงรายการตัวแปรเชลล์ทั้งหมดได้อย่างไร
อ่านเกี่ยวกับคำถามนี้: ใน zsh ฉันจะแสดงรายการตัวแปรสภาพแวดล้อมทั้งหมดได้อย่างไร? ฉันสงสัยว่าฉันจะแสดงรายการตัวแปรเชลล์ทั้งหมดได้อย่างไร นอกจากนี้ความแตกต่างระหว่างตัวแปรเชลล์และตัวแปรสภาพแวดล้อมใช้กับเชลล์อื่นที่ไม่ใช่ zsh หรือไม่ ฉันสนใจ Bash และ Zsh เป็นหลัก แต่ก็เป็นการดีที่ได้ทราบว่าจะทำสิ่งนี้ได้อย่างไรในกระสุนหลักอื่น ๆ

1
ใน zsh ความแตกต่างระหว่าง cat <(cat) กับ cat | cat vs cat = (cat)?
ฉันคาดหวังcat &lt;(cat)และcat | catทำสิ่งเดียวกัน: คัดลอกบรรทัดจาก stdin ไปยัง stdout ความเข้าใจของฉันคือการที่ทั้งสองจะดำเนินการcatใน subshell การเปลี่ยนเส้นทาง subshell cat's stdout เพื่อไปป์ที่มีชื่อชั่วคราวและจากนั้นดำเนินการอื่นcatในเปลือกปัจจุบันกับ stdin มันเปลี่ยนเส้นทางไปยังท่อ แต่cat &lt;(cat)ช่วยให้ฉันพิมพ์ที่ terminal ของฉัน แต่ไม่มีเส้นที่นำเข้าได้รับการคัดลอกและ^Dล้มเหลวในการส่งสัญญาณEOF; cat | catทำงานได้ตามที่คาดหวัง จากการทดสอบเพิ่มเติมฉันได้ตรวจสอบว่าcat =(cat)มีปัญหาคล้ายกันcat &lt;(cat)แต่ใช้งานได้ตามที่คาดไว้: stdin ทั้งหมดไปจนถึงการ^Dคัดลอกไปยัง stdout ในครั้งเดียว ใครสามารถช่วยฉันเข้าใจสิ่งที่ zsh กำลังทำอยู่ภายใต้ประทุน?

2
zsh: ตั้งค่า TERM = screen-256color ใน tmux แต่ xterm-256color โดยไม่มี tmux
ฉันต้องการ$TERMให้ฉันอยู่xterm-256colorนอก tmux (ใน terminal "ธรรมดา" กับ zsh) แต่screen-256colorภายใน tmux ก่อนอื่นฉันลอง: เพิ่มของฉันexport TERM='xterm-256color'~/.zshrc เพิ่มset -g default-terminal "screen-256color"ของฉัน~/.tmux.conf ตอนนี้เมื่อฉันเปิดเทอร์มินัล (พูด xterm) TERMคือxterm-256colorซึ่งถูกต้อง แต่เมื่อฉันเรียกใช้ tmux TERMเป็นอีกครั้งxterm-256color! ~/.zshrcแล้วฉันพยายามที่จะแสดงความคิดเห็นออกมาในแนวของฉัน ตอนนี้เมื่อผมเปิด terminal, TERMเป็นxtermและเมื่อผมทำงาน tmux, คือTERM screen-256colorดังนั้นดูเหมือนว่าถ้าผมตั้งTERMใน.zshrc, tmux แรกชุดTERMที่จะscreen-256colorวิ่งเปลือก (ซึ่งเป็น zsh) และ zsh อ่าน.zshrcและการตั้งค่าใหม่เพื่อTERMxterm-256color ดังนั้นวิธีที่จะทำให้TERMอยู่xterm-256colorในขั้ว "ธรรมดา" และscreen-256colorใน tmux?
18 zsh  tmux  xterm 

2
zsh: ไม่รวมไฟล์จากรูปแบบ
ว่าฉันมีไฟล์ต่อไปนี้: |-- bar `-- foo |-- type_A_1 |-- type_A_2 |-- type_B_1 |-- type_B_2 |-- type_B_xx |-- type_B_xx `-- something_else ฉันคิดว่าคำสั่งดังต่อไปนี้ print -l foo/*~{type_B*} จะพิมพ์ทุกอย่างภายใต้foo ยกเว้นสิ่งที่เริ่มต้นด้วยtype_Bแต่ไม่พิมพ์แทนทุกอย่างภายใต้ foo: foo/type_A_1 foo/type_A_2 foo/type_B_1 foo/type_B_2 foo/type_B_xx foo/something_else ฉันพยายามprint -l foo/*~type_Bและได้สิ่งเดียวกัน wildcard ข้อยกเว้น~ทำงานใน zsh อย่างไร

1
zmv สำหรับ zsh: หน้าแห้งและหน้าคน
ฉันเคยได้ยินสิ่งที่ดีเกี่ยวกับzmvในzshและชอบที่จะเรียนรู้ที่จะใช้มัน อย่างไรก็ตามฉันยังไม่มีประสบการณ์ค่อนข้างใน zsh และมีคำถามพื้นฐาน: มี man page ไว้สำหรับzmvในzsh(man zsh เอาต์พุต "ไม่มีรายการคู่มือสำหรับzmv") ไม่zmvnatively อนุญาตให้มีการวิ่งแห้ง? หากคำตอบข้างต้นคือไม่คุณจะทดสอบหรือทำแห้งด้วยวิธีzmvอย่างไร
18 zsh  rename 

4
ลดเส้นทางในพรอมต์ zsh
BashมีPROMPT_DIRTRIMตัวเลือกเช่นเมื่อฉันตั้งPROMPT_DIRTRIM=3แล้วเส้นทางยาวเช่น: user@computer: /this/is/some/silly/path จะแสดงแทนเป็น: user@computer: .../some/silly/path มีตัวเลือกที่คล้ายกันzshหรือไม่
18 zsh  prompt 

5
ตารางผูกที่สำคัญ?
เรามีตารางการเชื่อมโยงคีย์ที่แปลวิธีต่าง ๆ ทั้งหมดของการอ้างอิงถึงการกดปุ่มหรือไม่? ฉันใช้zshแต่ฉันคิดว่าถ้ามีโต๊ะแบบนี้มันจะใช้ได้กับเปลือกหอยใด ๆ เหตุผลที่ฉันถามคือฉันต้องการมอบหมาย keybindings บางอย่างและฉันไม่มีทางรู้วิธีอ้างอิงถึงพวกเขา (ยกเว้นว่าฉันจะขโมยสิ่งที่กำหนดไว้แล้ว) ตัวอย่างเช่นใน 'zbindkey' เรามีสิ่งนี้: [[ "$terminfo[kend]" == " O"* ]] &amp;&amp; \ bindkey -M emacs "${terminfo[kend]/O/[}" end-of-line ... และฉันเดาได้ว่า "kend" หมายความว่านี่หมายถึงEndกุญแจ ข้ามการตรวจสอบกับbindkeyฉันเห็นบรรทัดเหล่านี้: "^E" end-of-line "^[OF" end-of-line "^[[F" end-of-line ... ดังนั้นฉันเชื่อมั่นว่าหนึ่งในบรรทัดเหล่านั้นหมายถึงEndกุญแจ อันไหน? เรามีสิ่งนี้ในไฟล์ "bindkey": bindkey "\e[A" history-beginning-search-backward ตอนนี้ฉันรู้แล้วว่านั่นคือUp Arrowกุญแจ แต่ฉันจะรู้ได้อย่างไรว่าฉันไม่รู้ $ bindkey (at …

1
ความสมบูรณ์ของแท็บ Zsh ไม่ทำงานตามที่ต้องการสำหรับเส้นทางบางส่วน
zshฉันต้องการกรณีตายเสร็จสิ้นเลือนสำหรับไฟล์และไดเรกทอรีใน หลังจากอ่านคู่มือสองสามชั่วโมงนี่คือสิ่งที่ฉันคิด: zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}' นอกจากนี้ฉันต้องการกดTABหนึ่งครั้งเพื่อแสดงความสำเร็จที่เป็นไปได้เพียงปรับเปลี่ยนสิ่งที่ฉันได้พิมพ์หากมีความสมบูรณ์เพียงอย่างเดียว จากนั้นการกดTABครั้งที่สองควรทำให้ฉันเข้าสู่โหมด "เสร็จสิ้นเมนู" จากคู่มือฉันพบสิ่งนี้: zstyle ':completion:*' menu select ตอนนี้ทุกอย่างทำงานได้ตามที่ควรยกเว้นในกรณีเดียว ฉันมีสองโฟลเดอร์Desktopและ.rstudio-desktopในโฮมไดเร็กตอรี่ของฉัน ตั้งแต่ฉันมีsetopt globdotsฉันคาดว่าจะพิมพ์ต่อไปนี้: $ cd ~/dktop&lt;TAB&gt; ที่จะออกคำสั่งของฉันเป็นเข้ามาและแสดงเป็นผู้สมัครเสร็จสิ้นและDesktop .rstudio-desktopแต่มันจะลบ dktopทิ้งฉันด้วยสิ่งต่อไปนี้: $ cd ~/ ฉันดูคู่มือที่เกี่ยวข้องทั้งหมดคำแนะนำคำถามการแลกเปลี่ยนกองและแหล่งข้อมูลอื่น ๆ แต่สิ่งที่ฉันทำฉันไม่สามารถทำงานนี้ได้ ที่น่าสนใจคือถ้าฉันอยู่ในโฮมไดเร็กตอรี่แล้วพิมพ์ต่อไปนี้ทุกอย่างจะทำงานได้ตามที่คาดไว้: $ cd dktop&lt;TAB&gt; นั่นคือเป็นเพียงปัญหาของเซกเมนต์ของเส้นทางที่ไม่นำหน้า (และคุณสามารถเห็นได้C-x hว่าสิ่งนี้สอดคล้องกับdirectoriesแท็กมากกว่าที่local-directoriesจะใช้แท็ก) เพื่อให้สามารถทำซ้ำได้ง่ายนี่คือสิ่ง~/.zshrcที่จะสร้างสถานการณ์และพฤติกรรมที่อธิบายไว้ข้างต้น (ทดสอบบนเครื่องเสมือน …
17 zsh  autocomplete 

1
ทำไมคำสั่ง ffmpeg นี้ทำงานใน bash ไม่ใช่ zsh?
วันนี้ฉันกลับถึงบ้านจากที่ทำงาน (เรียกใช้ทุบตีบนกล่อง Ubuntu) และพยายามที่จะเรียกใช้โค้ดบางอย่างบนกล่องซุ้มประตูท้องถิ่นของฉันด้วย zsh ที่รักของฉันและคำสั่งล้มเหลว? คำสั่งด้านล่างพร้อมข้อมูลส่วนบุคคลและ ip มีการเปลี่ยนแปลงอย่างชัดเจน ffmpeg -i rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 -threads 3 -vcodec copy -f segment -segment_time 2 outfiles/cam_out%04d.mp4 มันทำงานได้อย่างสมบูรณ์แบบในการทุบตี แต่เมื่อฉันรันใน zsh ฉันได้รับข้อผิดพลาด zsh: no matches found: rtsp://user:pass@my.webserver.org:5554/my-media/media.amp?videocodec=h264 ทำไม zsh ที่รักของฉันทรยศฉัน
17 bash  zsh  quoting  url 

1
แท็บเสร็จสมบูรณ์ของ“ ../” ใน zsh
ในทุบตีฉันสามารถใช้แท็บเสร็จสิ้นเพื่อย้ายไดเรกทอรีหนึ่งขึ้นและลงอีกเส้นทางอื่น ตัวอย่างเช่นสมมติว่าผมอยู่ใน$HOME/folder1และฉันต้องการที่จะไปcd เพียง แต่มีสองไดเรกทอรีเด็กและ$HOME/folder2$HOMEfolder1folder2 ในทุบตีฉันสามารถพิมพ์ cd ..[TAB]f[TAB]2 $HOME/folder2และจะจบลงใน ในการติดตั้ง zsh ใหม่ของฉันการกดcd ..[TAB]สร้างรายการของไดเรกทอรีลูกเหล่านั้น$HOME/folder1ซึ่งมีสอง.ในชื่อของพวกเขา มีวิธีง่ายๆในการรับพฤติกรรมที่ฉันคุ้นเคยหรือไม่? หรือมีบางสิ่งที่ง่ายกว่าในการบรรลุสิ่งที่ฉันต้องการใน zsh?

1
วิธีปิดการใช้งานการแก้ไขอัตโนมัติสำหรับ sudo [command] ใน zsh?
ฉันมี zsh และ oh-my-zsh พร้อมค่าเริ่มต้นและไม่สามารถหาวิธีปิดการแก้ไขอัตโนมัติสำหรับคำสั่งเฉพาะที่ฉันใช้บ่อยเช่น: sudo mc หรือ sudo gem update สิ่งที่ฉันมี.mcไดเรกทอรีและ.gemไดเรกทอรีและ zsh เสนอการแก้ไขอัตโนมัติ ( zsh: correct 'mc' to '.mc' [nyae]) โดยทั่วไปฉันต้องการตั้งค่า zsh เพื่อที่sudo [smth]จะไม่ถือว่าเป็นคำสั่งแยกต่างหาก (ซึ่งไม่ใช่) สำหรับการแก้ไขอัตโนมัติ สิ่งที่จะแก้ไขได้สำหรับสิ่งนั้น?

3
จะแก้ไขแท็บที่เสร็จสมบูรณ์แล้วเพื่อไม่ซ่อนรายการได้อย่างไร
ฉันใช้ oh-my-zsh บน Mac OS X กับ homebrew'ed zsh 4.3.12 ฉันเพิ่งพบปัญหาแปลก ๆ ในscripts/not-usedฉันมีหลาย.Rไฟล์: breakdowns.R eventloop.R process-largeclients.R process-qt.R reprocess-pinning.R calculate-qt-error.R generate_decision_tree.R process-net.R process-scalingexp.R อย่างไรก็ตามเมื่อฉันลองls scripts/not-used/+ Tabความสำเร็จแรกคือls scripts/not-used/_.Rตำแหน่งที่_แสดงตำแหน่งของเคอร์เซอร์ ถ้าฉันกดTabอีกครั้งฉันจะได้สิ่งที่แปลกประหลาดนี้: $ ls scripts/not-used/.R breakdowns.R eventloop.R วิธีการยกเลิกพฤติกรรมนี้น่าเกลียด (ผิด)? ตัวเลือกที่ตั้งไว้คือ: alwaystoend autocd autonamedirs autopushd cdablevars completeinword correctall extendedglob extendedhistory noflowcontrol histexpiredupsfirst histignoredups histignorespace histreduceblanks histverify …

3
เชลล์ล่ามคนใดเรียกใช้สคริปต์โดยไม่มี shebang?
สมมติว่าเชลล์เริ่มต้นสำหรับบัญชีของฉันคือ zsh แต่ฉันเปิดเทอร์มินัลและยิงทุบตีและเรียกใช้สคริปต์ชื่อprac002.shซึ่งล่ามเชลล์ใดที่จะใช้ในการรันสคริปต์ zsh หรือ bash? ลองพิจารณาตัวอย่างต่อไปนี้: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, …

2
เริ่ม zsh ด้วย zshrc ที่กำหนดเอง
ฉันต้องการเริ่ม zsh ด้วยไฟล์ rc แบบกำหนดเองที่คล้ายกับคำสั่ง: bash --rc-file /path/to/file หากไม่สามารถทำเช่นนั้นจะสามารถเริ่ม zsh, run source /path/to/fileแล้วยังคงอยู่ในเซสชัน zsh เดียวกันได้หรือไม่ หมายเหตุ: คำสั่งzsh --rcs /path/to/fileไม่ทำงานอย่างน้อยก็ไม่ใช่สำหรับฉัน ... แก้ไข: ครบถ้วนฉันต้องการจะทำสิ่งต่อไปนี้: sshไปยังเซิร์ฟเวอร์ระยะไกล "example.com", รันzsh, sourceการกำหนดค่าของฉันอยู่ที่/path/to/file, ทั้งหมดใน 1 คำสั่ง นี่คือที่ฉันพยายามโดยเฉพาะอย่างยิ่งเพราะฉันไม่อยากเขียนไฟล์การกำหนดค่าใด ๆ บนเครื่องระยะไกล
17 linux  shell  zsh  oh-my-zsh 

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