作为Linux各大发行版的默认shell,使用bash是Linux使用者必备的技能
Bash来历
bash为GNU编写的一个命令处理器,他的名称是一个双关语,为Bourne-Again SHell或Born-Again SHell,其中Bourne shell(sh)是之前Unix系统上常用的命令行处理器。之后bash一直沿用至今。
bash 配置
一般我们的配置都写在~/.bashrc
中,语法为bash语法, 此文件在每次登录或打开新的shell时执行,一般用来配置一些环境变量,定义函数,设置一些别名
我在这里贴一些通用配置,其他有关archlinux的一些专用配置可以参考我的配置
一堆别名
1 | # alias命令可以设置别名 |
环境变量设置
PATH
1 | export PATH=$PATH:. |
将当前目录加入PATH环境变量。$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。平时,若想运行此目录下的一个可执行文件,必须输入./<file>
,但将当前目录加入PATH后,可直接执行<file>
EDITOR
1 | export EDITOR="vim" |
有些时候,大家可能被迫用vi(一个老式编辑器,不好用)
比如需要修改/etc/sudoers
文件时,为了防止用户语法错误导致系统权限问题, 官方一般建议使用visudo这个命令,他默认使用vi作为编辑器。这时大家可以执行export EDITOR="vim"
来设置EDITOR这个环境变量,再执行visudo,发现编辑器已经变成了自己熟悉的vim!
常用函数
1 | # Useful unarchiver! |
以后解压文件直接extract <file>
即可,超级实用
bash 美化
不要委屈自己,装个powerline吧,用包管理工具安装我就不说了,下面是用pip装的步骤:
没有pip的同学先装pip
1
sudo apt-get install python-pip
安装powerline
1
$ pip install powerline-status
powerline 中要用到特殊的字体,所以需要去下载字体
1
git clone https://github.com/powerline/fonts && ./fonts/install.sh
之后我们要每次启动bash时运行powerline,首先获取powerline的位置
1
2
3
4
5
6
7
8
9
10
11$ pip show powerline-status
# 下面是我的输出
Name: powerline-status
Version: 2.6
Summary: The ultimate statusline/prompt utility.
Home-page: https://github.com/powerline/powerline
Author: Kim Silkebaekken
Author-email: kim.silkebaekken+vim@gmail.com
License: MIT
Location: /usr/lib/python3.6/site-packages
Requires:可以看到我的Location是
/usr/lib/python3.6/site-packages/
,后面再加powerline/bindings/bash/powerline.sh
就得到了我们要的powerline的位置。再在.bashrc
中加一行,运行上面得到的powerline.sh就行了。我要加的是:1
2# 最前面的点是运行命令,与source命令相同
. /usr/lib/python3.6/site-packages/powerline/bindings/bash/powerline.sh还要让你的终端支持256种颜色,还是在
~/.bashrc
里加一句:1
export TERM="screen-256color"
其他shell
如果想尽可能提高效率,推荐大家使用fish这个shell,或者也可以用zsh,这里并不是说大家不用学bash了,因为bash到哪里都能用,但是另外两个不能,所以bash还是要学好。
zsh
zsh是一个兼容bash,可扩展的shell,相当于一个给你配置好的bash。他还有很多插件,这里就不一一介绍了。推荐Oh-My-Zsh。
宇宙第一shell fish
fish是目前比较强大的shell,他的缺点是不兼容bash,但他提供了更简单易用的语法和更完善的功能。不用配置就比装了许多插件的zsh更好用。
同时他也有一些插件,也支持像bash那样的配置,配置文件在~/.config/fish/config.fish
。
不建议将fish设为默认shell,不然会很麻烦,在~/.bashrc
里最后加一句fish
就好。这样等你要用bash的时候直接exit
就行了。
fish配置可以参考这个博客