Linux的基本管理及命令(下)
文章目录
- Linux的基本管理及命令(下)
-
- 一、前言
- 二、Linux常用命令
-
- [2.1 Linux的时间指令](#2.1 Linux的时间指令)
-
- [2.1.1 获取当前系统的时间:`date`](#2.1.1 获取当前系统的时间:
date) - [2.1.2 当前系统的日历:`cal`](#2.1.2 当前系统的日历:
cal)
- [2.1.1 获取当前系统的时间:`date`](#2.1.1 获取当前系统的时间:
- [2.2 Linux搜索、查找相关的指令](#2.2 Linux搜索、查找相关的指令)
-
- [2.2.1 学习意义](#2.2.1 学习意义)
- [2.2.2 查找指令------`find`](#2.2.2 查找指令——
find) - [2.2.3 查找指令------`locate`](#2.2.3 查找指令——
locate) - [2.2.4 `which`](#2.2.4
which) - [2.2.5 过滤指令------`grep`](#2.2.5 过滤指令——
grep)
- [2.3 Linux压缩和解压的指令](#2.3 Linux压缩和解压的指令)
-
- [2.3.1 `.gz`格式的压缩文件](#2.3.1
.gz格式的压缩文件) - [2.3.2 `.zip`格式的压缩文件](#2.3.2
.zip格式的压缩文件) - [2.3.3 `.tar.gz`格式的压缩文件](#2.3.3
.tar.gz格式的压缩文件)
- [2.3.1 `.gz`格式的压缩文件](#2.3.1
- 三、Linux组管理、权限管理
-
- [3.1 Linux组的详细介绍](#3.1 Linux组的详细介绍)
- [3.2 Linux权限的详细介绍★](#3.2 Linux权限的详细介绍★)
-
- [3.2.1 介绍](#3.2.1 介绍)
- [3.2.2 修改权限:`chmod`](#3.2.2 修改权限:
chmod)
- [3.3 Linux权限相关的案例](#3.3 Linux权限相关的案例)
-
- [3.3.1 创建组](#3.3.1 创建组)
- [3.3.2 创建用户](#3.3.2 创建用户)
- [3.3.3 jack创建一个文件,并规定权限](#3.3.3 jack创建一个文件,并规定权限)
- [3.3.4 jack修改文件权限](#3.3.4 jack修改文件权限)
- [3.3.5 xh投靠警察,看看自己对文件的权限](#3.3.5 xh投靠警察,看看自己对文件的权限)
- 四、定时任务调度
-
- [4.1 Linux任务调度指令crontab](#4.1 Linux任务调度指令crontab)
-
- [4.1.1 定义](#4.1.1 定义)
- [4.1.2 命令`crontab`](#4.1.2 命令
crontab) - [4.1.3 `crond`任务调度的时间规则](#4.1.3
crond任务调度的时间规则) - [4.1.4 特殊符号的说明](#4.1.4 特殊符号的说明)
- [4.1.5 特殊时间执行案例](#4.1.5 特殊时间执行案例)
- [4.1.6 实例](#4.1.6 实例)
- [4.2 Linux任务调度指令at](#4.2 Linux任务调度指令at)
-
- [4.2.1 介绍](#4.2.1 介绍)
- [4.2.2 机制](#4.2.2 机制)
- [4.2.3 指令](#4.2.3 指令)
- [4.2.4 `at`任务调度实例](#4.2.4
at任务调度实例)
- 五、小结
一、前言
接着上一篇来~
二、Linux常用命令
2.1 Linux的时间指令
2.1.1 获取当前系统的时间:date
时间有年月日时分秒,有时只想获取一部分时间特征,也有对应的命令
shell
date // 获取当前系统的时间
date +%Y // 获取年
date +%m // 获取月
date +%d // 获取日
date +%H // 获取时
date +%M // 获取分
date +%S // 获取秒
date -s // 自定义Linux的系统时间

2.1.2 当前系统的日历:cal
shell
cal // 展示系统当前月份的日历
cal 年份 // 展示系统当前年份的日历

2.2 Linux搜索、查找相关的指令
2.2.1 学习意义
在Linux里面搜索一个文件,但是并不知道文件所属的目录或路径,可以通过搜索查找相关的指令来快速地定位文件在哪里
2.2.2 查找指令------find
原理:是遍历(递归)指定的文件目录,找到匹配的文件
遍历:搜索的效率很低
指令:
shell
-name // 按照文件的名称进行搜索
-user // 按照指定用户所属的文件
-size // 按照文件的大小进行搜索

搜索名称为"hello.txt"的文件,从根目录/开始搜索

*表示全部

- +:大于
- -:小于
- 无:等于
扩展:
ls -h以非常友好的方式查看文件大小
2.2.3 查找指令------locate
find查找效率非常低,可以使用另一种效率高的指令
快速搜索指定的文件,不是递归遍历,而是用到了一个数据库------locate数据库,保存了文件,以及文件所属目录的映射,如下图:
| filename | filepath |
|---|---|
| hello.txt | /home/test/hello.txt |
| ... | ... |
shell
updatedb // 首先更新一下数据库
locate 文件名 // 开始查找

2.2.4 which
查看指令位于哪个目录下面
shell
which 指令 // 在Linux中万事万物都是文件

2.2.5 过滤指令------grep
grep一般配合**管道符号|**一起使用
shell

grep是基于全部的内容来进行过滤
-n:显示行号-i:忽略大小写
2.3 Linux压缩和解压的指令
- Windows中的压缩文件:
.rar、.zip- Linux中的压缩文件有哪些呢?
2.3.1 .gz格式的压缩文件
shell
gzip 文件名 // 进行文件的压缩
gunzip 压缩包名 // 解压
// gunzip会自动把压缩包删掉

2.3.2 .zip格式的压缩文件
shell
zip // 压缩
-r // 递归压缩
unzip // 解压
-d // 解压到指定的目录


2.3.3 .tar.gz格式的压缩文件
tar既可以压缩文件,也可以解压文件,参数不同而已
shell
-c // 产生tar的打包文件
-v // 压缩和解压时显示对应的详细信息
-f // 指定压缩后的文件名
-z // 打包的同时并压缩
-x // 解压tar包文件
tar -zcvf 压缩文件的名称 目录 // 压缩文件
tar -zxvf 压缩文件的名称 // 解压文件
tar -zxvf 压缩文件的名称 -C 解压文件到指定的目录


三、Linux组管理、权限管理
3.1 Linux组的详细介绍
Linux里面的文件,属于对应的用户,也属于对应的组。
改变文件所属的用户 :chown
shell
chown 用户名 文件名

改变文件所属的组 :chgrp
shell
chown 组名 文件名

修改用户所属的组 :usermod(在用户组管理中也有提及)
shell
usermode -g 组名 用户名

3.2 Linux权限的详细介绍★
3.2.1 介绍

shell
-rw-r--r-- 1 tom root 109 1月 12 20:18 Hello.java
drwx------ 4 root root 139 1月 12 19:51 test
可以看到描述权限的字符串有10位
第一位:描述文件的类型
d:directory 文件夹(目录)Linux中显示蓝色
-:文件
l:软链接
等
后9位(每3个一组)
第一组:当前文件所属的用户对文件的操作权限
权限顺序固定。
- r:read,读取,查看
- w:write,修改,但是不可以删除文件,删除文件的前提是对该文件所在目录有写权限
- x:execute,可执行(比如.java文件可以运行;文件目录:可以
cd进入目录内部)- -:不具备任何权限
第二组:当前问用户所属组内的其他用户对文件的操作权限
第三组:当前用户所属组之外的其他用户
3.2.2 修改权限:chmod
shell
// 直观写法
chmod u=rwx,g=rx,o=rx 文件名称
// u:user; g:group; o:other

shell
chmod u-x,g+w,o+x 文件名称
// -:去掉某个权限; +:加上某个权限; 不写:不做修改

shell
chmod a+r 文件名称
// a:all,所有都加上某些个权限

shell
// r 4
// w 2
// x 1
// rwx 7
chmod 751 文件名称
// 用户可读可写可执行,组内用户可读不可写可执行,其他用户不可读不可写可执行

3.3 Linux权限相关的案例

3.3.1 创建组

3.3.2 创建用户

3.3.3 jack创建一个文件,并规定权限

3.3.4 jack修改文件权限

3.3.5 xh投靠警察,看看自己对文件的权限



四、定时任务调度
4.1 Linux任务调度指令crontab
4.1.1 定义
定时任务调度:指每隔指定的时间,执行特定命令和程序。

4.1.2 命令crontab
shell
crontab
-e // 编辑定时任务
-l // 查询定时任务
-r // 删除定时任务
service crond restart // 重启任务调度





即使删除仍然会存在这个文件(每次都会进行任务调度)
shellls -l /etc/ > /tmp/etc.txt // 向etc.txt文件中追加ls查询的东西命令前面的是什么呢?
4.1.3 crond任务调度的时间规则
| 项目 | 含义 | 范围 |
|---|---|---|
| 第一个"*" | 一个小时当作的第几分钟 | 0-59 |
| 第二个"*" | 一天当中的第几个小时 | 0-23 |
| 第三个"*" | 一个月当中的第几天 | 1-31 |
| 第四个"*" | 一年当中的第几个月 | 1-12 |
| 第五个"*" | 一周当中的星期几 | 0-7(0和7都代表星期日) |
4.1.4 特殊符号的说明
| 特殊符号 | 含义 |
|---|---|
| * | 代表任何时间,比如第一个"*"就代表1h中每分钟都执行1次的意思 |
| , | 代表不连续时间,比如:"0,8,12,16 * * *"就代表1天中的8点过0分,12点过0分,16点过0分都会执行1次 |
| - | 代表连续的时间范围,比如"0,5 * * 1-6"就代表星期1到星期6的凌晨5点过0分都会执行 |
| */n | 代表每隔多久执行1次。比如"*/10 * * * *"就代表每隔10分钟就执行1次命令 |
4.1.5 特殊时间执行案例
| 时间 | 含义 |
|---|---|
| 45 22 * * * | 每天在22时45分执行任务 |
| 0 17 * * 1 | 每周一的17点过0分执行任务 |
| 0 5 1,15 * * | 每月的1号和15号的凌晨5点钟执行任务 |
| 40 4 * * 1-5 | 每周1-周5的凌晨4:40执行任务 |
| */10 4 * * * | 每天的凌晨4点,每隔10分钟就执行1次任务 |
4.1.6 实例
案例1:每隔1分钟,将当前的日期信息追加到/tmp/mydate.txt文件中
shell
*/1 * * * * date >> /tmp/mydate.txt
案例2:每隔1分钟,将当前的日期和日历追加到/home/mycal.txt文件中
shell
date >> /home/mycal.txt
cal >> /home/mycal.txt
将上述信息写入一个my.sh的脚本文件,需要执行这个脚本文件,首先要有可执行的权限
shell
chmod u+x my.sh
怎么定时执行呢?
shell
crontab -e // 定时任务
shell
*/1 * * * * /home/my.sh
4.2 Linux任务调度指令at
4.2.1 介绍
at命令是一次性定时执行任务计划,执行完一次就不再执行了
crontab是周期性的执行
at的守护线程atd以后台的模式运行,检查作业队列来运行
atd是用来检查队列里的定时任务的
4.2.2 机制

4.2.3 指令
shell
ps -ef | grep atd // 可以用来检查任务调度(队列)
// -e是显示所有进程
// -f是显示完整的详细信息

at时间定义
| 格式 | 含义 | 举例 |
|---|---|---|
| HH:MM | 当天HH:MM执行,若当天时间已过,则在明天HH:MM执行 | |
| 英文粗略时间单次 | midnight(午夜,00:00)、noon(中午,12:00)、teatime(下午茶时间,16:00)、tomorrow(明天) | |
| 英文月名A 日期B[年份C] | C年A月B日执行 | 在2018年1月15日执行:Jannuary 15 2018 |
| 日期时间戳形式 | 绝对计时法 时间 + 日期 时间:HH:MM 日期:MMDDYY或MM/DD/YY或MM.DD.YY |
在2018年1月15日执行: 011518或01/15/18或01.15.18 |
| now + 数量 单位 | 相对计时法 以minutes、hours、days或weeks为单位 | 5天后的此时此刻执行: now + 5 days |
4.2.4 at任务调度实例
-
常用选项
-m:当前任务执行后,向用户发送邮件-l(=atq指令)list:列出当前用户 的at任务队列-d(=atrm指令)delete:删除at任务-v:显示任务的将被执行的时间-c:输出任务内容(任务指令)-V:显示版本信息-f <文件>:从指定的文件读入,而不是从标准输入-t <时间参数>:以时间参数的形式提交要运行的任务,时间参数MMDDhhmm(月日时分)
-
语法格式
shellat 选项 时间 // 回车到下一行输入指令 at > (系统自带) 命令(输入两次Ctrl + D) // 命令输入结束后:Ctrl + D结束命令的输入,要输入两次-
两天后的下午6点执行
ll命令
-
使用
atq命令,查看系统中有没有执行工作任务
-
明天17点钟,输出时间都指定文件内,比如/home/date100.log

-
五、小结
勤加练习~