6.1 tab 键
1)自动补齐文件名
例如:test 文件中只有一个 tangahi.txt 文件时,只需输入t 然后 tab 即可
[root@wangweicentos home]# cat test/tangshi.txt
2)自动补齐目录
例如:home 文件中只含有一个 test 目录时,只需输入t 然后tab 即可
[root@wangweicentos home]# cat test/
3)自动补齐命令
例如:在/root 中输入cat指令,按两次tab,即可查看所有可cat的文件;搜索到你想查看的文件名后,输入.bash 按两次tab,即可查看所有可cat .bash 的指令,找到你想运行的指令,最后输入 cat.bash_h 按下tab键即可补全指令(cat .bash_history)
6.2 Linux 快捷键
ctrl+c 退出前台程序
ctrl+l = clear 命令 清屏
ctrl+d 退出当前终端 等价于 exit 命令
ctrl+a 快速将光标移动到命令起始位置
ctrl+e 快速将光标移动到命令最后
ctrl+u 删除光标前所有字符
ctrl+k 删除光标后所有字符
6.3 history 历史指令
history 命令用来查看我们在系统中执行了哪些命令,也可以用来定位一些人为操作的问题。
1)可以通过 HISTSIZE 这个系统变量来查看我们的历史指令条数是多少。
2)也可以通过赋值实现修改其大小,如
每个用户都有一个文件用来记录自己的历史指令,root用户在其家目录中 .bash_history 文件中可以查看历史指令。
6.4 Linux 管道
1)管道是用来过滤数据的,讲输入源数据根据一定规则过滤输出到文件或终端,管道使用 |grep 实现数据的过滤。
2)tee管道可将输入流同时输出到终端和文件中,如下
即将输入的文案放在另一个位置或文件中
6.5 Linux 输入输出重定向
解释:Linux 系统进程使用不同的文件描述符(FD file descriptors)来管理打开的文件
一:Linux系统提供如下三种 I/O设备
标准输入 stdin 使用文件描述符 0 代替 0 代表来自键盘的输入
标准输出 stdout 使用文件描述符 1 代替 1 表示输出到屏幕
标准错误 stderr 使用文件描述符 2 代替 2 默认也是输出到终端窗口即屏幕
二:重定向
1)输入重定向 使用< 或者 <<来接收其他设备的内容作为输入,比如使用文件内容重定向输入到某个命令。(必须是所在目录下的文件)
2)正确输出: 1> 1>>等价于> >> 输出重定向。相对于输入重定向来说,输出重定向更常用,输出重定向使用户能把一个命令的输出重定向到一个文件里,而不是显示在屏幕上,这种功能使用于多种情况,例如,如果某个命令的输出很多,在屏幕上不能完全显示,即可把他重定向到一个文件中,稍后在用文本编辑器来打开这个文件
注意:文件描述符跟重定向符号之间不能有空格,同时>代表输出重定向并且会覆盖上次的内容,>>代表输出重定向但是不会覆盖上次内容,而是追加内容到上次文件末尾。
[root@wangweicentos ~]# date > date.txt
[root@wangweicentos ~]# cat date.txt
Thu Jul 14 20:39:16 CST 2022
[root@wangweicentos ~]# date >> date.txt
[root@wangweicentos ~]# cat date.txt
Thu Jul 14 20:39:16 CST 2022
Thu Jul 14 20:39:42 CST 2022
[root@wangweicentos ~]#
3)错误输出 2> 2>>
[root@wangweicentos home]# touch AAA.txt
[root@wangweicentos home]# touch BBB.txt
[root@wangweicentos home]# ls
AAA.txt BBB.txt LXY test wangwei ww
[root@wangweicentos home]# ls /home aaa > AAA.txt 2>BBB.txt
[root@wangweicentos home]# ls /home aaa > AAA.txt 2> BBB.txt
[root@wangweicentos home]# cat BBB.txt
ls: cannot access aaa: No such file or directory
[root@wangweicentos home]# ls bbb 2>> AAA.txt
[root@wangweicentos home]# cat AAA.txt
/home:
AAA.txt
BBB.txt
LXY
test
wangwei
ww
ls: cannot access bbb: No such file or directory
[root@wangweicentos home]#
4)将正确的输出和错误的输出分别重定向到不同文件中:
ls /home /aaa 1> AAA.txt 2> BBB.txt
其中/home 目录是系统本身就存在的,而/aaa 是不存在的目录,使用 ls 命令查看时会报错,我们通过使用不同的文件描述符和重定 向符号结合使用,让其分别输出到不同的文件中,这样可以区别查看我们的正确输出和错误输出。
5)将正确的输出和错误的输出同时重定向到一个文件中:
ls /home /aaa 1> BBB.txt 2>&1
此例子作用就是将正常的输出重定向到 BBB.txt 中,然后同时使用&1 将错误的输出重定向到正确输出中。
[root@wangweicentos /]# ls /home /aaa > BBB.txt 2>&1
[root@wangweicentos /]# cat BBB.txt
ls: cannot access /aaa: No such file or directory
/home:
AAA.txt
BBB.txt
LXY
test
wangwei
ww
[root@wangweicentos /]#
上述例子的命令可以将其简写为如下去实现,效果一致:
[root@centos7 ~]# ls /home /aaa &> AAA.txt
[root@wangweicentos ~]# ls /home /aaa &> AAA.txt
[root@wangweicentos ~]# cat AAA.txt
ls: cannot access /aaa: No such file or directory
/home:
AAA.txt
LXY
test
wangwei
ww
[root@wangweicentos ~]#
三:
1)/dev/null 有时候我们的命令结果并不想让其输出,而是只想让其执行,就可以将其重定向到/dev/null 设备中。 /dev/null/设备是我们的空设备或者叫做位桶,有时也称为黑洞,你可以向它输入任何东西,而不用担心它会被撑满。
举例:
[root@wangweicentos ~]# date
Thu Jul 14 21:28:29 CST 2022
[root@wangweicentos ~]# date=/dev/null
[root@wangweicentos ~]# aaa=/dev/null
[root@wangweicentos ~]#
2)/dev/zero 设备是我们的 0 设备,也是我们的输入设备,无限制提供0 ,用于向设备或者文件中写入无限个数的字符串 0
dd if=/dev/zero of=/opt/test bs=10M count=10
[root@centos7 opt]# ls -lh
-rw-r--r-- 1 root root 100M Jul 14 15:47 test