CentOS 7 之 Linux 命令别名
本文通过答题的形式,了解使用 Linux 命令别名,系统环境为 CentOS 7 版本。使用alias
命令,查看系统中的命令别名,设置临时别名,设置命令永久别名,设置命令别名注意事项。
一、答题
题目:在 root 权限下操作。已知/data
目录下有一个test.txt
文件,如何执行命令把/data/test.txt
文件,拷贝到/root/data
目录下,并且该目录下也有个一同名文件test.txt
。复制文件时,遇到同名文件,直接覆盖,不让系统提示询问,是否覆盖输入 yes/no ,有几种方法?
方法 1,使用
\cp
命令。[root@centos7 ~]# cp /data/test.txt /root/data/
cp: overwrite ‘/root/data/test.txt’? y
[root@centos7 ~]# \cp /data/test.txt /root/data/
[root@centos7 ~]#
方法 2,使用
cp
命令的,绝对路径也叫全路径,复制文件。[root@centos7 ~]# /usr/bin/cp /data/test.txt /root/data
[root@centos7 ~]#
如何获取命令绝对路径?使用which
命令。
[root@centos7 ~]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@centos7 ~]#
获取cp
命令的绝对路径是/usr/bin/cp
。
知识点:cp
命令的参数-i
用于操作提示询问。为什么执行cp
与cp -i
效果一样,同样会提示询问?因为cp
是cp -i
的别名,它们之间是等效的。
命令别名的好处:
- 防止运行危险命令。
- 简化命令,提高效率。
二、如何设置一个命令别名
1. 查看系统中的别名
使用alias
命令,查看系统中的命令别名。
查看全部别名:
[root@centos7 ~]# alias
alias cp='cp -i'
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 mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@centos7 ~]#
查看部分别名:
[root@centos7 ~]# alias cp mv rm
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
[root@centos7 ~]#
2. 设置临时别名
设置别名注意事项:
- 等号
=
两边不能有空额。 - 等号
=
后面用一对单引号'
。 - 单引号
'
中包裹的必须是能够执行的命令。
设置rm
命令临时别名为echo Do not use rm.
。
[root@centos7 ~]# alias rm='echo Do not use rm.'
使用rm
命令:
[root@centos7 ~]# rm /data/test.txt
Do not use rm. /data/test.txt
查看刚刚设置的rm
别名:
[root@centos7 ~]# alias rm
alias rm='echo Do not use rm.'
这种临时别名只是临时的,断开链接,或者重启系统后,就恢复了。查看rm
命令别名:
[root@centos7 ~]# alias rm
alias rm='rm -i'
所以下面介绍,如何设置永久命令别名。
3. 设置命令永久别名
编辑/etc
目录下的profile
文件:
[root@centos7 ~]# vim /etc/profile
在profile
文件最后一行,插入一行我们上面刚刚设置别名的命令:
alias rm='echo Do not use rm.'
用到的vim
快捷键:
- 按下大写的
G
到文件最后一行。 - 按下小写的
o
插入一个空行,写入命令。
最后,按Esc
键,保存退出:wq
。
检查profile
文件最后一行:
[root@centos7 ~]# tail -1 /etc/profile
alias rm='echo Do not use rm.'
成功修改profile
文件。使用source
命令,让设置生效。
[root@centos7 ~]# source /etc/profile
检查设置是否生效,使用rm
命令。
[root@centos7 ~]# alias rm
alias rm='echo Do not use rm.'
[root@centos7 ~]# rm /data/test.txt
Do not use rm. /data/test.txt
到此,成功设置永久别名。针对rm
、cp
、mv
这三个命令别名设置,还有个坑!其它命令的别名设置没问题。请看下文。
三、设置命令别名注意事项
通过修改/etc/profile
文件设置别名有个坑。只有设置rm
、cp
、mv
这三个命令的别名时,才会引发这个坑。因为在/root/.bashrc
文件中,对这三个命令有别名设置。所以要修改.bashrc
文件继续完善上面的设置,填坑~
请注意,对于其它命令别名设置是没问题的,不用修改这个.bashrc
文件。
使用vim
命令,修改.bashrc
文件。
[root@centos7 ~]# vim /root/.bashrc
注释alias rm='rm -i'
内容,如下。
[root@centos7 ~]# vim /root/.bashrc
# .bashrc
# User specific aliases and functions
# alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
保存并退出。
到此,填坑完毕。
(完)