转载请注明出处❤️
作者:测试蔡坨坨
原文链接:caituotuo.top/797ab07d.html
你好,我是测试蔡坨坨。
对于测试同学来说,Linux基本属于必学必会内容,招聘要求中基本都会出现Linux相关字眼,面试也经常被问到,原因很简单,因为现在公司的服务器绝大多数都是Linux,如果你一无所知,很多时候听不懂别人在说什么,自然而然也很难开展工作。
那么对于测试人员来说,Linux在日常工作中有哪些应用场景呢?
- 搭建测试环境 对于测试环境的搭建,稍微具备一定规模的公司,一般是由专门的运维人员进行环境搭建和维护,包括生产环境和测试环境;如果只有几个人的初创公司,都不存在运维这个岗位,那么自然而然就需要测试人员或开发人员来搭建了;有时候需要本地部署测试,因此也可能需要测试人员自己搭建一套环境。
- 查看日志,分析定位Bug
查看日志用的比较多的就是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简介
作者
林纳斯·托瓦兹(Linux Torvalds),著名的电脑程序员、黑客、Linux内核的发明人及该计划的合作者。
“有些人生来就是具有统率百万人的领袖风范;另一些人则是写出颠覆世界的软件而生。唯一一个能同时做到这两者的人,就是托瓦兹。”
美国《时代》周刊对“Linux之父”林纳斯·托瓦兹(Linux Torvalds)给出了极高的评价。甚至,在《时代》周刊根据读者投票评选出的二十世纪100位最重要人物中,林纳斯·托瓦兹(Linux Torvalds)居然排到了第15位,而从20世纪的最后几年就开始霸占全球首富称号的比尔盖茨(微软,Windows)不过才是第17位。
Linux版本
Linux的发行版本其实就是Linux核心(通过uname -a命令可以查看),再加上国外的实用程序组成的一个大软件包而已。
Linux常用的发行版本:
- Ubuntu:Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“Ubuntu”一词(译为乌帮托或乌班图)。
- Red Hat:Red Hat Linux是全世界应用最广泛的Linux之一,Red Hat因其易于安装而闻名,在很大程度上减轻了用户安装程序的负担。
- CentOS:CentOS是Community ENTerprise Operating System的简称,CentOS正是这个Red Hat的克隆版本,CentOS可以像Red Hat一样的构筑Linux系统环境,但不需要向Red Hat付任何的产品和服务费用,同时也得不到任何有偿技术支持和升级服务。
Linux优势
企业部署软件的服务器为什么大多数会选择Linux系统,在我看来主要有以下几个优点:
- Linux系统所执行各种程序的速度是比windows要快很多的。
- 在windows中我们会安装不同杀毒软件来保证计算机不被各种病毒攻击,但在Linux中你可以完全放心,只要有病毒在Linux中运行,不出几个小时Linux的各个版本都会进行更新,因为全世界的程序员都在维护它,因此Linux要比windows安全。
- 在Windows中安装各种软件的时候,很多软件都会需要计算机进行重启才可以进行使用,重启导致客户体验差,但在Linux中根本不需要重启计算机,每安装一种软件都会有相应的服务,只需要使用命令重启软件服务即可。
- Windows太浪费系统资源,但是Linux不会,在Linux系统启动后,内存与CPU消耗的资源非常少,但Windows只要一启动就会占用很大的内存。
- 在Windows中进行编程的时候,我们要安装不同的开发软件之类的,但是在Linux,我们只需要学会一种,vi命令(纯文本的方式)就可以了。
Linux虚拟机
对于想练习Linux命令的同学,首先需要有一台Linux操作系统的虚拟机,提供几种方法:
- 自行购买一台云服务器
- 在线练习Linux命令网站:https://copy.sh/v86/?profile=archlinux
- 在本机上搭建虚拟机(例如通过VMware工具搭建)
需要
VMware安装包
以及搭建好的虚拟机文件
可关注公众号测试蔡坨坨
回复关键词虚拟机
获取。
操作步骤:
- 下载并安装VMware工具
- 下载搭建好的虚拟机文件(centOS7,已安装Java环境及MySQL数据库)
- 打开虚拟机文件
- 开机并打开网络连接,可查看IP地址并通过Xsheel和Xftp工具连接
远程工具
Linux服务器一般都是在远程,因此我们需要通过工具去连接远程服务器,工具也是多种多样,这里推荐Xshell和Xftp。
Linux常用命令
文件和目录的相关命令
- ls命令(list directory) 功能描述:列出指定目录下的文件和文件夹名称。 格式:ls [参数] [目录或文件] 参数含义-a列举目录中的全部文件,包括隐藏文件(开头为 . 的文件为隐藏文件)。-l长数据串列出,列举目录中的细节,包含权限(r/w/x/-)、所有者、组群、大小、创建日期、文件是否是链接等(不包含隐藏文件)。可以使用ll代替ls -l ,表示列出当前路径下的所有文件及文件夹的详细信息。-R递归查询,不仅查看当前目录下所包含的内容,还会把子目录的内容一并查询出来。-al列举目录中的细节,包含权限、所有者、组群、大小、创建日期、文件是否是链接等(含隐藏文件)。-r逆向查询,从后面向前地列举目录中的内容。-s文件大小,以数据块(Linux中自己的一种数据大小的表示形式)的形式做表示。ls -l caituotuo.txt列举文件caituotuo.txt的所有信息,也可以指定目录,例如:ls -l /etc。
- mkdir命令(make directory) 功能描述:创建新目录/文件夹。 格式:mkdir [目录名1] [目录名2] ...(想要一次性创建多个目录可以使用空格隔开) 例如:mkdir caituotuo
参数含义-p直接将所有的目录,包含上一级目录,递归创建起来。例如:mkdir -p ctt1/ctt2/ctt3,再使用ls -R ctt1查看递归目录。
- rmdir命令(remove directory) 功能描述:删除空目录。 格式:rmdir [参数] [目录名1] [目录名2] ... 例如:rmdir caituotuo
参数含义-p删除指定目录,如果这个指定目录被删除后,它所在的父目录为空,也会一并删除。 例如:rmdir -p ctt1/ctt2/ctt3
PS:无法删除成功的原因可能是目录非空或要删除的目录是当前目录。
- cd命令(change directory) 功能描述:切换目录,改变用户所在的目录。 格式:cd [目录名] 例如:cd /etc 绝对路径由根目录/开始写起。例如:cd /root/chs1/chs2/chs3相对路径不是由根目录/写起。例如:已经在/root目录下,直接写cd chs1/chs2/chs3
命令含义cd返回当前用户的主目录。cd ~返回当前用户的主目录。cd ..返回到当前目录的上一级目录。cd ../..返回到当前目录的上两级目录。cd /进入到根目录。
- pwd命令(print work directory) 功能描述:打印用户当前所处的绝对路径。 格式:pwd
- vi命令
功能描述:文本编辑器,生成新文件(文件不存在的时候)或者编辑、查看文件(文件存在),注意:是文件不是文件夹。
格式: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 [文本文件名字] 例如:cat bcbx_csh2
- cp命令(copy) 功能描述:复制文件或目录。 格式:cp [源文件] [目标文件夹路径(推荐使用绝对路径)] 例如:cp bcbx_chs2 chs1
参数含义-r递归持续复制,用来复制文件夹。-f强制复制-v详细:显示文件的复制进度。(相当于复制完成的提示工作)-i互动:如果文件将覆盖目标中的文件,他会提示确认。
- rm命令(remove) 功能描述:用来删除文件或目录。 格式:rm [文件名](会提示“是否删除***文件”,这个命令不能直接删除文件) 例如:rm bcbx_chs2
参数含义-r/R删除文件夹。-f强制删除,没有提示。-rf强制删除文件或文件夹。
- mv命令 功能描述:移动或重命名文件与文件夹。 格式: mv [源文件夹/文件] [目标文件夹/文件](重命名) mv [源文件/文件夹] [目标文件夹](把某个文件或文件夹移动到某个文件夹里面) 例如:mv bcbx_chs chs1
参数含义-i互动:如果选择的文件会覆盖目标中的文件,他会提示确认。-f强制:不提示地移动文件。-v详细:显示文件的移动进度。(相当于移动完成的提示工作)
- find命令 功能描述:在指定文件夹下查找文件或文件夹,并打印绝对路径。(忘记某个文件或者文件夹的位置或名称时使用) 格式:find [路径] -name “文件夹或者文件名字(部分名字加 * , * 为通配符)” 情景命令知道名字全称find / -name "bcbx_chs"只知道名字开头find / -name "bcbx*"只知道名字结尾find / -name "*_chs"知道开头和结尾,忘记中间部分find / -name "bc*hs"
- tar命令 功能描述:压缩和解压文件。 格式: 压缩: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.gztar -jcvf chs.tar.bz2 chs/将chs目录把包成chs.tar.bz2tar -zxvf chs.tar.gz -C opt/ctt将压缩包chs.tar.gz中的文件解压到opt/ctt中tar -jxvf chs.tar.bz2解压缩chs.tar.bz2参数作用-ccreate,打包-xextract,解包-vverbose,显示打包/解包的详细过程-ffile,表示打包输出/解包输入文件-z后缀名为gz-j后缀名为bz2-Cchange to directory DIR,将压缩包中的文件解压到指定位置
- tail命令 功能描述:查看文件结尾的10行。 格式:tail [文件] 例如:tail bcbx_chs2
参数含义-n后面接数字,表示显示几行的意思。-f表示持续侦测后面所接的文件,要等到按下ctrl c退出tail的侦测。
- echo命令 功能描述:在显示屏上回显字符串或者用来查看环境变量的值(相当于打印输出print)。 格式:echo [需要显示的内容] 参数含义>>表示将输出的内容追加到文件的最后一行。>覆盖写。例如:echo 'chstext' >> bcbx_chs2
- touch命令 功能描述:创建文本(但是不能插入内容)。 格式:touch [文本文件名字] 例如:touch bcbx_chs3.txt 可以创建多个文本:touch [名字1] [名字2] [名字3]
系统管理命令
- hostname命令 功能描述:显示主机名称。 参数含义-i显示主机的ip地址。
- clear命令 功能描述:清屏(这个命令将会刷新屏幕,本质上只是让终端显示页向前翻一页,如果向上滚动屏幕,还可以看到之前的操作信息。)
- top命令 功能描述:实时查看当前的进程,动态的,可以看到CPU最近的负载等信息。(相当于Windows的任务管理器)
- ps命令 功能描述:用来显示当前的进程状态。(查看计算机系统中有哪些程序正在执行及执行的情况,用它来查找所有的进程ID) 参数含义-e显示所有进程。-f显示程序间的关系。格式:ps -ef | grep [进程名] 例如:ps -ef | grep nginx(查看nginx进程的状态)
ps -ef 未指定哪个进程则显示所有进程:
选项含义UID用户IDPID进程IDPPID父进程CCPU占用率STIME系统启动时间TTY登入者的终端机位置TIME耗时CMDCOMMAND命令,行为
- kill命令 功能描述:杀掉进程(用来终止一个正在执行中的进程) 格式:kill [进程号] 例如:kill -9 25280 参数含义-9强制杀掉进程
- shutdown命令 功能描述:关机。
- logout命令 功能描述:注销。
- reboot命令 功能描述:重启。
- ping命令 功能描述:确定网络和格外部主机的状态。 格式:ping [地址] 例如:ping www.caituotuo.top
- date命令 功能描述:显示或设置系统当前的时间和日期。 格式: date [参数] [日期/时间] 修改日期:date -s 日期 修改时间:date -s 时间 例如: 修改日期:date -s 2020-11-23 修改时间:date -s 18:19:11 同时修改日期和时间:date -s "2020-11-23 18:19:11"
- ifconfig命令 功能描述:显示网络设备的状态。
用户和用户组管理命令
用户组管理
- cat /etc/group 功能描述:查看用户组。 选项含义组名组名是用户组的名称,右字母或数字构成。与/etc/passwd中的登录名一样,组名不应该重复。口令口令字段存放的是用户组加密后的口令字。一般Linux系统的用户组都没有口令,即这个字段一般为空或x。组标识号组标示号与用户标识类似,也是一个整数,被系统内部用来表示组,别称GID。
- groupadd命令 功能描述:增加用户组。 格式:groupadd [组名] 例如:groupadd chs1zu
- groupmod命令 功能描述:修改用户组。 例如:groupmod -n chs2zu chs1zu(将用户组chs1zu修改为新的用户组chs2zu) 参数含义-n将用户组的名字修改为新名字。
- groupdel命令 功能描述:删除用户组 格式:groupdel [用户组名] 例如:groupdel chs2zu
用户管理
- cat /etc/passwd 功能描述:查看用户。 选项含义用户名代表用户账号的字符串,通常长度不超过8个字符,并且由大小写字母或数字组成,登录名中不能含有冒号(:),因为冒号在这里是分隔符。为了兼容起见,登录名中最好不要包含点字符(.),并且不适用连字符(-)和加号( )打头。口令存放加密后的用户口令字,存放一个特殊的字符,例如x或*,把真正的加密后的用户口令字存放到/etc/shadow文件中。用户标识号是一个整数,系统内部用它来标识用户。一般情况下它与用户名是一 一对应的。组标识号字段记录的是用户所属的用户组。它对应着/etc/group文件中的一条记录。
- useradd命令 功能描述:增加用户。 格式:useradd [用户名] [参数] 例如:useradd chs -c xuesheng -g chs1zu 参数含义-c指定一段注释性描述。-g指定用户所属的用户组。
- usermod命令 功能描述:修改用户。 例如: 修改用户名:usermod -l caihs chs 修改描述:usermod -c bcbxxuesheng caihs 修改用户所属的用户组:usermod -g chs2zu caihs 参数含义-l指定一个新的账号,即将原来的用户名改为新的用户名。-c修改描述。-g修改用户所属的用户组。
- userdel命令 功能描述:删除用户。 格式:userdel [用户名] 例如:userdel chs1
- passwd命令 功能描述:为用户设置密码。 格式:passwd [用户名] 例如:passwd chs
权限相关的命令
- su命令 功能描述:切换用户。(root用户切换到其他用户不需要密码,普通用户切换到root或其他用户需要密码) 格式:su [用户名] 例如:su chs
- chown命令 功能描述:更改文件的拥有者。 格式:chown [用户]:[用户组] 文件 例如:chown chs:chs1zu hh 参数含义-R更改文件夹的拥有者。
- chmod命令 功能描述:改变文件或文件夹的权限。 格式:chmod [三位数字] [文件/文件夹] 例如:chmod 777 hh 权限代号数字代号含义r4读取权限w2写入权限x1执行或切换权限-0不具有任何权限PS:一共有10个字符,第1个字符表示文件类型,后面9个字符表示文件权限,分为三组,每组3个字符,分别代表所属用户权限、同一组的权限、除所属用户和同一组外的其他人权限。 文件类型含义-表示普通文件,普通文件指文本文件和二进制文件,例如:chs、chs.txtd表示文件夹(directory)。l表示符号连接文件,后面会用->打印出它指向的文件。s表示socket文件。p表示管道文件(pipe)。
参数含义-R对目前目录下的所有文件与子目录进行相同的权限变更(以递回的方式逐个变更)
查看磁盘和内存空间命令
- df命令 功能描述:显示指定磁盘文件的可用空间。 PS:重点看使用率,避免使用率超过80%。 类似Windows的C D E F 盘总览。 参数含义-h自动以KB、MB、GB的单位显示,可读性高。
选项含义Filesystem磁盘Size磁盘总大小Used已使用磁盘大小Avail还可用的磁盘大小Use%磁盘使用率Mounted on挂载到哪个目录下
- du命令 功能描述:显示每个文件和目录的磁盘使用空间。 参数含义-h以K(kb)、M(兆)、G为单位显示,可读性高。(最常用)du -sh ./*(当前目录下的所有文件和文件夹的大小)
- free命令 功能描述:显示系统使用和空间的内存情况。 参数含义-k以KB为单位显示内存使用情况。(默认单位I)-m以MB为单位显示内存使用情况。-g以GB为单位显示内存使用情况。
选项含义total总计物理内存的大小used已使用多大free可用有多少shared多个进程共享的内存总额buff/cache磁盘缓存的大小available可回收利用的大小swap指的是一个交换分区或文件
- netstat命令 功能描述: 查看端口。 例如:netstat -ntpl 参数含义-n直接使用IP地址,而不通过域名服务器。-t显示TCP传输协议的连线状况。-p显示正在使用Socket的程序识别码和程序名称。-l显示监控中的服务器的Socket。
其他命令
- ./ :表示当前路径下,比如:./start.sh all
- history:查看历史命令操作记录。
- ls -l /usr > chs:将/usr目录中的文件列表输出到chs文件中。(> 表示重定向输出)
- uname -n:显示主机名称。 参数含义-a/--all显示全部信息-m/--machine显示电脑类型-n/--nodename显示在网络上的主机名称-r/--release显示操作系统的发行编号-s/--sysname显示操作系统名称-v显示操作系统的版本--version显示操作系统版本信息
- who:查询当前登录在系统上的用户信息。 参数含义who -m显示执行该命令的登录用户信息who am i等同于who -mwhoami查询当前有效用户的用户名
- cat /proc/meminfo:查看内存使用情况。(当然也可以使用top、free)
以上就是一些Linux常用命令,Linux命令还有很多,记不住怎么办,记住常用的即可,其他现用现查呗:https://www.linuxcool.com。