Day8 Linux压缩/解压 文件操作与磁盘管理 获取命令帮助 crontab 命令执行顺序控制和管道 文本处理

Day8

1 Linux上常用的压缩/解压工具

1.1 常见的压缩格式

文件后缀名说明
.zipzip 程序打包压缩的文件
.rarrar 程序压缩的文件
.7z7zip 程序压缩的文件
.tartar 程序打包,未压缩的文件
.gzgzip 程序(GNU zip)压缩的文件
.xzxz 程序压缩的文件
.bz2bzip2 程序压缩的文件
.tar.gztar 打包,gzip 程序压缩的文件
.tar.xztar 打包,xz 程序压缩的文件
tar.bz2tar 打包,bzip2 程序压缩的文件
.tar.7ztar 打包,7z 程序压缩的文件

1.2 zip命令:以zip压缩文件

cd /home/uesr 
zip -r -1 -q -o packeg.zip /home/user/Desktop -x ~/*.zip 

-r 参数表示递归打包包含子目录的全部内容
-q 参数表示为安静模式,即不向屏幕输出信息
-o 输出文件
-9 压缩级别(0-9 数字越高压缩的越小)
-x排除上一次创建的zip文件,防止重复打包
-e(encryption)加密
请使用绝对路径

1.3 du命令:查看压缩包

du -h -d 0 *.zip ~ | sort

-h, --human-readable
-d, --max-depth(所查看文件的深度)

1.4 unzip命令:解压压缩包

unzip -q file.zip -d ziptest

-d 指定目录,不指定就会解压到当前目录
-l 不解压文件,仅查看。
-O 指定编码类型 如 -O GBK

1.5 tar命令

tar -P -cf file.tar /home/user/Desktop

-P 保留绝对路径符
-c 表示创建一个 tar 包文件
-v 参数以可视的的方式输出打包的文件。
-f 用于指定创建的文件名,文件名必须紧跟在 -f 参数之后

tar -fc file.tar --> tar -f file.tar -c

mkdir tardir
tar -xf file.tar -C tardir

-x 解包一个文件
-C 指定解包的路径

tar -tf file.tar

-t 只查看,不解压缩

2 Linux文件操作与磁盘管理

2.1 df命令:查看磁盘的容量

2.2 du命令:查看目录容量

2.3 dd命令:读入读出、创建虚拟镜像文件(之后再细学)

2.4 mkfs命令:格式化磁盘

du -h -d 1 ~ # 查看 2 级目录的信息

3 Linux获取命令帮助

3.1 help参数:外部命令后加 --help

3.2 man命令:得到非常详细的帮助文档

章节数(LS)说明
1Standard commands (标准命令)
2System calls (系统调用)
3Library functions (库函数)
4Special devices (设备说明)
5File formats (文件格式)
6Games and toys (游戏和娱乐)
7Miscellaneous (杂项)
8Administrative Commands (管理员命令)
9其他(Linux 特定的), 用来存放内核例行程序的文档。

按q退出当前页面

info命令:需要安装

# 安装 info
sudo apt-get update
sudo apt-get install info
# 查看 ls 命令的 info
info ls

4 Linux 任务计划 crontab

详细用法说明:Cron Job: A Comprehensive Guide for Beginners 2021

4.1 crontab简介

crontab是帮助您定时完成重复性工作的程序,存放于crontab文件内,可以使得系统在固定的时间执行系统指令或Shell脚本,比如每天早上六点自动完成健康打卡。
crontab依靠daemon(守护程序)运行,daemon就好比摇篮里的婴儿,摇篮一停(特定时间)婴儿就会醒(计划的操作发生)。

crontab有这些缺陷

最短检查间隔:一分钟,也就是说每一分钟检查一次,您无法使得这段程序没59秒或更短运行一次。
不能部署在多台电脑上
没有自动重试机制

4.2 准备工作

4.2.1 检查rsyslog是否开启(有的发行版是会默认自行启动,如Ubuntu)

如未启动,或未安装,则需要您手动安装开启。

sudo apt-get install -y rsyslog
sudo service rsyslog start
4.2.2 检查crontab是否启动

如未启动则需要您手动启动

sudo cron -f &

4.3 corntab使用

4.3.1 添加计划任务
crontab -e

如果您是第一次使用corntab的话,那么系统会询问你使用那种编辑器。

4.3.2 crontab语法
* * * * * commend to execute

第一个*:分钟:1-59
第二个*:小时:0-23
第三个*:日:1-31
第四个*:月:1-12
第五个*:周:0-6:周日到周六(老外那边周日是一周的第一天)

37 17 * * 5 root/backup.sh 
# 这条命令代表了将在每周五的5:37pm执行备份程序
# 37 17 即17:37
# 5 即周五

*:所有可能的值(每天\每小时\每分钟等)
,:和(比如1,5可以表示周一和周五)
-:可以表示一段时间(比如1-5可以表示周一到周五)
/:每隔一段时间(比如 */12可以表示每12小时运行一次)
L:last,最后的(比如* * * * 3L代表每月最后一个周三)
W:weekday最近的工作日(比如如果12月01日是周六的话* * 1W * * 代表接下来第一个星期一,即12月03日)
#:指定某周的周几(我不知道怎么翻译合适,看看这个例子您应该就明白了,比如1#2代表这个月的第二个周一,这个功能应该是适配西方节假日的)
?:无特定值,在“日”和“周”使用

另外还请记得时区转换的问题

4.3.3邮件
4.4.3.1 关闭邮件

crontab会自动给您的本地邮箱发送邮件,如果您不想的话请添加>/dev/null 2>&1 在语句的最后

4.4.3.2 给指定邮箱发送邮件

您需要添加MAITO,例子如下

MAILTO="myname@hostinger.com"
0 3 * * * /root/backup.sh >/dev/null 2>&1
4.3.4 退出:按esc 输入":wq"

5 命令执行顺序控制和管道

5.1 顺序执行

5.1.1 简单的顺序执行:

在命令中加入";"以作分隔

5.1.2 选择性执行:

"&&"如果前面的命令执行结果为0则执行后面的,否则不执行。(前面的命令执行失败才执行后面的)
"||"如果前面的命令执行结果不为零则执行后面的,否则不执行(签名档命令执行成功才执行后面的)

5.2 管道

5.2.1 管道简介

管道是一种通信机制,用于进程间的通信或通过 socket 进行网络通信。
管道将每一个进程的输出(stdout)作为下一个进程的输入(stdin)。

管道的分类

匿名管道
在过滤程序时常会用到的管道,在命令行中由 | 分隔符表示
具名管道
具名管道是有名字的管道,通常在源程序中用到具名管道。

5.3 cut命令:打印每一行的某一字段

5.4 grep命令:在文本或stdin中查找匹配

grep [命令选项]… 用于匹配的表达式 [文件]…

5.5 wc命令:统计并输出一个文件中行、单词和字节的数目

参数含义
-l行数
-w单词数
-c字节数
-m字符数
-L最长行字节数

sort命令:排序

unip命令:去除重复,但只能去除上下两行都一样的情况

6 文本处理

6.1 tr命令:删除文本中的某些信息

tr [option]…SET1 [SET2]

参数含义
-d删除和 set1 匹配的字符,注意不是全词匹配也不是按字符顺序匹配
-s去除 set1 指定的在输入文本中连续并重复的字符
# 删除 "hello" 中所有的'o','l','h'
$ echo 'hello' | tr -d 'olh'
# 将"hello" 中的ll,去重为一个l
$ echo 'hello' | tr -s 'l'
# 将输入文本,全部转换为大写或小写输出
$ echo 'input some text here' | tr '[:lower:]' '[:upper:]'

6.2 col命令:将Tab换成等量空格或将空格换成等量Tab

参数含义
-x将Tab转换为空格
-h将空格转换为Tab(默认选项)

6.3 join命令:将两个文件中包含相同内容的那一行合并在一起

参数含义
-t指定分隔符,默认为空格
-i忽略大小写的差异
-1指明第一个文件要用哪个字段来对比,默认对比第一个字段
-2指明第二个文件要用哪个字段来对比,默认对比第一个字段

6.4 paste命令:将多个文件合为一个

paste [option] file…

参数含义
-d指定合并的分隔符,默认为 Tab
-s不合并到一行,每个文件为一行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值