【软件测试】Linux操作系统基础知识

分类: beat365在线体育打不开 2025-10-23 08:54:15 作者: admin

以下是软件测试小白关于对Linux操作系统基础知识的学习记录。学习视频:【小白入门 通俗易懂】韩顺平 一周学会Linux为什么软件测试需要使用Linux操作系统?

Linux系统以其高稳定性和可靠性著称,能够长时间运行而不出现崩溃和错误。这种稳定性对于软件测试尤为重要,因为它确保了测试环境的一致性和可预测性,减少了因系统不稳定而导致的测试失败和结果偏差。Linux的开源特性,测试人员可以自由地查看和修改Linux的代码,并且许多测试工具和框架都是基于Linux平台开发的,这些工具包括Selenium、Apache JMeter等,能够无缝集成进Linux环境,支持功能测试、性能测试和安全测试等多种测试类型。Linux提供了丰富且强大的命令行工具,这些工具对于自动化测试至关重要。

目录

一、Linux操作系统介绍二、Linux环境搭建三、Linux目录结构四、Linux远程登录五、Linux Vi和Vim编辑器六、Linux关机/重启命令七、Linux运行级别八、重置Root用户丢失密码九、Linux获取命令帮助信息十、Linux用户和用户管理10.1 显示用户:whoami10.2 显示当前工作路径:pwd10.3 切换用户:su10.4 注销/退出:logout / exit10.5 添加用户:useradd10.6 设置/修改用户密码:passwd10.7 删除用户:userdel10.8 查询组信息:id10.9 用户组:groupadd、groupdel、usermod10.10 修改用户权限:chmod

十一、Linux文件和目录常用命令11.1 清屏命令:clear11.2 查看目录内容:ls11.3 切换目录:cd11.4 创建文件:touch11.5 创建目录:mkdir11.6 删除文件或目录:rm11.7 文件或目录的复制:cp11.8 文件或目录的移动:mv11.9 查看文件内容:cat、more、grep11.10 输出重定向:>、>>11.11 管道符号:|11.12 查看指令的绝对路径:which11.13 回显:echo

十二、系统相关命令12.1 查看系统进程:ps12.2 实时查看系统进程信息:top12.3 关闭进程:kill12.4 查看系统监听端口:netstat12.5 查看日志信息:head、tail

十三、其他常用命令13.1 查找文件:find13.2 软链接:ln13.3 打包和解包:tar13.4 压缩和解压缩:gizp、biz213.5 查看命令历史记录:history

一、Linux操作系统介绍

Linux操作系统是一种自由和开放源代码的操作系统,由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。特点:开源免费、安全稳定、可移植性好、高性能。常见发行版本:Debain、Ubuntu、CentOS、RedHat、Fedora等。应用领域:应用服务器、数据库服务器、网络服务器、虚拟化云计算、嵌入式、个人PC、移动手机等。Linux在服务器领域的应用是最强的。

二、Linux环境搭建

安装文档:Linux环境搭建(VMware16+CentOS7)

三、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 【操作】远程上传下载

前面步骤不变使用远程上传下载工具

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 now10秒后关机:shutdown -t 101分钟后关机并发送告警信息:shutdown -h 1 "1分钟后将关机"立即重启:shutdown -r now取消关机:shutdown -c 【补充】

数据同步:syncLinux 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)。 切换运行级别:init "运行级别"指定系统默认运行级别:systemctl set-default "运行级别(graphical.target)"

八、重置Root用户丢失密码

【步骤】进入开机界面->上下键移动光标打断系统进入用户登录界面 光标定位到第一个输入e -> 进入编辑界面 移动光标找到linux16开头的内容 -> 在其末尾输入:init=/bin/sh 使用快捷键ctrl+x进入单用户模式 单用户模式下输入:mount -o remount,rw / -> 回车 接着输入:passwd设置密码 -> 回车 -> 自定义密码 -> 回车 -> 密码设置成功 接着输入:touch /.autorelabel -> 回车 接着输入:exec /sbin/init -> 回车 -> 等待系统重启、新密码生效(等待时间可能会有点久)->使用新密码登录root

九、Linux获取命令帮助信息

man指令: 用于查看各种命令、函数和配置文件的手册页面。语法格式:man [选项] [节号] 命令/主题【练习】查看ls命令的手册页面

命令行输入man ls -> 跳转到ls命令手册页面 -> 上下键滑动查看详细内容 -> q退出手册页面 help指令:用于获取shell内置命令的帮助信息。语法格式:[命令] --help

十、Linux用户和用户管理

【说明】

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。一个Linux系统通常只有一个root用户,但可以有多个普通用户。这些普通用户可以由root用户或其他具有适当权限的用户创建。root用户:超级用户(系统管理员用户),拥有系统的最高权限。可以执行任何命令,访问任何文件,以及进行任何系统级别的更改。普通用户:权限有限,只能访问自己的文件、目录和可执行程序。他们不能执行需要更高权限的操作,除非使用sudo(以超级用户身份执行命令)或其他方式提升权限。每个用户在文件系统中都有一个对应的目录,通常位于/home目录下(对于普通用户)。例如,root用户的目录通常是/root,而普通用户的目录可能是/home/username。

10.1 显示用户:whoami

显示当前用户名:whoami显示登录用户信息:who am i

10.2 显示当前工作路径:pwd

10.3 切换用户:su

低权限切换到高权限用户需要验证密码,反之不用。切换用户:su username 切换用户并更改环境:su - username

10.4 注销/退出:logout / exit

【练习】

10.5 添加用户:useradd

添加用户:useradd "用户名"添加用户并指定主目录:useradd -d "指定目录" "用户名"【练习】

10.6 设置/修改用户密码:passwd

命令格式:passwd [用户名]

10.7 删除用户:userdel

仅删除用户账号:userdel "用户名"删除账号和用户的主目录:userdel -r "用户名"【练习】

创建一个名为 tom 的新用户,并为其设置主目录为 /home/tom_custom。

useradd -d /home/tom_custom tom 为tom用户设置一个密码,密码为666qw678。

passwd tom 删除tom用户,并确保其主目录 /home/tom_custom 也被一并删除。

userdel -r tom

10.8 查询组信息:id

命令格式:id "用户名"

10.9 用户组:groupadd、groupdel、usermod

【说明】

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。添加新的用户时,如果没有指定归属用户组,系统会默认创建一个于用户名相同的组。 添加新的用户组:groupadd "组名"删除用户组:groupdel "组名"添加用户时指定用户所属的用户组:useradd -g "组名" "用户名"修改用户的组:usermod -g "组名" "用户名"【练习】

创建两个用户组“developers”、“managers”。 添加两个用户“alice”、“bod”,将“alice”指定为“developers”组的成员,将“bod”指定为“managers”组的成员。 将“alice”用户的所属组修改为“managers”。 删除“developers”用户组。 用户和组相关文件

/etc/passwd:用户的配置文件,记录用户的各种信息。(使用vim查看如下) 含义:[用户名]:[口令(密码)]:[uid]:[gid]:[注释性描述]:[主目录]:[登录 shell]

/etc/shadow:口令的配置文件。 含义:[登录名]:[加密口令]:[最后一次修改时间]:[最小时间间隔]:[最大时间间隔]:[警告时间]:[不活动时间]:[失效时间]:[标志]/etc/group:组的配置文件,记录linux包含的组的信息。 含义:[组名]:[口令]:[组标识号]:[组内用户列表]

10.10 修改用户权限:chmod

【说明】权限的基本概念

这里修改用户权限指的是修改用户对文件或目录的权限。Linux系统中文件和目录的权限有以下几种:

权限英文缩写数字代号读readr4写writew2执行executex1无权限-0

在使用 ls -l 命令时,第一列的字符表示文件或目录的类型和权限,其中第一个字符表示文件类型,其余 9 个字符表示文件或目录的访问权限,分别对应三个字符一组的 rwx 权限。 【说明】文件类型

- 表示普通文件d 表示目录l 表示符号链接(快捷方式link)c 表示字符设备文件b 表示块设备文件s 表示套接字文件p 表示管道文件 Linux的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

文件类型文件所有者用户组其他用户- / dr w xr w xr w x

字母法修改用户权限:命令格式:chmod [用户选项] [设置选项] [权限选项] [文件名]参数说明:

用户选项:

u:表示的是所属用户。g:表示的是所属用户组。o:表示的是其他用户。a:表示的是所有的用户。 设置选项:

+:表示增加权限。-:表示减少权限。=:表示设置权限。 【练习】

对当前目录下的1.txt文件的当前用户增加写的权限。

chmod u+w 1.txt 对当前目录下的1.txt文件撤销用户组写的权限。

chmod g-w 1.txt 对当前目录下的1.txt文件的其他用户权限设置为可读可写可执行的权限。

chmod o=rwx 1.txt 对1.txt文件同时修改当前用户的可执行权限、用户组可写可执行权限、撤销其他用户所有权限。

chmod u+x,g+wx,o-rwx 1.txt 数字法修改用户权限:【说明】八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者的读、写、执行,用户组的读、写、执行以及其它用户的读、写、执行。

八进制权限rwx二进制7读+写+执行rwx1116读+写rw-1105读+执行r-x1014读r–1003写+执行-wx0112写-w-1011执行–x0010无—000

命令格式:chmod [八进制权限值] [文件名]【练习】

对1.txt文件权限修改,文件的所有者和用户组设置读写权限, 为其他用户设置读权限。(664)

chmod 664 1.txt 将1.txt、logfile.txt两个文件权限修改为该文件拥有者与其所属同一个群体者可写,但其他以外的人则不可写。(220)

chmod 220 1.txt logfile.txt

十一、Linux文件和目录常用命令

11.1 清屏命令:clear

11.2 查看目录内容:ls

【参考链接】命令格式:ls [-lah(选项)] [文件或目录]参数说明(可组合使用):

-l:以列表的方式显示信息内容。-a:显示所有文件,包含隐藏文件(.开头的文件)或目录。-h:配合-l使用,显示文件的大小。 常用通配符:

*:表示匹配0到多个任意字符。?:表示匹配单个字符。[...]:表示匹配指定范围内的字符。 【练习】假设你有一个目录 /home/user/documents,其中包含以下文件和文件夹:

file1.txtfile2.docx.hiddenfile(隐藏文件)subfile1.pdf 和 subfile2.jpg 请根据你的理解,使用 ls 命令及其选项,完成以下任务:

列出 /home/user/documents目录中的所有文件和文件夹,包括隐藏文件。

ls -a /home/user/documents 以列表形式显示 /home/user/documents目录中的所有文件和文件夹的详细信息,包括文件大小,同时包括隐藏文件。

ls -alh /home/user/documents 列出 /home/user/documents目录中所有以 file 开头的文件。

ls /home/user/documents/file* 列出 /home/user/documents目录中所有扩展名为 .txt 或 .docx 的文件。

ls /home/user/documents/*.txt /home/user/documents/*.docx 以列表形式列出/home/user/documents目录中所有以数字结尾的文件,包括文件大小。

ls -lh /home/user/documents/*[0-9].*

11.3 切换目录:cd

【参考链接】【说明】绝对路径和相对路径绝对路径:绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从根目录开始的路径。它完整描述了文件在硬盘上的位置。

ps:在Linux系统中,“/home/tom/1.txt”就是一个绝对路径,它指出了“1.txt”文件在硬盘上的具体位置。 相对路径:相对路径是指以当前文件资源所在的目录为参照基础,链接到目标文件夹的路径。它描述了文件(目录)相对于当前文件(目录)的位置关系

ps:如果当前文件“1.htm”所在目录为“/home/tom”,而目标文件“1.txt”所在目录为“/home”,那么“1.txt”相对于“1.htm”文件来说,是在其所在目录的上级目录里。 命令格式:cd [目录]【说明】

cd或cd ~:切换到当前用户的主目录(/home/用户目录) cd .或cd ./:切换到当前目录cd ..:切换到上级目录 cd -:切换到上次所在目录 【练习】

以绝对路径的方式切换到 /usr/bin 目录下。

cd /usr/bin 以相对路径的方式切换到 /home 目录下。

cd / -> cd ./home或cd home 以相对路径的方式切换到 /usr/local 目录下。

cd / -> cd ./usr/local

11.4 创建文件:touch

【参考链接】命令格式:touch [文件名] [文件名1](创建多个文件使用空格隔开)【说明】

如果创建的文件名不存在,则新建一个文件。如果创建的文件名存在,则更新文件的修改时间。 【练习】

创建文件1.txt、2.txt。查看创建文件的信息。再次使用touch命令创建1.txt。

11.5 创建目录:mkdir

【参考链接】命令格式:mkdir [-p] [目录]参数说明:-p 确保目录名称存在,不存在的就建一个(实现多个层级目录的创建)。【练习】当前工作路径/home/fs

在home目录下创建文件夹jack。

mkdir /home/jack 在当前目录下创建目录/b/c。

mkdir -p ./b/c 再次创建文件夹jack,观察是否创建成功。

mkdir /home/jack

11.6 删除文件或目录:rm

【参考链接】命令格式:rm [-irf] [目录或文件名]参数说明:

-i:表示交互式执行,删除前会询问是否删除。-r:表示删除文件夹或文件夹下的所有内容。-f:表示强制删除,忽略不存在的文件,无需提示。 【练习】

删除目录jack。

rm -r jack

11.7 文件或目录的复制:cp

【参考链接】命令格式:cp [-firv] [源文件] [目标文件]参数说明:

-f:强制复制,即使目标文件已存在也会覆盖,而且不给出提示。-i:在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答 y 时目标文件将被覆盖。r:用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。-v:显示详细的复制过程。 【练习】假设在 /home 目录下有一个文件1.txt和两个文件夹tom、jack。

在 /home目录下将1.txt复制为2.txt。

cp /home/1.txt /home/2.txt 将 tom文件夹复制到jack文件夹下命名为alice。

cp -r /home/tom /home/jack/alice

11.8 文件或目录的移动:mv

【参考链接】命令格式:mv [-fin] [源文件] [目标文件]参数说明:

-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。-n: 不要覆盖任何已存在的文件或目录。 【练习】假设 /home 目录下有一个文件1.txt,两个文件夹tom和jack。

将1.txt在当前目录下移动重命名为2.txt。

mv /home/1.txt /home/2.txt 将2.txt移动到tom文件夹下重命名为3.txt。

mv /home/2.txt /home/tom/3.txt 将tom文件夹移动到jack文件夹下重命名为bod。

mv /home/tom /home/jack/bod

11.9 查看文件内容:cat、more、grep

cat:适用于查看文件内容较少的文件,还可以用来创建文件、连接文件、追加文件。【参考链接】

命令格式:cat [-bn] [文件名]参数说明:

-b:表示输出非空的行编号。-n:表示输出所有的行编号。 【练习】

查看 /usr/include 目录下的stdio.h文件的内容。

cat /usr/include/stdio.h 查看 /usr/include 目录下的stdio.h文件的内容并输出所有行号。

cat -n /usr/include/stdio.h more:适用于查看文件内容较多的文件,可分屏显示文件内容。【参考链接】

命令格式:more [文件名]常用快捷键:

空格:显示下一页内容enter:滚动显示下一行b:显示上一页内容: f:输出文件名和当前行的行号q:退出more 【练习】

查看 /usr/include 目录下的stdio.h文件的内容。

more /usr/include/stdio.h grep:搜索文件并显示关键字行的信息。 【参考链接】

命令格式:grep [-vni] '关键字' [文件名]参数说明:

-v:显示不包含匹配文本的所有行。-n:显示匹配的行及行号。-i:忽略大小写。 正则表达式:

'^a':表示搜索的文件内容内容行是以a开头。'ke$':表示搜索的文件内容行是以ke结尾。[Ss]igna[Ll]:匹配[]中的任意一个字符,搜索匹配单词为SignaL、Signal、signal、signaL。 【练习】假设你有一个名为 logfile.txt 的日志文件,文件内容如下:

INFO Signal received from serverERROR SignaL lostDEBUG No signal detectedINFO Keep-alive message sentWARNING Signal quality lowINFO server sent keepalive SignaL

查找所有包含 “signal”(不区分大小写)的行,并显示行号。

grep -in 'signal' logfile.txt 查找所有以 “INFO” 开头的行,但不包含 “signal”(不区分大小写)的行。

grep -v 'signal' logfile.txt | grep -in '^INFO' 查找所有包含 “signa[L|l]”(即 SignaL 或 signal)的行,并显示匹配到的行及其行号。

grep -n signa[Ll] logfile.txt

11.10 输出重定向:>、>>

【说明】

在Linux中,重定向是一个非常实用的功能,用最简单的话来解释,它就是改变数据流动方向的技术。通常,当你在Linux终端上运行一个命令时,这个命令的输出(比如打印的信息、结果等)会直接显示在屏幕上,供你查看。这个屏幕显示的过程,其实就是数据“流向”了标准输出,它是计算机程序中的一个默认输出通道。但有时候,你可能不希望看到这个输出,而是想把它保存到一个文件里,或者你想把错误信息保存到另一个地方,甚至你可能想把一个文件的内容作为另一个命令的输入。这时候,你就需要用到重定向了。 输出重定项符号:

>:表示输出到新文件中,会覆盖文件中原有内容。>>:表示追加到新文件中,不会覆盖文件中原有内容。 【练习】

使用ls -l命令,将其输出结果重定向到1.txt文件中。

ls -l > 1.txt 使用cat logfile.txt命令将其输出结果重定向到1.txt文件中。

cat logfile.txt > 1.txt 使用ls -l命令将其输出结果重定向追加到1.txt文件中。

ls -l >> 1.txt

11.11 管道符号:|

【说明】

在Linux系统中,管道符号是一个非常有用的操作符,它允许你将一个命令的输出作为另一个命令的输入。这种机制使得你可以将多个命令串联起来,形成一个处理数据的流水线。通俗地说,管道符号就像一根“管子”,把两个或多个命令连接起来。数据从左边的命令流出,然后通过这根“管子”流入右边的命令。右边的命令会接收这些数据,然后对其进行处理。格式:输出结果 | 输入结果 【练习】

将cat logfile.txt的输出结果使用管道符号作为grep -n 'signal'的输入结果。

cat logfile.txt | grep -n 'signal' 将ls -l的输出结果使用管道符号作为grep -in 'txt$'的输入结果。

ls -l | grep -in 'txt$'

11.12 查看指令的绝对路径:which

【参考链接】【说明】

which命令主要功能是搜索用户的 PATH 环境变量所定义的目录(以及当前目录,如果它被包括在 PATH 中)来查找指定的可执行文件或脚本。which 命令会返回第一个匹配到的文件的完整路径。 格式:which [文件名]【练习】

查看ls命令的绝对路径

which ls

11.13 回显:echo

【参考链接】【说明】

echo 命令通常用于脚本编程中输出信息,或者在命令行上简单地显示一段文本或变量的值。 【练习】

显示文本“Hello World!”。

echo Hello World! 显示变量Name的值。

Name="jack"echo Hello $Name!

十二、系统相关命令

12.1 查看系统进程:ps

什么是进程?

进程通俗地说,就是计算机中正在运行的程序实例。当你打开一个应用程序,比如一个文字处理软件,操作系统就会为这个程序创建一个进程。这个进程包含了程序运行所需的全部信息,比如程序代码、当前运行到的位置、打开的文件、网络连接、分配的内存和CPU时间等。操作系统负责管理这些进程,确保它们能够高效地共享计算机资源,同时避免冲突和错误。操作系统会调度进程,决定哪个进程在什么时候可以运行,以及可以运行多久。它还会处理进程之间的通信和同步,以及进程的创建和终止等任务。所以,进程是操作系统管理程序运行的基本单位,它使得多个程序可以同时在计算机上运行,互不干扰,从而提高计算机的效率和利用率。 【参考链接】【说明】

ps命令用于显示当前进程的状态,类似于 windows 的任务管理器。 命令格式:ps -aux参数说明:

-aux:显示所有包含其他使用者的进程。 -aux输出格式说明:

USER:表示进程使用的用户。PID:表示进程号。%CPU:表示进程占用的CPU使用率。%MEM:表示进程占用的物理内存使用率。VSZ:表示进程使用的虚拟内存大小。RSS:表示进程占用的物理内存大小。 查找指定进程格式:ps -aux | grep '关键字'

12.2 实时查看系统进程信息:top

【参考链接】【说明】

top 是一个在 Linux 和其他类 Unix 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息。 快捷键:

shift+m:按内存(%MEM)的使用率降序排列显示进程信息。shift+p:按cpu使用率降序排列显示进程信息。q:退出top工具。

12.3 关闭进程:kill

【参考链接】【说明】

kill 命令可以发送不同的信号给目标进程,来实现不同的操作,如果不指定信号,默认会发送 TERM 信号(15),即终止。若仍无法终止该程序,可使用 SIGKILL(9) 信息尝试强制删除程序。 命令格式:kill [-9] [pid]【练习】使用kill命令关闭火狐浏览器。

kill pid

12.4 查看系统监听端口:netstat

什么是端口?

端口,在计算机网络中,可以通俗地理解为电脑或其他网络设备与外界通信的“门”或“通道”。每个端口都有一个特定的编号,这些编号就像门牌号一样,帮助网络上的其他设备识别并找到正确的“门”来与你通信。 命令格式:netstat [-anptu] | grep '关键字'(管理员权限)参数说明:

-a:查看所有以打开的端口信息。-n:以数字方式显示已打开端口,不显示别名。(http:80、https:443、mysql:3306、ssh:22)-p:显示对应进程的PID。-t:显示出tcp协议的端口。-u:显示出udp协议的端口。 【练习】

查看系统已打开的TCP协议端口。

netstat -anpt

12.5 查看日志信息:head、tail

什么是日志?

日志文件是一种普通的文本文件,文件内记录的是软件运行过程的信息。如果软件出现问题,可在日志文件中查找错误原因。 【说明】 【参考链接】

head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。 命令格式:head [-n] [文件名]【练习】 【说明】【参考链接】

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。 命令格式:

tail [文件名]:默认查看文件末尾10条信息。tail -n [文件名]:查看文件末尾n条信息。tail -f [文件名]:实时查看日志的文件信息。(跟踪文件) 使用场景:

当测试发现问题时,需要查看后台的日志信息

通过tail -f [文件名]命令实时打开对应的日志文件并查看。操作系统复现对应的问题(此时会将操作中出现错误日志信息打印到tail -f [文件名]的查看窗口) 【练习】通tail实时监控文件的变化。

不断向文件temp.txt写入内容。

ping www.baidu.com > temp.txt 实时监控temp.txt。

tail -f temp.txt

十三、其他常用命令

13.1 查找文件:find

【参考链接】【说明】

find 命令用于在指定目录下查找文件和目录,它可以使用不同的选项来过滤和限制查找的结果。与grep的区别,find是在磁盘内查找匹配文件,grep是在文件内查找匹配内容。 命令格式:find [路径] [匹配条件] [动作]参数说明:

匹配条件项:

-name [文件名]:按文件名查找,支持使用通配符 * 和 ?。-type [文件类型]:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。-user [用户名]:按文件所有者查找。-group [组名]:按文件所属组查找。 【练习】

查找当前目录下所有名为test.sh的文件。

find ./ -name test.sh

13.2 软链接:ln

【参考链接】命令格式:ln -s [源文件] [链接文件]【说明】

源文件必须使用绝对路径。不加-s表示的是硬链接。 软链接和硬链接的区别:

软链接源文件被删除后,链接文件将会失效。硬链接源文件被删除后,链接文件存在,链接文件大小与源文件一致。 【练习】

给文件创建软链接,为1.txt文件创建软链接1_link,如果1.txt丢失,1_link将失效。

ln -s /home/fs/1.txt 1_link 给文件创建硬链接,为logfile.txt创建硬链接logfile_link,logfile.txt与logfile_link的各项属性相同。

ln /home/fs/logfile.txt logfile_link

13.3 打包和解包:tar

【说明】

打包和解包只是将包文件(.tar)归档和解归档的操作,并没有涉及压缩和解压缩的过程。 打包命令格式:tar -cvf [打包文件名] [要打包的文件或文件路径]解包命令格式:tar -xvf [解包文件名] -C [指定解包路径]参数说明:

-c:创建打包文件。-v:显示打包或解包的进度。-f:用于指定打包文件名。-x:表示解包的对应文件。 【练习】

将文件1.txt、2.txt、a.png、b.png打包为files.tar。

tar -cvf files.tar *.txt *.png 将files.tar解包到/home/jack下。

tar -xvf /home/fs/files.tar -C /home/jack/

13.4 压缩和解压缩:gizp、biz2

gizp压缩工具

压缩命令格式:tar -zcvf [压缩文件名.tar.gz] [被压缩的文件或目录]解压命令格式:tar -zxvf [压缩文件名.tar.gz] -C [解压路径]参数说明:

-z:调用gzip压缩工具实现打包和压缩的过程。 【练习】

将文件1.txt、2.txt、a.png、b.png压缩为files.tar.gz。

tar -zcvf files.tar.gz *.txt *.png 将压缩包files.tar.gz解压到下载文件夹下。

tar -zxvf files.tar.gz -C 下载

biz2压缩工具

压缩命令格式:tar -jcvf [压缩文件名.tar.bz2] [被压缩的文件或目录]解压命令格式:tar -zxvf [压缩文件名.tar.bz2] -C [解压路径]参数说明:

-j:调用biz2压缩工具实现打包和压缩的过程。

13.5 查看命令历史记录:history

命令格式:history [-cdnrw]参数说明:

-c:清除当前的历史记录。-d:后跟一个数字,表示删除历史记录中指定的行。-n:显示最近的n条记录。-r:读取历史文件并将内容追加到历史列表中。-w:将当前历史写入到历史文件中。

以上就是关于Linux操作系统基础知识的全部学习记录内容,如有错误还望指正。