linux运维常用培训

2021年2月

目录
一、 系统监控
1、free命令使用
2、ulimit命令使用
3、top命令使用
4、du命令使用
5、ps命令使用
6、 crontab 命令
二、 文件操作

  1. tail查看文件
  2. ls查看文件情况
  3. chmod、chown文件权限设置
  4. 文件上传下载
  5. linux常用压缩解压命令
    三、 网络通信
  6. netstat监控命令
  7. linux重启网络
  8. SELinux简介
  9. 防火墙设置
  10. CURL命令使用
  11. tcpdump命令使用
    四、 系统管理
    1、查看内核版本
    2、查看linux系统ip
    3、查看ip是否被占用
    4、uptime命令使用
    5、telnet命令使用

一、系统监控
1、free命令使用
Linux free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法  
语法free [-bkmotV][-s <间隔秒数>]
参数说明
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-h  以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes Bit
K = kilos KB
M = megas MB
G = gigas GB
T = teras TB
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。

实例
显示内存使用情况

# free //显示内存使用信息
total  used   free   shared  buffers cached
Mem: 254772 184568 70204   0       5692    89892
Swap: 524280 65116 459164
-/+ buffers/cache: 91524 163248

以总和的形式显示内存的使用信息

# free -m //以MB为单位显示内存使用情况。(free -h //以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值)total   used   free  shared  buff/cache   available
Mem:     924    196    215     48         512         664
Swap:   487      0     487

周期性的查询内存使用信息

# free -s 10 //每10s 执行一次命令
total    used    free   shared  buffers  cached
Mem: 254772   187628  67144   0       6140     89964
Swap: 524280  65116   459164total    used    free   shared  buffers cached
Mem: 254772    187748  67024  0       6164    89940
Swap: 524280   65116   459164

2、ulimit命令使用
Linux ulimit命令用于控制shell程序的资源。
ulimit为shell内建指令,可用来控制shell执行程序的资源。
语法:

语法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大小>]
参数说明:
-a  显示目前资源限制的设定。
-c <core文件上限>  设定core文件的最大值,单位为区块。
-d <数据节区大小>  程序数据节区的最大值,单位为KB。
-f <文件大小>  shell所能建立的最大文件,单位为区块。
-H  设定资源的硬性限制,也就是管理员所设下的限制。
-m <内存大小>  指定可使用内存的上限,单位为KB。
-n <文件数目>  指定同一时间最多可开启的文件数。
-p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。
-s <堆叠大小>  指定堆叠的上限,单位为KB。
-S  设定资源的弹性限制。
-t <CPU时间>  指定CPU使用时间的上限,单位为秒。
-u <程序数目>  用户最多可开启的程序数目。
-v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

实例
[root@sunchao ~]# ulimit -a

core file size     (blocks, -c) 0
data seg size      (kbytes, -d) unlimited
file size        (blocks, -f) unlimited
pending signals         (-i) 1024
max locked memory    (kbytes, -l) 32
max memory size     (kbytes, -m) unlimited
open files           (-n) 1024
pipe size      (512 bytes, -p) 8
POSIX message queues   (bytes, -q) 819200
stack size       (kbytes, -s) 10240
cpu time        (seconds, -t) unlimited
max user processes       (-u) 4096virtual memory     (kbytes, -v) unlimited
file locks           (-x) unlimited

设置单一用户程序数目上限

[root@sunchao ~]# ulimit -u 500 //设置单一用户程序上限
设置同一时间最多可开启的文件数
[root@sunchao ~]# ulimit -n 5000 //设置单一用户程序上限

实例
es集群报错:Too Many Open Files
可通过 ulimit -n 数量 解决此问题
3、top命令使用
Linux top命令用于实时显示 process 的动态。
使用权限:所有使用者。
语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]
参数说明:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称
S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
实例
显示进程信息

top

设置信息更新次数
top -n 2
//表示更新两次后终止更新显示
设置信息更新时间

# top -d 3

//表示更新周期为3秒
显示指定的进程信息

# top -p 139

//显示进程号为139的进程信息,CPU、内存占用率等
4、du命令使用
Linux du (英文全拼:disk usage)命令用于显示目录或文件的大小。
du 会显示指定的目录或文件所占用的磁盘空间。
语法
du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][–block-size][–exclude=<目录或文件>][–max-depth=<目录层数>][–help][–version][目录或文件]
参数说明:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-D或–dereference-args 显示指定符号连接的源文件大小。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的文件。
-L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显示总计。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
–max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
–help 显示帮助。
–version 显示版本信息。
实例
显示目录或者文件所占空间:

# du
608     ./test6
308     ./test
44       ./scf/lib
4       ./scf/service/deploy/product
4       ./scf/service/deploy/info
12      ./scf/service/deploy
16      ./scf/service
4       ./scf/doc
4       ./scf/bin
32      ./scf
8       ./test3
1288    .

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小。

显示指定文件所占空间

# du log2012.log
300     log2012.log

方便阅读的格式显示test目录所占空间情况:

# du -h test
608K    test/test6
308K    test/test4
4.0K    test/scf/lib
4.0K    test/scf/service/deploy/product
4.0K    test/scf/service/deploy/info
12K     test/scf/service/deploy
16K     test/scf/service
4.0K    test/scf/doc
4.0K    test/scf/bin
32K     test/scf
8.0K    test/test
31.3M    test

筛选目录层级超过指定层数的目录后,予以忽略。

# du -h --max-depth=1
4.0K    ./Documents
92K ./.config
64K ./.jupyter
12K ./.dbus
4.0K    ./Videos
4.0K    ./Downloads
4.0K    ./Desktop
8.0K    ./.pip
96K ./.ipython
4.0K    ./Pictures
1.9M    ./.local
4.0K    ./Templates
4.0K    ./Public
52M ./.cache
161M    ./Python-3.7.5
4.0K    ./Music
236M    .

5、ps命令使用
Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。
语法
ps [options] [–help]
参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的进程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 无法中断的休眠状态 (通常 IO 的进程)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令
实例
查找制定进程格式:
ps -ef | grep 进程关键字
例如显示 php 的进程:

# ps -ef | grep php
root       794     1  0  2020 ?        00:00:52 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
www-data   951   794  0  2020 ?        00:24:15 php-fpm: pool www
www-data   953   794  0  2020 ?        00:24:14 php-fpm: pool www
www-data   954   794  0  2020 ?        00:24:29 php-fpm: pool www...

显示进程信息:

# ps -A
PID TTY     TIME CMD1 ?    00:00:02 init2 ?    00:00:00 kthreadd3 ?    00:00:00 migration/04 ?    00:00:00 ksoftirqd/05 ?    00:00:00 watchdog/06 ?    00:00:00 events/07 ?    00:00:00 cpuset8 ?    00:00:00 khelper9 ?    00:00:00 netns10 ?    00:00:00 async/mgr11 ?    00:00:00 pm12 ?    00:00:00 sync_supers13 ?    00:00:00 bdi-default14 ?    00:00:00 kintegrityd/015 ?    00:00:02 kblockd/016 ?    00:00:00 kacpid17 ?    00:00:00 kacpi_notify18 ?    00:00:00 kacpi_hotplug19 ?    00:00:27 ata/0……省略部分结果30749 pts/0  00:00:15 gedit30886 ?    00:01:10 qtcreator.bin30894 ?    00:00:00 qtcreator.bin 31160 ?    00:00:00 dhclient31211 ?    00:00:00 aptd31302 ?    00:00:00 sshd31374 pts/2  00:00:00 bash31396 pts/2  00:00:00 ps

显示指定用户信息

# ps -u root //显示root进程用户信息PID TTY     TIME CMD1 ?    00:00:02 init2 ?    00:00:00 kthreadd3 ?    00:00:00 migration/04 ?    00:00:00 ksoftirqd/05 ?    00:00:00 watchdog/06 ?    00:00:00 events/07 ?    00:00:00 cpuset8 ?    00:00:00 khelper9 ?    00:00:00 netns10 ?    00:00:00 async/mgr11 ?    00:00:00 pm12 ?    00:00:00 sync_supers13 ?    00:00:00 bdi-default14 ?    00:00:00 kintegrityd/015 ?    00:00:02 kblockd/016 ?    00:00:00 kacpid……省略部分结果30487 ?    00:00:06 gnome-terminal30488 ?    00:00:00 gnome-pty-helpe30489 pts/0  00:00:00 bash30670 ?    00:00:00 debconf-communi 30749 pts/0  00:00:15 gedit30886 ?    00:01:10 qtcreator.bin30894 ?    00:00:00 qtcreator.bin 31160 ?    00:00:00 dhclient31211 ?    00:00:00 aptd31302 ?    00:00:00 sshd31374 pts/2  00:00:00 bash31397 pts/2  00:00:00 ps

显示所有进程信息,连同命令行

# ps -ef //显示所有命令,连带命令行
UID    PID PPID C STIME TTY     TIME CMD
root     1   0 0 10:22 ?    00:00:02 /sbin/init
root     2   0 0 10:22 ?    00:00:00 [kthreadd]
root     3   2 0 10:22 ?    00:00:00 [migration/0]
root     4   2 0 10:22 ?    00:00:00 [ksoftirqd/0]
root     5   2 0 10:22 ?    00:00:00 [watchdog/0]
root     6   2 0 10:22 ?    /usr/lib/NetworkManager……省略部分结果
root   31302 2095 0 17:42 ?    00:00:00 sshd: root@pts/2
root   31374 31302 0 17:42 pts/2  00:00:00 -bash
root   31400   1 0 17:46 ?    00:00:00 /usr/bin/python /usr/sbin/aptd
root   31407 31374 0 17:48 pts/2  00:00:00 ps -ef

6、crontab 命令
Linux crontab是用来定期执行程序的命令。
当安装完成操作系统之后,默认便会启动此任务调度命令。
crond 命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
注意:新创建的 cron 任务,不会马上执行,至少要过 2 分钟后才可以,你可以重启 cron 来马上执行。(systemctl restart crond)
linux 任务调度的工作主要分为以下两类:
1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存
2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置
语法

crontab [ -u user ] file

crontab [ -u user ] { -l | -r | -e }

说明:
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数说明:
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
时间格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其馀类推

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12)
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

使用者也可以将所有的设定先存放在文件中,用 crontab file 的方式来设定执行时间。
实例
每一分钟执行一次 /bin/ls:

  • /bin/ls
    在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup:
    0 6-12/3 * 12 * /usr/bin/backup
    周一到周五每天下午 6:00 寄一封信给 sunchao@163.com:
    0 17 * * 1-6 mail -s “hi” sunchao@163.com < /tmp/maildata
    每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分…执行 echo “haha”:
    20 0-23/2 * * * echo “haha”
    下面再看看几个具体的例子:
    0 /2 * * * /sbin/service httpd restart 每两个小时重启一次apache
    50 7 * * * /sbin/service sshd start 每天7:50开启ssh服务
    50 22 * * * /sbin/service sshd stop 每天22:50关闭ssh服务
    0 0 1,15 * * fsck /home 每月1号和15号检查/home 磁盘
    1 * * * * /home/bruce/backup 每小时的第一分执行 /home/bruce/backup这个文件
    00 03 * * 1-5 find /home "
    .xxx" -mtime +4 -exec rm {} ; 每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。
    30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30执行一次ls命令
    注意:程序当在你所指定的时间执行后,系统会发一封邮件给当前的用户,显示该程序执行的内容,若是你不希望收到这样的邮件,请在每一行空一格之后加上 > /dev/null 2>&1 即可,如:
20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh > /dev/null 2>&1

二、文件操作
1.tail查看文件
tail 命令可用于查看文件的内容,语法为
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容。
语法:
tail [参数] [文件]
参数说明:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

实例
要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:
tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail -n +20 notes.log
显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log
2.ls查看文件情况
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
语法
ls [-alrtAFR] [name…]
参数说明:
-a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
-l 除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
-F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
-R 若目录下有文件,则以下之文件亦皆依序列出
实例
列出根目录()下的所有目录:

# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var

列出除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出:
ls -l(等同于ll)
3.chmod、chown文件权限设置
3.1 chmod 命令
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

使用权限 : 所有使用者
语法
chmod [-cfvR] [–help] [–version] mode file…
参数说明
mode : 权限设定字串,格式如下 :
[ugoa…][[±=][rwxX]…][,…]
其中:
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
–help : 显示辅助说明
–version : 显示版本
实例
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 775 file
3.2 chown命令
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
chown 需要超级用户 root 的权限才能执行此命令。
只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。
使用权限 : root
语法
chown [-cfhvR] [–help] [–version] user[:group] file…
参数说明 :
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示辅助说明
–version : 显示版本
实例
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob

4.文件上传下载
在不使用xftp等linux工具的情况,可以通过linux命令,sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。
下载文件
sz命令发送文件到本地:
]#sz filename

敲命令之后,直接弹出下载保存窗口页面
上传文件
]# rz
敲命令之后,直接弹出上传窗口页面

rz、sz命令需要有如下条件:
linux系统
root权限
lrzsz安装包
lrzsz安装步骤:
// 编译安装
//root 账号登陆后,依次执行以下命令:tar zxvf lrzsz-0.12.20.tar.gzcd lrzsz-0.12.20
./configure
Make
make install
//上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:

cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz

Centos可以直接这样安装
]#yum install lrzsz -y

5.linux常用压缩解压命令
Linux 常用的压缩与解压缩命令有:tar、gzip等。
5.1 tar命令
Linux tar(英文全拼:tape archive )命令用于备份文件。
tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
语法
tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F <Script文件>][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>]

参数说明:
-A或–catenate 新增文件到已存在的备份文件。
-b<区块数目>或–blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。
-B或–read-full-records 读取数据时重设区块大小。
-c或–create 建立新的备份文件。
-C<目的目录>或–directory=<目的目录> 切换到指定的目录。
-d或–diff或–compare 对比备份文件内和文件系统上的文件的差异。
-f<备份文件>或–file=<备份文件> 指定备份文件。
-F<Script文件>或–info-script=<Script文件> 每次更换磁带时,就执行指定的Script文件。
-g或–listed-incremental 处理GNU格式的大量备份。
-G或–incremental 处理旧的GNU格式的大量备份。
-h或–dereference 不建立符号连接,直接复制该连接所指向的原始文件。
-i或–ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。
-k或–keep-old-files 解开备份文件时,不覆盖已有的文件。
-K<文件>或–starting-file=<文件> 从指定的文件开始还原。
-l或–one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。
-L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。
-m或–modification-time 还原文件时,不变更文件的更改时间。
-M或–multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。
-N<日期格式>或–newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。
-o或–old-archive或–portability 将资料写入备份文件时使用V7格式。
-O或–stdout 把从备份文件里还原的文件输出到标准输出设备。
-p或–same-permissions 用原来的文件权限还原文件。
-P或–absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。
-r或–append 新增文件到已存在的备份文件的结尾部分。
-R或–block-number 列出每个信息在备份文件中的区块编号。
-s或–same-order 还原文件的顺序和备份文件内的存放顺序相同。
-S或–sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。
-t或–list 列出备份文件的内容。
-T<范本文件>或–files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。
-u或–update 仅置换较备份文件内的文件更新的文件。
-U或–unlink-first 解开压缩文件还原文件之前,先解除文件的连接。
-v或–verbose 显示指令执行过程。
-V<卷册名称>或–label=<卷册名称> 建立使用指定的卷册名称的备份文件。
-w或–interactive 遭遇问题时先询问用户。
-W或–verify 写入备份文件后,确认文件正确无误。
-x或–extract或–get 从备份文件中还原文件。
-X<范本文件>或–exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。
-z或–gzip或–ungzip 通过gzip指令处理备份文件。
-Z或–compress或–uncompress 通过compress指令处理备份文件。
实例
压缩文件 非打包

tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz

列出压缩文件内容

# tar -tzvf test.tar.gz -rw-r--r-- root/root     0 2010-05-24 16:51:59 a.c

解压文件

# tar -xzvf test.tar.gz

5.2 gzip命令
Linux gzip命令用于压缩文件。
gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出".gz"的扩展名。
语法
gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][文件…] 或 gzip [-acdfhlLnNqrtvV][-S <压缩字尾字符串>][-<压缩效率>][–best/fast][目录]
参数说明:
-a或–ascii  使用ASCII文字模式。
-c或–stdout或–to-stdout  把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d或–decompress或----uncompress  解开压缩文件。
-f或–force  强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或–help  在线帮助。
-l或–list  列出压缩文件的相关信息。
-L或–license  显示版本与版权信息。
-n或–no-name  压缩文件时,不保存原来的文件名称及时间戳记。
-N或–name  压缩文件时,保存原来的文件名称及时间戳记。
-q或–quiet  不显示警告信息。
-r或–recursive  递归处理,将指定目录下的所有文件及子目录一并处理。
-S<压缩字尾字符串>或----suffix<压缩字尾字符串>  更改压缩字尾字符串。
-t或–test  测试压缩文件是否正确无误。
-v或–verbose  显示指令执行过程。
-V或–version  显示版本信息。
-<压缩效率>  压缩效率是一个介于1-9的数值,预设值为"6",指定愈大的数值,压缩效率就会愈高。
–best  此参数的效果和指定"-9"参数相同。
–fast  此参数的效果和指定"-1"参数相同。

实例
压缩文件
[root@sunchao]# gzip * //压缩目录下的所有文件
列出详细的信息
[root@sunchao]# gzip -dv * //解压文件,并列出详细信息
显示压缩文件的信息
[root@sunchao]# gzip -l *

三、网络通信
1.netstat监控命令
Linux netstat 命令用于显示网络状态。
利用 netstat 指令可让你得知整个 Linux 系统的网络情况。
语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]
语法:]# netstat [param]

参数说明:
-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示路由缓存。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistics 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定"-A unix"参数相同。
–ip或–inet 此参数的效果和指定"-A inet"参数相同。
实例
查看tcp、udp端口详细信息

# netstat -nltup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:9422            0.0.0.0:*               LISTEN      569/sshd
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      29500/python3.7
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      877/master
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      10716/sshd: root@pt
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      14077/sshd: root@pt
tcp6       0      0 :::9422                 :::*                    LISTEN      569/sshd
tcp6       0      0 :::8888                 :::*                    LISTEN      29500/python3.7
tcp6       0      0 ::1:6010                :::*                    LISTEN      10716/sshd: root@pt
tcp6       0      0 ::1:6011                :::*                    LISTEN      14077/sshd: root@pt
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           276/avahi-daemon: r
udp        0      0 127.0.0.1:323           0.0.0.0:*                           295/chronyd
udp        0      0 0.0.0.0:42453           0.0.0.0:*                           276/avahi-daemon: r
udp6       0      0 ::1:323                 :::*                                295/chronyd

2.linux重启网络
设置了linux网络,需要重启网络,可以用命令:
]# service network restart
3.SELinux简介
SELinux全称是 Security-Enhanced Linux,它是由美国国家安全局(NSA)贡献的,它为 Linux 内核子系统引入了一个健壮的强制控制访问Mandatory Access Control架构。
查看selinux状态
]# getenforce

临时禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)
]# setenforce
永久禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)

将SELINUX=enforce改成SELINUX=disabled

vi /etc/selinux/config

备注:Selinux 状态修改后需重启操作系统

4.防火墙设置
Redhat 6的防火墙iptables是一个静态防火墙,也就是说它不能够动态的添加开启端口,必须在配置文件中添加开启端口,然后重启防火墙才能生效。
Redhat7的防火墙firewalld,它是动态的,可以通过命令添加开启端口,不用重启服务就可以使改变生效。

启动:

#systemctl start  firewalld

查看状态:

#systemctl status firewalld 或者 firewall-cmd --state

停止:

#systemctl stop firewalld

禁用:

#systemctl disable firewalld

实例:
永久允许172.25.5.0网段访问:

#firewall-cmd --permanent --add-source=172.25.5.0/24

永久开启3306端口:(–add-port=80/tcp #添加端口,格式为:端口/通讯协议 --permanent #永久生效,没有此参数重启后失效)

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

永久开启ssh服务(–zone=work添加的区域为work):

#firewall-cmd --permanent --add-service=ssh --zone=work

移除ssh服务:

#firewall-cmd --permanent --remove-service=ssh --zone=work

更新防火墙规则:

#firewall-cmd --reload
5.CURL命令使用
curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;curl命令作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;

语法:语法格式:curl [参数] [网址]
5.1 提取指定网页
查看网页源码
语法:curl uri

[root@localhost ~]# curl www.baidu.com
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&amp;tpl=mn&amp;u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>&copy;2017&nbsp;Baidu&nbsp;<a href=http://www.baidu.com/duty/>使用百度前必读</a>&nbsp; <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a>&nbsp;京ICP证030173号&nbsp; <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>

显示头信息
]# curl -i https://www.baidu.com
打印信息:

[root@localhost ~]# curl -i https://www.baiud.com
curl: (7) Failed connect to www.baiud.com:443; Connection refused[root@localhost ~]# curl -i https://www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: keep-alive
Content-Length: 2443
Content-Type: text/html
Date: Mon, 13 Jul 2020 07:22:02 GMT
Etag: "588603eb-98b"
Last-Modified: Mon, 23 Jan 2017 13:23:55 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/...

6.tcpdump命令使用
Linux tcpdump命令用于倾倒网络传输数据。
执行tcpdump指令可列出经过指定网络界面的数据包文件头,在Linux操作系统中必须是系统管理员。
语法
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数说明:
-a 尝试将网络和广播地址转换成名称。
-c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F<表达文件> 指定内含表达方式的文件。
-i<网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r<数据包文件> 从指定的文件读取数据包数据。
-s<数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w<数据包文件> 把数据包数据写入指定的文件。
实例
抓包tcp 80端口
tcpdump -i eth0 tcp port 80

抓包主机1.1.1.1所有包
tcpdump -i eth0 host 1.1.1.1

四、系统管理
1、查看内核版本
uname命令用于查看内核版本

2、查看linux系统ip
查看linux的ip地址:可以用命令
]# ip addr
3、查看ip是否被占用
]# lsof -i:8080

4、uptime命令使用
uptime命令能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。
用help参数参数

Options:
-p, --pretty show uptime in pretty format //比较美观的打印
-h, --help display this help and exit // 查看参数帮助
-s, --since system up since // 查看系统当前时间
-V, --version output version information and exit // 查看版本

5、telnet命令使用
不管在window还是linux系统要校验某台服务器是否可以ping通,都可以使用命令,如果要加上断口的,linux可以使用telnet命令
语法:telnet ip port
]# telnet 127.0.0.1 8080

linux运维常用培训相关推荐

  1. linux运维常用服务器软件整理和介绍

    本文介绍Linux运维常用的服务器软件,中间件,运维工具等. 目录 代理服务器 nginx 运行环境 php python c++/g++ java go 数据库/中间件 redis mysql po ...

  2. Linux运维常用命令(转)

    为什么80%的码农都做不了架构师?>>>    1.删除0字节文件 find-type f -size 0 -exec rm -rf {} \; 2.查看进程 按内存从大到小排列 p ...

  3. 老男孩linux运维实战培训中心讲师介绍

    老男孩linux运维实战培训中心讲师介绍 老男孩,资深unix/Linux系统运维网站架构专家.高级运维总监.从事一线网站运维及系统架构管理10年以上,13年的教育教学培训经历(擅长教育心理,职业规划 ...

  4. 6.Linux运维常用命令

    1.Linux运维常用命令 chage -M 99999 test  #修改test用户的密码有效期:10W天 lscpu  --查看cpu; #查看CPU核数,当前机器是物理机还是虚拟机 iosta ...

  5. linux运维常用命令整理

    对于刚接触运维的朋友们来说,linux命令行是个非常头痛的问题,要不就是记不住命令,要不就是记不住用法,总之,就是觉得linux运维命令很头疼. 最近花了些时间整理了一些常用的linux下常用的运维命 ...

  6. linux运维管理系统培训,Linux运维教程之Linux系统用户与组管理

    今天小编要跟大家分享的文章是关于Linux运维教程之Linux系统用户与组管理.正在从事Linux运维工作和学习的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. 一.Linux系统用户 ...

  7. Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm

    先用一个脚本,模拟创建 14 个测试文件: #!/bin/bash for ((i=1;i<=10;i++)); do if [ $i -lt 3 ] thentouch /home/mysql ...

  8. linux运维常用命令一句话(持续更新中)

    整理收集一些Linux运维管理.系统管理的常用命令,太多了记不住,只能记录下来方便日后查看.也可以和大家分享.如果你有好的一句话命令也贴出来吧.本文持续更新中. 1.linux启动过程 开启电源 -- ...

  9. linux运维常用命令一句话

    整理收集一些linux运维管理.系统管理的常用命令,太多了记不住,只能记录下来方便日后查看.也可以和大家分享.如果你有好的一句话命令也贴出来吧.本文持续更新中. 1.linux启动过程 开启电源 -- ...

最新文章

  1. vue.js 第四课
  2. Spring Boot + Elasticsearch
  3. Exchange Server 2016管理系列课件50.DAG管理之激活数据库副本
  4. Keras官方中文文档:关于Keras模型
  5. 多个vue项目合并成一个_再见Vlookup,合并多个表格发现一个最简单方法
  6. java中计算明年今天的日期_计算今天之后的下一个周年日
  7. mysql备份至cos_宝塔面板网站文件/数据库定时同步备份至腾讯云COS设置
  8. Linux常见目录含义及功能
  9. 源码-PL/SQL从入门到精通-第四章-PL/SQL控制语句
  10. 两种IP冲突检测方法
  11. Intellij idea注册激活码(2017年2月15日亲测可用于最新版)
  12. flutter图片切换闪一下
  13. 名称、系统服务-windows系统进程解析 -by小雨
  14. 快速生成不重复的卡号
  15. 码云gitee 部署公钥匙
  16. java代码质量 圈复杂度,代码圈复杂度(Cyclomatic Complexity,CC)和Oclint工具 介绍...
  17. Golang和HTTPS在网站前端接入里的作用
  18. C字符串格式化转string+获取当前时间(精确到毫秒)
  19. SR-IOV 网卡虚拟化技术
  20. Saber软件的仿真流程

热门文章

  1. Unity3D中第三人称视角的镜头跟随和目标锁定
  2. 3D游戏编程与设计1——三国杀游戏分析
  3. STM32操作加密芯片源代码
  4. VUE中computed 、created 、mounted 的先后顺序
  5. 大家尽管鄙视这种人吧!
  6. 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典
  7. 【深度强化学习】策略梯度 Policy Gradients
  8. 支持多种格式的播放器代码
  9. 澳洲中学组织加密货币信息之夜
  10. 华为在芯片领域又一个重磅炸弹,鲲鹏920杀出