Linux 下如何使用 alias 命令


有時我們會重復多次的進入項目的目錄,如果目錄很深的話,每次都需要輸入很長的命令,而且有時候路徑錯了一個字母,就需要修改出錯的位置,完全正確之后才會進入正確的目錄。

現在有一種方法可以很便捷的解決重復輸入以及輸入錯誤的問題,那就是 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 別名 撤銷指定的別名


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM