历史命令与命令补全
- 历史命令:
选项:[[email protected] ~]# history [选项] [历史命令保存文件]
:清空历史命令-c
:把缓存中的历史命令写入历史命令保存文件,文件为-w
历史命令默认会保存1000条,可以在环境变量配置文件~/.bash_ history
/etc/profile
中进行修改。
我们打开看一下:
这个就是我们的历史命令保存的条数。如果超过了这个数值,它就会删除第一条命令,保存新的命令。 -
历史命令的调用:
使用上、下箭头调用以前的历史命令
使用
!n
重复执行第n条历史命令。
使用
!!
重复执行上一条命令
使用
重复执行最后一条以该字串开头的命令!字串
-
命令与文件补全:
在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件时,按 “Tab” 键就会自动进行补全。
命令别名与常用快捷键
- 命令别名
:设定命令别名[[email protected] ~]# alias 别名='原命令'
:查询命令别名[[email protected] ~]# alias
-
命令执行时顺序:
1.第一顺位执行用绝对路径或相对路径执行的命令。
2.第二顺位执行别名。
3.第三顺位执行Bash的内部命令。
4.第四顺位执行按照$PATH环境变量定义的目录查找顺序找到的第一个命令。
-
让别名永久生效
用命令行定义的命令的别名只会临时生效,当计算机重启的时候,定义就会失效。我们要想使得定义的别名永久生效,需要修改相应用户家目录下的文件:
文件。/~/.bashrc
- bash常用快捷键
快捷键 作用 ctrl+A 把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。 ctrl+E 把光标移动到命令行结尾。 ctrl+C 强制终止当前的命令。 ctrl+L 清屏,相当于clear命令。 ctrl+U 删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便 ctrl+K 删除或剪切光标之后的内容。 ctrl+Y 粘贴ctrl+U或ctrl+K剪切的内容。 ctrl+R 在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。 ctrl+D 退出当前终端。 ctrl+Z 暂停,并放入后台。 ctrl+S 暂停屏幕输出。 ctrl+Q 恢复屏幕输出。
输入输出重定向
- 标准输入输出
设备类型 设备文件名 文件描述符 键盘 /dev/stdin 显示器 /dev/stdout 1 显示器 /dev/stderr 2 - 输出重定向
- 输入重定向
选项:[[email protected] ~]# wc [选项] [文件名]
:统计字节数-c
:统计单词数-w
-l
:统计行数
用法:
把文件作为命令的输入命令 < 文件
标识符:把标识符之间内容作为 命令的输入命令 << 标识符
多命令顺序执行与管道符
- 多命令顺序执行
示例:
- 命令:
ls;date;cd /user;pwd
-
我们在这里引入一个新的命令:dd。
命令格式:
选项:dd if=输入文件 of=输出文件 bs=字节数 count=个数
指定源文件或源设备if=输入文件
指定目标文件或目标设备of=输出文件
指定一次输入/输出多少字节,即把这些字节看做 一个数据块bs=字节数
count=个数
指定输入/输出多少个数据块
命令:
我们看一下执行的结果:date ; dd if=/dev/zero of=/root/testfile bs=1k count=100000 ; date
- 命令:
ls && echo yes
- 命令:
ls test || echo no
- 命令:
ls test && echo yes || echo no
-
管道符
命令格式:
含义:命令1的正确输出作为命令2的操作对象命令1 | 命令2
示例:
- 命令:
ll -a /etc/ | more
- 我们引入一个新的命令:
格式:grep
选项:grep [选项] "搜索内容" 文件名
: 忽略大小写-i
: 输出行号-n
: 反向查找-v
--color=auto
搜索出的关键字用颜色显示
命令:
作用:查看当前计算机有多少远程连接。netstat -an | grep "ESTABLISHED"
通配符与其他特殊符号
通配符
通配符 | 作 用 |
---|---|
| 匹配一个任意字符 |
| 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
| 匹配中括号中任意一个字符。例如: 代表一定匹配一个字符,或者是a,或者是b,或者是c。 |
| 匹配中括号中任意一个字符,-代表一个范围。例如: 代表匹配一个小写字母。 |
| 逻辑非,表示匹配不是中括号内的一个字符。例如: 代表匹配一个不是数字的字符。 |
示例:
cd /tmp/
rm -rf *
touch abc
touch abcd
touch 012
touch 0abc
ls ?abc
ls [0-9]*
ls [^0-9]*
其他常用特殊符号
符号 | 作用 |
---|---|
| 单引号。在单引号中所有的特殊符号,如“$”和“`”(反引号)都没有特殊含义。 |
| 双引号。在双引号中特殊符号都没有特殊含义,但是 、 和 是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。 |
`` | 反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和 ( ) 作 用 一 样 , 不 过 推 荐 使 用 ()作用一样,不过推荐使用 ()作用一样,不过推荐使用(),因为反引号非常容易看错。 |
$() | 和反引号作用一样,用来引用系统命令。 |
# | 在Shell脚本中,#开头的行代表注释。 |
$ | 用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。 |
\ | 转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。 |
示例:
echo `ls`
echo $(date)
name=sc
echo '$name'
echo "$name"
echo ‘$(date)'
echo “$(date)"
end.