100个最常用的Linux命令

服务器 0

一、文件目录

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 创建时指定权限

实例

mkdirtest				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 -lls -a			5)显示隐藏文件ls te*			6)模糊查询:当前目录下,所有 te 开头的文件和目录ls /root/ te*	7)模糊查询:/root目录下,所有 te 开头的文件和目录ll -t			8)查看最近修改过的文件和目录

「文件详细信息」字段解释

从左到右依次是:权限、引用次数、所属用户、所属组、大小、修改时间、文件名

[root /]# ll /testtotal 4drwxr-xr-x 2 root root 4096 Sep 1420: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 mvtest 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.txt696243459 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 1611622

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 sshduid=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/passwduser01:x:1001:1001::/home/user01:/bin/bash[root]# cat /etc/shadowuser01:!!:19252:0:99999:7:::[root]# cat /etc/groupuser01: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/groupuser04: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 user001uid=1000(user001)gid=1000(user001) 组=1000(user001),1001(user002)

2)从用户组(user002)中删除用户(user001)

[root]# gpasswd -d user001 user002正在将用户“user001”从“user002”组中删除[root]# id user001uid=1000(user001)gid=1000(user001) 组=1000(user001)

四、权限管理

Linux有读、写、执行三种权限。

r(read):读权限,查看文件内容或查看文件夹中的内容

w(write):写权限,编辑文件或在文件夹下的创建/删除/复制/移动操作

x(execute):执行权限,执行文件

文件和目录的权限由 rwx 三个参数组合表示,且顺序不会变,-表示没有权限。

查看文件权限

[root]# ls -ldrwxr-xr-x.   2 root root    69月  2410: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	# 给文件所有者减少写和执行权限chmodu=rwx a.txt	# 给文件所有者设置读、写、执行权限

数字形式设置权限(r=4,w=2,x=1)

chmod777 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			# 域名(网址)ping182.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 installtraceroute

重新执行命令

traceroute www.baidu.com	# 域名traceroute182.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 -aLinux 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 -mx86_64

3)查看主机名

[root]# uname -nMiWiFi-R1CL-srv

who:所有登录用户


显示所有正在使用系统的用户信息

参数:

-H 显示标题

[root]# who -H名称   线路       时间           备注root     tty1         2022-09-26 20:29root     pts/0        2022-09-26 21:12 (192.168.31.179)

whoami:当前登录用户


显示当前登录的用户,即“我是谁“

[root]# whoamiroot

date:日期时间


1)显示当前时间

[root]# date2022年 09月 24日 星期六 21:29:09 CST

2)修改日期(会把具体时间设置成00:00:00)

[root]# date -s 202209232022年 09月 23日 星期五 00:00:00 CST

3)修改时间

[root]# date -s 21:30:002022年 09月 24日 星期六 21:30:00 CST

last:用户登录信息


作用:显示最近的用户登录信息

last命令实际上是读取/var/log/wtmp文件,这个文件永久记录用户登录信息,由于是二进制文件,无法直接查看,因此需要使用last命令查看。

参数:

-n 显示的行数

-f 读取指定文件(默认读取/var/log/wtmp)

实例

1)最近的用户登录信息

[root]# lastroot     pts/0        192.168.31.179   Mon Sep 2620:29   still logged in   root     tty1                          Mon Sep 2620: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 2421:52    gone - no logout

3)处于登录状态的用户信息

[root@MiWiFi-R1CL-srv ~]# last -f /var/run/utmp root     pts/0        192.168.31.179   Mon Sep 2620: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]# lastbroot     ssh:notty    192.168.31.179   Sat Sep 2421:52 - 21:52  (00:00)[root]# last -f /var/log/btmp root     ssh:notty    192.168.31.179   Sat Sep 2421:52    gone - no logout

lastlog:最后一次登录


显示用户最后一次登录的信息

文件位置:/var/log/lastlog

[root]# lastlog用户名           端口     来自             最后登陆时间root             pts/0    192.168.31.179   一 9月 2620:29:35 +0800 2022bin                                        **从未登录过**

ps:查看进程


ps(process status)显示当前进程的状态

参数:

-e 显示全部进程

-f 显示全部列

-u 指定用户

1)查看进程(常用)

[root]# ps -efUID         PID   PPID  C STIME TTY          TIME CMDroot          10020: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 kill20867

2)根据进程名结束进程

killall httpd

3)彻底结束进程

kill -9 123456

free:查看内存


作用:查看系统内存的使用情况。

参数:

-h 显示单位

实例

1)查看内存

[root]# free -h              total        used        free      shared  buff/cache   availableMem:           972M        222M        594M        7.8M        155M        606MSwap:          2.0G          0B        2.0G

字段解释:

total:物理内存总大小

used:已使用内存

free:剩余内存

shared:多个进程共享使用的内存

buff/cache:缓存使用的内存

available:还可以使用的内存

Mem:内存使用情况

Swap:交换空间使用情况

lsmod:显示系统模块


显示已经加载到内核中的系统模块的状态信息

/proc/modules 文件保存系统模块信息

实例

1)查看系统是否安装了某个模块

[root]# lsmod | grep drmdrm_kms_helper        1865311 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.gzgunzip 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/statussystemctl start/stop/restart/status ntpd

如果提示not found,就下载ntp服务

 yum install ntp

如果之前安装过 ntpdate,就先删除

 yum remove ntpdate

查看ntp服务是否启动

ps -ef |grep ntpservice ntpd statussystemctl status ntpd

查看ntp服务与时间服务器通信状态

[root]# ntpstatsynchronised to NTP server (91.206.8.34) at stratum 3time 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 iburstserver ntp1.aliyun.com preferserver 120.25.115.20

3)手动同步时间

执行一次,同步一次。

格式:ntpdate 时间服务器的域名或IP

[root]# ntpdate 120.25.115.20[root]# ntpdate ntp1.aliyun.comstep 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.comntpdate[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服务

507 * * * /sbin/service sshd start

4)每月1号和15号检查/home磁盘

001,15 * * fsck /home

5)每周1到周5的3点执行一次命令

00 03 * * 1-5 date>> /home/a.txt

提示:

  1. 计划任务最小单位是分,不能执行每隔几秒执行一次的任务

  1. 命令中的路径必须是绝对路径,如/etc/xx

  1. 执行脚本需要在文件开头添加 #!/bin/sh 和一行空行

3)「删除」计划任务

此删除为删除当前用户的所有计划任务

如果只想删除某一条计划任务,可以使用编辑命令,删掉那一行计划任务。

[root]# crontab -l*/1 * * * * date>> /home/text.txt[root]# crontab -r[root]# crontab -lno crontabfor root

也许您对下面的内容还感兴趣: