常用的bash 自然不用多说
zsh+oh my zsh 感觉也就那样
bash+autojump和zsh差不多 zsh兼容bash
配置oh my zsh
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
接来下,可以去https://github.com/robbyrussell/oh-my-zsh/wiki/themes 上下载一些zsh的主题,放置在 ~/.oh-my-zsh/themes 目录目录下,并在配置文件.zshrc中进行适当的配置。其实,默认情况下,themes目录下已有很多样式。
默认情况下,使用的是robbyrussell主题
fish 此鱼比较不错,适合新手,开箱即用,算是zsh的进化版吧 自动提示右方向键确认
fish配置
https://fishshell.com/
https://www.jianshu.com/p/7ffd9d1af788
Friendly interaction shell
alias config.fish
~/.config/fish/config.fish
~/.c/fish ❯❯❯ cat config.fish
set fish_greeting 'Talk is cheap,Show me the code.'
. /usr/share/autojump/autojump.fish
alias l='ls -al | lolcat'
alias py3='python3'
alias lg='ll | grep '
alias s1='ssh root@mini01'
alias s2='ssh root@mini02'
alias s3='ssh root@mini03'
alias sm='ssh root@mysCen'
alias l0='xset -led named "Scroll Lock" '
alias l1='xset led named "Scroll Lock" '
set pw 'XXXXX.'
function sr
echo $pw | sudo -S init 6
end
function sd
echo $pw | sudo -S shutdown -h now
end
alias aud='echo $pw | sudo -S apt update'
alias aug='sudo apt upgrade'
alias adu='sudo apt dist-upgrade'
alias atr='echo $pw | sudo -S apt autoremove --purge'
alias atc='sudo apt autoclean'
alias ac='sudo apt clean'
alias ccc='atr;atc;ac'
alias uu='aud;aug;adu;ccc'
~/.c/fish ❯❯❯
查看 cat /etc/shells
一般bash zsh都有
apt install fish
改变shell
chsh user -s shell路径 -s指的是shell一般不用动root的shell 直接在本地自己用户改就行了
chsh -s nameshell
若无参数,默认为chsh
比如 /bin/bash /bin/zsh /usr/bin/fish
然后需重启才会生效
其实是改了 /etc/passwd
中对应用户对应shell
fish还是比较不错的,受够le 一遍一遍cd cd cd tab tab tab 自动提示或者bash+autojump
还有繁琐的
apt install
apt remove --purge xxx
etc 那么长敲那么长时间,虽然alias 但 alias apt install install tab没有提示
链接:https://www.jianshu.com/p/7ffd9d1af788
。你不需要面对zsh浩如烟海的配置文件,也不需要去github clone一个“Oh My Zsh”。
当然如果你实在想配置,输入fish_config命令会启动web管理界面。
什么?逼格太低,非要手动配置。OK, ~/.config/fish/config.fish这就是fish的配置文件,类似于bash的.bashrc。
我喜欢配置三件东西:
问候语(配置config.fish):
set fish_greeting 'Talk is cheap. Show me the code.'
X OS系统vs code命令行工具(配置config.fish)
function code set location "$PWD/$argv" open -n -b "com.microsoft.VSCode" --args $location end
命令行提示(在web界面配置,完成后会生成~/.config/fish/functions/fish_prompt.fish):
设置接受建议(第三条优势)的快捷键:
修改fish_prompt.fish,增加一条语句:bind \ej accept-autosuggestion。同时按下alt和j将接受建议。
优势
语法高亮
不存在的命令会显示为红色。
通配符
集成find命令,递归搜索神器。
智能建议
当按下几个字母后,fish会有智能建议,按下向右箭头将接受建议。
Tab补全
如果补全项超过1个,会列出全部以供选择。
变量
fish是通过set来代替“=”对变量赋值的。
将某目录加入到PATH中也是用set(配置config.fish):
set PATH $PATH /home/mountain/shell
Exports
fish没有export命令,需要用set -x来代替。如果需要擦除变量,就执行set -e。
列表
有些变量有多个值,例如$PATH,fish会把所有值组装成一个列表,可以迭代或者通过下标访问。
命令替换
用法很简单,把命令放在括号里即可。
语法糖
fish的常用关键字(if、switch、function等)比bash高端、实用很多,但是考虑到公司的生产环境根本不可能安装fish,导致脚本无法移植,所以对于这部分只能忍痛放弃。
fish 与 bash一些区别
变量 set pw xx pw=xx
用变量 $pw
别名
function sd
tab 命令
end
或者用alias 也行。但提前声明变量如set pw xxx
echo $pw
获取命令结果直接用括号将命令包起来即可 bash $(order)或 `order`
建议可以用fish,但写脚本还是用bah
bash xxx.sh