alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号’‘将原来的命令引起来,防止特殊字符导致错误。
注意点
- alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
- 定义的alias 可以保存到
~/.bashrc
或者~/.bash_profile
文件中,但我倒是比较喜欢用单独的文件~/.bash_alias
可以用alias
查看本机所用的alias
alias
alias l.='ls -d .* --color=auto'
alias ll='ls -lath'
alias ls='ls --color=auto'
alias vi='vim'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
自己日常使用的alias
1. 日期类
alias today="date +%Y%m%d"
alias week="date +%U"
alias wkday='echo "week"$(date +%U)_day`expr $(date +%w) + 1`'
alias now='watch -n1 "date '+%D%n%T'|figlet -k|lolcat"' #`lolcat`是用于显示彩色字符的,骚气操作
echo $(fortune) | cowsay | toilet --metal -f term
echo $(wkday) | toilet -f slant | lolcat
2. 科研项目类
# 1. 用上面的wkday创造当日的目录
alias crdiary='touch $(wkday).log'
# 2. 剪切和粘贴
alias setclip="xclip -selection c"
alias getclip="xclip -selection c -o"
# 3. 偷懒的R操作,预装ggplot的themes
alias chRtheme='vim /nethome/whh/default/plot/ggthemes.R'
format(Sys.time(), "%Y%d%m")
>Usage
You can now use setclip and getclip, e.g:
$ echo foo | setclip
$ getclip
foo
更进一步。。。
上一些高阶的alias用法,收着看,引用自给alias的命令传递自定义参数
alias用法格式: alias name text
在text中要得到用户传递的参数可以使用以下方式:
/!:1 表示第1个参数
/!:2* 表示第2个及余下的所有参数
/!* 表示所有参数
如
alias test_val '@ z = (/!*) ;echo $z'
test_var 1 + 1
2
下面的alias将实现”查出用户名为xddai的名为用户传递参数的所有进程号,并传递给kill,将其kill掉:
alias mykill 'ps -u xddai | grep /!:1 | awk' "'"'{print $1}'"'|xargs kill"
如使用mykill java
可以kill掉用户名为xddai的所有java进程
注意:单引号’内的字符串不会为shell解释掉,也就是说$1不会变成空,这样实实际的命令变成:
ps -u xddai | grep !:1 | awk '{print $1}'|xargs kill
哈哈,😏其实也就是一种变相的小脚本
- 简易小白参考:http://man.linuxde.net/alias
- 学习视频:https://www.rosehosting.com/blog/how-to-create-bash-aliases/
Comments