li shell

6人阅读 评论(0) 收藏 举报
分类:

常用的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。

我喜欢配置三件东西:

  1. 问候语(配置config.fish):

    set fish_greeting 'Talk is cheap. Show me the code.'

  2. X OS系统vs code命令行工具(配置config.fish)

    function code
    
      set location "$PWD/$argv"
    
      open -n -b "com.microsoft.VSCode" --args $location
    
    end
    
  3. 命令行提示(在web界面配置,完成后会生成~/.config/fish/functions/fish_prompt.fish):

    Selection_001.png
  4. 设置接受建议(第三条优势)的快捷键:

    修改fish_prompt.fish,增加一条语句:bind \ej accept-autosuggestion。同时按下alt和j将接受建议。

优势

  1. 语法高亮

    不存在的命令会显示为红色。

    Selection_001.png
    Selection_002.png
  2. 通配符

    集成find命令,递归搜索神器。

    Selection_003.png
  3. 智能建议

    当按下几个字母后,fish会有智能建议,按下向右箭头将接受建议。

    Selection_004.png
  4. Tab补全

    如果补全项超过1个,会列出全部以供选择。

    Selection_005.png
  5. 变量

    fish是通过set来代替“=”对变量赋值的。

    Selection_006.png

将某目录加入到PATH中也是用set(配置config.fish):

set PATH $PATH /home/mountain/shell

  1. Exports

    fish没有export命令,需要用set -x来代替。如果需要擦除变量,就执行set -e。

    Selection_007.png
    Selection_008.png
  2. 列表

    有些变量有多个值,例如$PATH,fish会把所有值组装成一个列表,可以迭代或者通过下标访问。

    Selection_001.png
  3. 命令替换

    用法很简单,把命令放在括号里即可。

    Selection_002.png
  4. 语法糖

    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





查看评论
    个人资料
    持之以恒
    等级:
    访问量: 3785
    积分: 1495
    排名: 3万+