alias命令

-- TOC --

alias用来设置命令的别名,常常用来将长长的命令和特定参数设置成一个简单的短短别名,生活得以简化。

设置别名

比如:

$ alias ll='ls -alF'

这条alias指令,是Ubuntu系统默认提供的,当我们输入 ll,就相当于输入ls -alF。但是树莓派的系统默认就没有 ll这条别名,可以自己添加。

另一个我习惯的别名是docker:

$ alias docker='sudo docker'

有了这个别名,我就可以不用每次docker的时候,都输入sudo了!

直接输入alias命令,可以查看当前Bash环境下的所有别名:

$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias docker='sudo /usr/bin/docker'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

也可以查看某个具体的别名是否存在:

$ alias docker
alias docker='sudo docker'

如果你需要常常进入一个目录去工作,这个目录又很长,可以考虑设置一个别名,例如:

$ alias cda='cd /usr/local/apache2'

然后直接用你自定义的cda命令,就可以直接进入那个指定的目录。

删除别名

$ unalias cda docker

让alias每次登陆都可使用

alias命令只作用于当次登入的操作。如果想每次登入都能使用这些命令的别名,则需要把相应的alias命令存放在 ~/.bashrc 文件中。每次用户登陆系统启动Bash,都会先运行这个文件,设置一些必要的参数,当然可以包括alias命令。

如果这样还不行,表示没有在~/.bash_profile文件(或~/profile)中执行~/.bashrc文件,可以在~/.bash_profile中加入命令 source ~/.bashrc 后保存,这样就可以每次登入后都可以使用设置好的命令别名。

没有 ~/.bash_profile,就是 ~/.profile

这部分不同发行版本会有些差异,但原理都一样,就是在用户登录系统启动的时候,预先执行一些脚本。

用别名一次执行多条命令

原理很简单,设置别名的时候,将多条命令用 ; 分割开来,但是他们属于同一个别名:

$ alias showroot='cd /; ll; cd'

现在,自定义的showroot指令,先进入根目录,然后执行 ll (它也是个别名),最后返回用户的home目录。

$ alias showroot='cd /;ll;cd'
xinlin@HASH:~$ showroot
total 2097240
drwxr-xr-x  20 root root       4096 Oct 12  2020 ./
drwxr-xr-x  20 root root       4096 Oct 12  2020 ../
lrwxrwxrwx   1 root root          7 Oct 12  2020 bin -> usr/bin/
drwxr-xr-x   4 root root       4096 Nov 30  2020 boot/
drwxrwxr-x   2 root root       4096 Oct 12  2020 cdrom/
drwxr-xr-x  19 root root       4420 Oct  9 11:36 dev/
drwxr-xr-x 137 root root      12288 Oct 13 14:22 etc/
drwxr-xr-x   3 root root       4096 Oct 12  2020 home/
lrwxrwxrwx   1 root root          7 Oct 12  2020 lib -> usr/lib/
lrwxrwxrwx   1 root root          9 Oct 12  2020 lib32 -> usr/lib32/
lrwxrwxrwx   1 root root          9 Oct 12  2020 lib64 -> usr/lib64/
lrwxrwxrwx   1 root root         10 Oct 12  2020 libx32 -> usr/libx32/
drwx------   2 root root      16384 Oct 12  2020 lost+found/
drwxr-xr-x   3 root root       4096 Oct 16  2020 media/
drwxr-xr-x   2 root root       4096 Aug  1  2020 mnt/
drwxr-xr-x   3 root root       4096 Oct 13 14:22 opt/
dr-xr-xr-x 227 root root          0 Oct  9 11:34 proc/
drwx------   4 root root       4096 Sep 17 10:50 root/
drwxr-xr-x  36 root root       1020 Oct 14 11:54 run/
lrwxrwxrwx   1 root root          8 Oct 12  2020 sbin -> usr/sbin/
drwxr-xr-x   9 root root       4096 Oct  9 11:37 snap/
drwxr-xr-x   2 root root       4096 Aug  1  2020 srv/
-rw-------   1 root root 2147483648 Oct 12  2020 swapfile
dr-xr-xr-x  13 root root          0 Oct  9 11:34 sys/
drwxrwxrwt  16 root root       4096 Oct 14 14:12 tmp/
drwxr-xr-x  14 root root       4096 Aug  1  2020 usr/
drwxr-xr-x  14 root root       4096 Aug  1  2020 var/
xinlin@HASH:~$ pwd
/home/xinlin

本文链接:https://cs.pynote.net/sf/linux/shell/202110146/

-- EOF --

-- MORE --