【Linux】基础指令(3):理解linux常见指令和打包压缩
前期回顾:【【Linux】基础指令(2):理解Linux的指令和核心概念
目录
一 cat指令
1 语法及功能
2 常见指令
3 使用
1 写入一句话
2 追加写
3 cat-n 带行号
4 cat-s 不能输出多余行空行
5 cat-b 非空行带编号,空行不带编号
6 -n -s -b可以组合使用
4 cat指令的应用场景
二 tac指令
三 nano指令
1 定义
2 快捷键
四 more指令
1 定义
2 功能
3 缺点
4 常用选项
五 less指令
1 定义
2 语法及功能
3 选项
4 使用
六 head指令
1 定义
2 功能
3 常用选项
七 tail指令
1 定义
2 功能
八 管道
九 date指令
1 定义
2 格式
3 功能
时间戳(重点)
十 cal指令
1 定义
2 常用选项
3 示例
十一 which指令
1 功能
2 举例
十二 find指令
1 定义
2 常用选项
3 示例
十三 whereis 指令
1 功能
2 举例
十四 grep指令(重点)
1 定义
2 功能
3 常用选项
4 示例
十五 top指令
1 定义
2 常用选项和退出键
十六 zip/unzip && 打包和压缩
1 打包和压缩
2 常见热键
3 zip / unzip
1 功能
2 常用选项
3 示例
2 解压到tmp目录
rzsz
1 sz(send)
2 rz (receive)
一 cat指令
1 语法及功能
语法: cat [选项] [⽂件]
功能:查看⽬标⽂件的内容
cat指令的本质就是打印文件里的内容(文件=文件名+属性) ls查看的是文件的属性
2 常见指令
-b对⾮空输出⾏编号,空⾏不做编号
• -n对输出的所有⾏编号
• -s不输出多⾏空⾏
3 使用
1 写入一句话

2 追加写

3 cat-n 带行号

4 cat-s 不能输出多余行空行

5 cat-b 非空行带编号,空行不带编号

6 -n -s -b可以组合使用
例如:cat-sb
4 cat指令的应用场景
查看小文件,小算法,小配置文件,很短的代码
二 tac指令
cat是正着打印代码 那么tac就是倒着打印代码(也可以查看小文件)
例如:


三 nano指令
1 定义
类似于Linux的记事本
2 快捷键
1 ^X:Ctrl+x----保存修改内容

2 Y:确认

四 more指令
当我们遇到一个大文件的时候,打开它会刷屏,如果需要查看这个文件,就会用到more
1 定义
按行向下翻查(Enter回车向下翻)——不会刷屏。
2 功能
more命令,功能类似 cat。
3 缺点
more命令不支持上翻(回翻不了),只能先按“Q”(quit)退出。
那为什么要学习more呢?
more现在没什么用,可能公司里面还有老程序员在使用,现在主流的查看大文件的指令是接下来要讲解的less
4 常用选项
-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%)
五 less指令
1 定义
支持向上,向下翻及搜索
• less⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具,应该说是linux正统查看⽂件内容的⼯具,功能极其强⼤
• less的⽤法⽐起more更加的有弹性,在more的时候,我们并没有办法向前⾯翻,只能往后⾯看
• 但若使⽤了less时,就可以使⽤ [pageup] [pagedown] 等按键的功能来往前往后翻看⽂件,更容易⽤来查看⼀个⽂件的内容
• 除此之外,在less⾥头可以拥有更多的搜索功能,不⽌可以向下搜,也可以向上搜。
2 语法及功能
语法: less [参数] ⽂件
功能:less与more类似,但使⽤less可以随意浏览⽂件,⽽more仅能向前移动,却不能向后移动,⽽且less在查看之前不会加载整个⽂件。
3 选项
• -i 忽略搜索时的⼤⼩写
• -N显⽰每⾏的⾏号
• /字符串:向下搜索“字符串”的功能
• ?字符串:向上搜索“字符串”的功能
• n:重复前⼀个搜索(与 / 或 ? 有关)
• N:反向重复前⼀个搜索(与 / 或 ? 有关)
• q:quit
4 使用
# 命令⾏输出多⾏⽂本
[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 02 hello 13 hello 24 hello 35 hello 46 hello 57 hello 68 hello 79 hello 810 hello 911 hello 1012 hello 1113 hello 1214 hello 13...
# 其他选项也可以直接测试
六 head指令
1 定义
head 与 tail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail当然就是看档案的结尾
2 功能
head用来显示档案的开头至标准输出中——查看头几个,默认head命令打印其相应文件的开头10行。
3 常用选项
-n<行数>显示的行数

七 tail指令
1 定义
tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail-ffilename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你
看到最新的文件内容。
2 功能
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
3 常用选项
-f:循环读取
-n:显示行数
八 管道
当有一个一万行的文件,我们需要提取他的[5000-5010]行,可以怎么做?
方法一:重定向
我们可以先用head-5011查看前5010行数据,并重定向传给text.txt,然后text,txt载重定向传给taill-10来获取。
但是这样操作太过于麻烦,还觉得有哪里怪怪的,还能怎么做呢?
方法二:管道文件

那磁盘是怎么传输数据的呢?
在上面的图片中,蓝色框出的一行:表示head读取前5011行数据给管道临时保存,管道 把数据给tail,tail只读取最后十行数据
如果提取出来之后想逆置一下:那就继续管道

这说明了管道可以级联

但是此时我们使用的管道其实是匿名管道,因为在内存中看不到他的存在。与此同时,我们还有一种管道,叫做命名管道(如名字所示,可以显示出来)。这两种的管道用法和特点一样
我们下面尝试用两个终端去实现用命名管道传输数据:

注意:创建好了的的管道文件类型是p开头,我们就新学习了一种文件类型

注意:
下面两种指令的效果是一样的,但是底层原理不同,目前以现有的知识无法解释,这个·我们会放到后面讲解
九 date指令
1 定义
获取时间(提炼时间)
这个时间指的是格林尼治时间
2 格式

3 功能
时间戳(重点)
(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
十 cal指令
1 定义
cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”
2 常用选项
• -3 显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
• -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数
• -y 显⽰当前年份的⽇历
3 示例
[whb@bite-alicloud test]$ calJanuary 2023
Su Mo Tu We Th Fr Sa1 2 3 4 5 6 78 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
十一 which指令
1 功能
搜索系统指定的命令
2 举例
[whb@bite-alicloud test]$ which ls
alias ls='ls --color=auto'/usr/bin/ls
[whb@bite-alicloud test]$ which pwd/usr/bin/pwd
十二 find指令
1 定义
• Linux下find命令在⽬录结构中搜索⽂件,并执行指定的操作。
• Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强⼤的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解⼀下。
• 即使系统中含有网络文件系统(NFS),find命令在该⽂件系统中同样有效,只你具有相应的权限。
• 在运行⼀个非常消耗资源的find命令时,很多⼈都倾向于把它放在后台执行,因为遍历⼀个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
find能够查找的范围比which大得多,which只能查找系统指令,find用来查全局
2 常用选项
• -name 按照⽂件名查找⽂件
• 其他选项需要在查,这个命令其实⽐较复杂
3 示例
# 在指定路径下搜索执⾏名称的⽂件
[whb@bite-alicloud test]$ find ~ -name test.c
/home/whb/test_code/old_code/test.c
/home/whb/test_code/test.c

十三 whereis 指令
1 功能
⽤于找到程序的源、⼆进制⽂件或⼿册
2 举例
[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指令(重点)
1 定义
grep是一个对文本内容进行过滤的工具
2 功能
在⽂件中搜索字符串,将找到的⾏打印出来
3 常用选项
• -i :忽略⼤⼩写的不同,所以⼤⼩写视为相同
• -n :顺便输出⾏号
• -v :反向选择,亦即显⽰出没有'搜寻字符串‘内容的那⼀⾏
4 示例
#文件内容
[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
十五 top指令
1 定义
top命令就相当于Windows里的任务管理器
2 常用选项和退出键
top -d 1 -n 5
-d: 刷新的时间间隔
-n: 刷新的次数q:退出
不退出会一直进行刷新
十六 zip/unzip && 打包和压缩
1 打包和压缩

打包压缩的方法有两种:.zip 和. tgz(也叫做.tar.gz)
2 常见热键
1 ctrl+r: 搜索历史命令
2 touch批量化处理文件
3 zip / unzip
1 功能
将目录或文件压缩成zip格式。
2 常用选项
-r:(递归式的打包压缩)递归处理,将指定目录下的所有文件和子目录一并处理。
3 示例
1 将test2目录压缩
zip test2.zip test2/*
2 解压到tmp目录
unzip test2.zip -d /tmp
3 使用


那压缩包怎么跨主机传送呢?会用到rzsz
rzsz
这个工具用于windows机器和远端的Linux机器通过XShell传输文件。安装完毕之后可以通过拖拽的方式将文件上传过去。
sudo yum/apt install -y lrzlz
1 sz(send)
在Linux里直接把压缩包保存到Windows

2 rz (receive)
Windows向Linux传输压缩包
方法一:直接拖拽(可能会乱码)

方法二:rz-E(不会乱码)

