有時我們會重復多次的進入項目的目錄,如果目錄很深的話,每次都需要輸入很長的命令,而且有時候路徑錯了一個字母,就需要修改出錯的位置,完全正確之后才會進入正確的目錄。
現在有一種方法可以很便捷的解決重復輸入以及輸入錯誤的問題,那就是 alias 命令,簡單來說, alias 就是把一些長的繁瑣的命令變成一個短的便於記憶的命令
語法
alias [-p] [name='value']
-p : 查看已添加了哪些別名
name='value': 把 'value' 的別名設置為 name
用途1:縮短輸入命令的長度
例如: 項目目錄是 /home/tt/project/branches/release/code/server
每次進入都需要輸入 cd /home/tt/project/branches/release/code/server
命令,通過
alias pr_code='cd /home/tt/project/branches/release/code/server'
把上面很長的命令設置成一個簡短的命令,后面進入項目目錄的話只需要執行 pr_code
命令即可,下面是具體的過程
[tt@ecs-centos-7 ~]$ alias pr_code='cd /home/tt/project/branches/release/code/server/'
[tt@ecs-centos-7 ~]$ pwd
/home/tt
[tt@ecs-centos-7 ~]$ pr_code
[tt@ecs-centos-7 server]$ pwd
/home/tt/project/branches/release/code/server
從上面的結果可以看出,執行 pr_code
命令,相當於執行了 cd /home/tt/project/branches/release/code/server/
命令,對於一些很長的又常用命令可以通過 alias 設置成短的命令,使用起來更便捷
用途2:內置命令設置默認選項
例如:df
是查看系統磁盤信息的命令,但是默認結果顯示不是按照人類習慣的方式,可以把 -h 選項設置為 df 的默認選項,具體命令結果如下:
[root@ecs-centos-7 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 1929572 0 1929572 0% /dev
tmpfs 1939936 0 1939936 0% /dev/shm
tmpfs 1939936 33316 1906620 2% /run
tmpfs 1939936 0 1939936 0% /sys/fs/cgroup
/dev/vda1 41152736 20456832 18582420 53% /
tmpfs 387988 0 387988 0% /run/user/0
[root@ecs-centos-7 ~]# alias df='df -h'
[root@ecs-centos-7 ~]# df
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 33M 1.9G 2% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/vda1 40G 20G 18G 53% /
tmpfs 379M 0 379M 0% /run/user/0
用途3:命令交互提高安全性
修改命令的交互選項,可以強制用戶二次確認希望執行的命令,避免誤用或濫用了一些命令,造成不可挽回的損失。
例如:rm 命令默認是直接刪除,沒有二次確認的,這樣很容易誤刪一些重要的資料,可以把 -i 選項作為 rm 的默認選項,具體的命令結果如下:
- rm 沒有設置默認選項
[root@ecs-centos-7 ~]# ls
a.txt lrzsz-0.12.20 lrzsz-0.12.20.tar.gz tmp
[root@ecs-centos-7 ~]# rm a.txt
[root@ecs-centos-7 ~]# ls
lrzsz-0.12.20 lrzsz-0.12.20.tar.gz tmp
[root@ecs-centos-7 ~]#
- rm 設置了默認選項
[root@ecs-centos-7 ~]# ls
a.txt lrzsz-0.12.20 lrzsz-0.12.20.tar.gz tmp
[root@ecs-centos-7 ~]# alias rm='rm -i'
[root@ecs-centos-7 ~]# rm a.txt
rm: remove regular file ‘a.txt’? y
[root@ecs-centos-7 ~]#
從上面例子可以看出,rm 命令設置了 -i 默認選項以后每次執行 rm filename
時都會有一個二次確認,通過這種方式,可以避免一些誤刪除的操作
注意
-
定義的別名只針對當前SSH連接有效,如果需要針對當前用戶有效,需要把
alias pr_code='cd /home/tt/project/branches/release/code/server/'
加入到~/.bashrc
配置中,如果需要針對所有用戶有效,需要把alias pr_code='cd /home/tt/project/branches/release/code/server/'
加入到/etc/bashrc
配置中 -
編輯過的配置不會立即生效,需要執行
source ~/.bashrc
命令或者重新連接SSH -
撤銷別名,
unalias -a
插銷全部別名,unalias 別名
撤銷指定的別名