跳到主要內容

發表文章

目前顯示的是有「zsh」標籤的文章

安裝zsh + oh-my-zsh 出現 /usr/bin/env: zsh: 沒有此一檔案或目錄 (/usr/bin/env: zsh -: No such file or directory)

zsh 跟 oh-my-zsh 安裝完,可能會出現類似下面錯誤訊息,雖然他沒任何影響,不過我總覺得怪怪的 # 中文系統 /usr/bin/env: zsh: 沒有此一檔案或目錄 # 英文系統 /usr/bin/env: zsh -: No such file or directory 通常會出現這類的訊息,都是指令找不到。 這邊指zsh這個指令找不到,試試看輸入 which zsh 看看是不是沒有把zsh這個加到 $PATH 裡面,沒有的話加入就好了。 如果加入了一樣找不到,我trace了一下zsh的執行過程,通常都是跟 oh-my-zsh 的安裝順序錯了的時候才會發生。 這時編輯家目錄底下檔案 vim ~/.zshrc ,會看到 # 他先執行了oh-my-zsh.sh source $ZSH/oh-my-zsh.sh # 然而oh-my-zsh.sh已經在使用zsh這個指令了 # 這裡才把宣告路徑,所以當然zsh指令找不到 export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin:/bin:/root/bin:/usr/local/bin" 這時就把它們兩個對調一下就好了 # 像這樣把 export PATH 放到 source $ZSH/oh-my-zsh.sh 上面 export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin:/bin:/root/bin:/usr/local/bin" source $ZSH/oh-my-zsh.sh # 這樣oh-my-zsh.sh裡面就可以用zsh指令了 存檔後,登出再進來,他就可以正常使用zsh指令,不再出現這種錯誤訊息了

CentOS zsh 自行編譯

CentOS用yum安裝的zsh版本有點舊,這邊記錄一下,怎麼下載自己安裝 # 下載最新版的 zsh (筆下日期 2014/03/11) 並存檔為 zsh.tar.bz2 wget http://sourceforge.net/projects/zsh/files/latest/download\?source\=files -O zsh.tar.bz2 # 解壓縮 tar xvjf zsh.tar.bz2 # 你的版本不一定是5.0.5,我筆下日期 2014/03/11 到5.0.5版,你的可能更新 cd zsh-5.0.5 # 普通編譯流程,configure後 看缺什麼lib 裝一裝 ./configure make sudo make install # 把"/usr/local/bin/zsh" 這串字加到 sudo tee -a /etc/shells 裡 echo "/usr/local/bin/zsh" | sudo tee -a /etc/shells # 上面那一步 你的 chsh -l 才查得到zsh # 可以切換到/usr/local/bin/zsh 了 chsh -s /usr/local/bin/zsh # 重新登入 shell就切換過去了 exit # and relogin # 跟bash一樣,放個.zshrc檔案在使用者根目錄,讓系統進入zsh前讀取 touch ~/.zshrc # 你的變數 或alias就可以加在這裡面了 # 有點跟bash不一樣的地方是,沒有.zsh_profile,讓系統只讀第一次的檔案 # 如果你有裝oh-my-zsh,建議直接建立軟連結(上面那一步touch就不用做了,做了就先把~/.zshrc刪掉就可以了) ln -s ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc