ignorespace 忽略以空白开头的命令(以空白开头的命令不会记录在命令历史中)
ignoreboth 以上两者都生效
修改变量的方法:只在当前shell环境中有效
NAM=‘VALUE’ HISTCONTROL=‘ignorespace’
四,命令别名
- 命令别名:
alias 查看命令别名
2.定义别名 alias NAME=‘commond’ (NAME不能是系统中的命令)
alias Net=‘vi /etc/sysconfig/network-scripts/ifcfg-eth0’
3.撤销别名
unalias NAME
4.永久生效别名 vi /etc/bashrc 中添加一行 alias NAME=‘commond’
添加之后如果想生效,需重载 source /etc/bashrc
5.如果想跳过别名,执行原有命令 \command(反斜杠+命令)
五,特殊符号
| 管道符 把上一个命令的执行结果(输出)当做下一个命令的输入
tee 可以把执行中的信息保留下来
. 在Linux中代表当前目录
… 在Linux系统中代表上一级目录
; 在Linux中执行多条命令时,可以用分号隔开,每个命令之间互不干扰,所有命令都会执行
`` 反单引号 命令替换,反单引号引起的内容当做命令执行
‘’ 单引号 强引用,所见即所得
[root@localhost ~]# echo ‘$SHELL’ 结果为 $SHELL
" " 双引号 弱引用,可以实现命令替换
[root@localhost ~]# echo “$SHELL” 结果为 /bin/bash
{ } 做扩展使用
* 通配作用
[root@localhost ~]# ls a* (a开头的所有的文件)
六,重定向
Linux提供的三种IO设备
STDIN | 标准输入 | 0(文件描述符) | 默认来自于键盘 |
STDOUT | 标准输出 | 1 | 默认到终端窗口 |
STDERR | 标准错误 | 2 | 默认到终端窗口 |
正确输出重定向
[root@localhost dev]# cd /tmp/
[root@localhost tmp]# date 1> date.file
[root@localhost tmp]# ls
date.file vmware-root_6136-969586290 yum.log
ks-script-s_Trsx vmware-root_6138-961263600[root@localhost tmp]# cat date.file
Tue Jan 18 22:47:52 CST 2022
1> 覆盖
1>> 追加
[root@localhost tmp]# ls /home/
[root@localhost tmp]# ls /aaa
ls: cannot access /aaa: No such file or directory
[root@localhost tmp]# ls /home/ /aaa
ls: cannot access /aaa: No such file or directory
/home/:
[root@localhost tmp]# ls /home/ /aaa 1> stdout
ls: cannot access /aaa: No such file or directory
[root@localhost tmp]# cat stdout
/home/:
[root@localhost tmp]# ls /home/ /aaa 1>> stdout
ls: cannot access /aaa: No such file or directory
[root@localhost tmp]# cat stdout
/home/:
/home/:
错误输出重定向
2> 覆盖
[root@localhost tmp]# ls /home/ /aaa 2> stderr
/home/:
[root@localhost tmp]# cat stderr
ls: cannot access /aaa: No such file or directory
2>> 追加
混合输出
&>
[root@localhost tmp]# ls /home/ /aaa &> std
[root@localhost tmp]# cat std
ls: cannot access /aaa: No such file or directory
/home/:
2>&1
首先,先把错误的重定向到正确的,然后从正确的一同输入到文件
设备文件
/dev/null 数据黑洞 不想要的数据都可以给他
[root@localhost tmp]# ls /home/ /aaa &> /dev/null(相当于出来的数据都直接丢弃了)
/dev/zero 吐零机 可以提供无穷无尽的0
七,命令行的通配符
* 匹配任意长度的任意字符
? 匹配任意单个字符
[] 匹配指定范围内的任意单个字符
[^] 匹配指定范围外的任意单个字符
[0-9] 所有数字
[a-z] aAbB…z
[A-Z] AbB…zZ
[[:lower:]] 小写字母
[[:upper:]] 大写字母
[[:digit:]] 数字
[[:alpha:]] 所有字母
[[:punct:]] 标点符号
[[:alnum:]] 数字+字母
[[:space:]] 空白字符
[1] 除小写字母
[root@localhost tmp]# touch af
[root@localhost tmp]# touch a1
[root@localhost tmp]# touch a234
[root@localhost tmp]# ls a*
a1 a234 af
[root@localhost tmp]# ls a?
a1 af
:lower: ↩︎