【Linux】Linux基本指令(下)

简介: 【Linux】Linux基本指令(下)

前言:

紧接上期【Linux】基本指令(上)的学习,今天我们继续学习基本指令操作,深入探讨指令的基本知识。


(一)常用指令

👉more指令

语法:more [选项][文件]

功能:more命令,功能类似 cat

在讲【more】指令之前,我们需要先在一个文件中放入很多的数据。这个指令当做了解,现阶段不要求大家掌握,具体如下所示:

cnt=0; while [ $cnt -le 1000 ]; do echo "hello $cnt"; let cnt++; done > myfile.c

然后当我们打印这个文件中的内容时,最终结果就是循环打印出1000条【hello】指令,具体如下:

但是当我们想要去具体看一行的代码时,这样来回的翻动会显得很不方便,于是我们有专门的指令可以进行观看,基于这种情况,就引出了【more】指令。

存在的缺点:

  • 对于【more】指令,存在一个问题就是它显示到一个屏幕满了之后就不显示了,而且只能下翻,不能上翻,在下翻的过程中按回车就可以了,想要退出的话按【q】
  • 因此不难看出这个指令还是比较麻烦,所以这个命令我们用得比较少一些。

常用选项:

  • -n 对输出的所有行编号
  • q 退出more

👉less指令(重要)

对于上述【more】存在的不足,【less】就很好的解决了相关情况。接下来,我们具体聊聊【less】指令。

  • less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极 其强大。
  • less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
  • 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
  • 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜

语法: less [参数] 文件

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

除此之外,还支持上下翻动的功能,只需按键盘中的这两个键

选项:

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

👉head指令

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

语法: head [参数]... [文件]...

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

我们直接上代码来进行直观的理解:

不仅如此,我们还可以指定行数进行打印,具体如下(这里的【n】可以省略不写):

选项:

  • -n 显示的行数

👉tail指令

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

语法: tail[必要参数][选择参数][文件]

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

老规矩,直接上代码:

跟【head】一样,这里也可以指定行数进行打印操作:

选项:

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

拓展知识——管道

讲完了【head】和【tail】的有关知识,这里我给大家拓展一个知识点,即-管道

“|”是管道命令操作符,简称管道符。利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。

  • 管道符:“|”
  • 语法:“command1 | command2 [ | commandN... ]” ,“|”符左边命令的输出会作为“|”符右边命令的输入
  • 功能:将两个或者多个命令连接到一起,把一个命令的输出作为下一个命令的输入

在正式学习之前,我们先来研究下列代码代码什么意思:

cat myfile.c | wc -l

什么意思呢?我们直接运行,结果如下:

大概就可以如下图理解:

我们在通过例子来带大家进一步认知,当我们想要只显示【myfile.c】中500行到520行的内容时我们可以怎么做呢?这里我们给出两种方法:

  • 我们通过中间文件来进行操作,具体如下:

紧接着我们在用【tail】打印最后20行即可:

  • 上述做法我们就要用一个额外的文件,那么当我们不想那么做,可以直接一步到位吗?答案是当然可以啊!这就需要用到管道技术,看我们是如何实现的:

  • 除此之外,还可以继续添加,这些内容有多少行数。就是加一个【wc -l】

到此,我们拓展的管道的知识便到此了。


👉时间相关的指令

date显示

date 指定格式显示时间: date +%Y:%m:%d date

用法:date [OPTION]... [+FORMAT]

当我们在Linux下如何获取时间呢?我们可以直接在命令行敲入【date】命令就可以了,具体如下:

上述看着是不是看着不好去认呀!我们可以对其进行格式化操作,让时间显示得一眼便可以看出的效果:

  1. 1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下
  • %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

因此,我们可以这样去做;

  1. 2.在设定时间方面
  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空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″ //这样可以设置全部时间
  1. 3.时间戳

什么是时间戳:

一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。简而言之,就是某一刻的时间

时间戳有什么用:

一般,在互联网公司都会在项目种使用时间戳,时间戳主要用于清理缓存,大多数用于版本更新

用法:

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的 午夜)开始所经过的秒数,不考虑闰秒。

具体如下述所示:

还可以像以下这样写:


👉Cal指令

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

基本介绍:

命令格式: cal [参数][月份][年份]

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

当我们想要查看【2022】年的日历时,我们只需要输入:

cal 2022

当我们只输入【cal】时,显示的是当前的月份:

当我们想知道跟本月挨着的三个月是哪个月时,我们可以这样:

常用选项:

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

👉sort指令

语法:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件][-k field1[,field2]]

功能:【sort】将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。

怎么用呢?具体如下图所示:

默认的情况下是进行的升序排列,那么我们是否可以进行降序排序呢?当然是可以的啦,我们只需要加上【-r】即可,具体如下:

常用选项

  • -b 忽略每行前面开始出的空格字符。
  • -c 检查文件是否已经按照顺序排序。
  • -d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
  • -f 排序时,将小写字母视为大写字母。
  • -i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
  • -m 将几个排序好的文件进行合并。
  • -M 将前面3个字母依照月份的缩写进行排序。
  • -n 依照数值的大小排序。
  • -u 意味着是唯一的(unique),输出的结果是去完重了的。
  • -o<输出文件> 将排序后的结果存入指定的文件。
  • -r 以相反的顺序来排序。

👉find指令:(灰常重要) -name

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

语法: find pathname -options

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

具体使用如下图所示当我们想要去查找【my.txt】文件时,我们只需加上对应的指令即可:

不仅可以在当面路径下进行查找,还可以指定目录下去进行查找,具体如下:

常用选项:

  • -name   按照文件名查找文件。

👉which指令

跟【find】类似,这个指令也是查找类的指令。

语法:which [文件...]

功能搜索对应指令的路径

用法如下:

参数

  • -n<文件名长度>  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
  • -p<文件名长度>  与-n参数相同,但此处的<文件名长度>包括了文件的路径。
  • -w  指定输出时栏位的宽度。
  • -V  显示版本信息。

👉whereis指令

语法:whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]

功能:用于查找文件。该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

用法如下:

参数:

  • -b  只查找二进制文件。
  • -B<目录>  只在设置的目录下查找二进制文件。
  • -f  不显示文件名前的路径名称。
  • -m  只查找说明文件。
  • -M<目录>  只在设置的目录下查找说明文件。
  • -s  只查找原始代码文件。
  • -S<目录>  只在设置的目录下查找原始代码文件。
  • -u  查找不包含指定类型的文件。

以上三个就是在Linux下经常用到的查找指令。


👉alias指令

在操作 Linux 的过程中,最令你感到不爽的是什么?答案可能就是命令太多,选项太多,记不住。命令可以通过本书学习,但选项太多可真的不好办了,基于上述情况【Linux 】系统中有一个叫作 【alias 】的命令,它可以给一些命令设置别名,利用它我们就可以不必记住太多复杂的选项,只需将这些选项设置成别名就好啦。

语法:alias [name[=value]]

这里需要注意的是:

  • 等号(=)前后不能有空格,否则就会出现语法错误了。
  • 如果value中有空格或tab,则value一定要使用引号(单、双引号都行)括起来。

了解了别名的基础知识之后,我们来看一个定义别名的例子:

alias myls='ls -a -l -n -i'

这个例子定义了一个 【ls -a -l -n -i】命令的别名,以后,当我们执行 【myls】命令时,其实真正执行的是 【ls -a -l -n -i】。是不是很简单呢!


👉grep指令

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

功能: 在文件中搜索字符串,将找到的行打印出来

具体怎么用呢?我们结合下面的代码进行理解:

常见的还有带【-n】选项的,意思为额外输出对应的行号:

接下来,我们在介绍几个:

正式介绍之前,我们需要改动一下测试用例,因为之前是在【myfile.c】文件中写的,那么我们把它情况重新写入呢?这里介绍一个方法就是【>+文件名】,即为情况文件中的内容:

接下来我们重新向文件中写入数据,在进行操作,具体如下:

常用选项:

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

👉top指令

功能:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器

当我们想要退出时,及输入【q】即可。


👉zip/unzip指令

语法: zip 压缩文件.zip 目录或文件

功能: 将目录或文件压缩成zip格式

接下来还是以代码的方式带大家去感受这个指令。此时,当我们想压缩【test1】这个目录,我们直接输入代码,当运行然之后再去查看当前路径下时,就会多显示一个一个压缩好的,具体如下:

既然有压缩就有解压缩,那么我们该如何进行解压缩呢?我们只需执行【unzip +压缩文件】即可。(因为当前有个一样的文件,为了实验的正确性,我们先把压缩包移动到【tmp】下)

紧接着通过以下代码大家就可以直观的感受到解压的过程:

此时已经解压了,当我们想要查看当前目录下的文件时,我们发现竟然什么都没有。什么原因呢?这是因为上述方法,我们只是压缩了目录而已,并没有把目录下的内容进行压缩:

我们需要进行递归处理,把目录下的所有文件递归的进行压缩,只需加上【-r】即可,具体如下:

还有就是当我们想解压到指定目录下时,可以怎么做呢?大家通过代码进行感受:


 

👉tar指令(重要):打包/解包,不打开它,直接看内容

上述两个命令只能对以【.zip】为后缀的压缩文件起效果,但是在我们日常生活中,遇到的肯定不止这一种压缩文件,还有.rar、.tgz、.7z等等,因此为了能够操作更多的压缩文件,我们还需要学习一个指令叫做【tar】

语法: tar [-cxtzjvf] 文件与目录

功能: 将目录或文件压缩成zip格式

我们具体也压缩一个文件为例进行说明(开始时目录下只有一个【test1】文件,当我们执行相关代码之后,在【ll】我们就可以发现此时已经多出了压缩的文件):

那么解压缩呢?还是通过代码进行观察:

解压到指定的目录呢?(跟zip差不多,只是这里后面加的是【-c】)

 

参数:

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

👉bc指令

语法:bc(选项)(参数)

功能:bc 命令是任意精度计算器语言,通常在linux下当计算器用。它类似基本的计算器, 使用这个计算器可以做基本的数学运算。

bc指令还可以和我们上面说过的管道一起使用

 


👉uname –r指令

语法:uname [选项]

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

补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

这里简单介绍两个选项,具体如下:

还有一个就是【-r】指令:

 

常用选项:

  • -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类 型,硬件平台类型,操作系统名称

👉热键[Tab],[ctrl]-c, [ctrl]-d

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

👉关机

语法:shutdown [选项] ** 常见选项:**

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

(二)扩展命令

上述即为在我们学习初级需要大家记住的指令,后续还有很多指令我们边学边记就可。以下是一些拓展指令,大家可以认识认识:

  • 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
  • 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
  • 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab;
  • 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
  • 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who;
  • 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。

以上便是关于【Linux】基本指令的全部知识,大家做笔记的同时多上手敲两遍这样会大大的加深我们的理解!!!

最后,如果文章对您有帮助的话记得点赞三连哟!!!

 

相关文章
|
30天前
|
Linux Windows
Linux之基本指令操作
Linux之基本指令操作
|
5天前
|
Unix Linux Windows
Linux的学习之路:3、基础指令(2)
Linux的学习之路:3、基础指令(2)
28 0
|
3天前
|
算法 Linux
工作中常用的一些Linux指令,简单易记还实用(三)
工作中,离不开Linux系统,很多刚步入职场的小白,往往对于Linux操作系统的使用都显得生疏,最主要的就是对一些常用的指令记忆不熟练,下面就罗列一些使用度比较高的一些Linux指令,一起来巩固学习一下。这一部分的指令就稍微偏一点了,是接着上一篇博客后面写的,感兴趣的朋友可以回头看看前一篇,再回来看这个。
18 1
|
3天前
|
Linux Shell
工作中常用的一些Linux指令,简单易记还实用
工作中常用的一些Linux指令,简单易记还实用
10 2
|
9天前
|
安全 Linux
Linux基本指令(下)——“Linux”
Linux基本指令(下)——“Linux”
|
11天前
|
人工智能 Unix Linux
Linux基本指令
Linux基本指令
|
14天前
|
Linux Windows
|
14天前
|
Linux
Linux 指令|date|cal|find|grep|热键
Linux 指令|date|cal|find|grep|热键
|
14天前
|
Linux
Linux简单指令|cd|touch|mkdir|rmdir|rm
Linux简单指令|cd|touch|mkdir|rmdir|rm
|
15天前
|
存储 安全 Unix
Linux基本指令汇总
Linux基本指令汇总
50 2