Linux的基本管理及命令(下)

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.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格式的压缩文件)
    • 三、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	// 重启任务调度

即使删除仍然会存在这个文件(每次都会进行任务调度)

shell 复制代码
ls -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 日期:MMDDYYMM/DD/YYMM.DD.YY 在2018年1月15日执行: 01151801/15/1801.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(月日时分)
  • 语法格式

    shell 复制代码
    at 选项 时间			// 回车到下一行输入指令
    at > (系统自带) 命令(输入两次Ctrl + D)
    // 命令输入结束后:Ctrl + D结束命令的输入,要输入两次
    • 两天后的下午6点执行ll命令

    • 使用atq命令,查看系统中有没有执行工作任务

    • 明天17点钟,输出时间都指定文件内,比如/home/date100.log

五、小结

勤加练习~

相关推荐
三花猫咪2 小时前
UBUNTU串口打印终端,X86主机变开发板
linux·运维·嵌入式硬件·ubuntu
HalvmånEver2 小时前
Linux:深入剖析 System V IPC上(进程间通信八)
linux·运维·数据库·c++·system v·管道pipe
EndingCoder2 小时前
泛型类和高级用法
linux·运维·前端·ubuntu·typescript
BIBI20492 小时前
CentOS 7 安装 MongoDB
linux·mongodb·centos·nosql·环境搭建·安装教程·服务器运维
chenzhiyuan20182 小时前
钡铼技术ARMxy系列BL440究竟多适合作为具身机器人核心控制器?
linux
斯文by累2 小时前
Ubuntu系统上安装Kafka 8.0
linux·ubuntu·kafka
济6172 小时前
linux(第十五期)--蜂鸣器实验-- Ubuntu20.04
linux·运维·服务器
方便面不加香菜2 小时前
Linux基本指令(2)
linux
Run_Teenage2 小时前
Linux:硬链接与软链接
linux·运维·服务器