Loading

网络安全-Linux常用命令

安装上传下载的软件包

yum install lrzsz -y

下载:linux-->windows

sz -y /etc/hosts

上传:windows-->linux

rz -y

系统命令行常用快捷键

在Linux系统中使用快捷键,可以有效提高命令行操作界面的执行效率。

序号 快捷键 解释说明
最有用快捷键
01 tab 命令或路径,以及文件等信息的补全键,Linux最常用快捷键
移动光标快捷键
01 Ctrl+A 光标回到命令行首
02 Ctrl+E 光标回到命令行尾
03 Ctrl+方向键右 光标向右以字符串为单位进行快速移动
04 Ctrl+方向键左 光标向左以字符串为单位进行快速移动
剪切、粘贴、清除快捷键
01 Ctrl+K 剪切(删除)光标处到行尾的字符
02 Ctrl+U 剪切(删除)光标处到行首的字符
03 Ctrl+W 剪切(删除)光标前的一个单词
04 Ctrl+Y 粘贴ctrl+U,crtl+k,ctrl+w删除的文本
系统管理控制快捷键
01 Ctrl+C 中断终端正在执行的任务或者取消整行命令输入
02 Ctrl+L 清除屏幕上的所有内容,并在屏幕上面开始一个新行,等同clear命令
03 Ctrl+D 退出当前shell命令行
04 Ctrl+Z 暂停执行在终端运行的任务(主要后面服务知识章节会使用)
05 Ctrl+S 锁定终端,使之无法输入内容(了解)
06 Ctrl+Q 解锁执行Ctrl+S的锁定状态(了解)
重复执行命令快捷键
01 Ctrl+R 搜索命令行使用过的历史命令记录
02 Esc+.(点) 获取上一条命令的最后的部分(空格分隔)

获取帮助信息方法

# 以cd命令为例
1.man cd 
2.cd --help
3.help cd

说明:可以利用字母Q退出帮助信息查看页面;可以利用/具体内容实现对指定信息检索

系统运行相关命令

# 查看当前用户
whoami

关机重启注销命令

`shutdown是一个用来安全关闭或重启Linux系统的命令,系统在关闭重启之前会通知所有的登录用户,系统即将关闭重启,此时所有的新用户都不可以登录

-r	重启系统,而不是关机,这个参数在系统重启时常用
-h	关闭系统,这个参数在系统关机时常用
-c	取消正在执行的shutdown指令
# 指定多久关闭/重启系统
# 关闭主机系统(10表示10分钟后)
shutdown -h 10
# 重启主机系统
shutdown -r 10

# 指定时间关闭/重启系统
# 关闭主机系统
shutdown -h 11:00
# 重启主机系统
shutdown -r 11:00

# 实现立即关闭/重启系统
# 关闭主机系统
shutdown -h 0
shutdown -h now
# 重启主机系统
shutdown -r 0
shutdown -r now

# 取消关闭/重启系统计划
shutdown -c

说明:以上操作实践过程必须使用系统管理员用户(root)进行操作。

# 关机
halt
poweroff
reboot
systemctl poweroff
# 重启
systemctl reboot
# 注销退出系统命令:Linux多用户管理的系统
logout
# 注销退出当前用户窗口,等价于使用快捷键ctrl+d
exit

系统目录相关命令

目录层级结构查看-tree

01	-a	显示所有文件,包含隐藏文件
02	-d	只显示目录结构中的目录信息
03	-L	遍历目录的最大层数,level为大于0的正整数
04	-F	在执行文件、目录、socket、符号链接、管道名称等不同类型文件的结尾,各自加上相应符号
常见符号信息“*” “/” “=” “@” “|”
# 查看确认tree软件程序是否存在
rpm -qa tree
# 最小化安装的系统是没有的,需要安装
yum install -y tree
# 不带任何参数获取目录结构数据信息
tree 从当前目录开始打印
# 以树形结构显示目录下的所有内容(包含隐藏信息)
tree -a
# 只列出根目录下第一层的目录结构信息
tree -L 1 /
# 只显示目录结构信息中的所有目录信息
tree -d /boot

显示当前路径信息

# 查看当前操作状态所在路径
pwd

切换目录路径信息

# cd
01	-	若只使用-选项,表示切换目录到当前用户的上一次所在的目录路径
02	~	若只使用~选项,表示切换目录到当前用户的家目录所在的目录路径(直接执行cd效果一致)
03	..	若值使用..选项,则将会从当前目录切换到目录的上一级目录所在的路径

进行目录创建操作

# mkdir
01	-p	01. 递归创建目录,递归的意思是父目录及子目录及子目录...一并创建
 	 	02. 即使要创建的目录事先已存在,也不会报错提示目录存在
02	-m	设置新创建目录的默认目录对应的权限(在权限章节说明)
03	-v	显示创建目录的过程

# 创建多级目录
mkdir -p /opt/x/xx/xxx

进行目录删除操作

# rm
01	-f	强制删除,忽略不存在的文件,不提示确认
02	-i	在删除前需要确认
03	-I	在删除超过三个文件或者递归删除前要求确认
04	-r	递归删除目录及其内容(针对目录删除使用参数)

# 删除文件夹
rm -rf 名称

进行目录改名操作

# mv
mv  选项     源文件   目标文件
01	-f	若目标文件已经存在,则不会询问而是直接覆盖
02	-i	若目标文件已经存在,则会询问是否覆盖(默认)
03	-n	不覆盖已经存在的文件(安全功能)
04	-t	指定mv的目标目录,适用于移动多个源文件到一个目录的情况
此时目标目录在前,源文件在后
05	-u	在源文件比目标文件新,或者目标文件不存在时才进行移动

系统文件相关命令

# 创建文件信息命令
touch
01	-a	只更改指定文件的最后访问时间
02	-d STRING	使用字符串STRING代表时间作为模板设置指定文件的时间属性
03	-m	只更改指定文件的最后修改时间
04	-r file	将指定文件的时间属性设置为与模板文件file的时间属性相同
05	-t STAMP	使用[[CC]YY]MMDDhhmm[.ss]格式的时间设置文件的时间属性。
格式的含义从左到右依次为:世纪、年、月、日、时、分、秒
# 批量创建文件
touch xxx{01..10}

# 检查文件是否存在
ls
该命令有点类似于DOS系统下的dir命令,有趣的是Linux下其实也有dir命令,但企业常用数据信息查看命令是ls。
01	-l	使用长格式列出文件及目录信息 ※
02	-a	显示目录下的所有文件,包含以“.”字符开始的隐藏文件 ※
03	-t	根据最后的修改时间(mtime)进行排序
默认是以文件名进行排序
04	-r	依相反顺序排序
05	-F	在条目后加上文件类型的指示符号(*、/、=、@、|)。
06	-p	只在目录后面加上 /
07	-i	显示inode节点信息
08	-d	当遇到目录时,列出目录本身而非目录内的文件
并且不跟随符号链接 ※
09	-h	以人类可读的信息显示文件或目录的大小,如(1k 234M 2G)
10	-A	列出所有文件,包含隐藏文件,但不包含“.”与“..”这两个目录
11	-S	根据文件大小进行排序
12	-R	递归列出所有子目录
13	-x	逐行列出项目而不是逐栏列出
14	-X	根据扩展名排序
15	-c	根据状态改变时间(ctime)排序
16	-u	根据最后访问时间(atime)排序
17	--color={never,always,auto}	不同的文件类型显示颜色参数
· never表示不显示
· always表示总是显示
· auto表示自动显示
18	--full-time	以完整的时间格式输出
19	--time-style={full-iso,long-iso,locale}	以不同的时间格式输出,long-iso效果最好
20	--time={atime,ctime}	按不同时间属性输出
· atime表示按访问时间
· ctime表示按改变权限属性时间
如果不加此参数则默认为最后修改的时间。

# 查看文件数据信息
cat
01	-n	输出内容显示编号
02	-b	与-n选项功能类似,但忽略显示空白行行号
03	-s	当遇到有连续的两行及以上的空白行,就替换为一行空白行
04	-E	在每一行的行尾显示$符号

# 拷贝文件数据信息
cp
01	-p	复制文件时保持源文件的所有者、权限信息以及时间属性
02	-r	递归复制目录,即复制目录下的所有层级的子目录及文件(复制目录)
03	-i	在覆盖已有文件前提示用户确认(默认参数)
04	-t	默认情况下命令格式是“cp 源文件 目标文件”,使用-t参数可以颠倒顺序
格式为 cp -t 目标信息 源信息
# cp -p
--- 不加-p文件时间属性信息会发生变化
--- 加上-p文件时间属性信息未发生变化

# 移动剪切数据信息
mv
01	-f	若目标文件已经存在,则不会询问而是直接覆盖
02	-i	若目标文件已经存在,则会询问是否覆盖(默认)
03	-n	不覆盖已经存在的文件(安全功能)
04	-t	指定mv的目标目录,适用于移动多个源文件到一个目录的情况
此时目标目录在前,源文件在后
05	-u	在源文件比目标文件新,或者目标文件不存在时才进行移动

# 删除文件数据操作
rm
01	-f	强制删除,忽略不存在的文件,不提示确认
02	-i	在删除前需要确认
03	-I	在删除超过三个文件或者递归删除前要求确认
04	-r	递归删除目录及其内容(针对目录删除使用参数)

文本编辑与处理命令

系统基本编辑命令

# 安装vim软件工具包
yum install -y vim
	普通模式:移动光标的操作
01	大写字母G	将光标移动到文件的最后一行
02	gg	将光标移动到文件的第一行,等价于1gg或1G
03	0	数字0,将光标从所在位置移动到当前行的开头
04	$	从光标所在位置将光标移动到当前行的结尾
05	ngg/nG	n为数字,移动到文件的第n行,可配合:set nu进行查看
 	进入编辑模式命令
01	i	在当前光标所在处插入文字
02	I	在当前所在行的行首的第一个非空格符处开始插入文字,与A相反
03	a	在当前光标所在处的下一个字符处插入文字
04	A	在当前所在行的行尾的最后一个字符处开始插入文字,与I相反
05	o	在当前所在行的下一行处插入新的一行
06	O	在当前所在行的上一行处插入新的一行
07	C	删除光标所在位置到行尾内容进入编辑状态
08	cc	清空当前行的所有内容信息并进入编辑状态
 	普通模式:复制、粘贴、删除
01	yy	复制光标所在的当前行
02	nyy	n为数字,复制光标开始向下共n行
03	p/P	p将已复制的数据粘贴到光标的下一行,P则为粘贴到光标的上一行
04	dd	删除(剪切)光标所在的当前行
05	ndd	n为数字,删除从光标开始向下共n行
06	d1G	删除当前行至第一行
07	dG	删除当前行至最后一行
08	d0	删除当前光标文本至行首
09	d$	删除当前光标文本至行尾
 	普通模式:搜索、替换、撤销	 
01	/xiaoQ	从光标位置开始,向下寻找名为xiaoQ的字符串
02	?xiaoQ	从光标位置开始,向上寻找名为xiaoQ的字符串
03	/xiaoQ\c	忽略大小写:从光标位置开始,向下寻找名为xiaoQ的字符串,并且忽略大小写
04	n	从光标位置开始,向下重复前一个搜索的动作
05	N	从光标位置开始,向上重复前一个搜索的动作
06	:n1,n2s/A/B/g	n1,n2为数字,在第n1行和n2行间寻找A并替换为B
07	:%s#A#B#g	将符合A的内容全部替换为B,斜线为分隔符,可以用@、#等替代
08	u	恢复前一个执行过的操作(进行操作撤销)
09	ctrl+r	恢复前一个撤销过的操作(取消操作撤销)
 	命令行模式:	 
01	:wq	退出并保存
02	:wq!	退出并强制保存,“!”为强制的意思
03	:q!	强制退出,不保存
04	:set nu	显示行号
05	:set nonu	与set nu相反,取消行号
06	:n1,n2moven3	将文件第n1行到第n2行移动到第n3行
07	:n1,n2copyn3	将文件第n1行到第n2行复制到第n3行
08	:set ic	开启忽略大小写字母的查找功能
09	:set noic	取消忽略大小写字母的查找功能
10	:noh	取消搜索信息高亮效果
11	:set list	显示行尾标识信息,以及部分特殊标记信息

批量操作技巧

# 批量删除多行指定信息
进入批量编辑模式 ctrl + v 可视块
进行批量删除操作 d 或者 x
# 批量增加多列指定信息
进入批量编辑模式 ctrl + v 可视块
选择批量编辑区域 利用方向键
进入插入编辑模式 大写字母 I 或者 shift + i
开始编辑内容信息
退出批量编辑操作 按键盘 esc

编辑出现异常中断

image-20230831214159583

# 异常问题解决处理办法:
恢复临时文件信息方法
	vi -r 需要编辑文件
显示临时文件信息方法
	vi -r/-L
取消生成临时文件方法
	vi -n 需要编辑文件
vim命令进行编辑文件时:

编辑指定文件信息,输入字母R,表示恢复临时文件中原有内容
利用命令查看文件内容是否正常
删除原有文件的临时文件
利用rm命令删除指定的临时文件/利用快捷方式字母D删除指定的临时文件

# 交换文件一般格式为:.xxx.swp
# 不是重要数据的话直接删除这个交换文件可以直接解决上面的异常问题

文件编辑命令扩展

# echo
01	-n	不要自动换行
02	-E	不解析转义字符(默认参数)
03	-e	若字符串中出现以下字符,则需要进行特别处理,而不会将它当成一般文字输出
·\a:发出警告声
·\b:删除前一个字符
·\c:最后不加上换行符号
·\f:换行但光标仍旧停留在原来的位置
·\n:换行且光标移至行首
·\r:光标移至行首,但不换行
·\t:插入tab
# 使用-n参数实现不换行功能
echo -n "x1";echo "x2"
# \t对齐输出
[root@hkw home]# echo -e "01\tLinux\tx01\n02\tpython\tx02\n03\tmysql\tx03"
01	Linux	x01
02	python	x02
03	mysql	x03
# 输出到文件(覆盖)
echo "hkw" > 1.txt
# 追加到文件
echo "hkwpro" >> 1.txt

# cat
01	-n	从第一行开始对所有输出的内容按行编号
02	-b	与-n选项功能类似,但忽略显示空白行行号
03	-s	当遇到有连续的两行以上的空白行,就替换为一行空白行
04	-E	在每一行的行尾显示$符号
# 清空文件
> 1.txt
cat /dev/null > 1.txt
# 合并文件
cat 1.txt 2.txt > 3.txt
# 非交互式文件增加内容(可以输入多行,最后以Eof结尾,Eof可以换成其他的,只是一个结束标志)
cat > 1.txt << Eof

# more
一页一页地显示文件内容
01	-num	指定屏幕显示大小为num行
02	+num	从行号num开始显示
03	Enter	向下显示1行
04	空格键	向下滚动一屏
05	b	返回上一屏
06	=	输出当前行的行号
07	/查找的文本	查找指定文本
08	v	调用vi编辑器
09	q	退出more查看状态
# more打印时按空格键往下翻一屏,按 b 往上翻一屏
若想查找 3306,则先输入一个 / ,然后输入 3306 敲回车即可找到。
# 只查看指定几行信息
more -2 /etc/services 
# 只查看指定行之后的内容信息
more +666 -3 /etc/services

# less
类似于more命令
less命令在读取文件内容时,不需要一次性将整个文件加载之后再显示,而是会根据需要来加载文件内容。
并且less命令支持[page up] [page down]等按键功能,便于查看文件的内容。
01	-i	搜索时忽略大小写
02	-m	显示类似于more命令的进度百分比
03	-N	显示每行的行号
04	-s	将连续空行压缩为一行显示
05	-e	当文件显示到结尾时自动退出文件,若不使用此选项则需要使用交互命令q退出less
交互操作:
在交互模式下,less命令也是基于more命令和vi命令的。
01	b	向前翻一页
02	空格键	向后翻一页
03	方向键 ↑	向上滚一行
04	方向键 ↓/回车键	向下滚一行
05	/字符串	向下搜索字符串
06	?字符串	向上搜索字符串
07	n	向后查找下一个匹配的文本
08	N	向前查找前一个匹配的文本
09	v	进入vi编辑界面
10	G	移动到最后一行
11	gg	移动到第一行
12	h	显示帮助界面
13	q	退出less命令
# 显示行号方法
less -N /etc/services 

# head
head命令用于显示文件头部的内容,执行head命令默认会输出文件的开头10行内容。
01	-n<行数>	指定显示的行数
02	-c<字节数>	指定显示的字节数
03	-q	不显示包含给定文件名的文件头
04	-v	总是显示包含给定文件名的文件头
head -n 5 services
head -5 services
# 显示文件除最后几行之外的内容
head -n -2 1.txt  # 除了最后两行的内容

# tail
01	-c<数目>	指定显示的字节数
02	-n<行数>	指定显示的行数
03	-f	实时输出文件变化后的追加的数据
04	-F	功能等同于 -f --retry
05	--retry	不停尝试打开文件直到打开为止,与-f参数合用
06	--pid=进程号	与-f参数连用,在进程结束后自动退出tail命令
07	-s秒数N	监视文件变化的间隔秒数
08	-q	不显示包含给定文件名的文件头
09	-v	总是显示包含给定文件名的文件头
# 从第几行开始显示文件内容
tail -n +2 1.txt 
# 通过tail命令实时监控文件的变化 重点
tail -f /var/log/messages

基础命令总结

ip               查看网络信息
nmtui            图形配置网络信息
man/help/info    帮助命令
shutdown         关机重启命令
tree             显示目录结构           
ls               查看目录下数据信息
mkdir            常见目录信息
rm               删除数据信息
cp               复制备份数据信息
pwd              查看当前所在路径
cd               切换目录路径信息
touch            创建文件信息(空文件)
cat              查看文件信息 
mv               移动或重命名文件
vi/vim           文本编辑命令              
ping             测试网络连通性
rz/sz            上传下载数据命令(win---linux)
yum              下载数据包并安装
wget             下载指定数据包
curl             模拟浏览器访问网站页面

{}    --- 利用花括号生成序列信息
!    --- 在vim中表示强制
\     --- 转义符号(将特殊的字符变为不同符号 将没有左右字符信息变得有意义)
$     --- 可以识别变量(照妖镜 可以还原妖怪真身)

--- 覆盖重定向(标准输出重定向)
        清楚文件内所有信息(慎用)
>    --- 追加重定向(标准输出追加重定向)
>    2>    --- 错误覆盖重定向(错误输出重定向)
>    2>>   --- 错误追加重定向(错误输出追加重定向)
>    <     --- 标准输入重定向
>    <<    --- 标准输入追加重定向

文本数据处理命令

# grep
grep [option] [pattern] [file]
          选项        匹配模式   文件
grep命令里面的匹配模式,就是你要获取的内容,既可以是普通的文字符号也可以是正则表达式。
01	-v	显示不匹配的行,或者也就是排除某些行,显示其他行信息
02	-n	显示匹配的行及行号
03	-i	不区分大小写,默认是区分大小写的
04	-c	只统计匹配的行数,注意不是匹配的次数
05	-w	以单词为单位进行过滤
06	-o	只输出匹配的内容
[root@hkw home]# cat grep_test.txt 
test
xiaoQ
xiaoQ Linux
xiaoQ xiaoQ
xiaoT
# 使用grep过滤不包含xiaoQ字符串的行(-v参数实践)
grep -v "xiaoQ" grep_test.txt 
# 使用grep命令显示过滤后的内容的行号(-n参数实践)
grep -n "xiaoQ" grep_test.txt 
# 使用grep命令不区分大小写进行过滤(-i参数实践)
grep -i "xiaoQ" grep_test.txt 
# 计算匹配的字符串的数量(-c参数实践),默认区分大小写
grep -c "xiaoQ" grep_test.txt 
# 只输出匹配的内容(-o参数实践)
grep -o "xiaoQ" grep_test.txt 
# 利用grep搜索符合要求的用户(-w参数实践)
[root@hkw home]# cat 3.txt 
张三     男  爱好女
张三丰  男  爱好太极
[root@hkw home]# grep "张三" 3.txt
张三     男  爱好女
张三丰  男  爱好太极
[root@hkw home]# grep -w "张三" 3.txt
张三     男  爱好女

# 文本数据处理命令-tr
01	-d	删除字符 ※
02	-s	保留连续字符的第一个字符,删除其他字符
03	-c	使用第一个字符串(set1)的补集,取反
# 逐个字符替换
[root@hkw home]# cat tr_test.txt 
I am xiaoQ teacher!
I teach Linux.
I like read book.
[root@hkw home]# tr teach 123456 tr_test.txt 
tr: 额外的操作数 "tr_test.txt"
Try 'tr --help' for more information.
[root@hkw home]# tr teach 123456 < tr_test.txt 
I 3m xi3oQ 123452r!
I 12345 Linux.
I lik2 r23d book.
# 说明:tr命令读取文件内容需要用到标准输入重定向符号<, 并且tr替换信息是按照字符1对1进行替换的。
# 将文件中出现的xiaoQ过滤掉,不做输出显示
[root@hkw home]# tr -d "xiaoQ" < tr_test.txt 
I m  techer!
I tech Lnu.
I lke red bk.

查找命令

# which
# 此命令用于显示命令的全路径,可以用于确认指定命令存储在什么路径下,which命令查找的范围是PATH环境变量的路径。
[root@hkw ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@hkw ~]# which cat
/usr/bin/cat
[root@hkw ~]# which cd
/usr/bin/cd

# whereis
# 此命令用于定位指定命令的可执行文件、源码文件及man帮助文件的路径。
01	-b	查找可执行文件
02	-m	查找man帮助文件
03	-s	查找源代码文件
[root@hkw ~]# whereis ntpdate
ntpdate: /usr/sbin/ntpdate /usr/share/man/man8/ntpdate.8.gz
# 只查找可执行文件
[root@hkw ~]# whereis -b ntpdate
ntpdate: /usr/sbin/ntpdate
# 只查找man帮助文件
[root@hkw ~]# whereis -m ntpdate
ntpdate: /usr/share/man/man8/ntpdate.8.gz
# 只查找源代码文件
[root@hkw ~]# whereis -s ntpdate
ntpdate:

# locate
在linux系统里有一个名为mlocate.db的数据库文件,这个文件包含系统文件的文件名及对应的路径信息。
locate命令查找文件时不用遍历磁盘,而是直接查找mlocate.db文件,这样可以快速给出结果。
如果是新添加的文件,那么mlocate.db文件就会没有记录,需要使用updatedb命令更新一下mlocate.db数据库
默认该命令在CentOS 7中默认未安装,如果需要使用此命令,则需要提前安装和配置:
[root@hkw ~]# yum install -y mlocate
[root@hkw ~]# updatedb
01	-c	不显示匹配的内容,只显示匹配到的行数
02	-i	匹配时忽略大小写
03	-r	支持基本正则表达式匹配
04	--regex	支持扩展正则表达式匹配
# 查找文件路径
locate cat
# 说明:虽然locate命令可以用于检索数据信息,但是对于检索的数据不够精准
# 命令信息:find (非常重要一个命令)4剑客命令之一
# find     查找路径        选项       操作语句
01	pathname	命令所查找的目录路径,如用 "." 表示当前目录,用 / 来表示系统根目录
 	Options	参数信息
01	-depth	从指定目录下最深层的子目录开始查找
02	-maxdepth levels	查找的最大目录级数,levels为自然数
03	-mindepth levels	查找的最小目录级数,levels为自然数
 	Tests	限定的条件
01	-mtime [-n|n|+n]	按照文件的修改时间来查找文件(这个参数常用)
·-n 表示文件更改时间距现在n天以内
·+n 表示文件更改时间距现在n天以前
·n 表示距现在第n天
02	-atime [-n|n|+n]	按照文件的访问时间来查找文件,单位是天
03	-ctime [-n|n|+n]	按照文件的状态改变时间来查找文件,单位是天
04	-amin	按照文件的访问时间来查找文件,单位是分钟
05	-cmin	按照文件的状态改变时间来查找文件,单位是分钟
06	-mmin	按照文件的修改时间来查找文件,单位是分钟
07	-group	按照文件所属的组查找文件
08	-name	按照文件名查找文件,只支持“*”“?”“[]”等特殊通配符
09	-newer	查找更改时间比指定文件新的文件
10	-path pattern	指定路径样式,配合-prune参数排除指定目录
11	-perm	按照文件权限来查找文件
12	-size n[cwbkMG]	查找文件长度为n大小的文件,带有cwbkMG时表示长度以字节计
13	-type	查找某一类型的文件,具体说明如下
b 块设备文件
c 字符设备文件
d 目录文件 *
p 管道文件
l 符号链接文件
f 普通文件 *
s socket文件
 	Actions	执行动作方式
*01	-delete	将查找出的文件删除(慎用)
*02	-exec	对匹配的文件执行该参数所给出的执行命令
03	-ok	与-exec的作用相同,但在执行每个命令之前,都会让用户来确定是否执行
04	-prune	使用这一选项可以使find命令不在特殊指定的目录中查找
05	-print	将匹配的文件输出到标准输出(默认功能,使用中可省略)
 	OPERATORS	可以支持逻辑运算符
01	!	取反进行查找数据
02	-a	取交集,全拼为 and
03	-o	取并集,全拼为 or
# 1.根据时间信息查找数据文件(access time 访问时间 ctime 创建时间(错误)mtime(修改时间) )
# 解释说明
-4 表示文件更改时间距现在4天以内
+4 表示文件更改时间距现在4天以前
4 表示文件更改时间距现在第4天
# 查找当前目录,两天内被访问的文件
[root@hkw ~]# find . -atime -2
# 2.根据文件名称信息查找
[root@hkw ~]# find / -name "*.log"
# 3.根据指定文件类型查找(并实现反向查找)
[root@hkw ~]# find / -type d
# 4.根据文件权限信息进行查找
[root@hkw ~]# find /root -perm 755
# 5.根据指定文件大小查找
# 根据字节进行查找
[root@hkw ~]# find . -size +1000c  
-- 查找大于1000字节文件
[root@hkw ~]# find . -size -1000c
-- 查找小于1000字节文件
# 根据其他大小单位查找
[root@hkw ~]# find . -size +1k
[root@hkw ~]# find . -size -10M
[root@hkw ~]# find . -size -10G
# 6.查找文件时希望忽略某个目录
[root@hkw data]# find /data -path "/data/xiaoQ_dir03" -prune -o -name "linux01" -print
# 7.查找文件时希望忽略多个目录
[root@hkw data]# find /data \( -path "/data/xiaoQ_dir03" -o -path "/data/xiaoQ_dir02" \) -prune -o -name "linux01" -print
使用圆括号可以将多个表达式结合在一起,但是圆括号在命令行中另有特殊含义,所以需要利用\进行转义。
而且两个括号和参数之间要有空格,这是语法格式要求。
# 8.查找不同目录深度的文件数据
# 查找最多三级目录下的xiaoQ文件
[root@hkw data]# find ./dir01/ -maxdepth 3 -type f -name "xiaoQ.txt"
# 查找至少三级目录下的xiaoQ文件
[root@hkw data]# find ./dir01/ -mindepth 3 -type f -name "xiaoQ.txt"   
# 9.find命令结合-exec参数对数据进行批量处理
# 查询指定文件的属性信息
[root@hkw data]# find . -type f -name "xiaoQ.txt" -exec ls -l {} \;
-exec后面跟的是command命令,最后以分号 ;作为结束标志,由于各个系统分号会有不同的意义,所以要转义
** {}的作用,表示代替前面find命令找到的文件或目录数据信息 **,并{}后面要有空格
command可以是其他任何命令。
# 实现文件批量复制操作
[root@hkw data]# find . -type f -name "xiaoQ.txt" -exec cp {} /tmp \;
# 实现文件批量删除操作
[root@hkw data]# find . -type f -name "xiaoQ.txt" -exec rm -f {}  \;
# 10.find命令结合xargs命令对数据进行批量处理
此命令是向其他命令传递行参数的一个过滤器,它能够将管道或者标准输入传递的数据转换为xargs命令后所跟命令的行参数。并且此命令单独使用可以实现对信息分组作用。
01	-n	指定每行最大参数量n,也就是可以将标准输入的文本划分为多行
02	-d	自定义分隔符
03	-i	以{}替代前面的结果
04	-I	指定一个符号替代前面的结果,而不用-i参数默认的{}
05	-p	提示让用户确认是否执行后面的命令,y表示执行,n表示不执行
06	-0	用null代替空格作为分隔符,配合find命令的-print()选项的输出使用
# 查询指定文件属性信息
[root@hkw data]# find . -type f -name "xiaoQ.txt"|xargs ls -l
# 实现指定文件批量复制
[root@hkw data]# find . -type f -name "xiaoQ.txt"|xargs -i cp {} /tmp 
[root@hkw data]# find . -type f -name "xiaoQ.txt"|xargs -I [] cp [] /tmp 
或者
[root@hkw data]# find . -type f -name "xiaoQ.txt"|xargs  cp -t /tmp
说明:| 管道符号,表示将符号前面命令产生的数据结果交给后面的命令进行处理
# 多行信息变单行显示/单行信息进行分组显示
[root@hkw data]# cat test.txt 
1 2 3 4 5 6
7 8 9
[root@hkw data]# xargs < test.txt 
1 2 3 4 5 6 7 8 9

# find命令结合exec和xargs使用的区别
区别	-exec	xargs
区别一	该参数是将查找的结果文件名逐个传递给后面的命令来执行,如果文件多时则执行的效率低	该命令是将查找的结果一次性传递给后面的命令执行,命令执行效率高,可以使用-n参数控制一次性传递文件的个数
区别二	文件名若有空格等特殊字符也照常处理	处理特殊文件名,需要采用特殊方式

压缩/解压命令

# tar [option] [package]   [file]
01	z	通过gzip方式压缩或解压
02	j	通过bzip2方式压缩或解压
03	c	创建新的tar包
04	v	显示详细的tar命令执行过程
05	f	指定压缩文件的名字和路径信息
06	t	不解压只是查看tar包内的数据信息
07	p	保持文件的原有属性
08	P(大写)	以绝对路径打包,危险参数
09	x	解压tar包
10	C	指定解压的目录路径
11	--exclude=PATTERN	打包是排除不需要处理的文件或目录
12	-X 文件名	从指定文件读取不需要处理的文件或目标列表
13	-N 时期	仅打包比指定日期新的文件,可用于增量打包备份
14	-h	打包软链接文件指向的真实源文件
15	--hard-dereference	打包硬链接文件
# 压缩文件
[root@hkw ~]# tar zcvf www.tar.gz /html/
# 解压文件
[root@hkw ~]# tar zxvf www.tar.gz
# 打包软件链接文件方法
[root@hkw etc]# tar zcfh local_h.tar.gz ./rc.local 
[root@hkw etc]# tar tvf local_h.tar.gz 
说明:在企业环境中,对大量数据打包压缩时,无法确认是否存在软链接文件,建议打包时也要加上h参数。
# 对筛选出的数据文件进行打包备份
[root@hkw ~]# find . -type f -name "*.html"|xargs tar zcvf www_xargs.tar.gz
或者
[root@hkw ~]# tar zcvf www.tar.gz `find . -type f -name "*.html"`
-- 利用反引号特性,实现对检索后的数据批量打包压缩

批量执行命令之间的区别

分号:顺序地独立执行各条命令,彼此之间不关心是否失败,所有命令都会执行。
&&:顺序执行各条命令,只有当前一个执行成功时候,才执行后面的。
||:顺序执行各条命令,只有当前面一个执行失败的时候,才执行后面的。
posted @ 2023-09-05 21:16  hkwJsxl  阅读(75)  评论(0编辑  收藏  举报