1 Star 0 Fork 0

王哈哈/linux

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
5年前
Loading...
README

目录介绍

boot    存放启动文件
dev     存放设备文件
etc     存放配置文件
home    普通用户家目录,以/home/$username的方式存放
media   移动存储自动挂载目录,以 /media/$device_name的方式来存放
mnt     手动挂载目录
opt     三方软件安装目录
proc    内存系统文件
root    管理员家目录
run     里面的东西是系统运行时需要的, 不能随便删除. 但是重启的时候应该抛弃. 下次系统运行时重新生成
srv     服务相关数据
sys     系统文件
tmp     临时文件夹
usr     存放库文件、文档、命令、用户数据等
var     日志存放
lib     库文件

文件管理

touch

创建空文件

[root@localhost ~]# touch hello.txt
[root@localhost ~]# ls
hello.txt

创建多个文件

[root@localhost ~]# touch a.txt b.txt
[root@localhost ~]# ls
a.txt  b.txt

批量创建文件

[root@localhost ~]# touch hello{1..3}.txt
[root@localhost ~]# ls
hello1.txt  hello2.txt  hello3.txt

mkdir

创建一个文件夹

[root@localhost ~]# mkdir soft
[root@localhost ~]# ls
soft

创建多级文件夹

[root@localhost ~]# mkdir -p soft/linux/nginx
[root@localhost ~]# tree
.
└── soft
    └── linux
        └── nginx

3 directories, 0 files

tree命令需要单独安装yum -y install tree


在多级文件夹下同时创建多个文件夹

[root@localhost ~]# mkdir -p languages/{python,java,golang,php}
[root@localhost ~]# tree
.
└── languages
    ├── golang
    ├── java
    ├── php
    └── python

5 directories, 0 files

rmdir

rmdir 命令只能删除空文件夹

[root@localhost ~]# rmdir test

删除的时候显示删除的文件

[root@localhost ~]# rmdir -v hello/
rmdir: 正在删除目录 "hello/"

递归删除空目录

[root@localhost ~]# rmdir -pv soft/linux/nginx/
rmdir: 正在删除目录 "soft/linux/nginx/"
rmdir: 正在删除目录 "soft/linux"
rmdir: 正在删除目录 "soft"

rm

删除文件

[root@localhost ~]# ls
hello.txt

[root@localhost ~]# rm hello.txt
rm:是否删除普通空文件 "hello.txt"?y

递归删除文件或文件夹

[root@localhost ~]# tree
.
└── content
    └── hello.txt

1 directory, 1 file
[root@localhost ~]# rm -r content/
rm:是否进入目录"content/"? y
rm:是否删除普通空文件 "content/hello.txt"?y
rm:是否删除目录 "content/"?y

忽略提示删除文件

[root@localhost ~]# tree
.
└── content
    └── hello.txt

1 directory, 1 file
[root@localhost ~]# rm -rf content

cp

复制一个文件

[root@localhost ~]# ls
hello.txt
[root@localhost ~]# cp hello.txt hello2.txt
[root@localhost ~]# ls
hello2.txt  hello.txt

覆盖一个文件

[root@localhost ~]# ls
hello2.txt  hello.txt
[root@localhost ~]# cp hello.txt hello2.txt
cp:是否覆盖"hello2.txt"? y

覆盖文件不提示

[root@localhost ~]# ls
hello2.txt  hello.txt
[root@localhost ~]# cp hello.txt hello2.txt
cp:是否覆盖"hello2.txt"? y
[root@localhost ~]# \cp hello.txt hello2.txt
[root@localhost ~]#

mv

mv 命令用来移动文件和修改文件名

移动文件

[root@localhost ~]# touch hello.txt
[root@localhost ~]# mkdir content
[root@localhost ~]# ls
content  hello.txt
[root@localhost ~]# mv hello.txt content/
[root@localhost ~]# tree
.
└── content
    └── hello.txt

1 directory, 1 file

移动文件并修改名称

[root@localhost ~]# ls
hello.txt
[root@localhost ~]# mv hello.txt world.txt
[root@localhost ~]# ls
world.txt

移动文件夹

[root@localhost ~]# tree
.
└── languages
    └── python

2 directories, 0 files
[root@localhost ~]# mv languages/python ./
[root@localhost ~]# ls
languages  python

修改文件夹名称

[root@localhost ~]# ls
languages  python
[root@localhost ~]# mv languages lang
[root@localhost ~]# ls
lang  python

ln

软连接和硬链接修改都会影响原始文件,删除都不会影响原始文件,linux的软连接相当于windows的快捷方式,硬链接文件只要有一个文件存在,文件就会存在,删除原始文件硬链接文件还可以继续使用,软链接可以跨分区,硬链接不能跨分区。

创建 软链接

[root@localhost ~]# ls
hello.txt
[root@localhost ~]# ln -s hello.txt he.txt
[root@localhost ~]# ls
hello.txt  he.txt
[root@localhost ~]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 6月  10 05:26 hello.txt
lrwxrwxrwx. 1 root root 9 6月  10 05:27 he.txt -> hello.txt

创建 硬链接

[root@localhost ~]# ln hello.txt h2.txt
[root@localhost ~]# ls
h1.txt  h2.txt  hello.txt
[root@localhost ~]# ls -l
总用量 0
lrwxrwxrwx. 1 root root 9 6月  10 05:29 h1.txt -> hello.txt
-rw-r--r--. 2 root root 0 6月  10 05:29 h2.txt
-rw-r--r--. 2 root root 0 6月  10 05:29 hello.txt

通过颜色页可以看出来区别

查看文件内容

cat

cat 经常用来显示文件的内容

查看文件内容

[root@localhost ~]# cat hello.txt
不要再哭了
快把眼泪擦一擦
这样吧
再爱我有缘的话

快去把东西收拾一下
再耗下去都天亮了

这里的钥匙你先留着吧
怕你有东西

假如你有东西忘了拿

那就这样吧
再爱都曲终人散了
那就分手吧
再爱都无需挣扎

查看文件内容并显示行号

[root@localhost ~]# cat -n hello.txt
     1	不要再哭了
     2	快把眼泪擦一擦
     3	这样吧
     4	再爱我有缘的话
     5
     6	快去把东西收拾一下
     7	再耗下去都天亮了
     8
     9	这里的钥匙你先留着吧
    10	怕你有东西
    11
    12	假如你有东西忘了拿
    13
    14	那就这样吧
    15	再爱都曲终人散了
    16	那就分手吧
    17	再爱都无需挣扎

查看文件内容并显示行号,空行不编号

[root@localhost ~]# cat -b hello.txt
     1	不要再哭了
     2	快把眼泪擦一擦
     3	这样吧
     4	再爱我有缘的话

     5	快去把东西收拾一下
     6	再耗下去都天亮了

     7	这里的钥匙你先留着吧
     8	怕你有东西

     9	假如你有东西忘了拿

    10	那就这样吧
    11	再爱都曲终人散了
    12	那就分手吧
    13	再爱都无需挣扎

tac

tac 命令和cat 命令类似,是将文件反序输出,即第一行最后显示,最后一行先显示。

[root@localhost ~]# tac hello.txt
再爱都无需挣扎
那就分手吧
再爱都曲终人散了
那就这样吧

假如你有东西忘了拿

怕你有东西
这里的钥匙你先留着吧

再耗下去都天亮了
快去把东西收拾一下

再爱我有缘的话
这样吧
快把眼泪擦一擦
不要再哭了

head

head 命令用于显示文件头部内容(默认显示前10行)

[root@localhost ~]# head hello.txt
不要再哭了
快把眼泪擦一擦
这样吧
再爱我有缘的话

快去把东西收拾一下
再耗下去都天亮了

这里的钥匙你先留着吧
怕你有东西

指定显示的行数

[root@localhost ~]# head -n 3 hello.txt
不要再哭了
快把眼泪擦一擦
这样吧

tail

tail 命令用于输入文件中的尾部内(默认显示后10行内容)

[root@localhost ~]# tail hello.txt

这里的钥匙你先留着吧
怕你有东西

假如你有东西忘了拿

那就这样吧
再爱都曲终人散了
那就分手吧
再爱都无需挣扎

指定显示行数

[root@localhost ~]# tail -n 3 hello.txt
再爱都曲终人散了
那就分手吧
再爱都无需挣扎

监视文件的变化, 显示文件最新追加的内容

[root@localhost ~]# tail -f hello.txt

more

more 命令基于vi编辑器,支持关键字定位,使用Enter向下滚动一行,空格向下滚动一屏,b上一屏内容,q退出

[root@localhost ~]# more /etc/services

指定每屏显示多少行

[root@localhost ~]# more -3 hello.txt
不要再哭了
快把眼泪擦一擦
这样吧
--More--(17%)

less

less命令与more类似,less命令允许用户向前向后浏览,使用PageUp 键向上翻页,使用PageDown键向下翻页

[root@localhost ~]# less /etc/services

显示行号

[root@localhost ~]# less /etc/services -N
[root@localhost ~]#
      1 # /etc/services:
      2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
      3 #
      4 # Network services, Internet style
      5 # IANA services version: last updated 2013-04-10
      6 #
      7 # Note that it is presently the policy of IANA to assign a single well-known
      ...

grep

grep 是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

在文件中搜索一个单词

[root@localhost ~]# grep 'max' /etc/services
wimaxasncp      2231/tcp                # WiMAX ASN Control Plane Protocol
wimaxasncp      2231/udp                # WiMAX ASN Control Plane Protocol
maxim-asics     3276/tcp                # Maxim ASICs
maxim-asics     3276/udp                # Maxim ASICs
max             6074/tcp                # Microsoft Max
max             6074/udp                # Microsoft Max


忽略大小写查找内容

[root@localhost ~]# grep -i 'max' /etc/services
wimaxasncp      2231/tcp                # WiMAX ASN Control Plane Protocol
wimaxasncp      2231/udp                # WiMAX ASN Control Plane Protocol
maxim-asics     3276/tcp                # Maxim ASICs
maxim-asics     3276/udp                # Maxim ASICs
ml-svnet        4171/tcp                # Maxlogic Supervisor Communication
MaxumSP         4179/tcp                # Maxum Services
MaxumSP         4179/udp                # Maxum Services
max             6074/tcp                # Microsoft Max
max             6074/udp                # Microsoft Max
d-fence         8555/tcp                # SYMAX D-FENCE
d-fence         8555/udp                # SYMAX D-FENCE


用户和组管理

useradd

useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

创建新账户

[root@localhost ~]# useradd wanghaha
[root@localhost ~]# id wanghaha
uid=1002(wanghaha) gid=1002(wanghaha) 组=1002(wanghaha)

[root@localhost ~]# groups wanghaha
wanghaha : wanghaha

[root@localhost ~]# cat /etc/passwd | grep wanghaha
wanghaha:x:1002:1002::/home/wanghaha:/bin/bash

[root@localhost ~]# cat /etc/group | grep wanghaha
wanghaha:x:1002:

[root@localhost ~]# ls /home
wanghaha


新建用户加入指定组

[root@localhost ~]# useradd xiaoming -g root
[root@localhost ~]# id xiaoming
uid=1003(xiaoming) gid=0(root) 组=0(root)

[root@localhost ~]# groups xiaoming
xiaoming : root


指定用户家目录

[root@localhost ~]# useradd wanghaha -d /var/wanghaha
[root@localhost ~]# su wanghaha
[wanghaha@localhost root]$ cd ~
[wanghaha@localhost ~]$ pwd
/var/wanghaha
[wanghaha@localhost ~]$

userdel

userdel 用户删除用户,如果不提供参数则只删除用户帐号,而不删除相关文件。

删除用户

[root@localhost ~]# userdel xiaoming
[root@localhost ~]# ls /home
xiaoming
[root@localhost ~]# cat /etc/passwd | grep xiaoming
[root@localhost ~]# cat /etc/group | grep xiaoming
[root@localhost ~]#

删除用户并删除与用户相关的所有文件

[root@localhost ~]# userdel -r wanghaha
[root@localhost ~]# ls /home
[root@localhost ~]# cat /etc/passwd | grep wanghaha
[root@localhost ~]# cat /etc/group | grep wanghaha
[root@localhost ~]#

usermod

usermod 命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。

选项

-c<备注>:修改用户帐号的备注文字;
-d<登入目录>:修改用户登入时的目录;
-e<有效期限>:修改帐号的有效期限;
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
-g<群组>:修改用户所属的群组;
-G<群组>;修改用户所属的附加群组;
-l<帐号名称>:修改用户帐号名称;
-L:锁定用户密码,使密码无效;
-s<shell>:修改用户登入后所使用的shell;
-u<uid>:修改用户ID;
-U:解除密码锁定。

将指定用户添加到指定群组中

[root@localhost ~]# id wanghaha
uid=1000(wanghaha) gid=1000(wanghaha) 组=1000(wanghaha)

[root@localhost ~]# groups wanghaha
wanghaha : wanghaha

[root@localhost ~]# usermod -G root wanghaha
[root@localhost ~]# id wanghaha
uid=1000(wanghaha) gid=1000(wanghaha) 组=1000(wanghaha),0(root)

[root@localhost ~]# groups wanghaha
wanghaha : wanghaha root


修改用户名称

[root@localhost ~]# usermod -l king wanghaha
[root@localhost ~]# id king
uid=1000(king) gid=1000(wanghaha) 组=1000(wanghaha),0(root)

[root@localhost ~]# ls /home
wanghaha
[root@localhost ~]#

groupadd

新建一个组

[root@localhost ~]# groupadd yunwei
[root@localhost ~]# cat /etc/group | grep yunwei
yunwei:x:1001:

groupdel

groupdel命令用于删除指定的工作组

[root@localhost ~]# groupdel yunwei
[root@localhost ~]# cat /etc/group | grep yunwei
[root@localhost ~]#

sudo

sudo 命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

-b:在后台执行指令;
-h:显示帮助;
-H:将HOME环境变量设为新身份的HOME环境变量;
-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
-l:列出目前用户可执行与无法执行的指令;
-p:改变询问密码的提示符号;
-s<shell>:执行指定的shell;
-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
-v:延长密码有效期限5分钟;
-V :显示版本信息。

使用sudo执行命令,提示用户不在sudo文件中

[wanghaha@localhost ~]$ sudo ls
[sudo] password for wanghaha:
wanghaha is not in the sudoers file.  This incident will be reported.

编辑 /etc/sudoers

root ALL=(ALL) ALL 下添加一条你的文件名例如 wanghaha

root    ALL=(ALL)       ALL
wanghaha        ALL=(ALL)       ALL

然后在切换到wanghaha用户使用sudo执行命令

[wanghaha@localhost ~]$ sudo pwd
[sudo] password for wanghaha:
/home/wanghaha

结束密码的有效期限

[wanghaha@localhost ~]$ sudo -k
[wanghaha@localhost ~]$ sudo pwd
[sudo] password for wanghaha:
/home/wanghaha

su

su 命令用于切换当前用户身份到其他用户身份

-c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
-f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
-l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
-m,-p或--preserve-environment:变更身份时,不要变更环境变量;
-s<shell>或--shell=<shell>:指定要执行的shell;
--help:显示帮助;
--version;显示版本信息。

变更帐号为root并在执行ls指令后退出变回原使用者

[wanghaha@localhost ~]$ su -c pwd root
Password:
/home/wanghaha

[root@localhost ~]# su - zhangsan -c pwd
/home/zhangsan
[root@localhost ~]# su - lisi -c pwd
/home/lisi

切换用户

[root@localhost ~]# su wanghaha
[wanghaha@localhost root]$ pwd
/root

切换用户并切换工作目录到该用户的家目录

[root@localhost ~]# su - wanghaha
上一次登录:三 6月 10 06:58:49 EDT 2020pts/1 上
[wanghaha@localhost ~]$ pwd
/home/wanghaha

改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量

[root@localhost ~]# su -l wanghaha
上一次登录:三 6月 10 07:01:25 EDT 2020pts/1 上
[wanghaha@localhost ~]$ pwd
/home/wanghaha

打包压缩

tar

tar命令可以把一大堆的文件和目录全部打包成一个文件。

打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

打包文件不压缩

[wanghaha@localhost ~]$ ls -lh
total 39M
-rw-rw-r--. 1 wanghaha wanghaha 4.1M Jun 10 07:06 a.txt
-rw-rw-r--. 1 wanghaha wanghaha  35M Jun 10 07:07 b.txt

[wanghaha@localhost ~]$ tar -cvf file.tar a.txt b.txt
a.txt
b.txt

[wanghaha@localhost ~]$ ls
a.txt  b.txt  file.tar
[wanghaha@localhost ~]$ ls -lh
total 78M
-rw-rw-r--. 1 wanghaha wanghaha 4.1M Jun 10 07:06 a.txt
-rw-rw-r--. 1 wanghaha wanghaha  35M Jun 10 07:07 b.txt
-rw-rw-r--. 1 wanghaha wanghaha  39M Jun 10 07:07 file.tar

使用 gzip 压缩

[wanghaha@localhost ~]$ tar -zcvf file.tar.gz a.txt b.txt
a.txt
b.txt
[wanghaha@localhost ~]$ ls -lh
total 78M
-rw-rw-r--. 1 wanghaha wanghaha 4.1M Jun 10 07:06 a.txt
-rw-rw-r--. 1 wanghaha wanghaha  35M Jun 10 07:07 b.txt
-rw-rw-r--. 1 wanghaha wanghaha  39M Jun 10 07:07 file.tar
-rw-rw-r--. 1 wanghaha wanghaha  41K Jun 10 07:09 file.tar.gz

解压缩

[wanghaha@localhost ~]$ tar -xvf file.tar.gz -C test/
a.txt
b.txt
[wanghaha@localhost ~]$ tree
.
├── a.txt
├── b.txt
├── file.tar.gz
└── test
    ├── a.txt
    └── b.txt

1 directory, 5 files

zip

需要安装yum -y install zip

压缩文件

[root@localhost ~]# zip file.zip a.txt b.txt
  adding: a.txt (deflated 100%)
  adding: b.txt (deflated 100%)
[root@localhost ~]# ls
a.txt  b.txt  file.zip
[root@localhost ~]# ls -lh
总用量 39M
-rw-rw-r--. 1 wanghaha wanghaha 4.1M 6月  10 07:06 a.txt
-rw-rw-r--. 1 wanghaha wanghaha  35M 6月  10 07:07 b.txt
-rw-r--r--. 1 root     root      39K 6月  10 07:16 file.zip

压缩目录

[root@localhost ~]# tree -h
.
└── [  32]  soft
    ├── [ 44M]  a.txt
    └── [4.9M]  b.txt

1 directory, 2 files
[root@localhost ~]# zip soft.zip -r soft/
  adding: soft/ (stored 0%)
  adding: soft/a.txt (deflated 100%)
  adding: soft/b.txt (deflated 100%)
[root@localhost ~]# ls -lh
总用量 116K
drwxr-xr-x. 2 root root   32 6月  10 07:21 soft
-rw-r--r--. 1 root root 114K 6月  10 07:22 soft.zip

unzip

用于解压用zip压缩的.zip压缩包

需要安装yum -y install unzip

-c:将解压缩的结果显示到屏幕上,并对字符做适当的转换;
-f:更新现有的文件;
-l:显示压缩文件内所包含的文件;
-p:与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换;
-t:检查压缩文件是否正确;
-u:与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中;
-v:执行时显示详细的信息;
-z:仅显示压缩文件的备注文字;
-a:对文本文件进行必要的字符转换;
-b:不要对文本文件进行字符转换;
-C:压缩文件中的文件名称区分大小写;
-j:不处理压缩文件中原有的目录路径;
-L:将压缩文件中的全部文件名改为小写;
-M:将输出结果送到more程序处理;
-n:解压缩时不要覆盖原有的文件;
-o:不必先询问用户,unzip执行后覆盖原有的文件;
-P<密码>:使用zip的密码选项;
-q:执行时不显示任何信息;
-s:将文件名中的空白字符转换为底线字符;
-V:保留VMS的文件版本信息;
-X:解压缩时同时回存文件原来的UID/GID;
-d<目录>:指定文件解压缩后所要存储的目录;
-x<文件>:指定不要处理.zip压缩文件中的哪些文件;
-Z:unzip-Z等于执行zipinfo指令。
[root@localhost ~]# unzip soft.zip
Archive:  soft.zip
   creating: soft/
  inflating: soft/a.txt
  inflating: soft/b.txt

磁盘管理

df

df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

[root@localhost ~]# df
文件系统                   1K-块    已用     可用 已用% 挂载点
/dev/mapper/centos-root 52403200 1513188 50890012    3% /
devtmpfs                 1928364       0  1928364    0% /dev
tmpfs                    1940444       0  1940444    0% /dev/shm
tmpfs                    1940444    9084  1931360    1% /run
tmpfs                    1940444       0  1940444    0% /sys/fs/cgroup
/dev/sda1                1038336  148424   889912   15% /boot
/dev/mapper/centos-home 47285700   33044 47252656    1% /home
tmpfs                     388092       0   388092    0% /run/user/0

以可读性较高的方式来显示信息

[root@localhost ~]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root   50G  1.5G   49G    3% /
devtmpfs                 1.9G     0  1.9G    0% /dev
tmpfs                    1.9G     0  1.9G    0% /dev/shm
tmpfs                    1.9G  8.9M  1.9G    1% /run
tmpfs                    1.9G     0  1.9G    0% /sys/fs/cgroup
/dev/sda1               1014M  145M  870M   15% /boot
/dev/mapper/centos-home   46G   33M   46G    1% /home
tmpfs                    379M     0  379M    0% /run/user/0

du

du命令用于查看文件和目录磁盘使用的空间

-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
[root@localhost ~]# du -h soft
49M	soft
[root@localhost soft]# du -h a.txt
44M	a.txt

fdisk

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。

-b<分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s<分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。

查看所有分区表的状况

[root@localhost ~]# fdisk -l

磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f04a8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   8e  Linux LVM

磁盘 /dev/mapper/centos-root:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-swap:4160 MB, 4160749568 字节,8126464 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节


磁盘 /dev/mapper/centos-home:48.4 GB, 48444211200 字节,94617600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

操作磁盘

[root@localhost ~]# fdisk /dev/sda
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):m
命令操作
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   g   create a new empty GPT partition table
   G   create an IRIX (SGI) partition table
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

命令(输入 m 获取帮助):p

磁盘 /dev/sda:107.4 GB, 107374182400 字节,209715200 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000f04a8

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   209715199   103808000   8e  Linux LVM

命令(输入 m 获取帮助):

mount

mount 命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom

-V:显示程序版本;
-l:显示已加载的文件系统列表;
-h:显示帮助信息并退出;
-v:冗长模式,输出指令执行的详细信息;
-n:加载没有写入文件“/etc/mtab”中的文件系统;
-r:将文件系统加载为只读模式;
-a:加载文件“/etc/fstab”中描述的所有文件系统。

权限管理

chmod

chmod 命令用来变更文件或目录的权限。


u User,即文件或目录的拥有者; g Group,即文件或目录的所属群组; o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围; a All,即全部的用户,包含拥有者,所属群组以及其他用户; r 读取权限,数字代号为“4”; w 写入权限,数字代号为“2”; x 执行或切换权限,数字代号为“1”; - 不具任何权限,数字代号为“0”; s 特殊功能说明:变更文件或目录的权限。


-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;
<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;
<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;

权限设置

chmod u+x,g+w hello.txt  //为文件hello.txt设置自己可以执行,组员可以写入的权限
chmod u=rwx,g=rw,o=r hello.txt
chmod 764 hello.txt
chmod a+x hello.txt  //对文件hello.txt的u,g,o都设置可执行属性

chown

chown 命令改变某个文件或目录的所有者和所属的组

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quite或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
-v或——version:显示指令执行过程;
--dereference:效果和“-h”参数相同;
--help:在线帮助;
--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
--version:显示版本信息。

当省略“:组”,仅改变文件所有者

[root@localhost ~]# ls -l
总用量 116
drwxr-xr-x. 2 root root     32 6月  10 07:21 soft
-rw-r--r--. 1 root root 116679 6月  10 07:22 soft.zip
[root@localhost ~]# chown wanghaha soft.zip
[root@localhost ~]# ls -l
总用量 116
drwxr-xr-x. 2 root     root     32 6月  10 07:21 soft
-rw-r--r--. 1 wanghaha root 116679 6月  10 07:22 soft.zip

修改文件的所有者和所属组

[root@localhost ~]# chown wanghaha:wanghaha soft.zip
[root@localhost ~]# ls -lh
总用量 116K
drwxr-xr-x. 2 root     root       32 6月  10 07:21 soft
-rw-r--r--. 1 wanghaha wanghaha 114K 6月  10 07:22 soft.zi

只修改文件的所属组

[root@localhost ~]# chown :root soft.zip
[root@localhost ~]# ls -lh
总用量 116K
drwxr-xr-x. 2 root     root   32 6月  10 07:21 soft
-rw-r--r--. 1 wanghaha root 114K 6月  10 07:22 soft.zip

chgrp

chgrp命令用来改变文件或目录所属的用户组。

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;
-f或--quiet或——silent:不显示错误信息;
-h或--no-dereference:只对符号连接的文件作修改,而不是该其他任何相关文件;
-R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
-v或——verbose:显示指令执行过程;
--reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
[root@localhost ~]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 6月  10 07:58 a.txt
[root@localhost ~]# chgrp wanghaha a.txt
[root@localhost ~]# ls -l
总用量 0
-rw-r--r--. 1 root wanghaha 0 6月  10 07:58 a.txt

递归修改

[root@localhost ~]# chgrp wanghaha -R hello/
[root@localhost ~]# cd hello/
[root@localhost hello]# ls -l
总用量 0
-rw-r--r--. 1 root wanghaha 0 6月  10 07:59 world

网络管理

ifconfig

ifconfig 命令被用于配置和显示Linux内核中网络接口的网络参数。

add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq<IRQ地址>:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。
[root@localhost hello]# ifconfig
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.101.66  netmask 255.255.255.0  broadcast 192.168.101.255
        inet6 fe80::30f3:dfc2:af2d:658a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c3:a7:8e  txqueuelen 1000  (Ethernet)
        RX packets 109611  bytes 120604912 (115.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84283  bytes 10780813 (10.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 202  bytes 17356 (16.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 202  bytes 17356 (16.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

只显示指定网卡

[root@localhost hello]# ifconfig ens192
ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.101.66  netmask 255.255.255.0  broadcast 192.168.101.255
        inet6 fe80::30f3:dfc2:af2d:658a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:c3:a7:8e  txqueuelen 1000  (Ethernet)
        RX packets 109648  bytes 120607948 (115.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 84301  bytes 10784085 (10.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

启动关闭指定网卡

ifconfig ens192 up
ifconfig ens192 down

telnet

telnet 命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。

-8:允许使用8位字符资料,包括输入与输出;
-a:尝试自动登入远端系统;
-b<主机别名>:使用别名指定远端主机名称;
-c:不读取用户专属目录里的.telnetrc文件;
-d:启动排错模式;
-e<脱离字符>:设置脱离字符;
-E:滤除脱离字符;
-f:此参数的效果和指定"-F"参数相同;
-F:使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机;
-k<域名>:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名;
-K:不自动登入远端主机;
-l<用户名称>:指定要登入远端主机的用户名称;
-L:允许输出8位字符资料;
-n<记录文件>:指定文件记录相关信息;
-r:使用类似rlogin指令的用户界面;
-S<服务类型>:设置telnet连线所需的ip TOS信息;
-x:假设主机有支持数据加密的功能,就使用它;
-X<认证形态>:关闭指定的认证形态。

也可以用于测试端口是否可以连通

[root@localhost hello]# telnet 192.168.101.66 22
Trying 192.168.101.66...
Connected to 192.168.101.66.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

不通

[root@localhost hello]# telnet 192.168.101.66 8888
Trying 192.168.101.66...
telnet: connect to address 192.168.101.66: Connection refused

ifup

ifup命令用于激活指定的网络接口。

ifup ens192

ifdown

ifdown 命令用于禁用指定的网络接口。

ifdown ens192

dhclient

dhclient命令使用动态主机配置协议动态的配置网络接口的网络参数。

0:指定dhcp客户端监听的端口号;
-d:总是以前台方式运行程序;
-q:安静模式,不打印任何错误的提示信息;
-r:释放ip地址。
dhclient -r     #释放IP
dhclient        #获取IP

ip

ip 命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

-V:显示指令版本信息;
-s:输出更详细的信息;
-f:强制使用指定的协议族;
-4:指定使用的网络层协议是IPv4协议;
-6:指定使用的网络层协议是IPv6协议;
-0:输出信息每条记录输出一行,即使内容较多也不换行显示;
-r:显示主机时,不使用IP地址,而使用主机的域名。

显示核心路由表

[root@localhost ~]# ip route list
default via 192.168.101.1 dev ens192
default via 192.168.101.1 dev ens192 proto dhcp metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.101.0/24 dev ens192 proto kernel scope link src 192.168.101.15
192.168.101.0/24 dev ens192 proto kernel scope link src 192.168.101.15 metric 100

netstat

netstat 命令用来打印Linux中网络系统的状态信息。

-a或--all:显示所有连线中的Socket;
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址;
-c或--continuous:持续列出网络状态;
-C或--cache:显示路由器配置的快取信息;
-e或--extend:显示网络其他相关信息;
-F或--fib:显示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或--statistice:显示网络工作信息统计表;
-t或--tcp:显示TCP传输协议的连线状况;
-u或--udp:显示UDP传输协议的连线状况;
-v或--verbose:显示指令执行过程;
-V或--version:显示版本信息;
-w或--raw:显示RAW传输协议的连线状况;
-x或--unix:此参数的效果和指定"-A unix"参数相同;
--ip或--inet:此参数的效果和指定"-A inet"参数相同。

列出所有端口

[root@localhost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 localhost.localdoma:ssh 192.168.248.18:53787    ESTABLISHED
tcp        0      0 localhost.localdoma:ssh 192.168.248.18:53414    ESTABLISHED
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:*                             
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     43276    /var/run/NetworkManager/private-dhcp
unix  3      [ ]         DGRAM                    7448     /run/systemd/notify
unix  2      [ ]         DGRAM                    7450     /run/systemd/cgroups-agent
unix  2      [ ACC ]     STREAM     LISTENING     19497    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     7465     /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     34544    private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     34547    private/bounce
unix  6      [ ]         DGRAM                    7468     /run/systemd/journal/socket
unix  2      [ ACC ]     STREAM     LISTENING     34550    private/defer
unix  2      [ ACC ]     STREAM     LISTENING     34553    private/trace
unix  14     [ ]         DGRAM                    7470     /dev/log
...

列出所有tcp端口

[root@localhost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 localhost.localdoma:ssh 192.168.248.18:53787    ESTABLISHED
tcp        0      0 localhost.localdoma:ssh 192.168.248.18:53414    ESTABLISHED
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN

列出所有udp端口

[root@localhost ~]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:* 

只显示监听端口

[root@localhost ~]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:*                             
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     43276    /var/run/NetworkManager/private-dhcp
unix  2      [ ACC ]     STREAM     LISTENING     19497    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     7465     /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     34544    private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     34547    private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     34550    private/defer
...

列出所有监听tcp端口

[root@localhost ~]# netstat -lt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN

列出所有监听udp端口

[root@localhost ~]# netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 0.0.0.0:bootpc          0.0.0.0:*                          
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:* 

列出所有监听的unix端口

[root@localhost ~]# netstat -lx
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     43276    /var/run/NetworkManager/private-dhcp
unix  2      [ ACC ]     STREAM     LISTENING     19497    /run/lvm/lvmetad.socket
unix  2      [ ACC ]     STREAM     LISTENING     7465     /run/systemd/journal/stdout
unix  2      [ ACC ]     STREAM     LISTENING     34544    private/rewrite
unix  2      [ ACC ]     STREAM     LISTENING     34547    private/bounce
unix  2      [ ACC ]     STREAM     LISTENING     34550    private/defer
unix  2      [ ACC ]     STREAM     LISTENING     34553    private/trace
unix  2      [ ACC ]     STREAM     LISTENING     34556    private/verify
unix  2      [ ACC ]     STREAM     LISTENING     34562    private/proxymap
unix  2      [ ACC ]     STREAM     LISTENING     34565    private/proxywrite
unix  2      [ ACC ]     STREAM     LISTENING     34568    private/smtp
unix  2      [ ACC ]     STREAM     LISTENING     34571    private/relay
unix  2      [ ACC ]     STREAM     LISTENING     34577    private/error
unix  2      [ ACC ]     STREAM     LISTENING     34580    private/retry
unix  2      [ ACC ]     STREAM     LISTENING     34583    private/discard
unix  2      [ ACC ]     STREAM     LISTENING     34586    private/local
unix  2      [ ACC ]     STREAM     LISTENING     34589    private/virtual
unix  2      [ ACC ]     STREAM     LISTENING     34592    private/lmtp
unix  2      [ ACC ]     STREAM     LISTENING     34595    private/anvil
unix  2      [ ACC ]     STREAM     LISTENING     34598    private/scache
unix  2      [ ACC ]     STREAM     LISTENING     19534    /run/lvm/lvmpolld.socket
unix  2      [ ACC ]     STREAM     LISTENING     234351   /var/run/docker.sock
unix  2      [ ACC ]     SEQPACKET  LISTENING     19579    /run/udev/control
unix  2      [ ACC ]     STREAM     LISTENING     234623   /run/docker/libnetwork/a4ce099d1b167ea4ee8ed534d61a013ff1bd2c80047b02e670c1eed3e9cb459d.sock
unix  2      [ ACC ]     STREAM     LISTENING     234367   /var/run/docker/libcontainerd/docker-containerd.sock
unix  2      [ ACC ]     STREAM     LISTENING     34529    public/pickup
unix  2      [ ACC ]     STREAM     LISTENING     34534    public/cleanup
unix  2      [ ACC ]     STREAM     LISTENING     34537    public/qmgr
unix  2      [ ACC ]     STREAM     LISTENING     34559    public/flush
unix  2      [ ACC ]     STREAM     LISTENING     34574    public/showq
unix  2      [ ACC ]     STREAM     LISTENING     34541    private/tlsmgr
unix  2      [ ACC ]     STREAM     LISTENING     19377    /run/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     29926    /run/dbus/system_bus_socket

显示所有端口的统计信息

[root@localhost ~]# netstat -s
Ip:
    1162792 total packets received
    0 forwarded
    0 incoming packets discarded
    1157932 incoming packets delivered
    982159 requests sent out
    49 outgoing packets dropped
    25 dropped because of missing route
Icmp:
    169 ICMP messages received
    2 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 106
        echo requests: 1
        echo replies: 62
    171 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 106
        redirect: 2
        echo request: 62
        echo replies: 1
IcmpMsg:
        InType0: 62
        InType3: 106
        InType8: 1
        OutType0: 1
        OutType3: 106
        OutType5: 2
        OutType8: 62
Tcp:
    229 active connections openings
    34 passive connection openings
    7 failed connection attempts
    23 connection resets received
    2 connections established
    1155423 segments received
    968914 segments send out
    12738 segments retransmited
    0 bad segments received.
    226 resets sent
Udp:
    1700 packets received
    103 packets to unknown port received.
    0 packet receive errors
    1926 packets sent
    0 receive buffer errors
    0 send buffer errors
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    162 TCP sockets finished time wait in fast timer
    8 packets rejects in established connections because of timestamp
    7623 delayed acks sent
    91 delayed acks further delayed because of locked socket
    Quick ack mode was activated 1117 times
    7356 packets directly queued to recvmsg prequeue.
    749489 bytes directly in process context from backlog
    16216371 bytes directly received in process context from prequeue
    186725 packet headers predicted
    4624 packets header predicted and directly queued to user
    501178 acknowledgments not containing data payload received
    229909 predicted acknowledgments
    6339 times recovered from packet loss by selective acknowledgements
    610 congestion windows recovered without slow start by DSACK
    2357 congestion windows recovered without slow start after partial ack
    TCPLostRetransmit: 90
    2395 timeouts after SACK recovery
    2 timeouts in loss state
    6484 fast retransmits
    184 forward retransmits
    24 retransmits in slow start
    79 other TCP timeouts
    TCPLossProbes: 5004
    TCPLossProbeRecovery: 3109
    87 SACK retransmits failed
    1125 DSACKs sent for old packets
    1066 DSACKs received
    61 DSACKs for out of order packets received
    17 connections reset due to unexpected data
    14 connections reset due to early user close
    8 connections aborted due to timeout
    TCPDSACKIgnoredNoUndo: 201
    TCPSpuriousRTOs: 2312
    TCPSackShifted: 215
    TCPSackMerged: 676
    TCPSackShiftFallback: 24410
    TCPDeferAcceptDrop: 10
    TCPRcvCoalesce: 175962
    TCPOFOQueue: 18148
    TCPChallengeACK: 1
    TCPSpuriousRtxHostQueues: 3
    TCPAutoCorking: 18546
    TCPFromZeroWindowAdv: 101
    TCPToZeroWindowAdv: 101
    TCPWantZeroWindowAdv: 97
    TCPSynRetrans: 4
    TCPOrigDataSent: 739720
    TCPACKSkippedSeq: 1
IpExt:
    InNoRoutes: 22
    InMcastPkts: 2
    InBcastPkts: 5353
    InOctets: 820793465
    OutOctets: 139084042
    InMcastOctets: 72
    InBcastOctets: 949654
    InNoECTPkts: 1249499
    InECT0Pkts: 213844

显示所有tcp端口的统计信息

[root@localhost ~]# netstat -st
IcmpMsg:
    InType0: 62
    InType3: 106
    InType8: 1
    OutType0: 1
    OutType3: 106
    OutType5: 2
    OutType8: 62
Tcp:
    229 active connections openings
    34 passive connection openings
    7 failed connection attempts
    23 connection resets received
    2 connections established
    1159183 segments received
    972142 segments send out
    12788 segments retransmited
    0 bad segments received.
    226 resets sent
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    162 TCP sockets finished time wait in fast timer
    8 packets rejects in established connections because of timestamp
    7672 delayed acks sent
    91 delayed acks further delayed because of locked socket
    Quick ack mode was activated 1124 times
    7356 packets directly queued to recvmsg prequeue.
    749489 bytes directly in process context from backlog
    16216371 bytes directly received in process context from prequeue
    187109 packet headers predicted
    4624 packets header predicted and directly queued to user
    503127 acknowledgments not containing data payload received
    230636 predicted acknowledgments
    6365 times recovered from packet loss by selective acknowledgements
    610 congestion windows recovered without slow start by DSACK
    2369 congestion windows recovered without slow start after partial ack
    TCPLostRetransmit: 90
    2407 timeouts after SACK recovery
    2 timeouts in loss state
    6509 fast retransmits
    184 forward retransmits
    24 retransmits in slow start
    79 other TCP timeouts
    TCPLossProbes: 5026
    TCPLossProbeRecovery: 3120
[root@localhost ~]# netstat -st
IcmpMsg:
    InType0: 62
    InType3: 106
    InType8: 1
    OutType0: 1
    OutType3: 106
    OutType5: 2
    OutType8: 62
Tcp:
    229 active connections openings
    34 passive connection openings
    7 failed connection attempts
    23 connection resets received
    2 connections established
    1159353 segments received
    972286 segments send out
    12790 segments retransmited
    0 bad segments received.
    226 resets sent
UdpLite:
TcpExt:
    2 invalid SYN cookies received
    162 TCP sockets finished time wait in fast timer
    8 packets rejects in established connections because of timestamp
    7674 delayed acks sent
    91 delayed acks further delayed because of locked socket
    Quick ack mode was activated 1124 times
    7356 packets directly queued to recvmsg prequeue.
    749489 bytes directly in process context from backlog
    16216371 bytes directly received in process context from prequeue
    187124 packet headers predicted
    4624 packets header predicted and directly queued to user
    503217 acknowledgments not containing data payload received
    230669 predicted acknowledgments
    6366 times recovered from packet loss by selective acknowledgements
    610 congestion windows recovered without slow start by DSACK
    2370 congestion windows recovered without slow start after partial ack
    TCPLostRetransmit: 90
    2408 timeouts after SACK recovery
    2 timeouts in loss state
    6510 fast retransmits
    184 forward retransmits
    24 retransmits in slow start
    79 other TCP timeouts
    TCPLossProbes: 5026
    TCPLossProbeRecovery: 3120
    88 SACK retransmits failed
    1132 DSACKs sent for old packets
    1066 DSACKs received
    61 DSACKs for out of order packets received
    17 connections reset due to unexpected data
    14 connections reset due to early user close
    8 connections aborted due to timeout
    TCPDSACKIgnoredNoUndo: 201
    TCPSpuriousRTOs: 2324
    TCPSackShifted: 215
    TCPSackMerged: 676
    TCPSackShiftFallback: 24527
    TCPDeferAcceptDrop: 10
    TCPRcvCoalesce: 176295
    TCPOFOQueue: 18150
    TCPChallengeACK: 1
    TCPSpuriousRtxHostQueues: 3
    TCPAutoCorking: 18622
    TCPFromZeroWindowAdv: 101
    TCPToZeroWindowAdv: 101
    TCPWantZeroWindowAdv: 97
    TCPSynRetrans: 4
    TCPOrigDataSent: 742534
    TCPACKSkippedSeq: 1
IpExt:
    InNoRoutes: 22
    InMcastPkts: 2
    InBcastPkts: 5353
    InOctets: 821060393
    OutOctets: 139598022
    InMcastOctets: 72
    InBcastOctets: 949654
    InNoECTPkts: 1252310
    InECT0Pkts: 214966

显示udp端口的统计信息

[root@localhost ~]# netstat -su
IcmpMsg:
    InType0: 62
    InType3: 106
    InType8: 1
    OutType0: 1
    OutType3: 106
    OutType5: 2
    OutType8: 62
Udp:
    1703 packets received
    103 packets to unknown port received.
    0 packet receive errors
    1929 packets sent
    0 receive buffer errors
    0 send buffer errors
UdpLite:
IpExt:
    InNoRoutes: 22
    InMcastPkts: 2
    InBcastPkts: 5353
    InOctets: 821170745
    OutOctets: 139824942
    InMcastOctets: 72
    InBcastOctets: 949654
    InNoECTPkts: 1253475
    InECT0Pkts: 215428

显示进程pid和进程名称

[root@localhost ~]# netstat -atp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 localhost.localdoma:ssh 192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0     52 localhost.localdoma:ssh 192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 [::]:http               [::]:*                  LISTEN      14493/httpd         
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      5994/sshd           
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN      6561/master

显示IP地址和端口

[root@localhost ~]# netstat -atpn
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 192.168.101.15:22       192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0     52 192.168.101.15:22       192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      14493/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master

显示监听的端口

[root@localhost ~]# netstat -antpl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 192.168.101.15:22       192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0      0 192.168.101.15:22       192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      14493/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master

每隔一秒输出一次

使用-c参数

[root@localhost ~]# netstat -antplc
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 192.168.101.15:22       192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0      0 192.168.101.15:22       192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      14493/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master 


Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 192.168.101.15:22       192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0      0 192.168.101.15:22       192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      14493/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master     


Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp        0      0 192.168.101.15:22       192.168.248.18:53787    ESTABLISHED 16393/sshd: root@pt 
tcp        0      0 192.168.101.15:22       192.168.248.18:53414    ESTABLISHED 32537/sshd: root@pt 
tcp6       0      0 :::80                   :::*                    LISTEN      14493/httpd         
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master
...

显示网络接口列表

[root@localhost ~]# netstat -i
Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0          1500        4      0      0 0             3      0      0      0 BMU
ens192           1500  1541549      0      0 0       1006881      0      0      0 BMRU
lo              65536      244      0      0 0           244      0      0      0 LRU

ethtool

ethtool 命令用于获取以太网卡的配置信息,或者修改这些配置。这个命令比较复杂,功能特别多。

-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-c display the Coalesce information of the specified ethernet card。
-C Change the Coalesce setting of the specified ethernet card。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card。
-i 显示网卡驱动的信息,如驱动的名称、版本等。
-d 显示register dump信息, 部分网卡驱动不支持该选项。
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E 修改网卡EEPROM byte。
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态。
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online。
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。

查看机器上网卡的速度:百兆还是千兆

[root@localhost ~]# ethtool ens192
Settings for ens192:
	Supported ports: [ TP ]
	Supported link modes:   1000baseT/Full
	                        10000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 10000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	MDI-X: Unknown
	Supports Wake-on: uag
	Wake-on: d
	Link detected: yes

将千兆网卡降速为百兆

[root@localhost ~]# ethtool -s ens192 speed 100
Cannot set new settings: Operation not supported
  not setting speed

nslookup

nslookup 命令是常用域名查询工具,就是查DNS信息用的命令。

[root@localhost ~]# nslookup www.baidu.com
Server:         119.29.29.29
Address:        119.29.29.29#53

Non-authoritative answer:
www.baidu.com   canonical name = www.a.shifen.com.
Name:   www.a.shifen.com
Address: 112.80.248.76
Name:   www.a.shifen.com
Address: 112.80.248.75

wget

wget命令用来从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

-a<日志文件>:在指定的日志文件中记录资料的执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-d:调试模式运行指令;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-h:显示指令帮助信息;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-L:仅顺着关联的连接;
-r:递归下载方式;
-nc:文件存在时,下载文件不覆盖原有文件;
-nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
-q:不显示指令执行过程;
-nh:不查询主机名称;
-v:显示详细执行过程;
-V:显示版本信息;
--passive-ftp:使用被动模式PASV连接FTP服务器;
--follow-ftp:从HTML文件中下载FTP连接文件。

下载单个文件

[root@localhost ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-13 03:06:49--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

100%[===================================================================================================================================================>] 1,039,530    217KB/s 用时 4.7s   

2020-06-13 03:06:55 (217 KB/s) - 已保存 “nginx-1.18.0.tar.gz” [1039530/1039530])

下载并以指定的文件名保存

[root@localhost ~]# wget -O nginx.tar.gz http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-13 03:08:31--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx.tar.gz”

100%[===================================================================================================================================================>] 1,039,530    213KB/s 用时 4.8s   

2020-06-13 03:08:37 (213 KB/s) - 已保存 “nginx.tar.gz” [1039530/1039530])

[root@localhost ~]# ls
nginx.tar.gz

限速下载

当你执行wget的时候,它默认会占用全部可能的宽带下载。但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

[root@localhost ~]# wget --limit-rate=10k http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-13 03:10:59--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz.2”

 3% [====>                                                                                                                                               ] 40,960      9.99KB/s 剩余 98s 

断点续传

使用wget -c重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。需要继续中断的下载时可以使用-c参数。

[root@localhost ~]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-13 03:15:07--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

17% [========================>                                                                                                                           ] 178,277      123KB/s             ^C
[root@localhost ~]# wget -c http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-06-13 03:15:15--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 206 Partial Content
长度:1039530 (1015K),剩余 782053 (764K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

100%[++++++++++++++++++++++++++++++++++++===============================================================================================================>] 1,039,530    434KB/s 用时 1.8s   

2020-06-13 03:15:17 (434 KB/s) - 已保存 “nginx-1.18.0.tar.gz” [1039530/1039530])

后台下载文件

对于下载非常大的文件的时候,我们可以使用参数-b进行后台下载

[root@localhost ~]# wget --limit-rate=1m -b http://nginx.org/download/nginx-1.18.0.tar.gz
继续在后台运行,pid 为 26030。
将把输出写入至 “wget-log”。
[root@localhost ~]# tail -f wget-log 
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

     0K .......... .......... .......... .......... ..........  4% 69.7K 14s
    50K .......... .......... .......... .......... ..........  9%  139K 10s
   100K .......... .......... .......... .......... .......... 14% 61.3M 6s
   150K .......... .......... .......... .......... .......... 19%  139K 6s
   200K .......... .......... .......... .......... .......... 24%  173M 4s
   250K .......... .......... .......... .......... .......... 29%  139K 4s
   300K .......... .......... .......... .......... .......... 34% 60.9K 5s
   350K .......... .......... .......... .......... .......... 39%  179M 4s
   400K .......... .......... .......... .......... .......... 44%  186M 3s
   450K .......... .......... .......... .......... .......... 49%  196K 3s
   500K .......... .......... .......... .......... .......... 54%  139K 3s
   550K .......... .......... .......... .......... .......... 59% 41.2M 2s
   600K .......... .......... .......... .......... .......... 64%  139K 2s
   650K .......... .......... .......... .......... .......... 68%  140K 2s
   700K .......... .......... .......... .......... .......... 73% 5.62M 1s
   750K .......... .......... .......... .......... .......... 78%  142K 1s
   800K .......... .......... .......... .......... .......... 83%  486K 1s
   850K .......... .......... .......... .......... .......... 88%  194K 1s
   900K .......... .......... .......... .......... .......... 93%  489K 0s
   950K .......... .......... .......... .......... .......... 98%  193K 0s
  1000K .......... .....                                      100% 7.50M=5.0s

2020-06-13 03:19:36 (202 KB/s) - 已保存 “nginx-1.18.0.tar.gz” [1039530/1039530])

伪装代理名称下载

有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过--user-agent参数伪装。

[root@localhost ~]# wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16"  http://nginx.org/download/nginx-1.18.0.tar.gz

测试下载链接

当你打算进行定时下载,你应该在预定时间测试下载链接是否有效。我们可以增加--spider参数进行检查。

[root@localhost ~]# wget --spider http://nginx.org/download/nginx-1.18.0.tar.gz
开启 Spider 模式。检查是否存在远程文件。
--2020-06-13 03:23:14--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
存在远程文件。
[root@localhost ~]# wget --spider http://nginx.org/download/helloasdfasklfjaldfjlaksdjflasdf.asfs
开启 Spider 模式。检查是否存在远程文件。
--2020-06-13 03:23:25--  http://nginx.org/download/helloasdfasklfjaldfjlaksdjflasdf.asfs
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5704::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 404 Not Found
远程文件不存在 -- 链接失效!!!

增加重试次数

如果网络有问题或下载一个大文件也有可能失败。wget默认重试20次连接下载文件。如果需要,你可以使用--tries增加重试次数。

wget --tries=40 http://nginx.org/download/nginx-1.18.0.tar.gz

下载多个文件

[root@localhost ~]# ls
downlist.txt
[root@localhost ~]# cat downlist.txt 
http://nginx.org/download/nginx-1.18.0.tar.gz
https://mirrors.huaweicloud.com/python/3.8.6/Python-3.8.6.tgz
[root@localhost ~]# 
[root@localhost ~]# wget -i downlist.txt 
--2020-06-13 03:29:08--  http://nginx.org/download/nginx-1.18.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1039530 (1015K) [application/octet-stream]
正在保存至: “nginx-1.18.0.tar.gz”

100%[===================================================================================================================================================>] 1,039,530    149KB/s 用时 7.3s   

2020-06-13 03:29:16 (139 KB/s) - 已保存 “nginx-1.18.0.tar.gz” [1039530/1039530])

--2020-06-13 03:29:16--  https://mirrors.huaweicloud.com/python/3.8.6/Python-3.8.6.tgz
正在解析主机 mirrors.huaweicloud.com (mirrors.huaweicloud.com)... 117.78.24.36, 117.78.24.32, 117.78.24.34
正在连接 mirrors.huaweicloud.com (mirrors.huaweicloud.com)|117.78.24.36|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:24377280 (23M) [application/octet-stream]
正在保存至: “Python-3.8.6.tgz”

100%[===================================================================================================================================================>] 24,377,280  3.25MB/s 用时 30s    

2020-06-13 03:29:48 (792 KB/s) - 已保存 “Python-3.8.6.tgz” [24377280/24377280])

FINISHED --2020-06-13 03:29:48--
Total wall clock time: 40s
Downloaded: 2 files, 24M in 37s (664 KB/s)


[root@localhost ~]# ls
downlist.txt  nginx-1.18.0.tar.gz  Python-3.8.6.tgz

证书问题下载不了文件

[root@localhost ~]# wget https://download.redis.io/releases/redis-6.0.8.tar.gz 
--2020-06-13 03:32:35--  https://download.redis.io/releases/redis-6.0.8.tar.gz
正在解析主机 download.redis.io (download.redis.io)... 45.60.125.1
正在连接 download.redis.io (download.redis.io)|45.60.125.1|:443... 已连接。
错误: 无法验证 download.redis.io 的由 “/C=BE/O=GlobalSign nv-sa/CN=GlobalSign HV RSA DV SSL CA 2018” 颁发的证书:
  颁发的证书还未生效。
要以不安全的方式连接至 download.redis.io,使用“--no-check-certificate”。
[root@localhost ~]# wget https://download.redis.io/releases/redis-6.0.8.tar.gz --no-check-certificate
--2020-06-13 03:34:23--  https://download.redis.io/releases/redis-6.0.8.tar.gz
正在解析主机 download.redis.io (download.redis.io)... 45.60.125.1
正在连接 download.redis.io (download.redis.io)|45.60.125.1|:443... 已连接。
警告: 无法验证 download.redis.io 的由 “/C=BE/O=GlobalSign nv-sa/CN=GlobalSign HV RSA DV SSL CA 2018” 颁发的证书:
  颁发的证书还未生效。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2247528 (2.1M) [application/octet-stream]
正在保存至: “redis-6.0.8.tar.gz”

100%[===================================================================================================================================================>] 2,247,528   54.2KB/s 用时 44s    

2020-06-13 03:35:08 (50.1 KB/s) - 已保存 “redis-6.0.8.tar.gz” [2247528/2247528])

这个参数会让你在 wget 进行对 https 站点的请求时不再检查证书(不推荐)。但是可能会受到HTTP劫持。


下载镜像网站, 下载整个网站到本地。

--miror						开户镜像下载。
-p								下载所有为了html页面显示正常的文件。
--convert-links		下载后,转换成本地的链接。
-P ./site					保存所有文件和目录到本地指定目录。
wget --mirror -p --convert-links -P ./site https://goframe.org/index

过滤指定格式下载

下载一个网站,但你不希望下载图片和html,可以使用这条命令。

wget --mirror -p --convert-links -P ./site https://goframe.org/index --reject=jpg,html

把下载信息存入日志文件

不希望下载信息直接显示在终端而是在一个日志文件,可以使用。

[root@localhost ~]# wget -o download.log http://nginx.org/download/nginx-1.18.0.tar.gz 
[root@localhost ~]# ls
download.log  nginx-1.18.0.tar.gz

下载指定格式的文件

下载一个网站的所有图片。

下载一个网站的所有视频。

下载一个网站的所有PDF文件。

wget -r -A.jpg http://pic.netbian.com/

下载ftp文件, 使用用户名密码认证下载

wget ftp-url
wget --ftp-user=用户名 --ftp-password=密码 url连接地址

使用wget匿名ftp下载

wget ftp-url

curl

curl 命令是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。

-a/--append	上传文件时,附加到目标文件
-A/--user-agent <string>	设置用户代理发送给服务器
-anyauth	可以使用“任何”身份验证方法
-b/--cookie <name=string/file>	cookie字符串或文件读取位置
     --basic	使用HTTP基本验证
-B/--use-ascii	使用ASCII /文本传输
-c/--cookie-jar <file>	操作结束后把cookie写入到这个文件中
-C/--continue-at <offset>	断点续转
-d/--data <data>	HTTP POST方式传送数据
     --data-ascii <data>	以ascii的方式post数据
     --data-binary <data>	以二进制的方式post数据
     --negotiate	使用HTTP身份验证
     --digest	使用数字身份验证
     --disable-eprt	禁止使用EPRT或LPRT
     --disable-epsv	禁止使用EPSV
-D/--dump-header <file>	把header信息写入到该文件中
     --egd-file <file>	为随机数据(SSL)设置EGD socket路径
     --tcp-nodelay	使用TCP_NODELAY选项
-e/--referer	来源网址
-E/--cert <cert[:passwd]>	客户端证书文件和密码 (SSL)
     --cert-type <type>	证书文件类型 (DER/PEM/ENG) (SSL)
     --key <key>	私钥文件名 (SSL)
     --key-type <type>	私钥文件类型 (DER/PEM/ENG) (SSL)
     --pass <pass>	私钥密码 (SSL)
     --engine <eng>	加密引擎使用 (SSL). "--engine list" for list
     --cacert <file>	CA证书 (SSL)
     --capath <directory>	CA目录 (made using c_rehash) to verify peer against (SSL)
     --ciphers <list>	SSL密码
     --compressed	要求返回是压缩的形势 (using deflate or gzip)
     --connect-timeout <seconds>	设置最大请求时间
     --create-dirs	建立本地目录的目录层次结构
     --crlf	上传是把LF转变成CRLF
-f/--fail	连接失败时不显示http错误
     --ftp-create-dirs	如果远程目录不存在,创建远程目录
     --ftp-method [multicwd/nocwd/singlecwd]	控制CWD的使用
     --ftp-pasv	使用 PASV/EPSV 代替端口
     --ftp-skip-pasv-ip	使用PASV的时候,忽略该IP地址
     --ftp-ssl	尝试用 SSL/TLS 来进行ftp数据传输
     --ftp-ssl-reqd	要求用 SSL/TLS 来进行ftp数据传输
-F/--form <name=content>	模拟http表单提交数据
     --form-string <name=string>	模拟http表单提交数据
-g/--globoff	禁用网址序列和范围使用{}和[]
-G/--get	以get的方式来发送数据
-H/--header <line>	自定义头信息传递给服务器
     --ignore-content-length	忽略的HTTP头信息的长度
-i/--include	输出时包括protocol头信息
-I/--head	只显示请求头信息
-j/--junk-session-cookies	读取文件进忽略session cookie
     --interface <interface>	使用指定网络接口/地址
     --krb4 <level>	使用指定安全级别的krb4
-k/--insecure	允许不使用证书到SSL站点
-K/--config	指定的配置文件读取
-l/--list-only	列出ftp目录下的文件名称
     --limit-rate <rate>	设置传输速度
     --local-port<NUM>	强制使用本地端口号
-m/--max-time <seconds>	设置最大传输时间
     --max-redirs <num>	设置最大读取的目录数
     --max-filesize <bytes>	设置最大下载的文件总量
-M/--manual	显示全手动
-n/--netrc	从netrc文件中读取用户名和密码
     --netrc-optional	使用 .netrc 或者 URL来覆盖-n
     --ntlm	使用 HTTP NTLM 身份验证
-N/--no-buffer	禁用缓冲输出
-o/--output	把输出写到该文件中
-O/--remote-name	把输出写到该文件中,保留远程文件的文件名
-p/--proxytunnel	使用HTTP代理
     --proxy-anyauth	选择任一代理身份验证方法
     --proxy-basic	在代理上使用基本身份验证
     --proxy-digest	在代理上使用数字身份验证
     --proxy-ntlm	在代理上使用ntlm身份验证
-P/--ftp-port <address>	使用端口地址,而不是使用PASV
-q	作为第一个参数,关闭 .curlrc
-Q/--quote <cmd>	文件传输前,发送命令到服务器
-r/--range <range>	检索来自HTTP/1.1或FTP服务器字节范围
--range-file	读取(SSL)的随机文件
-R/--remote-time	在本地生成文件时,保留远程文件时间
     --retry <num>	传输出现问题时,重试的次数
     --retry-delay <seconds>	传输出现问题时,设置重试间隔时间
     --retry-max-time <seconds>	传输出现问题时,设置最大重试时间
-s/--silent	静默模式。不输出任何东西
-S/--show-error	显示错误
     --socks4 <host[:port]>	用socks4代理给定主机和端口
     --socks5 <host[:port]>	用socks5代理给定主机和端口
     --stderr <file>	
-t/--telnet-option <OPT=val>	Telnet选项设置
     --trace <file>	对指定文件进行debug
     --trace-ascii <file>	Like --跟踪但没有hex输出
     --trace-time	跟踪/详细输出时,添加时间戳
-T/--upload-file <file>	上传文件
     --url <URL>	Spet URL to work with
-u/--user <user[:password]>	设置服务器的用户和密码
-U/--proxy-user <user[:password]>	设置代理用户名和密码
-w/--write-out [format]	什么输出完成后
-x/--proxy <host[:port]>	在给定的端口上使用HTTP代理
-X/--request <command>	指定什么命令
-y/--speed-time	放弃限速所要的时间,默认为30
-Y/--speed-limit	停止传输速度的限制,速度时间

文件下载

[root@localhost ~]# curl http://nginx.org/download/nginx-1.18.0.tar.gz -O
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1015k  100 1015k    0     0   215k      0  0:00:04  0:00:04 --:--:--  240k
[root@localhost ~]# ls
nginx-1.18.0.tar.gz

下载文件不显示进度信息使用--silent选项。

[root@localhost ~]# curl http://nginx.org/download/nginx-1.18.0.tar.gz -O --silent
[root@localhost ~]# ls
nginx-1.18.0.tar.gz

-o 将下载数据写入到指定名称的文件中,并使用--progress显示进度条

[root@localhost ~]# curl http://nginx.org/download/nginx-1.18.0.tar.gz -o nginx1.8.tar.gz --progress
######################################################################## 100.0%
[root@localhost ~]# ls
nginx1.8.tar.gz

设置user-agent

curl URL --user-agent "Mozilla/5.0"
curl URL -A "Mozilla/5.0"

限速下载

curl URL --limit-rate 50k

tcpdump

需要安装 yum -y install tcpdump

tcpdump 命令是一款sniffer工具,它可以打印所有经过网络接口的数据包的头信息,也可以使用-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<数据包文件>:把数据包数据写入指定的文件。

监控指定网络接口的数据包

[root@localhost ~]# tcpdump -i ens192
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens192, link-type EN10MB (Ethernet), capture size 262144 bytes
10:13:47.908280 IP localhost.localdomain.ssh > 192.168.248.18.53414: Flags [P.], seq 2041358619:2041358783, ack 3277515920, win 281, options [nop,nop,TS val 287603295 ecr 464535749], length 164
10:13:47.909437 IP localhost.localdomain.42944 > pdns.dnspod.cn.domain: 22722+ PTR? 18.248.168.192.in-addr.arpa. (45)
10:13:47.914940 IP 192.168.248.18.53414 > localhost.localdomain.ssh: Flags [.], ack 164, win 2045, options [nop,nop,TS val 464535772 ecr 287603295], length 0
10:13:47.942160 IP pdns.dnspod.cn.domain > localhost.localdomain.42944: 22722 0/0/0 (45)
10:13:47.944626 IP localhost.localdomain.52387 > pdns.dnspod.cn.domain: 11789+ PTR? 15.101.168.192.in-addr.arpa. (45)
10:13:48.159052 ARP, Request who-has 192.168.101.79 tell 192.168.101.17, length 46
10:13:48.385986 IP localhost.localdomain.ssh > 192.168.248.18.53414: Flags [P.], seq 164:232, ack 1, win 281, options [nop,nop,TS val 287603772 ecr 464535772], length 68
10:13:48.386479 IP localhost.localdomain.ssh > 192.168.248.18.53414: Flags [P.], seq 232:268, ack 1, win 281, options [nop,nop,TS val 287603773 ecr 464535772], length 36
10:13:48.391759 IP localhost.localdomain.ssh > 192.168.248.18.53414: Flags [P.], seq 268:320, ack 1, win 281, options [nop,nop,TS val 287603778 ecr 464535772], length 52
10:13:48.394809 IP 192.168.248.18.53414 > localhost.localdomain.ssh: Flags [.], ack 232, win 2046, options [nop,nop,TS val 464536213 ecr 287603772], length 0
10:13:48.394850 IP localhost.localdomain.ssh > 192.168.248.18.53414: Flags [P.], seq 320:460, ack 1, win 281, options [nop,nop,TS val 287603781 ecr 464536213], length 140
10:13:48.395047 IP 192.168.248.18.53414 > localhost.localdomain.ssh: Flags [.], ack 268, win 2047, options [nop,nop,TS val 464536213 ecr 287603773], length 0
...

截获所有112.80.248.75 的主机收到的和发出的所有的数据包

tcpdump host 112.80.248.75

进程管理

ps

ps 命令用于报告当前系统的进程状态。可以搭配kill 指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,大部分信息都是可以通过执行该命令得到的, 所以选项多的离谱!

-a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
a:显示现行终端机下的所有程序,包括其他用户的程序。
-A:显示所有程序。
-c:显示CLS和PRI栏位。
c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
-C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
-d:显示所有程序,但不包括阶段作业领导者的程序。
-e:此选项的效果和指定"A"选项相同。
e:列出程序时,显示每个程序所使用的环境变量。
-f:显示UID,PPIP,C与STIME栏位。
f:用ASCII字符显示树状结构,表达程序间的相互关系。
-g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
g:显示现行终端机下的所有程序,包括群组领导者的程序。
-G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
h:不显示标题列。
-H:显示树状结构,表示程序间的相互关系。
-j或j:采用工作控制的格式显示程序状况。
-l或l:采用详细的格式来显示程序状况。
L:列出栏位的相关信息。
-m或m:显示所有的执行绪。
n:以数字来表示USER和WCHAN栏位。
-N:显示所有的程序,除了执行ps指令终端机下的程序之外。
-p<程序识别码>:指定程序识别码,并列出该程序的状况。
p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
r:只列出现行终端机正在执行中的程序。
-s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
s:采用程序信号的格式显示程序状况。
S:列出程序时,包括已中断的子程序资料。
-t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
-T:显示现行终端机下的所有程序。
-u<用户识别码>:此选项的效果和指定"-U"选项相同。
u:以用户为主的格式来显示程序状况。
-U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
U<用户名称>:列出属于该用户的程序的状况。
v:采用虚拟内存的格式显示程序状况。
-V或V:显示版本信息。
-w或w:采用宽阔的格式来显示程序状况。 
x:显示所有程序,不以终端机来区分。
X:采用旧式的Linux i386登陆格式显示程序状况。
-y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
-<程序识别码>:此选项的效果和指定"p"选项相同。
--cols<每列字符数>:设置每列的最大字符数。
--columns<每列字符数>:此选项的效果和指定"--cols"选项相同。
--cumulative:此选项的效果和指定"S"选项相同。
--deselect:此选项的效果和指定"-N"选项相同。
--forest:此选项的效果和指定"f"选项相同。
--headers:重复显示标题列。
--help:在线帮助。
--info:显示排错信息。
--lines<显示列数>:设置显示画面的列数。
--no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
--group<群组名称>:此选项的效果和指定"-G"选项相同。
--Group<群组识别码>:此选项的效果和指定"-G"选项相同。
--pid<程序识别码>:此选项的效果和指定"-p"选项相同。
--rows<显示列数>:此选项的效果和指定"--lines"选项相同。
--sid<阶段作业>:此选项的效果和指定"-s"选项相同。
--tty<终端机编号>:此选项的效果和指定"-t"选项相同。
--user<用户名称>:此选项的效果和指定"-U"选项相同。
--User<用户识别码>:此选项的效果和指定"-U"选项相同。
--version:此选项的效果和指定"-V"选项相同。
--widty<每列字符数>:此选项的效果和指定"-cols"选项相同。

常用选项参数

-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:所执行的指令

查看某进程

[root@localhost ~]# ps -ef | grep sshd
root      5994     1  0 6月10 ?       00:00:00 /usr/sbin/sshd -D
root      6177  5994  0 04:01 ?        00:00:00 sshd: root@notty
root     24213 27110  0 04:18 pts/0    00:00:00 grep --color=auto sshd
root     27101  5994  0 02:50 ?        00:00:27 sshd: root@pts/0,pts/1


[root@localhost ~]# ps -aux | grep sshd
root      5994  0.0  0.1 112756  4356 ?        Ss   6月10   0:00 /usr/sbin/sshd -D
root      6177  0.0  0.1 158916  5712 ?        Ss   04:01   0:00 sshd: root@notty
root     24385  0.0  0.0 112832   976 pts/0    R+   04:18   0:00 grep --color=auto sshd
root     27101  0.5  0.1 159188  6076 ?        Ss   02:50   0:27 sshd: root@pts/0,pts/1

pgrep

pgrep 命令以名称为依据从运行进程队列中查找进程,并显示查找到的进程id。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。

-o:仅显示找到的最小(起始)进程号;
-n:仅显示找到的最大(结束)进程号;
-l:显示进程名称;
-P:指定父进程号;
-g:指定进程组;
-t:指定开启进程的终端;
-u:指定进程的有效用户ID。
[root@localhost ~]# netstat -luntp
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:22              0.0.0.0:*               LISTEN      5994/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6561/master         
tcp6       0      0 :::80                   :::*                    LISTEN      6445/httpd          
tcp6       0      0 :::22                   :::*                    LISTEN      5994/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      6561/master         
udp        0      0 0.0.0.0:68              0.0.0.0:*                           5913/dhclient       
udp        0      0 0.0.0.0:68              0.0.0.0:*                           16229/dhclient      
udp        0      0 127.0.0.1:323           0.0.0.0:*                           5573/chronyd        
udp6       0      0 ::1:323                 :::*                                5573/chronyd        
[root@localhost ~]# pgrep httpd
6445
6446
6447
6448
6449
6450
6484
6486
6487
[root@localhost ~]# pgrep -l httpd
6445 httpd
6446 httpd
6447 httpd
6448 httpd
6449 httpd
6450 httpd
6484 httpd
6486 httpd
6487 httpd
[root@localhost ~]# pgrep -lo httpd
6445 httpd
[root@localhost ~]# pgrep -ln httpd
6487 httpd

kill

kill命令用来终止执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制终止程序。

-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:指定要送出的信息;
-u:指定用户。

列出所有信号名称

[root@localhost ~]# kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略, 下面是常用的信号

HUP     1    终端断线
INT     2    中断(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    终止
KILL    9    强制终止
CONT   18    继续(与STOP相反, fg/bg命令)
STOP   19    暂停(同 Ctrl + Z)

先用ps查找进程,然后用kill杀掉

[root@localhost ~]# ps -aux | grep top
root     25899  0.0  0.0 112828   980 pts/0    R+   04:20   0:00 grep --color=auto top
root     27215  0.3  0.0 162748  2920 pts/1    S+   02:50   0:19 top

[root@localhost ~]# kill -9 27215
[root@localhost ~]# ps -aux | grep top
root     26043  0.0  0.0 112828   980 pts/0    R+   04:20   0:00 grep --color=auto top

pkill

pkill命令可以按照进程名杀死进程。pkillkillall 应用方法差不多,也是直接杀死运行中的程序;如果你想杀掉单个进程,请用kill来杀掉。

-o:仅向找到的最小(起始)进程号发送信号;
-n:仅向找到的最大(结束)进程号发送信号;
-P:指定父进程号发送信号;
-g:指定进程组;
-t:指定开启进程的终端。
[root@localhost ~]# pgrep -l httpd
6445 httpd
6446 httpd
6447 httpd
6448 httpd
6449 httpd
6450 httpd
6484 httpd
6486 httpd
6487 httpd
[root@localhost ~]# pkill httpd
[root@localhost ~]# pgrep -l httpd

killall

需要安装 yum -y install psmisc

killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill 命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps 等命令再配合grep 来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。

杀死所有同名进程

killall httpd

pidof

pidof 命令用于查找指定名称的进程的进程号id号。

-s:仅返回一个进程号;
-c:仅显示具有相同“root”目录的进程;
-x:显示由脚本开启的进程;
-o:指定不显示的进程ID。

查找指定进程的进程ID号

[root@localhost ~]# pidof httpd
4394 4393 4392 4391 4390 4389

losf

需要安装 yum -y install lsof

lsof 命令用于查看你进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为lsof命令需要访问核心内存和各种文件,所以需要root用户执行。

-a:列出打开文件存在的进程;
-c<进程名>:列出指定进程所打开的文件;
-g:列出GID号进程详情;
-d<文件号>:列出占用该文件号的进程;
+d<目录>:列出目录下被打开的文件;
+D<目录>:递归列出目录下被打开的文件;
-n<目录>:列出使用NFS的文件;
-i<条件>:列出符合条件的进程。(4、6、协议、:端口、 @ip )
-p<进程号>:列出指定进程号所打开的文件;
-u:列出UID号进程详情;
-h:显示帮助信息;
-v:显示版本信息。
COMMAND:进程的名称
PID:进程标识符
PPID:父进程标识符(需要指定-R参数)
USER:进程所有者
PGID:进程所属组
FD:文件描述符,应用程序通过文件描述符识别该文件。 
DIR:表示目录。
CHR:表示字符类型。
BLK:块设备类型。
UNIX: UNIX 域套接字。
FIFO:先进先出 (FIFO) 队列。
IPv4:网际协议 (IP) 套接字。
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称

列出所有打开的文件

[root@localhost ~]# lsof
COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1          root  cwd       DIR              253,0       224         64 /
systemd       1          root  rtd       DIR              253,0       224         64 /
systemd       1          root  txt       REG              253,0   1616360      28617 /usr/lib/systemd/systemd
systemd       1          root  mem       REG              253,0     20112   33565434 /usr/lib64/libuuid.so.1.3.0
systemd       1          root  mem       REG              253,0    265624   33565438 /usr/lib64/libblkid.so.1.1.0
systemd       1          root  mem       REG              253,0     90248   33562302 /usr/lib64/libz.so.1.2.7
systemd       1          root  mem       REG              253,0    157424   33565432 /usr/lib64/liblzma.so.5.2.2
systemd       1          root  mem       REG              253,0     23968   33565460 /usr/lib64/libcap-ng.so.0.0.0
systemd       1          root  mem       REG              253,0     19896   33565264 /usr/lib64/libattr.so.1.1.0
systemd       1          root  DEL       REG              253,0             33561978 /usr/lib64/libdl-2.17.so;5ee07b35
systemd       1          root  mem       REG              253,0    402384   33565277 /usr/lib64/libpcre.so.1.2.0
systemd       1          root  DEL       REG              253,0             33561972 /usr/lib64/libc-2.17.so;5ee07b35
systemd       1          root  DEL       REG              253,0             33561998 /usr/lib64/libpthread-2.17.so;5ee07b35
systemd       1          root  DEL       REG              253,0             33554508 /usr/lib64/libgcc_s-4.8.5-20150702.so.1;5ee07b35
...

查看哪个程序在使用某个文件

[root@localhost ~]# lsof /var/log/httpd/access_log 
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
httpd   14493   root    7w   REG  253,0    18778 442010 /var/log/httpd/access_log
httpd   14494 apache    7w   REG  253,0    18778 442010 /var/log/httpd/access_log
httpd   14495 apache    7w   REG  253,0    18778 442010 /var/log/httpd/access_log
httpd   14496 apache    7w   REG  253,0    18778 442010 /var/log/httpd/access_log
httpd   14497 apache    7w   REG  253,0    18778 442010 /var/log/httpd/access_log
httpd   14498 apache    7w   REG  253,0    18778 442010 /var/log/httpd/access_log

递归查看某个目录的文件信息

[root@localhost ~]# lsof | grep /var/log/httpd
httpd     14493          root    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14493          root    7w      REG              253,0     18778     442010 /var/log/httpd/access_log
httpd     14494        apache    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14494        apache    7w      REG              253,0     18778     442010 /var/log/httpd/access_log
httpd     14495        apache    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14495        apache    7w      REG              253,0     18778     442010 /var/log/httpd/access_log
httpd     14496        apache    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14496        apache    7w      REG              253,0     18778     442010 /var/log/httpd/access_log
httpd     14497        apache    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14497        apache    7w      REG              253,0     18778     442010 /var/log/httpd/access_log
httpd     14498        apache    2w      REG              253,0      6879     442009 /var/log/httpd/error_log
httpd     14498        apache    7w      REG              253,0     18778     442010 /var/log/httpd/access_log

列出某个用户打开的文件信息

[root@localhost ~]# lsof -u root
COMMAND     PID USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1 root  cwd       DIR              253,0       224         64 /
systemd       1 root  rtd       DIR              253,0       224         64 /
systemd       1 root  txt       REG              253,0   1616360      28617 /usr/lib/systemd/systemd
systemd       1 root  mem       REG              253,0     20112   33565434 /usr/lib64/libuuid.so.1.3.0
systemd       1 root  mem       REG              253,0    265624   33565438 /usr/lib64/libblkid.so.1.1.0
systemd       1 root  mem       REG              253,0     90248   33562302 /usr/lib64/libz.so.1.2.7
systemd       1 root  mem       REG              253,0    157424   33565432 /usr/lib64/liblzma.so.5.2.2
systemd       1 root  mem       REG              253,0     23968   33565460 /usr/lib64/libcap-ng.so.0.0.0
systemd       1 root  mem       REG              253,0     19896   33565264 /usr/lib64/libattr.so.1.1.0
systemd       1 root  DEL       REG              253,0             33561978 /usr/lib64/libdl-2.17.so;5ee07b35
systemd       1 root  mem       REG              253,0    402384   33565277 /usr/lib64/libpcre.so.1.2.0
systemd       1 root  DEL       REG              253,0             33561972 /usr/lib64/libc-2.17.so;5ee07b35
systemd       1 root  DEL       REG              253,0             33561998 /usr/lib64/libpthread-2.17.so;5ee07b35
systemd       1 root  DEL       REG              253,0             33554508 /usr/lib64/libgcc_s-4.8.5-20150702.so.1;5ee07b35
systemd       1 root  DEL       REG              253,0             33562002 /usr/lib64/librt-2.17.so;5ee07b35
systemd       1 root  mem       REG              253,0    277824   33600796 /usr/lib64/libmount.so.1.1.0
systemd       1 root  mem       REG              253,0     91848   33601989 /usr/lib64/libkmod.so.2.2.10
systemd       1 root  DEL       REG              253,0             33565464 /usr/lib64/libaudit.so.1.0.0;5ee07fef
...

列出某个程序打开的文件信息

[root@localhost ~]# lsof -c python
COMMAND   PID USER   FD   TYPE DEVICE  SIZE/OFF      NODE NAME
python  23986 root  cwd    DIR  253,0       177 100663361 /root
python  23986 root  rtd    DIR  253,0       224        64 /
python  23986 root  txt    REG  253,0      7216     27102 /usr/bin/python2.7
python  23986 root  mem    REG  253,0 106176928  67163655 /usr/lib/locale/locale-archive
python  23986 root  mem    REG  253,0   2156240  33555827 /usr/lib64/libc-2.17.so
python  23986 root  mem    REG  253,0   1136944  33555835 /usr/lib64/libm-2.17.so
python  23986 root  mem    REG  253,0     14424  33555861 /usr/lib64/libutil-2.17.so
python  23986 root  mem    REG  253,0     19248  33555833 /usr/lib64/libdl-2.17.so
python  23986 root  mem    REG  253,0    142144  33555853 /usr/lib64/libpthread-2.17.so
python  23986 root  mem    REG  253,0   1847496  33601094 /usr/lib64/libpython2.7.so.1.0
python  23986 root  mem    REG  253,0    163312  33554509 /usr/lib64/ld-2.17.so
python  23986 root    0u   CHR  136,0       0t0         3 /dev/pts/0
python  23986 root    1u   CHR  136,0       0t0         3 /dev/pts/0
python  23986 root    2u   CHR  136,0       0t0         3 /dev/pts/0

列出多个文件打开的文件信息

[root@localhost ~]# lsof -c python -c firewalld
COMMAND     PID USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAME
python    23986 root  cwd       DIR              253,0       177 100663361 /root
python    23986 root  rtd       DIR              253,0       224        64 /
python    23986 root  txt       REG              253,0      7216     27102 /usr/bin/python2.7
python    23986 root  mem       REG              253,0 106176928  67163655 /usr/lib/locale/locale-archive
python    23986 root  mem       REG              253,0   2156240  33555827 /usr/lib64/libc-2.17.so
python    23986 root  mem       REG              253,0   1136944  33555835 /usr/lib64/libm-2.17.so
python    23986 root  mem       REG              253,0     14424  33555861 /usr/lib64/libutil-2.17.so
python    23986 root  mem       REG              253,0     19248  33555833 /usr/lib64/libdl-2.17.so
python    23986 root  mem       REG              253,0    142144  33555853 /usr/lib64/libpthread-2.17.so
python    23986 root  mem       REG              253,0   1847496  33601094 /usr/lib64/libpython2.7.so.1.0
python    23986 root  mem       REG              253,0    163312  33554509 /usr/lib64/ld-2.17.so
python    23986 root    0u      CHR              136,0       0t0         3 /dev/pts/0
python    23986 root    1u      CHR              136,0       0t0         3 /dev/pts/0
python    23986 root    2u      CHR              136,0       0t0         3 /dev/pts/0
firewalld 26537 root  cwd       DIR              253,0       224        64 /
firewalld 26537 root  rtd       DIR              253,0       224        64 /
firewalld 26537 root  txt       REG              253,0      7216     27102 /usr/bin/python2.7
firewalld 26537 root  mem       REG              253,0    262808 100774783 /usr/lib64/girepository-1.0/NM-1.0.typelib
firewalld 26537 root  mem       REG              253,0    343452 100773776 /usr/lib64/girepository-1.0/Gio-2.0.typelib
firewalld 26537 root  mem       REG              253,0     12408 100773538 /usr/lib64/python2.7/lib-dynload/grpmodule.so
firewalld 26537 root  mem       REG              253,0    168312  33658786 /usr/lib64/libdbus-glib-1.so.2.2.2
firewalld 26537 root  mem       REG              253,0     11976     65382 /usr/lib64/python2.7/site-packages/_dbus_glib_bindings.so
firewalld 26537 root  mem       REG              253,0    185712 100773773 /usr/lib64/girepository-1.0/GLib-2.0.typelib
firewalld 26537 root  mem       REG              253,0     20112  33565434 /usr/lib64/libuuid.so.1.3.0
firewalld 26537 root  mem       REG              253,0    265624  33565438 /usr/lib64/libblkid.so.1.1.0
firewalld 26537 root  mem       REG              253,0    277824  33600796 /usr/lib64/libmount.so.1.1.0
firewalld 26537 root  mem       REG              253,0   1722848  33600799 /usr/lib64/libgio-2.0.so.0.5600.1
firewalld 26537 root  mem       REG              253,0     15688  33600803 /usr/lib64/libgmodule-2.0.so.0.5600.1
firewalld 26537 root  mem       REG              253,0     32304  33565262 /usr/lib64/libffi.so.6.0.1
firewalld 26537 root  mem       REG              253,0   1156600  33600801 /usr/lib64/libglib-2.0.so.0.5600.1
firewalld 26537 root  mem       REG              253,0    335032  33600805 /usr/lib64/libgobject-2.0.so.0.5600.1
firewalld 26537 root  mem       REG              253,0    217144  33601914 /usr/lib64/libgirepository-1.0.so.1.0.0
firewalld 26537 root  mem       REG              253,0      7016  33600807 /usr/lib64/libgthread-2.0.so.0.5600.1
firewalld 26537 root  mem       REG              253,0    331480  33601919 /usr/lib64/python2.7/site-packages/gi/_gi.so
firewalld 26537 root  mem       REG              253,0     29264 100773551 /usr/lib64/python2.7/lib-dynload/selectmodule.so
firewalld 26537 root  mem       REG              253,0     11672 100773554 /usr/lib64/python2.7/lib-dynload/syslog.so
firewalld 26537 root  mem       REG              253,0     19264 100773535 /usr/lib64/python2.7/lib-dynload/fcntlmodule.so
firewalld 26537 root  mem       REG              253,0     16432 100773520 /usr/lib64/python2.7/lib-dynload/_randommodule.so
firewalld 26537 root  mem       REG              253,0     22880 100773511 /usr/lib64/python2.7/lib-dynload/_hashlib.so
firewalld 26537 root  mem       REG              253,0     25768 100773527 /usr/lib64/python2.7/lib-dynload/binascii.so
firewalld 26537 root  mem       REG              253,0     37376 100773542 /usr/lib64/python2.7/lib-dynload/math.so
firewalld 26537 root  mem       REG              253,0    156960 100773514 /usr/lib64/python2.7/lib-dynload/_io.so
firewalld 26537 root  mem       REG              253,0     15688  33565302 /usr/lib64/libkeyutils.so.1.5
firewalld 26537 root  mem       REG              253,0     62888  33565429 /usr/lib64/libkrb5support.so.0.1
firewalld 26537 root  mem       REG              253,0    112280  33565421 /usr/lib64/libk5crypto.so.3.1
firewalld 26537 root  mem       REG              253,0     15920  33562312 /usr/lib64/libcom_err.so.2.1
firewalld 26537 root  mem       REG              253,0    967728  33565427 /usr/lib64/libkrb5.so.3.3
firewalld 26537 root  mem       REG              253,0    320392  33565417 /usr/lib64/libgssapi_krb5.so.2.2
firewalld 26537 root  mem       REG              253,0   2513000  33565406 /usr/lib64/libcrypto.so.1.0.2k
firewalld 26537 root  mem       REG              253,0    470360  33565408 /usr/lib64/libssl.so.1.0.2k
firewalld 26537 root  mem       REG              253,0     95120 100773523 /usr/lib64/python2.7/lib-dynload/_ssl.so
firewalld 26537 root  mem       REG              253,0     83960 100773521 /usr/lib64/python2.7/lib-dynload/_socketmodule.so
firewalld 26537 root  mem       REG              253,0     39024 100773524 /usr/lib64/python2.7/lib-dynload/_struct.so
firewalld 26537 root  mem       REG              253,0     21344 100773516 /usr/lib64/python2.7/lib-dynload/_localemodule.so
firewalld 26537 root  mem       REG              253,0     17056 100773510 /usr/lib64/python2.7/lib-dynload/_functoolsmodule.so
firewalld 26537 root  mem       REG              253,0     28736 100773553 /usr/lib64/python2.7/lib-dynload/stropmodule.so
firewalld 26537 root  mem       REG              253,0    173320  33600743 /usr/lib64/libexpat.so.1.6.0
firewalld 26537 root  mem       REG              253,0     54544 100773548 /usr/lib64/python2.7/lib-dynload/pyexpat.so
firewalld 26537 root  mem       REG              253,0     22920 100773512 /usr/lib64/python2.7/lib-dynload/_heapq.so
firewalld 26537 root  mem       REG              253,0     62096 100773540 /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
firewalld 26537 root  mem       REG              253,0     47672 100773545 /usr/lib64/python2.7/lib-dynload/operator.so
firewalld 26537 root  mem       REG              253,0     33096 100773503 /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
firewalld 26537 root  mem       REG              253,0     23992 100773530 /usr/lib64/python2.7/lib-dynload/cStringIO.so
firewalld 26537 root  mem       REG              253,0     25064 100773556 /usr/lib64/python2.7/lib-dynload/timemodule.so
firewalld 26537 root  mem       REG              253,0     68192  33565440 /usr/lib64/libbz2.so.1.0.6
firewalld 26537 root  mem       REG              253,0     90248  33562302 /usr/lib64/libz.so.1.2.7
firewalld 26537 root  mem       REG              253,0    100008  33565453 /usr/lib64/libelf-0.172.so
firewalld 26537 root  mem       REG              253,0    402384  33565277 /usr/lib64/libpcre.so.1.2.0
firewalld 26537 root  mem       REG              253,0     19896  33565264 /usr/lib64/libattr.so.1.1.0
firewalld 26537 root  mem       REG              253,0     88776  33554592 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
firewalld 26537 root  mem       REG              253,0    330464  33602752 /usr/lib64/libdw-0.172.so
firewalld 26537 root  mem       REG              253,0    109976  33555855 /usr/lib64/libresolv-2.17.so
firewalld 26537 root  mem       REG              253,0     19384  33565458 /usr/lib64/libgpg-error.so.0.10.0
firewalld 26537 root  mem       REG              253,0    535064  33565469 /usr/lib64/libgcrypt.so.11.8.2
firewalld 26537 root  mem       REG              253,0     85952  33601082 /usr/lib64/liblz4.so.1.7.5
firewalld 26537 root  mem       REG              253,0    157424  33565432 /usr/lib64/liblzma.so.5.2.2
firewalld 26537 root  mem       REG              253,0    155784  33565293 /usr/lib64/libselinux.so.1
firewalld 26537 root  mem       REG              253,0     43712  33555857 /usr/lib64/librt-2.17.so
firewalld 26537 root  mem       REG              253,0     20032  33565268 /usr/lib64/libcap.so.2.22
firewalld 26537 root  mem       REG              253,0    203800  33602765 /usr/lib64/libsystemd.so.0.6.0
firewalld 26537 root  mem       REG              253,0    333384  33602769 /usr/lib64/libdbus-1.so.3.14.14
firewalld 26537 root  mem       REG              253,0    166248     65381 /usr/lib64/python2.7/site-packages/_dbus_bindings.so
firewalld 26537 root  mem       REG              253,0 106176928  67163655 /usr/lib/locale/locale-archive
firewalld 26537 root  mem       REG              253,0     61560  33555845 /usr/lib64/libnss_files-2.17.so
firewalld 26537 root  mem       REG              253,0   2156240  33555827 /usr/lib64/libc-2.17.so
firewalld 26537 root  mem       REG              253,0   1136944  33555835 /usr/lib64/libm-2.17.so
firewalld 26537 root  mem       REG              253,0     14424  33555861 /usr/lib64/libutil-2.17.so
firewalld 26537 root  mem       REG              253,0     19248  33555833 /usr/lib64/libdl-2.17.so
firewalld 26537 root  mem       REG              253,0    142144  33555853 /usr/lib64/libpthread-2.17.so
firewalld 26537 root  mem       REG              253,0   1847496  33601094 /usr/lib64/libpython2.7.so.1.0
firewalld 26537 root  mem       REG              253,0    163312  33554509 /usr/lib64/ld-2.17.so
firewalld 26537 root  mem       REG              253,0     59120 100773775 /usr/lib64/girepository-1.0/GObject-2.0.typelib
firewalld 26537 root    0r      CHR                1,3       0t0      5334 /dev/null
firewalld 26537 root    1w      CHR                1,3       0t0      5334 /dev/null
firewalld 26537 root    2w      CHR                1,3       0t0      5334 /dev/null
firewalld 26537 root    3w      REG              253,0      5646 100666080 /var/log/firewalld
firewalld 26537 root    4u     unix 0xffff96121130c000       0t0   1065928 socket
firewalld 26537 root    5u  a_inode               0,10         0      5330 [eventfd]
firewalld 26537 root    6r     FIFO                0,9       0t0   1066641 pipe
firewalld 26537 root    7r      CHR                1,9       0t0      5339 /dev/urandom
firewalld 26537 root    8w     FIFO                0,9       0t0   1066641 pipe
firewalld 26537 root    9r     FIFO                0,9       0t0   1066642 pipe
firewalld 26537 root   10w     FIFO                0,9       0t0   1066642 pipe
firewalld 26537 root   11r     FIFO                0,9       0t0   1066643 pipe

列出除某用户外的被打开的文件

[root@localhost ~]# lsof -u ^root
COMMAND     PID  TID    USER   FD      TYPE             DEVICE  SIZE/OFF      NODE NAME
pickup     2233      postfix  cwd       DIR              253,0       201  67703230 /var/spool/postfix
pickup     2233      postfix  rtd       DIR              253,0       224        64 /
pickup     2233      postfix  txt       REG              253,0    285208  67637625 /usr/libexec/postfix/pickup
pickup     2233      postfix  mem       REG              253,0     61560  33555845 /usr/lib64/libnss_files-2.17.so
pickup     2233      postfix  mem       REG              253,0    155784  33565293 /usr/lib64/libselinux.so.1
pickup     2233      postfix  mem       REG              253,0     15688  33565302 /usr/lib64/libkeyutils.so.1.5
pickup     2233      postfix  mem       REG              253,0     11448  33561681 /usr/lib64/libfreebl3.so
pickup     2233      postfix  mem       REG              253,0     88776  33554592 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
pickup     2233      postfix  mem       REG              253,0     43712  33555857 /usr/lib64/librt-2.17.so
pickup     2233      postfix  mem       REG              253,0     62888  33565429 /usr/lib64/libkrb5support.so.0.1
pickup     2233      postfix  mem       REG              253,0     15920  33562312 /usr/lib64/libcom_err.so.2.1
pickup     2233      postfix  mem       REG              253,0    112280  33565421 /usr/lib64/libk5crypto.so.3.1
pickup     2233      postfix  mem       REG              253,0    967728  33565427 /usr/lib64/libkrb5.so.3.3
pickup     2233      postfix  mem       REG              253,0    320392  33565417 /usr/lib64/libgssapi_krb5.so.2.2
pickup     2233      postfix  mem       REG              253,0     40600  33555831 /usr/lib64/libcrypt-2.17.so
pickup     2233      postfix  mem       REG              253,0    991616  33562316 /usr/lib64/libstdc++.so.6.0.19
pickup     2233      postfix  mem       REG              253,0     90248  33562302 /usr/lib64/libz.so.1.2.7
pickup     2233      postfix  mem       REG              253,0     19248  33555833 /usr/lib64/libdl-2.17.so
pickup     2233      postfix  mem       REG              253,0    142144  33555853 /usr/lib64/libpthread-2.17.so
pickup     2233      postfix  mem       REG              253,0    251832  33562307 /usr/lib64/libnspr4.so
pickup     2233      postfix  mem       REG              253,0     20096  33562308 /usr/lib64/libplc4.so
pickup     2233      postfix  mem       REG              253,0     15800  33562309 /usr/lib64/libplds4.so
pickup     2233      postfix  mem       REG              253,0    194944  33562310 /usr/lib64/libnssutil3.so
pickup     2233      postfix  mem       REG              253,0   1249536  33600845 /usr/lib64/libnss3.so
pickup     2233      postfix  mem       REG              253,0    164288  33600846 /usr/lib64/libsmime3.so
pickup     2233      postfix  mem       REG              253,0    340976  33600847 /usr/lib64/libssl3.so
pickup     2233      postfix  mem       REG              253,0   2156240  33555827 /usr/lib64/libc-2.17.so
pickup     2233      postfix  mem       REG              253,0    109976  33555855 /usr/lib64/libresolv-2.17.so
pickup     2233      postfix  mem       REG              253,0    115816  33555837 /usr/lib64/libnsl-2.17.so
pickup     2233      postfix  mem       REG              253,0   1850464  33565441 /usr/lib64/libdb-5.3.so
pickup     2233      postfix  mem       REG              253,0   2513000  33565406 /usr/lib64/libcrypto.so.1.0.2k
pickup     2233      postfix  mem       REG              253,0    470360  33565408 /usr/lib64/libssl.so.1.0.2k
pickup     2233      postfix  mem       REG              253,0    121320  33601002 /usr/lib64/libsasl2.so.3.0.0
pickup     2233      postfix  mem       REG              253,0   1136944  33555835 /usr/lib64/libm-2.17.so
pickup     2233      postfix  mem       REG              253,0   3135712 100773845 /usr/lib64/mysql/libmysqlclient.so.18.0.0
pickup     2233      postfix  mem       REG              253,0    402384  33565277 /usr/lib64/libpcre.so.1.2.0
pickup     2233      postfix  mem       REG              253,0     61952  33602101 /usr/lib64/liblber-2.4.so.2.10.7
pickup     2233      postfix  mem       REG              253,0    352624  33602103 /usr/lib64/libldap-2.4.so.2.10.7
pickup     2233      postfix  mem       REG              253,0    163312  33554509 /usr/lib64/ld-2.17.so
pickup     2233      postfix    0u      CHR                1,3       0t0      5334 /dev/null
pickup     2233      postfix    1u      CHR                1,3       0t0      5334 /dev/null
pickup     2233      postfix    2u      CHR                1,3       0t0      5334 /dev/null
pickup     2233      postfix    3r     FIFO                0,9       0t0     34602 pipe
pickup     2233      postfix    4w     FIFO                0,9       0t0     34602 pipe
pickup     2233      postfix    5u     unix 0xffff9612b6be0c00       0t0     34532 socket
pickup     2233      postfix    6u     unix 0xffff961235dfa000       0t0     34529 public/pickup
pickup     2233      postfix    7u     unix 0xffff961239560800       0t0    976385 socket
pickup     2233      postfix    8u  a_inode               0,10         0      5330 [eventpoll]

列出某一个进程PID所打开的文件

[root@localhost ~]# lsof -p 14493
COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF      NODE NAME
httpd   14493 root  cwd    DIR              253,0      224        64 /
httpd   14493 root  rtd    DIR              253,0      224        64 /
httpd   14493 root  txt    REG              253,0   523608  33597695 /usr/sbin/httpd
httpd   14493 root  mem    REG              253,0    61560  33555845 /usr/lib64/libnss_files-2.17.so
httpd   14493 root  mem    REG              253,0    27720 100993461 /usr/lib64/httpd/modules/mod_cgi.so
httpd   14493 root  mem    REG              253,0    68192  33565440 /usr/lib64/libbz2.so.1.0.6
httpd   14493 root  mem    REG              253,0   157424  33565432 /usr/lib64/liblzma.so.5.2.2
httpd   14493 root  mem    REG              253,0   100008  33565453 /usr/lib64/libelf-0.172.so
httpd   14493 root  mem    REG              253,0    19896  33565264 /usr/lib64/libattr.so.1.1.0
httpd   14493 root  mem    REG              253,0    88776  33554592 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
httpd   14493 root  mem    REG              253,0   330464  33602752 /usr/lib64/libdw-0.172.so
httpd   14493 root  mem    REG              253,0    20032  33565268 /usr/lib64/libcap.so.2.22
httpd   14493 root  mem    REG              253,0    43712  33555857 /usr/lib64/librt-2.17.so
httpd   14493 root  mem    REG              253,0    28128  33602757 /usr/lib64/libsystemd-daemon.so.0.0.12
httpd   14493 root  mem    REG              253,0    11128 100664212 /usr/lib64/httpd/modules/mod_systemd.so
httpd   14493 root  mem    REG              253,0    19360 100664194 /usr/lib64/httpd/modules/mod_proxy_wstunnel.so
httpd   14493 root  mem    REG              253,0    19464 100664193 /usr/lib64/httpd/modules/mod_proxy_scgi.so
httpd   14493 root  mem    REG              253,0    39960 100664192 /usr/lib64/httpd/modules/mod_proxy_http.so
httpd   14493 root  mem    REG              253,0    44192 100664191 /usr/lib64/httpd/modules/mod_proxy_ftp.so
httpd   14493 root  mem    REG              253,0    11160 100664190 /usr/lib64/httpd/modules/mod_proxy_fdpass.so
httpd   14493 root  mem    REG              253,0    19384 100664189 /usr/lib64/httpd/modules/mod_proxy_fcgi.so
httpd   14493 root  mem    REG              253,0    15296 100664188 /usr/lib64/httpd/modules/mod_proxy_express.so
httpd   14493 root  mem    REG              253,0    19400 100664187 /usr/lib64/httpd/modules/mod_proxy_connect.so
httpd   14493 root  mem    REG              253,0    48176 100664186 /usr/lib64/httpd/modules/mod_proxy_balancer.so
httpd   14493 root  mem    REG              253,0    52440 100664185 /usr/lib64/httpd/modules/mod_proxy_ajp.so
httpd   14493 root  mem    REG              253,0    15328 100664171 /usr/lib64/httpd/modules/mod_lbmethod_heartbeat.so
httpd   14493 root  mem    REG              253,0    11128 100664170 /usr/lib64/httpd/modules/mod_lbmethod_bytraffic.so
httpd   14493 root  mem    REG              253,0    11136 100664169 /usr/lib64/httpd/modules/mod_lbmethod_byrequests.so
httpd   14493 root  mem    REG              253,0    11136 100664168 /usr/lib64/httpd/modules/mod_lbmethod_bybusyness.so
httpd   14493 root  mem    REG              253,0   118848 100664184 /usr/lib64/httpd/modules/mod_proxy.so
httpd   14493 root  mem    REG              253,0    31880 100664181 /usr/lib64/httpd/modules/mod_mpm_prefork.so
httpd   14493 root  mem    REG              253,0  1136944  33555835 /usr/lib64/libm-2.17.so
httpd   14493 root  mem    REG              253,0   193864  33600744 /usr/lib64/liblua-5.1.so
httpd   14493 root  mem    REG              253,0   117120 100664176 /usr/lib64/httpd/modules/mod_lua.so
httpd   14493 root  mem    REG              253,0    19648 100993467 /usr/lib64/httpd/modules/mod_dav_lock.so
httpd   14493 root  mem    REG              253,0    57120 100993466 /usr/lib64/httpd/modules/mod_dav_fs.so
httpd   14493 root  mem    REG              253,0   102440 100993465 /usr/lib64/httpd/modules/mod_dav.so
httpd   14493 root  mem    REG              253,0    11192 100664218 /usr/lib64/httpd/modules/mod_vhost_alias.so
httpd   14493 root  mem    REG              253,0    11112 100664217 /usr/lib64/httpd/modules/mod_version.so
httpd   14493 root  mem    REG              253,0    11176 100664215 /usr/lib64/httpd/modules/mod_userdir.so
httpd   14493 root  mem    REG              253,0    15312 100664214 /usr/lib64/httpd/modules/mod_unixd.so
httpd   14493 root  mem    REG              253,0    11152 100664213 /usr/lib64/httpd/modules/mod_unique_id.so
httpd   14493 root  mem    REG              253,0    11176 100664211 /usr/lib64/httpd/modules/mod_suexec.so
httpd   14493 root  mem    REG              253,0    15288 100664210 /usr/lib64/httpd/modules/mod_substitute.so
httpd   14493 root  mem    REG              253,0    23472 100664209 /usr/lib64/httpd/modules/mod_status.so
httpd   14493 root  mem    REG              253,0    23576 100664207 /usr/lib64/httpd/modules/mod_socache_shmcb.so
httpd   14493 root  mem    REG              253,0    11200 100664206 /usr/lib64/httpd/modules/mod_socache_memcache.so
httpd   14493 root  mem    REG              253,0    15328 100664205 /usr/lib64/httpd/modules/mod_socache_dbm.so
httpd   14493 root  mem    REG              253,0    15408 100664204 /usr/lib64/httpd/modules/mod_slotmem_shm.so
httpd   14493 root  mem    REG              253,0    11248 100664203 /usr/lib64/httpd/modules/mod_slotmem_plain.so
httpd   14493 root  mem    REG              253,0    15336 100664202 /usr/lib64/httpd/modules/mod_setenvif.so
httpd   14493 root  mem    REG              253,0    69056 100664200 /usr/lib64/httpd/modules/mod_rewrite.so
httpd   14493 root  mem    REG              253,0    15328 100664198 /usr/lib64/httpd/modules/mod_reqtimeout.so
httpd   14493 root  mem    REG              253,0    15312 100664197 /usr/lib64/httpd/modules/mod_remoteip.so
httpd   14493 root  mem    REG              253,0    36008 100664183 /usr/lib64/httpd/modules/mod_negotiation.so
httpd   14493 root  mem    REG              253,0    19528 100664178 /usr/lib64/httpd/modules/mod_mime.so
httpd   14493 root  mem    REG              253,0    27752 100664179 /usr/lib64/httpd/modules/mod_mime_magic.so
httpd   14493 root  mem    REG              253,0    11224 100664175 /usr/lib64/httpd/modules/mod_logio.so
httpd   14493 root  mem    REG              253,0    32312 100664172 /usr/lib64/httpd/modules/mod_log_config.so
httpd   14493 root  mem    REG              253,0    28136 100664167 /usr/lib64/httpd/modules/mod_info.so
httpd   14493 root  mem    REG              253,0    52536 100664166 /usr/lib64/httpd/modules/mod_include.so
httpd   14493 root  mem    REG              253,0    23760 100664163 /usr/lib64/httpd/modules/mod_headers.so
httpd   14493 root  mem    REG              253,0    19424 100664162 /usr/lib64/httpd/modules/mod_filter.so
httpd   14493 root  mem    REG              253,0    23552 100664160 /usr/lib64/httpd/modules/mod_ext_filter.so
httpd   14493 root  mem    REG              253,0    15312 100663387 /usr/lib64/httpd/modules/mod_expires.so
httpd   14493 root  mem    REG              253,0    11184 100663386 /usr/lib64/httpd/modules/mod_env.so
httpd   14493 root  mem    REG              253,0    11160 100663380 /usr/lib64/httpd/modules/mod_echo.so
httpd   14493 root  mem    REG              253,0    11200 100663378 /usr/lib64/httpd/modules/mod_dumpio.so
httpd   14493 root  mem    REG              253,0    15288 100993471 /usr/lib64/httpd/modules/mod_dir.so
httpd   14493 root  mem    REG              253,0    90248  33562302 /usr/lib64/libz.so.1.2.7
httpd   14493 root  mem    REG              253,0    31832 100993469 /usr/lib64/httpd/modules/mod_deflate.so
httpd   14493 root  mem    REG              253,0    23632 100993468 /usr/lib64/httpd/modules/mod_dbd.so
httpd   14493 root  mem    REG              253,0    11096 100993464 /usr/lib64/httpd/modules/mod_data.so
httpd   14493 root  mem    REG              253,0    36104 100993459 /usr/lib64/httpd/modules/mod_cache_disk.so
httpd   14493 root  mem    REG              253,0    73280 100993458 /usr/lib64/httpd/modules/mod_cache.so
httpd   14493 root  mem    REG              253,0    40080 100993456 /usr/lib64/httpd/modules/mod_autoindex.so
httpd   14493 root  mem    REG              253,0     7040 100993455 /usr/lib64/httpd/modules/mod_authz_user.so
httpd   14493 root  mem    REG              253,0    11144 100993454 /usr/lib64/httpd/modules/mod_authz_owner.so
httpd   14493 root  mem    REG              253,0    11200 100993453 /usr/lib64/httpd/modules/mod_authz_host.so
httpd   14493 root  mem    REG              253,0    11200 100993452 /usr/lib64/httpd/modules/mod_authz_groupfile.so
httpd   14493 root  mem    REG              253,0    11216 100993451 /usr/lib64/httpd/modules/mod_authz_dbm.so
httpd   14493 root  mem    REG              253,0    15304 100993450 /usr/lib64/httpd/modules/mod_authz_dbd.so
httpd   14493 root  mem    REG              253,0    23752 100993449 /usr/lib64/httpd/modules/mod_authz_core.so
httpd   14493 root  mem    REG              253,0    19552 100993448 /usr/lib64/httpd/modules/mod_authn_socache.so
httpd   14493 root  mem    REG              253,0    11176 100993447 /usr/lib64/httpd/modules/mod_authn_file.so
httpd   14493 root  mem    REG              253,0    11200 100993446 /usr/lib64/httpd/modules/mod_authn_dbm.so
httpd   14493 root  mem    REG              253,0    15272 100993445 /usr/lib64/httpd/modules/mod_authn_dbd.so
httpd   14493 root  mem    REG              253,0    15376 100993444 /usr/lib64/httpd/modules/mod_authn_core.so
httpd   14493 root  mem    REG              253,0    11160 100993443 /usr/lib64/httpd/modules/mod_authn_anon.so
httpd   14493 root  mem    REG              253,0    36088 100993442 /usr/lib64/httpd/modules/mod_auth_digest.so
httpd   14493 root  mem    REG              253,0    15336 100993441 /usr/lib64/httpd/modules/mod_auth_basic.so
httpd   14493 root  mem    REG              253,0    11152 100993439 /usr/lib64/httpd/modules/mod_allowmethods.so
httpd   14493 root  mem    REG              253,0    15376 100993438 /usr/lib64/httpd/modules/mod_alias.so
httpd   14493 root  mem    REG              253,0    11176 100993437 /usr/lib64/httpd/modules/mod_actions.so
httpd   14493 root  mem    REG              253,0    11232 100993436 /usr/lib64/httpd/modules/mod_access_compat.so
httpd   14493 root  mem    REG              253,0    11448  33561681 /usr/lib64/libfreebl3.so
httpd   14493 root  mem    REG              253,0    20112  33565434 /usr/lib64/libuuid.so.1.3.0
httpd   14493 root  mem    REG              253,0  2156240  33555827 /usr/lib64/libc-2.17.so
httpd   14493 root  mem    REG              253,0    19248  33555833 /usr/lib64/libdl-2.17.so
httpd   14493 root  mem    REG              253,0   142144  33555853 /usr/lib64/libpthread-2.17.so
httpd   14493 root  mem    REG              253,0   198704  33555956 /usr/lib64/libapr-1.so.0.4.8
httpd   14493 root  mem    REG              253,0  1850464  33565441 /usr/lib64/libdb-5.3.so
httpd   14493 root  mem    REG              253,0   173320  33600743 /usr/lib64/libexpat.so.1.6.0
httpd   14493 root  mem    REG              253,0    40600  33555831 /usr/lib64/libcrypt-2.17.so
httpd   14493 root  mem    REG              253,0   172288  33555958 /usr/lib64/libaprutil-1.so.0.5.2
httpd   14493 root  mem    REG              253,0   155784  33565293 /usr/lib64/libselinux.so.1
httpd   14493 root  mem    REG              253,0   402384  33565277 /usr/lib64/libpcre.so.1.2.0
httpd   14493 root  mem    REG              253,0   163312  33554509 /usr/lib64/ld-2.17.so
httpd   14493 root  DEL    REG                0,4            1019364 /dev/zero
httpd   14493 root  DEL    REG                0,4              98304 /SYSV72138de1
httpd   14493 root    0r   CHR                1,3      0t0      5334 /dev/null
httpd   14493 root    1u  unix 0xffff9612b5c4f000      0t0   1019324 socket
httpd   14493 root    2w   REG              253,0     6879    442009 /var/log/httpd/error_log
httpd   14493 root    3u  sock                0,7      0t0   1019333 protocol: TCP
httpd   14493 root    4u  IPv6            1019334      0t0       TCP *:http (LISTEN)
httpd   14493 root    5r  FIFO                0,9      0t0   1019360 pipe
httpd   14493 root    6w  FIFO                0,9      0t0   1019360 pipe
httpd   14493 root    7w   REG              253,0    18778    442010 /var/log/httpd/access_log

列出多个进程PID所打开的文件信息

[root@localhost ~]# pidof httpd
14498 14497 14496 14495 14494 14493
[root@localhost ~]# lsof -p 14498,14497,14496,14495,14494,14493
COMMAND   PID   USER   FD      TYPE             DEVICE SIZE/OFF      NODE NAME
httpd   14493   root  cwd       DIR              253,0      224        64 /
httpd   14493   root  rtd       DIR              253,0      224        64 /
httpd   14493   root  txt       REG              253,0   523608  33597695 /usr/sbin/httpd
httpd   14493   root  mem       REG              253,0    61560  33555845 /usr/lib64/libnss_files-2.17.so
httpd   14493   root  mem       REG              253,0    27720 100993461 /usr/lib64/httpd/modules/mod_cgi.so
httpd   14493   root  mem       REG              253,0    68192  33565440 /usr/lib64/libbz2.so.1.0.6
httpd   14493   root  mem       REG              253,0   157424  33565432 /usr/lib64/liblzma.so.5.2.2
httpd   14493   root  mem       REG              253,0   100008  33565453 /usr/lib64/libelf-0.172.so
httpd   14493   root  mem       REG              253,0    19896  33565264 /usr/lib64/libattr.so.1.1.0
httpd   14493   root  mem       REG              253,0    88776  33554592 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
httpd   14493   root  mem       REG              253,0   330464  33602752 /usr/lib64/libdw-0.172.so
httpd   14493   root  mem       REG              253,0    20032  33565268 /usr/lib64/libcap.so.2.22
httpd   14493   root  mem       REG              253,0    43712  33555857 /usr/lib64/librt-2.17.so
httpd   14493   root  mem       REG              253,0    28128  33602757 /usr/lib64/libsystemd-daemon.so.0.0.12
httpd   14493   root  mem       REG              253,0    11128 100664212 /usr/lib64/httpd/modules/mod_systemd.so
httpd   14493   root  mem       REG              253,0    19360 100664194 /usr/lib64/httpd/modules/mod_proxy_wstunnel.so
httpd   14493   root  mem       REG              253,0    19464 100664193 /usr/lib64/httpd/modules/mod_proxy_scgi.so
httpd   14493   root  mem       REG              253,0    39960 100664192 /usr/lib64/httpd/modules/mod_proxy_http.so
httpd   14493   root  mem       REG              253,0    44192 100664191 /usr/lib64/httpd/modules/mod_proxy_ftp.so
httpd   14493   root  mem       REG              253,0    11160 100664190 /usr/lib64/httpd/modules/mod_proxy_fdpass.so
...

列出除了某进程外,其它进程打开的文件信息

[root@localhost ~]# lsof -p ^14498
COMMAND     PID   TID    USER   FD      TYPE             DEVICE  SIZE/OFF       NODE NAME
systemd       1          root  cwd       DIR              253,0       224         64 /
systemd       1          root  rtd       DIR              253,0       224         64 /
systemd       1          root  txt       REG              253,0   1616360      28617 /usr/lib/systemd/systemd
systemd       1          root  mem       REG              253,0     20112   33565434 /usr/lib64/libuuid.so.1.3.0
systemd       1          root  mem       REG              253,0    265624   33565438 /usr/lib64/libblkid.so.1.1.0
systemd       1          root  mem       REG              253,0     90248   33562302 /usr/lib64/libz.so.1.2.7
systemd       1          root  mem       REG              253,0    157424   33565432 /usr/lib64/liblzma.so.5.2.2
...

列出所有网络连接信息

[root@localhost ~]# lsof -i 
COMMAND    PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd      4563   root    3u  IPv4 1108767      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52059 (ESTABLISHED)
chronyd   5573 chrony    1u  IPv4   30342      0t0  UDP localhost:323 
chronyd   5573 chrony    2u  IPv6   30343      0t0  UDP localhost:323 
dhclient  5913   root    7u  IPv4  221627      0t0  UDP *:bootpc 
sshd      5994   root    3u  IPv4   33212      0t0  TCP *:ssh (LISTEN)
sshd      5994   root    4u  IPv6   33222      0t0  TCP *:ssh (LISTEN)
sshd      6177   root    3u  IPv4  586534      0t0  TCP localhost.localdomain:ssh->192.168.248.16:51235 (ESTABLISHED)
master    6561   root   13u  IPv4   34525      0t0  TCP localhost:smtp (LISTEN)
master    6561   root   14u  IPv6   34526      0t0  TCP localhost:smtp (LISTEN)
httpd    14493   root    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd    14494 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd    14495 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd    14496 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd    14497 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd    14498 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
dhclient 16229   root    6u  IPv4   43966      0t0  UDP *:bootpc 
sshd     21803   root    3u  IPv4 1047169      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52042 (ESTABLISHED)
sshd     29553   root    3u  IPv4 1078041      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52054 (ESTABLISHED)

列出所有tcp网络连接信息

[root@localhost ~]# lsof -i tcp
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     4563   root    3u  IPv4 1108767      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52059 (ESTABLISHED)
sshd     5994   root    3u  IPv4   33212      0t0  TCP *:ssh (LISTEN)
sshd     5994   root    4u  IPv6   33222      0t0  TCP *:ssh (LISTEN)
sshd     6177   root    3u  IPv4  586534      0t0  TCP localhost.localdomain:ssh->192.168.248.16:51235 (ESTABLISHED)
master   6561   root   13u  IPv4   34525      0t0  TCP localhost:smtp (LISTEN)
master   6561   root   14u  IPv6   34526      0t0  TCP localhost:smtp (LISTEN)
httpd   14493   root    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14494 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14495 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14496 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14497 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14498 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
sshd    21803   root    3u  IPv4 1047169      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52042 (ESTABLISHED)
sshd    29553   root    3u  IPv4 1078041      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52054 (ESTABLISHED)

列出所有udp网络连接信息

[root@localhost ~]# lsof -i udp
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
chronyd   5573 chrony    1u  IPv4  30342      0t0  UDP localhost:323 
chronyd   5573 chrony    2u  IPv6  30343      0t0  UDP localhost:323 
dhclient  5913   root    7u  IPv4 221627      0t0  UDP *:bootpc 
dhclient 16229   root    6u  IPv4  43966      0t0  UDP *:bootpc

列出谁在使用某端口

[root@localhost ~]# lsof -i :22
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     4563 root    3u  IPv4 1108767      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52059 (ESTABLISHED)
sshd     5994 root    3u  IPv4   33212      0t0  TCP *:ssh (LISTEN)
sshd     5994 root    4u  IPv6   33222      0t0  TCP *:ssh (LISTEN)
sshd     6177 root    3u  IPv4  586534      0t0  TCP localhost.localdomain:ssh->192.168.248.16:51235 (ESTABLISHED)
sshd    21803 root    3u  IPv4 1047169      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52042 (ESTABLISHED)
sshd    29553 root    3u  IPv4 1078041      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52054 (ESTABLISHED)

列出谁在使用特定协议端口

[root@localhost ~]# lsof -i tcp:80
COMMAND   PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
httpd   14493   root    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14494 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14495 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14496 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14497 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
httpd   14498 apache    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)

列出某个用户的所有活跃网络接口

[root@localhost ~]# lsof -a -u root -i
COMMAND    PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd      4563 root    3u  IPv4 1108767      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52059 (ESTABLISHED)
dhclient  5913 root    7u  IPv4  221627      0t0  UDP *:bootpc 
sshd      5994 root    3u  IPv4   33212      0t0  TCP *:ssh (LISTEN)
sshd      5994 root    4u  IPv6   33222      0t0  TCP *:ssh (LISTEN)
sshd      6177 root    3u  IPv4  586534      0t0  TCP localhost.localdomain:ssh->192.168.248.16:51235 (ESTABLISHED)
master    6561 root   13u  IPv4   34525      0t0  TCP localhost:smtp (LISTEN)
master    6561 root   14u  IPv6   34526      0t0  TCP localhost:smtp (LISTEN)
httpd    14493 root    4u  IPv6 1019334      0t0  TCP *:http (LISTEN)
dhclient 16229 root    6u  IPv4   43966      0t0  UDP *:bootpc 
sshd     21803 root    3u  IPv4 1047169      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52042 (ESTABLISHED)
sshd     29553 root    3u  IPv4 1078041      0t0  TCP localhost.localdomain:ssh->192.168.248.17:52054 (ESTABLISHED)

搜索

find

find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。

-exec find命令对匹配的文件执行该参数所给出的其他linux命令。相应命令的形式为' 命令 - and' {} \;,注意{ }和\;之间的空格。
-ok 和- exec的作用相同,只不过和会人交互而已,OK执行前会向你确认是不是要执行。
find命令主要参数:
-name 按照文件名查找文件。
-perm 按照文件权限来查找文件。
-prune 使用这一选项可以使find命令不在当前指定的目录中查找,如果同时使用了- depth选项,那么-prune选项将被find命令忽略。
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-mtime -n +n 按照文件的更改时间来查找文件, -n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime和-ctime选项,但它们都和-mtime选项
相似,所以我们在这里只介绍-mtime选项。
-nogroup 查找无有效所属组的文件,即该文件所属的组在/etc/groups中不存在。
-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在。
-newer file1 ! file2 查找更改时间比文件file1新但比文件file2旧的文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
-size n[cwbkMG] : 文件大小 为 n 个由后缀决定的数据块。其中后缀为:
b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
c: 表示字节数
k: 表示 kilo bytes (1024字节)
w: 字 (2字节)
M:兆字节(1048576字节)
G: 千兆字节 (1073741824字节)
-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子目录中查找。
-delete (删除)
-maxdepth 查找最大目录层数 如 1,即只查找一层目录
-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件
/etc/fstab中找到,该配置文件中包含了本系统中有关文件系统的信息。
-mount 在查找文件时不跨越文件系统mount点。
-follow 如果find命令遇到符号链接文件,就跟踪至链接所指向的文件。
-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中。
-o 是或者的意思
-a 是而且的意思
-not 是相反的意思

列出指定目录下的文件和文件夹

[root@localhost ~]# find /etc/sysconfig/network-scripts
/etc/sysconfig/network-scripts
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifdown
/etc/sysconfig/network-scripts/ifdown-bnep
/etc/sysconfig/network-scripts/ifdown-eth
/etc/sysconfig/network-scripts/ifdown-ippp
/etc/sysconfig/network-scripts/ifdown-ipv6
/etc/sysconfig/network-scripts/ifdown-isdn
/etc/sysconfig/network-scripts/ifdown-post
/etc/sysconfig/network-scripts/ifdown-ppp
/etc/sysconfig/network-scripts/ifdown-routes
/etc/sysconfig/network-scripts/ifdown-sit
/etc/sysconfig/network-scripts/ifdown-tunnel
/etc/sysconfig/network-scripts/ifup
/etc/sysconfig/network-scripts/ifup-aliases
/etc/sysconfig/network-scripts/ifup-bnep
/etc/sysconfig/network-scripts/ifup-eth
/etc/sysconfig/network-scripts/ifup-ippp
/etc/sysconfig/network-scripts/ifup-ipv6
/etc/sysconfig/network-scripts/ifup-isdn
/etc/sysconfig/network-scripts/ifup-plip
/etc/sysconfig/network-scripts/ifup-plusb
/etc/sysconfig/network-scripts/ifup-post
/etc/sysconfig/network-scripts/ifup-ppp
/etc/sysconfig/network-scripts/ifup-routes
/etc/sysconfig/network-scripts/ifup-sit
/etc/sysconfig/network-scripts/ifup-tunnel
/etc/sysconfig/network-scripts/ifup-wireless
/etc/sysconfig/network-scripts/init.ipv6-global
/etc/sysconfig/network-scripts/network-functions
/etc/sysconfig/network-scripts/network-functions-ipv6
/etc/sysconfig/network-scripts/ifdown-Team
/etc/sysconfig/network-scripts/ifdown-TeamPort
/etc/sysconfig/network-scripts/ifup-Team
/etc/sysconfig/network-scripts/ifup-TeamPort
/etc/sysconfig/network-scripts/ifcfg-ens192

查找以.repo 结尾的文件名

[root@localhost ~]# find /etc/yum.repos.d -name "*.repo"
/etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-CR.repo
/etc/yum.repos.d/CentOS-Debuginfo.repo
/etc/yum.repos.d/CentOS-Media.repo
/etc/yum.repos.d/CentOS-Sources.repo
/etc/yum.repos.d/CentOS-Vault.repo
/etc/yum.repos.d/CentOS-fasttrack.repo

忽略大小写

[root@localhost ~]# find ./ -name '*.py'
./test.py
[root@localhost ~]# find ./ -iname '*.py'
./test.py
./hello.PY

在当前目录和子目录下查找.ini.log结尾的文件

[root@localhost ~]# find ./ -name '*.ini' -o -name '*.log'
./config.ini
./tcpdump.log
./files/access.log

匹配文件或路径

[root@localhost ~]# find / -path '*local*'
/boot/grub2/locale
/boot/grub2/locale/ast.mo
/boot/grub2/locale/ca.mo
/boot/grub2/locale/da.mo
/boot/grub2/locale/de.mo
/boot/grub2/locale/de@hebrew.mo
/boot/grub2/locale/de_CH.mo
/boot/grub2/locale/en@arabic.mo
/boot/grub2/locale/en@cyrillic.mo
/boot/grub2/locale/en@greek.mo
/boot/grub2/locale/en@hebrew.mo
/boot/grub2/locale/en@piglatin.mo
/boot/grub2/locale/en@quot.mo
/boot/grub2/locale/eo.mo
/boot/grub2/locale/es.mo
/boot/grub2/locale/fi.mo
/boot/grub2/locale/fr.mo
/boot/grub2/locale/gl.mo
/usr/local/share/info
/usr/local/share/man
/usr/local/share/man/man1
/usr/local/share/man/man1x
/usr/local/share/man/man2
/usr/local/share/man/man2x
/usr/local/share/man/man3
/usr/local/share/man/man3x
/usr/local/share/man/man4
/usr/local/share/man/man4x
/usr/local/share/man/man5
/usr/local/share/man/man5x
/usr/local/share/man/man6
/usr/local/share/man/man6x
/usr/local/share/man/man7
/usr/local/share/man/man7x
/usr/local/share/man/man8
/usr/local/share/man/man8x
/usr/local/share/man/man9
/usr/local/share/man/man9x
/usr/local/share/man/mann
/usr/local/src
/usr/local/mysql
/usr/local/nginx
/usr/local/redis
/usr/local/python
...

查找当前目录不是以.log文件结尾的文件

[root@localhost ~]# find ./ ! -name "*.log"
./
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./.bash_history
./.bashrc
./.lesshst
./test.py
./.viminfo
./config.ini
./.finalshellc
./.finalshellc/ssout1_m7zvz
./.finalshellc/ssout1_m7zvz.tar.gz
./.finalshellc/ssout2_m7zvz
./.finalshellc/ssout2_m7zvz.tar.gz
./.finalshellc/nsout_m7zvz
./.finalshellc/nsout_m7zvz.tar.gz
./hello.PY
./files

查找当前目录下不是.log.py .PY结尾的文件

[root@localhost ~]# find ./ ! -name "*.log" -a ! -iname '*.py'
./
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./.bash_history
./.bashrc
./.lesshst
./.viminfo
./config.ini
./.finalshellc
./.finalshellc/ssout1_m7zvz
./.finalshellc/ssout1_m7zvz.tar.gz
./.finalshellc/ssout2_m7zvz
./.finalshellc/ssout2_m7zvz.tar.gz
./.finalshellc/nsout_m7zvz
./.finalshellc/nsout_m7zvz.tar.gz
./files

根据文件类型搜索

  • f 普通文件
  • l 符号连接
  • d 目录
  • c 字符设备
  • b 块设备
  • s 套接字
  • p Fifo
[root@localhost ~]# find /root -type d
/root
/root/.finalshellc
/root/files
[root@localhost ~]# find /root -type f
/root/.bash_logout
/root/.bash_profile
/root/.cshrc
/root/.tcshrc
/root/.bash_history
/root/.bashrc
/root/.lesshst
/root/test.py
/root/.viminfo
/root/config.ini
/root/tcpdump.log
/root/.finalshellc/ssout1_m7zvz
/root/.finalshellc/ssout1_m7zvz.tar.gz
/root/.finalshellc/ssout2_m7zvz
/root/.finalshellc/ssout2_m7zvz.tar.gz
/root/.finalshellc/nsout_m7zvz
/root/.finalshellc/nsout_m7zvz.tar.gz
/root/hello.PY
/root/files/access.log

根据文件时间戳进行搜索

UNIX/Linux文件系统每个文件都有三种时间戳:
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。

搜索2天内被访问过的所有文件

[root@localhost ~]# find . -type f -atime -2
./.bash_logout
./.bash_profile
./.bash_history
./.bashrc
./test.py
./.viminfo
./config.ini
./tcpdump.log
./.finalshellc/ssout1_m7zvz
./.finalshellc/ssout1_m7zvz.tar.gz
./.finalshellc/ssout2_m7zvz
./.finalshellc/ssout2_m7zvz.tar.gz
./.finalshellc/nsout_m7zvz
./.finalshellc/nsout_m7zvz.tar.gz
./hello.PY
./files/access.log

搜索2天前的那天被访问的文件

[root@localhost ~]# find . -type f -atime 2

搜索访问时间超过3分钟的文件

[root@localhost ~]# find . -type f -amin +3
./.bash_logout
./.bash_profile
./.cshrc
./.tcshrc
./.bash_history
./.bashrc
./.lesshst
./test.py
./.viminfo
./config.ini
./tcpdump.log
./.finalshellc/ssout1_m7zvz
./.finalshellc/ssout1_m7zvz.tar.gz
./.finalshellc/ssout2_m7zvz
./.finalshellc/ssout2_m7zvz.tar.gz
./.finalshellc/nsout_m7zvz
./.finalshellc/nsout_m7zvz.tar.gz
./hello.PY
./files/access.log

根据文件大小进行匹配

文件大小单元:

b —— 块(512字节)
c —— 字节
w —— 字(2字节)
k —— 千字节
M —— 兆字节
G —— 吉字节

搜索大于100M的文件

[root@localhost ~]# find / -type f -size +100M
/proc/kcore
find: ‘/proc/24958’: 没有那个文件或目录
find: ‘/proc/24967’: 没有那个文件或目录
find: ‘/proc/24972’: 没有那个文件或目录
find: ‘/proc/24981’: 没有那个文件或目录
find: ‘/proc/24983/task/24983/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/24983/fdinfo/5’: 没有那个文件或目录
/sys/devices/pci0000:00/0000:00:0f.0/resource1_wc
/sys/devices/pci0000:00/0000:00:0f.0/resource1
/usr/lib/locale/locale-archive

搜索文件小于1k的

[root@localhost ~]# find ./ -type f -size -1k
./config.ini
./hello.PY
./files/access.log

搜索文件等于102M的

[root@localhost ~]# find /usr/lib/locale -type f -size 102M
/usr/lib/locale/locale-archive

根据文件权限搜索

[root@localhost ~]# ls -lh
总用量 8.0K
-rw-r--r--. 1 root    root     0 6月  13 07:17 config.ini
drwxr-xr-x. 2 root    root    24 6月  13 11:07 files
-rw-r--r--. 1 root    root     0 6月  13 11:04 hello.PY
-rw-r--r--. 1 tcpdump tcpdump 24 6月  13 09:40 tcpdump.log
-rw-r--r--. 1 root    root    68 6月  13 07:17 test.py
[root@localhost ~]# find ./ -type d -perm 755
./.finalshellc
./files

查找某目录中某用户所拥有的文件

[root@localhost ~]# find / -type f -user ryan
/home/ryan/.bash_logout
/home/ryan/.bash_profile
/home/ryan/.bashrc
/var/spool/mail/ryan

查找某目录中某用户组所拥有的文件

[root@localhost ~]# find / -type f -group ryan
/home/ryan/.bash_logout
/home/ryan/.bash_profile
/home/ryan/.bashrc

借助-exec 选项与其他命令结合使用

找出自己家目录下所有的.txt文件并显示详情

[root@localhost ~]# find $HOME -name '*.log' -exec ls -lh {} \;
-rw-r--r--. 1 tcpdump tcpdump 24 6月  13 09:40 /root/tcpdump.log
-rw-r--r--. 1 root root 0 6月  13 11:07 /root/files/access.log

.py结尾的文件复制到opt目录中

[root@localhost ~]# find ./ -name '*.py' -exec cp -r {} /opt \;
[root@localhost ~]# ls /opt
test.py

which

which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。


whereis

whereis命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。


locate

locate命令slocate命令都用来查找文件或目录。


环境变量

直接运行命令
export PATH=$PATH:/usr/local/python3/bin
使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH 设置就会失效,只是临时生效。

/etc/profile
文件是bash shell默认的主启动文件。只要你登录了Linux系统,bash就会执行/etc/profile启动文件的命令。

~/.bash_profile 或.profile
每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。

~/.bashrc
该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。

/etc/bashrc
为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
shell会按照下列顺序,运行第一个找到的文件,余下被忽略:
$HOME/.bash_profile
$HOME/.bash_login
$HOME/.profile
.bashrc通过.bash_profile来调用。

.

source


防火墙

firewalld

iptables

iptables 是Linux上常用的防火墙软件,是netfilter项目的一部分。可以直接配置,也可以通过许多前端和图形界面配置。

-t<表>:指定要操纵的表;
-A:向规则链中添加条目;
-D:从规则链中删除条目;
-i:向规则链中插入条目;
-R:替换规则链中的条目;
-L:显示规则链中已有的条目;
-F:清楚规则链中已有的条目;
-Z:清空规则链中的数据包计算器和字节计数器;
-N:创建新的用户自定义规则链;
-P:定义规则链中的默认目标;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型;
-s:指定要匹配的数据包源ip地址;
-j<目标>:指定要跳转的目标;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

4表5链

raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
net:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)

动作

accept:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT),用于ADSL。
LOG:日志记录。

清除已有规则

iptables -F
iptables -X
iptables -Z

开放指定端口

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT               #允许本地回环接口(即运行本机访问本机)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT    #允许已建立的或相关连的通行
iptables -A OUTPUT -j ACCEPT         #允许所有本机向外的访问
iptables -A INPUT -p tcp --dport 22 -j ACCEPT    #允许访问22端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT    #允许访问80端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT    #允许ftp服务的21端口
iptables -A INPUT -p tcp --dport 20 -j ACCEPT    #允许FTP服务的20端口
iptables -A INPUT -j reject       #禁止其他未允许的规则访问
iptables -A FORWARD -j REJECT     #禁止其他未允许的规则访问

屏蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP    #封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 123.45.6.0/24 -j DROP    #封IP段即从123.45.6.1到123.45.6.254的命令是

将所有iptables以序号标记显示

iptables -L -n --line-numbers

删除INPUT里序号为3的规则

iptables -D INPUT 3

软件安装

rpm

rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

-a:查询所有套件;
-b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称;
-c:只列出组态配置文件,本参数需配合"-l"参数使用;
-d:只列出文本文件,本参数需配合"-l"参数使用;
-e<套件档>或--erase<套件档>:删除指定的套件;
-f<文件>+:查询拥有指定文件的套件;
-h或--hash:套件安装时列出标记;
-i:显示套件的相关信息;
-i<套件档>或--install<套件档>:安装指定的套件档;
-l:显示套件的文件列表;
-p<套件档>+:查询指定的RPM套件档;
-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
-R:显示套件的关联性信息;
-s:显示文件状态,本参数需配合"-l"参数使用;
-U<套件档>或--upgrade<套件档>:升级指定的套件档;
-v:显示指令执行过程;
-vv:详细显示指令执行过程,便于排错。

安装rpm包存在依赖关系问题

[root@localhost ~]# rpm -ivh lrzsz-0.12.21-28-omv4002.aarch64.rpm 
警告:lrzsz-0.12.21-28-omv4002.aarch64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID bf81de15: NOKEY
错误:依赖检测失败:
        ld-linux-aarch64.so.1()(64bit) 被 lrzsz-0.12.21-28.aarch64 需要
        ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) 被 lrzsz-0.12.21-28.aarch64 需要
        rpmlib(PayloadIsZstd) <= 5.4.18-1 被 lrzsz-0.12.21-28.aarch64 需要

rpm 包操作命令

rpm -ivh rpm包名	# 安装
rpm -Uvh rpm包名	# 升级
rpm -qpi rpm包名	# 查询软件描述信息
rpm -qpl rpm包名	# 列出软件文件信息
rpm -qf	软件名称	 # 查询文件属于哪个RPM包
rpm -ql 软件名称	# 列出软件包安装的文件列表

[root@localhost ~]# rpm -qf /usr/sbin/ifconfig 
net-tools-2.0-0.25.20131004git.el7.x86_64

[root@localhost ~]# rpm -ql nginx
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
/etc/nginx/fastcgi.conf.default
/etc/nginx/fastcgi_params
/etc/nginx/fastcgi_params.default
/etc/nginx/koi-utf
/etc/nginx/koi-win
/etc/nginx/mime.types
/etc/nginx/mime.types.default
/etc/nginx/nginx.conf
/etc/nginx/nginx.conf.default
/etc/nginx/scgi_params
/etc/nginx/scgi_params.default
/etc/nginx/uwsgi_params
/etc/nginx/uwsgi_params.default
/etc/nginx/win-utf
/usr/bin/nginx-upgrade
/usr/lib/systemd/system/nginx.service
/usr/lib64/nginx/modules
/usr/sbin/nginx
/usr/share/doc/nginx-1.16.1
/usr/share/doc/nginx-1.16.1/CHANGES
/usr/share/doc/nginx-1.16.1/README
/usr/share/doc/nginx-1.16.1/README.dynamic
/usr/share/doc/nginx-1.16.1/UPGRADE-NOTES-1.6-to-1.10
/usr/share/licenses/nginx-1.16.1
/usr/share/licenses/nginx-1.16.1/LICENSE
/usr/share/man/man3/nginx.3pm.gz
/usr/share/man/man8/nginx-upgrade.8.gz
/usr/share/man/man8/nginx.8.gz
/usr/share/nginx/html/index.html
/var/lib/nginx
/var/lib/nginx/tmp
/var/log/nginx


# 组合查看
[root@localhost ~]# rpm -qf `which nginx`
nginx-1.16.1-2.el7.x86_64

yum

yum 命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

-h:显示帮助信息;
-y:对所有的提问都回答“yes”;
-c:指定配置文件;
-q:安静模式;
-v:详细模式;
-d:设置调试等级(0-10);
-e:设置错误等级(0-10);
-R:设置yum处理一个命令的最大等待时间;
-C:完全从缓存中运行,而不去下载或者更新任何头文件。

install:安装rpm软件包;
update:更新rpm软件包;
check-update:检查是否有可用的更新rpm软件包;
remove:删除指定的rpm软件包;
list:显示软件包的信息;
search:检查软件包的信息;
info:显示指定的rpm软件包的描述信息和概要信息;
clean:清理yum过期的缓存;
shell:进入yum的shell提示符;
resolvedep:显示rpm软件包的依赖关系;
localinstall:安装本地的rpm软件包;
localupdate:显示本地rpm软件包进行更新;
deplist:显示rpm软件包的所有依赖关系。

安装

yum install package1     # 安装指定的安装包package1
yum groupinsall group1   # 安装程序组group1

升级

yum update               # 全部更新
yum update package1      # 更新指定程序包package1
yum check-update         # 检查可更新的程序
yum upgrade package1     # 升级指定程序包package1
yum groupupdate group1   # 升级程序组group1

查找

yum info package1      # 显示安装包信息package1
yum list               # 显示所有已经安装和可以安装的程序包
yum list package1      # 显示指定程序包安装情况package1
yum groupinfo group1   # 显示程序组group1信息yum search string 根据关键字string查找安装包

卸载删除

yum remove package1   			# 删除程序包package1
yum groupremove group1      # 删除程序组group1
yum deplist package1        # 查看程序package1依赖情况

清除缓存

yum clean packages       # 清除缓存目录下的软件包
yum clean headers        # 清除缓存目录下的 headers
yum clean oldheaders     # 清除缓存目录下旧的 headers
yum clean all 					 # 清楚所有缓存
yum makecache   				 # 建立新缓存, 提升搜索速度,但是安装还是需要网络

yum的配置文件

/etc/yum.conf

[root@localhost etc]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release


#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

编译安装

configure
make
make install

系统资源

内存查看

磁盘查看

CPU查看

网络查看


服务

service

service 命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。

[root@localhost ~]# service httpd status
Redirecting to /bin/systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2020-06-13 07:08:30 EDT; 1 day 7h ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 14493 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─14493 /usr/sbin/httpd -DFOREGROUND
           ├─21927 /usr/sbin/httpd -DFOREGROUND
           ├─21930 /usr/sbin/httpd -DFOREGROUND
           ├─21931 /usr/sbin/httpd -DFOREGROUND
           ├─21934 /usr/sbin/httpd -DFOREGROUND
           └─21935 /usr/sbin/httpd -DFOREGROUND

6月 13 07:08:29 localhost.localdomain systemd[1]: Stopped The Apache HTTP Server.
6月 13 07:08:29 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
6月 13 07:08:30 localhost.localdomain httpd[14493]: AH00558: httpd: Could not reliably determine the server...sage
6月 13 07:08:30 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
6月 14 03:10:01 localhost.localdomain systemd[1]: Reloading The Apache HTTP Server.
6月 14 03:10:01 localhost.localdomain httpd[21913]: AH00558: httpd: Could not reliably determine the server...sage
6月 14 03:10:01 localhost.localdomain systemd[1]: Reloaded The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# service httpd stop
Redirecting to /bin/systemctl stop httpd.service
[root@localhost ~]# service httpd start
Redirecting to /bin/systemctl start httpd.service

systemctl

systemctl命令是系统服务管理器指令,它实际上将 servicechkconfig 这两个命令组合到一起。

任务 旧指令 新指令
使某服务自动启动 chkconfig --level 3 httpd on systemctl enable httpd.service
使某服务不自动启动 chkconfig --level 3 httpd off systemctl disable httpd.service
检查服务状态 service httpd status systemctl status httpd.service (服务详细信息) systemctl is-active httpd.service (仅显示是否 Active)
显示所有已启动的服务 chkconfig --list systemctl list-units --type=service
启动某服务 service httpd start systemctl start httpd.service
停止某服务 service httpd stop systemctl stop httpd.service
重启某服务 service httpd restart systemctl restart httpd.service

常用

密钥登录

免密登录

禁止ROOT远程登录

修改远程端口

静态IP

中英文

export LC_ALL=en_US.UTF-8
export LC_ALL=zh_CN.UTF-8

任务计划

at

crontab

开机启动

守护进程

supervisor

nohup

优化

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者 (1)

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/develop1024/linux.git
git@gitee.com:develop1024/linux.git
develop1024
linux
linux
master

搜索帮助