霍格沃兹测试开发学社

《Python测试开发进阶训练营》(随到随学!)
2023年第2期《Python全栈开发与自动化测试班》(开班在即)
报名联系weixin/qq:2314507862

该怎么开始学习Linux?

** 1. linux常用命令**

首先给大家介绍一个比较重要的一个命令。这个命令类似于各种语言的print ,用于回显关键的数据。

echo hello world

** 2.Linux的命令分类**

Linux所有的东西都理解成文件。类似于进程、网络等都是文件的不同表现形式。在Linux的世界里,命令分成以下三大类:

- 文件:everything is file

- 进程:文件的运行形态

- 网络:特殊的文件

接下来就针对以下这三类,做一个详细的解说。帮助初学者更好的理解Linux
,进行Linux学习。Linux是一个非常实用的工具,不管是做数据分析还是查看log,学会Linux让你事半功倍。想系统学习的测试小伙伴,也可以在文章末尾点击「阅读原文」进行系统性的提升

** 3. 文件类**

  1. 磁盘与目录

ls:在Linux下输入ls,即可列举出来你的当前目录下的所有的文件和目录 。当前列出的是根目录下的所有文件

cd:在Linux下,cd + 目录名称,可以进入到相应的目录。cd不加参数时,默认回到主目录,经常使用的cd命令还有:

  • cd .. 返回上级目录

  • cd ../.. 返回上两级目录

  • cd ~ 进入用户主目录 home 目录

mkdir:创建一个新的目录 例如:mkdir demo

df:它会打印出当前磁盘的使用情况,磁盘的大小,使用了多少,可用多少,以及挂载点。

这些命令的详细用法都可以通过 man 来查看,man 函数可以用来查看帮助文档,相当于Linux里自带的--help 函数。

例如:man df

文件编辑

vi:在Linux上创建一个文件只有一个工具,vi或者vim,两者的区别并不大, vi demo.txt
回车就进入到一个交互式的界面。刚一进去是命令模式,要对文件进行修改就要先输入一个a或者i,a是在当前字符后输入内容,i是在当前字符前输入内容。要退出编辑模式要按Esc。在命令行模式下按":"是表示要输入一个具体的命令,w是保存
q是退出 q!是强制退出

文件权限

打开目录之后就能看到各类文件了。那么想查看文件权限就需要用 ls -l 可查看文件的读写执行权限。

例如:

这里的 drwxrwxr-x 十个字母,第一个字母表示文件的类型,第一组 rwx
表示当前用户的权限,第二组表示同组的权限,第三组表示不属于当前用户当前组的表示非同组的权限,他们分别对应简写u、g、o。这里的 -
是表示没有对应的权限的意思。

这里简单的总结一下:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。u用户 g组 o其它 a 所有用户(默认)

  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

  1. 修改权限chmod

例如:chmod o+w <文件>

另外用数字来表示权限位

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

- 若要rwx属性则4+2+1=7;

- 若要rw-属性则4+2=6;

- 若要r-x属性则4+1=5;

所以,如果需要将一个文件添加读、写、执行的权限,下面的两种权限的写法可以达到相同的效果

chmod a=rwx file
chmod 777 file

而下图用了一个例子来给大家演示chmod的具体用法。 原始文件里具有读、写、执行的权限。用 chmod a=rw an.jmx
命令修改权限后,该文件只有读、写权限,没有了执行权限

2. 修改归属组chgrp

在Linux的世界里,文件或目录权限的掌控是通过拥有者及所属群组来管理的。我们可以使用chgrp指令去变更文件与目录的所属群组,设置方式采用群组名称或群组识别码。

使用方法:chgrp <选项> <组名> <文件>

chgrp nobody demo
修改前:drwxr-xr-x   3 xxxxxx  staff       96  3  6 22:53 demo修改后:drwxr-xr-x   3 xxxxxx  nobody       96  3  6 22:53 demo

可以看的到,使用了chgrp命令后,demo文件从原来的组名staff改为了nobody的组名。如果不是相同的组,需要使用root权限哦!

3. 修改所属人chown:

他可以修改当前用户也可以修改当前组

使用方法:chown <文件所属组>:<群体使用者> <文件>

例如:

chown nobody:wheel demo drwxr-xr-x   3 nobody    wheel       96  3  6 22:53 demo

就是把demo这个目录从原来的用户改为nobody ,所属组从原来的staff 改为了wheel组。

文件查找及查看

find:find比较常用的方法是find ~ -name "*.log" ,
~表示当前用户的主目录,-name表示指定要找的文件名字,他支持正则表达式。-maxdepth 2表示显示目录层级,后面的“2”表示显示两层目录。

例如:

find ~ -name docker -maxdepth 3/Users/anlinger/docker

此条命令就是查找home目录下名字叫docker且目录层级为3级的文件件。

cat:可以打开文件并显示文件中所有的内容

more:more的功能类似于cat 。cat 是将所有的文件内容都显示出来,而more打开文件之后,可以通过空格进行翻页,方便阅读。

使用方法是:进入目录后 + more <文件名>

➜  apache-tomcat-8.5.50 more RUNNING.txt

less:他可以翻页,上下左右都可以滚动,翻到上一页按“b”返回上一页,按“q”退出。搜索用 / 后面加要搜索的内容。

使用方法:进入目录后 + less <文件名>

➜  apache-tomcat-8.5.50 less RUNNING.txt

创建特殊文件

软链:相当于创建一个快捷方式。语法为:ln -s <文件名> <创建软链名>
-s表示创建软链,an.jmx是目标文件。Desktop/an.jmx是在桌面上创建了一个叫 an.jmx
快捷方式文件。这里必须要注意的是:原路径必须要使用绝对路径,软链接可以是相对路径

 ln -s ~/an.jmx Desktop/an.jmx

** 4. 进程类**

如果想查看系统进程,那top、ps这两个命令就可以大显身手了哈~

top命令

它展示的是一个持续的交互式的界面。相当于windows下的资源管理器。可以实时动态的显示系统中进程的资源占用情况

ps命令

它不像top那样,他是一个静态的。ps aux 它显示的页面和top显示的类似。类似的是ps -ef

使用ps命令,可以显示瞬间进程的动态。如下显示:


  PID TTY           TIME CMD50979 ttys000    0:00.28 login -pf anlinger51213 ttys000    0:00.05 sudo -s51214 ttys000    0:06.50 /bin/zsh53227 ttys000    0:00.00 ps

ps aux与 ps -ef 都可以显示所有包含其他使用者的进程,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。


USER               PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMANDxxxxxx           713  12.5  0.0  6595152   8264   ??  S    三09上午 751:17.07 com.docker.hyperxxxxxx           574   3.7  0.1  4789484  25084   ??  S    三09上午 129:31.25 /Applications/Utxxxxxx        27331   3.4  0.5  5274300  86484   ??  S    五04下午   3:23.03 /System/Applicat

** 5. 网络类**

netstat在不同系统有不同的命令,Mac和Linux还是有区别的。可使用:netstat -tlnp

-tlnp 这个参数会列举出你的机器当前开放的端口,‘t’是列举出tcp协议的端口,‘l’是列举出正在开放的端口,‘n’只列举出数字地址,‘p’打印开启端口的程序名称

Mac与Linux是不一致的。在mac下使用 netstat -p tcp -n -a 命令,可正常查看。如下图。

** _6.
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息

posted @ 2022-01-19 16:08  霍格沃兹测试开发学社  阅读(64)  评论(0编辑  收藏  举报