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

zsh เป็นเชลล์ที่ออกแบบมาสำหรับการใช้งานแบบโต้ตอบแม้ว่าจะเป็นภาษาสคริปต์ที่มีประสิทธิภาพก็ตาม คุณสมบัติที่มีประโยชน์มากมายของ bash, ksh และ tcsh ถูกรวมไว้ใน zsh มีการเพิ่มคุณสมบัติดั้งเดิมมากมาย

10
ย้ายจาก bash เป็น zsh [ปิด]
ฉันกำลังพิจารณาที่จะย้ายจากทุบตีไปยัง zsh เพราะฉันมักเจอข้อความยกย่อง zsh ฉันเป็นผู้ใช้บรรทัดคำสั่งที่มีประสบการณ์และฉันคิดว่าพื้นฐานนั้นเหมือนกันมากดังนั้นฉันจึงมองหาคำแนะนำเพื่อให้ได้ประโยชน์จากการเคลื่อนไหวและ gotchas ใด ๆ ที่ต้องระวัง โปรดให้คำแนะนำหนึ่งข้อต่อหนึ่งคำตอบ ฉันกำลังมองหาชิ้นที่มีขนาดพอดีคำซึ่งฉันสามารถกลับมาและรวมข้อมูลพิเศษเข้ากับการใช้งานเชลล์ของฉันได้อย่างมั่นคงแทนที่จะพยายามเรียนรู้ทุกอย่างในครั้งเดียว
143 bash  command-line  zsh 

7
จะทำให้ ZSH เป็นเชลล์เริ่มต้นได้อย่างไร
ฉันพยายามที่จะตั้ง ZSH เป็นเปลือกเริ่มต้นของฉัน แต่มันก็กลับไปทุบตี ฉันได้ลองใช้รหัสนี้แล้ว: sudo chsh -s $(which zsh) ฉันยังลอง: sudo chsh -s /bin/zsh ลองคำสั่งเหล่านี้โดยไม่ใช้ sudo ความคิดเห็นใด ๆ เกี่ยวกับสิ่งอื่นที่ฉันต้องทำ เมื่อรัน ZSH จากภายใน bash จะโหลดขึ้นและทำงานได้ดี แต่ฉันต้องการตั้งเป็นเชลล์เริ่มต้น
124 command-line  bash  zsh 

2
การกด Enter จะสร้าง ^ M แทนการขึ้นบรรทัดใหม่
ตัวอย่างเช่นหากฉันกำลังtail -fใช้ไฟล์หรือกำลังreadป้อนข้อมูลผู้ใช้<Enter>จะสร้าง^Mในเทอร์มินัลแทนการสิ้นสุดreadหรือเพิ่มบรรทัดใหม่ให้ stdout ^Jทำงานได้ดี ฉันกำลังsshเข้าสู่ระบบอูบุนตูถ้าเป็นเช่นนั้น สิ่งนี้เกิดขึ้นกับฉันทั้งใน zsh และ bash ทางออกหนึ่งที่ฉันเล่นด้วยคือทำการแมป^Mไปยัง^Jin zsh แต่ดูเหมือนว่าจะไม่สามารถแก้ไขปัญหารากได้ ใครรู้ว่าอาจเป็นสาเหตุของเรื่องนี้ แก้ไข: เพื่อตอบคำถามบางอย่างฉันกำลังsshเข้า Ubuntu จาก OSX ฉันใช้ iTerm และ zsh ฉันลืมที่จะพูดถึงว่าฉันใช้ tmux บนเครื่อง Ubuntu แก้ไข 2: พลาดคำถาม เมื่อฉันพิมพ์Ctrl-V Enterฉันจะได้รับ^M(ทั้งบน OSX และ Ubuntu) แก้ไขที่ 3: ใน OSX และ Ubuntu ผลิตecho $TERMscreen-256color
94 command-line  bash  zsh 

3
การตั้งค่านามแฝงใน zsh
ฉันรู้ว่าในทุบตีคุณสามารถตั้งค่านามแฝงในไฟล์. bash_aliases เพื่อให้คำสั่งที่คุณพิมพ์ไม่จำเป็นต้องเป็นคำสั่งที่เก็บไว้ในไบนารีในระบบ มีวิธีใดบ้างที่ฉันจะได้นามแฝงเป็น zsh?
75 zsh 

1
วิธีสร้างนามแฝงถาวรใน oh-my-zsh ได้อย่างไร
ใน. zshrc ของฉันฉันพยายามสร้างนามแฝงไม่กี่ตัวฉันค้นหาสถานที่มากมาย แต่ฉันไม่สามารถหาวิธีที่ใช้งานได้ ฉันใช้รหัสนี้ด้านล่าง: # Set personal aliases, overriding those provided by oh-my-zsh libs, # plugins, and themes. Aliases can be placed here, though oh-my-zsh # users are encouraged to define aliases within the ZSH_CUSTOM folder. # For a full list of active aliases, run alias. # # Example …

5
ทำไมทุบเปลือกเริ่มต้นในระบบปฏิบัติการส่วนใหญ่?
ทำไมทุบเปลือกเริ่มต้นในระบบปฏิบัติการส่วนใหญ่ (Ubuntu, Fedora, OSX ฯลฯ ) เหตุใดผู้ใช้ขั้นสูงจำนวนมากจึงมักใช้ zsh หากเป็นสิ่งที่ดีทำไมจึงไม่เป็นค่าเริ่มต้น ฉันใช้ทั้งฉันไม่เห็นความแตกต่างสำหรับงานทั้งหมดของฉันง่าย :)

1
ZSH ไม่ได้เปิดตัวในขณะที่เปิดเทอร์มินัลใหม่ที่มี `gnome-terminal`
ฉันใช้ Ubuntu 12.04 และเริ่มใช้ zsh วิธีที่ฉันเปลี่ยนเปลือกคือ $ sudo chsh -s /usr/bin/zsh ฉันเปลี่ยนธีมของพรอมต์ ฯลฯ และการเปลี่ยนแปลงที่เตะเข้ามาเมื่อฉันทำเสียงก้อง$SHELLฉันจะเห็นว่า zsh เป็นเปลือกของฉัน แต่เมื่อฉันเปิดเทอร์มินัลทุบตีใหม่ดูเหมือนว่าจะเป็นเปลือกของฉัน อย่างไรก็ตามเมื่อsuผู้ใช้ที่แตกต่างกันและsuด้านหลัง zsh น่าจะเป็นเปลือก กรุณาแนะนำ

2
คุณจะแบ่งปันประวัติระหว่างเทอร์มินัลใน zsh ได้อย่างไร
จะประสบความสำเร็จได้อย่างไรเพื่อให้ทุกคำสั่งที่ป้อนเข้ามาจะปรากฏในประวัติของเทอร์มินัลเปิด เมื่อเปิดเทอร์มินัลหลายเครื่องประวัติจะไม่ถูกแชร์เช่นสิ่งที่คุณป้อนในประวัติเทอร์มินัลหนึ่งจะไม่แสดงในเทอร์มินัลอื่น คิดว่าเป็นทางเลือกของ Bash PROMPT_COMMAND="history -a"(ซึ่งจะบันทึกประวัติก่อนที่พรอมต์จะปรากฏขึ้น)

1
chsh -s / usr / bin / zsh ไม่ทำงาน
ฉันพยายามเปลี่ยนเชลล์เป็น zsh อย่างถาวรโดยใช้chshคำสั่ง แต่มันไม่ทำงาน มีการติดตั้ง zsh (ผ่าน apt) และทำงานได้ดีเมื่อฉันเรียกใช้โดยตรงจากเทอร์มินัล bash prompt แต่ฉันไม่สามารถรับ zsh เพื่อโหลดในอาคารโดยค่าเริ่มต้นและ chsh กำลังทำอะไรแปลก ๆ : $ echo $SHELL /bin/bash $ which zsh /usr/bin/zsh $ chsh -s /usr/bin/zsh Password: $ echo $SHELL /bin/bash $ grep kurtosis /etc/passwd kurtosis:x:1000:1000:kurtosis,,,:/home/kurtosis:/usr/bin/zsh ดูเหมือนว่า chsh ได้จัดการเพื่อเปลี่ยน / etc / passwd อย่างถูกต้อง แต่ไม่ใช่ตัวแปร $ …
24 command-line  bash  zsh 

4
เมื่อฉันใช้ ZSH ฉันจะตั้งค่า PATH ใน /etc/profile.d ได้อย่างไร
ฉันใช้zshเป็นเปลือกของฉันและฉันพยายามกำหนดค่าสภาพแวดล้อมของฉัน ฉันมักจะกำหนด$JAVA_HOMEตัวแปรของฉันโดยการสร้างไฟล์: /etc/profile.d/java.sh ด้วยเนื้อหาดังต่อไปนี้ export JAVA_HOME=/path/to/jdk export PATH=$JAVA_HOME/bin:$PATH จากนั้นฉันออกจากระบบและกลับมาและมันใช้งานได้ แต่ด้วยเหตุผลบางอย่างPATHตัวแปรไม่ได้ถูกตั้งค่า มันรู้จักJAVA_HOMEแต่ไม่ใหม่PATHดูตัวอย่างข้อมูลเทอร์มินัล: ~ echo $JAVA_HOME /usr/lib/jvm/jdk1.8.0_05 ~ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games และฉันยืนยันโดยพยายามรันคำสั่งในรูปแบบ jvm ~ java -version zsh: command not found: java PATHไม่รวม$JAVA_HOMEเท่าที่ควร มีอะไรอีกบ้างที่ฉันควรตรวจสอบ? ฉันได้ตรวจสอบแล้วว่าถ้าฉันทำงาน: source /etc/profile.d/java.sh ทุกอย่างทำงานอย่างถูกต้องและตัวแปรของฉันได้รับการตั้งค่าตามที่ควร แต่สคริปต์ไม่ควร/etc/profile.dทำงานโดยอัตโนมัติหรือไม่

5
การกำหนดค่าเพื่อตรวจสอบว่าคำสั่งไม่มีอยู่แนะนำการติดตั้งหรือไม่
สามารถzshกำหนดค่าเปลือกเพื่อแสดงสิ่งที่bashแสดงเมื่อไม่มีคำสั่งคล้ายกับสิ่งนี้: kahless:~$ sysv-rc-conf The program 'sysv-rc-conf' is currently not installed. You can install it by typing: sudo apt-get install sysv-rc-conf มากกว่าพรอมต์ ZSH: [kahless /home/teward]% sysv-rc-conf zsh: command not found: sysv-rc-conf หมายเหตุฉันไม่ต้องการเปลี่ยนพรอมต์ แต่ฉันต้องการเปลี่ยนผลลัพธ์จากzsh: command not foundเป็นเอาต์พุตเหมือน bash The program 'progname' is currently not installed. You can install it by typing:หรือคล้ายกัน เป็นไปได้ด้วย …
22 zsh 

5
เอกสารคู่มือ man zsh ขาดหายไปในแพ็คเกจ?
ฉันมี xubuntu 13.10 x64 ที่เพิ่งติดตั้งใหม่ ฉันตัดสินใจที่จะติดตั้ง zsh ผ่านทาง synaptic และทำให้มันเป็นเปลือกเริ่มต้นของฉัน เวอร์ชันของ zsh ที่ติดตั้งคือ: zsh 5.0.2(x86_64-pc-linux-gnu) การติดตั้งzshดูเหมือนจะโอเค แต่ดูเหมือนจะไม่มีเอกสารสำหรับzshคน การป้อนคำสั่งman zshให้สิ่งนี้กับฉัน:No manual entry for zsh. ฉันยังติดตั้งจาก synaptic นอกเหนือจาก zsh เอง, zsh-lovers, zsh-doc, zsh-dbg ฉันพลาดอะไรบ้างในการzshติดตั้งเพื่อที่จะจบลงzshโดยไม่มีเอกสารประกอบ

4
เปลี่ยนเชลล์จาก zsh เป็น bash
เว็บเซิร์ฟเวอร์ของฉันถูกดัดแปลงโดยคนที่ใช้ zsh shell ฉันรู้สึกสะดวกสบายมากขึ้นเมื่อใช้ bash shell เนื่องจากเป็นค่าเริ่มต้นที่มาพร้อมกับ Ubuntu และ OS X (ระบบปฏิบัติการหลักสองระบบที่ฉันใช้) แต่คำถามนี้เน้นไปที่เซิร์ฟเวอร์ Ubuntu ฉันมี 4 เว็บไซต์ที่ทำงานบนเว็บเซิร์ฟเวอร์นี้ฉันใช้ byobu ฉันใช้ tmux ฉันใช้ ruby ​​/ ruby ​​บนราง, node.js, apache, daemons สองสามตัว หากฉันเปลี่ยนรูทเชลล์ปัจจุบันจาก zsh ไปเป็น bash อาจมีผลข้างเคียงเชิงลบใด ๆ ที่อาจเป็นผลมาจากสวิตช์นี้หรือไม่? ตัวอย่างเช่นกระบวนการจะถูกฆ่าเนื่องจากกระบวนการหลัก (เชลล์) ถูกเปลี่ยนไปหรือไม่
17 command-line  bash  zsh 

3
Apt-get * wildcard พร้อม ZSH
ZSH: sudo apt-get remove --purge ubuntuone-* ERROR: zsh: no matches found: ubuntuone-* ใช้งานได้กับ Bash มีปัญหาอะไร ? :-D
15 apt  zsh 

3
โอ้ zsh ของฉันสำหรับรูทและสำหรับผู้ใช้ทั้งหมด
ฉันติดตั้งzshแล้วและฉันใช้ปลั๊กอิน Oh My ZSH ทุกอย่างทำงานได้ดี แต่เมื่อฉันเป็นผู้ใช้รูทมันจะเปลี่ยนเป็นธีม zsh เริ่มต้น สิ่งที่ฉันควรจะทำอย่างไรที่จะทำให้การกำหนดค่า Oh My ZSH เป็นค่าเริ่มต้นzshสำหรับผู้ใช้ทั้งหมดรวมถึงroot? ฉันได้ลองใช้ chsh -s /bin/zsh root นั่นให้ฉันzshแต่ไม่ใช่oh_my_zsh ฉันยังพยายามที่cp -R /home/user/.zshrc /root/.zshrcจะoh_my_zshรูท แต่ก็ไม่ทำงาน (ฉันไม่ต้องการzshแต่ฉันต้องการoh_my_zshสำหรับผู้ใช้ทั้งหมดในระบบ)
15 zsh 

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