前言
第二天我们学习了 Linux 的一些简单基础命令,本篇将讲一些比较高级的命令以及操作。
👇所有学员需加入每日一练活动群👇
一、高级命令
1、配置网络 YUM 源
可以参考 CentOS 源使用帮助 来一键配置网络镜像源:
1 2 3 4 5 6 7 8 9 10 11
| sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.ustc.edu.cn/centos|g' \ -i.bak \ /etc/yum.repos.d/CentOS-Base.repo
AI写代码bash
* 1 * 2 * 3 * 4
|
首先确保可以联网,才可以使用上述方式,替换之后请运行 yum makecache 更新缓存。
如果不能联网,咱们也可以配置离线本地 YUM 源,这个就需要使用到第一课下载的 ISO 安装包,首先手动挂载 ISO 安装包:

然后,手动 mount 系统镜像源:
1 2 3 4 5
| mount /dev/cdrom /mnt
AI写代码bash
* 1
|
配置离线本地镜像源:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| mkdir /etc/yum.repos.d/bak mv /etc/yum.repos.d/* /etc/yum.repos.d/bak { echo "[local]" echo "name=local" echo "baseurl=file:///mnt" echo "enabled=1" echo "gpgcheck=0" } >/etc/yum.repos.d/local.repo
AI写代码bash
* 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9
|
查看本地镜像源:
1 2 3 4 5
| yum repolist all
AI写代码bash
|

如上,则代表配置成功!
尝试安装一个 zip:
1 2 3 4 5
| yum install -y zip
AI写代码bash
* 1
|
2、配置防火墙
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| ## 开启指定端口 80 firewall-cmd --zone=public --add-port=80/tcp --permanent
## 重启防火墙 firewall-cmd --reload
## 查询端口号80 是否开启: firewall-cmd --query-port=80/tcp
## 查询哪些端口开启 firewall-cmd --list-port
## 关闭防火墙 systemctl stop firewalld
## 查看防火墙状态 systemctl status firewalld
## 设置开机不自启 systemctl disable firewalld
AI写代码bash
* 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20
|
3、查找和替换
查找文件名和内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| ## 在根目录下查找文件 lucifer.txt,表示在整个硬盘查找 find / -name lucifer.txt
## 查找根目录下所有包含 lucifer 的文件 find / -name '*lucifer*'
## 查找当前目录下所有包含 lucifer 的文件 find . -name '*lucifer*'
## 查找在系统中最后24小时里修改过的文件 find / -mtime -1
## 查找当前目录2天前的文件 find . -type f -mtime +2 -exec ls -l {} \;
## 删除当前目录2天前的文件 find . -type f -mtime +2 -exec rm {} \;
## 查找文件内容 grep "lucifer" lucifer.txt
AI写代码bash
* 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20
|
以上命令可以配合正则表达式来使用。
替换文件内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| ## 替换文件中的book为books sed -i 's/book/books/g' file
## 删除空白行 sed '/^$/d' file
## 删除文件的第2行 sed '2d' file
## 删除文件中所有开头是test的行 sed '/^test/'d file
AI写代码bash
|
4、配置定时任务
有时候我们需要每天定时去做一个操作,比如备份文件,拷贝文件,删除文件等等,我们避免每天重复性的工作,只需要配置一个定时任务即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 5 * * * * ls 指定每小时的第5分钟执行一次ls命令 30 5 * * * ls 指定每天的 5:30 执行ls命令 30 7 8 * * ls 指定每月8号的7:30分执行ls命令 30 5 8 6 * ls 指定每年的6月8日5:30执行ls命令 30 6 * * 0 ls 指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。] 30 3 10,20 * * ls 每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段] 25 8-11 * * * ls 每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
30 6 */10 * * ls 每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ] 50 7 * * * root run-parts /etc/cron.daily 每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
AI写代码bash
|
cron 服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次 /etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
1 2 3 4 5 6 7 8 9 10 11
| 01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本 02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行 /etc/cron.weekly内的脚本 42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本
AI写代码bash
* 1 * 2 * 3 * 4
|
5、配置邮件发送
Linux 邮件发送比较常用于一些监控告警日志的发送,通常可以用 mail 来发送,可以配合定时任务来使用最佳。
如果没有 mail 命令,可以通过网络 YUM 源来安装:
1 2 3 4 5
| yum install -y mail
AI写代码bash
* 1
|
配置收件服务器以及发件人 /etc/mail.rc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| #邮箱地址 set sendcharsets=iso-8859-1,utf-8 set #发信服务器 set #邮箱账号 set #邮箱密码(支持免密) set set
AI写代码bash
|
发送邮件:
1 2 3 4 5
| mail -s "Lucifer sendmail test" 邮箱地址 < /tmp/lucifer.log
AI写代码bash
* 1
|
6、佛主保佑
编辑 /etc/motd 文件,添加如下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| ********************************************* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : |||// \ / _||||| -:- |||||- \ | | \\\ - /// | | | \_| ''\---/'' | | \ .-\__ `-` ___/-. / ___`. .' /--.--\ `. . __ ."" '< `.___\_<|>_/___.' >'"". | | : `- \`.;`\ _ /`;.`/ - ` : | | \ \ `-. \_ __\ /__ _/ .-` / / ======`-.____`-.___\_____/___.-`____.-'====== `=---=' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 佛祖保佑 永无BUG
AI写代码bash
* 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10 * 11 * 12 * 13 * 14 * 15 * 16 * 17 * 18 * 19 * 20 * 21
|
只要一连接到系统,就会显示佛主保佑!
二、课后作业
1、配置本地 YUM 源,并安装 zip 软件
2、配置防火墙
3、查找和替换文件
4、配置定时任务
5、配置佛主保佑
请将以上课后作业以文章帖子的形式写出来,并发布在 CSDN 操作系统社区,并在社区对应的每日课程学习打卡的帖子中提交任务,即代表今日学习课程打卡任务完成!