学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
Python实战微信订餐小程序 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
Python量化交易实战 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
转载请注明出处❤️
作者:测试蔡坨坨
原文链接:caituotuo.top/797ab07d.html
你好,我是测试蔡坨坨。
对于测试同学来说,Linux基本属于必学必会内容,招聘要求中基本都会出现Linux相关字眼,面试也经常被问到,原因很简单,因为现在公司的服务器绝大多数都是Linux,如果你一无所知,很多时候听不懂别人在说什么,自然而然也很难开展工作。
那么对于测试人员来说,Linux在日常工作中有哪些应用场景呢?
对于测试环境的搭建,稍微具备一定规模的公司,一般是由专门的运维人员进行环境搭建和维护,包括生产环境和测试环境;如果只有几个人的初创公司,都不存在运维这个岗位,那么自然而然就需要测试人员或开发人员来搭建了;有时候需要本地部署测试,因此也可能需要测试人员自己搭建一套环境。
查看日志用的比较多的就是tail和grep这两个命令,前者是动态查找,后者是精确查找。
先说一下tail动态查找,一般格式为tail -f -n
,-f 表示持续侦测,实时请求一下页面或者接口就会刷新的日志出来,比如tail -f logs/catalina.out,要等到按下ctrl+c
才能退出tail的侦测,-n 这里的n需要替换成具体的数字,表示显示几行的意思,如tail -5 caituotuo.log就表示查看末尾5行。
再说一下grep精确查找,一般是根据开发代码中打印的关键字信息去精确查找日志,比如关键字是caituotuo,就可以使用grep caituotuo test.log进行查找,对于关键字是什么,日志文件名是什么,以及去哪个服务器里面查找等问题如果不清楚可以问下开发同学。现在一般都是微服务架构,不同的服务处理不同的业务,可能就会有多类日志文件,比如前台日志、后台日志、缓存日志等,每类日志可能还会根据时间进行分别存储,比如按日生成一份日志文件2022-9-17.log、2022-9-18.log,不同公司可能不太一样,但是方式都是大同小异。
监控CPU会用到top命令;监控内存会用到free命令如free /proc/meminfo;监控磁盘会用到df、du命令;监控网络会用到netstat命令,如netstat -ntpl。
同时监控以上四个资源可以用到vmstat或dstat,也可以用可视化工具nmon对操作系统硬件资源进行监控。
比如:修改Tomcat端口号 vi server.xml
以上说了这么多,可见测试人员具备Linux技能是十分重要的,下面就来介绍一下Linux以及一些常用命令。
林纳斯·托瓦兹(Linux Torvalds),著名的电脑程序员、黑客、Linux内核的发明人及该计划的合作者。
“有些人生来就是具有统率百万人的领袖风范;另一些人则是写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是托瓦兹。”
美国《时代》周刊对“Linux之父”林纳斯·托瓦兹(Linux Torvalds)给出了极高的评价。甚至,在《时代》周刊根据读者投票评选出的二十世纪100位最重要人物中,林纳斯·托瓦兹(Linux Torvalds)居然排到了第15位,而从20世纪的最后几年就开始霸占全球首富称号的比尔盖茨(微软,Windows)不过才是第17位。
Linux的发行版本其实就是Linux核心(通过uname -a命令可以查看),再加上国外的实用程序组成的一个大软件包而已。
Linux常用的发行版本:
企业部署软件的服务器为什么大多数会选择Linux系统,在我看来主要有以下几个优点:
对于想练习Linux命令的同学,首先需要有一台Linux操作系统的虚拟机,提供几种方法:
需要VMware安装包
以及搭建好的虚拟机文件
可关注公众号测试蔡坨坨
回复关键词虚拟机
获取。
操作步骤:
1. 下载并安装VMware工具
![](https://caituotuo.top/my-img/202209171240415.png)
2. 下载搭建好的虚拟机文件(centOS7,已安装Java环境及MySQL数据库)
![](https://caituotuo.top/my-img/202209171545425.png)
3. 打开虚拟机文件
![](https://caituotuo.top/my-img/202209171547265.png)
4. 开机并打开网络连接,可查看IP地址并通过Xsheel和Xftp工具连接
![](https://caituotuo.top/my-img/202209171542539.png)
![](https://caituotuo.top/my-img/202209171249147.png)
![](https://caituotuo.top/my-img/202209171251161.png)
![](https://caituotuo.top/my-img/202209171525760.png)
Linux服务器一般都是在远程,因此我们需要通过工具去连接远程服务器,工具也是多种多样,这里推荐Xshell和Xftp。
功能描述:列出指定目录下的文件和文件夹名称。
格式:ls [参数] [目录或文件]
参数 | 含义 |
---|---|
-a | 列举目录中的全部文件,包括隐藏文件(开头为 . 的文件为隐藏文件)。 |
-l | 长数据串列出,列举目录中的细节,包含权限(r/w/x/-)、所有者、组群、大小、创建日期、文件是否是链接等(不包含隐藏文件)。可以使用ll代替ls -l ,表示列出当前路径下的所有文件及文件夹的详细信息。 |
-R | 递归查询,不仅查看当前目录下所包含的内容,还会把子目录的内容一并查询出来。 |
-al | 列举目录中的细节,包含权限、所有者、组群、大小、创建日期、文件是否是链接等(含隐藏文件)。 |
-r | 逆向查询,从后面向前地列举目录中的内容。 |
-s | 文件大小,以数据块(Linux中自己的一种数据大小的表示形式)的形式做表示。 |
ls -l caituotuo.txt | 列举文件caituotuo.txt的所有信息,也可以指定目录,例如:ls -l /etc。 |
功能描述:创建新目录/文件夹。
格式:mkdir [目录名1] [目录名2] …(想要一次性创建多个目录可以使用空格隔开)
例如:mkdir caituotuo
参数 | 含义 |
---|---|
-p | 直接将所有的目录,包含上一级目录,递归创建起来。例如:mkdir -p ctt1/ctt2/ctt3,再使用ls -R ctt1查看递归目录。 |
功能描述:删除空目录。
格式:rmdir [参数] [目录名1] [目录名2] …
例如:rmdir caituotuo
参数 | 含义 |
---|---|
-p | 删除指定目录,如果这个指定目录被删除后,它所在的父目录为空,也会一并删除。 例如:rmdir -p ctt1/ctt2/ctt3 |
PS:无法删除成功的原因可能是目录非空或要删除的目录是当前目录。
功能描述:切换目录,改变用户所在的目录。
格式:cd [目录名]
例如:cd /etc
绝对路径 | 由根目录/开始写起。例如:cd /root/chs1/chs2/chs3 |
---|---|
相对路径 | 不是由根目录/写起。例如:已经在/root目录下,直接写cd chs1/chs2/chs3 |
命令 | 含义 |
---|---|
cd | 返回当前用户的主目录。 |
cd ~ | 返回当前用户的主目录。 |
cd … | 返回到当前目录的上一级目录。 |
cd …/… | 返回到当前目录的上两级目录。 |
cd / | 进入到根目录。 |
功能描述:打印用户当前所处的绝对路径。
格式:pwd
功能描述:文本编辑器,生成新文件(文件不存在的时候)或者编辑、查看文件(文件存在),注意:是文件不是文件夹。
格式:vi [file_name]
例如:vi caituotuo
模式:
+ Insert
编辑模式(点击键盘insert按钮,或者i,a,o)
标志:左下角出现-- INSERT --
+ Esc
命令模式(点击键盘左上角Esc按钮)
标志:左下角-- INSERT -- 消失
命令模式下可执行操作 | 含义 |
---|---|
:w | 保存文件。 |
:wq | 保存并退出。 |
:wq! | 保存并强制退出。 |
:q | 退出。 |
x | 删除一个字符。 |
$ | 光标移到文本的行尾。 |
G | 光标移到文本的末尾。(如果是root用户在操作,跳转到最后一行的第一个字母;其他用户则跳转到最后一个字符) |
gg | 跳转文件第一行。 |
/ | 查找某个字符串,例如:/caituotuo(表示查到当前位置第一次出现caituotuo的地方) |
功能描述:显示文本内容。
格式:cat [文本文件名字]
例如:cat bcbx_csh2
功能描述:复制文件或目录。
格式:cp [源文件] [目标文件夹路径(推荐使用绝对路径)]
例如:cp bcbx_chs2 chs1
参数 | 含义 |
---|---|
-r | 递归持续复制,用来复制文件夹。 |
-f | 强制复制 |
-v | 详细:显示文件的复制进度。(相当于复制完成的提示工作) |
-i | 互动:如果文件将覆盖目标中的文件,他会提示确认。 |
功能描述:用来删除文件或目录。
格式:rm [文件名](会提示“是否删除***文件”,这个命令不能直接删除文件)
例如:rm bcbx_chs2
参数 | 含义 |
---|---|
-r/R | 删除文件夹。 |
-f | 强制删除,没有提示。 |
-rf | 强制删除文件或文件夹。 |
功能描述:移动或重命名文件与文件夹。
格式:
mv [源文件夹/文件] [目标文件夹/文件](重命名)
mv [源文件/文件夹] [目标文件夹](把某个文件或文件夹移动到某个文件夹里面)
例如:mv bcbx_chs chs1
参数 | 含义 |
---|---|
-i | 互动:如果选择的文件会覆盖目标中的文件,他会提示确认。 |
-f | 强制:不提示地移动文件。 |
-v | 详细:显示文件的移动进度。(相当于移动完成的提示工作) |
功能描述:在指定文件夹下查找文件或文件夹,并打印绝对路径。(忘记某个文件或者文件夹的位置或名称时使用)
格式:find [路径] -name “文件夹或者文件名字(部分名字加 * , * 为通配符)”
情景 | 命令 |
---|---|
知道名字全称 | find / -name “bcbx_chs” |
只知道名字开头 | find / -name “bcbx*” |
只知道名字结尾 | find / -name “*_chs” |
知道开头和结尾,忘记中间部分 | find / -name “bc*hs” |
功能描述:压缩和解压文件。
格式:
压缩:tar -cvf [压缩后的包名](建议以.tar结尾,方便识别) [想要压缩的文件]
解压:tar -xvf [压缩包的名字]
例如:
tar -cvf chs.tar bcbx_chs2 bcbx_chs3.txt
tar -xvf chs.tar
命令 | 功能 |
---|---|
tar -zcvf chs.tar.gz chs/ | 将chs目录把包成chs.tar.gz |
tar -jcvf chs.tar.bz2 chs/ | 将chs目录把包成chs.tar.bz2 |
tar -zxvf chs.tar.gz -C opt/ctt | 将压缩包chs.tar.gz中的文件解压到opt/ctt中 |
tar -jxvf chs.tar.bz2 | 解压缩chs.tar.bz2 |
参数 | 作用 |
---|---|
-c | create,打包 |
-x | extract,解包 |
-v | verbose,显示打包/解包的详细过程 |
-f | file,表示打包输出/解包输入文件 |
-z | 后缀名为gz |
-j | 后缀名为bz2 |
-C | change to directory DIR,将压缩包中的文件解压到指定位置 |
功能描述:查看文件结尾的10行。
格式:tail [文件]
例如:tail bcbx_chs2
参数 | 含义 |
---|---|
-n | 后面接数字,表示显示几行的意思。 |
-f | 表示持续侦测后面所接的文件,要等到按下ctrl + c退出tail的侦测。 |
功能描述:在显示屏上回显字符串或者用来查看环境变量的值(相当于打印输出print)。
格式:echo [需要显示的内容]
参数 | 含义 |
---|---|
>> | 表示将输出的内容追加到文件的最后一行。 |
> | 覆盖写。 |
例如:echo ‘chstext’ >> bcbx_chs2
功能描述:创建文本(但是不能插入内容)。
格式:touch [文本文件名字]
例如:touch bcbx_chs3.txt
可以创建多个文本:touch [名字1] [名字2] [名字3]
功能描述:显示主机名称。
参数 | 含义 |
---|---|
-i | 显示主机的ip地址。 |
功能描述:清屏(这个命令将会刷新屏幕,本质上只是让终端显示页向前翻一页,如果向上滚动屏幕,还可以看到之前的操作信息。)
功能描述:实时查看当前的进程,动态的,可以看到CPU最近的负载等信息。(相当于Windows的任务管理器)
功能描述:用来显示当前的进程状态。(查看计算机系统中有哪些程序正在执行及执行的情况,用它来查找所有的进程ID)
参数 | 含义 |
---|---|
-e | 显示所有进程。 |
-f | 显示程序间的关系。 |
格式:ps -ef | grep [进程名]
例如:ps -ef | grep nginx(查看nginx进程的状态)
ps -ef 未指定哪个进程则显示所有进程:
选项 | 含义 |
---|---|
UID | 用户ID |
PID | 进程ID |
PPID | 父进程 |
C | CPU占用率 |
STIME | 系统启动时间 |
TTY | 登入者的终端机位置 |
TIME | 耗时 |
CMD | COMMAND命令,行为 |
功能描述:杀掉进程(用来终止一个正在执行中的进程)
格式:kill [进程号]
例如:kill -9 25280
参数 | 含义 |
---|---|
-9 | 强制杀掉进程 |
功能描述:关机。
功能描述:注销。
功能描述:重启。
功能描述:确定网络和格外部主机的状态。
格式:ping [地址]
例如:ping www.caituotuo.top
功能描述:显示或设置系统当前的时间和日期。
格式:
date [参数] [日期/时间]
修改日期:date -s 日期
修改时间:date -s 时间
例如:
修改日期:date -s 2020-11-23
修改时间:date -s 18:19:11
同时修改日期和时间:date -s “2020-11-23 18:19:11”
功能描述:显示网络设备的状态。
功能描述:查看用户组。
选项 | 含义 |
---|---|
组名 | 组名是用户组的名称,右字母或数字构成。与/etc/passwd中的登录名一样,组名不应该重复。 |
口令 | 口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空或x。 |
组标识号 | 组标示号与用户标识类似,也是一个整数,被系统内部用来表示组,别称GID。 |
功能描述:增加用户组。
格式:groupadd [组名]
例如:groupadd chs1zu
功能描述:修改用户组。
例如:groupmod -n chs2zu chs1zu(将用户组chs1zu修改为新的用户组chs2zu)
参数 | 含义 |
---|---|
-n | 将用户组的名字修改为新名字。 |
功能描述:删除用户组
格式:groupdel [用户组名]
例如:groupdel chs2zu
功能描述:查看用户。
选项 | 含义 |
---|---|
用户名 | 代表用户账号的字符串,通常长度不超过8个字符,并且由大小写字母或数字组成,登录名中不能含有冒号(,因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不适用连字符(-)和加号(+)打头。 |
口令 | 存放加密后的用户口令字,存放一个特殊的字符,例如x或*,把真正的加密后的用户口令字存放到/etc/shadow文件中。 |
用户标识号 | 是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一 一对应的。 |
组标识号 | 字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。 |
功能描述:增加用户。
格式:useradd [用户名] [参数]
例如:useradd chs -c xuesheng -g chs1zu
参数 | 含义 |
---|---|
-c | 指定一段注释性描述。 |
-g | 指定用户所属的用户组。 |
功能描述:修改用户。
例如:
修改用户名:usermod -l caihs chs
修改描述:usermod -c bcbxxuesheng caihs
修改用户所属的用户组:usermod -g chs2zu caihs
参数 | 含义 |
---|---|
-l | 指定一个新的账号,即将原来的用户名改为新的用户名。 |
-c | 修改描述。 |
-g | 修改用户所属的用户组。 |
功能描述:删除用户。
格式:userdel [用户名]
例如:userdel chs1
功能描述:为用户设置密码。
格式:passwd [用户名]
例如:passwd chs
功能描述:切换用户。(root用户切换到其他用户不需要密码,普通用户切换到root或其他用户需要密码)
格式:su [用户名]
例如:su chs
功能描述:更改文件的拥有者。
格式:chown [用户]:[用户组] 文件
例如:chown chs:chs1zu hh
参数 | 含义 |
---|---|
-R | 更改文件夹的拥有者。 |
功能描述:改变文件或文件夹的权限。
格式:chmod [三位数字] [文件/文件夹]
例如:chmod 777 hh
权限代号 | 数字代号 | 含义 |
---|---|---|
r | 4 | 读取权限 |
w | 2 | 写入权限 |
x | 1 | 执行或切换权限 |
- | 0 | 不具有任何权限 |
PS:一共有10个字符,第1个字符表示文件类型,后面9个字符表示文件权限,分为三组,每组3个字符,分别代表所属用户权限、同一组的权限、除所属用户和同一组外的其他人权限。
文件类型 | 含义 |
---|---|
- | 表示普通文件,普通文件指文本文件和二进制文件,例如:chs、chs.txt |
d | 表示文件夹(directory)。 |
l | 表示符号连接文件,后面会用->打印出它指向的文件。 |
s | 表示socket文件。 |
p | 表示管道文件(pipe)。 |
参数 | 含义 |
---|---|
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(以递回的方式逐个变更) |
功能描述:显示指定磁盘文件的可用空间。
PS:重点看使用率,避免使用率超过80%。
类似Windows的C D E F 盘总览。
参数 | 含义 |
---|---|
-h | 自动以KB、MB、GB的单位显示,可读性高。 |
选项 | 含义 |
---|---|
Filesystem | 磁盘 |
Size | 磁盘总大小 |
Used | 已使用磁盘大小 |
Avail | 还可用的磁盘大小 |
Use% | 磁盘使用率 |
Mounted on | 挂载到哪个目录下 |
功能描述:显示每个文件和目录的磁盘使用空间。
参数 | 含义 |
---|---|
-h | 以K(kb)、M(兆)、G为单位显示,可读性高。(最常用) |
du -sh ./*(当前目录下的所有文件和文件夹的大小)
功能描述:显示系统使用和空间的内存情况。
参数 | 含义 |
---|---|
-k | 以KB为单位显示内存使用情况。(默认单位I) |
-m | 以MB为单位显示内存使用情况。 |
-g | 以GB为单位显示内存使用情况。 |
选项 | 含义 |
---|---|
total | 总计物理内存的大小 |
used | 已使用多大 |
free | 可用有多少 |
shared | 多个进程共享的内存总额 |
buff/cache | 磁盘缓存的大小 |
available | 可回收利用的大小 |
swap | 指的是一个交换分区或文件 |
功能描述: 查看端口。
例如:netstat -ntpl
参数 | 含义 |
---|---|
-n | 直接使用IP地址,而不通过域名服务器。 |
-t | 显示TCP传输协议的连线状况。 |
-p | 显示正在使用Socket的程序识别码和程序名称。 |
-l | 显示监控中的服务器的Socket。 |
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CTIgcKMD-1663607425029)(https://caituotuo.top/my-img/202209171442601.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KF6aJRI2-1663607425029)(https://caituotuo.top/my-img/202209171442051.png)]
参数 | 含义 |
---|---|
-a/–all | 显示全部信息 |
-m/–machine | 显示电脑类型 |
-n/–nodename | 显示在网络上的主机名称 |
-r/–release | 显示操作系统的发行编号 |
-s/–sysname | 显示操作系统名称 |
-v | 显示操作系统的版本 |
–version | 显示操作系统版本信息 |
参数 | 含义 |
---|---|
who -m | 显示执行该命令的登录用户信息 |
who am i | 等同于who -m |
whoami | 查询当前有效用户的用户名 |
以上就是一些Linux常用命令,Linux命令还有很多,记不住怎么办,记住常用的即可,其他现用现查呗:https://www.linuxcool.com。