Linux alias实现命令别名
需要经常进入/srv/www/app/account这个目录,每次都得重复的输入这一长串路径进入该目录,显得麻烦而费时,因此可以将“cd /srv/www/app/account”这样一个命令取一个别名,每次只需输入该别名就可以进入该目录
Linux系统提供了一个有用的工具叫alias,可以让我们将一些需要频繁使用的但又过于冗长的命令设置一个别名,以后只需输入一个简短的别名就可以达到同样的作用。
用法:alias [-p] [name[=value] ... ] 注意‘=’和字符串之间不能包含空格
alias命令的用法:
1.显示当前设置的所有别名:
[work@hadoop01 ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
2.只显示某个别名代表的含义可输入alias name,比如:
[work@hadoop01 ~]$ alias 'll'
alias ll='ls -l --color=auto'
[work@hadoop01 ~]$ alias 'ls'
alias ls='ls --color=auto'
3.为命令设置别名可输入alias 新命令='原命令 选项/参数',比如:
[work@hadoop01 bin]$ alias cdpybin='cd /home/work/softwares/Python-3.7.7/Output/bin'
[work@hadoop01 bin]$ alias
alias cdpybin='cd /home/work/softwares/Python-3.7.7/Output/bin'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
测试例子:
[work@hadoop01 ~]$ pwd
/home/work
[work@hadoop01 ~]$ cdpybin
[work@hadoop01 bin]$ pwd
/home/work/softwares/Python-3.7.7/Output/bin
4.取消命令别名:unalias 命令别名
取消前:
[work@hadoop01 bin]$ alias
alias cdpybin='cd /home/work/softwares/Python-3.7.7/Output/bin'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
取消命令:
[work@hadoop01 bin]$ unalias cdpybin
取消后:
[work@hadoop01 bin]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
5.一次执行多个命令
希望进行如下操作:
1).进入目录/root
2).查看目录下文件
3).切换回根目录/。
通常这需要三条命令 cd /root、ls、cd / ,如果需要经常使用那么我们可以通过自定义命令的方式用一条命令完成全部操作
a.首先使用命令 type 自定义命令名 ,查看自定义命令名是否被系统占用。从图中可以看出test命令名已被系统占用,所以不能使用,而loo这个命令名经查询可以使用。
[work@hadoop01 bin]$ type ls
ls is aliased to `ls --color=auto'
[work@hadoop01 bin]$ type test
test is a shell builtin
[work@hadoop01 bin]$ type loo
-bash: type: loo: not found
b.使用命令alias创建自定义命令:alias loo='cd /home/work;ls;cd /'。需要注意命令的使用格式,分号与分号之间是没有空格的。
[work@hadoop01 ~]$ alias loo='cd /home/work;ls;cd /'
[work@hadoop01 ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias loo='cd /home/work;ls;cd /'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
c.测试一下自定义命令,当输入命令 loo 时,发现系统依次完成了 cd /root、ls、cd / 三条命令,说明设置成功。
同时也可直接使用命令 alias 查询系统中是否添加了loo这个自定义命令。
[work@hadoop01 ~]$ pwd
/home/work
[work@hadoop01 ~]$ loo
Desktop Documents Downloads Music Pictures Public softwares Templates Videos
[work@hadoop01 /]$ ls /home/work/
Desktop Documents Downloads Music Pictures Public softwares Templates Videos
[work@hadoop01 /]$ pwd
/
d.如果希望删除这个自定义命令,可以使用命令 unalias 自定义命令名 来完成。执行之后发现,loo命令已不存在,同时自定义命令库中也没有loo命令。
取消前
[work@hadoop01 ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias loo='cd /home/work;ls;cd /'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
取消操作
[work@hadoop01 ~]$ unalias loo
取消后
[work@hadoop01 ~]$ loo
bash: loo: command not found...
[work@hadoop01 ~]$ alias
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mypip3='/home/work/softwares/Python-3.7.7/Output/bin/pip3.7'
alias mypython3='/home/work/softwares/Python-3.7.7/Output/bin/python3.7'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
6、一个非常有用的别名
alias whole_pwd='echo `whoami`@`hostname`:`pwd`'
[work@hadoop01 ~/workdir/yz/softwares/python27]$ whole_pwd
work@hadoop01:/home/hdp/workdir/yz/softwares/python27
备注:
通过这种方式设置的别名命令只对当前登录环境下有效,退出后重新登录就无效了,如何才能使别名命令一直有效呢,
那就是修改rc配置文件,把设置别名的过程加入到系统启动后初始化用户的脚本中, 用户只需要修改 ~/.bashrc文件, 加入你要设置的别名命令即可
想要添加一个命令 oo 输入oo就能直接进入/mnt/hgfs/D/work/project/ASID/5.code/trunk/ASID/ASID/wms目录
方法:1、vi /etc/bashrc 或者 vi ~/.bashrc
在文件末尾添加alias oo='cd /mnt/hgfs/D/work/project/ASID/5.code/trunk/ASID/ASID/wms/'并保存退出
2、执行source /etc/bashrc 使配置生效
完成!
参考:https://www.cnblogs.com/qmfsun/p/6114820.html