- 以下是软件测试小白关于对Linux操作系统基础知识的学习记录。
- 学习视频:【小白入门 通俗易懂】韩顺平 一周学会Linux
- 为什么软件测试需要使用Linux操作系统?
- Linux系统以其高稳定性和可靠性著称,能够长时间运行而不出现崩溃和错误。这种稳定性对于软件测试尤为重要,因为它确保了测试环境的一致性和可预测性,减少了因系统不稳定而导致的测试失败和结果偏差。
- Linux的开源特性,测试人员可以自由地查看和修改Linux的代码,并且许多测试工具和框架都是基于Linux平台开发的,这些工具包括Selenium、Apache JMeter等,能够无缝集成进Linux环境,支持功能测试、性能测试和安全测试等多种测试类型。
- Linux提供了丰富且强大的命令行工具,这些工具对于自动化测试至关重要。
目录
一、Linux操作系统介绍
- Linux操作系统是一种自由和开放源代码的操作系统,由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。
- 特点:开源免费、安全稳定、可移植性好、高性能。
- 常见发行版本:Debain、Ubuntu、CentOS、RedHat、Fedora等。
- 应用领域:应用服务器、数据库服务器、网络服务器、虚拟化云计算、嵌入式、个人PC、移动手机等。Linux在服务器领域的应用是最强的。
二、Linux环境搭建
三、Linux目录结构
- Linux的文件系统采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
- 具体目录结构:
- /bin:存放经常使用的命令。
- /sbin:存放系统管理员使用的系统管理程序。
- /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名以用户的账号命名。
- /root:系统管理员的主目录
- /lib:系统开机所需要的最基本的动态连接共享库。
- /lost+found:一般情况下是空的,当系统非法关机后,会存放一些文件。
- /etc:存放所有的系统管理所需要的配置文件和子目录。
- /usr:存放用户安装的应用程序和文件。
- /boot:存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /proc:虚拟目录,系统内存的映射,访问该目录获取系统信息。
- /srv:存放一些服务启动后需要提取的数据。
- /sys:内核相关文件。
- /tmp:存放临时文件。
- /dev:类似于Windows设备管理器,把所有硬件用文件的形式存储。
- /media:Linux自动识别的设备将会挂载到该目录。
- /mnt:让用户临时挂载别的系统文件,将外部存储挂载在/mnt/上,进入该目录就可以查看里面的内容。
- /opt:给主机额外安装软件所存放的目录。
- /usr/local:安装软件的目标目录,一般是通过编译源码方式安装的程序。
- /var:存放着在不断扩充的文件,习惯将经常被修改的文件放在该目录下,包括各种日志文件。
- /selinux:安全子系统,可以控制程序只能访问特定文件,有三种工作模式,可自行设置。
四、Linux远程登录
- 【说明】为什么需要使用Linux远程登录?
- Linux服务器是团队共享的,并且正式上线的项目运行在公网上,所以需要远程登录到Linux服务器进行项目管理或开发。
- 通过远程登录,用户可以在任何地方对Linux系统进行管理和操作,无需直接访问物理机器。
- 【操作】远程登录
- 确定远程登录对象IP地址
ifconfig
- 验证本地端是否与远程端网络是否通畅
ping ‘远程端IP地址’
- 使用远程登录工具
- Xshell
- 确定远程登录对象IP地址
- 【操作】远程上传下载
- 前面步骤不变
- 使用远程上传下载工具
- Xftp
- 【练习】远程登录
- 这里使用Windows10模拟本地端,虚拟机(FsCentOS)模拟Linux服务器。
- 先下载安装远程登录工具(Xshell 8)。官网下载
- 安装完成如下图
- 步骤一:查远程登录对象IP地址;开启虚拟机->桌面右键打开终端->输入命令“ifconfig”;
- 步骤二:验证本地Windows与Linux网络是否通畅;Win+R、cmd打开命令提示符->ping “虚拟机 IP 地址”;
- 步骤三:使用远程登录工具Xshell;打开Xshell->新建会话->名称自定义,主机为登录端IP地址,其他默认->点击确定
- 弹出窗口点击连接->点击一次性接受(下次连接需要输入用户和密码)或接受并保存
- 输入用户名和密码(虚拟机上设置的用户,可以用root或普通用户) ->连接成功
- 【练习】远程上传下载
- 先下载工具(Xftp 8)官网下载
- 连接远程Linux和上面步骤相同
- 连接成功如下图
- 本地上传文件到远程端:直接拖拽或双击要上传的文件;远程端下载到本地:直接拖拽或双击要上传的文件;
五、Linux Vi和Vim编辑器
- 学习文档:菜鸟教程-Linux vi/vim
- 【说明】
- Vi文本编辑器是Linux内置的编辑器,而Vim编辑器可以看做是Vi的增强版本。Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,以及代码补全、编译、错误跳转等方便的编程功能。
- Vi/Vim的三种模式:普通模式(命令模式)、输入模式、命令行模式。
- 三种模式切换命令
- 进入普通模式:
vim "编辑文件名+后缀名"
- 普通模式->输入模式:
i
- 普通模式->命令行模式:
:(英文状态)
- 输入模式->普通模式:
ESC
- 命令行模式->普通模式:
输入命令+Enter
- 退出编辑文件:
wq(保存文件并退出)+Enter
、q(退出)
、q!(强制退出不保存)
- 进入普通模式:
- vim常用命令
- 普通模式:
- 移动到这个档案的第一行:
gg
- 移动到这个档案的最后一行:
G
- 移动到这个档案的第 n 行:
nG
- 删除当前光标所在处的字符:
x
- 剪切当前行:
dd
- 拷贝当前行:
yy
- 粘贴剪贴板内容到光标下方:
p(小写)
- 粘贴剪贴板内容到光标上方:
P(大写)
- 撤销上一次操作:
u
- 重做上一个动作:
Ctrl+r
- 删除光标所在到第一行的所有数据:
d1G
- 移动到这个档案的第一行:
- 输入模式:
- 移动光标到行首/行尾:
Home/End
- 切换光标为输入/替换模式:
Insert
- 移动光标到行首/行尾:
- 命令行模式:
- 保存文件:
w
- 向光标之下寻找一个名称为 word 的字符串:
/word
- 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2:
1,$s/word1/word2/g
或%s/word/word2/g
- 显示行号:
set nu
- 取消行号:
set nonu
- 保存文件:
- 【练习】
- 使用Vim建立一个test.txt文件,插入5条数据:
vim test.txt
->i
-> 插入数据 ->ESC
- 拷贝第四行数据粘贴到第六行:光标移动到第四行 ->
yy
-> 光标移动到第五行 ->p(小写,粘贴剪贴板内容到光标下方)
- 拷贝三行数据到第四行下面:光标移动到第一行 ->
3yy
-> 光标移动到第四行 ->p
- 查找“第四行”关键字:
/第四行
->Enter
->n(按下 n 后,会向下继续搜寻)
;取消高亮::noh
- 查询关键字“第四行”将其替换为“第一行”,删除第三行之前的数据:
:1,$s/第四行/第一行/g
->ESC
-> 光标移动到第三行 ->d1G
六、Linux关机/重启命令
- 语法:
shutdown [-t seconds] [-rkhnc] time [message]
- 使用权限:root用户(系统管理员)
- 【说明】:
- -t seconds : 设定在几秒钟之后进行关机程序。
- -k : 并不会真的关机,只是将警告讯息传送给所有使用者。
- -r : 关机后重新开机。
- -h : 关机后停机。
- -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
- -c : 取消目前已经进行中的关机动作。
- time : 设定关机的时间。
- message : 传送给所有使用者的警告讯息。
- 【练习】
- 立即关机:
shutdown -h now
- 10秒后关机:
shutdown -t 10
- 1分钟后关机并发送告警信息:
shutdown -h 1 "1分钟后将关机"
- 立即重启:
shutdown -r now
- 取消关机:
shutdown -c
- 立即关机:
- 【补充】
- 数据同步:
sync
- Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。
- 关机或重启前先执行sync命令,将内存中的数据同步到磁盘,以防数据丢失。
- 数据同步:
七、Linux运行级别
- Linux允许为不同的场合,分配不同的开机启动程序,这就叫做"运行级别"(runlevel)。也就是说,启动时根据"运行级别",确定要运行哪些程序。
- 【说明】运行级别类型:
- 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动。
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录。
- 运行级别2:多用户工作状态,没有网络服务。
- 运行级别3:多用户工作状态,有网络服务。
- 运行级别4:系统未使用保留给用户。
- 运行级别5:图形界面
- 运行级别6:系统重启。
- 查看运行级别:
systemctl get-default
- multi-user.target(类似于运行级别3)。
- graphical.target(类似于运行级别5)。