免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 一生有你llx
打印 上一主题 下一主题

[系统管理] Linux基础命令 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
131 [报告]
发表于 2019-02-06 07:29 |只看该作者
本帖最后由 一生有你llx 于 2019-02-20 09:18 编辑

w
       显示哪些用户登录,并且显示用户在干什么。报头按此顺序显示当前时间、系统运行时间、当前登录用户数以及过去1、5和15分钟的系统平均负载。接着为每个用户显示以下条目:登录名、TTY名称、远程主机、登录时间、空闲时间、JCPU、PCPU和当前进程的命令行。JCPU时间是附加到TTY的所有进程使用的时间。它不包括过去的后台作业,但也包括当前正在运行的后台作业。PCPU时间是当前进程使用的时间,在“what”字段中命名。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       w [选项]  [user]

2、选项列表
选项
说明
-h
不显示标题栏
-u
忽略执行程序的名称和cpu时间
-s
使用短格式,不显示登录时间、JCPU 和PCPU time
-f
显示用户从哪里登录
-V
显示版本信息

3、文件
       /var/run/utmp,正在登陆的用户信息。
       /proc  process information,进程信息。

4、实例
显示登录的用户信息
[root@localhost ~]# w
08:53:05 up 3 days, 18:42,  4 users,  load average: 0.00, 0.00, 0.00
USER     TTY     FROM              LOGIN@   IDLE  JCPU   PCPU WHAT
david    tty7    :0               Sat20   15days 1.99s  0.00s pam: gdm-password
root     pts/0   :1.0             Sat20    0.00s 0.08s  0.00s w
root     pts/1   :1.0             21:28   11:24m 0.00s  0.00s bash
root     tty1    :1               Sat20   15days 18.07s 18.07s /usr/bin/Xorg :1 -br -verbose -audi
[root@localhost ~]#


做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
链接:[color=rgb(68, 68, 6]https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk


论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
132 [报告]
发表于 2019-02-07 17:16 |只看该作者
pstree
        pstree显示正在运行的进程的树形结构,树以PID为根;如果省略了pid则以init为根。如果指定了用户名,则显示根植于该用户拥有的进程的所有进程树。如果pstree被调用为pstree.x11,那么它将提示行尾的用户按RETURE,并且在这种情况发生之前不会返回。这对于在x终端中运行pstree非常有用。
        pstree通过将相同的分支放在方括号中并以重复计数作为前缀,在视觉上合并它们。例如:
init-+-getty
    |-getty
    |-getty
‘-getty
变成下面的样子
init---4*[getty]
        进程的子线程在父进程下找到,并以大括号显示进程名,例如:
icecast2---13*[{icecast2}]
        此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
        pstree [选项]

2、选项列表
选项
说明
-a
显示每个进程的完整指令,包括路径、参数
-A
使用ascii码显示树形
-c
关闭精简表示法
-G
使用VT 100线条绘制字符
-h
高亮显示正在执行的程序
-H
类似“-h”,但是突出显示指定的进程。与-h不同,如果高亮显示不可用,pstree在使用-H时会失败。
-l
长格式显示
-n
以进程号排序,默认以名字排序
-p
显示pid
-u
显示用户
-U
以utf-8显示字符
-V
显示命令版本信息
-Z
每个SELinux的上下文

3、实例
1)显示完成的树形结构
[root@localhost ~]# pstree -a
init
  ├─NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
  │   ├─dhclient -d -4 -sf /usr/libexec/nm-dhcp-client.action -pf /var/run/dhclient-eth0.pid ...
  │   └─{NetworkManager}
  ├─VBoxClient --clipboard
  │   └─VBoxClient --clipboard
2)显示进程号
[root@localhost ~]# pstree -p
init(1)─┬─NetworkManager(6362)─┬─dhclient(6377)
        │                      └─{NetworkManager}(6379)
       ├─VBoxClient(7869)───VBoxClient(7870)───{VBoxClient}(7872)
        ├─VBoxClient(7882)───VBoxClient(7883)
        ├─VBoxClient(7890)───VBoxClient(7891)───{VBoxClient}(7894)
       ├─VBoxClient(789───VBoxClient(7899)─┬─{VBoxClient}(7901)
        │                                    └─{VBoxClient}(7903)
        ├─VBoxClient(7306)───VBoxClient(730
       ├─VBoxClient(7312)───VBoxClient(7314)───{VBoxClient}(7317)
       ├─VBoxClient(731───VBoxClient(7320)─┬─{VBoxClient}(7323)
        │                                    └─{VBoxClient}(7325)




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
133 [报告]
发表于 2019-02-09 17:20 |只看该作者
ps
       ps指令可以显示系统中当前进程的信息,它的输出结果是高度可定制的。如果您希望重复更新所选内容和显示的信息,请使用top(1)代替。
请注意,“ps-aux”与“ps aux”不同。POSIX和UNIX标准要求“ps-aux”打印名为“x”的用户拥有的所有进程,以及打印由-a选项选择的所有进程。如果名为“x”的用户不存在,此ps可以将命令解释为“ps aux”,并打印警告。此行为旨在帮助转换旧脚本和习惯。它是脆弱的,随时可能发生变化,因此不应依赖它。
       默认情况下,ps选择所有具有相同有效用户ID(EUID=EUID)的进程作为当前用户,并与调用方相关联的终端。它显示进程ID(PID=PID)、与进程关联的终端(tname=TTY)、[dd-]hh:mm:SS格式的累计CPU时间(time=TIME)和可执行名称(ucmd=CMD)。默认情况下输出未排序。
       使用BSD样式的选项将向默认显示中添加进程状态(stat=STAT),并显示命令args(args=命令)而不是可执行名称。您可以使用PS_FORMAT环境变量重写此操作。使用BSD样式的选项还将更改流程选择,以包括您拥有的其他终端(TTY)上的进程;或者,这可以描述为将选择设置为筛选的所有进程的集合,以排除其他用户拥有的进程或终端上的进程。当选项被描述为“相同”时,不考虑这些影响,所以-M将被认为与Z相同等等。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       ps [选项]

2、选项列表
选项
说明
--help
显示帮助文档
-V | V | --version
显示命令版本
--info
显示调试信息
L
列出所有的格式
简单选项

-A | -e
选择所有进程
-N | --deselect
反向选择不符合条件的
T
选择符合的终端
-a
选择除会话进程和与终端无关的进程以外的所有进程。
a
此选项导致ps列出带有终端(TTY)的所有进程,或在与x选项一起使用时列出所有进程。
-d
选择所有进程,忽略进程所有者
g
全部的进程,包含会话领导
r
将选择限制为仅运行进程。
x
此选项导致ps列出您拥有的所有进程(与ps相同的EUID),或者在与a选项一起使用时列出所有进程。
多个选项
这些选项以空白分隔或逗号分隔列表的形式接受单个参数。它们可以多次使用。
-Ccmdlist
按命令名选择。这将选择在cmdlist中给出可执行名称的进程。
-Ggrplist
选择进程所属的组id与给定list匹配的进程              
Uuserlist
按有效用户ID(EUID)或名称选择。有效用户ID描述进程使用其文件访问权限的用户
-Uuserlist
按实际用户ID(RUID)或名称进行选择。真正的用户ID标识创建进程的用户,
-ggrplist
按会话或有效组名选择。
p pidlist
按进程ID选择。
-ppidlist
按进程ID选择。
-ssesslist
按照会话ID选择
t ttylist
通过tty选择。与-t和--tty几乎相同,但也可以与空ttylist一起使用,以指示与ps关联的终端。
-t ttylist
选择指定的tty
-uuserlist
按有效用户ID(EUID)或名称选择,等价于“U”和“--user”
--Groupgrplist
等价于“-G”
--Useruserlist
等价于“-U”
--groupgrplist
按有效组ID(EGID)或名称选择。有效组ID描述进程使用其文件访问权限的组。
--pidpidlist
等价于“-p”和“p”
-ppidppidlist
选择父进程id匹配的进程
--sidsesslist
等价于“-s”
--ttyttylist
等价于“-t”和“t”
--useruserlist
等价于“-u”和“U”
-123
等价于“--sid 123”
123
等价于“—pid 123”

3、输出格式控制
格式
说明
-f | -F
输出完整的格式。它还会导致输出命令参数。当与-L一起使用时,将添加NLWP(线程数)和LWP(线程ID)列。
-Oformat
类似-o,但预加载了一些默认列。等价于“-o pid,format,state,tname,time,command”或者“-o pid,format,tname,time,cmd
Oformat
预加载的o。当用作格式设置选项时,它与-O完全相同,具有BSD个性。
-M
添加一列安全数据。
X
寄存器格式
Z
等价于“-M”
-c
显示-l选项的不同调度程序信息。
j
BSD作业控制格式
-j
作业格式
l
BSD长格式
-l
长格式,经常和“-y”一起使用
oformat
等价于“-o”和“--format”
-oformat
用户定义格式。format是以空格分隔或逗号分隔的列表形式的单个参数,它提供了一种指定单个输出列的方法。标头可以按需要重命名(ps -o pid,ruser=RealUser -o comm=Command)。如果所有列标题都是空的(ps -o pid= -o comm=),那么标题行将不会被输出。宽标头所需的列宽度将增加;这可用于扩展诸如WCHAN之类的列(ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm)。显式宽度控制(ps opid,wchan:42,cmd)也被提供。ps -o pid=X,comm=Y的行为随个性而变化,输出可能是一个名为“X,comm=Y”的列,也可以是两个名为“X”和“Y”的列。使用PS_FORMAT环境变量按需要指定默认值;DefSysV和DefBSD是可用于选择默认UNIX或BSD列的宏。
s
显示信号格式
u
以用户为主的模式
v
以虚拟内存为主的模式
-y
不显示标志位
-Z
显示安全上下文格式
--formatformat
和“-o”一样
--context
显示安全上下文格式

4、输出修饰符
修饰符
说明
-H
显示进程层次结构
O order
排序,过时的操作
S
总结一些信息,如CPU使用情况,从死子进程到父进程。
c
显示真正的命令名。这是从可执行文件的名称派生出来的,而不是从argv值派生的。因此,没有显示命令参数和对它们的任何修改
e
在命令之后显示环境
f | --forest
ASCII格式的进程层次结构
h
没有头
k spec
指定排序顺序,等价于“--sort”
-nnamelist  |  N namelist
正确的WCHAN显示需要名称列表文件,并且必须与当前Linux内核完全匹配才能得到正确的输出。如果没有此选项,则名称列表的默认搜索路径是:
$PS_SYSMAP
$PS_SYSTEM_MAP
/proc/*/wchan
/boot/System.map-`uname -r`
/boot/System.map
/lib/modules/`uname -r`/System.map
/usr/src/linux/System.map
/System.map
n
WCHAN和User的数字输出。(包括所有类型的UID和GID)
-w | w
宽输出,对无限宽度使用此选项两次
--cols n  |  --columns n |  --width n
设置屏幕宽度
--cumulative
包括一些死子进程数据(作为父进程的和)
--headers
重复头行,每页输出一行
--no-headers
根本不打印标题行
--lines n  |  --rows n
设置屏幕高度
--sort spec
排序。语法是“[+|-]key[,[+|-]key[,...]]”,例如,ps jax --sort=uid,-ppid,+pid

5、线程模式
线程模式
说明
H
把线程当做进程显示
-L
显示线程的LWP NLWP
-T
显示线程的SPID
m | -m
在进程之后显示线程

6、说明
       这个ps通过读取“/proc”中的虚拟文件来工作。这个ps不需要是setuid kmem,也不需要有任何特权来运行。不要给这个ps任何特殊的权限。此ps需要访问名称列表数据以获得正确的WCHAN显示。对于2.6之前的内核,必须安装System.map文件。
CPU使用率当前表示为进程在整个生命周期中运行的时间百分比。CPU使用率不太可能达到100%。
       SIZE和RSS字段不计算进程的某些部分,包括页表、内核堆栈、结构体thread_info和task_struct。这通常是至少20kb的内存大小。SIZE是进程的虚拟大小(代码数据堆栈)。
       标记为“defunct”的进程是死进程(所谓的“僵尸”),因为它们的父进程没有正确地销毁它们。如果父进程退出,则init(将销毁这些进程。
       如果用户名的长度大于显示列的长度,则将显示数字用户ID。

7、进程标志
       这些值的和显示在“F”列中,该列由标志输出说明符提供。
       1,已经fork,但是没有执行。
       4,使用超级用户权限。

8、进程状态码
       下面是s、stat和state输出说明符(标头“stat”或“S”)将显示的用于描述进程状态的不同值:
       D,不间断睡眠(通常为IO)。
       R,正在运行或可运行(在运行队列上)。
       S,可中断睡眠(等待事件完成)。
       T,停止,要么是被作业控制信号阻止,要么是因为它正在被跟踪。
       W,分页(自2.6.xx内核以来无效)。
       X,死了(不应该被看见)。
       Z,已停止(“僵尸”)进程,终止但未由其父进程收获。
       对于bsd格式和当使用stat关键字时,可能会显示其他字符:
       <,高优先级(对其他用户不好)。
       N,低优先级(对其他用户很好)。
       L,将页面锁定在内存中(用于实时和自定义IO)。
       s,是会话。
       l,是多线程的。
       +,在前台进程组中。

9、AIX格式描述符
       这个ps支持AIX格式描述符,它们的工作方式有点像printf(1)和printf(3)的格式代码。例如,正常的默认输出可以这样产生:ps -eo "%p %y %x %c
       CODE     NORMAL    HEADER
       %C       pcpu         %CPU
       %G       group        GROUP
       %P       ppid         PPID
       %U       user          USER
       %a       args          COMMAND
       %c       comm        COMMAND
       %g       rgroup      RGROUP
       %n       nice         NI
       %p       pid          PID
       %r       pgid         PGID
       %t       etime        ELAPSED
       %u       ruser       RUSER
       %x       time        TIME
       %y       tty          TTY
       %z       vsz         VSZ

10、标准格式说明符
       以下是用于控制输出格式(例如,使用选项-o)或使用GNU样式的“--sort”序选项对所选进程进行排序的不同关键字。例如,“ps -eo pid,user,args --sort user”。这个版本的ps试图识别大多数在ps的其他实现中使用的关键字。以下用户定义的格式说明符可能包含空格:args, cmd, comm,command, fname, ucmd, ucomm, lstart, bsdstart, start。某些关键字可能无法用于排序。
CODE
HEADER
说明
%cpu
%CPU
进程的CPU利用率为“#.#”格式。当前,它是CPU时间除以进程运行的时间(cputime/realtime比率),表示为百分比。除非你是幸运的,否则它不会达到100%。(别名pcpu)
%mem
%MEM
进程的驻留集大小与机器上物理内存的比率,以百分比表示。(别名PMEM)
args
COMMAND
命令,它的所有参数都是字符串。可以显示对参数的修改。该列中的输出可能包含空格。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。有时进程args将不可用;当发生这种情况时,ps将可执行文件的名称打印在括号中。(别名cmd,命令)。
当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度是未定义的。(它可以是80,无限,TERM等决定)环境变量COLUMNS或-cols选项可以用于精确地确定这种情况下的宽度。w-w选项也可用于调整宽度。
blocked
BLOCKED
blocked信号掩码。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig_block, sigmask)。
bsdstart
START
命令开始的时间。如果进程在24小时前启动,则输出格式为“hh:mm”,否则为“mmm dd”(其中mmm是月份的三个字母)。
bsdtime
TIME
用户和系统的累积CPU时间,。显示格式通常为“mmm:ss”,但如果进程占用的cpu时间超过999分钟,则可以移到右边。
c
C
处理器利用率当前,这是进程生存期内使用百分比的整数值。(见%cpu)。
caught
CAUGHT
捕获信号的掩码,见信号(7)。根据字段的宽度,以十六进制格式显示32或64位掩码。(别名sig_catch, sigcatch)
cgroup
CGROUP
显示进程所属的控制组。
class
CLS
进程的调度类。(别名policy, cls)。字段的可能值是:
-        not reported
TS  SCHED_OTHER
FF  SCHED_FIFO
RR  SCHED_RR
B   SCHED_BATCH
ISO SCHED_ISO
IDL SCHED_IDLE
?   unknown value
cls
CLS
class
cmd
CMD
args
comm
COMMAND
命令名(只有可执行的名称)。将不会显示对命令名的修改。标记为“已失效”的进程部分死亡,等待其父进程完全销毁。该列中的输出可能包含空格。(别名ucmducomm)。
当最后指定该列时,该列将扩展到显示的边缘。如果ps不能确定显示宽度,例如当输出被重定向(管道)到一个文件或另一个命令时,输出宽度是未定义的(它可以是80,无限,TERM)。COLUMNS环境变量或--cols选项可以用于精确地确定这种情况下的宽度。w-w选项也可用于调整宽度。
command
COMMAND
同args
cp
CP
CPU使用率/ms
cputime
TIME
累计CPU时间,"[DD-]HH:MM:SS"格式。(别名time)。
egid
EGID
进程的有效组ID数为十进制整数。(别名gid)。
egroup
EFROUP
进程的有效组ID。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。(别名group)。
eip
EIP
指令指针
esp
ESP
栈指针
etime
ELAPSED
自进程启动以来,以[dd-]hh:]mm:SS形式运行的时间。
euid
EUID
有效用户ID,别名uid
euser
EUSER
有效用户名。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。n选项可用于强制十进制表示。(别名unameuser)。
f
F
与进程关联的标志,请参阅流程标志部分。(别名flag, flags)。
fgid
FGID
文件系统访问组ID。(别名fsgid)。
fgroup
FGROUP
文件系统访问组ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。(别名fsgroup)
flag
F
f
flags
F
f
fname
COMMAND
进程可执行文件的基名的前8个字节。该列中的输出可能包含空格。
fuid
FUID
文件系统访问用户ID。(别名fsuid)。
fuser
FUSER
文件系统访问用户ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。
gid
GID
egid
group
GROUP
egroup
ignored
IGNORED
被忽略的信号的掩码,根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig_ignore, sigignore)
label
LABEL
安全标签,最常用于SELinux上下文数据。这是针对在高安全系统上发现的强制访问控制(“MAC”)。
lstart
STARTED
命令开始的时间。
lwp
LWP
正在报告的LWP(轻量过程或线程)ID。(别名spidtid)
ni
NI
nice值,范围从19(最好)到-20(对他人不友好)。 (别名nice)。
nice
NI
ni
nlwp
NLWP
进程中的lwps(线程)数。(别名thcount)。
nwchan
WCHAN
进程处于休眠状态的内核函数的地址(如果需要内核函数名称,请使用wchan)。正在运行的任务将在本列中显示一个破折号(‘-’)。
pcpu
%CPU
%cpu
pending
PENDING
挂起信号的掩码。进程上挂起的信号不同于单个线程上的待决信号。使用m选项或-m选项查看两者。根据字段的宽度,以十六进制格式显示32位或64位掩码。(别名sig)。
pgid
PGID
进程组ID或相应的流程组领导的进程ID。(别名pgrp)。
pgrp
PGRP
pgid
pid
PID
进程的进程ID号
pmem
%MEM
%mem
policy
POL
cls
ppid
PPID
父进程id
psr
PSR
进程当前分配给的处理器。
rgid
RGID
真实的组id
rgroup
RGROUP
真正的组名。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。
rip
RIP
64位指令指针。
rsp
RSP
64位栈指针。
rss
RSS
驻留集大小,任务使用的非交换物理内存(以千字节为单位)。(别名rssizersz)。

rssize
RSS
同rss
rsz
RSZ
同rss
rtprio
RTPRIO
实时优先级
ruid
RUID
实际用户ID
ruser
RUSER
真实的用户ID。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。
s
S
最小状态显示(一个字符)。
sched
SCH
进程的调度策略。策略SCHED_OTHER(SCHED_Normal)、SCHED_FIFO、SCHED_RR、SCHED_BATCH、SCHED_ISO和SCHED_IDELL分别显示为0、1、2、3、4和5。
sess
SESS
会话ID或等效的会话领导的进程ID。(别名sessionsid)。
sgi_p
P
进程当前正在执行的处理器。如果进程当前未运行或无法运行,则显示“*”。
sgid
SGID
保存的组ID。(别名svgid)
sgroup
SGROUP
保存的组名。如果可以获得并且字段宽度允许,这将是文本组ID,否则将是十进制表示。
sid
SID
sess
sig
PENDING
pending
sigcatch
CAUGHT
caught
sigignore
IGNORED
ignored
sigmask
BLOCKED
blocked
size
SZ
如果进程要脏所有可写页,然后交换掉,则需要交换大约的交换空间。这个数字很粗糙!
spid
SPID
同lwp
stackp
STACKP
进程堆栈的底部(开始)地址
start
STARTED
命令开始的时候。如果进程在24小时前启动,则输出格式为“hh:mm:ss”,否则为“mmm dd”(其中mmm是三个字母的月份名称)。
start_time
START
进程的开始时间或日期。只有进程未启动的年份(即调用ps的年份)或“mmmdd”(如果进程未在同一天启动)或“hh:mm”将显示。
stat
STAT
多字符进程状态。有关不同值的含义,请参见处理状态代码一节。如果只希望显示第一个字符,请参见sstate
state
S
同s
suid
SUID
保存的用户ID。(别名svuid)。
suser
SUSER
保存的用户名。如果可以获得并且字段宽度允许,这将是文本用户ID,否则将是十进制表示。(别名svuser)
svgid
SVGID
sgid
svuid
SVUID
suid
sz
SZ
进程核心图像的物理页面大小。这包括文本、数据和堆栈空间。当前排除了设备映射;这可能会发生更改。参见vszrss
thcount
THCNT
nlwp
tid
TID
lwp
time
TIME
统计CPU时间,"[DD-]HH:MM:SS"格式。(别名cputime)。
tname
TTY
控制TY(终端)(别名tttty)。
tpgid
TPGID
进程连接到的TTY(终端)上的前台进程组的ID,如果进程没有连接到TTY,则为-1。
tt
TT
tname
tty
TT
tname
ucmd
CMD
comm
ucomm
COMMAND
comm
uid
UID
euid
uname
USER
euser
user
USER
euser
vsize
VSZ
vsz
vsz
VSZ
进程的虚拟内存大小(1024字节单位)。当前排除了设备映射;这可能会发生更改。(别名vsize)。
wchan
WHAN
进程处于休眠状态的内核函数的名称,如果进程正在运行,则为“-”,如果进程是多线程且ps不显示线程,则为“*”。

11、环境变量
       下面的环境变量会影响ps的行为:
       COLUMNS,覆盖默认的宽度。
       LINES,覆盖默认的高度。
       PS_PERSONALITY,设置为POSIX中的一个,old,linux,bsd,sun,digital。
       CMD_ENV,设置为POSIX中的一个,old,linux,bsd,sun,digital。
       I_WANT_A_BROKEN_PS,解释过时命令。
       LC_TIME,日期格式。
       PS_COLORS,现在还不支持。
       PS_FORMAT,默认输出格式覆盖。
       PS_SYSMAP,默认名称列表(System.map)位置。
       PS_SYSTEM_MAP,默认名称列表(System.map)位置。
       POSIXLY_CORRECT,不要找借口忽视不好的“特性”。
       POSIX2,当设置为“on”时,充当POSIXLY_TRIDER。
       UNIX95不要找借口忽视不好的“特性”。
       _XPG,取消CMD_ENV=irix非标准行为。
       一般来说,设置这些变量是个坏主意。一个例外是CMD_ENV或PS_PERSONALITY,对于正常系统,可以将它们设置为Linux。如果没有这种设置,PS就会遵循Unix 98标准中无用的和坏的部分。

12、例子代码
若要使用标准语法查看系统上的每个进程,请执行以下操作:
ps -e
ps -ef
ps -eF
ps –ely
若要使用BSD语法查看系统上的每个进程,请执行以下操作:
ps ax
ps ax
打印进程树
ps -ejH
ps axjf
获取线程信息
ps -eLf
ps axm
获取安全信息
ps -eo euser,ruser,suser,fuser,f,comm,label
ps axZ
ps –eM
若要以用户格式将每个进程作为根进程运行(实际有效ID),请执行以下操作:
ps -U root -u root
要使用用户定义的格式查看每个进程:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
ps -eopid,tt,user,fname,tmout,f,wchan
只打印进程sislogd的PID
ps -C syslogd -o pid=
只打印PID为42的进程名字
ps -p 42 -o comm=

13、实例
1)显示所有用户的所有进程信息
[root@localhost ~]# ps -aux
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2900  1504 ?        Ss   Sep19  0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    Sep19  0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Sep19  0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S    Sep19  0:02 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    Sep19  0:00 [migration/0]
root         6  0.0  0.0      0     0 ?        S    Sep19  0:02 [watchdog/0]
。。。
david     7226  0.0  0.1  50856  3020 ?        Sl   06:32  0:00 /usr/bin/gnome-keyring-daemon --dae
david     7238  0.0  0.3  32944  6244 ?        Ssl  06:32  0:00 gnome-session
david     7246  0.0  0.0   3664   760 ?        S    06:32  0:00 dbus-launch --sh-syntax --exit-with
david     7247  0.0  0.0   3396  1316 ?        Ss   06:32  0:00 /bin/dbus-daemon --fork --print-pid
david     7306  0.0  0.0  19200   364 ?        S    06:32  0:00 /usr/bin/VBoxClient --display
david     7308  0.0  0.0  19200  1080 ?        S    06:32  0:00 /usr/bin/VBoxClient --display
david     7312  0.0  0.0  19200   360 ?        S    06:32  0:00 /usr/bin/VBoxClient --seamless
david     7314  0.0  0.0  20884  1188 ?        Sl   06:32  0:00 /usr/bin/VBoxClient --seamless
david     7318  0.0  0.0  19200   360 ?        S    06:32  0:00 /usr/bin/VBoxClient --draganddrop
david     7320  0.1  0.0  21400  1296 ?        Sl   06:32  0:07 /usr/bin/VBoxClient --draganddrop
david     7343  0.0  0.2  10712  4624 ?        S    06:32  0:00 /usr/libexec/gconfd-2
。。。
2)显示用户david的进程信息
[root@localhost ~]# ps -u david
  PID TTY          TIME CMD
7226 ?       00:00:00 gnome-keyring-d
7238 ?       00:00:00 gnome-session
7246 ?       00:00:00 dbus-launch
7247 ?       00:00:00 dbus-daemon
7306 ?       00:00:00 VBoxClient






论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
134 [报告]
发表于 2019-02-09 17:45 |只看该作者
pidof
       pidof可以查找指定名称的进程的pid,将结果送到标准输出。pidof有两种返回值:0,找到至少一个进程;1,没有找到进程。pidof实际上与killall5相同;程序根据调用它的名称进行操作。
       此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
       pidof [选项]  name

2、选项列表
选项
说明
-s
一次只响应一个进程号
-c
只显示运行在root目录下的进程,这个选项只对root用户有效
-o
忽略指定进程号的进程
-x
同时显示在shell脚本运行中的相同名称

3、实例
1)查看指定进程的id
[root@localhost ~]# pidof bash            //显示bash进程的id,有两个
8563 8266
2)一次只显示一个进程
[root@localhost ~]# pidof -s bash         //只显示出一个进程id
8563




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
135 [报告]
发表于 2019-02-10 14:55 |只看该作者
pgrep
      pgrep指令可以按名字或者其他属性搜索指定的进程,显示出进程的id到标准输出。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     pgrep [-flvx]  [-d delimiter]  [-n|-o]  [-P ppid,...]  [-g pgrp,...]  [-s sid,...]  [-u euid,...]  [-U uid,...]  [-G gid,...]  [-t term,...]  [pattern]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-d delimiter
设置用于分隔输出中每个进程ID的字符串(默认为换行符)。(仅限于pgrep)
-f
查找完成的文件名
-g pgrp
只匹配列出的进程组ID中的进程。进程组0被转换为pgrep或pkill自己的进程组。
-G gid
只匹配实际组ID列出的进程。可以使用数值或符号值。
-l
列出进程的名字和id
-n
选择最近执行的进程
-o
选择最早的进程
-P ppid
选择父pid匹配的进程
-s sid
只匹配进程会话ID列出的进程。会话ID 0被转换为pgrep或pkill自己的会话ID。
-t term
查找符合终端号的进程
-u euid
只匹配其有效用户ID列出的进程。
-U uid
只匹配实际用户ID列出的进程。可以使用数值或符号值。
-v
查找不符合条件的进程
-x
只匹配其名称(如果-f指定了命令行)与模式完全匹配的进程。

3、实例
1)查看指定进程信息
[root@localhost ~]# pgrep -l wc               //显示名称和进程号
8572 wc
2)查看某个终端的进程
[root@localhost ~]# pgrep -l -t tty1          //显示tty1下的进程id和进程名字
7734 Xorg




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
136 [报告]
发表于 2019-02-10 14:57 |只看该作者
做了一个Linux学习的平台,目前出来一个雏形,各位可以参考使用
链接:https://pan.baidu.com/s/1GOLVU2CbpBNGtunztVpaCQ  密码:n7bk

论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
137 [报告]
发表于 2019-02-11 00:26 |只看该作者
hostname
      hostname指令用于设置或者显示系统主机名,没有任何参数就会返回gethostname()函数的返回值。使用hostname指令之后,主机名会立马被修改,但是重启系统之后就失效了。可以修改配置文件/etc/sysconfig/network,使主机名永久有效。
此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      hostname [选项]

2、选项列表
选项
说明
-h | --help
显示帮助文档
-V | --version
显示命令版本
-v
显示详细执行过程
-a | --alias
显示主机别名
-d | --domain
显示主机dns域名
-F file
从文件读取
-f | --fqdn | --long
显示完全格式的域名
-A | --all-fqdns
显示机器的全部FQDNs
-i | --ip-address
显示指定主机的ip地址
-I | --all-ip-address
显示主机所有的地址
-s | --short
以短格式显示,仅显示从第一个点分开的部分
-y | --yp | --nis
显示nis域名

3、FQDN
      不能用此命令更改FQDN(由hostname-fqdn返回)或DNS域名(由dnsdomainname返回)。系统的FQDN是resolver为主机名返回的名称。技术上:FQDN是由gethostname(2)返回的主机名。DNS域名是第一个点之后的部分。因此,如何更改取决于配置文件(通常在“/etc/host.conf”中)。通常(如果在DNS或NIS之前解析主机文件),您可以在“/etc/host”中更改它。
      如果一台机器有多个网络接口/地址,或者在移动环境中使用,那么它可能有多个FQDN/域名,或者根本没有。因此,避免使用“hostname -fqdn”、“hostname  --domain”和“dnsdomainname”。“hostname --ip-address”地址也受到同样的限制,因此也应该避免。

4、实例
1)显示主机名
[root@localhost ~]# hostname             //显示完整名字
localhost.localdomain
[root@localhost ~]#hostname –s         //显示短格式名字
localhost        
[root@localhost ~]# hostname –a         //显示主机别名
localhost.localdomain localhost4 localhost4.localdomain4 localhost.localdomain localhost6 localhost6.localdomain6
2)显示主机ip
[root@localhost ~]# hostname -i
127.0.0.1 127.0.0.1




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
138 [报告]
发表于 2019-02-12 09:05 |只看该作者
route
      route指令用于显示或者修改IP路由表。它的主要用途是在使用ifconfig(程序配置接口后,通过接口设置到特定主机或网络的静态路由。当使用adddel选项时,路由将修改路由表。如果没有这些选项,路由将显示路由表的当前内容。
     此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
     route [-CFvnee]
     route  [-v] [-A family]  add  [-net|-host]  target  [netmask Nm]  [gw Gw]  [metric N]  [mssM]  [window W]  
     [irtt I]  [reject]  [mod] [dyn]  [reinstate]  [[dev] If]
     route  [-v]  [-A family]  del  [-net|-host]  target [gw  Gw]  [netmask Nm]  [metric  N]  [[dev] If]
     route  [-V]  [--version] [-h]  [--help]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-A family
指定使用的地址类型
-F
操作内核FIB
-C
管理内核路由缓存
-v
显示详细过程
-n
以数字的方式显示路由表中的主机
-e
使用netstat的输出格式显示路由表
-net
指定一个网络路由
-host
指定一个主机路由
add
增加一个路由
del
删除一个路由
target
指定目标网络或者主机
netmask mask
添加一个路由时,使用这个子网掩码
gw ip
指定数据包通过的网关IP地址
metric
指定路由表的metric字段
window
指定路由表的TCP连接串口
irtt I
将此路由上的TCP连接的初始往返时间(Irtt)设置为I毫秒(1-12000)。这通常只在AX.25网络上使用。如果省略,则使用rfc 1122默认的300 ms。
reject
安装阻塞路由,这将迫使路由查找失败。例如,这用于在使用默认路由之前屏蔽网络。这不是用来防火的
mod, dyn, reinstate
安装动态或修改的路由。这些标志用于诊断,通常仅由路由守护进程设置。
dev eth
指定路由的网络接口
3、输出
     内核路由表的输出组织在以下列中
输出列
说明
Destination
目标网络或目标主机。
Gateway
网关地址或“*”(如果没有设置)
Genmask
目标网络的网络掩码;主机目的地为‘255.255.255.255’,默认路由为‘0.0.0.0’。
Flags
可能的flag有
U,路由已经起来
H,目标是一个主机
G,使用网关
R,用于动态路由的恢复路由
D,由守护进程动态安装或重定向
M,从路由守护进程或重定向中修改
A,由addrconf安装
C,缓存项
!,拒绝路由
Metric
与目标的距离(通常以啤酒花计)。它不是最近的内核使用的,而是路由守护进程所需要的。
Ref
引用此路由的次数。(不在Linux内核中使用。)
Use
查找路线的数量。根据-F和-C的使用情况,这将是路由缓存丢失(-F)或命中(-C)。
Iface
用于此路由的数据包将发送到该接口。
MSS
此路由上TCP连接的默认最大分段大小
Window
此路由上TCP连接的默认窗口大小
irtt
初始RTT(往返时间)。内核使用它来猜测最佳的TCP协议参数,而无需等待(可能是缓慢的)答案。
HH
引用缓存路由的硬件头缓存的ARP条目和缓存路由的数量。如果缓存路由的接口不需要硬件地址(例如lo),则为-1。
Arp
缓存路由的硬件地址是否最新。

4、例子代码
route add -net 127.0.0.0
添加正常的回送条目,使用net掩码255.0.0.0(A级Net,从目标地址确定)并与“lo”设备相关联(假设此设备使用ifconfig(正确设置)。
10.x.x.x.通过“eth0”将路由添加到网络192.56.76.x。这里没有必要使用C类网络掩码修饰符,因为192.*是一个C类IP地址。这里可以省略“dev”这个词。
route add default gw mango-gw
添加默认路由(如果没有其他路由匹配,则使用该路由)。使用此路径的所有数据包将通过“芒果-GW”传送。实际用于该路线的设备取决于我们如何到达“mango-gw”,“mango-gw”的静态路径必须在此之前设置。
route add ipx4 sl0
通过SIP接口将路由添加到“IPX 4”主机(假设“IPX 4”是SILIP主机)。
route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
此命令添加网络“192.57.66.x”,通过前一条路由传送到SILIP接口。
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
。这将所有D类(多播)IP路由设置为通过“eth0”。这是具有多播内核的正确的正常配置行。
route add -net 10.0.0.0 netmask 255.0.0.0 reject
这为专用网络“10.x.x.x.”安装了一个拒绝路由。

5、实例
1)显示本机路由表
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 -               255.255.255.255 !H    0     -        0 -
224.0.0.0       -               255.255.255.0   !     0      -        0 -
2)以netstat格式显示
[root@localhost ~]# route -e
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
255.255.255.255 -              255.255.255.255 !H        - -          - -
224.0.0.0       -               255.255.255.0   !         - -          - -
3)添加一个路由
[root@localhost ~]# route add -net 111.13.0.0/24 dev eth0           //指定网段使用设备eth0访问
[root@localhost ~]# route                                                 //查看路由表
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 -               255.255.255.255 !H    0      -        0 -
111.13.0.0      *               255.255.255.0   U    0      0        0 eth0
224.0.0.0       -               255.255.255.0   !    0      -        0 -
172.16.0.0      *               255.255.0.0     U    0      0        0 eth0
4)删除一个路由
[root@localhost ~]# route del -net 111.13.0.0/24                     //删除指定地址id路由
[root@localhost ~]#route                                               //查看路由
Kernel IP routing table      
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
255.255.255.255 -               255.255.255.255 !H    0      -        0 -
224.0.0.0       -               255.255.255.0   !     0      -        0 -
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0




论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
139 [报告]
发表于 2019-02-13 07:34 |只看该作者
ypdomainname  
      ypdomainname指令显示由函数“getdomainname”返回的主机域名,使用这个指令也可以设置一个主机NIS/YP域名。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      ypdomainname [-v]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-v
显示详细执行过程

3、实例
显示主机域名
[root@localhost ~]#ypdomainname                         //显示域名
www.weijie.com
[root@localhost ~]# ypdomainname www.david.com        //设置域名
[root@localhost ~]# ypdomainname                         //显示域名
www.david.com



nisdomainname   
      nisdomainname指令显示由函数“getdomainname”返回的主机域名,使用这个指令也可以设置一个主机NIS/YP域名。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      nisdomainname [-v]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-v
显示详细执行过程

3、实例
显示主机域名
[root@localhost ~]# nisdomainname                          //显示域名
www.david.com
[root@localhost ~]# nisdomainname www.weijie.com        //设置域名
[root@localhost ~]#nisdomainname                          //显示域名
www.weijie.com



domainname   
      domainname指令显示由函数“getdomainname”返回的主机域名,使用这个指令也可以设置一个主机域名。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      domainname [-v] [-F filename]  [name]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-v
显示详细执行过程
-F | --file filename
从指定文件读取主机域名

3、实例
显示主机域名
[root@localhost ~]# domainname -v
getdomainname()=`(none)'
(none)
[root@localhost ~]# domainname www.david.com
You have new mail in /var/spool/mail/root
[root@localhost ~]# domainname
www.david.com



dnsdomainname  
      dnsdomainname将打印FQDN(完全限定域名)的域部分。系统的完整FQDN以“hostname --fqdn”返回。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。
1、语法
      dnsdomainname [-v]

2、选项列表
选项
说明
--help
显示帮助文档
--version
显示命令版本
-v
显示详细执行过程

3、实例
显示主机域名
[root@localhost ~]# dnsdomainname –v                      //-v选项显示详细执行过程
gethostname()=`localhost.localdomain'
Resolving `localhost.localdomain' ...
Result: h_name=`localhost'
Result: h_aliases=`localhost.localdomain'
Result: h_aliases=`localhost4'
Result: h_aliases=`localhost4.localdomain4'
Result: h_aliases=`localhost.localdomain'
Result: h_aliases=`localhost6'
Result: h_aliases=`localhost6.localdomain6'
Result: h_addr_list=`127.0.0.1'
Result: h_addr_list=`127.0.0.1'



论坛徽章:
1
15-16赛季CBA联赛之福建
日期:2018-12-10 14:43:45
140 [报告]
发表于 2019-02-14 07:48 |只看该作者
ifcfg
      ifcfg是一个简单的脚本替换iconfig命令,它可以设置网络接口的ip地址。
      此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法
      ifcfg [device] [cmd]  [address]
      device就是网卡设备,它可能有别名。cmd可以是add、delete、stop。address就是ip地址。

2、选项列表

3、实例
1)添加ip地址
[root@localhost ~]# ifcfg eth0 add 192.168.0.250/24                     //添加地址250
Forwarding is ON or its state is unknown (4). OK, No RDISC.
[root@localhost ~]#ifconfig                                               //查看网络信息
eth0      Link encap:Ethernet  HWaddr 08:00:27:14:33:57  
          inet addr:192.168.0.250  Bcast:192.168.0.255 Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe14:3357/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
          RX packets:107276 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72250 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:83580745 (79.7 MiB)  TX bytes:5842176 (5.5 MiB)
2)删除ip地址
[root@localhost ~]# ifcfg eth0 delete 192.168.0.250/24                   //删除网卡地址
Forwarding is ON or its state is unknown (4). OK, No RDISC.
[root@localhost ~]# ifconfig                                                 //查看网卡信息,ip地址已经删除
eth0      Link encap:Ethernet  HWaddr 08:00:27:14:33:57  
          inet6 addr: fe80::a00:27ff:fe14:3357/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1
          RX packets:107276 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72251 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:83580745 (79.7 MiB)  TX bytes:5842218 (5.5 MiB)




您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP