如题,我先放个网址
主要练习用:Virtual x86
备用练习用:JS/UIX - Terminal(open terminal->login:guest就可使用了)
本文主要以Linux面试必备20个常用命令_linux常用命令_袁袁袁袁满的博客-CSDN博客为主,按该文中顺序进行测试与练习.
find命令:
功能:用来在指定目录下查找文件
格式:find [路径] [选项] 操作
命令表:
命令 | 说明 |
find [路径] -name test | 查询指定目录下,命名为test的文件 |
find [路径] -size +100k | 查询指定目录下,文件大于100K的文件 |
find [路径] -ctime n | 查询指定目录下,在过去n天内被修改过的文件 |
不写路径时,默认为当前所在路径
这个功能测的很有意思,一开始我直接输入了个find
它直接显示了该路径下的所有文件,包括隐藏文件和更深层的文件(红框标出来的)
两个问题:
1.tests是文件夹?
2.之前我测试cd时把"."和".."视作了两个隐藏文件,为什么只find出了"."没find出".."?
1
正好我之前没搞明白这个tests是什么文件,这次测试让我意识到我是不是可以用cd的方法进去看看.
可见,tests有"."、".."和find中框出来的两个文件,tests很有可能是文件夹
但是还是有点奇怪,为什么tests文件夹的表现形式和root不一样呢?(/root%和tests%,tests前面没有斜划线)
所以我又去了解了下创建文件夹的命令
mkdir命令:
功能:创建文件夹
格式:mkdir [选项] 文件夹名
参考:Linux命令 - mkdir命令_linux mkdir_EstherLty的博客-CSDN博客
我在root目录下创建了一个叫new的文件夹,在ls查看一下
结果证实了我们刚才的结论,tests就是一个文件夹
(0817补:其实有测试ls的那篇有说,代表文件类型的编码的第一个字母为"d"时代表该文件为目录文件,当时我没反应过来,其实它指的就是文件夹)
现在再去看一眼根目录(cd /)
(补:接下来是一段没什么卵用的测试)
嘿?root也是文件夹呀,但是
tests的文件编码是 drwxr-xr-x (d表示这是一个目录文件。rwxr-xr-x表示对于该文件,拥有者具有读、写、执行的权限,同组的用户具有读和执行的权限,其他用户也具有读和执行的权限)
root的文件编码是drwx------(d表示这是一个目录文件,rwx表示所有者(owner)对该目录具有读、写和执行的权限,而------表示其他用户对该目录没有任何权限)
我试着去测试了下root的其他文件夹,发现我在root里看到的情况是一样的
于是得出结论,它这玩应儿就这样(´Д`)
从根目录cd过去的第一层文件夹都会带个斜划线,再往深层cd去的就不会显示斜划线了
测试了个没什么用的东西呢
顺带一提,我去另一个在线编辑器也测了一下,发现因为系统显示的方式不同,完全测试不了这个问题
总之第一个问题到此结束
2
这个没法测,肯定是系统规定的
不过想想就能想明白,find就像是windows的文件搜索一样,它会搜索当前所在文件夹内的所有内容,如果连上一层文件夹也搜的话那岂不是无论在哪里搜索的就都是整个系统的文件了么
Linux也是同理,".."文件就是存在的,但不能搜,搜了就没有[路径]存在的意义了.
接下来是其他命令测试
chmod命令:
功能:控制用户对文件的权限的命令
格式:chmod [选项] 文件名
选项表
选项 | 说明 |
777 | 赋予可读、可写、可执行权限(读:4,写:2,执行:1) |
(经测试,参考文中的"-r"、"-w、"-x",均无法正常发挥效果,故此处不提.)
第一篇提到的、刚才提到的"文件编码"就是它了
权限显示位一共为10位,分为四段,从第二位算起,每三个一组,每组的完全体都是"rwx"
第1位代表文件类型(-
表示为普通文件)
第2-4位代表文件所属用户拥有的权限(rw-
:4+2=6)
第5-7位代表该用户所属组拥有的权限(-r--
:4)
第8-10位代表其他用户拥有的权限(r-x
:4+1=5)
看起来像不像二进制的计算方法?我猜应该就是这么算的了,r代表2的平方也就是4,w代表2的一次方也就是2,x代表2的零次方也就是1.
在备用编辑器里,我看到了为什么用rwx的解释
r代表读取权限,w代表写入权限,x代表操作权限
所以说具备所有权限(rwx)时的值为4+2+1=7,这也是为什么选项表第四个是"777"的原因,它把三种用户(文件所属用户、该用户所属组、其他用户)的权限都设为了7
这里我新建了个new文件夹,先把它的权限设为"000",然后再设为"651",都成功完成了权限更改
ps命令
功能:用来列出系统中当前正在运行的那些进程
格式:ps [选项]
选项表:
选项 | 说明 |
-A | 列出所有的进程 (重要) |
-ef | 查看全格式的全部进程 (重要) |
-w | 显示加宽可以显示较多的资讯 |
-au | 显示较详细的资讯 |
-aux | 显示所有包含其他使用者的行程 |
这个命令在在线编辑器上好像不是那么好测,可能他们没有正常运行那些进程啥的所以,知道是这么东西就行吧,之后有时间搞个虚拟机再测
深入了解可以看下Linux ps命令详解,Linux查看进程_查看进程linux命令_士别三日wyx的博客-CSDN博客
这篇文章里也有正常的测试图
kill 命令:
功能:用于删除执行中的程序或工作
格式:kill [选项]/[信号] 进程号
常用选项:
选项 | 说明 |
-l | 参数会列出全部的信息名称。 |
-s | 指定要送出的信息。 |
常用信号:
信号 | 说明 |
-1 (HUP) | 重新加载进程 |
-9 (KILL) | 杀死一个进程。(重点) |
-15 (TERM) | 正常停止一个进程。 |
跟ps一个尿性,等虚拟机
tail命令:
功能:查看测试项目的日志
格式:tail [选项] 文件名
选项表
选项 | 说明 |
-f | 实时读取 |
-1000 | 查看最近1000行日志 |
这个命令很有意思!
如果你使用过编码工具(eclipse、vsCode之类的),你就会知道报错时都会报最新的,也就是最后写入日志的那一部分,所以这个命令就是这么用的.
tail命令更适用于查看比较大的文件或者是查看持续更新的文件,一般用于查看文件的最后边的内容,也可以实时查看新写入到文件最后的数据。
参考:Linux命令--tail(查看日志文件内容,排查问题)_tail命令查看日志_IT利刃出鞘的博客-CSDN博客
我们的在线编辑器里有没有日志呢?
很可惜,没有,那我们用vi编辑器试一下能不能用tail
-f肯定是测试不了了,我们还没有实时写文件的能力但是可以测一测返回最后多少行的功能
测试成功