Linux基础操作命令

Linux笔记

一、ls命令

-a 选项 显示隐藏文件

-l 选项 以列表形式展示内容,并展示更多细节

-h选项 需要和-l选项搭配使用,以更人性化的方式显示文件的大小单位

命令组合使用

ls -lah		等同于 ls -l -a -h

二、cd命令

切换命令

三、pwd命令

输出当前所在工作目录

四、相对路径和绝对路径

相对路径:路径的写法不是由根目录 / 写起的,例如 首先用户进入到 /home,然后再进入到test,执行的命令为 “#cd /home,#cd test”。此时用户所在的路径为 /home/test。第一个cd命令后紧跟/home,前面有斜杠;而第二个cd命令后紧跟test,前面没有斜杠。这个test是相对于/home目录来讲的,所以称为相对路径。

绝对路径:路径的写法一定是由根目录 / 写起的,例如 /usr/local/mysql

五、特殊路径字符

. 表示当前目录
..表示上一级目录
~表示用户的Home目录

六、mkdir命令

mkdir用以创建新的目录

mkdir text

1、-p选项的作用

自动创建不存在的父目录,适用于创建连续多层的目录

mkdir -p text/text1/text2

七、touch-cat-more命令

1、touch命令

创建文件命令

touch test.txt

2、cat命令

查看文件命令

cat test.txt

3、more命令

查看文件内容,可翻页查看

使用空格进行翻页,使用 q 键退出查看

八、cp-mv-rm命令

1、cp命令

用于复制文件或者文件夹

cp -r 参数1 参数2

-r选项,可选,用于复制文件夹使用,表示递归

参数1 表示被复制的文件或文件夹

参数2 表示要复制的地方

2、mv命令

移动或者重命名

mv 参数1 参数2

参数1 表示被移动的文件或者文件夹

参数2 表示要移动去的地方。如果目标不存在,则进行改名

3、rm命令

删除命令

rm [-r-f] 参数1 参数2 参数3...参数N

-r选项 删除文件夹时使用

-f选项 用于强制删除

参数表示被删除的文件或者文件路径,支持多个,空格隔开

参数支持通配符 * ,用以模糊匹配

通过su -root,输入密码(和普通用户默认一样)

通过exit命令,退回普通用户

九、which-find命令

1、which命令

查找命令的程序文件

which 要查找的命令

无需选项,只需要参数表示查询那个命令

2、find命令

用于查询指定的文件

按文件名查询(支持使用通配符 * )

find 起始路径 -name "被查找文件名"

按文件大小查询

find 起始路径 -size  +—kMG
find / -size -100k 或者 find / -size +100M

按用户或用户组查询

find 起始路径 -user "zxlcentos7"

find 起始路径 -group "zxlcentos7"

3、whereis命令

Linux 中用于快速查找命令、源码和手册页位置的命令。它通过搜索一组预定义的系统目录来定位指定命令的相关信息。

whereis nginx

4、locate命令

用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。当我们不知道某个文件放哪里
,能够通过他快速定位到文件目录,这是一条非常有用的命令。

locate 'test.txt'

十、grep-wc-管道符命令

1、grep命令

通过grep命令,从文件中通过关键字过滤文件行

grep [-n] 关键字 文件路径

选项-n,可选,表示在结果中显示匹配的行的行号。

关键字:必填,表示过滤的关键字,带有空格或其他特殊符号使用 “ ” 将关键字包围

文件路径:必填,表示要过滤内容的文件路径。可以作为内容输入端口

2、wc命令

统计文件的行数,单词数量等

wc [-c -m -l -w] 文件路径

选项-c 统计bytes数量

选项-m 统计字符数量

选项-l 统计行数

选项-w 统计单词数量

文件路径 被统计的文件。可作为内容输入端口

3、管道符 |

含义:将管道符左边命令的结果作为右边的输入

cat test.txt | grep -n "linux"
ls /usr/bin | wc -l
cat test.txt | grep -n "linux" | grep -n "hello"

十一、echo-重定向符-tail命令-sort命令

1、echo命令

使用echo命令在命令行内输出指定内容

echo "输出的内容"

无需选项,只要一个参数,表示要输出的内容,复杂内容可用 " " 包围

1.1、反引号 ``

通过将命令用反引号 `` 将其包围,被包围的内容会被作为命令执行,而非普通字符

echo `pwd`

2、重定向符 > 和 >>

1 > 将左侧命令的结果,覆盖写入到符号右侧指定的文件中。

2 >> 将左侧命令的结果,追加写入到符号右侧指定的文件中。

echo "hello linux" > test.txt
echo "hello linux" >> test.txt

3、tail命令

查看文件尾部内容,跟踪文件的最新更改

tail [-f -num] Linux路径

Linux路径 被跟踪的文件路径

-f 表示持续跟踪

-num 表示查看尾部多少行,不填默认10行

4、sort命令

sort命令默认情况下是按第1域进行排序的,也可以按指定某个域进行排序,-k选项就是用于指定域的。sort命令以1表示第1域、以2表示第2域,以此类推。

sort 选项 参数

选项:

选项意义
-c测试文件是否已经被排序
-k指定排序的域
-m合并两个已排序的文件
-n根据数字大小进行排序
-o将输出写到指定的文件,相当于将输出重定向到指定文件
-r将排序结果逆向展示
-t改变域分隔符
-u去除结果中的重复行

示例:

sort -nk3 1.txt  # 1.txt文件根据第三域进行排序

ps -aux |sort -nk3
ps -ef | sort -rnk2

十二、vi\vim编辑器

1、vi\vim编辑器介绍

vi\vim是visual interface的简称,是Linux中最经典的文本编辑器

同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择

vim是vi的加强版,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编程性

2、vi\vim编辑器的三种工作模式

命令模式(Command mode)

​ 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能

​ 此模型下,不能自由进行文本编辑。

输入模式(insert mode)

​ 也就是所谓的编辑模式,插入模式

​ 此模式下,可以对文件内容进行自由编辑

底线命令模式(Last line mode)

​ 以:开始,通常用于文件的保存,退出
在这里插入图片描述

1、命令模式

如果需要通过vi\vim编辑器编辑文件,请通过如下命令:

vi 文件路径
vim 文件路径

vim兼容全部的vi功能,后续全部使用vim命令

如果文件路径表示的文件不存在,那么此命令会用于编辑新文件

如果文件路径表示的文件存在,那么此命令用于编辑已有文件

命令模式快捷键

模式命令描述
命令模式i当前光标位置进入 输入模式
命令模式a在当前光标位置 之后 进入输入模式
命令模式I在当前行的开头 进入输入模式
命令模式A在当前行的结尾 进入输入模式
命令模式o在当前光标下一行进入输入模式
命令模式O在当前光标上一行进入输入模式
输入模式esc任何情况下输入esc都能会到命令模式
命令模式键盘上、键盘K向上移动光标
命令模式键盘下、键盘J向下移动光标
命令模式键盘左、键盘h向左移动光标
命令模式键盘右、键盘L向右移动光标
命令模式0移动光标到当前行的开头
命令模式$移动光标到当前行的结尾
命令模式pageup(Pgup)向上翻页
命令模式pangdown(PgDn)向下翻页
命令模式/进入搜索模式
命令模式n向下继续搜索
命令模式N向上继续搜索
命令模式dd删除光标所在行的内容
命令模式nddn是数字,表示删除当前光标向下n行
命令模式yy复制当前行
命令模式nyyn是数字,复制当前行和下面的n行
命令模式p粘贴复制的内容
命令模式u撤销修改
命令模式Ctrl + r反向撤销修改
命令模式gg跳到首行
命令模式G跳到尾行
命令模式dG从当前行开始,向下全部删除
命令模式dgg从当前行开始,向上全部删除
命令模式d$从当光标开始,删除到本行的结尾
命令模式d0从当前光标开始。删除到本行的开头

2、底线命令模式

在命令模式内,输入:即可进入底线命令模式,支持如下命令:

模式命令描述
底线命令模式:wq保存并退出
底线命令模式:q仅退出
底线命令模式:w仅保存
底线命令模式:q!强制退出
底线命令模式:set nu显示行号
底线命令模式:set paste设置粘贴模式

十三、root用户

1、su和exit命令

su命令就是用于账号切换的系统命令

su - [用户名]
su - root

符号 - 可选,表示是否在切换用户后加载环境变量

参数 用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root

切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键ctrl + d

使用普通用户切换到其他用户需要输入密码,使用root用户切换到其他用户无需密码,直接切换

2、sudo命令

使用sudo命令,为普通的命令授权,临时以root身份执行

语法:

sudo 其他命令

在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权

但是并不是所有用户都有权利使用sudo,需要为普通用户配置sudo认证

普通用户配置sudo认证

切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers

在文件的最后添加:用户名 ALL=(ALL) NOPASSWD: ALL

最后的NOPASSWD:ALL表示使用sudo命令,无需输入密码

3、用户和用户组

用户组管理

必须用root用户执行

创建用户组:

groupadd 用户组名

删除用户组:

groupdel 用户组名

修改用户组:

groupmod 用户组名

用户管理

必须用root用户执行

创建用户:

useradd [-g -d] 用户名
useradd -g test -d /home/test1

选项-g 指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在

选项-d 指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

删除用户:

userdel [-r] 用户名

选项-r 删除用户的home目录,不适用-r,删除用户时,保留home目录

查看用户所在组:

id[用户名]

参数:用户名,被查看的用户,如果不提供则查看自身

修改用户所在组:

usermod -aG 用户组 用户名

4、getent命令

使用getent命令,可以查看当前系统中有哪些用户

getent passwd

结果共7份信息。分别是:

用户名:密码(X):用户id:组id:描述信息:home目录:执行终端(默认bash)

getent group

查看当前系统中有哪些用户组

包含3份信息。组名称:组认证(显示未X):组id

十四、用户权限修改

1、chmod命令

只有文件,文件夹的所属用户或者root用户可以修改

chmod [-R] 权限 文件或者文件夹
示例:
chmod u=rwx,g=rx,o=x text.txt
chmod -R u=rwx,g=rx,o=x test
u表示user所属用户权限,g表示group组权限,o表示other其他用户权限

选项:-R 对文件夹内的全部内容应用同样的操作。

权限的数字序号

r——4 读

w——2 写

x——1 执行

chmod 751 text.txt

2、chown命令

修改文件,文件夹的所属用户和用户组。仅用于root用户

chown [-R] 用户:用户组 文件或者文件夹
示例:
chown root text.txt
chown :root text.txt
chown root:root text.txt

​ -R,同chmod,对文件内全部内容应用相同规则

​ 用户,修改所属用户

​ 用户组,修改所属用户组

**:**用于分隔用户和用户组

十五、快捷键

快捷键作用
ctrl + c强制停止
ctrl + d退出登出
history查看历史命令
!命令前缀自动匹配上一个命令
ctrl + r搜索历史命令
ctrl + a | e光标移动到命令开始或结束
ctrl + ←|→光标左右跳单词
ctrl + l 或者 clear命令清屏

十六、安装软件

1、yum命令

yum [-y] [install | remove | search]

选项:-y,自动确认

install:安装

remove:卸载

search:搜索

yum命令需要root权限,需要联网

安装包后缀.rpm

十七、systemctl命令控制软件服务启动、停止、开机自启

systemctl命令

systemctl start | stop | status | enable | disable 服务名
			开启	 关闭	   查看状态	  开机启动	 关闭开机启动

系统内置服务:

NetworkManager,主网络服务

network,副网络服务

firewalld,防火墙服务

sshd,ssh服务,远程登录

十八、In命令软链接

类似Windows系统中的《快捷方式》

ln -s 参数1 参数2

ln -s /etc/yum.conf ~/yum.conf
ln -s /etc/yum ~/yum

-s选项,创建软链接

参数1:被链接的文件或文件夹

参数2:要链接去的位置

十九、日期和时区

1、date命令

date -d +格式化字符串

date +"%Y%m%d %H%M%S"

-d按照给定的字符串显示日期,用于日期计算

格式化字符串:通过特定的字符串标记,来控制显示的日期格式

字符串备注
%Y
%y年份后两位
%m
%d
%H
%M
%S
%s自1970-01-01 00:00:00 utc 到现在的秒数

日期加减

date -d "+1 day" +%Y%m%d			显示后一天日期
date -d "-1 day" +%Y%m%d			显示前一天日期
date -d "+1 month" +%Y%m%d			显示下个月日期
date -d "-1 month" +%Y%m%d			显示上个月日期
date -d "+1 year" +%Y%m%d			显示后一年日期
date -d "-1 year" +%Y%m%d			显示前一年日期

2、修改Linux时区

使用root权限

rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件

3、ntp程序

自动校准系统时间

启动并设置开机启动

systemctl start ntpd

systemctl enabld ntpd

手动校准:ntpdate -u ntp.aliyun.com

二十、网络请求与下载

1、ping命令

测试到某服务器是否能连通

ping [-c num] ip或主机名

选项-c,测试的次数。

2、wget命令

进行网络文件下载

wget [-b] url

选项-b,后台下载

3、curl命令

发起网络请求

curl [-O] url

选项-O,用于下载使用。

二十一、进程管理

1、查看进程

ps [-e -f]
ps -ef 
ps -aux

选项:-e,显示出全部的进程

选项:-f,已完全格式化的形式展示信息

2、关闭进程

kill [-9] 进程ID

选项:-9,表示强制关闭进程

二十二、主机状态监控

1、查看系统资源占用(top)

top命令

2、磁盘信息监控(df)

df [-h]

选项:-h,以更加人性化的单位显示

du当前目录磁盘占用

du -h

3、网络状态监控(sar)

sar -n DEV num1 num2

选项:-n,查看网络,DEV表示查看网络接口

num1:刷新间隔,num2:查看次数

4、内存使用情况(free)

free -h

free 命令的主要功能是展示系统中空闲的、已用的物理内存及 swap 内存的情况,同时还会报告被内核使用的 buffer 和 cache 的大小。这些信息对于评估系统性能和诊断问题非常有用。

选项:
-b, --bytes: 显示字节单位的输出。
-k, --kilo: 显示千字节(KB)单位的输出(默认)。
-m, --mega: 显示兆字节(MB)单位的输出。
-g, --giga: 显示吉字节(GB)单位的输出。
–tera: 显示太字节(TB)单位的输出。
-h, --human: 自动选择合适的单位(K, M, G 或 T),并以人类易读的格式显示。
-l, --lohi: 显示详细的低内存和高内存统计信息。
-o, --old: 不显示缓冲区调整行(在较新的版本中,默认是包含缓冲区/缓存调整后的空闲内存)。
-s <间隔秒数>, --seconds=<间隔秒数>: 每隔指定秒数刷新一次输出。
-t, --total: 在输出的最后一行添加总计行,该行会给出所有内存的汇总信息。
-V, --version: 显示程序版本信息。
-w, --wide: 使用宽输出格式,确保所有列都能显示完整(适用于有较多内存或交换分区的情况)。
-c <次数>, --count=<次数>: 结合 -s 选项使用时,指定刷新的次数。

5、端口占用(netstat | ss)

netstat -tunlp
ss -tunlp

6、查看IP地址(ifconfig)

ip a
ifconfig

7、后台运行任务

nohup command &

jobs		# 查看后台进程列表
fg		# 将已经在后台运行的进程放在前台运行
ctrl+z	# 暂停进程(将前台运行的进程暂停放在后台)
bg		# 将后台暂停的进程继续运行

8、防火墙端口设置

1、开启3306端口

#centos
firewall-cmd --zone=public --add-port=3306/tcp --permanent

#debian
sudo ufw allow 3306/tcp

2、重启防火墙

#centos
firewall-cmd --reload

#debian
sudo ufw enable
sudo ufw reload

3、查看已经开启的端口

#centos
firewall-cmd --list-ports

#debian
sudo ufw status

9、显示当前登录用户(who)

who		# 显示当前登录用户信息,包括用户名、终端、时间日期等信息。

who -b		# 查询系统最近启动时间

who -r		# 查询系统启动等级

users		# 显示当前登录系统到所有列表
w命令		# 显示所有以登录到用户

# 日志查看
last			# 获取登录成功用户信息
lastb		# 获取登录失败用户信息

# 踢出非法用户
killall -u username

10、mount命令

在 Linux 系统中,mount 命令是一个至关重要的工具,它用于将存储设备(如硬盘分区、U 盘、光盘等)挂载到文件系统中,使其可以被访问。无论是管理存储设备、远程文件系统,还是挂载 ISO 镜像,mount 命令都扮演着核心角色。

语法:

mount [选项] 设备文件 挂载点
  • 设备文件:指向存储设备的文件路径,如 /dev/sdb1。
  • 挂载点:设备将被挂载到的目录,如 /mnt/mydisk。

示例1:挂载U盘

lsblk  #查看磁盘分区挂载情况

mkdir -p /mnt/usb  # 创建挂载点目录
mount /dev/sdb1 /mnt/usb

挂载完成后,可以通过 ls /mnt/usb 来查看该分区中的文件。

示例2:取消挂载

umount /mnt/usb
umount -l /mnt/usb  # 延迟卸载
umount -f /mnt/usb  # 强制卸载

当不再需要访问已挂载的设备时,可以使用 umount 命令将其卸载。

示例3:设置开机自动挂载

如果希望设备在系统启动时自动挂载,需要编辑 /etc/fstab 文件。例如:

/dev/sdb1  /mnt/data  ext4  defaults  0  2

然后运行以下命令使其生效:

mount -a

二十三、磁盘分区

VM中增加20G硬盘进行挂载示例:
选择虚拟机,右键设置,增加20g的硬盘。设置完后重启虚拟机或者执行下面命令进行刷新:

echo "- - -" > /sys/class/scsi_host/host0/scan 
echo "- - -" > /sys/class/scsi_host/host1/scan 
echo "- - -" > /sys/class/scsi_host/host2/scan 

#rhe18以上,新硬盘不重启系统识别
grep mpt /sys/class/scsi_host/host*/proc_name
#/sys/class/scsi_host/host32/proc_name:mptspi

echo "- - -" > /sys/class/scsi_host/host32/scan

1、查看磁盘信息

设置好新硬盘后输入fdisk -l命令看当前磁盘信息

fdisk -l

在这里插入图片描述

可以看到除了当前的第一块硬盘外(/dev/sda)还看到了新加的一块sdb硬盘,然后用:fdisk /dev/sdb 对sdb进行分区

2、磁盘分区

fdisk /dev/sdb

在这里插入图片描述

进入fdisk命令,输入h可以看到该命令的帮助,按n进行分区(就是NEW)

输入e即分为逻辑分区,按p即分为主分区,我们要将这块盘分为主分区,输入p

到这里输入该主分区为第几个主分区,由于是新盘我们输入1来分第一个主分区

First Cylinder是选择该分区的起始磁盘数,这里可自定义也可不做选择,默认是1,如无特殊需求强烈建议选择默认,也就是1来分区(直接按回车)

在这里插入图片描述

接下来是定义该分区的大小,如果按默认(按回车)即是使用全部可用存储额,也可以是用M或m单位结尾的数字(大写M是大B的意思,如果输入1M实际上是X8也就是8m的空间),所以输入+1024m之后输入w写入分区,等待结束

在这里插入图片描述

再输入fdisk -l 可以看到我们刚才分的一个分区,然后用:mkfs.ext4 /dev/sdb1进行格式化,如有多个分区可把sdb1改成sdb2 sdb3…,用fdisk -l看到每个分区的名字

3、格式化

mkfs.ext4 /dev/sdb1

在这里插入图片描述
在这里插入图片描述

4、挂载

格式化后可写入硬盘卷标,直接按回车分区好了用mount 挂载一下该分区即可使用了,这里我把它挂载到/data目录下,也可以自建一个目录进行挂载。挂载后是用ROOT用户进行的,其它用户存储时需要调整目录权限!

在这里插入图片描述

5、设置开机自动挂载

首先,我们需要知道硬盘分区的详细信息,比如 UUID、文件系统类型等。这些信息可以通过 sudo blkid 命令来查看。

sudo blkid

需要编辑 /etc/fstab 文件

vim /etc/fstan
UUID=fefce799-a371-4dd6-ae7d-163926f94505 /data ext4 defaults 0 2

UUID=fefce799-a371-4dd6-ae7d-163926f94505:硬盘分区的唯一标识符,用来定位需要挂载的分区。
/data:挂载点目录,指定硬盘挂载到的文件夹路径。
ext4 :文件系统类型,根据硬盘实际格式填写,例如 ext4、xfs 或 ntfs。
defaults:挂载选项,表示使用默认设置,包括读写权限、自动挂载等。
0:此字段用于备份设置,通常设为 0 表示不需要备份。
2:表示文件系统检查顺序,根分区一般为 1,其他分区为 2。如果不需要检查可设为 0。

parted命令分区

#创建msdos分区
parted /dev/sdb mklabel msdos

#创建1G的分区,文件系统为xfs
parted /dev/sdb mkpart primary xfs 2048s 1G
#创建2G的分区,文件系统为xfs
parted /dev/sdb mkpart primary xfs 1G 3G
#创建剩余的分区,文件系统为xfs
parted /dev/sdb mkpart primary xfs 3G 100%

#格式化
mkfs.xfs /dev/sdb1
mkfs.xfs /dev/sdb2
mkfs.xfs /dev/sdb3

#挂载
mkdir /mnt/disk
mount /dev/sdb1 /mnt/disk

#创建完分区,要系统主动自检,以便在/dev创建关联设备
udevadm settle

二十四、文件上传下载

1、使用finalshell拖拽上传下载

2、rz,sz命令

通过 yum -y install lrzsz 安装命令

rz进行文件上传

sz 文件,进行文件下载

二十五、压缩与解压

1、tar命令

.tar,称为tarball,归类文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的封装。

.gz,也常见为.tar .gz,gzip格式压缩文件,即使用gzip压缩算法将文件压缩到一个文件内,可以极大的减少压缩后的体积

tar [-c -v -x -f -z -C] 参数1 参数2 ...参数N

-c,创建压缩文件,用于压缩模式

-v,显示压缩、解压过程,用于查看进度

-x,解压模式

-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个

-z,gzip模式,不适用-z就是普通的tarball格式

-C,选择解压的目的地,用于解压模式

-u,向打包好的包里面追加文件

tar的常用压缩组合

tar -cvf test.tar 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar文件内

tar -zcvf test.tar.gz 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.tar.gz文件内,使用gzip模式

-z选项如果使用的话,一般处于选项第一个

-f选项,必须在选项最后一个

tar解压

tar -xvf test.tar
解压test.tar,将文件解压到当前目录
tar -xvf test.tar -C /home/zxl
解压test.tar,将文件解压到指定目录(/home/zxl)
tar -zxvf test.tar.gz -C /home/zxl
以gzip模式解压test.tar.gz,将文件解压到指定目录(home/zxl)

-f选项,必须在选项组合体的最后一位

-z选项,建议在开头位置

-C选项单独使用,和解压所需的其他参数分开。

2、zip命令

压缩

zip [-r] 参数1 参数2 ... 参数N

-r,被压缩的包含文件夹的时候,需要使用-r

zip test.zip 1.txt 2.txt 3.txt
将1.txt 2.txt 3.txt压缩到test.zip文件内
zip -r test.zip test a.txt
将test文件和a.txt文件,压缩到test.zip 

unzip解压

unzip [-d] 参数

-d,指定要解压去的位置,通tar的-C选项

unzip test.zip, 将test.zip解压到当前目录
unzip test.zip -d /home/zxl,将test.zip解压到指定文件内容(/home/zxl)

二十六、定时任务Cron(d)

Cron是Linux系统中以后台进程模式周期性执行命令或指定程序任务的服务软件。默认情况下,安装完Linux操作系统后,Cron服务软件便会启动,服务对应的进程名字为crond,crond服务会定期(默认每分钟检查一次)检查系统中是否有需要执行的任务工作计划。

文件路径:/var/spool/cron
日志路径:/var/log/cron

1、crontab定时任务编辑命令

参数含义
-l查看定时任务内容。提示:l为list缩写
-e编辑定时任务内容。
-i删除定时任务内容,删除前会提示确认。
-r删除定时任务内容
-u user指定使用的用户执行任务

利用crontab命令编写定时任务的书写格式一般分为6段(每段之间通过空格来分隔),前5段为时间设定段,第6段为所要执行的命令或者脚本。

* * * * * cmd	# 分 时 日 月 周
含义取值范围
第一段代表分钟00~59(00也可以是0)
第二段代表小时00~23
第三段代表天01~31
第四段代表月份01~12
第五段代表星期几0~7(0和7都代表星期日)

在使用crontab命令编辑定时任务的语法中,除了时间段外,还会包含很多特殊字符。

特殊符号含义
**号表示任意时间都,实际就是"每"的意思
-表示一个时间范围,区间段
表示分隔时间段的意思
/nn代表数字,即"每隔n单位时间"

示例:

# 每隔2分钟,执行一次test.sh
*/2 * * * * /bin/sh /opt/test.sh

# 每天凌晨3点半和中午12点半执行一次
30 3,12 * * * /bin/sh /opt/test.sh

# 早上8点到下午18点之间,每隔2小时执行一次
* 8-18/2 * * * /bin/sh /opt/test.sh

# 每天晚上0点,将站点目录/var/www/html下的内容打包备份到/data目录下,并且要求生成不同的备份包名。
00 00 * * * /bin/tar zcf /data/bak_$(date +%F).tar.gz /var/www/html

posted @ 2024-12-18 09:57  叶小格  阅读(0)  评论(0)    收藏  举报  来源