每一个不曾起舞的日子,都是对生命的辜负。
Linux常见指令(下)
01. find指令:—name
- Linux下find命令在目录结构中搜索文件,并执行指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,但在这里我们只需要了解搜索功能。
- 即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
- 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系统可能会花费很长的时间(这里是指30G字节以上的文件系统)。
语法: find pathname -options
功能: 用于在文件树种查找文件(递归查找),并作出相应的处理(可能访问磁盘)
常用选项:
- -name 按照文件名查找文件。
当我们进行find搜索时,可能因访问磁盘进而导致效率低下。
此外,还有一个指令可以进行搜索,但只能搜索命令:
which + 命令
[cfy@VM-8-3-centos ~]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[cfy@VM-8-3-centos ~]$ which pwd
/usr/bin/pwd
[cfy@VM-8-3-centos ~]$
- 在这里浅谈一下为什么文件夹在ls 的时候会产生不同颜色,我们经过which查找发现,ls指令中含有
color=auto
的颜色选项,而ll在which查找中发现,其解释是:ll = ls -l
- 我们还发现这个演示中,ls的介绍含有alias ,事实上,alias可以对指令进行重命名,或者是起别名,如下就是我们对
ls -l
进行了重命名:
除了上述两个搜索命令,还有一个指令:
whereis
,其作用是在特定的路径下,查找指定的文件名对应的指令或者文档,如果不存在,也会搜到近似的名字。
三个指令查找范围的比较:which < whereis < find
02. grep指令
语法:
grep [选项][文件名]
功能: 文本内容的行过滤工具,会匹配文本中的关键字,匹配上的进行行显示。
我们进行如下演示:
通过这样就可以显示筛选的文本信息了。
常用选项:
- -i :忽略大小写d的不同,所以大小写视为相同
- -n :顺便输出行号
- -v :反向选择,即显示出没有’搜寻字符串’内容的那一行
在此之前,可以通过vim或者nano进入到test.txt文本中增加一些值,然后通过命令寻找。下面开始演示:(-v不方便在test.txt中进行演示,知道如何操作即可)
-i
:
-n
:- 当然,选项也可以同时结合使用:(先后顺序是任意的)
补充:
- grep可以和其他命令,结合管道,来进行某些匹配工作
wc -l
,wc可以统计行数,下面具体看看:
我们通过管道的形式,得到查找到字符的总行数:
此外,我们直接wc显示了三个数据:依次是:行数、字数、字节数
而通过wc的不同选项也可以显示不同的信息:
- -l 行数
- -c 字节数
- -m 字符数
- -w 字数
补充:sort指令
在这里,增加一个额外的知识:
sort
sort按名字来说是排序的意思,因此我们touch一个文件:
增加数据之后,我们退出这个编辑,使用sort命令:
- 因此我们可以得出,
sort
在Linux命令中,是以行为单位,按照ASCII码值进行升序排序。因此sort可以对文本内容进行排序。
补充:uniq指令
uniq指令可以将文件中相邻的重复值进行去重
但如果我们想将反是重复的值都去掉,这时就可以
sort
和
uniq
一起使用,即先用sort让值相同的值相邻,然后再利用uniq进行删除相邻的重复值。(通过管道实现)
但我们发现,这样只是显示中的值被删掉,但文件的内容还是原封未动的,因此我们需要重定向到文件中才能进行更改。通过打开这个文件并重定向这个文件的结果如下:
然而,事实并非我们所想的那样,当我们重定向并cat这个文件之后,发现里面什么都没有。
- 这种现象就值得深入探讨一下:
通过这个情况我们发现,重定向不能把数据来源的文件,又重新定向到这个文件,这是做不到的。
实际上在系统当中在做指令解析的时候,重定向不是最后一步,而是首先会把重定向到的文件打开然后清空,这样之后,如果再读取这个文件,就读不到文件的内容。所以说,重定向不能定向到原来的文件。
因此想改变文件的内容可以这样进行处理:借助一个tmp文件,让这个更改之后的数据重定向到tmp文件中,然后再通过tmp文件重定向到原来的文件中。
03. zip/unzip指令
在讲解之前先输入指令zip,如果发现没有这个指令,则我们需要通过此指令安装:
yum install -y unzip zip
就可以将这两个命令安装啦,安装之后再输入zip,会得到这样的结果:(安装需要root用户的权限,因此我们需要在root用户下进行安装,或者用sudo将子用户进行提权)
这样就代表我们已经安装完毕了。
语法: zip 压缩文件.zip 目录或文件
功能: 将目录或文件压缩成zip格式
unzip:在当前目录下进行解压
接下来就可以进行下面的操作:
zip my.zip 106
我们发现,经过一系列操作之后,最后解压发现,里面原本的内容并不存在,因此这只是将目录进行了压缩,但这不是我们想要的,我们想要的是将内部文件一起打包到my.zip中,因此,我们在这里就需要递归压缩
-r
(在此之前将前面生成的文件都删掉)
即命令:
zip -r my.zip 106
通过这样的指令,最终就得到了我们想要的。
但对于unzip指令,我们知道这是在Linux操作系统中,而在windows系统中可以看到一个是解压到当前文件夹,一个是解压到……
,也就是你想指定的路径当中,因此unzip通过
-d
选项也可以进行这样操作:(接下来展示将压缩的文件解压到/home/cfy/
(这里提示一下:所对应的路径就是子用户的路径,就是/home/cfy/)
指令:
unzip my.zip -d /指定路径
解包解压到
- 为什么要打包压缩呢?
在使用互联网的时候,安装软件时有很多大大小小的文件,打包可以便于运输和储存,不易丢失,并且让用户看起来不是那么多。
04. tar 指令(重要)
tar [-cxtzjvf] 文件与目录 …
参数:
- -c :建立一个压缩文件的参数指令(create 的意思);
- -x :解开一个压缩文件的参数指令!
- -t :不打开压缩文件,直接查看 tarfile 里面的文件!
- -z:是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
- -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
- -v :解压或者压缩的过程中同步显示解压或压缩文件列表!这个常用,但不建议用在背景执行过程!(需要和f一起使用)
- -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数
- -C : 解压到指定目录
上述的我们只挑常用的组合去介绍:
tar -czf my.tgz 106
# 打包并压缩tar -xzf my.tgz
# 解包并解压
通过上面的组合形式,我们就可以将其压缩和解压。其中,选项中的
-
写或者不写都是可以的。在组合指令时,顺序也是随意的,但f一定要在最后面。
举个例子,在命令中用选项
-tf
组合,就可以按照t原本的意思,不解压直接查看里面的具体内容。
对于此命令,也可以解压到指定的位置:
tar xzvf my.tgz -C ~
**注:
~
是家目录**
在执行指令的过程中,我们回车然后显示了几行信息,这是v选项的作用。上述我们通过-C命令,就将压缩包解压到了
~
路径下。
此外,对于压缩包,我们了解到的还有rar压缩包等,这些在网上搜命令都是可以的,使用方式和这两个相同,因此,就需要小伙伴们自己去了解啦。
05. bc指令
bc指令在Linux中相当于计算器的功能,但是不是太重要,因为windows的计算机已经足够好用了,这里就直接展示其具体结果:
06. uname -r指令
语法: uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项:
- -a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
07. 重要的几个热键
- [Tab]按键—具有『命令补全』和『档案补齐』的功能
- [Ctrl]-c按键—让当前的程序『停掉』
- [Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以用来取代exit
- [tab] :
- [Ctrl] - c:> 对于这个热键,如果运行的程序不终止,】或者出现错误,可以无脑进行ctrl c ,就能直接退出。
- [Ctrl] - r:> 这个热键可以自动搜索历史命令,左右即可选中。
- [Ctrl] - d:> 退出当前用户。
补充:
\
反斜杠可以续行,即如果出现命令过长导致需要换行时,可以在最后打出
\
,从而回车之后可以继续接着上一行输入。
08. 关机
语法: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。
这里再记录几条命令:
- lscpu :查看cpu信息
- lsmem:查看内存信息
- df -h:查看磁盘使用情况
- 通过
whoami
可以看你的用户名字:
- 此外,通过指令
who
我们也可以看到有几个人正在使用服务器。
看来,2022-10-22-15:29这个时刻除了我还有两位佬正在使用(滑稽)
到这里常用命令的讲解也就结束了,三篇文章总结了常用的命令,当然我们后续还会继续学习,一起加油吧!💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕💕!
版权归原作者 每天都要进步呀~ 所有, 如有侵权,请联系我们删除。