命令技巧:
命令行使用技巧:
Ctrl + a 光标跳转行首
Ctrl + e 光标跳转行尾
Ctrl + u 删除光标至行首的内容
Ctrl + k 删除光标至行尾内容
Ctrl + l 实现清屏
命令历史使用技巧:
!n 执行命令历史中第N行命令
!-n 执行历史命令中倒数第N行命令
!! 执行上一条命令
!CHARACTER 执行历史命令中最近一次以CHARACTER开头的命令
!$ 引用前一个命令的最后一个参数
ESC 松开按. 引用前一个命令的最后一个参数
命令别名:
#alias CMDALIAS=COMAND 命令重命名
在shell 中定义的别名仅在当前shell 生命周期中有效,别名的有效范围当前shell进程
#unalias 取消命令重命名 ,#unalias COMAND
tab按键功能:
命令补全 :搜索PATH环境变量所指定的每个路径下以我们给出的字符串开头的可执行文件
路径补全 :搜索我们给我的起始路径下的每个文件名,并试图补全
bash 支持的引号及作用:
`` 反引号 (tab 上面的按键), 命令替换 ,把命令中某个子命令替换为命令执行结果的过程,格式$(COMMAND), 反引号:`COMMAND`
“” 双引号,弱引用,可以完成变量替换,把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来。
‘’ 单引号,强引用,不可完成变量替换;所见即所得:即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么就会输出什么。
不加引号,不会将含有空格的字符串视为一个整体输出, 如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来,如果字符串中带有空格等特殊字符,则不能完整的输出,需要改加双引号,一般连续的字符串,数字,路径等可以用。
例1:
[[email protected] etc]# echo `date` #反引号的作用为命令替换。 Fri Sep 8 18:08:29 CST 2017 [[email protected] etc]# echo ‘`date`‘ #单引号,所见即所得,单引号内的内容直接输出。 `date` [[email protected] etc]# echo "`date`" #先做命令替换,在输出 。 Fri Sep 8 18:08:44 CST 2017
例2:
[[email protected] etc]# A=who #设置变量A=who [[email protected] etc]# echo ‘$A‘ $A [[email protected] etc]# echo "$A" who [[email protected] etc]# echo `$A` #反引号,变量替换,先执行$A =who,然后执行who 命令,相当于 echo `who` ,最后输出who 命令的结果 root tty1 2017-09-07 18:26 root pts/0 2017-09-07 18:27 (172.16.10.200) [[email protected] etc]# echo $A #先做变量替换,然后输出 who
环境变量 :
PATH 命令路径
HISTSIZE 命令历史大小
示例:# echo $HISTSIZE ,显示缓存命令的大小
#echo $shell ,显示用户Shell 环境
文件名通配
* 匹配任意长度的任意字符,包含空#ls a*
? 匹配任意单个字符 ,#ls ?y*
[ ] 匹配指定范围内的任意单个字符,如[a-zA-Z][0-9] [0-9a-zA-Z]
[[:space:]] 所有的空白字符
[[:punct:]] 所有标点符号
[[:lower:]] 所有小写字符
[[:upper:]] 所有大写字符
[[:alpha:]] 所有大小写字母
[[:digit:]] 所有数字
[[:alnum:]] 数字和大小写字
[^] 匹配指定范围之外的任意字符
例:
1、显示以字母开头并以字母结束,且中间包含空格的文件 #ls -l [[:alpha:]]*[[:space:]]*[[:alpha:]] 2、显示/var目录下所有以m开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。 # ls -1d /var/m*[[:digit:]]*[[:lower:]] 3、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。 # ls -ld /etc/[[:digit:]]*[^[:digit:]] 4、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。 #ls -ld /etc/[^[:alpha:]][[:alpha:]]* 5、显示/etc目录下所有以m开头以非数字结尾的文件或目录。 #ls -ld /etc/m*[^[:digit:]] 6、显示/etc目录下,所有以.d结尾的文件或目录 #ls -ld /etc/*.d 7、显示/etc目录下,所有.conf结尾,且以m,n,o,p开头的文件或者目录 #ls -ld /etc/[m,n,o,p]*.conf