Linux从0到1——Linux下的基本指令(下)

前言


在之前的学习中,我们已经掌握了一些Linux的指令,包括如何创建删除文件,如何切换转移目录等。接下来,我们将继续深入,学习Linux剩下的一些基本指令。


1.cat


1.语法:

cat [选项] [文件名]

2.功能:

查看目标文件的内容。

3.常用选项:

  • -b 对非空行输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行(多个行空行合并为一行)

4.使用:

1)测试-b选项:

在这里插入图片描述

2)测试-n选项:

在这里插入图片描述

3)测试-s选项:

在这里插入图片描述

4)测试合并选项-sb:

在这里插入图片描述

5)测试合并选项-ns:

在这里插入图片描述

6)当b和n选项组合时,系统只使用b选项(给非空行编号)的功能。

5.cat的原理:

我们先来看一个命令:在命令行输入cat,然后直接按回车

在这里插入图片描述

可以发现,我们用键盘输入什么,再按回车,显示器就输出什么。这里,我们可以将cat的作用理解为,从键盘上读入数据,然后直接输出到显示器上

6.cat的缺点:无法有效查看内容过多的文件

现在,我们用一段脚本(直接打在命令行上):cnt=0; while [ $cnt -le 10000 ]; do echo "hello Linux, $cnt"; let cnt++; done > test.txt来生成一个大文件。

  • cnt可以理解为一个变量,初始值是0;-le表示小于等于,while [ $cnt - le 10000]意思是当cnt小于等于10000,循环执行;do后面是每一次循环做的事情,打印一次hello Linux,后面跟上当前的打印次数(cnt的值);let cnt++意思是每一次循环结束后让cnt++done表示程序结束。
  • 最后再使用输出重定向,把生成的内容输出到test.txt这个文件中。(如果不加写后面输出重定向的内容,就会把这一万行的内容输出到显示器上)

在这里插入图片描述

这时,如果我们用cat命令去查看这个文件,会直接刷屏,直到刷到文件末尾。

在这里插入图片描述

我们如果想查看具体的某一行的内容,就会变的很不友好,所以cat不适合用来查看内容太多的文件。


2.more


1.语法:

more [选项] [文件]

2.功能:

  • 查看文件内容。

  • 与cat不同,more在遇到大文件时,不会刷屏,在显示器上打满一页内容就不往下打了,按回车键可以查看下一行。

  • 但遗憾的是,使用more查看文件时只能下翻,不能上翻,所以我们一般也不使用more,而是用另一个命令(less)替代。

3.选项:

  • -n:对输出的所有行编号
  • q:在查看文件的状态下,输入q,可以退出more

4.使用:

依然先使用脚本:cnt=0; while [ $cnt -le 10000 ]; do echo "hello Linux, $cnt"; let cnt++; done > test.txt,生成一个有一万行内容的文件。使用more查看这个文件:

在这里插入图片描述

more命令不方便,我们一般不用,不再详细介绍了。


3.less(重要)

less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。

less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看。但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键(就是键盘上的上下箭头)的功能来往前往后翻看文件,更容易用来查看一个文件的内容!

除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。


1.语法:

less [参数] [文件]

2.功能:

less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。

3.选项:

  • -i: 忽略搜索时的大小写
  • -N: 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)
  • q: quit,退出

4.使用:

例子中使用的test.txt文件还是利用上述脚本生成的文件。

1)不加任何选项:

请添加图片描述

2)提供关键字搜索:

请添加图片描述

3)使用选项-N,显示每行行号:

在这里插入图片描述


4.head

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾的。


1.语法:

head [参数] [文件]

2.选项:

  • -n<行数>:选择的行数

3.使用:

在这里插入图片描述


5.tail

tail 命令从指定点开始将文件写到标准输出。使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。


1.语法:

tail [参数] [文件]

2.选项:

  • -f: 循环读取
  • -n<行数>: 显示行数

3.使用:

在这里插入图片描述

4.小实验:如何获取一段文本中间的一段内容?

获取test.txt中300到400行的内容。

先把test.txt中的前400行内容拿出来,放在一个临时文件tmp.txt中;再把这个临时文件中的后100行拿出来,输出到显示器上:

在这里插入图片描述

这样的方式太过冗余,还需要创建一个新的临时文件,不推荐。下面介绍一个管道符:|,用这个命令来实现上述功能:

|符的作用是,将前|前面命令执行输出的内容作为参数,传递给后面的命令。

在这里插入图片描述

如图,命令:head -400 test.txt | tail -100也获取到了300行到400行之间的内容。下面,我们来解析一下:

首先,head -400 test.txt获取了前400行的内容,然后将这400行内容作为参数,传递给了命令:tail -100,又截取了这400行内容的后100行内容。这里|的作用就类似于一个临时文件,用来临时存放数据,并且具有传递功能,还可以将数据传递给后一个命令。

5.再补充几个命令:

1)wc命令:统计文件的字符数和行数

在这里插入图片描述

2)uniq命令:对原始文件进行压缩,合并相同行

在这里插入图片描述

注意:uniq并不会修改文件。

3)sort命令:对文件内容进行排序

在这里插入图片描述

4)上述三个命令均可以结合|使用:

在这里插入图片描述


6.时间相关的命令


6.1date


1.date的用法:

date [OPTION]… [+FORMAT]

2.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下:

  • %H : 小时(00-23)
  • %M : 分钟(00-59)
  • %S : 秒(00-59)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01-31)
  • %m : 月份 (01-12)
  • %Y : 完整年份
  • %F : 相当于 %Y-%m-%d

3.使用:

在这里插入图片描述


6.2时间戳


1.引入:

统一的时间重要吗?如果没有了一个时间标准,这个世界会变成什么样子?

我们来设想一个场景,你2023年9月16日向银行贷款,分20年还清。可是银行系统的时间出了问题,显示你2003年9月17日向银行贷款,要求你明天还钱。再举一个例子,在跨国贸易中,你与商家约定2点准时交接货物,可以你们两个的两点不是一个两点,是两个完全不同的时间,导致货物交接失败。

由此可见,统一的时间十分重要。

2.时间戳的诞生:

在1970年1月1日的格林,时间戳问世,全世界就计算机领域制定了一个统一的时间,它代表从1970年1月1日午夜开始所经过的秒数。

3.查看时间戳:

使用命令:date +-%s查看时间戳:

在这里插入图片描述

可以发现,时间戳每一秒都不一样,所以时间戳具有唯一性


6.3时间的设置:


  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //把年月日设置成2008年05月23日,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

使用实例:

在这里插入图片描述


7.cal指令

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。


1.语法:

cal [选项] [月份] [年份]

2.功能:

用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

3.选项:

  • -3: 显示系统前一个月,当前月,下一个月的月历
  • -j: 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y: 显示当前年份的日历

4.使用:

1)cal后面跟一个参数:

在这里插入图片描述

2)cal后不跟参数:

在这里插入图片描述

3)-3选项,打印相邻的前后两月:

在这里插入图片描述

4)给两个参数:

在这里插入图片描述

5)-j选项,显示当前是该年的多少天:

在这里插入图片描述


8.find指令(很重要)-name

  • Linux下find命令在目录结构中搜索文件,并执行指定的操作。
  • Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
  • 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
  • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。

1.语法:

find [路径] [选项] [文件名]

2.功能:

用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)。

3.常用选项:

  • -name: 按照文件名查找文件。(现阶段,我们只需要掌握这一个选项即可)

4.使用:

root路径下查找一个叫log.c的文件:

在这里插入图片描述

如果不写路径,默认会在当前路径下查找。

5.补充另外几个查找选项:

1)which指令:

一个专门用来查找命令所在文件的指令。

在这里插入图片描述

2)whereis指令:

一个查文档的指令。

在这里插入图片描述

我们使用whereis来查找ls,找到了一个可执行程序,两个压缩包。


9.grep

行过滤工具


1.语法:

grep [选项] 搜寻字符串 文件

2.功能:

在文件中搜索字符,将找到的行打印出来。

3.选项:

  • -i:忽略大小写的不同,将大小写字母视为相同的字母
  • -n:顺便输出行号
  • -v:反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的行

4.使用:

我们还是用之前的脚本(次脚本为讲cat时用到的脚本,没有在Linux上输入过是搜索不到的)生成一个大文件来做实验。这里介绍一个热键ctrl+r,搜索之前用过的指令:

先按ctrl+r进入搜索模式:
在这里插入图片描述
直接输入while:
在这里插入图片描述
跳出之前使用过的脚本,直接按回车,再次使用,在当前目录下,又生成了一个10000行的大文件。

1)不加任何选项,直接使用grep搜索含999的行:

在这里插入图片描述

2)使用-n选项,显示行号:

在这里插入图片描述

3)在多个文件中,按字符搜索行:

在这里插入图片描述

5.补充:

我们为什么可以上翻下翻,搜索历史命令?这是因为,这些历史命令,都被系统储存了起来,可以使用命令history查看:

在这里插入图片描述

还可以结合grep使用:

在这里插入图片描述


10.zip/unzip


1.语法:

zip 压缩文件.zip 目录或文件

2.功能:

将文件或目录压缩为zip格式。

3.选项:

-r:递归处理,将指定目录下的所有子文件和目录一并处理

4.使用:

1)不加任何选项,使用zip:

在这里插入图片描述

思考:不加任何选项,有没有什么问题?

在这里插入图片描述

我们发现,不加任何选项,zip指令只是把指定目录下的所有文件给压缩了,而子目录中的内容并没有压缩,解压缩只生成了一个空目录。要想解决这个问题,就要用到选项-r

2)使用选项-r

在这里插入图片描述

目前为止,zip命令的使用已经可以满足我们日常的工作需要了,但是unzip还是略显麻烦,我们能不能将压缩文件直接解压缩到指定文件呢?

3)使用-d选项,解压缩到指令目录:

在这里插入图片描述


11.tar(重要):打包/解包


1.语法:

tar [选项] 文件与目录 …参数

2.常见选项:

-c:建立一个压缩文件的参数指令(create 的意思);
-x:解开一个压缩文件的参数指令!
-t:查看 tarfile 里面的文件!
-z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
-j:是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
-v:压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!
-f:使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
-C: 解压到指定目录

3.使用:

1)使用选项-czf进行压缩:

在这里插入图片描述

-c选项代表创建一个压缩文件,-z选项表示文件的压缩属性,格式为gzip格式,-f表示给压缩文件命名。

这三个参数经常在一起使用,只要掌握了这三个参数,就可以解决大部分的压缩情况。

.tgz属性其实是.tar.gz属性的简写。

2)使用选项-xzf解压缩文件:

在这里插入图片描述

3)使用选项-C,将文件解压缩到指定目录:

在这里插入图片描述


12.bc


bc命令,相当于是一个命令行级别的计算器:

在这里插入图片描述

单纯从计算的角度看,这个命令确实有点弱。它真正的用途是结合管道使用

在这里插入图片描述


13.uname


1.语法:

uname [选项]

2.功能:

用来获取电脑和操作系统的相关信息。

3.常见选项:

-a:a或–all 详细输出所有信息

-r:只输出内核版本号

4.使用:

1)使用-a选项查看所有信息:

在这里插入图片描述

内容包括:

  • 系统类型

Linux
表示当前系统的类型是Linux,也就是当前系统的操作系统。

  • 主机名

localhost.localdomain
表示当前系统的主机名,即系统在网络上的标识。该名字由系统管理员设置。

  • 内核版本号

3.10.0-514.el7.x86_64
表示当前操作系统的内核版本号。内核版本号由几个部分组成:主版本号、次版本号、修订版本号和其他版本号等。由点分隔。

  • 编译时间

#1 SMP Tue Nov 22 16:42:41 UTC 2016
#后面的是当前操作系统内核的构建版本,其中包含构建日期和时间的信息。

  • 硬件架构

x86_64 x86_64 x86_64
表示硬件架构,即当前系统使用的处理器的类型,也是系统所支持的最大处理器类型。三个x86_64分别代表处理器架构,操作系统类型,软件环境。

  • 操作系统名称

GNU/Linux
显示当前系统所使用的操作系统的名称,这里是Linux操作系统。

2)使用-r选项只查看版本号:

在这里插入图片描述

在这里插入图片描述

5.补充:

通过命令:cat /etc/redhat-release 查看发行版本

在这里插入图片描述


14.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d, [ctrl]-r


  • [Tab]:具有『命令补全』和『档案补齐』的功能
  • [Ctrl]-c:让当前的程序『停掉
  • [Ctrl]-d:通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来退出Xshell连接
  • [Ctrl]-r:搜索历史命令

15.shutdown


1.语法:

shutdown [选项]

2.常用选项:

-h: 将系统的服务停掉后,立即关机。
-r: 在将系统的服务停掉之后就重新启动
-t sec: -t 后面加秒数,亦即『过几秒后关机』的意思


16.命令拓展


  • 安装和登录命令loginshutdownhaltrebootinstallmountumountchshexitlast
  • 文件处理命令filemkdirgrepddfindmvlsdiffcatln
  • 系统管理相关命令dftopfreequotaatlpaddusergroupaddkillcrontab
  • 网络操作命令ifconfigippingnetstattelnetftprouterloginrcpfingermailnslookup
  • 系统安全相关命令passwdsuumaskchgrpchmodchownchattrsudo pswho
  • 其它命令tarunzipgunzipunarjmtoolsmanunendcodeuudecode

以上这些命令,可以当做拓展学习,自行上网了解它们的功能和用法,这里就不再一一赘述了。


总结


至此,我们已经学完了Linux中的所有基本的,常见的指令。掌握了这些指令,我们就可以解决Linux中大部分的操作问题了。接下来,我们将进入Linux权限的学习,去探索Linux中权限的奥秘。

谢谢观看,谢谢大家的支持!


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-指短琴长-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值