表达式
Shell 中表达式
Curly braces
花括号({..})展开以创建模式,语法为:
{ pattern1, pattern2, patternN }
text{ pattern1, pattern2, patternN }
text1{ pattern1, pattern2, patternN }text2
command something/{ pattern1, pattern2, patternN }
典型用法如下:
$ echo I like {tom,jerry} # I like tom jerry
$ echo file{1,2,3}.txt # file1.txt file2.txt file3.txt
$ echo file{1..5}.txt # file1.txt file2.txt file3.txt file4.txt file5.txt
生成的文件名不需要存在。您还可以为括号内的每个模式运行命令。通常,您可以键入以下内容列出三个文件:
$ ls /etc/{resolv.conf,hosts,passwd}
$ rm -v hello.{sh,py,pl,c}
Wildcards(通配符)
Bash 支持如下的通配符:
-
*
- Matches any string, including the null string -
? - Matches any single (one) character.
-
[…] - Matches any one of the enclosed characters.
要显示存储在 /etc
目录中的所有配置(.conf)文件,请输入:
ls /etc/*.conf
要显示所有 C 项目头文件,请输入:
ls *.h
要显示所有 C 项目.c 文件,请输入:
ls *.c
您可以将通配符和花括号结合使用:
ls *.{c,h}
样本输出:
f.c fo1.c fo1.h fo2.c fo2.h fo3.c fo3.h fo4.c fo4.h fo5.c fo5.h t.c
To list all png file (image1.png, image2.png…image7.png, imageX.png), enter:
ls image?.png
要列出所有以字母 a 或 b 开头的文件配置文件,请输入:
ls /etc/[ab]*.conf
别名
别名不过是命令的快捷方式。
alias name='command'
alias name='command arg1 arg2'
创建一个名为 c 的别名以清除终端屏幕,输入:
alias c='clear'
要清除终端,请输入:
c
创建一个名为 d 的别名以显示系统日期和时间,输入:
alias d='date'
d
样本输出:
Tue Oct 20 01:38:59 IST 2009
使用 alias 命令创建并列出别名,然后使用 unalias 命令删除别名。语法为:
unalias alias-name
unalias c
unalias c d
要列出当前定义的别名,请输入:
alias
alias c='clear'
alias d='date'
如果需要取消取消对名为 d 的命令的使用,请输入:
unalias d
alias
如果给出了-a 选项,那么除去所有别名定义,输入:
unalias -a
alias
Example ~/.bashrc script:
# make sure bc start with standard math library
alias bc='bc -l'
# protect cp, mv, rm command with confirmation
alias cp='cp -i'
alias mv='mv -i'
alias rm='rm -i'
# Make sure dnstop only shows eth1 stats
alias dnstop='dnstop -l 5 eth1'
# Make grep pretty
alias grep='grep --color'
# ls command shortcuts
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
# Centos/RHEL server update
alias update='yum update'
alias updatey='yum -y update'
# vi is vim
alias vi='vim'
# Make sure vnstat use eth1 by default
alias vnstat='vnstat -i eth1'