如何让linux用户自定义的命令alias永久生效?

 alias(中文称为“别名”)允许使用更加简短的名称来重新定义 Linux 中的 Shell 命令,从而简化命令行的输入。如果经常与 CLI 打交道,那么使用 alias 不仅会节省时间,而且也能提高效率,真是一举两得的好事。


      * 基本用法:  al ias 的基本使用方法为:alias 新的命令=‘原命令 -选项/参数‘。举例说明,alias l=‘ls -lsh‘ 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
      * 获知别名: 直接输入 alias 命令会列出当前系统中所有已经定义的命令别名。
      * 删除别名: 要删除一个别名,可以使用 unalias 命令,如 unalias l。

上面的是网上看到的,这个方法只是暂时的,如果重启一次就失效了,如果我们想永久生效一个命令怎么办呢?

打开 .bashrc (应该是ubuntu发行版的,其他发行版也许可以修改.bash_profile)可以看到

……

# some more ls aliases

alias ll=‘ls -alF‘
alias la=‘ls -A‘
alias l=‘ls -CF‘

……

方法1 :直接在我们的 环境变量文件中添加 alias xx=‘xxxxx‘

方法2    : .bashrc 中有一句话

# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.

就是说可以另外新建一个文件用于专门存放自己的alias信息



  $ cd

  $ vi .bash_aliases

  在文件中输入自己想设置的命令    alias rm=‘rm -i‘    然后保存推出

  $ source .bashrc     #让我们的环境生效

方法……----------------------请注意实际在centos5测试 发现应该是.bashrc

小结:   

1.很多时候我们只注意了解决问题本身,但是往往忽略了其他的东西,在解决问题的过程中也是一个学习的机会,尤其不要忘了看软件源码之类的注释!突然发现这个非常重要,就是因为看了注释,我才发现了这个方法,而我本来的目的是想对我自己的环境变量进行设置修改,在解决环境变量的问题同时我又顺带解决了这个 alias的问题,以后得牢记!!!

2.在查找网上的解决方法的时候,经常发现别人有的文件本机没有,例如.bashrc 和 .bash_profile    可能就是不同发行版上的,这个时候可以换个搜索方式,或者自己尝试……
分类: ubuntu

http://www.cnblogs.com/jjyoung/archive/2011/07/15/2107788.html


如果是当前的session
使用过的Linux命令之alias - 设置命令的别名,让 Linux 命令更简练

本文链接: http://codingstandards.iteye.com/blog/1145318      (转载请注明出处)


用途说明

设置命令的别名。在linux系统中如果命令太长又不符合用户的习惯,那么我们可以为它指定一个别名。虽然可以为命令建立“链接”解决长文件名的问题,但对于带命令行参数的命令,链接就无能为力了。而指定别名则可以解决此类所有问题【1】。常用别名来简化ssh登录【见示例三】,使长命令变短,使常用的长命令行变短,强制执行命令时询问等。


常用参数

格式:alias

格式:alias -p

显示当前设置的别名。



格式:alias name=‘command line‘

设置别名。



格式:alias name

显示指定的别名设置。



格式:unalias name

取消指定的别名设置。


使用示例
示例一 解决RHEL5/CentOS5下vi不能语法高亮显示的问题

在/etc/profile的末尾添加vi的别名设置



alias vi="vim"


显示二 显示当前的别名设置

[root@jfht ~]# alias
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=tty‘
alias ll=‘ls -l --color=tty‘
alias ls=‘ls --color=tty‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[root@jfht ~]# alias cp
alias cp=‘cp -i‘
[root@jfht ~]#


示例三 ssh别名

ssh 别名 - alias server_name=‘ssh -v -l USERNAME IP ADDRESS‘,更改 server_name、USERNAME 及 IP 地址以适应你的需要。对于经常要使用 ssh 登录远程 shell 的同学来说,这是一个值得收藏的别名。



[root@jfht ~]# alias 180=‘ssh 192.168.1.180‘
[root@jfht ~]# 180
ssh: connect to host 192.168.1.180 port 22: No route to host
[root@jfht ~]# alias 181=‘ssh 192.168.1.181‘
[root@jfht ~]# 181
[email protected] ‘s password:

[root@jfht ~]#


示例四 常见别名设置集锦

alias l="ls -l"

alias ll="ls -l"



alias lm=‘ls -al | more‘


模拟DOS风格的命令

alias clr=clear
alias cls=clear
alias copy=‘cp -i‘
alias del=‘rm -i‘
alias delete=‘rm -i‘
alias dir=‘ls -alg‘
alias home=‘cd ~‘
alias ls=‘ls -F‘
alias md=mkdir
alias move=‘mv -i‘
alias type=more

alias cd..=‘cd ..‘



alias home=‘cd /home/dave/public_html‘

alias list=‘ls -la‘

alias attrib=‘chmod‘
alias chdir=‘cd‘
alias copy=‘cp‘
alias cp=‘cp -i‘
alias d=‘dir‘
alias del=‘rm‘
alias deltree=‘rm -r‘
alias dir=‘/bin/ls $LS_OPTIONS --format=vertical‘
alias edit=‘pico‘
alias ff=‘whereis‘
alias ls=‘/bin/ls $LS_OPTIONS‘
alias mem=‘top‘
alias move=‘mv‘
alias mv=‘mv -i‘
alias pico=‘pico -w -z‘
alias rm=‘rm -i‘
alias search=‘grep‘
alias v=‘vdir‘
alias vdir=‘/bin/ls $LS_OPTIONS --format=long‘
alias which=‘type -path‘
alias wtf=‘watch -n 1 w -hs‘
alias wth=‘ps -uxa | more‘


问题思考

1. 怎么取消指定别名?

2. 别名在shell脚本中有效吗?

3. 怎样列出所有别名?

4. 怎样取消所有别名?

5. 怎样执行ls命令本身,而不是别名?


相关资料

【1】linux系统下给命令指定别名alias命令用法

【2】10 个实用的 Bash alias

【3】鸟哥的私房菜 命令別名設定: alias, unalias

【4】Computer Hope Linux / Unix alias command

【5】alias command

【6】Linux宝库 alias——别名

【7】Linux安全网 linux alias命令参数及用法详解--linux定义命令别名alias
【8】jiacheo 在linux的alias中使用awk遇到的问题     http://codingstandards.iteye.com/blog/1145318




命                令:     alias

功能说明:设置指令的别名。

语  法:alias[别名]=[指令名称]

补充说明:用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。 alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在/etc/profile或自己的~/.bashrc中设定指令的别名。

      还有,如果你想给每一位用户都生效的别名,请把alias la=‘ls -al‘ 一行加在/etc/bashrc最后面,bashrc是环境变量的配置文件 /etc/bashrc和~/.bashrc 区别就在于一个是设置给全系统一个是设置给单用户使用.

参  数:若不加任何参数,则列出目前所有的别名设置。 资料来自  www.linuxso.com      Linux安全网

CentOS5.6自带的alias定义


[ [email protected]  ~]#alias
alias cp=‘cp -i‘
alias l.=‘ls -d .* --color=tty‘
alias ll=‘ls -l --color=tty‘
alias ls=‘ls --color=tty‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘

有的系统里没有ll这个命令,原因就是没有定义ll=‘ls -l --color=tty‘这个别名

利用alias可以把很长的命令变成任意我们喜欢的简短的

设置和修改alias命令别名格式很简单

alias ll=‘ls -l --color=tty‘

如果想永久生效,就把这条写入到 /etc/bashrc里面

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。