配置linux别名,alias命令详解

简介

设置指令的别名,用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 
alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。
还有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al’ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用
如果你想给每一位用户都生效的别名,请把alias la=‘ls -al’ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使。

语法

语法:alias    [-p]     [name=value ] 
      alias   [别名]  = [指令名称]

查看系统自带的别名

好多命令都是带-i的
比如mv、rm、cp
-i的意思就是提示的意思,比如你删除一个文件,他会提示你要不要删除
移动一个文件询问你会不会覆盖

[root@shell ~ 1]# 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@shell ~ 3]# rm zheng-error.txt 
rm: remove regular file ‘zheng-error.txt’?

但是加一个\就不会提示了
原因是前面加上这个就是不使用别名,就忽略掉之前别名的 rm -i提示了

[root@shell ~ 4]# \rm zheng.txt 

临时修改

把rm这个命令修改成
输出到屏幕找不到命令
当做恶作剧玩,可以玩一下别人的虚拟机

[root@shell ~ 6]# alias rm='echo rm command not found'
[root@shell ~ 7]# rm 11
rm command not found 11

但是这个只是临时的,重新登陆以后就没有了
用rm的时候就已经是删除命令了

[root@shell ~ 1]# rm 
1.txt            .bash_logout     .cshrc           test-error.txt
anaconda-ks.cfg  .bash_profile    shell.txt        test.txt
.bash_history    .bashrc          .tcshrc          zheng-error.txt
[root@shell ~ 1]# rm 1.txt 
rm: remove regular file ‘1.txt’? n

永久修改

把临时修改的语句加入到环境变量中
在最后一行加入,然后source重新加载一下
这次换一个别名以防和之前的混了
能看到rm的时候直接打印test和后面的文件

[root@shell ~ 2]# vi /etc/profile

alias rm='echo test'
"/etc/profile" 79L, 1847C written
[root@shell ~ 3]# source /etc/profile
[root@shell ~ 4]# rm 1.txt 
test 1.txt
[root@shell ~ 5]# tail -n1 /etc/profile
alias rm='echo test'

然后还需要测试一下是不是永久生效
重新连接一下

[root@shell ~ 1]# rm 1.txt 
rm: remove regular file ‘1.txt’? m^Hn

他还是显示的rm

这里就是个问题,别名修改的坑只限于 rm mv cp 这三个命令

别名的坑

上面说了只限于mv cp rm
来查看一下隐藏文件 ~/.bashrc

[root@shell ~ 3]# vi ~/.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

在这里插入图片描述

只需要在在rm哪行前面加上#注释掉就可以了
不要删了,然后保存退出
重新连接在测试一下


[root@shell ~ 1]# rm 1.txt 
test 1.txt

成功解决

别名就是为了安全和方便
比如grep过滤,会显示颜色,好分辨
设置别名一定要仔细仔细再仔细

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值