Linux基本指令(下)

Linux基本指令(下)

  • 前言
  • cat指令
  • more命令
  • less命令
  • head命令
  • tail命令
  • wc指令
  • date指令
  • cal指令
  • find指令
  • grep指令
  • top命令
  • alias命令
  • zip/unzip命令
  • tar命令
  • bc命令
  • uname命令
  • shutdown命令
  • 总结

前言

Linux基本指令(下)_第1张图片

上一篇Linux基本指令主要讲解了关于文件操作方面的指令,接下来这一片Linux基本指令主要讲解一下关于文件内容方面的基本指令;

cat指令

语法 :cat 选项 目录
功能: 查看目标文件的内容;
常用选项
-b :不对空行进行标行号;
-s : 压缩多余空行,对多余空行不进行输出;
-n :对所有行进行标号并输出;
实际演练:
现在我们利用命令输出num.txt文件里面的每一行的行号:
Linux基本指令(下)_第2张图片
现在我们对num.txt里面的内容稍加修改,以便演示后面的选项:
Linux基本指令(下)_第3张图片
我们向文件的头部加入了几行空格,但是现在我们不想让这些多余空行输出出来,我们就可以带上-s选项:
Linux基本指令(下)_第4张图片
当然我们不想对空行进行标号,可以带上选项 -b
Linux基本指令(下)_第5张图片
好,既然讲到这里了,我们现在来拓展一点小知识
我们现在就简单的揭晓一个命令:echo "字符串"(关于其选项,读者可以自行去查man手册),这个命令的作用呢是将字符串输出到显示器上面;
我们都知道其实命令也是一个一个可执行文件,就与我们在Window环境下生成的.exe文件是一样,简单来说我们写的程序也可叫做指令,这二者之间没有什么本质区别,好现在我们回归主题:那么命令既然是个程序的话,那么现在他的作用就是将字符串输出到显示器,在linux系统中万物皆是文件,包括我们的网卡、显示器、键盘等等,那么好既然显示器是一个文件是呗,弄我echo的本质是不是就是向一个文件里面输出数据或者叫做向这个文件里面写入数据(都是站在程序的角度来看的),那我们可不可以改变echo的输出方向呢,让他不在向显示器输出数据,而向另一个文件输出?
答案是可以的!!!
我们把这种操作叫做输出重定向,就是重新改变程序的输出方向!!!!
Linux基本指令(下)_第6张图片
我们改怎么表示输出重定向?
就比如我现在想要向test.txt里面输入“测试1”,可用命令:
echo "测试1" > test.txt,这里的>就表示输出重定向
在这里插入图片描述
我们来多玩几次:
Linux基本指令(下)_第7张图片
我们可以发现每次重定向输出的结构貌似都是最后一次的结果,不会保留上一次的结果,也就是说,每次重定向输出数据之前的系统会先将文件里面的内容清理干净,再输出!!!也就是覆盖式输出;我们不想覆盖掉上一次的内容怎末办?
那就用追加重定向呗!>>这两个箭头表示追加重定向!!!
Linux基本指令(下)_第8张图片
那如果我想清空该文件怎末办?
直接指向命令 > test.txt将空白输出到test.txt问价里面去:
Linux基本指令(下)_第9张图片
啥内容也就没有了!!
好嘞!理解上面了,我们再回到cat命令来,既然都有输出重定向(改变输出方向),那有没有输入重定向(改变输入方向嘞)?
有的,cat命令就是先从文件里面读取数据,再打印数据的!!
如果我们不在cat后面加任何参数的话,就是默认从键盘读取数据,读到啥就回显啥:
Linux基本指令(下)_第10张图片
按下Ctrl+C就可以退出了;
现在我们改变cat的输入方向:
Linux基本指令(下)_第11张图片
总结一下:
1、> 表示输出重定向;
2、>> 表示追加重定向;
3、< 表示输入重定向;

more命令

虽然cat是能查看文件内容,但是太麻烦了,你想假设文件内容太长,cat一下就把你的内容刷到了末尾,你想看前面的还得往前拉,很是麻烦,为了解决这个问题,我们可以采用more命令来查看文件内容;

语法 :more 选项 文件
功能: 查看文件内容;
常用选项
-n:代表一个具体数字,比如1、2、3、4……等,表示地一次先显示n行,按空格又显示n行,按回车显示一行;
按q退出;
实例演示:
Linux基本指令(下)_第12张图片
Linux基本指令(下)_第13张图片
当然这个命令查看文件内容的话,只能下翻不能回翻,很是麻烦,我们一般用它也用的比较少,我们更习惯用less;

less命令

语法 :less 选项 文件
功能: 查看文件内容;
常用选项
-i : 忽略搜索时的大小写
-N: 显示每行的行号
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
实例演示:
Linux基本指令(下)_第14张图片

head命令

语法 :head 选项 文件
功能: 查看文件的前n行(n是你带的选项决定的,如果没有n默认显示前10行);
常用选项
-n: 查看前n行内容
实例演示
Linux基本指令(下)_第15张图片
默认显示前10行的内容:
Linux基本指令(下)_第16张图片

tail命令

与head相对的就是tail命令了

语法 :tail 选项 文件
功能: 查看文件后n行的内容(n由我们所带的选项决定,默认是后10行);
常用选项
-n : 查看后n行的内容;
-f :循环读取,j就是不断获取文件最尾部的内容,并且不断刷新,使你看到文件最新的内容;
实例演示
Linux基本指令(下)_第17张图片
默认情况:
Linux基本指令(下)_第18张图片

wc指令

语法 :wc 选项 文件
功能: 输出文件行数、单词数、字节数;
常用选项
-l : 输出文件行数
-w: 输出文件单词数
-c 输出文件字节数;
实战演练 :
假设我们现在只想统计text.txt的行数,那么我们就可以利用指令:wc -l text.txt;
在这里插入图片描述
我们也可以输出其单词数、字节数:
Linux基本指令(下)_第19张图片
那么现在问题来了,我如果想要统计[500,520]的行数嘞?
我们虽然能一眼看出来,但是计算机不行啊,我们得告诉他具体指令他才能算出来,
怎末办?
方法1
1、利用head指令将文本前520行数据利用重定向输出到一个叫做tmp.txt的文件里面;
2、再利用tail指令将tmp文本后20行数据利用输出重定向输出到tmp2.txt文件里面;
3、最后再利用指令wc -l tmp2.txt, 去统计tmp.txt文件里面的行数;在这里插入图片描述
这样创建临时文件的方法很是麻烦;
我们现在利用第二种方法:
方法2:
在这里插入图片描述
利用管道的概念,我们巧妙的解决了行数问题;
那么什么是管道?
Linux基本指令(下)_第20张图片
利用管道里我们就能利用命令批量化高效化的处理问题!!!可以将多个命令链接起来使用!!
我们可以将这个管道理解成一个临时的文件!!!

date指令

1、直接显示时间:命令:date
2、格式化显示时间;命令:date +"%Y-%m-%d %H-%M-%S";格式的话最好用双引号括起来,避免由空格引起的不必要的麻烦!
%Y:年份
%m:月份
%d:日
%H:小时
%M:分钟
%S:秒
3、如果我们当前时间有误,我们可以利用命令date -s "格式",来重新设置时间;
date -s//设置时间只有拥有root权限才可以;
格式如下:
"20221101",只设置年月日,具体时间会被置为00000011:36:21,只设置具体时间,不会对日期进行改变;
“01:01:01 2008-05-23,这样可以设置全部时间;
"01:01:01 20080523",这样可以设置全部时间;
“2008-05-23 01:01:01,这样可以设置全部时间;
"20080523 01:01:01",这样可以设置全部时间;
4、时间戳
date +%s//获得当前时间的时间戳;(当前时间->时间戳)
什么是时间戳?
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从197011日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
5、时间
date -d@ 时间戳//将时间戳转换为具体时间

cal指令

cal指令也是一个关于时间的指令:

语法 :cal 选项 [月份] [年份]
功能: 查看指定年月的日历;
常用选项
-3 : 查看当前月、上一月、下一月的日历;
-y:显示当前年份日历;
-j:显示在当年中的第几天;
实际演示
cal 什么也不带,默认是当年当前月份的日历:
Linux基本指令(下)_第21张图片
比如我们只想显示指定年月的时间,比如 2022 12月份的日历,我们就可以输入命令cal 12 2022
Linux基本指令(下)_第22张图片
当我们仅输入一个数字时,默认是带的数字表示年,则cal命令会将该年的日历全部展现出来:
Linux基本指令(下)_第23张图片

find指令

语法 :find 选项 目录 文件名
功能: 用于在指定路径系查找文件,并做出相应的处理(可能访问磁盘)
常用选项
-name :
实战演练:
比如现在我们想要搜索下一num.txt文件:
当然我们可以在指定路径去查找,如果没有指定路径则默认在当前目录下查找:
Linux基本指令(下)_第24张图片
指定路径查找:
Linux基本指令(下)_第25张图片
当然find还有其他很多选项,这里只讲解 -name选项;
接下来咱们再讲解连个也跟查找相关的命令:
which 指令
查看指令(指令也是个可执行程序)所在路径,和取别名的情况!!
比如:
Linux基本指令(下)_第26张图片
whereis 指令
搜索包含关键字的文档;
比如:
Linux基本指令(下)_第27张图片
当没有搜到时,它会直接显示关键字名称:
Linux基本指令(下)_第28张图片

grep指令

语法 :grep 选项 “字符串” 文件名
功能: 用于过滤出含有指定字符窜的数据;
常用选项
-i :忽略大小写
-v : 过滤出不含指定字符串的数据;
-n :输出数据时带上行号;
实战演练:
Linux基本指令(下)_第29张图片
现在我们筛选出含有字符串 “aaa“的:
Linux基本指令(下)_第30张图片
再加上个忽略大小写:
Linux基本指令(下)_第31张图片
输出不含“aaa”的,忽略大小写,并且顺带输出行号:
Linux基本指令(下)_第32张图片
这里在介绍几个简单命令:
sort 选项 文件
对文件进行正向排序并输出,如果带上选项-r的话就是降序:
Linux基本指令(下)_第33张图片
降序:
Linux基本指令(下)_第34张图片
注意sort在不带任何参数的情况下默认排的是升序,并且默认将大写字母视为小写字母来排序,小写字母排在大写字母前面:
或许你会问为什么?不是按照ascll码值来排序的嘛?
这是Linux的规定!!!Liunx规定是这样子做,咱们就得这样子做!!
对于这样的特殊情况我们需要格外注意!!!

比如:Linux基本指令(下)_第35张图片
按照ascll码来排序的话,排出来的结果就应该是:ABCabc;可是我们加上sort来为我们排序,会得到如下结果:
Linux基本指令(下)_第36张图片
是不是有点颠覆认知!但是如果你将大写字母视为小写字母就完全能说的通了!!!
而且我们将大写字母视为小写字母,小写字母占主导地位,所以小写字母排在大写字母的前面;
同时我们也可加上选项 -f将小写字母视为大写字母,那么大写字母占主导地位,大写字母就会排在小写字母的前面:
我们所得到的结果也就是:A,a,B,b,C,c;
Linux基本指令(下)_第37张图片
接着我们在介绍一个去重的命令,由于上述文本不方便演示,我们接着重新写一个文本来演示:
uniq 选项 文件
对文件去重:
Linux基本指令(下)_第38张图片
我们对其排序并去重:
Linux基本指令(下)_第39张图片

top命令

查看Linux环境下的任务管理器:
Linux基本指令(下)_第40张图片
输入q退出;

alias命令

该命令主要用来给比较复杂的命令取别名,比如:
Linux基本指令(下)_第41张图片

我们给ls -a -l -1命令取别名为myls:
那么myls与ls -a -l -1具有一样的作用:
Linux基本指令(下)_第42张图片

zip/unzip命令

语法 :zip 选项 压缩文件.zip 目录或文件名
功能: 将目录或文件打包压缩成一个以.zip结尾的压缩文件
常用选项
-r :递归处理,目录下的子目录或文件
实战演练
在这里插入图片描述
Linux基本指令(下)_第43张图片
现在我们将lesson4压缩成一个zip文件:
Linux基本指令(下)_第44张图片
现在我们有了lesson4的压缩包,我们想要知道压缩成功了没有,我们就需要对其解压看看:
为此我么接着学习解压命令:
这个命令很简单:直接unzip 压缩文件.zip -d 解压到指定目录
为此我们现在来解压一下lesson4.zip
Linux基本指令(下)_第45张图片
我们现在来查看一下lesson4里面有什么:
Linux基本指令(下)_第46张图片
这是为什么?我不是已经成功压缩了嘛;
主要是由于我们直接压缩的话zip命令就只会压缩目录,不会压缩其里面的子目录和文件,如果我们想要连其子目录和文件一起压缩的话,我们需要带上选项-r:
接下来我们删除掉原来的压缩文件重新压缩:
Linux基本指令(下)_第47张图片
我们再来查看一下文件里面的内容:
Linux基本指令(下)_第48张图片
我们可以发现lesson4里面的所有文件都被压缩进来了;
那么为什么要压缩呢?
1、为了利用有限的空间装载更多的数据;
2、方便管理零散的文件,提高传输速率;

tar命令

语法 :tar 选项 压缩文件.zip 目录或文件名
功能: 将目录或文件打包压缩成一个压缩文件
常用选项
-c:对文件进行打包;
-z:对文件进行压缩,压缩成.tgz或者gz格式
-j:对文件进行压缩,压缩成.bz2格式;
-x:解开压缩包;
-t:查看压缩包里面的内容;
-v:查看压缩包里面详细内容;
-f:使用档名,请留意,在f之后要立即接档名!不要再加参数!!
-C:解压到特定路径;
实战演练:
Linux基本指令(下)_第49张图片
现在我们需要最lesson1里面的内容进行压缩处理,我们只需输入命令:
tar -czf lesson.tgz lesson1
Linux基本指令(下)_第50张图片
我们可以看到的确出现了一个.tgz的压缩包,现在我们想对其进行解压的话,我们只需输入命令:
tar -xzf lesson1.tgz -C lesson2
如果我们不带-C选项的话,默认是解压在当前路径下,由于当级目录已经存在lesson1这个目录,为此我们需要将它解压到特定目录下,而解压到特定目录下我们需要带上选项-C:
Linux基本指令(下)_第51张图片
当然如果我们就不想解压,我们想看看里面到底有些什么内容,我们就可以输入命令:
tar -ztf lesson1.tgz
Linux基本指令(下)_第52张图片
如果还想看一看他们的详细信息,我们可以带上-v选项:
tar -ztvf lesson1.tgz
Linux基本指令(下)_第53张图片
我们可以看到的确出现了比上一次更加详细的内容;

bc命令

也就是Linux系统中的计算器:

Linux基本指令(下)_第54张图片
Ctrl+C退出
我们也可以利用上面所讲的管道的观点配合着使用:
在这里插入图片描述

uname命令

语法 :uname 选项
功能: uname用来获取电脑和操作系统的相关信息
常用选项
-a:查看所有信息,从左到右,依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称;
实例演示:
在这里插入图片描述

shutdown命令

与关机有关的小命令:

-h : 将系统的服务停掉后,立即关机。
-r : 在将系统的服务停掉之后就重新启动
-t sec : -t 后面加秒数,亦即『过几秒后关机』的意思
如果我们想要做到定时关机的话,我们可以利用命令:
shutdown -h hour:min
比如我们现在20:00的时候关机:
Linux基本指令(下)_第55张图片
如果我们想要取消的话我们输入命令
shutdown -c即可
在这里插入图片描述
系统提示我们权限不够,我们转为root就可以了:
Linux基本指令(下)_第56张图片
此时系统告诉我们已经取消了;
当然定时重启也是一样的道理,只需将参数换成 -r 即可;
当然如果你想立即重启或关机,只需将时间参数改为 now 即可!!

总结

以上便是linux基本操作指令,我们不用一口气就记住它们,我们只需要多家练习,便能孰能生巧,慢慢就记住了!!

你可能感兴趣的:(Linux,linux,服务器,开发语言,c语言)