测试人生 / 这可能是全网Linux 总结得最全的...

2315 篇文章 32 订阅
1785 篇文章 16 订阅

1. Linux安装

因为图太多了,转载一篇从虚拟机 vmware 配置到 centos7 详细安装教程

https://www.cnblogs.com/wcwen1990/p/7630545.html

2.linux常用命令

2.1 常见目录

在这里插入图片描述

2.2 命令基本格式

2.2.1 命令提示符

 [root@xiaoming ~]#

root 当前登录用户

localhost 主机名
当前工作目录,默认是当前用户的家目录,root就是/root,普通用户是 /home/用户名

提示符 超级用户是 #,普通用户是$

2.2.2 命令格式

命令 [选项] [参数]

当有多个选项时,可以写在一起

一般参数有简化和完整写法两种 -a 与 --all等效

2.2.3 ls

查询目录中的内容

ls [选项] [文件或者目录]

选项

-a 显示所有文件,包括隐藏文件

-l 显示详细信息

-d 查看目录本身的属性而非子文件 ls /etc/

-h 人性化的方式显示文件大小

-i 显示inode,也就是i节点,每个节点都有ID号

默认当前目录下的文件列表

-l

显示详细信息

 drwxr-xr-x .  1 root  root   800 Sep 16 00:19 logs

在这里插入图片描述

文件类型和权限

rw-r--r--

文件类型 - 文件、d 目录、l 软链接文件

u(所有者)、g(所属组)、o(其他人)

r(read) 读取、w(write) 写入、x(execute) 执行

2.3 文件处理命令

2.3.1 mkdir

建立目录 make directory

mkdir -p [目录名]

-p 递归创建

2.3.2 cd

切换所在目录 change directory

cd [目录]

上次目录
家目录

家目录

. 当前目录

… 上级目录

相对路径是参照当前所在目录

绝对路径是从根目录开始

按TAB键可以补全命令和目录

2.3.3 pwd

显示当前目录 pwd

2.3.4 rmdir

删除目录 remove empty directory

rmdir [目录名]

2.3.5 rm

删除文件或者目录 remove

rm [文件或者目录]

-r 删除目录

-f 强制删除

rm -rf 文件或者目录] 递归强制删除所有目录

2.3.6 cp

copy 复制命令

copy [源文件或者目录] [目标文件]

-r 复制目录,默认是复制文件

-p 连带文件属性复制

-d 若源文件是链接文件,则复制连接属性

-a 相当于 -rpd

2.3.7 mv

移动文件或者改名 move

mv [源文件或者目录] [目标文件]

2.3.8 ln

链接命令,生成链接文件 link

2.3.8.1 硬链接特征

拥有相同的i节点和存储block块,可以看作是同一个文件

可以通过i节点访问

不能跨分区

不能针对目录使用

一般不使用

2.3.8.2 软链接特征

ln -s [源文件] [目标文件]

-s 创建软链接
类似Windows快捷方式

软链接拥有自己的i节点和Block块,但是数据块中只保存源文件的文件名和i节点号,并没有实际的文件数据

lrwxrwxrwx l 软链接 软链接的文件权限都是 777

修改任意一个文件,另一个都会改变

删除源文件,软链接不能使用

软链接源文件必须写绝对路径

2.4 文件搜索命令

2.4.1 locate

在后台数据库中按文件名搜索,速度比较快

数据保存在/var/lib/mlocate后台数据库,每天更新一次

可以updatedb命令立刻更新数据库

只能搜索文件名

/etc/updatedb.conf

建立索引的配置文件

PRUNE_BIND_MOUNTS = “yes” 全部生效,开启搜索限制

PRUNEFS 不搜索的文件系统

PRUNENAMES 忽略的文件类型

PRUNEPATHS 忽略的路径 /tmp

2.4.2 whereis

搜索命令所在路径以及帮助文档所在位置

whereis 命令名whereis ls

-b 只查找可执行文件

-m 只查找帮助文件

2.4.3 which

可以看到别名 which ls

能看到的都是外部安装的命令

无法查看Shell自带的命令,如 which cd

2.4.4 环境变量

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

定义的是系统搜索命令的路径

echo $PATH

2.4.5 find

文件搜索命令

find [搜索范围] [搜索条件]

2.4.5.1 按名称搜索

避免大范围的搜索,会非常消耗系统资源

find / -name aaa.log

2.4.5.2 通配符

find是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

通配符

  • 匹配任意内容

? 匹配任意一个字符

[] 匹配任意一个中括号内的字符

 find . -name "ab[cdef]"

2.4.5.3 -i

不区分大小写

 find / -iname A.log

2.4.5.4 -user

按所有者进行搜索

find /root -user root 
find /root -nouser

2.4.5.5 按时间搜索

 find /nginx/access.log -mtime +5

在这里插入图片描述

2.4.5.6 按大小搜索

k小写,M大写

 find . -size 100k

在这里插入图片描述

2.4.5.7 按i节点搜索

 find . -inum 123456

2.4.5.8 综合应用

 find /tmp -size +10k -a -size -20k

查找/etc目录下,大于10KB并且小于20KB的文件

-a and 逻辑与,两个条件都满足

-o or 逻辑或,两个条件满足一个就可以

 find /tmp -size +10k -a -size -20k -exec ls -lh {} ;

exec 对上个命令的结果进行操作

2.4.5.9 grep

在文件当中匹配符合条件的字符串

grep “10” access.log

-i 忽略大小写

-v 排除指定字符串

find命令,在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配

grep命令 在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配

2.5 帮助命令

2.5.1 基本用法

man 命令 获取指定命令的帮助

man ls 查看ls的帮助

man -f ls
whatis ls
man 1 ls
man 1p ls

2.5.2 关键字搜索

 man -k passwd

2.5.3 shell 内部帮助

whereis

找到就是外部,找不到就是内部

help cd

2.6 压缩与解压缩命令

.zip .gz .bz2 .tar.gz .tar.bz2

2.6.1 zip格式

压缩文件 zip 压缩文件名 源文件

压缩目录 zip -r 压缩文件名 源目录

解压 unzip 压缩文件名

mkdir book
touch book/1.txt
touch book/2.txt
zip -r book.zip book
unzip book.zip
2.6.2 gzip

在这里插入图片描述

bzip2 不能压缩目录

2.6.4 tar

打包命令

tar -cvf 打包文件名 源文件

-c 打包

-v 显示过程

-f 指定打包后的文件名

tar -cvf book.tar book
gzip book.tar
bzip2 book.tar

x 解打包

 tar -xvf book.tar

2.6.4 压缩格式

压缩

tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg 

tar –czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz 

tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2 

tar –cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z 

rar a jpg.rar *.jpg //rar格式的压缩,需要先下载rar for linux 

zip jpg.zip *.jpg //zip格式的压缩,需要先下载zip for linux

解压

tar –xvf file.tar //解压 tar包 

tar -xzvf file.tar.gz //解压tar.gz

tar -xjvf file.tar.bz2 //解压 tar.bz2 

tar –xZvf file.tar.Z //解压tar.Z 

unrar e file.rar //解压rar 

unzip file.zip //解压zip

2.7 关机和重启命令

2.7.1 shutdown

shutdown 关机命令

-c 取消前一个关机命令

-h 关机

-r 重启

shutdown -r 06:00
shutdown -c

2.7.2 init

关机

 init 0

重启

 init 6

系统的运行级别

0 关机

1 但用户

2 不 完全多用户,不包含NFS服务

3 完全多用户

4 未分配

5 图形界面

6 重启

2.7.3 logout

退出登录

logout

2.9 查看登录用户信息

2.9.1 w

查看登录用户信息

USER 登录的用户名

TTY 登录的终端 tty1 本地终端 pts/0远程终端

FROM 登录的IP

LOGIN 登录时间

IDLE 用户闲置时间

JCPU 该终端所有进程占用的时间

PCPU 当前进程所占用的时间

WHAT 正在执行的命令

2.9.2 who

查看登录用户信息

USER 登录的用户名

TTY 登录的终端 tty1 本地终端 pts/0远程终端

LOGIN 登录时间(登录的IP)

2.9.3 last

查看当前登录和过去登录的用户信息 默认读取 /var/log/wtmp 文件

用户名

登录终端

登录IP

登录时间

退出时间(在线时间)

2.9.4 lastlog

查看所有用户的最后一次登录时间

用户名

登录终端

登录IP

最后一次登录时间

3. shell

shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序

用户可以用Shell来启动、挂起、停止或者编写一些程序

Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。

Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

3.1 查看支持的shell

/etc/shells

3.2 echo

输出命令

–e 支持反斜线控制的字符转换

在这里插入图片描述

3.3 编写执行shell

!/bin/bash
echo -e "\e[1;34m hello world \e[0m"

赋予执行权限,直接运行

chmod 755 hello.sh
./hello.sh

通过Bash调用执行脚本

 bash hello.sh

3.4 别名

命令别名 == 小名

临时生效

alias

alias rm=“rm -i”

写入环境变量配置文件 vi ~/.bashrc

source ~/.bashrc

unalias 别名 删除别名

3.5 命令的生效顺序

绝对路径或者相对路径

别名

bash内部命令

按照$PATH环境变量定义的目录查找顺序找到的第一个命令

3.6 命令快捷键

在这里插入图片描述

3.7 历史命令

history [选项] [历史命令保存文件]

选项

-c 清空历史命令

-w 把缓存中的历史命令写入历史命令保存文件 ~/.bash_history

默认保存1000条 /etc/profile HISSIZE=10000

3.8 调用

使用上下箭头调用以前的历史命令

使用 !n 重复执行第n条历史命令

使用 !! 重复执行上一条命令

使用 !字符 重复执行最后一条以该字符串开头的命令

3.9 管道符号

3.9.1 多命令顺序执行

(1) ; 分号,没有任何逻辑关系的连接符。当多个命令用分号连接时,各命令之间的执行成功与否彼此没有任何影响,都会一条一条执行下去。

(2) || 逻辑或,当用此连接符连接多个命令时,前面的命令执行成功,则后面的命令不会执行。前面的命令执行失败,后面的命令才会执行。

(3) && 逻辑与,当用此连接符连接多个命令时,前面的命令执行成功,才会执行后面的命令,前面的命令执行失败,后面的命令不会执行,与 || 正好相反。

(4) | 管道符,当用此连接符连接多个命令时,前面命令执行的正确输出,会交给后面的命令继续处理。若前面的命令执行失败,则会报错,若后面的命令无法处理前面命令的输出,也会报错。

chmod 755 hello.sh
./hello.sh

3.9.2 管道符号

命令1的正确输出会作为命令2的操作对象

命令1|命令2

ls /etc/ | more
netstat -an | grep ESTABLISHED | wc -l

3.9.3 通配符

匹配文件名和目录名 |通配符|作用| |:----|:----| |?|匹配一个任意字符| |*|匹配0个或任意字符,也就是可以匹配任意内容| |[]|匹配中括号中任意一个字符| |[-]|匹配中括号中任意一个字符,-代表范围| |[^]|匹配不是中括号中的一个字符|

3.9.4 其它符号

在这里插入图片描述

-  a=`ls`
-  b=$(ls)

4. vi 编辑器

VI visual interface

可视化接口

类似与windows中的记事本

vim支持多级撤销

跨平台

语法高亮

支持图形界面

4.1 操作模式

:w 保存

:q 退出

:! 强制保存

:ls 列出所有的文件

:n 下一个

:N 上一个

:15 跳转到指定行

/xxx 从光标位置开始向后搜索 xxx 字符串

?xxx 从光标位置开始向前搜索

5. 用户和用户组

使用操作系统的人都是用户

用户组是具有相同系统权限的一组用户

5.1 用户组

5.1.1 /etc/group

/etc/group 存储当前系统中所有用户组信息

group❌123:abc,def

组名称:组密码占位符:组编号:组中用户名列表

root 组编号为0

1-499系统预留的编号 预留给安装的软件和服务的

用户手动创建的用户组从500开始

组密码占位符都是x

5.1.2 /etc/gshadow

存放当前系统中用户组的密码信息

和group中的记录一一对应

Group: * : :abc

组名称 组密码 组管理者 组中用户名

5.1.3 /etc/passwd

存储当前系统中所有用户的信息

user❌123:456:xxxxx:/home/user:/bin/bash

用户名:密码占位符:用户编号: 用户注释信息:用户主目录:shell类型

5.1.4 /etc/shadow

存放当前系统中所有用户的密码信息

user:xxx:::::::

用户名:密码:

6. 用户操作

添加组

 groupadd student

修改组名称

 groupmod -n stu student

修改组编号

 groupmod -g 111 stu

添加分组并指定编号

 groupadd -g 222 teacher

删除分组

 groupdel 222

添加分组

 groupadd teacher

为用户指定所属组

 useradd -g teacher zhangsan

为用户指定所属组

 useradd -g teacher lisi

为用户指定工作目录

 useradd -d /home/zhangsan zhangsan

指定注释

 usermod -c iamateacher zhangsan

修改用户名

 usermod -l zhangsan zhangsan2

指定文件夹

 usermod -d /home/zhangsan2 zhangsan2

修改用户所属组

 usermod -g stu zhangsan2

删除用户

 userdel zhangsan2

删除所属文件夹

 userdel -r lisi

7. 用户命令

显示登录的用户名

 whoami

显示指定用户信息,包括用户编号,用户名 主要组的编号及名称,附属组列表

 id zhangsan  

显示 zhangsan 用户所在的所有组

 groups zhangsan

显示用户详细资料

 finger zhangsan  

8. 附录

8.1 系统启动

8.1.1 BIOS

计算机通电后,第一件事就是读取刷入ROM芯片的开机程序,这个程序叫做(Basic Input/Output System)

8.1.2 硬件自检

BIOS程序首先检查,计算机硬件能否满足运行的基本条件,这叫做"硬件自检"(Power-On Self-Test)

如果硬件出现问题,主板会发出不同含义的蜂鸣,启动中止。如果没有问题,屏幕就会显示出CPU、内存、硬盘等信息。

8.1.3 启动顺序

硬件自检完成后,BIOS把控制权转交给下一阶段的启动程序。

这时,BIOS需要知道,"下一阶段的启动程序"具体存放在哪一个设备

BIOS需要有一个外部储存设备的排序,排在前面的设备就是优先转交控制权的设备。这种排序叫做"启动顺序"(Boot Sequence)

BIOS按照"启动顺序",把控制权转交给排在第一位的储存设备。

这时,计算机读取该设备的第一个扇区,也就是读取最前面的512个字节。如果这512个字节的最后两个字节是0x55和0xAA,表明这个设备可以用于启动;如果不是,表明设备不能用于启动,控制权于是被转交给"启动顺序"中的下一个设备。

这最前面的512个字节,就叫做"主引导记录"(Master boot record,缩写为MBR)

8.1.4 主引导记录的结构

"主引导记录"只有512个字节,放不了太多东西。它的主要作用是,告诉计算机到硬盘的哪一个位置去找操作系统。

(1) 第1-446字节:是用来记录系统的启动信息的,调用操作系统的机器码

(2) 第447-510字节(64个字节):分区表(Partition table),分区表的作用,是将硬盘分成若干个区

(3) 第511-512字节:主引导记录签名(0x55和0xAA)

8.1.5 分区表

磁盘分区是使用分区编辑器在磁盘上划分几个逻辑部分

磁盘一旦划分成多个分区,不同类的目录与文件可以存储进不同的分区内

"主引导记录"因此必须知道将控制权转交给哪个区

分区表的长度只有64个字节,里面又分成四项,每项16个字节。所以,一个硬盘最多只能分四个一级分区,又叫做"主分区"

(1) 第1个字节:如果为0x80,就表示该主分区是激活分区,控制权要转交给这个分区。四个主分区里面只能有一个是激活的。

(2) 第2-4个字节:主分区第一个扇区的物理位置(柱面、磁头、扇区号等等)。

(3) 第5个字节:主分区类型,比如FAT32、NTFS等。

(4) 第6-8个字节:主分区最后一个扇区的物理位置。

(5) 第9-12字节:该主分区第一个扇区的逻辑地址。

(6) 第13-16字节:主分区的扇区总数。

8.1.6 硬盘启动

计算机的控制权就要转交给硬盘的某个分区了

四个主分区里面,只有一个是激活的。计算机会读取激活分区的第一个扇区,叫做"卷引导记录"(Volume boot record,缩写为VBR)

8.1.7 操作系统

控制权转交给操作系统后,操作系统的内核首先被载入内存。

以Linux系统为例,先载入/boot目录下面的kernel。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代

然后,init线程加载系统的各个模块,比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,等待用户输入用户名和密码。

软件测试工程师自学教程:

这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】

接口性能测试 — 软件测试人必会618实战场景分析

软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.

美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看

测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路

软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

Jmeter实战讲解案例 — 软件测试人必会

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值