前言
继上次的Linux基础指令(1)后,我有学习了一些新的指令,有在(1)基础上的补充,也有一部分新学习的知识,我在此记录下来以记录我的学习旅程。
提示:以下是本篇文章正文内容,下面案例可供参考
一、history 历史命令
- history命令用来查看我们在系统中执行了哪些命令,也可用来定位一些人为操作问题
- 可一通过HISTSIZE这个系统变量来查看我们的历史命令条数是多少
[root@guowang1 ~]# echo $HISTSIZE
1000
- 可一通过赋值修改其大小
[root@guowang1 ~]# echo $HISTSIZE
1000
[root@guowang1 ~]# HISTSIZE=100
[root@guowang1 ~]# echo $HISTSIZE
100
- 每个用户都有一个文件用来记录自己的历史命令,root 用户在其家目录中.bash_history 文件中可以查看到历史命令。
[root@guowang1 ~]# cat .bash_history halt ifconfig passwd
二、重定向
输入重定向:
使用< 或者 <<来接收其他设备的内容作为输入,比如使用文件内容重定向输入到某个命令,如下:
[root@guowang1 home]# cat < ww
总用量 8
-rw-------. 1 root root 1744 7月 10 18:22 anaconda-ks.cfg
-rw-r--r--. 1 root root 1775 7月 10 18:23 initial-setup-ks.cfg
输出重定向:
使用>或者>>来将标准输入或者其他地方的输入输出到非终端窗口的设备,比如将一个命令的结果输出到文件中,我们可 以通过查看文件去看对应的内容,而屏幕或终端是看不到任何内容的。
[root@centos7 ~]# ls > ls.txt
[root@centos7 ~]# cat ls.txt
1
123.txt
2000
29.txt
a
echo 'live'
echo 'dead'
99.sh
正确输出:1> 和 1>> 跟 > 及 >>是等效的。 如:date 1> 1.txt date > 1.txt
注意:文件描述符跟重定向符号之间不能有空格,同时>代表输出重定向并且会覆盖上次的内容,>>代表输出重定向但是不会覆盖上次 内容,而是追加内容到上次文件末尾。
错误输出:2> 和 2>>
如:ddds 2> er.txt ddds 2>> er.txt
重定向符号跟正确输出功能一致。
将正确的输出和错误的输出分别重定向到不同文件中:
ls /home /dssssss 1> home.txt 2> dssss.txt
其中/home 目录是系统本身就存在的,而/dsssss 是不存在的目录,使用 ls 命令查看时会报错,我们通过使用不同的文件描述符和重定 向符号结合使用,让其分别输出到不同的文件中,这样可以区别查看我们正确的输出和错误的输出同时重定向到一个文件中: ls /home /dsssss 1> ls.txt 2>&1 此例子作用的正确输出和错误输出。
将就是将正常的输出重定向到 ls.txt 中,然后时使用&1 将错误的输出重定向到正确输出中。
[root@centos7 ~]# ls /home /dsss 1> ls.txt 2>&1
[root@centos7 ~]# cat ls.txt
ls: cannot access /dsss: No such file or directory
/home:
alice
bob
david
hello
john
上述第二个例子的命令可以将其简写为如下去实现,效果一致:
[root@centos7 ~]# ls /home /dsss &> ls.txt
有时候我们的命令结果并不想让其输出,而是只想让其执行,就可以将其重定向到/dev/null 设备中。
/dev/null 设备是我们的空设备或者叫做位桶,有时也称为黑洞,你可以向它输出任何东西,而不用担心会撑满它。
/dev/zero 设备是我们的 0 设备,也是我们的输入设备,无限制提供 0,用于向设备或文件中写入无限制个数的字符串 0。
三、ls 命令
ls 命令用来显示指定工作目录下的内容
常用参数: -a 列出目录下的隐藏目录
-A 列出除过.和..之外的所有文件和目录
-d 列出目录本身不包含目录下的内容
-h 以人类可读的方式显示文件的大小,通常结合-l 参数使用
-l 是长格式化的列表显示,包含文件的相关属性,比如权限,时间,大小,所属用户用户组等等
-t 以时间顺序排序,通常最新的文件或目录排在最前面,这个参数通常跟-l 一起使用
-r 是反向排序,通常跟-lt 结合可以实现按照时间顺序从旧到新的顺序排序,也就是说新文件在最后面
-S 按照文件大小排序,通常也是结合-l 参数使用,默认是从大到小排序