Linux命令老是记不住?一篇文章帮你解决。Linux常用命令汇总
「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
100个最常用的Linux命令
- 一、文件目录
- mkdir:创建目录
- ls:列出目录内容
- pwd:显示当前目录
- cd:切换目录
- touch:创建文件
- cp:复制文件或目录
- mv:移动文件或目录
- rm:删除文件或目录
- du:查看文件或目录大小
- wc:计算行数字数
- cmp:比较文件
- find:查找文件
- 二、查看文件
- cat:查看所有内容
- nl:查看时显示行号
- more:逐页查看
- less:逐页查看
- head:查看开头部分
- tail:查看结尾部分
- 三、用户/用户组
- whoami:查看当前用户
- id:查看用户信息
- useradd:添加用户
- userdel:删除用户
- usermod:修改用户
- passwd:修改密码
- su:切换用户
- groupadd:添加用户组
- groupdel:删除用户组
- groupmod:修改用户组
- gpasswd:修改组用户
- 四、权限管理
- chmod:设置权限
- chown:修改所属用户
- chgrp:修改所属组
- 五、网络
- ping:检测网络
- telnet:检测端口
- nc:端口扫描
- netstat:网络状态
- ifconfig:网络设备
- traceroute:跟踪路由
- arp:缓存表
- 六、系统管理
- uname:系统信息
- who:所有登录用户
- whoami:当前登录用户
- date:日期时间
- last:用户登录信息
- lastd:用户登录失败
- lastlog:最后一次登录
- ps:查看进程
- top:动态查看进程
- kill:结束进程
- free:查看内存
- lsmod:显示系统模块
- clear:清屏
- vlock:锁屏
- reboot:重启
- shutdown:关机
- 七、压缩备份
- zip
- bzip2
- gzip
- tar
- 八、防火墙
- Iptables
- Frewalld
- 九、服务
- service:控制服务
- ntp:时间服务
- 1)启动时间同步服务
- 2)配置时间服务器
- 3)手动同步时间
- crontab:计划任务
一、文件目录
mkdir:创建目录
mkdir (make directory)创建目录
参数:
- -p 强制创建(递归创建)
- -m 创建时指定权限
实例
mkdir test 1)创建指定目录
mkdir /test/test1 2)指定路径下创建目录
mkdir -p test1/test2 3)创建多级目录
mkdir -m 777 test2 4)创建目录时,指定权限(默认权限:drwxr-xr-x)
ls:列出目录内容
ls(list files)显示指定目录下的内容(文件和目录)
参数:
- -a 显示隐藏文件(.开头的文件是隐藏文件,默认不显示)
- -l 显示详细信息(文件类型、权限、大小等)
- -t 按照创建时间降序
- -h 文件大小显示单位
实例
ls /test 1)列出指定目录下的内容
ls 2)不指定目录时,默认显示当前目录
ls -l 3)展示详细信息
ll 4)等价于 ls -l
ls -a 5)显示隐藏文件
ls te* 6)模糊查询:当前目录下,所有 te 开头的文件和目录
ls /root/ te* 7)模糊查询:/root目录下,所有 te 开头的文件和目录
ll -t 8)查看最近修改过的文件和目录
「文件详细信息」字段解释
从左到右依次是:权限、引用次数、所属用户、所属组、大小、修改时间、文件名
[root /]# ll /test
total 4
drwxr-xr-x 2 root root 4096 Sep 14 20:10 test1
pwd:显示当前目录
pwd (print working directory)显示当前所在的目录,即工作目录
[root test]# pwd
/test
cd:切换目录
cd (change directory)切换当前所在的目录(路径)
实例
cd ../ 1)返回上一级目录
cd ~ 2)切换到用户家目录
cd / 3)返回根目录
cd - 4)返回上一个进入的目录(类似撤回)
touch:创建文件
作用:修改文件或目录的最后修改时间,如果文件不存在,则创建文件。
参数:
- -a 修改文件的读取时间
- -m 修改文件的更改时间
- -c 文件不存在时,不创建文件
实例
1)指定路径下,创建文件
touch /test/a.txt
2)同时创建多个文件
touch b.txt c.txt d.txt
3)修改目录的访问和修改时间
touch /test
cp:复制文件或目录
cp (copy)复制文件或目录
参数:
- -r 复制目录
- -f 取消覆盖文件的提示
- -i 开启覆盖文件的提示,回复y时覆盖文件
- -p 复制修改时间和访问权限
实例
1)备份文件(修改某个文件前先备份)
cp a.txt a.txt.bat
2)备份整个目录(加了后缀仍然是目录)
cp -r test test.bat
mv:移动文件或目录
mv (move)移动文件或目录
参数:
- -i 覆盖前询问,回复y覆盖
- -f 取消覆盖询问
- -b 覆盖前创建一个备份
- -n 不覆盖文件或目录
- -u 移动的文件或目录无重复时,才会移动
- -v 显示移动过程
实例
1)将文件移动到其他目录
mv a.txt /test
2)修改文件/目录名
mv b.txt bb.txt
mv test newtest
3)移动文件到当前目录中(.代表当前目录)
mv /test.bat/ .
rm:删除文件或目录
rm (remove)删除文件或目录
参数:
- -r 删除目录(递归删除)
- -f 删除是不再确认
- -v 显示删除过程
实例
1)删除目录下所有内容
提示:rm命令删除的文件无法恢复,慎用!
rm -rf /test1
du:查看文件或目录大小
du(disk usage)查看目录或文件大小
参数:
- -a 显示文件大小
- -h 以K、M、G为单位
实例
du 1)显示当前目录下所有目录的大小
du 目录名 2)显示指定目录的大小
du -a 3)显示当前目录下所有文件的大小
du -a 文件名 4)显示指定文件的大小
du -h 5)显示单位(K、M、G)
wc:计算行数字数
参数:
- -c 只显示Bytes数
- -l 只显示行数
- -w 只显示字数
实例
1)显示文件的行数、字数、字节数、文件名
[root]# wc a.txt
69 624 3459 a.txt
2)显示多个文件的总行数、字数、字节数
wc a.txt c.txt d.txt
cmp:比较文件
作用:比较两个文件是否有差异,如果相同,则没有回显;如果不同,则标记处不同的位置。
参数:
- -c 显示差异字符对应的内容
- -l 标记处不一样的地方
实例
1)比较两个文件的内容是否相同(没有回显就表示相同)
cmp a.txt b.txt
2)显示出两个文件不一样的位置,并显示出不一样的内容
[roo]# cmp -l a.txt b.txt
1 61 1 62 2
find:查找文件
参数:
- -name 指定文件名
- -iname 在name的基础上,忽略大小写
- -type 指定文件类型(f表示文件,d表示目录)
- -ctime 过去n天内创建的文件
- -atime 过去n天内被读取过的文件
- -mtime 过去n天内被修改过的文件
- -amin 过去n分钟内被读取过的文件
- -cmin 过去n分钟内被修改过的文件
实例
1)在/home/目录下,查找文件名是 a.txt 的文件
find /home -name a.txt
# 忽略大小写
find /home -iname a.tx
2)在/home/目录下,查找后缀为 txt 的文件
find /home -name '*.txt'
3)在/home/目录下,查找1天内被读取过的文件
find /home/ -type f -atime -1
二、查看文件
cat:查看所有内容
作用:从第一行开始,显示文件所有内容
参数:
- -n 显示行数
- -b 类似-n,但不对空白行编号
- -s 将连续的空白行替换成一行
- -E 每行结尾处显示$
实例
1)查看文件内容,并显示行号
cat -n /test/a.txt
2)清空文件内容
cat /dev/null > /test/a.txt
3)倒序查看(从最后一行开始显示)
tac /test/a.txt
nl:查看时显示行号
类似 cat -n
nl /test/a.txt
more:逐页查看
作用:一页一页的显示,逐页阅读,配合功能键实现翻页等操作。
参数:
- +num 从第 num 行开始显示
- -f 计算行数时,因单行字数太长,而自动换行为两行及以上的,算作一行。
- -s 连续两行以上的空白行,替换为一行空白行
实例
1)从第20行开始显示
more +20 /test/a.txt
常用操作命令
- Enter键 向下n行,默认向下1行。
- 空格键 向下一页(即一个屏幕的内容)
- Ctrl+F 向下一页(同空格键)
- Ctrl+B 向上一页
- = 输出当前行号
- :f 输出文件名和当前行号
- V 调用vi编辑器
- ! 调用Shell,回车执行命令
- q 退出
less:逐页查看
作用:与more类似,但可以向上翻页
参数:
- -m 显示百分比
- -n 显示行号
- -s 连续空行显示为一行
- -Q 取消警告音
进入less查看模式后,可配合功能键操作:
- /字符串 向下搜索指定字符串
- ?字符串 向上搜索指定字符串
- n 重复前一个搜索(配合/或?)
- N 反向重复前一个搜索(配合/或?)
- d或空格键或[pg dn]键 向下翻一页
- b或[pg up] 键 向上翻一页
- Enter 或 ↓ 向下一行
- y 或 j 或 ↑ 向上一行
- G 移动到最后一行
- g 移动到第一行
- q 退出
实例
1)查看文件并显示行号和百分比
less -mN a.txt
2)查看进程/历史命令后,通过less分页显示
ps -ef | less -mN
history | less -mN
3)搜索技巧
按下 /root 向下搜索所有字符串root后
按下n键可以搜索下一个root的位置,按下N键可以搜索上一个root的位置
less和more的区别?
1)less不会直接加载整个文件的内容,速度比more快。
2)less可以搜索指定内容,而more不能。
3)less可以向上翻页,而more只能向下翻页。
4)显示到最后一行时,more会自动退出,而less不会退出。
5)less退出后,shell不会留下内容,而more会留下内容。
head:查看开头部分
作用:查看文件的前几行,默认查看前10行
参数:
- -n 显示n行(-n可省略)
- -c 显示多少个字节
- -q 隐藏文件名(默认)
- -v 显示文件名
1)查看文件的前10行
head -10 a.txt
2)查看文件除了最后10行的全部内容
head -n -10 a.txt
tail:查看结尾部分
作用:查看文件最后几行的内容(默认10行)
参数:
- -n 显示最后n行
- -f 持续查看(Ctrl+c退出)
- -s 配合-f,间隔指定时间更新一次
实例
1)查看最后9行
[ tail -9 a.txt
2)每隔2秒查看一次最后几行,常用于查看最近更新的日志
tail -f -s 2 a.txt
三、用户/用户组
Linux系统通过系统管理工具userconf,对用户进行统一管理。
whoami:查看当前用户
作用:显示当前登录的用户名称,等价于 id -un
[root]# whoami
root
id:查看用户信息
作用:显示用户的ID、组ID和所属用户组
参数:
- -u 显示用户ID
- -un 显示当前登录用户
- -g 显示用户组ID
- -G 显示用户附加组ID
实例
1)显示当前登录的用户
id -un
2)显示指定用户的ID、组ID和用户组(不指定用户时,默认显示当前用户)
[root]# id sshd
uid=74(sshd) gid=74(sshd) groups=74(sshd)
字段解释:
- uid:用户的ID
- gid:用户组的ID
- groups:用户所属的用户组
useradd:添加用户
参数:
- -u 指定用户ID
- -d 指定用户主目录
- -g 指定用户所属组
- -G 指定用户所属的附加组
- -s 指定Shell文件
实例
1)添加用户
useradd user01
新增用户就是在/etc/passwd、/etc/shadow、/etc/group文件中添加一条记录。
[root]# cat /etc/passwd
user01:x:1001:1001::/home/user01:/bin/bash
[root]# cat /etc/shadow
user01:!!:19252:0:99999:7:::
[root]# cat /etc/group
user01:x:1001:
并自动为其创建一个家目录
[root]# ls /home/
user01
userdel:删除用户
参数:
- -r 删除用户家目录
实例
1)删除指定用户
userdel user01
删除用户就是将/etc/passwd、/etc/shadow、/etc/group文件中的记录删除
查看这些文件,发现 user01 的记录均被删除
cat /etc/passwd
cat /etc/shadow
cat /etc/group
删除用户时,默认不删除家目录,可以使用 -r 参数删除家目录,或删除用户后,手动删除家目录的文件夹
userdel user01 -r
usermod:修改用户
参数:
- -u 修改用户ID
- -l 修改用户名称
- -g 修改用户组
- -G 修改用户附加组
- -d 修改用户登入时的目录
- -s 修改用户的shell
- -e 修改账号的有效期
- -L 锁定用户密码
- -U 解除锁定
passwd:修改密码
新建的用户没有口令,需指定口令后才可使用。
普通用户只能修改自己的口令,而超级管理员可以修改其他用户的口令。
参数:
- -f 强制用户下次登录时修改口令
- -d 使用户无口令
- -l 锁定用户(无法登录)
- -u 解锁用户
实例
1)修改用户密码
passwd user01
su:切换用户
su(switch user)切换当前的登录的用户
实例
1)切换其他用户登录
su user01
提示:
1)root切换普通用户时,不需要输入密码
2)普通用户切换其他用户时,需要输入密码
3)切换无密码的用户时,不需要输入密码
groupadd:添加用户组
参数:
- -g 指定组ID
实例
1)添加用户组
groupadd user04
查看/etc/group文件,确认用户组添加成功
[root]# cat /etc/group
user04:x:1004:
groupdel:删除用户组
groupdel user04
查看/etc/group文件,确认用户组删除成功
groupmod:修改用户组
参数:
- -n 修改组名
- -g 修改组ID
实例
1)修改组名
groupmod oldgroup -n newgroup
查看/etc/group文件,确认用户组修改成功
gpasswd:修改组用户
将用户添加到用户组,或从用户组中删除用户
参数:
- -a 添加用户到组
- -d 从组中删除用户
实例
1)将用户(user001)添加到用户组(user002)
[root]# gpasswd -a user001 user002
正在将用户“user001”加入到“user002”组中
[root]# id user001
uid=1000(user001) gid=1000(user001) 组=1000(user001),1001(user002)
2)从用户组(user002)中删除用户(user001)
[root]# gpasswd -d user001 user002
正在将用户“user001”从“user002”组中删除
[root]# id user001
uid=1000(user001) gid=1000(user001) 组=1000(user001)
四、权限管理
Linux有读、写、执行三种权限。
- r(read):读权限,查看文件内容或查看文件夹中的内容
- w(write):写权限,编辑文件或在文件夹下的创建/删除/复制/移动操作
- x(execute):执行权限,执行文件
文件和目录的权限由 rwx 三个参数组合表示,且顺序不会变,-表示没有权限。
查看文件权限
[root]# ls -l
drwxr-xr-x. 2 root root 6 9月 24 10:23 home
字段解释:
- 第一位:文档类型,此处为d,表示文档(-表示文件)
- 第2~4位:所有者权限,此处为rwx,表示拥有读写执行三种权限
- 第5~7位:同组用户权限,此处为r-x,表示拥有读、执行两种权限
- 第8~10位,其他用户权限,此处为r-x,表示拥有读、执行两种权限
chmod:设置权限
参数:
- -u 文件所有者
- -g 文件所有者所在的组
- -o 其他用户
- -a 所有用户(a=u+g+o)
- -R 递归设置(对目录下所有文件和目录都设置权限)
- +增加权限
- -减少权限
- =设置权限
- r 读权限(4)
- w 写权限(2)
- x 执行权限(1)
实例
字母形式设置权限:
chmod u+x a.txt # 给文件所有者增加执行权限
chmod go+w a.txt # 给同组用户和其他用户增加写权限
chmod u-wx a.txt # 给文件所有者减少写和执行权限
chmod u=rwx a.txt # 给文件所有者设置读、写、执行权限
数字形式设置权限(r=4,w=2,x=1)
chmod 777 a.txt
chown:修改所属用户
参数:
- -R 递归设置(修改目录所有者时,同时修改目录下所有内容的所有者)
实例
1)修改文件的所有者
chown user001 a.txt
2)同时修改文件的所属者和所属组
chown user001:user001 a.txt
chgrp:修改所属组
参数:
- -R 递归设置(修改目录所属组时,同时修改目录下所有内容的所属组)
1)修改文件的所属组
chgrp user001 a.txt
五、网络
ping:检测网络
作用:检测与目标主机的网络连通性
参数:
- -c 指定次数(默认4次)
- -i 间隔时间(秒)
- -s 指定数据包大小
实例
ping www.baidu.com # 域名(网址)
ping 182.61.200.7 # IP地址
ping MiWiFi-R1CL-srv # 主机名
ping www.baidu.com -c 3 # ping 3次
ping www.baidu.com -i 3 # 间隔3秒ping一次
ping www.baidu.com -s 100 # 数据包大小为100
提示:如果目标主机禁用ping,也会ping不通,但不代表网络不通。
telnet:检测端口
telnet通常用来检测目标主机的端口是否开启。
如果返回这个,说明没有安装 telnet工具
bash: telnet: 未找到命令...
安装 telnet
yum -y install telnet
测试目标的80端口是否打开
telnet 182.61.200.6 80
提示Connected(链接到)则表示端口开放
Trying 182.61.200.6...
Connected to 182.61.200.6.
Escape character is '^]'.
提示connection timed out(链接超时)则表示端口关闭
telnet: connect to address 182.61.200.11: Connection timed out
nc:端口扫描
nc也可以检测目标主机的端口是否开启,常用来扫描端口。
参数:
- -v 显示执行过程
- -u 检测UDP(默认是TCP)
实例
1)测试目标主机的80端口是否开启,Connected表示开启,Connection refused表示关闭。
nc -v 182.61.200.6 80
netstat:网络状态
参数:
- -t TCP协议(-u表示UDP协议)
- -n 显示IP地址(默认显示域名)
- -l 显示监控状态的链接(State字段为LISTEN)
- -p 显示进程信息
如果返回这个,说明没有安装网络工具
bash: netstat: 未找到命令...
安装网络工具 net-tools
yum -y install net-tools
重新执行命令
netstat -tnlp
ifconfig:网络设备
ifconfig常用来查看主机的IP地址。
1)查看网卡信息
ifconfig
2)启动/关闭网卡(root权限)
ifconfig eth0 up
ifconfig eth0 down
3)配置ip地址和子网掩码
ifconfig eth0 192.168.10.1
ifconfig eth0 192.168.10.1 netmask 255.255.255.0
traceroute:跟踪路由
作用:查看当前主机到达目标主机所经过的路由
如果返回这个,说明没有安装
bash: traceroute: 未找到命令...
安装traceroute工具
yum -y install traceroute
重新执行命令
traceroute www.baidu.com # 域名
traceroute 182.61.200.7 # IP地址
arp:缓存表
arp是地址解析协议,负责将IP地址转换为Mac地址,使用IP>Mac映射表缓存数据,
参数:
- -s 添加映射关系
- -d 删除映射关系
实例
1)显示arp缓存表
[root]# arp
2)添加IP>Mac映射关系
arp -s 192.168.11.2 00:b1:b2:b3:b4:b5
3)删除IP>Mac映射关系
arp -d 192.168.11.2
六、系统管理
uname:系统信息
作用:显示操作系统的相关信息。
参数:
- -a (all)全部信息
- -m 电脑类型
- -n 主机名称
- -s 系统名
实例
1)查看系统信息(常用)
[root]# uname -a
Linux MiWiFi-R1CL-srv 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
2)查看系统类型
[root]# uname -m
x86_64
3)查看主机名
[root]# uname -n
MiWiFi-R1CL-srv
who:所有登录用户
显示所有正在使用系统的用户信息
参数:
- -H 显示标题
[root]# who -H
名称 线路 时间 备注
root tty1 2022-09-26 20:29
root pts/0 2022-09-26 21:12 (192.168.31.179)
whoami:当前登录用户
显示当前登录的用户,即“我是谁“
[root]# whoami
root
date:日期时间
1)显示当前时间
[root]# date
2022年 09月 24日 星期六 21:29:09 CST
2)修改日期(会把具体时间设置成00:00:00)
[root]# date -s 20220923
2022年 09月 23日 星期五 00:00:00 CST
3)修改时间
[root]# date -s 21:30:00
2022年 09月 24日 星期六 21:30:00 CST
last:用户登录信息
作用:显示最近的用户登录信息
last命令实际上是读取/var/log/wtmp文件,这个文件永久记录用户登录信息,由于是二进制文件,无法直接查看,因此需要使用last命令查看。
参数:
- -n 显示的行数
- -f 读取指定文件(默认读取/var/log/wtmp)
实例
1)最近的用户登录信息
[root]# last
root pts/0 192.168.31.179 Mon Sep 26 20:29 still logged in
root tty1 Mon Sep 26 20:29 still logged in
字段解释:
- 第一列:用户名
- 第二列:终端位置,pts/0(伪终端)指SSH远程登录;tty指本地登录或直连
- 第三列:登录的IP地址,本地终端登录则显示空
- 第四列:登录开始时间
- 第五列:登录结束(退出)时间
- 第六列:登录持续时间,still logged in 表示处于登录状态
2)用户登录失败的信息
[root]# last -f /var/log/btmp
root ssh:notty 192.168.31.179 Sat Sep 24 21:52 gone - no logout
3)处于登录状态的用户信息
[root@MiWiFi-R1CL-srv ~]# last -f /var/run/utmp
root pts/0 192.168.31.179 Mon Sep 26 20:29 still logged in
4)链接用户过多时,可使用 fuser 命令断开指定用户链接
[root]# fuser -k /dev/pts/0
/dev/pts/0: 1545
5)只显示5行
last -n 5
lastd:用户登录失败
显示最近的用户登录失败信息
实际上是读取 /var/log/btmp的内容,整理后展示出来。
参数:
- -n 显示几行
实例
1)lastb 等价于 last -f /var/log/btmp
[root]# lastb
root ssh:notty 192.168.31.179 Sat Sep 24 21:52 - 21:52 (00:00)
[root]# last -f /var/log/btmp
root ssh:notty 192.168.31.179 Sat Sep 24 21:52 gone - no logout
lastlog:最后一次登录
显示用户最后一次登录的信息
文件位置:/var/log/lastlog
[root]# lastlog
用户名 端口 来自 最后登陆时间
root pts/0 192.168.31.179 一 9月 26 20:29:35 +0800 2022
bin **从未登录过**
ps:查看进程
ps(process status)显示当前进程的状态
参数:
- -e 显示全部进程
- -f 显示全部列
- -u 指定用户
1)查看进程(常用)
[root]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 20:28 ? 00:00:03 /usr/lib/systemd/systemd
字段说明:
- UID:执行进程的用户id
- PID:进程id
- PPID:父进程id(没有父进程则称为僵尸进程)
- C:cpu的占用率
- STIME:进程的启动时间
- TTY:终端设备(?表示该进程不是由终端设备发起)
- CMD:进程名称或路径
2)过滤进程(查看httpd进程是否运行)
ps -ef | grep httpd
3)显示指定用户的进程
ps -u root
top:动态查看进程
参数:
- P键 按照CPU使用率降序
- M键 按照内存降序
- q键 退出
核心字段:
- S:进程运行状态(S表示睡眠,R表示运行)
- %CPU:cpu占用率
- %MEM:内存占用率
- COMMAND:进程名称或路径
kill:结束进程
1)根据进程PID结束进程(先用ps查看进程PID)
ps -ef | grep httpd
kill 20867
2)根据进程名结束进程
killall httpd
3)彻底结束进程
kill -9 123456
free:查看内存
作用:查看系统内存的使用情况。
参数:
- -h 显示单位
实例
1)查看内存
[root]# free -h
total used free shared buff/cache available
Mem: 972M 222M 594M 7.8M 155M 606M
Swap: 2.0G 0B 2.0G
字段解释:
- total:物理内存总大小
- used:已使用内存
- free:剩余内存
- shared:多个进程共享使用的内存
- buff/cache:缓存使用的内存
- available:还可以使用的内存
- Mem:内存使用情况
- Swap:交换空间使用情况
lsmod:显示系统模块
显示已经加载到内核中的系统模块的状态信息
/proc/modules 文件保存系统模块信息
实例
1)查看系统是否安装了某个模块
[root]# lsmod | grep drm
drm_kms_helper 186531 1 vmwgfx
字段解释:
- 第一列:模块名
- 第二列:模块大小
- 第三列:依赖模块的个数
- 第四列:依赖模块的内容
clear:清屏
本质上是隐藏而不是删除,往上滑动鼠标仍然可以看到被“清除”的内容
vlock:锁屏
离开时,可使用此命令锁屏,输入密码后解锁。
reboot:重启
shutdown:关机
shutdown -h now # 立刻关机
shutdown -h 10 # 10分钟后关机
shutdown -r now # 立刻重启
shutdown -c # 取消关机
Ctrl + c # 取消关机
七、压缩备份
zip
压缩为 xxx.zip,保留源文件
实例
1)压缩为 zip 文件
zip a.zip a.txt # 压缩文件
zip a a.txt # 可省略后缀名
zip -r aaa.zip aaa/ # 压缩文件夹
2)解压zip文件
unzip aaa.zip
bzip2
压缩为 xxx.bz2,使用新的压缩算法,效率更高,默认不保留源文件
参数:
- -k 保留源文件
- -d 解压缩
实例
1)压缩 a.txt 文件为 a.txt.bz2
bzip2 a.txt # 默认不保留源文件
bzip2 -k a.txt # 保留源文件
2)解压缩 a.txt.bz2
bzip2 -d a.txt.bz2
bunzip2 a.txt.bz2
gzip
压缩为 xxx.gz,不保留源文件,只压缩文件,不压缩目录
实例
1)压缩为 gz 文件
gzip a.txt
2)解压 gz 文件
gzip -d a.txt.gz
gunzip a.txt.gz
tar
常用于备份,和还原备份文件,保留源文件
参数:
- -c 建立备份文件
- -x 还原备份文件
- -z 指定gzip处理备份文件
- -v 显示执行过程
- -f 指定备份文件
实例
1)压缩 a.txt 为 a.tar.gz
tar -czvf a.tar.gz a.txt
2)解压 a.tar.gz
tar -xzvf a.tar.gz
八、防火墙
centos 6.5使用iptables防火墙
centos 7.x使用Firewalld防火墙
Iptables
开启/关闭/重启防火墙
service iptables start
service iptables stop
service iptables restart
查看防火墙状态/规则
service iptables status
iptables -L
iptables -L -n
开放80端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
添加规则后需要保存,否则重启防火墙后规则会失效
/etc/init.d/iptables save
Frewalld
开启/关闭/重启防火墙
systemctl start firewalld
systemctl stop firewalld
systemctl restart firewalld
查看防火墙状态,active(running)表示开启
systemctl status firewalld
firewall-cmd --state
开放80端口(加载后生效)
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
查看开放的端口
firewall-cmd --zone=public --list-ports
关闭80端口(加载后生效)
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload
九、服务
service:控制服务
开启、关闭、或重启服务
语法:
service 服务名 start/stop/restart
实例
1)开启http服务
service httpd start
2)检查服务进程是否启动
ps -ef | grep httpd
ntp:时间服务
NTP服务用来同步系统时间。
ntpd服务运行以后,先是每隔64秒与NTP服务器同步一次时间,根据时间的误差值逐渐调整自己的时间,误差值越小,同步的时间间隔就越大。
ntpd服务有一个自我保护机制:如果本机和NTP服务器的时间差距太大(比如15分钟),ntpd服务就不会同步时间,这样可以防止日志的时间差距过大,导致日志失去准确性。这时就需要手动同步时间。
1)启动时间同步服务
开启/关闭/重启ntp服务(永久性同步时间)
service ntpd start/stop/restart/status
systemctl start/stop/restart/status ntpd
如果提示not found,就下载ntp服务
yum install ntp
如果之前安装过 ntpdate,就先删除
yum remove ntpdate
查看ntp服务是否启动
ps -ef | grep ntp
service ntpd status
systemctl status ntpd
查看ntp服务与时间服务器通信状态
[root]# ntpstat
synchronised to NTP server (91.206.8.34) at stratum 3
time correct to within 1123 ms
polling server every 64 s
2)配置时间服务器
修改ntp服务的配置文件 /etc/ntp.conf
vim /etc/ntp.conf
注释掉之前的配置,添加新的server
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com prefer
server 120.25.115.20
3)手动同步时间
执行一次,同步一次。
格式:ntpdate 时间服务器的域名或IP
[root]# ntpdate 120.25.115.20
[root]# ntpdate ntp1.aliyun.com
step time server 120.25.115.20 offset 54251318.932259 sec
如果提示未找到命令。。。就下载一个
yum install ntpdate
提示;开启ntp服务时,该命令无法同步时间。
同步时间测试:
# 停止ntp服务
[root]# service ntpd stop
# 修改系统时间
[root]# date -s 2021-01-01
# 手动同步时间
[root]# ntpdate ntp1.aliyun.com
ntpdate[2443]: step time server 120.25.115.20 offset 54253311.209044 sec
# 验证时间是否同步
[root]# date
crontab:计划任务
crontab命令可以查看、编辑、删除计划任务。
参数:
- -l (list)查看计划任务
- -e 编辑计划任务
- -r 删除所有计划任务
- -u 指定用户
1)「查看」当前用户的计划任务。
[root]# crontab -l
2)「编辑」(增加/删除/修改)当前用户的计划任务
[root/]# crontab -e
在打开的文件中,可以编辑计划任务,在编辑之前,我们先了解一下计划任务的语法格式、时间规范和特殊符号。
计划任务语法格式:
- 分 时 日 月 周 需要执行的命令
- 以行区分任务,一行是一个计划任务
时间规范:
- 分:分钟(0-59)
- 时:小时(0-23)
- 日:一个月的第几天(1-31)
- 月:(1-12)
- 周:星期几(0-6)
符号:
- *: 表示每一个数字
- -: 表示连续区间,比如:周1到周7每天执行一次(1-7)
- /: 表示每多少个,比如:10分钟执行一次(*/10)
- ,: 表示多个取值,比如:每天1点,3点,5点执行(1,3,5)
案例
1)每分钟执行一次命令(将当前时间输出到文件中)
*/1 * * * * date >> /home/text.txt
2)每两个小时重启一次 httpd 服务
0 */2 * * * /sbin/service httpd restart
3)每天7:50开启ssh服务
50 7 * * * /sbin/service sshd start
4)每月1号和15号检查/home磁盘
0 0 1,15 * * fsck /home
5)每周1到周5的3点执行一次命令
00 03 * * 1-5 date >> /home/a.txt
提示:
- 计划任务最小单位是分,不能执行每隔几秒执行一次的任务
- 命令中的路径必须是绝对路径,如/etc/xx
- 执行脚本需要在文件开头添加 #!/bin/sh 和一行空行
3)「删除」计划任务
此删除为删除当前用户的所有计划任务
如果只想删除某一条计划任务,可以使用编辑命令,删掉那一行计划任务。
[root]# crontab -l
*/1 * * * * date >> /home/text.txt
[root]# crontab -r
[root]# crontab -l
no crontab for root