目录
echo指令
基本用法:
高级用法:输出重定向
more指令
less指令
head与tail指令
date指令
cal指令
find指令
grep指令
zip / unzip指令
tar指令
bc指令
uname指令
热键
关机
echo指令用于输出文本信息,打印到屏幕上。它就类似于c语言中的printf。
语法:echo string
string是要输出的任意文本。Echo命令可以输出任何纯文本,包括数字、字母、标点符号等。
echo的若干高级用法中,我们今天就只讲解“输出重定向”。
注:输出重定向并不是隶属在echo指令下的工具,
其他指令也可以用输出重定向。
什么是输出重定向?
是指:本应输出到显示器上的内容,现在却转变方向,输出到文件里了。
这个目标文件如果不存在,那就创建出来再访问,否则就直接访问。
Linux中使用>和>>来重定向标准输出。
1.输出重定向(>):从文件开始,覆盖式写入。
原先的内容都会被新内容覆盖掉。
2.追加重定向(>>):从文件的结尾,追加式写入。
补充了解:输入重定向。
什么是输入重定向?
本来应该从键盘读取的内容,变成了从文件中读取,这就叫做输入重定向。
Linux中使用<和<<来重定向标准输入。这里我们只了解<。
输入重定向是什么样的:
注意:上下两种情况是不同的。
下面这种不是输入重定向,它要先打开test.c这个文件,读取文件内容到自己的程序内部,再打印。
而上面的输入重定向,具体原理我们后面再讲到,目前只要会用<就可以了。
应用场景:more指令和cat指令都是用于查看文件内容的。
假如我们篇一万行的长文本,cat会把它一下子全打印出来,刷屏了。
这时我们想读前五行的内容,就得往上翻很久才能找到,这降低了阅读效率。
而more打印满页面之后,便不再继续打了。我们按回车键,它才会逐行往后打印,这方便了长文本的阅读。
如果只想查看最前面的五行:
其实阅读长文本,more并不是很适合,因为它也有缺点。
more的缺点:只能按回车键往下翻,不能来回翻。如果我们想从第一百行回看第五行,按上键是没有用的。
(查看长文本,更推荐用less。)
语法:more(选项)文件
选项:
-n 对输出的所有行编号
q 退出more
功能:less与more类似,但使用less可以随意浏览文件。
可以利用上下键来前后翻阅文件。(回车键也可往后翻阅文件)
less里加入了更多的搜索功能,向上、向下搜都可。
less可以说是Linux正统查看文件内容的工具,功能很强大。
语法:less(选项)文件
选项:
-i 忽略搜索时的大小写
-N 显示每行的行号
(交互模式下)直接输入这些可进行交互:
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
g:回到第一行
q:quit
前期,这些选项和交互工具对我们来说,并不常用。
我们目前主要要会用less翻看长文本。
head与tail指令的功能很好理解,
分别用来显示开头or结尾某个数量的文字区块。
head:
默认head命令,会打印其相应文件的开头10行。
如果加上选项 -n,则会开头打印n行。
tail:
默认显示最后10行。
选项:
1.-n 显示最后n行
2.-f 循环读取。
-f 可用于查阅正在改变的日志文件,
tail -f 可以把文件最尾部的内容显示在屏幕上,
并不断刷新,使你看到最新的内容。
思考:如果我们想查看一个长文本(file.txt)的 [196 , 200 ] 行内容呢?
Way1:通过创建临时文件,来提取中间部分。
先把前200行导进新文件tmp.txt里。并打印:
然后取后5个:
但是这种方法要每次要创建新文件,比较麻烦。有没有更好的方法呢?
Way2:管道
下图长得像管道的符号“|”,被称作”管道符“:
现实中的管道,被用来输送资源。
在计算机的世界里,数据就是“资源”,同样可为”管道“所输送。
管道的作用:一个命令的输出可以通过管道做为另一个命令的输入。
管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,
这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。
所以,Way2的理解是:把file.txt的前200行塞入管道,通过管道,再留取后5行。
试着理解这个:
date指令用于显示时间。
语法:date(选项)(+格式)
使用者可以设定时间的格式,如:date +%Y-%m-%d
就会按照格式显示现在的年月日。2023-08-11。
格式:
%H : 小时 %M : 分钟 %S : 秒 %X : 相当于 %H:%M:%S %d : 日 %m : 月份 %Y : 完整年份 %F : 相当于 %Y-%m-%d
时间戳:指从1970年1月1日00:00:00开始所经过的秒数。
通过date指令,能使时间和时间戳相互转换。
时间--->时间戳:date +%s
时间戳--->时间:date -d@时间戳
cal指令可以显示公历(阳历)日历。calendar。
语法:cal (选项)(月份) (年份)
选项:
-3 显示系统前一个月,当前月,下一个月的月历 -j 显示在当年中的第几天 -y 显示当前年份的日历
就和它的名字一样,查找。用于在文件树中查找文件,并做出相应处理。
语法:find 路径 -[选项]
这是一条功能非常强大的指令,选项很多,我们目前就先掌握一个。
选项: -name 按照文件名查找文件。
演示:
grep指令可以在文件中搜索字符串,将找到的打印出来。是行文本过滤工具。
语法:grep(选项)要搜的字符串 被搜的文件
选项:
-i :忽略大小写的不同,所以大小写视为相同
ignore。 grep原本是对大小写敏感的,
如果你在搜索时想要忽略大小写上的差异,要带上选项 i 。
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
行文本过滤工具、管道、重定向 能批量组合,以对文件内容进行过滤,并批量保存。
如:grep '111' file.txt | tac | head -3 | > tmp.txt
用于压缩与解压。
我们为什么需要压缩文件?
举个例子:我们在去旅行前,会把大小行李都塞进行李箱,再拖着行李箱去旅行。
如果没有行李箱,那我们只能抱着衣服、鞋子、生活用品等去远途,
这是非常不方便的,而且容易弄丢。
所以我们需要行李箱来打包行李,便于运输而且不占多少地方。
我们需要压缩,也是这个道理。
压缩成压缩包以后,便于传输。同时,也节省了空间。
(在早期计算机硬盘里的空间比较小时,省空间的作用尤为重要)
语法:zip 压缩后的文件名.zip 目录或文件
常用选项:-r 打包目录时用
unzip 待解压的压缩包
解压到指定路径:后面带上-d
说明:
zip不带选项时,默认压缩的是普通文件,不能用于压缩目录。
而我们常常需要压缩的是一个目录及其下所有内容。
这时要带上选项 -r 。
r会递归处理,将指定目录下的所有文件与子文件一并处理。
那unzip时,如何解压到指定文件夹下?
unzip默认解压再当前路径下。
如果要解压到指定路径,得是这种格式:
unzip 压缩包 -d 指定路径
也是Linux下的压缩与解压工具。这个十分常用!
语法:
压缩:tar (参数)压缩后的名字.tgz 被压缩的目录或文件
解压:tar (参数)待解压的压缩包
对这个语法的几点说明:
1.关于参数,记住组合:
压缩:-czf 或 -czvf(f一定要在最后)
解压:-xzf 或 -xzvf
这里的c是creat,创建一个新的压缩文件。
z是压缩的参数指令。
v表示显示详细过程。
f指定档名。f后面要立即接档名,所以f得放在最后面。
x是解开一个压缩文件的参数指令。
-C 解压到指定目录
2.把压缩转换成解压,只需把组合中的c换成x
3..tgz其实是缩写了.tar.gz。后者比较长,我们就记住.tgz。
4.解压时如何指定路径?
只需在末尾加上“-C 路径”就可指定路径。
演示:
如何把myFile目录下的project压缩?
如何把pro.tgz解压到newFile下?
可视为Linux下的计算器。
echo "1+2+3+4"|bc
这条指令可以用来获取电脑和操作系统的相关信息。
语法:uname (选项)
选项:-a 详细输出所有信息。依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称。
介绍四个重要的热键:
1.Tab 补全命令、补齐档案的功能
为啥大佬输入命令那么迅速?
因为他输完whic,直接按Tab键,电脑就会自动补齐h和后面的空格,很方便。
2.ctrl +c 终止程序
3.ctrl +d 可以结束键盘输入。
且具有退出功能,可用来取代exit。
4.ctrl +r 搜索历史记录
语法:shutdown (选项)
选项:
-h : 将系统的服务停掉后,立即关机。 -r : 在将系统的服务停掉之后就重新启动 -t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
注:如果用的是云服务器,那不需要关机的。