0


【Linux】Linux指令进阶:从新手到高手的必备命令

在这里插入图片描述
Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令

让我们继续踏上Linux学习之旅!在这篇文章中,我将延续上篇内容,深入讲解一些基础指令。欢迎大家观看!

一、输出输入指令

1.1 cat指令

语法】:cat [选项] [文件]

功能】:查找目标文件的内容,跟打印一样

常用选项】:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行

在这里插入图片描述

【**-s指令压缩空格**】

注意】:选项是可以多选项的

在这里插入图片描述

1.2 tac指令

同cat指令为查看目标文件的内容,不过是倒置查看

在这里插入图片描述

无论是cat指令还是tac指令,适用于查看短一些的小文件

1.3 echo指令

用于在终端显示一段文本或变量的值,也可以配合输出重定向用来创建文件向文件中写入内容

在这里插入图片描述

1.4 输出重定向 >

输出重定向功能】:

  • 本来应该显示在显示器上的数据,显示到文件中
  • 清空文件、创建文件(每次进行重定向,都会清空文件后在写入文件内容)
  • 创建一个空文件> file 清空一个文件>file

在这里插入图片描述

Linux理念

Linux中一切即文件,意味着Linux可以统一的方式进行文件/设备访问。好处就是可以让操作系统以统一的一套方案来管理所有软件。

普通文件 vs 显示器

对于任何文件来讲,无非就是对文件进行读写文件操作

对于显示器设备->显示器文件->向显示器文件进行写入

在这里插入图片描述

1.5 追加重定向>>

不会清空文件内容在该基础上,追加输入内容。

在这里插入图片描述

1.6 输入重定向 <

本来应该从键盘文件中读取 ,改为从普通的log.txt文件中读取

在这里插入图片描述

在这里插入图片描述

这两个虽然都能打印,但是本质不是一样的。

重定向总结

  • 输出重定向】:command > filename
  • 追加重定向】:command >> filename
  • 输入重定向】:command < filename

二、查看大文件指令

查看日志具有多方面的好处,尤其是在操作系统、应用程序或网络设备的管理和故障排除过程中。以下几个指令推荐使用来查看大文本(日志)

创建大文件】 (具体细节先不管)

  1. # i=1; while [ $i -le 10000 ]; do echo "hello Linux $i"; let i++; done > big.txt

在这里插入图片描述

2.1 more指令

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

功能】: more命令功能类似cat,支持查找大文件

常用选项】:

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

more可以打满一屏输出就停下来,让用户下翻逐行进行阅读,但是不适合使用大文本,比如查看日志,逐行查看会很废时间。

对于↑↓健一般没啥用,只能通过回车执行下翻,其实我们并不怎么推荐这个指令,更加推荐下一个指令

2.2 less指令

语法】:less [参数] 文件

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

常用选项】:

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

less工具也是对文件或其他输出进行分页显示的工具,应该说是Linux正统查看文件内容的工具,功能极其强大。不同于more只能向前面翻看,less更加具有弹性可以借助↑↓键查看一个文件的内容。

像这样子大文件,比如说日志,做好日志记录,也是很重要的,能帮助我们解决很多问题,就来程序来说,如果程序出现BUG,通过日志定位问题是一种高效的方法

在这里插入图片描述

【**/与-i选项配合使用**】

这里我们使用/和-i参数配合演示下,将忽略搜索时的大小写和向下搜索“字符串”的功能配合起来。

  1. less -i filename
  2. 输入[ / ]进行字符串向下查找

在这里插入图片描述

在这里插入图片描述

2.3 head指令

语法】:head [参数]… [文件]…

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

选项】:如果你想显示不同数量的行数,可以使用

  1. -n

选项

在这里插入图片描述

2.4 tail指令

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

功能】:默认tail命令打印其指定文件末尾内容的末尾10行。不指定文件按时,作为输入信息进行处理。常用查看日志文件

选项】 :

  • f 循环读取
  • 如果你想显示不同数量的行数,可以使用 -n 选项

问题:如何得到文件内容5000~5100行间的内容。】

那么我们可以借助head和tail指令配合-n实现,如下先创建一个文件tmp,将前5100行重定向输出到tmp文件,在对文件执行tail指令读取前后100个文件。

在这里插入图片描述

这里存在一个致命的缺点】:它需要创建临时文件进行中转。那么简单了解下管道的用法,在后继会详细介绍的。

使用管道在显示器上倒着打印5000~5100行内容。管道可以进行【多指令级联】,流水线作业,就是跟打连招一样。

在这里插入图片描述

三、时间相关指令

3.1 date指令

data 指定格式显示时间: date +%Y:%m:%d(留意下大小写,[:]可以替换其他字符)

date用法】: date +[OPTION]…[+FORMAT]

在这里插入图片描述

显示格式

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

设定时间

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″ //这样可以设置全部时间

时间戳

3.时间戳 (单调递增的时间)

时间->时间戳: date +%s

时间戳->时间: date -d@1508749502

Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从格林威治的1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。至于从八点开始,由于我们使用的是北京时间,处于东八区处在时差。

3.2 Cal指令

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

语法】: cal [参数] [月份] [年份]

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

常用选项】:

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

在这里插入图片描述

在这里插入图片描述

在windows下自带查看日历的工具,如果在Linux想看下日历可以使用cal指令

四、查找文件指令

4.1 find 指令(非常重要)

语法】: find pathname -options

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

常用选项】: -name 安按照文件名查找文件,是真正的在系统的树形结构中进行文件查找

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项值得我们花时间了解一下。

即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限,在运行一个非常销毁资源的find指令时,很多人都倾向于它放在后台执行,因为遍历一个大文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。第二次是使用find查找指定目录比第一次查找会比较快。

find指令使用

这里具体运用,在当前目录及其子目录中查找名为"file1.txt"的文件

在这里插入图片描述

4.2 grep指令

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

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

常用选项】:

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

在这里插入图片描述

五、打包与压缩指令

【**打包和压缩是什么?**】

比如你上学需要装东西,打包好比拿一个麻袋装起来,而压缩就是先把东西整理好再放进去。

打包和压缩作用

  1. 缩小体积,占据磁盘空间比较小,下载速度快
  2. 不会轻易的丢失文件
  3. 便于网络传输

5.1 zip/unzip指令

语法】:zip压缩文件[zip目录或文件]

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

常用选项】:-r 递归处理,将指定目录下的所用文件和子目录一并处理

场景使用】:zip/unzip进行对文件的压缩和解压操作
出现空目录情况】:
在这里插入图片描述

对于压缩dir目录到解压dir目录中,导致解压出来一个空目录情况,是由于压缩dir目录时,没有使用-r递归处理,将指定目录下的所有文件和子目录一同压缩到.zip文件中。

在这里插入图片描述

在压缩过程中压缩文件可以取名,但是.zip后缀是固定的(不同压缩指令,有不同后缀),在解压到指定目录下,如果不存在该目录,会自动创建目录。

通配符*使用

如果需要将零散的文件全部压缩,这里可以使用通配符*会比较方便。

在这里插入图片描述

5.2 tar指令(重要):打包/解包 不打开直接查看内容

语法】:tar [-cxtzjvf] 文件与目录 …参数

常用选项】:

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

这里通过常见的选项组合在一起使用,打包选项

  1. cvzf

、解包选项

  1. xvzf

在这里插入图片描述

案例】 (剩下指令有需要看):

  1. 范例一:将整个 /etc 目录下的文件全部打包成为 `/tmp/etc.tar`
  2. [root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
  3. [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
  4. [root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
  5. 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
  6. 如果加 z 参数,则以 .tar.gz .tgz 来代表 gzip 压缩过的 tar file
  7. 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
  8. 上述指令在执行的时候,会显示一个警告讯息:
  9. `tar: Removing leading `/" from member names`』那是关於绝对路径的特殊设定。
  10. 范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
  11. [root@linux ~]# tar -ztvf /tmp/etc.tar.gz
  12. 由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!
  13. 范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
  14. [root@linux ~]# cd /usr/local/src
  15. [root@linux src]# tar -zxvf /tmp/etc.tar.gz
  16. 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
  17. 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
  18. 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc
  19. 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
  20. 范例四:在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已[root@linux ~]# cd /tmp
  21. [root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
  22. 我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
  23. 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!
  24. 范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
  25. [root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
  26. 这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!
  27. 范例六:在 /home 当中,比 2005/06/01 新的文件才备份
  28. [root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home
  29. 范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
  30. [root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc
  31. 范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
  32. [root@linux ~]# cd /tmp
  33. [root@linux tmp]# tar -cvf - /etc | tar -xvf -
  34. 这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
  35. 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
  36. 这分别代表 standard output, standard input 与管线命令啦!

在这里插入图片描述

按照上面的说法,这个压缩包用来便于网络传输的,那么这里我们操作两台Linux下进行信息的互传,需要使用rz和scp指令(这里仅当了解)

在这里插入图片描述

六、其他指令

6.1 bc指令

bc命令可以很方便的进行浮点运算(计算器)

在这里插入图片描述

6.2 uname -r指令

语法】: uname [选项]

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

补充说明】:uname可显示Linux主机所用的操作系统版本,硬件的名称的基本信息

常用选项】:-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称 。(32位以下的软件可以兼容64位,但是64位上32位以下软件不能跑)

在这里插入图片描述

七、热键

  • [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笔记,希望对你在学习Linux旅途中有所帮助!

标签: linux 运维 服务器

本文转载自: https://blog.csdn.net/2302_79177254/article/details/142771298
版权归原作者 是店小二呀 所有, 如有侵权,请联系我们删除。

“【Linux】Linux指令进阶:从新手到高手的必备命令”的评论:

还没有评论