Linux在测试中相关知识点

一、什么是Linux

Linux 是一个开源、免费的操作系统内核,支持多用户、多任务运行,以稳定、安全、高效著称,广泛应用于服务器、嵌入式设备和个人电脑。基于 Unix 设计理念,它由全球开发者共同维护,并衍生出众多发行版

二、Linux分类

1、企业

RHEL、CentOS、SLE、Ubuntu LTS

2、个人

Ubuntu Desktop、Fedora、Linux Mint、Debian

三、Linux中的操作与命令

1、文件相关

ls

查询目录内容
	ls [选项] [目录或文件]
		-a 
			显示目录下所有文件,包括隐藏文件
		-l
			详细的显示目录下的文件信息
		-R
			递归显示目录下的文件
		-h
			文件大小单位为K、M、G,与-l搭配使用
		-A
			除了"."、".."外的所有文件
		-F
			在文件名后加符号区分文件
		-d
			只看文件夹文件夹本身

touch

新建空文件,或修改文件的时间戳
	touch [选项] 文件名	

vim

文本编辑器
	vim [选项] 文件名
		i,a
			进入编辑模式,i从当前光标开始编辑,a从当前光标下一位开始编辑
		h,j,k,l
			分别是向左下右上移动光标
		^
			去到光标所在行的行首
		$
			去到光标所在行的行尾
		gg
			去到第一行的行首
		G
			去到最后一行的行首
		#G
			指定去到第#行的行首
		yy
			复制光标所在行
		#yy或y#y
			从光标所在行向下复制#行
		p
			从光标所在行的下一行开始粘贴
		dd
			删除光标所在行
		#dd或d#d
			从光标所在行向下删除#行
		dw
			删除光标所在的单词
		x
			删除光标所在的字符
		u
			撤销操作
		/关键字
			查找关键字
		末行模式
			set nu
				显示行号
			set nonu
				取消显示行号
			set ic
				忽略大小写
			%s/test/linux/g
				查找替换,全文查找test并替换为linux
%:表示对整个文件进行操作(也可以指定行范围,如 :10,20s/old/new/g)。
s:替换(substitute)命令。
/g:全局替换(每行所有匹配项,不加 g 则只替换每行的第一个匹配)。
				wq
					保存并退出
				q!
					强制退出
				ESC
					切换到命令模式

mkdir

创建空目录
	mkdir [选项] 目录名称
		-v
			显示命令执行过程
		-p
			如果父目录不存在,则创建父目录

mv

将目录由一个目录移到另一个目录,可用于改名
	mv [选项] 源文件或目录 目标文件或目录

rmdir

删除空目录
	rmdir [选项] 目录名称
		-p
			删除目录后如果父目录为空,则父目录也删除

rm

删除一个目录中一个或多个文件
	rm [选项] 文件名
		-r
			递归删除目录以及目录的内容
		-f
			强制删除文件,删除过程不提示

cp

文件或目录的复制
	cp [选项] 源文件或目录 目标文件或目录
		-R
			递归复制

scp

远程拷贝
	scp [选项] 源文件 目标路径
		-r 
			递归复制
		-P
			指定端口

cat

一次性查看文件内容 ,适用于内容较少
	cat [选项] 文件名
		-n
			显示行号
		-b
			与-n相似,但空白行不加行号

less/more

查看文件内容,支持上下翻页,适用于内容较多
	less [选项] 文件名
	more [选项] 文件名

head

从文件头部开始显示文件部分内容,默认10行
	head [选项] 文件名
		-n
			指定显示文件行数

tail

从文件尾部开始显示文件部分内容,默认10行
	tail [选项] 文件名
		-n
			指定显示文件行数
		-f
			实时显示文件追加内容

tr

简单的替换命令,从标准输入中替换字符,将结果写到标准输出
	tr [选项] 字符串1 字符串2
		cat test.txt | tr "m" "M"

|(管道)

把一个命令的输出传递给另外一个命令作为输入
head  test.txt  | tail -n 2

grep

按行查找文件中符合条件的字符串
	grep [选项] 文件名
		-i
			忽略大小写
		-h
			显示行号
		-v
			显示不包含匹配文本的所有内容
		-A num
			输出匹配行以及之后的num行
		-B num
			输出匹配行以及之前的num行

cut

按行截取并显示指定文件内容
	cut [选项] 文件名
		-d
			指定截取的字段分隔符
		-f
			显示指定的字段内容
如-f1就显示分割后第一个字段

find

find path -option 关键字
	-name 
		通过文件名查找
	-iname
		通过文件名查找,忽略大小写
	-user
		通过拥有者查找
	-size
		通过文件大小查找
	-mtime
		通过文件最后修改时间查找
	-type
		通过文件类型查找
	-maxdepth
		控制查找深度

tar

(归档)打包、压缩文件
	tar [选项] 输出文件.tar[.gz|.bz2|.xz] 文件或目录...
		-z:调用gzip
		-j:调用bzip2
		-J:调用xz
		-x:拆包
		-c:创建打包文件
		-v:显示命令执行过程
		-f:指定文件名称
		-C:指定解压目录

zip

gzip  文件名

unzip

unzip  文件名.zip

bzip2

bzip2  文件名

bunzip2

bunzip2  文件名.bz2

gzip

gzip  文件名

gunzip

gunzip  文件名.gz

xz

xz  文件名

unxz

unxz  文件名.xz

cd

切换目录
	cd [选项] [文件目录]
		cd ~用户名:去指定用户家目录

重定向

标准输入,0
标准输出,1
标准错误,2
command > file 标准输出重定向到一个文件,错误仍然输出屏幕 
command > > file 标准输出重定向到一个文件(追加) 
command 1 > file 标准输出重定向到一个文件 command 2 >> file 标准错误重定向到一个文件(追加) 
command > file 2>&1 标准输出和标准错误一起重定向到一个文件 
command >> file 2>&1 标准输出和标准错误一起重定向到一个文件(追加) 
command 1> file 2>file2 标准输出重定向file,标准错误重定向到file2文件 
command < file 以file作为文件标准输入 command < file1 >file2 以file1作为标准输入,file2作为标准输出 /dev/null 
文件是黑洞 ls > /dev/null 2 >&1

pwd

显示当前工作目录的绝对路径

echo

字符串输出
	echo [选项] 字符串
		-e
			开启转义
		-n
			不输出换行符
	echo对转义很敏感,若要屏蔽可用\

test

文件测试
	用于检查某个条件是否成立
	语法:test condition 或者 [ condition ]
		中括号两边要有空格
test -e 文件名	如果文件存在则为真
test -d 文件名	如果文件存在且为目录则为真
test -f 文件名	        如果文件存在且为普通文件则为真
test -L 文件名	如果文件存在且为符号链接则为真
test -r 文件名		如果文件存在且可读为真
test -s 文件名	如果文件存在且至少有一个字符则为真

字符串测试
=		等于则为真
!=	不相等则为真
\>		大于则为真
\<		小于则为真
-z		字符串长度为0则为真
-n		字符串的长度不为0则为真

数值测试
-eq		等于则为真
-ne		不等于则为真
-gt		大于则为真
-ge 		大于等于则为真
-lt		小于则为真
-le		小于等于则为真

逻辑操作符
-a 或 &&		逻辑与,两边为真则为真,否则为假
-o 或 ||		逻辑或,操作符两边有一边为真,结果就为真,否则为假
!				逻辑否,条件为假,结果为真

sed

行命令编辑器,能逐行处理文件,将输出结果发送到屏幕
	sed [选项] AddressCommand 文件名
		-n
			静默模式,进现实处理后的行,与p配合
				sed -n '3,9p' /etc/passwd  只显示第3到9行
		sed ‘s/abc/ABC/g’ /etc/passwd  将/etc/passwd中所有abc替换为ABC

awk

强大的文本分析工具,用于数据分析并生成报告
	awk [选项] ‘PATTERN{ACTION STATMENTS}’ 文件名
	内置变量
		$0:整行内容
		$1, $2...:第 1、2...列(默认以空格/Tab 分隔)
		NR:当前行号
		NF:当前行的列数
		FS:输入字段分隔符(默认空格)
		OFS:输出字段分隔符(默认空格)
	模式(PATTERN):筛选条件(如 /regex/、NR>10,可省略)。
	动作(ACTION STATMENTS):处理命令(如 print $1,必须用 {} 包裹)

du

du -h test.txt   查看test.txt文件占用磁盘情况

wc

统计文件中行数、单词数、字节数/字符数
	wc [选项] 文件名
		-l	仅统计行数(Line count)
		-w	仅统计单词数(Word count)
		-c	仅统计字节数(Byte count)
		-m	仅统计字符数(Character count,需文本支持多字节)
		-L	显示最长行的长度(字符数)

source

与bash类似,运行命令
source /etc/profile

bash

bash 文件名.sh

tee

把输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中如果想看到输出的同时,把输出也同时拷入一个文件
-a:追加

whereis

whereis [选项] 命令
	-b
		只查找二进制文件
	-m
		只查找手册页
	-s
		查找源程序文件

2、用户相关

chmod

用于改变文件或目录的访问权限
	文字设定法
		chmod [who] [+|-|=] [mode] 文件名
		who:u、g、o、a
		属主、属组、其他用户、所有用户
	数值设定法
		chmod [mode] 文件名
		-R
			递归授予权限

su

切换用户身份 
	su [选项] [用户名]
		- 或 -l	模拟登录(加载目标用户的环境变量,如 $HOME, $PATH)
		-c	以目标用户身份执行单条命令后退出
		-s	指定 Shell(如 -s /bin/bash)
		-m	保留当前环境变量(不切换用户配置)

chown

更改文件或目录的属主和属组
	chown [选项] 用户或组 (属主:属组)文件或目录
		-R
			递归修改

useradd

新建用户
	useradd [选项] 用户名

groupadd

用户分组
	groupadd [选项] 组名称

passwd

修改密码
	passwd  [选项] 用户名

userdel

删除用户
	userdel [选项] 用户名
		-r
			完全删除用户

groupdel

删除组
	groupdel [选项] 组名称

id

显示用户和组的身份信息,包括 UID(用户ID)、GID(组ID) 以及所属的 附加组
	id [选项] [用户名]
		-u	仅显示 UID(用户ID)
		-g	仅显示主 GID(组ID)
		-G	显示所有所属组的 GID

ssh

加密远程登录和管理
	ssh [选项] [用户名@]主机名或IP [命令]
		-p	指定远程主机的SSH端口(默认22)
		-i	指定私钥文件(默认用 ~/.ssh/id_rsa)
		-v	显示详细连接过程(调试用,-vvv 更详细)

3、系统相关

at

at [ -f script ] 时间
	设定任务执行时间
	at -f:运行脚本
	at -l:查看所有任务
	at-r:删除任务

systemctl

systemctl start mariadb   启动mysql服务
systemctl status httpd   查看运行状态
systemctl stop httpd   关闭服务
systemctl restart mariadb   启动mysql服务

setenforce

临时关闭selinux
	setenforce 0

date

date [选项]
	date + "%Y-%m-%d"

df

df -h:查看系统磁盘使用情况

reboot

重启系统

shutdown

关机

yum

基于RPM,从指定的服务器自动下载RPM包并安装
	yum [选项] 软件名
		-y
			忽略二次提醒
		yum install <package>	安装指定软件包
		yum remove <package>	卸载软件包
		yum update	更新所有已安装的软件包
		yum update <package>	更新指定软件包
		yum check-update	检查可用的更新(不执行更新)
		yum search <keyword>	搜索软件包
		yum info <package>	查看软件包信息
		yum list	列出所有已安装和可用的软件包
		yum list installed	列出已安装的软件包
		yum list available	列出可用的软件包
		yum repolist	查看已启用的仓库

rpm

通过包管理工具,安装rpm二进制文件
	rpm
		-ivh
			安装软件
		-qa
			查询所有已安装文件
		--prefix
			指定包安装路径
		-e
			卸载软件

tree

以树状结构显示目录内容
	tree [选项] [目录路径]
		-a	显示所有文件(包括隐藏文件)
		-d	仅显示目录(不显示文件)
		-L n	限制显示层级深度(如 -L 2 只显示2层)

crontab

分 时 日 月 周
-u:root用户才能使用
-e:编辑crontab文件
-l:列出crontab文件中的内容
-r:删除crontab文件

ifconfig

配置和显示网络接口信息

ifup

启动网卡
	ifup 网卡

kill

kill [选项] 进程号
	-s
		指定需要发送的型号,可以是信号名也可以是数字
	-p
		指定kill命令
	-l
		显示信号名称列表
	-9
		强行杀掉指定进程

top

top [选项]

netstat

netstat -tupln
	获取主机端口占用情况

ps

显示当前运行进程的快照
	ps 选项   
		-ef
			显示系统所有进程信息

free

提供简洁的查看系统内存使用情况
	free [选项]
		-h
			优雅显示

ping

ping ipaddr  检查与被测主机网络是否流畅

wget

命令行下载工具
	wget [选项] [URL]
		-O <文件名>	指定下载文件的保存名称
		-P <目录>	指定下载文件的保存目录
		-q	静默模式(不显示输出)
		-r	递归下载(下载整个网站)
		-c	断点续传(继续未完成的下载)
		-b	后台下载

curl

用于与服务器进行数据传输
	curl [选项] [URL]
		#下载文件(自动命名)
		curl -O https://example.com/file.zip
		 断点续传
		curl -C - -O https://example.com/bigfile.zip
		上传文件
		curl -T file.txt ftp://ftp.example.com/

env

查看当前所有环境变量

read

从键盘或文件的某一行文本中读入信息,并将其赋给一个变量
read -p:提示信息

history

查看历史命令

help

查看shell内部命令帮助文档
	help命令

man

查看命令的在线帮助手册
	man命令

sleep

sleep 时间

&

命令放后台执行
	command &

ip

替代传统的 ifconfig
	# 显示所有网络接口
	ip link show
	# 启用/禁用接口
	ip link set eth0 up
	ip link set eth0 down

ln

在不同位置访问同一文件或目录
	创建硬链接
		ln /path/to/file /path/to/hard_link
	创建软连接
		# 为文件创建软链接
		ln -s /path/to/original_file.txt /path/to/link_file
		# 为目录创建软链接
		ln -s /home/user/documents /home/user/docs_shortcut

4、一些需要注意的点

(1)ls -l结果中 “-”、“d”、“l”分别代表什么

-	普通文件	文本文件、二进制文件、压缩文件等常规文件。
d	目录(Directory)	包含其他文件或目录的文件夹。
l	符号链接(Link)	指向其他文件或目录的软链接(类似 Windows 的快捷方式)。

(2)su - 与su的区别

su - 和 su 的主要区别在于是否加载目标用户的环境变量和配置文件。不加-是不完全,临时的切换

(3)用enable如何设置开机自启

systemctl enable myapp.service

(4)$?代表什么意思

查看上一条命令是否成功

四、shell脚本

脚本开头为#!

系统变量

系统创建的,大写的,系统变量可以继承,用户变量不可以
export VAR =value		创建环境变量
echo $VAR		查看环境变量
unset VAR		清除变量

用户变量

用户自己创建的变量
set 	查看当前所有变量

位置变量

属于只读变量,$1,$2,$3……

特殊变量

s#		传递到脚本的参数个数
$$		脚本运行的当前进程id号
$@		传入脚本的所有参数
$?		显示最后命令的退出状态,0表示正确,其他任何值表示错误

流程控制语句

条件判断

if [ condition ]; then
	# 条件成立时执行的代码
elif [ condition2 ]; then
    # 条件2成立时执行的代码
else
    # 所有条件都不成立时执行的代码
fi
		-eq	等于
-ne	不等于
-gt	大于
-lt	小于
-ge	大于等于
-le	小于等于
-z "string"	字符串为空
-n "string"	字符串非空
-f file	文件存在
-d dir	目录存在

循环结构

for循环
for var in item1 item2 ...; do
    # 循环体
done

C风格for循环
for ((i=0; i<5; i++)); do
    echo "Count: $i"
done

while循环

while [ condition ]; do
    # 循环体
done

until循环

until [ condition ]; do
    # 循环体(条件为假时执行)
done

选择结构

case "$variable" in
pattern1)
    # 匹配 pattern1 时执行的代码
    ;;
pattern2)
    # 匹配 pattern2 时执行的代码
    ;;
*)
    # 默认情况
    ;;
esac

循环控制

	break	退出当前循环
	continue	跳过当前循环,进入下一次循环
	exit	退出整个脚本

五、如何验证服务启动成功了

(1)使用ps命令:ps -ef | grep 服务名
(2)使用netstat -tupln获取主机端口的占用情况
(3)使用curl直接访问,若能访问成功就代表服务起好了
(4)使用systemctl status 服务名,查看服务状态,若显示active(running)就表示服务起好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值