欢迎各位兄弟 发布技术文章
这里的技术是共享的
命令别名 它跟变量的定义一样,是shell的特性, shell 关闭了它就没有了,只在当前 shell 进程的生命周期有效 别名的有效范围作用范围为当前shell进程
要永久有效生命 须在 bash 的配置文件中 (家目录下的 ./bashrc ) 写进去 全局,对所有用户有效
alias CMDALIAS='COMMAND [options] [arguments]' //如果有空格,最好使用单引号引起来
unalias CMDALIAS //撤销别名
\CMD //命名别名 已经给了命令(加上参数)(例如 alias cp='cp -i') 此时加反斜杠,就是真正的原命令
# alias cls=clear
[root@ebs-22618 ~]# cls
-bash: cls: command not found
[root@ebs-22618 ~]# alias cls=clear
[root@ebs-22618 ~]# cls
[root@ebs-22618 ~]# alias //不带任何参数 显示当前系统上的所有别名
[root@ebs-22618 ~]# type alias
alias is a shell builtin
[root@ebs-22618 ~]# unalias cls
[root@ebs-22618 ~]# cls
-bash: cls: command not found
# cd //进入家目录
# clear
windows 中是 > cls
命令替换: $(COMMAND) ( 美元符 左小括号 命令 右小括号 )或者 `COMMAND` 反引号
把命令中某个子命令替换为其执行结果的过程
bash支持的引号:
` `:反引号,命令替换
"":双引号,弱引号,可以实现变量替换
'':单引号,强引号,不完全变量替换
file-2013-01-28-14-53-31.txt
[root@ebs-22618 ~]# echo "The current directory /root"
The current directory /root
[root@ebs-22618 ~]# cd /etc/sysconfig/
[root@ebs-22618 sysconfig]# echo "The current directory /root"
The current directory /root
[root@ebs-22618 sysconfig]# pwd
/etc/sysconfig
[root@ebs-22618 sysconfig]# echo "The current directory is $(pwd)."
The current directory is /etc/sysconfig.
[root@ebs-22618 sysconfig]# cd
[root@ebs-22618 ~]# echo "The current directory is $(pwd)."
The current directory is /root.
#touch ./file-$(date +%F-%H-%M-%S).txt
[root@ebs-22618 x]# echo "Dir is `pwd`"
Dir is /root/x
文件名通配 globbing 通配符的意思
*: 星号,通配符,任意长度的任意字符
?: 问号,通配符,任意单个字符
[]:中括号,匹配指定范围内的任意单个字符
[^]:中括号里有尖号,指定范围外 (不包括)
[abc] 从a,b,c中选一个 [a-m]从a至m中选一个 [a-z] ,[A-Z] ,[0-9]
[a-zA-Z] 大写小写都包括任意一个
[0-9a-zA-Z] (这是字母或数字)
[:space:] 表示空白字符(好像可以表示其它的非tab键的的字白字符) 表示字符集合 [[:space:]] 里面找一个
[:punct:] 表示标点符号 表示字符集合 [[:punct:]] 里面找一个
[:lower:] 表示小写字母 表示字符集合 [[:lower:]] 里面找一个
[:upper:] 表示大写字母 表示字符集合 [[:upper:]] 里面找一个
[:alpha:] 表示大小写字母 表示字符集合 [[:alpha:]] 里面找一个
[:digit:] 表示0-9的数字 表示字符集合 [[:digit:]] 里面找一个
[:alnum:] 表示大写小写和数字 表示字符集合 [[:alnum:]] 里面找一个
[^[:alpha:]] 表示非字母
#man 7 glob 就可以获得上面这些列表和说明
[^]:拖字符,匹配指定范围之外的任意单个字符
# touch a123 abc ab123 xyz x12 xyz123
[root@ebs-22618 z]# ls
a123 ab123 abc x12 xyz xyz123
[root@ebs-22618 z]# ls a* // 以 a 开头后面跟任意字符的文件
a123 ab123 abc
[root@ebs-22618 z]# touch a
[root@ebs-22618 z]# ls a* //包括 单a的文件
a a123 ab123 abc
[root@ebs-22618 z]#
[root@ebs-22618 z]# ls
a a123 ab123 abc x12 xyz xyz123
[root@ebs-22618 z]# ls a*3 //以a开头 3 结尾的文件
a123 ab123
[root@ebs-22618 z]#
[root@ebs-22618 z]# ls *y* //以任意字符开头,含y,以任意字符结束
xyz xyz123
[root@ebs-22618 z]# touch helloy123
[root@ebs-22618 z]# ls *y*
helloy123 xyz xyz123
[root@ebs-22618 z]#
[root@ebs-22618 z]# touch y123
[root@ebs-22618 z]# ls
a a123 ab123 abc helloy123 x12 xyz xyz123 y123
[root@ebs-22618 z]# ls *y*
helloy123 xyz xyz123 y123
[root@ebs-22618 z]# ls ?y* //以任意第一个字符开头,第二个y,后面跟任意长度的任意字符
xyz xyz123
[root@ebs-22618 z]# ls [a-zA-Z]*[0-9]
a123 ab123 helloy123 x12 xyz123 y123
[root@ebs-22618 z]# touch 1xy6
[root@ebs-22618 z]# ls
1xy6 a a123 ab123 abc helloy123 x12 xyz xyz123 y123
[root@ebs-22618 z]# ls [a-zA-Z]*[0-9]
a123 ab123 helloy123 x12 xyz123 y123
[root@ebs-22618 z]# ls [^0-9]*
a a123 ab123 abc helloy123 x12 xyz xyz123 y123
[root@ebs-22618 z]# touch 'a b' //这是建立一个文件,去掉引号的话就是建两个文件
[root@ebs-22618 z]# ls
1xy6 a a123 a b ab123 abc helloy123 x12 xyz xyz123 y123
[root@ebs-22618 z]# ls [[:alpha:]]* //字母开头 结尾任意字
a a123 a b ab123 abc helloy123 x12 xyz xyz123 y123
[root@ebs-22618 z]# ls [[:alpha:]]*[[:alpha:]] //字母开头且字母结尾 中间任意字符
a b abc xyz
[root@ebs-22618 z]#
[root@ebs-22618 z]# ls [[:alpha:]]*[[:space:]]*[[:alpha:]]
a b
[root@ebs-22618 z]# ls [[:alpha:]]*[[:space:]]*[^[:alpha:]]
ls: 无法访问[[:alpha:]]*[[:space:]]*[^[:alpha:]]: 没有那个文件或目录