



查看目标文件的内容。




加了这个选项就不能输出多行空行了——




上面已经演示过了——

# 命令⾏构建多⾏⽂本
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 20 ]; do echo "hello bite";
let cnt++; done > temp.txt
# 测试cat基本命令
[whb@bite-alicloud test]$ cat temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
# cat 输出携带⾏号
[whb@bite-alicloud test]$ cat -b temp.txt
1 hello bite
2 hello bite
3 hello bite
4 hello bite
5 hello bite
6 hello bite
7 hello bite
...
# 修改temp.txt,使其携带多⾏空⾏
[whb@bite-alicloud test]$ vim temp.txt
# 测试 -b 对⾮空输出⾏编号
[whb@bite-alicloud test]$ cat -b temp.txt
1 hello bite
2 hello bite
3 hello bite
4 hello bite
5 hello bite
6 hello bite
7 hello bite
...
# 测试-n 对输出的所有⾏编号
[whb@bite-alicloud test]$ cat -n temp.txt
1 hello bite
2 hello bite
3 hello bite
4
5
6
7 hello bite
8 hello bite
9
10 hello bite
11 hello bite
...
# 测试 -s 不输出多⾏空⾏,多⾏空⾏压缩成为⼀⾏
[whb@bite-alicloud test]$ cat -s temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
...cat不好使了——

类似于Windows的记事本,相当于Linux的记事本。
^X:Ctrl + X —— 保存修改内容。

Y:y —— 确认。

我这里存了两次——

如果我想倒着打印,可以怎么做?
tac也可以查看,从前往后打。

cat ~> tac(两个指令的拼写刚好是逆转,所以tac是倒着打印)
按行向下翻查(Enter回车向下翻)——不会刷屏。
more命令,功能类似 cat。
more命令不支持上翻(回翻不了),只能先按“Q”(quit)退出。
more现在没什么用,可能公司里面还有老程序员在使用,现在主流的查看大文件的指令是接下来我要介绍的less。more没什么用,但是为了知识学习的完整性,还是要介绍。
-n:指定输出行数 q(quit):退出more
# 命令⾏输出多⾏⽂本
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 2000 ]; do echo "hello
bite"; let cnt++; done > temp.txt
# -n 指定输出⾏数
[whb@bite-alicloud test]$ more -10 temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
--More--(0%)more会打满一整行,然后就停下来了——

此时按“Enter”回车就可以逐行往下翻了!
/数字

可上翻、下翻、搜索。
(1)less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大; (2)less的用法比起more更加的有弹性,在more的时候,我们并没有办法向前面翻,只能往面看; (3)但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容; (4)除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
23.2 功能
less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。


# 命令⾏输出多⾏⽂本
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 2000 ]; do echo "hello
$cnt"; let cnt++; done > temp.txt
# 测试搜索和-N等功能
[whb@bite-alicloud test]$ less -N temp.txt
1 hello 0
2 hello 1
3 hello 2
4 hello 3
5 hello 4
6 hello 5
7 hello 6
8 hello 7
9 hello 8
10 hello 9
11 hello 10
12 hello 11
13 hello 12
14 hello 13
...
# 其他选项也可以直接测试 head 与 tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾。
head用来显示档案的开头至标准输出中——查看头几个,默认head命令打印其相应文件的开头10行。
-n<行数>显示的行数
[whb@bite-alicloud test]$ head temp.txt
hello 0
hello 1
hello 2
hello 3
hello 4
hello 5
hello 6
hello 7
hello 8
hello 9
[whb@bite-alicloud test]$ head -5 temp.txt
hello 0
hello 1
hello 2
hello 3
hello 4查看开头三个——

大家看我的【博主手记】吧!

tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail-ffilename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
-f:循环读取 -n:显示行数
# 基本功能演⽰
[whb@bite-alicloud test]$ tail temp.txt
hello 1991
hello 1992
hello 1993
hello 1994
hello 1995
hello 1996
hello 1997
hello 1998
hello 1999
hello 2000
[whb@bite-alicloud test]$ tail -3 temp.txt
hello 1998
hello 1999
hello 2000模拟动态日志查看功能。

# 综合问题
# 如何显⽰⽂件的[180,200]⾏的内容
[whb@bite-alicloud test]$ head -200 temp.txt | tail -20
hello 180
hello 181
hello 182
hello 183
hello 184
hello 185
hello 186
hello 187
hello 188
hello 189
hello 190
hello 191
hello 192
hello 193
hello 194
hello 195
hello 196
hello 197
hello 198
hello 199查最后一行——

查看结尾三个——

获取时间(提炼时间)。
这个时间指的是格林尼治时间。
date +%Y:%m:%d使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下——
%H:小时(00...23) %M:分钟(00...59) %S:秒(00...61) %X:相当于%H:%M:%S %d :日 (01...31) %m:月份(01...12) %Y:完整年份(0000.9999) %F:相当于%Y-%m-%d
date-s //设置当前时间,只有root权限才能设置,其他只能查看。 date-s20080523 //设置成20080523,这样会把具体时间设置成空00:00:00 date-s01:01:01 //设置具体时间,不会对日期做更改 date-s“01:01:012008-05-23" //这样可以设置全部时间 date -S:“01:01:0120080523” //这样可以设置全部时间 date-s“2008-05-23 01:01:01" //这样可以设置全部时间 date-s“20080523 01:01:01" //这样可以设置全部时间
(1)时间->时间戳:date +%s (2)时间戳->时间:date-d@1508749502 (3)Unix 时间戳(英文为Unix epoch,Unix time,POSIX time或Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒


# 显⽰常规时间
[whb@bite-alicloud test]$ date
Wed Jan 11 18:22:50 CST 2023
[whb@bite-alicloud test]$ date +%Y/%m/%d
2023/01/11
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S
2023/01/11-18:23:20
# 显⽰时间戳
[whb@bite-alicloud test]$ date +%s
1673432636
# 时间戳转成可视时间
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @0
1970/01/01-08:00:00
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @100000
1970/01/02-11:46:40
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @1000000000
2001/09/09-09:46:40获取年——

获取年月日时间——

格林尼治时间不符合中国人的时间观,我们这样看年月日就清楚多了。
获取日历。
现如今互联网时代,手机如此普及,打开软件就能看,不需要通过日历来看日子了。
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。
-3:显示系统前一个月,当前月,下一个月的月历; j:显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数); -y:显示当前年份的日历。
# 常规样例
[whb@bite-alicloud test]$ cal
January 2023
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
[whb@bite-alicloud test]$ cal 1949
1949
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 1 2 3 4 5 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 27 28 29 30 31
...
[whb@bite-alicloud test]$ cal -3
December 2022 January 2023 February 2023
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 1 2 3 4 5 6 7 1 2 3 4
4 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28 

(全局)全目录查找。

本质:遍历(深度广度优先)目录结构——Linux的目录是多叉树结构。
用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。
-name按照文件名查找文件; 其他选项需要在查,这个命令其实比较复杂。
# 在指定路径下搜索执⾏名称的⽂件
[whb@bite-alicloud test]$ find ~ -name test.c
/home/whb/test_code/old_code/test.c
/home/whb/test_code/test.c
...
用于找到程序的源、二进制文件或手册。
[whb@bite-alicloud test]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[whb@bite-alicloud test]$ whereis libc.so
libc: /usr/lib64/libc.so /usr/lib64/libc.a /usr/share/man/man7/libc.7.gz
grep是一个对文本内容进行行过滤的工具。
在文件中搜索字符串,将找到的行打印出来。

-i:忽略大小写的不同,所以大小写视为相同; -n:顺便输出行号; -V:反向选择,即显示出没有 '搜寻字符串' 内容的那一行。


[whb@bite-alicloud test]$ cat temp.txt
abcd
ABCD
hello
bite
1234
#基本查找
[whb@bite-alicloud test]$ grep "abcd" temp.txt
abcd
# 忽略⼤⼩写的不同,所以⼤⼩写视为相同
[whb@bite-alicloud test]$ grep -i "abcd" temp.txt
abcd
ABCD
# 顺便输出⾏号
[whb@bite-alicloud test]$ grep -n "abcd" temp.txt
1:abcd
[whb@bite-alicloud test]$ grep -ni "abcd" temp.txt
1:abcd
2:ABCD
# 反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏
[whb@bite-alicloud test]$ grep -v "abcd" temp.txt
ABCD
hello
bite
1234
[whb@bite-alicloud test]$ grep -vn "abcd" temp.txt
2:ABCD
3:hello
4:bite
5:1234
[whb@bite-alicloud test]$ grep -vni "abcd" temp.txt
3:hello
4:bite
5:1234类似于Windows的任务管理器,相当于Linux的任务管理器。
这就是Windows的任务管理器——

task就是进程,其实准确的翻译应该是“任务”,国内叫“进程”,主要是“任务”两个字没有动态感,而进程有。
top -d 1 -n 5
-d: 刷新的时间间隔
-n: 刷新的次数
q:退出

将目录或文件压缩成zip格式。
-r:(递归式的打包压缩)递归处理,将指定目录下的所有文件和子目录一并处理。
zip test2.zip test2/*unzip test2.zip -d /tmp
这个工具用于windows机器和远端的Linux机器通过XShell传输文件。安装完毕之后可以通过拖拽的方式将文件上传过去。
sudo yum/apt install -y lrzlz

也可以直接拖拽,也可以选择rz -E(没有-E回乱码)。

uu们,本文的内容到这里就全部结束了,感谢您的阅读!
往期回顾:
【Linux指令 (二)】不止于入门:探索Linux系统核心与指令的深层逻辑,理解Linux系统理论核心概念与基础指令
结语:本期我们在前一篇博客的基础上继续深入学习了Linux中的指令篇,希望对学习Linux指令相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!
🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡 ૮₍ ˶ ˊ ᴥ ˋ˶₎ა