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 cpalias cp='cp -i'/usr/bin/cp[root@centos7 ~]#
获取cp命令的绝对路径是/usr/bin/cp。
知识点:cp命令的参数-i用于操作提示询问。为什么执行cp与cp -i效果一样,同样会提示询问?因为cp是cp -i的别名,它们之间是等效的。
命令别名的好处:
- 防止运行危险命令。
- 简化命令,提高效率。
二、如何设置一个命令别名
1. 查看系统中的别名
使用alias命令,查看系统中的命令别名。
查看全部别名:
[root@centos7 ~]# aliasalias 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 rmalias 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.txtDo not use rm. /data/test.txt
查看刚刚设置的rm别名:
[root@centos7 ~]# alias rmalias rm='echo Do not use rm.'
这种临时别名只是临时的,断开链接,或者重启系统后,就恢复了。查看rm命令别名:
[root@centos7 ~]# alias rmalias 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/profilealias rm='echo Do not use rm.'
成功修改profile文件。使用source命令,让设置生效。
[root@centos7 ~]# source /etc/profile
检查设置是否生效,使用rm命令。
[root@centos7 ~]# alias rmalias rm='echo Do not use rm.'[root@centos7 ~]# rm /data/test.txtDo 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 definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfi
保存并退出。
到此,填坑完毕。
(完)