Linux系统之基础扫盲教程大全

序言

如果大家都爱装逼,一般会偏爱使用安装最小化的liunx系统,那么你的系统就不带图形化的桌面功能,这样对于一个想装B的初学者来说,Liunx就是黑漆马虎,一望无际的黑屏,黑屏,如何快速的对liunx系统有个较为全面基础的认识呢?答:继续往下读,哈哈。

本篇目的就是让大家对linux系统有个全面的基础认知。

主要内容:网络,系统,cpu,内存,硬盘,进程等等常用的基础信息查看与基础功能设置。

Linux系统时间相关

查看系统当前时间

[root@zlhpc ~]# date
2017年 02月 09日 星期四 03:20:45 CST

修改时间

[root@zlhpc sysconfig]# date -s "2016-02-09 15:15:00"
2016年 02月 09日 星期二 15:15:00 CST
[root@zlhpc sysconfig]# date
2016年 02月 09日 星期二 15:15:05 CST

同步网路时间

[root@zlhpc sysconfig]# ntpdate -u ntp.api.bz
 9 Feb 15:56:21 ntpdate[4132]: step time server 17.253.68.253 offset 31624839.558211 sec
[root@zlhpc sysconfig]# date
2017年 02月 09日 星期四 15:56:27 CST

note1:ntp是网络时间协议,主要用作同步计算机时间与服务器时间一致的。常见的ntp服务器有:210.72.145.44(国家授时中心服务器地址),ntp.api.bz(上海),time.nist.gov(美国),ntp.fudan.edu.cn(复旦),s1b.time.edu.cn(清华大学),等等。

note2:date命令设置时间只有超级用户才有,一般用户只能查看,且修改玩之后要记得执行clock -w 命令,把系统时间写入CMOS中。

Linux系统主机名与操作系统相关信息

显示系统主机名

[root@zlhpc sysconfig]# hostname
zlhpc

修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network,且修改完之后需重启机器生效且永久保存,使用hostname命令只能临时修改不能永久有效。

[root@zlhpc sysconfig]# vim /etc/hostname
  1. -v:详细信息模式;
  2. -a:显示主机别名;
  3. -d:显示DNS域名;
  4. -f:显示FQDN名称;
  5. -i:显示主机的ip地址;
  6. -s:显示短主机名称,在第一个点处截断;
  7. -y:显示NIS域名。

uname查看操作系统相关信息

[root@zlhpc /]# uname -a
Linux zlhpc 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

数据依次为:内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

参数如下

  • -m或–machine 显示主机的硬件(CPU)名
  • -n或-nodename 显示主机在网络节点上的名称或主机名称
  • -r或–release 显示linux操作系统内核版本号
  • -s或–sysname 显示linux内核名称
  • -v 显示显示操作系统是第几个 version 版本
  • -p 显示处理器类型或unknown
  • -i 显示硬件平台类型或unknown
  • -o 显示操作系统名
  • –help 获得帮助信息
  • –version 显示uname版本信息

其他几种出去啊看Linux版本信息的方法

[root@zlhpc /]# cat /proc/version
Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015
[root@zlhpc /]# cat /etc/issue
\S
Kernel \r on an \m

[root@zlhpc /]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Core

Linux系统查看cpu信息

 [root@zlhpc /]# grep "model name" /proc/cpuinfo #查看cpu信息
model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
[root@zlhpc /]# more /proc/cpuinfo #查看cpu信息
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model  : 60
model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
stepping : 3
microcode : 0x1e
cpu MHz  : 3591.678
cache size : 8192 KB
physical id : 0
siblings : 1
core id  : 0
cpu cores : 1
apicid  : 0
initial apicid : 0
fpu  : yes
fpu_exception : yes
cpuid level : 13
[root@zlhpc /]# getconf LONG_BIT #查看cpu位数
64

Linux系统用户与用户组

用户与组分类,根据帐号或组的位置都可以分为:本地帐号|组,远程(域)帐号|组 ,LDAP,NIS

根据帐号|组的功能分类可以分为:超级用户(root) uid:0 ,普通用户。普通用户又分为:系统帐号(uid范围:1-499,1-99:由distributions自行创建的系统帐号,100-499:若用户有系统帐号的需求时,可以使用的帐号uid)和可登录帐号(uid范围:500+)

关于系统用户和组的相关配置文件放在系统的一下文件中:

用户的帐号信息:/etc/passwd 用户的密码信息:/etc/shadow

用户组信息:/etc/group  组的密码信息:/etc/gshadow

那么下面我们一一打开这些文件来看看他们到底存放啦那些内容,格式是什么样的,我们又该怎么解读。

[root@zlhpc home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:998:996:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:996:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
chrony:x:995:993::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
rabbitmq:x:994:992:RabbitMQ messaging server:/var/lib/rabbitmq:/bin/bash
nginx:x:993:991:Nginx web server:/var/lib/nginx:/sbin/nologin

每一行都代表一个用户,每一行中的冒号(:)代表分割符,那我们拿第一行做一个解读,如下:

root:x:0:0:root:/root:/bin/bash

1.root:用户名
2.x:密码占位符
3.UID
4.GID
5.用户描述
6.用户主文件夹
7.登录后使用的shell./sbin/nologin此shell会让该用户无法登录。

查看系统中支持那些shell:

[root@zlhpc home]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

接下来我们看下用户关于密码的配置文件:

 [root@zlhpc home]# cat /etc/shadow
root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
adm:*:16659:0:99999:7:::
lp:*:16659:0:99999:7:::
sync:*:16659:0:99999:7:::
shutdown:*:16659:0:99999:7:::
halt:*:16659:0:99999:7:::
mail:*:16659:0:99999:7:::
operator:*:16659:0:99999:7:::
games:*:16659:0:99999:7:::
ftp:*:16659:0:99999:7:::
nobody:*:16659:0:99999:7:::
avahi-autoipd:!!:17203::::::
systemd-bus-proxy:!!:17203::::::
systemd-network:!!:17203::::::
dbus:!!:17203::::::
polkitd:!!:17203::::::
tss:!!:17203::::::
postfix:!!:17203::::::
sshd:!!:17203::::::
rpc:!!:17204:0:99999:7:::
abrt:!!:17204::::::
libstoragemgmt:!!:17204::::::
chrony:!!:17204::::::
ntp:!!:17204::::::
tcpdump:!!:17204::::::
rabbitmq:!!:17204::::::
nginx:!!:17204::::::

依然拿出第一行做一下解读:

代码如下:

root:$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//::0:99999:7:::

1.root:用户名
2.$6$zVDR2oO1Yg7alTbs$.70PPMYxg70k9BvLtjHdm94CDA1YWDRDI5NFzSfcmZF5WMESgIbLUdnqRjuVycg481Ny9rl//YzAFnXhurQi//:root用户用sha512加密过的用户密码
3.最近更改密码的日期,从19700101开始计算至修改密码那天的累积天数。
4.0:密码不能更改的天数,最近更改过后几年之后才能被再次更改,0表示可以随意随时修改。
5.99999:密码的过期时间,密码在多少天后必须被修改。
6.7:系统需要在密码过期的的前7天发出密码即将过期的警告。
7.宽限天数,密码过啦几天后还能修改密码。
8.帐号过期时间
9.保留字段,目前没有用到。

查看关于组的配置文件,如下:

[root@zlhpc home]# head -n 4 /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
root:x:0:

1.root:用户组名称
2.x:用户组密码的占位符
3.0:用户组的GID
4.此用户组支持的帐号名称。

接下来我们来看下帐号管理,关于帐号的增删改查操作

1、添加用户

[root@zlhpc home]# useradd zhanglonghao
[root@zlhpc home]# useradd zhanglonghao1

useradd (选项)(参数)

  • -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
  • -d<登入目录>:指定用户登入时的启始目录;
  • -D:变更预设值;
  • -e<有效期限>:指定帐号的有效期限;
  • -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
  • -g<群组>:指定用户所属的群组;
  • -G<群组>:指定用户所属的附加群组;
  • -m:自动建立用户的登入目录;
  • -M:不要自动建立用户的登入目录;
  • -n:取消建立以用户名称为名的群组;
  • -r:建立系统帐号;
  • -s:指定用户登入后所使用的shell;
  • -u:指定用户id。

修改用户信息,参数选项和添加一致。

[root@zlhpc home]# usermod zhanglonghao -u 1005
[root@zlhpc home]# id zhanglonghao
uid=1005(zhanglonghao) gid=1000(zhanglonghao) 组=1000(zhanglonghao)

删除用户

[root@zlhpc home]# userdel zhanglonghao2 -rf

userdel,参数如下:如果不加下面的参数进行直接删除,则用户删除,用户的目录与文件依旧保留。

  1. -f:强制删除用户,即使用户当前已登录;
  2. -r:删除用户的同时,删除与用户相关的所有文件。

把某个用户添加到哪个组中:示例把用户zhanglonghao添加到zhanglonghao1的组中,且也在原有的组中不被删除,这是必须加 -a意思是附加的意思,如下:

[root@zlhpc home]# usermod zhanglonghao -a -G zhanglonghao1
[root@zlhpc home]# groups zhanglonghao
zhanglonghao : zhanglonghao zhanglonghao1

id查看用户的id信息

[root@zlhpc home]# id zhanglonghao
uid=1005(zhanglonghao) gid=1000(zhanglonghao) 组=1000(zhanglonghao),1001(zhanglonghao1)

查看当前登录系统的用户信息

[root@zlhpc home]# who
root  pts/0  2017-02-12 15:01 (172.18.8.196)
[root@zlhpc home]# users
root
[root@zlhpc home]# id -un
root
[root@zlhpc home]# whoami
root
[root@zlhpc home]# who
root  pts/0  2017-02-12 15:01 (172.18.8.196)
[root@zlhpc home]# w
 16:51:15 up 1:50, 1 user, load average: 0.00, 0.01, 0.05
USER  TTY  FROM    LOGIN@ IDLE JCPU PCPU WHAT
root  pts/0 172.18.8.196  15:01 3.00s 0.44s 0.01s w

我们针对w这个命令做个解释

1.user:用户名
2.tty:用户的机器名或tty号
3.from:远程主机的地址
4.login@:用户登录系统的时间
5.idle:空闲时间
6.jcpu:附加到tty(终端)的进程所用的时间(JCPU时间)
7.pcpu:当前进程所用时间(PCPU时间)
8.what:用户当前正在使用的命令

参数为 -h :忽略头文件信息, -u:显示结果的加载时间 , -s :不显示JCPU,PCPU,登陆时间。

Liunx网络的基本操作

打开网页:curl

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

下载文件:wget

[root@zlhpc ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz

linux下的文本浏览器:w3m与links

[root@zlhpc ~]# w3m www.baidu.com
[root@zlhpc ~]# links www.baidu.com

检查你的网络与另外一台机器是否互通:ping

[root@zlhpc ~]# ping www.baidu.com

做路由图提供我们分析哪里出现故障或者是否存在网络拥塞情况:mtr

 [root@zlhpc ~]# mtr
[root@zlhpc ~]# mtr -r -c 30 www.baidu.com #每秒发送数据包的数量是30 ,mtr -r -c 30 -s 1024 www.baidu.com #ping包的大小为1024个字节
Start: Sun Feb 12 18:01:09 2017
HOST: zlhpc      Loss% Snt Last Avg Best Wrst StDev
 1.|-- ???      100.0 30 0.0 0.0 0.0 0.0 0.0
 2.|-- 116.236.169.77    0.0% 30 4179. 9116. 4179. 11973 2051.2
 3.|-- 124.74.124.165    0.0% 30 1.9 3.6 1.7 5.4 1.0
 4.|-- 124.74.210.101    0.0% 30 4.1 4.5 2.4 6.1 1.0
 5.|-- 59.43.77.141    0.0% 30 20.1 18.1 7.4 54.5 8.2
 6.|-- 59.43.80.94    0.0% 30 4.3 6.0 2.7 24.3 3.6
 7.|-- 202.97.26.2    86.7% 30 5.1 5.2 5.0 5.4 0.0
 8.|-- 220.191.200.30    0.0% 30 5.9 5.5 5.1 7.0 0.3
 9.|-- ???      100.0 30 0.0 0.0 0.0 0.0 0.0
 10.|-- 115.239.209.2    0.0% 30 6.8 7.1 6.6 8.0 0.0
 11.|-- ???      100.0 30 0.0 0.0 0.0 0.0 0.0
 12.|-- 115.239.210.27    0.0% 30 6.1 6.5 5.6 11.7 1.4
  1. 第一列:显示的是IP地址和本机域名,这点和tracert很像。
  2. 第二列 Loss%:是显示的每个对应IP的丢包率。
  3. 第三列 snt:snt等于10,设置每秒发送数据包的数量,默认值是10 可以通过参数 -c来指定。
  4. 第四列 Last:显示的最近一次的返回时延。
  5. 第五列 Avg:平均值,这个应该是发送ping包的平均时延。
  6. 第六列 Best:最好或者说时延最短的时间。
  7. 第七列 Wrst:最坏或者说时延最长的时间。
  8. 第八列 StDev:标准偏差。

mtr参数如下:

1.-h 提供帮助命令

2.-v 显示mtr的版本信息

3.-r 已报告模式显示

4.-c 设置每秒发送数据包的数量

5. -s 用来指定ping数据包的大小

6.-n no-dns不对IP地址做域名解析

7.-a 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的

8.-i 使用这个参数来设置ICMP返回之间的要求默认是1秒

9.-4 IPv4

10.-6 IPv6

DNS查询,如果是参数是域名输出关联ip,如果参数是ip输出关联的域名:host

[root@zlhpc ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 115.239.211.112
www.a.shifen.com has address 115.239.210.27

出网络接口配置、调优和debug的各种选项:ifconfig

[root@zlhpc ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
  inet 172.18.8.190 netmask 255.255.255.0 broadcast 172.18.8.255
  inet6 fe80::20c:29ff:feb5:d2d8 prefixlen 64 scopeid 0x20<link>
  ether 00:0c:29:b5:d2:d8 txqueuelen 1000 (Ethernet)
  RX packets 10916 bytes 7044121 (6.7 MiB)
  RX errors 0 dropped 0 overruns 0 frame 0
  TX packets 7267 bytes 774719 (756.5 KiB)
  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 0 (Local Loopback)
  RX packets 318 bytes 32844 (32.0 KiB)
  RX errors 0 dropped 0 overruns 0 frame 0
  TX packets 318 bytes 32844 (32.0 KiB)
  TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

关于ip的命令

[root@zlhpc ~]# ip link show #查看所有网络接口属性信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff
[root@zlhpc ~]# ip -s link show #查看所有统计信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 RX: bytes packets errors dropped overrun mcast
 32844  318  0  0  0  0
 TX: bytes packets errors dropped carrier collsns
 32844  318  0  0  0  0
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff
 RX: bytes packets errors dropped overrun mcast
 7050452 10988 0  0  0  0
 TX: bytes packets errors dropped carrier collsns
 780097  7309  0  0  0  0
[root@zlhpc ~]# ip addr show #查看网络信息
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 inet 127.0.0.1/8 scope host lo
  valid_lft forever preferred_lft forever
 inet6 ::1/128 scope host
  valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
 link/ether 00:0c:29:b5:d2:d8 brd ff:ff:ff:ff:ff:ff
 inet 172.18.8.190/24 brd 172.18.8.255 scope global dynamic eno16777736
  valid_lft 83120sec preferred_lft 83120sec
 inet6 fe80::20c:29ff:feb5:d2d8/64 scope link
  valid_lft forever preferred_lft forever

这里简单介绍下,以后会有深入介绍。

ifdown与ifup分别是禁用与启用摸个网络接口

[root@zlhpc ~]# ifdown eno16777736
[root@zlhpc ~]# ifup eno16777736

netstat命令查看网络信息

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的,netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作。

netstat [选项]

  1. -a 显示所有socket,包括正在监听的。
  2. -c 每隔1秒就重新显示一遍,直到用户中断它。
  3. -i 显示所有网络接口的信息,格式同“ifconfig -e”。
  4. -n 以网络IP地址代替名称,显示出网络连接情形
  5. -r 显示核心路由表,格式同“route -e”。
  6. -t 显示TCP协议的连接情况。
  7. -u 显示UDP协议的连接情况。
  8. -v 显示正在进行的工作。
  9. -p 显示建立相关链接的程序名

列出所有连接

[root@zlhpc ~]# 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:sunrpc   0.0.0.0:*    LISTEN
tcp  0  0 0.0.0.0:ssh    0.0.0.0:*    LISTEN
tcp  0  0 localhost:smtp   0.0.0.0:*    LISTEN 

只列出tcp或者udp协议的连接

[root@zlhpc ~]# 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:sunrpc   0.0.0.0:*    LISTEN
tcp  0  0 0.0.0.0:ssh    0.0.0.0:*    LISTEN
tcp  0  0 localhost:smtp   0.0.0.0:*    LISTEN 
[root@zlhpc ~]# 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:18604   0.0.0.0:*
udp  0  0 localhost:323   0.0.0.0:*
udp  0  0 0.0.0.0:bootpc   0.0.0.0:*
udp6  0  0 localhost:323   [::]:*
udp6  0  0 [::]:53744    [::]:* 

禁用反向域名解析,加快查询速度

[root@zlhpc ~]# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address      Foreign Address     State
tcp    0   0 0.0.0.0:111       0.0.0.0:*        LISTEN
tcp    0   0 0.0.0.0:22       0.0.0.0:*        LISTEN
tcp    0   0 127.0.0.1:25      0.0.0.0:*        LISTEN
tcp    0   52 172.18.8.190:22     172.18.8.196:51171   ESTABLISHED
tcp    0   0 172.18.8.190:22     172.18.8.196:49639   ESTABLISHED

只列出监听中的连接

[root@zlhpc ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Address     State
tcp    0   0 0.0.0.0:111       0.0.0.0:*        LISTEN
tcp    0   0 0.0.0.0:22       0.0.0.0:*        LISTEN
tcp    0   0 127.0.0.1:25      0.0.0.0:*        LISTEN
tcp6    0   0 :::111         :::*          LISTEN
tcp6    0   0 :::22          :::*          LISTEN
tcp6    0   0 ::1:25         :::*          LISTEN  

获取进程名,进程号以及用户id

[root@zlhpc ~]# netstat -nlpt
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:111       0.0.0.0:*        LISTEN   1/systemd
tcp    0   0 0.0.0.0:22       0.0.0.0:*        LISTEN   1538/sshd
tcp    0   0 127.0.0.1:25      0.0.0.0:*        LISTEN   2094/master
tcp6    0   0 :::111         :::*          LISTEN   1/systemd
tcp6    0   0 :::22          :::*          LISTEN   1538/sshd
tcp6    0   0 ::1:25         :::*          LISTEN   2094/master   
[root@zlhpc ~]# netstat -ltpe
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address      Foreign Address     State    User    Inode   PID/Program name
tcp    0   0 0.0.0.0:sunrpc     0.0.0.0:*        LISTEN   root    16299   1/systemd
tcp    0   0 0.0.0.0:ssh       0.0.0.0:*        LISTEN   root    21179   1538/sshd
tcp    0   0 localhost:smtp     0.0.0.0:*        LISTEN   root    22083   2094/master
tcp6    0   0 [::]:sunrpc       [::]:*         LISTEN   root    16298   1/systemd
tcp6    0   0 [::]:ssh        [::]:*         LISTEN   root    21189   1538/sshd
tcp6    0   0 localhost:smtp     [::]:*         LISTEN   root    22084   2094/master    

网络报统计情况

[root@zlhpc ~]# netstat -s
Ip:
  7872 total packets received
  0 forwarded
  0 incoming packets discarded
  6932 incoming packets delivered
  7284 requests sent out
  60 dropped because of missing route
Icmp:
  260 ICMP messages received
  1 input ICMP message failed.
  ICMP input histogram:
    destination unreachable: 1
    timeout in transit: 214
    echo requests: 1
    echo replies: 44
  409 ICMP messages sent
  0 ICMP messages failed
  ICMP output histogram:
    destination unreachable: 33
    echo request: 12
    echo replies:
  ... OUTPUT TRUNCATED ...

持续输出 -c持续输出tcp协议信息

[root@zlhpc ~]# netstat -ct
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address      Foreign Address     State
tcp    0   52 zlhpc:ssh        localhost:51171     ESTABLISHED
tcp    0   0 zlhpc:ssh        localhost:49639     ESTABLISHED

iftop工具实时监控linux系统的网络流量信息

最后上一个简单的实时流量监控工具:iftop ,它可以用来监控实时流量,反向解析ip,显示端口等。使用需先安装iftop,官网地址:http://www.ex-parrot.com/~pdw/iftop/

不过还有很多类似的软件,我们放在以后讨论。

[root@zlhpc ~]# iftop
interface: eno16777736
IP address is: 172.18.8.190
MAC address is: 00:0c:29:b5:d2:d8

常用参数命令:

  1. -i设定监测的网卡,如:# iftop -i eth1
  2. -B 以bytes为单位显示流量(默认是bits),如:# iftop -B
  3. -n使host信息默认直接都显示IP,如:# iftop -n
  4. -N使端口信息默认直接都显示端口号,如: # iftop -N
  5. -F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0
  6. -h(display this message),帮助,显示参数信息
  7. -p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;
  8. -b使流量图形条默认就显示;
  9. -f这个暂时还不太会用,过滤计算包用的;
  10. -P使host信息及端口信息默认就都显示;
  11. -m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

图解:

  1. 界面头部:流量刻度尺,对应下边每行的白色横条。
  2. 界面中部:左边为服务器;中间为外网IP,左箭头流入,右箭头流出;右边为2s 10s 40s 的流量情况。
  3. 界面下部:TX:发送流量 ,RX:接收流量 ,TOTAL:总流量 ,Cumm:运行iftop到目前时间的总流量 ,peak:流量峰值 ,rates:分别表示过去 2s 10s 40s 的平均流量

界面命令:

  1. 按h切换是否显示帮助;
  2. 按n切换显示本机的IP或主机名;
  3. 按s切换是否显示本机的host信息;
  4. 按d切换是否显示远端目标主机的host信息;
  5. 按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;
  6. 按N切换显示端口号或端口服务名称;
  7. 按S切换是否显示本机的端口信息;
  8. 按D切换是否显示远端目标主机的端口信息;
  9. 按p切换是否显示端口信息;
  10. 按P切换暂停/继续显示;
  11. 按b切换是否显示平均流量图形条;
  12. 按B切换计算2秒或10秒或40秒内的平均流量;
  13. 按T切换是否显示每个连接的总流量;
  14. 按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;
  15. 按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;
  16. 按j或按k可以向上或向下滚动屏幕显示的连接记录;
  17. 按1或2或3可以根据右侧显示的三列流量数据进行排序;
  18. 按<根据左边的本机名或IP排序;
  19. 按>根据远端目标主机的主机名或IP排序;
  20. 按o切换是否固定只显示当前的连接;
  21. 按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!
  22. 按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!
  23. 按q退出监控。

Linux系统的硬盘存储与tree工具

整个系统的存储情况

[root@zlhpc ~]# df -h
文件系统         容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root  18G 2.1G  16G  12% /
devtmpfs         479M   0 479M  0% /dev
tmpfs          489M   0 489M  0% /dev/shm
tmpfs          489M 6.7M 483M  2% /run
tmpfs          489M   0 489M  0% /sys/fs/cgroup
/dev/sda1        497M 124M 374M  25% /boot
tmpfs           98M   0  98M  0% /run/user/0

某个文件或文件夹大小

[root@zlhpc usr]# du --max-depth=1 -h
108M  ./bin
46M  ./sbin
390M  ./lib
417M  ./lib64
517M  ./share
0  ./etc
0  ./games
35M  ./include
78M  ./libexec
51M  ./local
55M  ./src
1.7G  .

du的相关参数如下:

  1. -a 显示所有文件及目录大小,递归显示
  2. --apparent-size 显示文件及目录展现大小,而非磁盘占用量。
  3. -B,--block-size='SIZE' 显示块的数量,引号中的size表示系统的块尺寸。
  4. -b 以byte的方式显示查看对象大小,相当于--apparent-size --block-size=1
  5. -c 计总并以total表面总数
  6. -D 计算不包含链接文件
  7. -H 类似于--si 以1000为计算单位计算文件及目录的磁盘占用量
  8. -h 人类可读的模式(K,M,G)
  9. --si 以1000取代1024换算单位
  10. -k 类似于--block-size=1k指定块大小为1k,计算文件目录大小。
  11. -l, --count-links 多次计算如果包含硬链接
  12. -m 类似于--block-size=1M指定块大小为1M,计算文件目录大小。
  13. -L, --dereference 和-D参数不同,忽略所有链接对象(文件,目录)
  14. -P, --no-dereference 默认参数,不
  15. -0 用0字节替代换行符
  16. -S, --separate-dirs 不包含子目录的大小
  17. -s, --summarize 仅显示当前目录级下每个对象的总大小
  18. -x, --one-file-system 跳过那些在不同文件系统上的目录。
  19. -X FILE, --exclude-from=FILE 不包含匹配的对象,这里的FILE是用户指定的文件对象
  20. --exclude=PATTERN
  21. --max-depth= 显示目录级的深度--max-depth=0相当于--summarize
  22. --time 显示目录中文件的或子目录最后的改动时间
  23. --time=WORD 以关键词 WORD显示时间,包含:atime,access,use,ctime,status
  24. --time-style=STYLE 调整显示时间格式,格式包含full-iso, long-iso, iso, +FORMAT(该格式来自于date命令)
  25. --help 帮助
  26. --version 版本信息

使用tree工具,查看树形目录结构,首先先安装tree工具

[root@zlhpc usr]# tree -L 3 src  #列出src层数为3以内的所有文件
src
├── debug
└── kernels
  └── 3.10.0-514.6.1.el7.x86_64
    ├── arch
    ├── block
    ├── crypto
    ├── drivers
    ├── firmware

tree常用参数:

-d:仅显示目录

-a:显示所有

-f:显示完整路径

-L n :n为数字,表示要现实几层。

进程资源的实时占用状况,Linux中的任务管理器:top

top默认3秒刷新一次,按空格立即刷新,q:退出,M:按内存排序,P:按cpu排序,<>:翻页 。

top - 21:32:45 up 6:31, 2 users, load average: 0.01, 0.02, 0.05
Tasks: 348 total,  2 running, 346 sleeping,  0 stopped,  0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1001332 total,  321616 free,  166176 used,  513540 buff/cache
KiB Swap: 2097148 total, 2097148 free,    0 used.  596688 avail Mem

  PID USER   PR NI  VIRT  RES  SHR S %CPU %MEM   TIME+ COMMAND
 3865 root   20  0 146296  2272  1452 R 0.7 0.2  0:00.62 top
   1 root   20  0 126416  7184  2608 S 0.0 0.7  0:02.43 systemd
   2 root   20  0    0   0   0 S 0.0 0.0  0:00.06 kthreadd
   3 root   20  0    0   0   0 S 0.0 0.0  0:00.37 ksoftirqd/0
   6 root   20  0    0   0   0 S 0.0 0.0  0:00.98 kworker/u256:0
   7 root   rt  0    0   0   0 S 0.0 0.0  0:00.00 migration/0
   8 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcu_bh
   9 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcuob/0
  10 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcuob/1
  11 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcuob/2
  12 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcuob/3
  13 root   20  0    0   0   0 S 0.0 0.0  0:00.00 rcuob/4

统计讲解:

第一行的统计信息与命令uptime命令执行结果一致,依次为:

  1. 21:32:45 :当前时间
  2. 6:31 :系统运行时间
  3. 2 users:当前登录用户数
  4. load average: 0.01, 0.02, 0.05  :系统负载,即任务队列的平均长度:1分钟,5分钟,15分钟前到现在的平均值。一般来说,每个cpu内核当前活动进程不大于3,则系统运行表现良好。当然这里说的是每个cpu内核,也就是如果你的主机是8核的话,那么uptime输出的最后一串字符应小于8*3=24即表示系统负载不是很严重。

第二、三行为进程和cpu的信息,当有多个cpu时,这些内容可能会超过2行,内容如下:

  1. Tasks: 348 total:进程总数
  2. 2 running:正在运行的进程数
  3. 346 sleeping:睡眠的进程数
  4. 0 stopped:停止的进程数
  5. 0 zombie :僵尸进程数
  6. %Cpu(s) 0.3 us:系统用户进程使用cpu百分比,不包括调高优先级的进程。cpu%是由每个核的cpu占用率之和计算出来的,如果是4核,核1使用率为100%,核2cpu使用率为100%,则会出现cpu高于100%的现象,最终为200%。
  7. 0.3 sy :内核空间占用cpu百分比
  8. 0.0 ni :用户进程空间内改变过优先级的进程占用cpu百分比
  9. 99.3 id :空闲cpu百分比
  10. 0.0 wa :等待输入输出的cpu时间百分比
  11. 0.0 hi :硬件cpu中断占用百分比
  12. 0.0 si :软中断占用百分比
  13. 0.0 st :虚拟机占用百分比

第四、五行为内存信息

  1. KiB Mem : 1001332 total :物力内存总量
  2. 321616 free :空闲内存总量
  3. 166176 used :使用物理内存总量
  4. 513540 buff/cache :用作内核缓存的内存量,和free -k 命令一个意思
  5. KiB Swap: 2097148 total :交换区总量
  6. 2097148 free :空闲交换区总量
  7. 0 used :使用交换区总量
  8. 596688 avail Mem :缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。

第六列头标题详细

  1. PID :进程id
  2. PPID :父进程id
  3. RUSER :Real user name
  4. UID : 进程所有者的用户id
  5. USER : 进程所有者的用户名
  6. GROUP : 进程所有者的组名
  7. TTY : 启动进程的终端名。不是从终端启动的进程则显示为 ?
  8. PR : 优先级
  9. NI : nice值。负值表示高优先级,正值表示低优先级
  10. P : 最后使用的CPU,仅在多CPU环境下有意义
  11. %CPU : 上次更新到现在的CPU时间占用百分比
  12. TIME : 进程使用的CPU时间总计,单位秒
  13. TIME+ : 进程使用的CPU时间总计,单位1/100秒
  14. %MEM : 进程使用的物理内存百分比
  15. VIRT : 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
  16. SWAP : 进程使用的虚拟内存中,被换出的大小,单位kb。
  17. RES: 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
  18. CODE: 可执行代码占用的物理内存大小,单位kb
  19. DATA : 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
  20. SHR : 共享内存大小,单位kb
  21. nFLT: 页面错误次数
  22. nDRT : 最后一次写入到现在,被修改过的页面数。
  23. S : 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
  24. COMMAND :命令名/命令行
  25. WCHAN : 若该进程在睡眠,则显示睡眠中的系统函数名
  26. Flags : 任务标志,参考 sched.h

top命令参数

  1. d 指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。
  2. p 通过指定监控进程ID来仅仅监控某个进程的状态。
  3. q 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
  4. S 指定累计模式
  5. s 使top命令在安全模式中运行。这将去除交互命令所带来的潜在危险。
  6. i 使top不显示任何闲置或者僵死进程。
  7. c 显示整个命令行而不只是显示命令名

常用命令

  1. top   //每隔5秒显式所有进程的资源占用情况
  2. top -d 2  //每隔2秒显式所有进程的资源占用情况
  3. top -c  //每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)
  4. top -p 12345 -p 6789//每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况
  5. top -d 2 -c -p 123456 //每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数

Linux系统free命令查看系统内存情况

[root@zlhpc ~]# free -h
       total    used    free   shared buff/cache  available
Mem:      977M    138M    693M    6.6M    145M    690M
Swap:     2.0G     0B    2.0G
  1. Mem:系统物理内存
  2. Swap:相当于windows中的虚拟内存,这里叫做交换区,当系统的物理内存不够用时,系统会将磁盘空间虚拟成内存使用。内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行。
  3. Buff:buff这里我简单说明下,与cache对比,他是在做写操作的时候,把分散的写操作集中进行,减少磁盘I/O,从而提高系统性能。文件是在写操作之前先放入buff。
  4. Cache:在做读操作的时候,把数据放入缓存中,等下次来访问此数据时候,不用读磁盘,直接读缓存即可。
  5. total:去掉为硬件和操作系统保留的内存后剩余的内存总量。许多人奇怪自己的电脑安装了一共8G的内存,但是显示总共只有七点几G的,现在应该没什么疑惑了把,不管Linux还是Windows都会有部分内存是保留给硬件和操作系统的!
  6. used:已分配的内存
  7. free:未分配内存
  8. shared:共享内存
  9. available:可以使用的内存总量

Linux系统查看内存信息

[root@zlhpc /]# more /proc/meminfo  #查看内存信息
MemTotal:    1001332 kB
MemFree:     322740 kB
MemAvailable:   597536 kB
Buffers:      1004 kB
Cached:      261816 kB
SwapCached:      0 kB
Active:      169740 kB
Inactive:     167476 kB
Active(anon):   74780 kB
Inactive(anon):   6452 kB
Active(file):   94960 kB
Inactive(file):  161024 kB
Unevictable:      0 kB
Mlocked:        0 kB
SwapTotal:    2097148 kB
SwapFree:    2097148 kB
Dirty:         0 kB
Writeback:       0 kB
[root@zlhpc /]# grep MemTotal /proc/meminfo  #查看内存信息
MemTotal:    1001332 kB

Linux系统进程相关

pstree:树形结构显示系统进程信息

-p显示进程号

[root@zlhpc ~]# pstree -p
systemd(1)─┬─NetworkManager(978)─┬─dhclient(1320)
      │           ├─{NetworkManager}(1051)
      │           └─{NetworkManager}(1054)
      ├─abrt-watch-log(886)
      ├─abrtd(885)
      ├─agetty(906)
      ├─atd(900)
      ├─auditd(852)───{auditd}(871)

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

[root@zlhpc ~]# ps -aux
USER    PID %CPU %MEM  VSZ  RSS TTY   STAT START  TIME COMMAND
root     1 0.0 0.7 126420 7172 ?    Ss  09:12  0:01 /usr/lib/systemd/system
root     2 0.0 0.0   0   0 ?    S  09:12  0:00 [kthreadd]
root     3 0.0 0.0   0   0 ?    S  09:12  0:00 [ksoftirqd/0]
root     6 0.0 0.0   0   0 ?    S  09:12  0:00 [kworker/u256:0]
root     7 0.0 0.0   0   0 ?    S  09:12  0:00 [migration/0]
root     8 0.0 0.0   0   0 ?    S  09:12  0:00 [rcu_bh]
root     9 0.0 0.0   0   0 ?    S  09:12  0:00 [rcuob/0]
  1. user:运行次进程的用户名
  2. pid:该进程的进程号码
  3. %CPU:该进程使用掉的cpu资源百分比
  4. %MEM:该进程所占用的物理内存百分比
  5. VSZ:该进程使用掉的虚拟内存量(Kbytes)
  6. RSS:该进程占用的固定内存量(Kbytes)
  7. TTY:该进程是在哪个终端机上运作,若与终端机无关,则显示?,另外,tty-tty6是本机上面的登入者程序,若为pts/0等等的,则表示为由网络连接进主机的程序。
  8. STAT:该程序目前的状态,Linux进程有6种基本状态:R:正在运行或运行队列中等待,S:可中断的睡眠状态,可被某些讯号(signal)唤醒。T:暂停状态或跟踪状态,D:不可中断的睡眠状态,Z:退出状态,进程成为僵尸进程,X:退出状态,进程即将被销毁。6种状态下又有6种子状态分别为:<:高优先级的,N:低优先级的,L:有内存分页但是带锁,s:包含子进程,l:多线程,+:前台程序(命令正在打开使用的程序,比如vim)
  9. START:该进程被触发的时间
  10. Time:该进程实际使用cpu运作的时间
  11. Command:该程序的实际指令

恐怖的参数多的如下:

  1. -a:显示所有终端机下执行的程序,除了阶段作业领导者之外。
  2. a:显示现行终端机下的所有程序,包括其他用户的程序。
  3. -A:显示所有程序。
  4. -c:显示CLS和PRI栏位。
  5. c:列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示。
  6. -C<指令名称>:指定执行指令的名称,并列出该指令的程序的状况。
  7. -d:显示所有程序,但不包括阶段作业领导者的程序。
  8. -e:此选项的效果和指定"A"选项相同。
  9. e:列出程序时,显示每个程序所使用的环境变量。
  10. -f:显示UID,PPIP,C与STIME栏位。
  11. f:用ASCII字符显示树状结构,表达程序间的相互关系。
  12. -g<群组名称>:此选项的效果和指定"-G"选项相同,当亦能使用阶段作业领导者的名称来指定。
  13. g:显示现行终端机下的所有程序,包括群组领导者的程序。
  14. -G<群组识别码>:列出属于该群组的程序的状况,也可使用群组名称来指定。
  15. h:不显示标题列。
  16. -H:显示树状结构,表示程序间的相互关系。
  17. -j或j:采用工作控制的格式显示程序状况。
  18. -l或l:采用详细的格式来显示程序状况。
  19. L:列出栏位的相关信息。
  20. -m或m:显示所有的执行绪。
  21. n:以数字来表示USER和WCHAN栏位。
  22. -N:显示所有的程序,除了执行ps指令终端机下的程序之外。
  23. -p<程序识别码>:指定程序识别码,并列出该程序的状况。
  24. p<程序识别码>:此选项的效果和指定"-p"选项相同,只在列表格式方面稍有差异。
  25. r:只列出现行终端机正在执行中的程序。
  26. -s<阶段作业>:指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况。
  27. s:采用程序信号的格式显示程序状况。
  28. S:列出程序时,包括已中断的子程序资料。
  29. -t<终端机编号>:指定终端机编号,并列出属于该终端机的程序的状况。
  30. t<终端机编号>:此选项的效果和指定"-t"选项相同,只在列表格式方面稍有差异。
  31. -T:显示现行终端机下的所有程序。
  32. -u<用户识别码>:此选项的效果和指定"-U"选项相同。
  33. u:以用户为主的格式来显示程序状况。
  34. -U<用户识别码>:列出属于该用户的程序的状况,也可使用用户名称来指定。
  35. U<用户名称>:列出属于该用户的程序的状况。
  36. v:采用虚拟内存的格式显示程序状况。
  37. -V或V:显示版本信息。 -w或w:采用宽阔的格式来显示程序状况。 
  38. x:显示所有程序,不以终端机来区分。
  39. X:采用旧式的Linux i386登陆格式显示程序状况。
  40. -y:配合选项"-l"使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位 。
  41. -<程序识别码>:此选项的效果和指定"p"选项相同。
  42. --cols<每列字符数>:设置每列的最大字符数。
  43. --columns<每列字符数>:此选项的效果和指定"--cols"选项相同。
  44. --cumulative:此选项的效果和指定"S"选项相同。
  45. --deselect:此选项的效果和指定"-N"选项相同。
  46. --forest:此选项的效果和指定"f"选项相同。
  47. --headers:重复显示标题列。
  48. --help:在线帮助。
  49. --info:显示排错信息。
  50. --lines<显示列数>:设置显示画面的列数。
  51. --no-headers:此选项的效果和指定"h"选项相同,只在列表格式方面稍有差异。
  52. --group<群组名称>:此选项的效果和指定"-G"选项相同。
  53. --Group<群组识别码>:此选项的效果和指定"-G"选项相同。
  54. --pid<程序识别码>:此选项的效果和指定"-p"选项相同。
  55. --rows<显示列数>:此选项的效果和指定"--lines"选项相同。
  56. --sid<阶段作业>:此选项的效果和指定"-s"选项相同。
  57. --tty<终端机编号>:此选项的效果和指定"-t"选项相同。
  58. --user<用户名称>:此选项的效果和指定"-U"选项相同。
  59. --User<用户识别码>:此选项的效果和指定"-U"选项相同。
  60. --version:此选项的效果和指定"-V"选项相同。
  61. --widty<每列字符数>:此选项的效果和指定"-cols"选项相同。
[root@zlhpc ~]# ps -ef  --标准格式显示进程
[root@zlhpc ~]# ps -aux --BSD格式显示进程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Linux使用logrotate来切割日志文件

    程序在运行的时候为了了解运行状态,会输出日志文件,时间久了日志文件会变得非常大,甚至达到GB级别.我在golang应用里使用logrus包来打日志,配置和使用都很方便,就是没有日志分割的功能,应用在线上运行一个月后日志文件都已经达到上百兆.后来发现了logrotate,这是centos自带的日志分割工具,都不用安装额外组件就能实现定时分割日志. 1.运行原理 logrotate由系统的cron运行,位置在/etc/cron.daily/logrotate #!/bin/sh /usr/sbin/

  • 详解linux中fork、vfork、clone函数的区别

    在linux系统中,fork(),vfork()和clone函数都可以创建一个进程,但是它们的区别是什么呢???本文就这三者做一个较深入的分析!!! 1.fork() fork()函数的作用是创建一个新进程,由fork创建的进程称为子进程,fork函数调用一次返回两次,子进程返回值为0,父进程返回子进程的进程ID.我们知道,一个进程的地 址空间主要由代码段,数据段,堆和栈构成,那么p2就要复制相关的段到物理内存.原始的unix系统的实现的是一种傻 瓜式的进程创建,这些复制包括: (1) 为子进程

  • linux下NFS配置教程详解

    1.NFS简介 (1)什么是NFS? 1)NFS是Net File System的简写,即网络文件系统.NFS是由SUN公司开发,并于1984年推出的一个RPC(远程过程调用)服务系统,它使我们能够达到文件的共享,在不同的系统间使用,所以它与通信协议.主机及操作系统无关.当用户想使用远程文件时只要用"mount"命令就可把远程文件系统挂接在自己的文件系统之下,使远程的文件与使用本地计算机上的文件一样. 例如在计算机A上,要把计算机B上的/usr/man挂接到A的/usr/man只需执行

  • linux下的C\C++多进程多线程编程实例详解

    linux下的C\C++多进程多线程编程实例详解 1.多进程编程 #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main() { pid_t child_pid; /* 创建一个子进程 */ child_pid = fork(); if(child_pid == 0) { printf("child pid\n"); exit(0); } else { print

  • linux kill命令详解

    kill 命令的用途 kill 命令很容易让人产生误解,以为它仅仅就是用来杀死进程的.我们来看一下 man page 对它的解释:kill - send a signal to a process. 从官方的解释不难看出,kill 是向进程发送信号的命令.当然我们可以向进程发送一个终止运行的信号,此时的 kill 命令才是名至实归.事实上如果我们不给 kill 命令传递信号参数,它默认传递终止进程运行的信号给进程!这是 kill 命令最主要的用法,也是本文要介绍的内容. 一般情况下,终止一个前台

  • 教你一步一步在linux中正确的安装Xcache加速php

    首先,强烈吐槽,百度上的教程,都左复制右复制的,乱七八糟,缺东缺西的.借此微凉大大我提供我苦心整理好的教程.以便各位小菜能顺利的使用Xcache加速php,如果看完了,也操作了,还是失败了的话,请联系微凉大大的QQ 496928838,微凉大大也想看看你是如何一步一步都装不上. #第一步,下载Xcache wget http://xcache.lighttpd.net/pub/Releases/3.1.0/xcache-3.1.0.tar.gz #第一步非常简单,如果你下载不了就是人品问题. #

  • linux更改目录显示颜色实例详解

    linux更改目录显示颜色实例详解 用shell列举目录的时候,文件夹都是蓝色的,背景是黑色,使得无法看清蓝色的文件名称,看起来很痛苦.这个已经好几次遇到这个问题了都没有把解决方法记录下来,导致每次要查一些资料,这次决定把这个方法整理下来,供以后遇到同样的情况之后使用. 针对文件的解决方式 为当前用户配置,在当前用户home目录下的./bashrc中添加下面的参数即可. 在这里简单修改了文件夹的格式为粗体,前景色是黄色,背景色是黑色.还有引用为粗体,青色前景色,黑色背景色. 这里着重调一下di相

  • Linux 6 下编译安装 PHP 5.6实例详解

    Linux 6 下编译安装 PHP 5.6实例详解 PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP以其开发源代码,免费,快捷,跨平台,高效,面向对象,强大的动态图像创建等功能深受广大开发者的喜爱.本文描述基于CentOS 6.7下编译安装PHP 5.6.9,同样也适用于CentOS 7下安装. 一.相关依赖包安装

  • linux防火墙配置教程之允许转发实验(2)

    一.实验目标 在上一次"Linux基础网络搭建实验"中,内.外网虚拟机之所以能Ping通,是因为暂时关闭了防火墙,然而现实中这样操作显然存在很大的安全隐患,所以本次实验在上次实验的基础下,开启防火墙,并配置防火墙规则,使得内.外网虚拟机任然能够Ping通. (Linux基础网络搭建实验:Linux网络搭建基础实验(1) ) 网络拓扑图: 二.实验步骤 1.搭建如图所示的网络(参考"Linux基础网络搭建实验") 2.在网关上开启防火墙,此时内网虚拟机不能Ping通外

  • Linux系统之基础扫盲教程大全

    序言 如果大家都爱装逼,一般会偏爱使用安装最小化的liunx系统,那么你的系统就不带图形化的桌面功能,这样对于一个想装B的初学者来说,Liunx就是黑漆马虎,一望无际的黑屏,黑屏,如何快速的对liunx系统有个较为全面基础的认识呢?答:继续往下读,哈哈. 本篇目的就是让大家对linux系统有个全面的基础认知. 主要内容:网络,系统,cpu,内存,硬盘,进程等等常用的基础信息查看与基础功能设置. Linux系统时间相关 查看系统当前时间 [root@zlhpc ~]# date 2017年 02月

  • Linux中selinux基础配置教程详解

    selinux(Security-Enhanced Linux)安全增强型linux,是一个Linux内核模块,也是Linux的一个安全子系统. 三种模式: Enforcing:强制模式,在selinux运作时,已经开始限制domain/type. permissive: 警告模式,在selinux运作时,会有警告讯息,但不会限制domain/type的存取. disabled: 关闭模式. 可用getenforce查看selinux状态 selinux对文件的作用: 当开启selinux后,s

  • Linux系统下Navicat 激活教程详解

    背景 Navicat 是香港卓软数字科技有限公司生产的一系列 MySQL.MariaDB.MongoDB.Oracle.SQLite.PostgreSQL 及 Microsoft SQL Server 的图形化数据库管理及发展软件.它有一个类似浏览器的图形用户界面,支持多重连线到本地和远程数据库.它的设计合乎各种用户的需求,从数据库管理员和程序员,到各种为客户服务并与合作伙伴共享信息的不同企业或公司. –wikipedia 参考教程: Navicat Premium 15 永久破解激活工具及安装

  • linux系统文件共享samba配置教程

    目录 卸载及安装 samba 新建共享路径及权限设置 编辑samba 配置文件 重启samba服务 windows 打开共享文件夹 卸载及安装 samba sudo apt-get purge samba samba-* sudo apt-get update sudo apt-get install samba samba-common 新建共享路径及权限设置 sudo mkdir /samba-share-path sudo chmod 777 -R /samba-share-path/ 编

  • Linux系统Java环境配置教程

    1.卸载Linux系统自带的JDK 我们要删除掉自带的JDK环境 再次查询是否已经删除 2.安装自己下载的JDK 2.1 下载JDK,地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 使用的是32位linux系统,因此下载了32位,可以使用命令查询是32位还是64位 2.2 上传JDK到服务器,解压到自己创建的目录下面 解压JDK到/usr/local/java 下面 3

  • Vscode 基础使用教程大全

      现在使用Vscode编码的人越来越多,凭借着免费,开源,轻量,跨平台的特点收货了一大批忠实粉丝 最近因项目需要开始使用Vscode,但不知为何,感觉有点力不从心,不知道该怎么用 首先想到去官网看看,然后放弃了(英语渣渣表示压力山大,其实正因为英语差,才更应该锻炼一下的,大家不要学我23333) 最后自己摸索和看相关视频才豁然开朗.现在做一个归纳总结,希望能帮到有需要的人 下载 官网下载:https://code.visualstudio.com/ 汉化中文(官方下载默认为英文,英文好的小伙伴

  • linux操作系统原理 linux系统基础教程

    本篇文章系统的给大家讲述linux操作系统原理,这是一篇非常好的linux系统基础教程,我们总结了相关的全部精选内容,一起来学习下. linux操作系统原理文字版 一.计算机经历的四个时代 1.第一代: 真空管计算机,输入和输出:穿孔卡片,对计算机操作起来非常不便,做一件事可能需要十几个人去共同去完成,年份大概是:1945-1955.而且耗电量特别大,如果那个时候你家里有台计算机的话,可能你一开计算机你家的电灯泡亮度就会变暗,哈哈~ 2.第二代: 晶体管计算机,批处理(串行模式运行)系统出现.相

  • Linux运维基础系统磁盘管理教程

    1.磁盘分区: 2.fdisk分区 磁盘小于2t用fdisk分区,大于2t用gdisk分区 1.查看磁盘情况 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 20G 0 disk ├─sda1 8:1 0 500M 0 part /boot └─sda2 8:2 0 19.5G 0 part ├─rhel-root 253:0 0 17.5G 0 lvm

  • Linux运维基础交换分区和lvm管理教程

    目录 1.交换分区SWAP 1.1创建swapfile 1.2格式化swap分区 1.3检测当前swap分区情况 1.4开启新建的SWAP分区 1.5关闭新建的swap分区 1.6给新区增加一个交换分区swap 2. lvm管理 步骤lvm 1.准备物理磁盘(加磁盘参考上一博客) 3.卷组管理 扩展卷组,将新磁盘加入卷组 4.逻辑卷管理 逻辑卷扩展的容量不能超过卷组的容量 对ext4文件系统的逻辑卷裁剪容量 首先自己创建一个1G的逻辑卷作为裁剪的对象 1.如果已经挂载,必须先卸载 2.裁剪容量,

  • Linux系统下Mysql使用简单教程(一)

    如果你会查询这些相关的问题,说明你是一个正在或者准备从事IT的程序猿,对于一个程序猿而言,不会使用linux系统的程序猿不是一好的程序猿哦!因为windows有时候真的让人很抓狂,而本人也相信没有什么习惯是不可以改变的.so以下都是在linux系统中的使用: 安装mysql命令 :$ sudo apt-get install -y mysql-server 查看mysql的版本命令(注意-V是大写,不然会出现如下错误):$ mysql -V 启动mysql命令(其它关闭,重启等功能只需将star

随机推荐