软件测试知识——Linux常用命令

软件测试知识——Linux常用命令

  • Linux系统简单介绍
  • 作为测试为什么要学习Linux
  • Linux的远程连接工具
  • Linux 目录结构
  • Linux命令详解——系统信息
  • Linux命令详解——硬件使用情况
  • Linux命令详解——磁盘使用情况:df
  • Linux命令详解——磁盘使用情况:du
  • Linux命令详解——文件和目录的操作
  • Linux命令详解——用户
  • Linux命令详解——搜索命令
  • Linux命令详解——文件权限命令
  • Linux命令详解——进程命令
  • Linux命令详解——网络操作
  • Linux命令详解——解压缩命令
  • Linux命令详解——ssh 连接
  • Linux命令详解——rpm包安装和卸载&源码编译安装

Linux系统简单介绍

Linux简介

Linux是一套免费试用,支持多用户、多任务、支持多线程和多个核心CPU的操作系统。
很多中型,大型及巨型项目都在使用Linux。

Linux的发行版

Linux的发行版就是将Linux(内核)与应用软件做成一个打包,可供用户安装和配置。
目前市面上比较知名的发行版有:Ubuntu,RedHat,CentOS 等等。

/ Windows Linux
收费 收费 开源免费
软件资源 软件资源丰富,但是可能大部分需要购买权限 大部分软件都可以自由获取,同样功能的软件选择较少
技术支持 主要图形化界面 主要是字符模式,命令行界面
稳定性 相对不稳定,易崩溃卡死 更加稳定
安全性 树大招风,更趋于被攻击 发行版本较多,难集中攻击

作为测试为什么要学习Linux

项目分为前端+后端,而后端服务器一般都是Linux系统,作为测试需要:

  • 负责搭建及维护测试环境
  • 负责跟踪及定位Bug

Linux的远程连接工具

服务器一般在公司机房,或者购买的云服务器在宿主机房,为了方便操作,需要对其进行远程连接。
常见的工具:

  • 远程连接工具 : Xshell 、SecureCRT 、Putty
  • 远程传输文件工具 : xftp、filezilla

Linux 目录结构

Linux 的文件系统是采用层级式树状目录结构,在此结构的最上层是根主目录,下层是各种各样的子目录和文件。
理解根目录底下的相关Linux文件目录是非常重要的:

命令 说明
/ Linux文件系统的上层根目录
root 存放 root 用户的相关文件
home 存放普通用户的相关文件
bin 存放常用命令的目录,如 vi ,su,普通用户就可以读取的命令
sbin 要具有一定权限才可以使用命令
etc 存放配置的相关文件
var 存放经常变化的文件,如网络连接的 sock 文件
boot 启动目录,存放引导系统启动的相关文件
usr 安装一个软件的默认目录,相当于 windows 下的 program files
dev 设备文件保存目录
lib 系统库保存目录
mnt 默认挂载光驱和软驱的目录
proc 直接写入内存的,不能直接操作,保存的是内存的挂载点

Linux命令详解——系统信息

  • uname :可显示电脑以及操作系统的相关信息
  • uname -a :显示主机名、内核等系统信息
  • hostname :显示系统主机名
  • hostname -i :显示系统 IP 地址
  • cal :显示本月的日历
  • date : 显示当前时间
  • uptime :显示运行时间
  • whereis xxx :显示 xxx 程序可能的位置
  • which xxx :显示 xxx 命令对应执行的程序

Linux命令详解——硬件使用情况

  • cat/proc/cpuinfo:显示CPU信息
  • cat/proc/meminfo:显示内存信息
  • free:显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存等(KB)
  • free -m:-m 参数表示以MB为单位显示内存使用情况
  • man xxx:显示 xxx 命令的帮助手册信息

小扩展:

1. 查看CPU信息(型号)
cat/proc/cpuinfo |grep name |cut -f2 -d:|uniq -c

2. 查看物理CPU个数
cat/proc/cpuinfo|grep "physical id"|sort|uniq|wc -l

3. 查看每个物理CPU中 croe 的个数(即核数)
cat/proc/cpuinfo|grep "cpu cores"|uniq

4. 查看逻辑CPU的个数
cat/proc/cpuinfo|grep "processor"|wc -l

Linux命令详解——磁盘使用情况:df

出现如 “no space left on device!” 错误时(磁盘空间不足),需要查询磁盘使用情况。

磁盘使用情况:(disk free)

  • df :显示磁盘空间信息
  • df -h :以容易阅读的方式显示磁盘使用情况
  • df -i :显示文件系统上的空闲索引节点(inode)

小扩展:

Inode 译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部分,
一部分是 inode ,另一部分是 Block,Block 是用来存储数据用的。
inode 是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。
inode 为每个文件进行信息索引,索引就有了 inode 的数值。
操作系统根据指令,能通过 inode 值最快的找到相对应的文件。
而服务器的 Block 计算还有剩余,但 inode 已经用满时,在创建新目录或文件时,系统仍然提示磁盘空间不足。

解决问题:删除文件占用多的目录

Linux命令详解——磁盘使用情况:du

磁盘使用情况(disk usage)

  • du :显示目录和文件大小,逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块(1024字节)的情况。若没有给出指定目录,则对当前目录进行统计。
  • du -sh :-s 参数是求得总大小的意思, -h 参数以容易阅读的方式显示文件的大小
  • fdisk -l :显示磁盘和分区信息
  • findmnt :显示当前挂载的文件系统列表,以树状的格式显示
  • mount device-path mount-point :挂载设备到目录(光盘iso,移动硬盘,U盘,NFS文件共享)

小扩展:

一个文件创建,就新生成了一个 inode 节点,且 inode 节点的引用计数为1。
当文件被一个进程打开,则在内存中缓存建立此 inode 节点缓存,且其引用计数加1。
一个文件可以被多次打开,创建多个文件描述符,但对应的 inode 节点只有一个,对应的磁盘存储只有一个,
只是引用计数每打开一次加1。

当文件被 rm ,目录项被删除,如果其对应的 inode 节点的引用计数为0,则删除对应的 、inode 节点,
其对应磁盘可被再申请;
但如果此文件被其他进程打开,则其对应的 inode 节点的引用计数不为0,则不会删除对应的 inode 节点,
其对应磁盘不能被再申请;
只有当前文件被所有使用进程 close 后,系统才会删除对应的 inode 节点,其对应磁盘可被再申请。

一个被某进程打开的文件被 rm 后,其目录项被删除了,在 du 命令下是不能被统计到,而其 inode 没有被删除,
在 df 命令下是可以被统计到的,这就是在 du 和 df 存在差别的原因。

Linux命令详解——文件和目录的操作

  • ls :显示当前工作目录所含文件及子目录 (list)
  • ls -al :-l (简写成 ll ) 详细信息; -a 显示普通文件和隐藏文件的详细信息
  • pwd :显示当前工作目录的绝对路径 (print working directory)
  • cd xxx :转到 xxx 目录
  • cd . . :转到上一级目录
  • cd :转到当前用户的家目录
  • mkdir dir1 :创建 dir1 目录
  • rm file1 :删除 file1 文件
  • rm -r dir1 :删除 dir1 目录及内含文件
  • rm -r file1 :强制删除 file1 文件
  • rm -rf dir1 :强制删除 dir1 目录及内含文件

复制

  • cp file1 file2 :复制 file1 并命名为 file2 ,若 file2 存在则内容覆盖(需要确认)
  • cp -r dir1 dir2 :递归拷贝 dir1 并命名为 dir2 ,若 dir2 存在则复制 dir1 目录中文件到 dir2

移动

  • mv file1 file2 :将file1重命名为file2,若file2存在则内容覆盖

软链接

  • ln -s file1 link :创建file1文件的软链接

新建文件

  • touch file1 :file1不存在时创建file1;若存在,则修改文件的时间属性为当前时间

查看文件

  • cat file1 > file2 :将file1的文件内容输入到file2中
  • more file1 :按页查看file1文件内容,从前向后翻看文件(空格-一行行,空白键-一页页)
  • less file1 :按页查看file1文件内容,可往前往后翻看文件(上下键) -q 退出
  • head -n 5 file1 :显示file1文件的前5行
  • tail -n 5 file1 :显示file1文件的后5行
  • tail -f file1 :实时显示file1文件最新增加内容
  • wc/path/file :输出file文件的行数,单词书和字节数

Linux命令详解——用户

查看

  • whoami :显示当前登录用户
  • w :用来查看登陆者的信息及他们的行为

添加

  • groupadd admin :添加admin用户组(cat/etc/group)
  • adduser tom :添加一个tom用户(cat/etc/passwd)
  • passwd tom :修改tom用户密码

切换 switch user

  • su tom :切换到tom用户

删除

  • userdel tom :删除tom用户

Linux命令详解——搜索命令

在文件中查找内容:

  • grep “被查找的字符串” files :在文件中搜索特定的字符串并打印该行
  • grep -r “被查找的字符串” dir :在目录中递归搜索特定字符串并打印
  • xxx | grep “被查找的字符串” :在xxx命令的输出结果中查找匹配的信息

查找文件:

  • find/home -name “index*” :在/home目录中查找以 “index” 开头的文件名 == * 匹配所有
  • find/home -size + 10000k :在/home 目录中查找大于10000k的文件

Linux命令详解——文件权限命令

  • chmod xxx file :修改文件权限属性
    -rw-r–r--
    普通文件 |文件主| 组用户 |其他用户

      横线代表空许可。r代表只读,w代表写,x代表可执行。
      注意这里共有10个位置。
      第一个字符指定了文件类型。
      在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是d,表示是一个目录。
      第2、3、4字符表示属主权限;第5、6、7字符表示属组权限;最后三个字符表示其他用户权限。
    
  • chmod 777 file :修改文件权限为所有用户可读可写可执行,其他人可读可执行

  • chmod owner-user file_name :修改该文件所属用户

  • chmod owner-user:owner-group file_name :更改文件的所属用户和所属组

  • chmod owner-user:owner-group directory :更改目录的所属用户和所属组

Linux命令详解——进程命令

查看进程

  • ps :显示当前活动的进程
  • ps aux :显示详细进程信息
  • ps aux | grep “tomcat” :搜索进程 tomcat 的信息
  • ps -ef | grep “tomcat” :用标准的格式显示 tomcat 的进程信息

杀死进程

  • kill pid :杀掉进程 id 为 xxx 的进程
  • killall proc :杀死所有名称为 proc 的进程

  • top :用于实时显示所有进程的状态

  • bg :将一个在后台暂停的命令调度到后台继续运行

  • fg :将后台中的命令调至前台继续运行

      扩展:
    
      1. ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停
      2. 在运行的指令末尾添加“&”可以让命令在后台运行
    
  • pgrep ssh :获取ssh 进程的进程id

  • pstree :将所有进程以树状图显示

Linux命令详解——网络操作

  • ifconfig :显示网络设备信息
  • IP addr show :显示网卡配置信息
  • ping host :ping 主机 ---- 确定网络通畅---- ctrl + C

  • whois domain :获取域名信息 ===== yum install -y whois
  • dig domain :获取域名的DNS信息 -+short 展示精简结果
  • dig -x host :反向查找主机 PTR

  • hostname -i :获取本地IP地址

  • wget file_url :下载一个文件

  • wget -c file_url :断点续传下载文件

  • wget -r file_url :从 url 一次下载文件

      -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,
      wget 也会把别的网站的东西下载下来,所以要加上 -np 这个参数,表示不下载别的站点的链接。
    

  • netstat -apn :查看所有进程和所有端口的使用情况
  • netstat -anp | grep 8080 :查看 8080端口的占用情况

Linux命令详解——解压缩命令

tar 命令提示符:

  • -c :打包
  • -t :内容目录
  • -x :解压
  • -z :使用 zip/gzip 压缩
  • -v :显示详细信息
  • -f :指定文件

  • tar -cf xxx.tar files :把文件打包成 xxx.tar
  • tar -xf xxx.tar :在当前目录下解压 xxx.tar 文件
  • tar -tf xxx.tar :显示tar文件的内容
  • tar -zcvf xxx.tar.gz source-filder :从源文件夹创建 tar.gz 格式的压缩归档文件
  • tar -zxvf xxx.tar.gz :在当前目录解压 xxx.tar.gz 文件,并显示解压过程

  • gzip xxx :压缩 xxx 文件并命名成 xxx.gz
  • gzip -d xxx.gz :解压 xxx.gz 文件 ---------- decompress

Linux命令详解——ssh 连接

  • ssh user@host :使用user连接host主机

  • ssh -p port user@host :使用指定端口和指定用户连接主机

  • ssh -D port user@host :绑定本地端口,通过ssh 连接和传送数据到远程主机

      SSH 会建立一个 socks5 服务,去监听本地的8080端口。
      一旦有数据传向8080端口,通过本地 socks5 代理的数据会通过 ssh 链接发往远程主机。
    
  • ssh host :通过 ssh 默认端口22安全连接到主机,默认root

Linux命令详解——rpm包安装和卸载&源码编译安装

rpm包安装和卸载:

RPM 是RedHat Package Manager (RedHat软件包管理工具)的缩写,类似 windows 的 setup.exe 。

  • rpm -i xxx.rpm :安装一个 rpm 包
  • rpm -e pkg_name :卸载一个 rpm 包

源码编译安装: 压缩包、源码包–安装

  • ./configure :生成Makefile,为下一步的编译做准备 (shell)
  • make :编译程序(用到Makefile 文件)
  • make install :安装程序(也从Makefile 中读取指令,安装到指定的位置)
  • make clean :清除编译痕迹

你可能感兴趣的:(linux)