当前位置: 首页 > news >正文

软件测试基础(五)—— Liunx基础命令行

目录

一、Liunx介绍     

1、为什么要学习Liunx?

2、 什么是操作系统?

3、 Linux系统

Linux 发⾏版本

 4、Linux文件路径

​         二、远程连接操作

1、常见的远程连接⼯具 

2、远程连接基本步骤 

 2.1、获取服务器 IP 地址

 2.2、远程连接⼯具设置步骤 

3、远程连接注意事项 

3.1、修改连接信息选项

三、Linux常用命令 

1、Linux命令学习原则

2、Linux 命令的基本组成 

3、相对路径和绝对路径 

4、案例1: ls/pwd/cd/touch/mkdir/cp/mv/rm

4.1、Part1: ls/pwd/cd/touch/mkdir

4.2、Part2: cd其他⽤法和mv 

4.3、Part3: cp 复制⽂件和⽂件夹 

4.4、Part4: mv/touch 创建多个⽂件/rm 删除⽂件和⽂件夹及所有⽂件 

5 、案例2: cat/more/grep/重定向/管道符/clear

5.1、Part 1: cat/重定向

5.2、Part2: less/more 分屏显示⽂件内容 

5.3、Part3: grep/|管道符/clear

6、案例3: head/tail/tail -f

6.1、Part 1: head/tail

 6.2、Part2: tail -f 实时查看⽇志⽂件内容

6.3、扩展: 通过 head 和 tail 同时使⽤获取特定⾏和⾏之间信息 

7、案例4: 重启关机/查看系统信息 

7.1、查看系统信息

7.2、重启和关机: 如果账号没有对应权限, 可能⽆法执⾏重启和关机操作 

8、案例5: ps/kill/top 

8.1、Part1: 查看进程信息/⽂件上传操作

8.2、Part2: 运⾏程序/获取进程ID/结束程序 

8.3、Part3: 命令⾏形式的任务管理器

9、案例6: netstat/lsof 

9.1、Part1: netstat 查询端⼝号信息

9.2、Part2: lsof 查询端⼝号信息

10、案例8: which/su/passwd/exit/who 

10.1、which(查看程序位置)

10.2、 su(切换⽤户)

10.3、who(查看⽤户信息)

10.4、exit

11、 chmod 修改⽂件权限

11.1、⽂件权限的解读法

11.2、修改⽂件权限: 数字法[掌握] 

11.3、修改⽂件权限: 字⺟法[了解] 

11.4、⽂件权限修改注意事项

12、案例9: find 查找⽂件

13、案例10: ln -s 链接⽂件 

14、案例11: tar/gzip/zip/unzip 

14.1、Part1: tar/gzip 打包压缩和解压解包

14.2、Part2: zip 压缩/unzip 解压 

15、案例12: vi 命令⾏⽂本编辑器 

四、yum 软件包管理⼯具 

yum常⽤命令


一、Liunx介绍     

1、为什么要学习Liunx?

1、为了将来⼯作中与服务器设备进⾏交互⽽准备的技能(远程连接/命令的使⽤)

2、Linux命令行非常值得学。今天学会的技能,在10年后仍然有用。换言之,命令行是能够历经时间考验的

2、 什么是操作系统?

所有硬件设备组装完成后的第⼀层软件, 能够使⽤户使⽤硬件设备的软件 即为操作系统。

常见操作系统

1. 桌⾯操作系统: Windows/macOS/Linux

2. 移动端操作系统: Android(安卓)/iOS(苹果)

3. 服务器操作系统: Linux/Windows Server

4. 嵌⼊式操作系统: Android(底层是 Linux)

3、 Linux系统

在服务器端最常⻅的操作系统类型。

Linux 发⾏版本

说明: 在原版 Linux 系统的基础上, 额外增加⼀些常⽤软件的操作系统

注释: 类似与原⽣安卓系统和现⾏的华为系统/⼩⽶系统等之间的关系

常见类型:

 4、Linux文件路径

说明: 不同于 Windows 系统的⽂件路径的起点是盘符, Linux 系统的路径起点 是'/'(根⽬录)

注意:

1. / 为根⽬录, 是所有⽂件的路径的起点

2. 根⽬录下的所有第⼀层级的⽂件夹, 均不能随意进⾏修改操作

3. 掌握常⽤⽬录的作⽤即可

4. / 根⽬录, /home 普通⽤户所在⽂件夹, /root 系统管理员所在⽂件夹

5. 其余⽬录, 可以现⽤现查即可

如图 :

 二、远程连接操作

说明: 通过[远程连接⼯具]连接到服务器的操作即为远程连接

条件:

1、 服务器的 IP 地址

2、 服务器的账号和密码

注意: 必须要确保有⽹络连接条件

1、常见的远程连接⼯具 

1. FinalShell(推荐): 功能强⼤, 有颜值, 好操作(⾼级功能需要订阅)

2. XShell: 个⼈⽤免费/商⽤收费

3. Putty: 免费开源

4. SecureCRT: 收费

5. MobaXterm: 免费

6. WinSCP:免费开源

2、远程连接基本步骤 

1. ⼊职后需要向相关⼈员(运维/开发)获取服务器 IP 地址及账号密码等信息

2. 配合远程连接⼯具(根据公司要求使⽤对应⼯具), 配置连接使⽤服务器即可

 2.1、获取服务器 IP 地址

注意: 在⼯作中此步骤可以省略, 可以直接向相关⼈员获取 IP 地址及账号和密码

1、虚拟机系统中的桌⾯上⿏标右键打开终端 

2、通过 ifconfig 命令获取 IP 地址信息

3、在本机上的命令⾏内使⽤ ping 命令⾏测试下连通性

 2.2、远程连接⼯具设置步骤 

注意:以 FinalShell 连接工具为例

1、如图:新建 -> SSH 连

2、如图:设置连接信息

远程连接依赖的命令: SSH

注意: 有密钥,可直接使⽤ SSH 命令远程连接服务器 

 3、如图:点击连接

4、如图:提示保存秘钥,接受并保存

5、如图:提示连接成功

3、远程连接注意事项 

3.1、修改连接信息选项

注意:如果服务器IP地址发生变化,可直接通过修改更新IP地址

如图:

三、Linux常用命令 

1、Linux命令学习原则

1、Linux的启蒙学习不存在任何捷径,不是因为它太难,而是它涵盖的内容太多

2、写好⾃⼰的笔记, 以备随时查阅使⽤即可

3、没学过,可能会⽤到, 现查现⽤

注意:

1. 不要去死记硬背 Linux 命令

2. 务必要明确命令的基本组成形式

2、Linux 命令的基本组成 

# 命令  [-选项]  [参数]

command  [-options]  [parameter]

说明:

command : 命令主体

[-options] : 命令选项(可选), 根据命令可以显示更加丰富的数据

[parameter] : 命令参数(可选), 命令的操作对象,⼀般⽂件、⽬录、⽤户 和进程等都可以作为参数被命令操作

3、相对路径和绝对路径 

说明: 在 Linux 系统中, 可以根据如下特点区分相对路径和绝对路径

相对路径: 凡是路径信息以 '.' 或 '..' 开头的均为相对路径

绝对路径: 凡是路径信息以 '/' 或 '~' 开头的均为绝对路径

注释:

        .  : 当前路径下(⼀般会省略)

        ..  : 上⼀层⽬录

        /  : 根⽬录

        ~ : 当前⽤户的家⽬录

4、案例1: ls/pwd/cd/touch/mkdir/cp/mv/rm

4.1、Part1: ls/pwd/cd/touch/mkdir

ls:查看当前目录下有哪些文件和文件夹

pwd:查看当前路径位置

cd:切换到xx目录

touch:创建文件

mkdir:创建文件夹

4.2、Part2: cd其他⽤法和mv 

cd ~ :当前用户的目录下,~  当前用户目录的路径信息

cd  / :   当前根目录下, /  当前根目录的路径信息

cd    :   返回上一次所在的路径

cd .. :   返回上一级路径

mv  :默认是用来移动文件到某一路径下的,但是如果目标文件名不是文件夹名称或文件名不存在,即为修改文件名操作

4.3、Part3: cp 复制⽂件和⽂件夹 

-i  :提示文件是否覆盖

如果是文件夹,需要使用 -r

4.4、Part4: mv/touch 创建多个⽂件/rm 删除⽂件和⽂件夹及所有⽂件 

注意:

1、危险操作需要交互删除: -i

2、删除目录:-r

3、删除的文件不存在也不会提示信息,强制删除:-f

4、*,通配符,表示目录下的任意文件

5、删除目录下所有文件:rm -rf  /*

5 、案例2: cat/more/grep/重定向/管道符/clear

5.1、Part 1: cat/重定向

显示所有⽂件和详细信息:ls -al 路径信息

将命令执⾏结果信息输出到⽂件中 : 重定向  >

查看⽂件内容(较少内容⽂件):cat  文件 

追加重定向:>> 

cat 合并查看多个⽂件内容

5.2、Part2: less/more 分屏显示⽂件内容 

说明:

less和more都常用于查看内容较多的文件信息

快捷键,两个命令基本操作快捷键相同:

        向下翻页:空格键

        向上翻页:B

        退出查看:Q

注意:

想要以分屏样式查看大量内容的文件信息,文件的内容至少应该超过当前终端窗口的显示大小。

5.3、Part3: grep/|管道符/clear

clear:清除当前终端窗口的内容

grep  内容  文件名:从文件中查找包含特定内容的信息

通过管道符 |  可以方便快捷的讲两条指令结合起来,以省去需要先将结果写入到文件,再进行查找操作

注意:在测试工作中,我们只需要掌握管道符后侧,常使用的命令为grep

6、案例3: head/tail/tail -f

6.1、Part 1: head/tail

需求 1: 准备⼯作

head 和 tail 的使⽤:

head  -数字  文件名:查看特定文件前几行内容

tail  -数字  文件名:查看特定文件后几行内容

 6.2、Part2: tail -f 实时查看⽇志⽂件内容

准备⼯作: 模拟⽇志⽂件内容的实时变化

实时查看⽇志⽂件内容变化

tail  -f  文件名:实现实时监控文件内容变化的操作

注意:应用场景,动态查看日志文件内容

 

从实时变化的⽂件中获取特定⾏数内容

tail  -数字f  文件名

6.3、扩展: 通过 head 和 tail 同时使⽤获取特定⾏和⾏之间信息 

需求: 获取某⽂件 11-15 ⾏的信息

7、案例4: 重启关机/查看系统信息 

7.1、查看系统信息

查看当前系统内核版本信息:cat /proc/version

查看当前系统发行版本信息:cat /etc/redhat-release

注意:

1. 不同系统的版本信息查看都是通过查看特定文件内容来获取,不同系统文件名可能不一样

2. 其他系统需要获取系统版本信息,可以搜索:系统类型 + 内核版本 / 发行版本,例如:CentOS内核版本查询

7.2、重启和关机: 如果账号没有对应权限, 可能⽆法执⾏重启和关机操作 

reboot:重启系统

poweroff / shutdown:关闭系统

8、案例5: ps/kill/top 

进程

说明: 在任何系统中, 运⾏软件程序时, 都会有⼀个对应的进程信息存在, 如果结束掉进程, 就可以实现关闭对应软件程序的操作, 尤其是在服务系统(Linux) 中

8.1、Part1: 查看进程信息/⽂件上传操作

查看进程信息 

查看当前系统下的进程信息:ps  -aux

PID:进程ID,一般情况下,软件程序的PID值都是唯一的

CPU:CUP使用率

MEM:内存使用率

COMMAND:软件程序名称

上传⽂件到服务器

 

Linux 系统中结束或关闭程序的基本步骤

1. ps -aux | grep 程序名 : 获取⽬标程序的进程ID(PID)

2. kill -9 进程ID : 强制结束或关闭对应软件程序

8.2、Part2: 运⾏程序/获取进程ID/结束程序 

运⾏程序

注意:如果提示文件权限不足,可使用 chmod 755 程序名 修改文件权限

 运⾏结果和程序介绍: 最好在系统端运⾏程序, 远程连接⼯具内进⾏操作

 

获取进程 ID

注意:通过查询系统内的所有进程信息,并配合grep命令进行信息过滤

结束程序

kill -9 进程ID:通过进程ID结束或关闭对应软件程序

-9:强制结束

服务端显示以杀死! 

使⽤命令确认程序已经退出

8.3、Part3: 命令⾏形式的任务管理器

top:命令形式的任务管理器(动态查看进程信息)

9、案例6: netstat/lsof 

端口号

说明: 想要连接⾄计算机, 需要使⽤ IP 地址, 再想获取在计算机上运⾏程序, 需要通过端⼝号 注意: 同⼀台计算机不能有多个程序同时使⽤同⼀个端⼝号, 因此在运⾏程序 时, 如果提示"端⼝号被占⽤", 那就需要先找到占⽤端⼝号的程序并结束掉, 然 后才能运⾏⽬标程序.

常⻅见端⼝号:

1. HTTP: 80

2. HTTPS: 443

3. SSH: 22

4. MySQL : 3306

9.1、Part1: netstat 查询端⼝号信息

使⽤普通⽤户查看不了 PID 和程序名称

netstat -anptu

注意:使用netsat命令时,最好使用root用户,否则PID一栏可能没信息

 

直接使⽤命令 -> 查看系统内已开放的端⼝号

netstat -anptu

 

通过端⼝号获取对应程序及进程 ID

注意:配合grep命令过滤信息,获取占用某一端口号的程序及应用的进程ID,再使用kill命令结束端口占用 

9.2、Part2: lsof 查询端⼝号信息

使⽤普通⽤户 -> 命令运⾏⽆结果

注意:该命令必须使用root用户权限,普通用户使用无任何结果 

通过端⼝号获取对应程序及进程 ID : 注意命令选项的语法要求!

lsof -i:3306(端口号)

10、案例8: which/su/passwd/exit/who 

10.1、which(查看程序位置)

10.2、 su(切换⽤户)

su -  : 普通用户 -> root用户:需要输入root用户的密码(Linux系统下密码没有显示效果,输入回车即可);

su - admin : root用户 -> 普通用户:无需输入密码

注意:切换普通用户时,su和 - 与普通用户名之间均有空格

10.3、who(查看⽤户信息)

whoami :查看当前的用户名

who -q :查看当前系统中所有登录用户的信息

10.4、exit

退出终端窗⼝

 

退出远程连接

 

退出⽤户

11、 chmod 修改⽂件权限

11.1、⽂件权限的解读法

对照表

11.2、修改⽂件权限: 数字法[掌握] 

权限对应数值

 

案例实现

11.3、修改⽂件权限: 字⺟法[了解] 

组别: u: 拥有者/ g: ⽤户组/ o: 其他⼈/ a: 以上全部

修改: +: 增加权限/ -: 删除权限/ =: 赋予权限

权限: r: 可读/ w: 可写/ x: 可执⾏/ -:⽆权限

11.4、⽂件权限修改注意事项

1. 必须明确⽂件权限的含义(读懂)

2. 使⽤数字法还是字⺟法全凭个⼈喜好

3. 尽量注意不要随意赋予⽂件最⾼权限: 数字法(777)/字⺟法(rwxrwxrwx)

4. 建议适当修改⽂件权限: 数字法(755)/字⺟法(rwxr-xr-x), 除拥有者外其 余⽆可写权限, 以保证⽂件内容安全

12、案例9: find 查找⽂件

find 查找路径信息 name目标文件名

注意

1. 目标文件名可以省略引号

2. 文件名部分支持使用 * 实现模糊匹配

3. 如果当前用户对目标路径没有访问权限,则无法执行查找文件动作

13、案例10: ln -s 链接⽂件 

注意: 需要使⽤ -s 创建软链接(类似 Windows 系统下的快捷⽅式)

在Linux系统存在两种链接文件方式

1. ln -s 原文件名 链接文件名:软连接

2. ln 原文件名 链接文件名:硬链接(类似复制文件)

注意:删除原文件,链接文件会失效

硬链接

14、案例11: tar/gzip/zip/unzip 

14.1、Part1: tar/gzip 打包压缩和解压解包

注意:不要在目标文件夹内部,执行打包压缩文件操作,返回上一级目录,cd -

tar -zcvf 包名.tar.gz 目标文件(z:gzip压缩、c:打包、v:显示过程、f:指定文件)

tar -zxvf 包名.tar.gz C解压目录(z:gzip解压、x:解压、v:显示过程、f:指定文件、C:勇于指定解压目录)

14.2、Part2: zip 压缩/unzip 解压 

zip -r 压缩包名 目标文件

注意:压缩包名的后缀.zip可省略

unzip d 解压路径 压缩包名

注意:解压需要先指定的解压路径,也可以直接在当前目录下解压压缩文件

15、案例12: vi 命令⾏⽂本编辑器 

基本操作流程

命令模式

 

 输⼊模式

末⾏模式

四、yum 软件包管理⼯具 

yum( Yellow dog Updater, Modified)是⼀个在 Linux 系统中常⽤的软件包管理器。 yum 提供了查找、安装、删除某⼀个、⼀组甚⾄全部软件包的命令,⽽且命令简洁⽽⼜好记。

yum常⽤命令: 

yum list: 列出所有可安裝的软件清单

yum search: 查找软件包

yum install <package_name>: 安装指定的软件

yum update <package_name>: 更新指定的软件

yum update: 更新所有软件

yum remove <package_name>: 删除软件包 

相关文章:

  • 基于群智能的路径规划算法(三)------遗传算法
  • 到底怎么能精准挑到“报恩榴莲”?
  • C# 窗体进度条
  • 【opencv-c++】鼠标事件
  • STM32F103移植FreeRTOS必须搞明白的系列知识---2(FreeRTOS任务优先级)
  • ijkplayer播放器剖析(四)音频解码与音频输出机制分析
  • 本地web项目如何使用外网访问?教你轻松使用cpolar在windows搭建内网穿透
  • MySQL复合查询
  • 你需要的导航网站,这里都有
  • [SV]SystemVerilog中指定打印格式
  • 长期主义就是坚持重复的做一件事?
  • 各位程序员们,睡眠不足产生的后果超出你想象!
  • c++学习
  • 6步搭建一个飞机大战游戏
  • 前端与后端传递数据 — — JSON
  • SegmentFault for Android 3.0 发布
  • 「面试题」如何实现一个圣杯布局?
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • Java 23种设计模式 之单例模式 7种实现方式
  • Java编程基础24——递归练习
  • leetcode386. Lexicographical Numbers
  • maven工程打包jar以及java jar命令的classpath使用
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • VUE es6技巧写法(持续更新中~~~)
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 高度不固定时垂直居中
  • 基于web的全景—— Pannellum小试
  • 前端路由实现-history
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 译米田引理
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 【干货分享】dos命令大全
  • FaaS 的简单实践
  • PostgreSQL之连接数修改
  • 阿里云API、SDK和CLI应用实践方案
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 带你开发类似Pokemon Go的AR游戏
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • #define用法
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (转) Android中ViewStub组件使用
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)大型网站架构演变和知识体系
  • (转)一些感悟
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .Net IOC框架入门之一 Unity
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅