linux command

ps

Linux Command – ps ใช้ในการแสดง process ที่ทำงานใน server

 

คำสั่ง

ps

$ ps
 PID TTY TIME CMD
14588 pts/3 00:00:00 bash
14672 pts/3 00:00:00 man
14684 pts/3 00:00:00 pager
14958 pts/3 00:00:00 man
14970 pts/3 00:00:00 pager
15290 pts/3 00:00:00 man
15302 pts/3 00:00:00 pager
15437 pts/3 00:00:00 man
15450 pts/3 00:00:00 pager
15693 pts/3 00:00:00 man
15704 pts/3 00:00:00 pager
15853 pts/3 00:00:00 ps

 

BSD

$ ps ef
  PID TTY STAT TIME COMMAND
 14588 pts/3 Ss 0:00 -bash USER=staff LOGNAME=staff HOME=/home/staff PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games MAIL=/var/mail/sa
 14672 pts/3 T 0:00 \_ man paste XDG_SESSION_ID=1604 TERM=vt100 SHELL=/bin/bash DERBY_HOME=/usr/lib/jvm/java-8-oracle/db SSH_CLIENT=202.176.134.76 52358 22 GOOGLE_APPLICATION_CREDENTIA
 14684 pts/3 T 0:00 | \_ pager XDG_SESSION_ID=1604 TERM=vt100 SHELL=/bin/bash DERBY_HOME=/usr/lib/jvm/java-8-oracle/db SSH_CLIENT=202.176.134.76 52358 22 GOOGLE_APPLICATION_CREDENTIA
 14958 pts/3 T 0:00 \_ man pathchk XDG_SESSION_ID=1604 TERM=vt100 SHELL=/bin/bash DERBY_HOME=/usr/lib/jvm/java-8-oracle/db SSH_CLIENT=202.176.134.76 52358 22 GOOGLE_APPLICATION_CREDENT
 14970 pts/3 T 0:00 | \_ pager XDG_SESSION_ID=1604 TERM=vt100 SHELL=/bin/bash DERBY_HOME=/usr/lib/jvm/java-8-oracle/db SSH_CLIENT=202.176.134.76 52358 22 GOOGLE_APPLICATION_CREDENTIA

 

Linux

$ ps -ef 
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May07 ? 00:00:09 /sbin/init
root 2 0 0 May07 ? 00:00:00 [kthreadd]
root 3 2 0 May07 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 May07 ? 00:00:00 [kworker/0:0H]
root 7 2 0 May07 ? 00:00:47 [rcu_sched]
root 8 2 0 May07 ? 00:00:00 [rcu_bh]
root 9 2 0 May07 ? 00:00:00 [migration/0]
root 10 2 0 May07 ? 00:00:00 [watchdog/0]
root 11 2 0 May07 ? 00:00:00 [watchdog/1]
root 12 2 0 May07 ? 00:00:00 [migration/1]
root 13 2 0 May07 ? 00:00:02 [ksoftirqd/1]
root 15 2 0 May07 ? 00:00:00 [kworker/1:0H]
root 16 2 0 May07 ? 00:00:00 [kdevtmpfs]
root 17 2 0 May07 ? 00:00:00 [netns]
root 18 2 0 May07 ? 00:00:00 [perf]

 

โครงสร้างคำสั่ง

 ps [options]

 

รายละเอียด

เป็นคำสั่งที่ใช้ในการแสดง process ที่ทำงานใน server  มีการทำงานด้วยกัน 2 แบบ คือ BSD และ linux

  • BSD ในส่วน option จะไม่ใช้ dash (-)
  • Linux ในส่วน option จะใช้ dash (-)

 

Option

 -A Select all processes. Identical to -e.

 -a Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal.

 -d Select all processes except session leaders.

 --deselect
 Select all processes except those that fulfill the specified conditions (negates the selection). Identical to -N.

 -e Select all processes. Identical to -A.

 g Really all, even session leaders. This flag is obsolete and may be discontinued in a future release. It is normally implied by the a flag, and is only useful when
 operating in the sunos4 personality.

 -N Select all processes except those that fulfill the specified conditions (negates the selection). Identical to --deselect.

 T Select all processes associated with this terminal. Identical to the t option without any argument.

 r Restrict the selection to only running processes.

 x Lift the BSD-style "must have a tty" restriction, which is imposed upon the set of all processes when some BSD-style (without "-") options are used or when the ps
 personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is
 that this option causes ps to list all processes owned by you (same EUID as ps), or to list all processes when used together with the a option.

PROCESS SELECTION BY LIST
 These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: ps -p "1 2" -p 3,4

 -123 Identical to --pid 123.

 123 Identical to --pid 123.

 -C cmdlist
 Select by command name. This selects the processes whose executable name is given in cmdlist.

 -G grplist
 Select by real group ID (RGID) or name. This selects the processes whose real group name or ID is in the grplist list. The real group ID identifies the group of the user
 who created the process, see getgid(2).

 -g grplist
 Select by session OR by effective group name. Selection by session is specified by many standards, but selection by effective group is the logical behavior that several
 other operating systems use. This ps will select by session when the list is completely numeric (as sessions are). Group ID numbers will work only when some group names
 are also specified. See the -s and --group options.

 --Group grplist
 Select by real group ID (RGID) or name. Identical to -G.

 --group grplist
 Select by effective group ID (EGID) or name. This selects the processes whose effective group name or ID is in grplist. The effective group ID describes the group whose
 file access permissions are used by the process (see getegid(2)). The -g option is often an alternative to --group.

 p pidlist
 Select by process ID. Identical to -p and --pid.

 -p pidlist
 Select by PID. This selects the processes whose process ID numbers appear in pidlist. Identical to p and --pid.

 --pid pidlist
 Select by process ID. Identical to -p and p.

 --ppid pidlist
 Select by parent process ID. This selects the processes with a parent process ID in pidlist. That is, it selects processes that are children of those listed in pidlist.

 q pidlist
 Select by process ID (quick mode). Identical to -q and --quick-pid.

 -q pidlist
 Select by PID (quick mode). This selects the processes whose process ID numbers appear in pidlist. With this option ps reads the necessary info only for the pids listed in
 the pidlist and doesn't apply additional filtering rules. The order of pids is unsorted and preserved. No additional selection options, sorting and forest type listings are
 allowed in this mode. Identical to q and --quick-pid.

 --quick-pid pidlist
 Select by process ID (quick mode). Identical to -q and q.

 -s sesslist
 Select by session ID. This selects the processes with a session ID specified in sesslist.

 --sid sesslist
 Select by session ID. Identical to -s.

 t ttylist
 Select by tty. Nearly identical to -t and --tty, but can also be used with an empty ttylist to indicate the terminal associated with ps. Using the T option is considered
 cleaner than using t with an empty ttylist.

 -t ttylist
 Select by tty. This selects the processes associated with the terminals given in ttylist. Terminals (ttys, or screens for text output) can be specified in several forms:
 /dev/ttyS1, ttyS1, S1. A plain "-" may be used to select processes not attached to any terminal.

 --tty ttylist
 Select by terminal. Identical to -t and t.

 U userlist
 Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in userlist. The effective user ID describes the user whose file
 access permissions are used by the process (see geteuid(2)). Identical to -u and --user.

 -U userlist
 Select by real user ID (RUID) or name. It selects the processes whose real user name or ID is in the userlist list. The real user ID identifies the user who created the
 process, see getuid(2).

 -u userlist
 Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in userlist.

 The effective user ID describes the user whose file access permissions are used by the process (see geteuid(2)). Identical to U and --user.

 --User userlist
 Select by real user ID (RUID) or name. Identical to -U.

 --user userlist
 Select by effective user ID (EUID) or name. Identical to -u and U.

OUTPUT FORMAT CONTROL
 These options are used to choose the information displayed by ps. The output may differ by personality.

 -c Show different scheduler information for the -l option.

 --context
 Display security context format (for SELinux).

 -f Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When
 used with -L, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the c option, the format keyword args, and the format keyword comm.

 -F Extra full format. See the -f option, which -F implies.

 --format format
 user-defined format. Identical to -o and o.

 j BSD job control format.

 -j Jobs format.

 l Display BSD long format.

 -l Long format. The -y option is often useful with this.

 -M Add a column of security data. Identical to Z (for SELinux).

 O format
 is preloaded o (overloaded). The BSD O option can act like -O (user-defined output format with some common fields predefined) or can be used to specify sort order.
 Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way
 (e.g. with -O or --sort). When used as a formatting option, it is identical to -O, with the BSD personality.

 -O format
 Like -o, but preloaded with some default columns. Identical to -o pid,format,state,tname,time,command or -o pid,format,tname,time,cmd, see -o below.

 o format
 Specify user-defined format. Identical to -o and --format.

 -o format
 User-defined format. format is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The
 recognized keywords are described in the STANDARD FORMAT SPECIFIERS section below. Headers may be renamed (ps -o pid,ruser=RealUser -o comm=Command) as desired. If all
 column headers are empty (ps -o pid= -o comm=) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up
 columns such as WCHAN (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm). Explicit width control (ps opid,wchan:42,cmd) is offered too. The behavior of ps -o pid=X,comm=Y varies
 with personality; output may be one column named "X,comm=Y" or two columns named "X" and "Y". Use multiple -o options when in doubt. Use the PS_FORMAT environment variable
 to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or BSD columns.

 s Display signal format.

 u Display user-oriented format.

 v Display virtual memory format.

 X Register format.

 -y Do not show flags; show rss in place of addr. This option can only be used with -l.

 Z Add a column of security data. Identical to -M (for SELinux).

OUTPUT MODIFIERS
 c Show the true command name. This is derived from the name of the executable file, rather than from the argv value. Command arguments and any modifications to them are thus
 not shown. This option effectively turns the args format keyword into the comm format keyword; it is useful with the -f format option and with the various BSD-style format
 options, which all normally display the command arguments. See the -f option, the format keyword args, and the format keyword comm.

 --cols n
 Set screen width.

 --columns n
 Set screen width.

 --cumulative
 Include some dead child process data (as a sum with the parent).

 e Show the environment after the command.

 f ASCII art process hierarchy (forest).

 --forest
 ASCII art process tree.

 h No header. (or, one header per screen in the BSD personality). The h option is problematic. Standard BSD ps uses this option to print a header on each page of output, but
 older Linux ps uses this option to totally disable the header. This version of ps follows the Linux usage of not printing the header unless the BSD personality has been
 selected, in which case it prints a header on each page of output. Regardless of the current personality, you can use the long options --headers and --no-headers to enable
 printing headers each page or disable headers entirely, respectively.

 -H Show process hierarchy (forest).

 --headers
 Repeat header lines, one per page of output.

 k spec Specify sorting order. Sorting syntax is [+|-]key[,[+|-]key[,...]]. Choose a multi-letter key from the STANDARD FORMAT SPECIFIERS section. The "+" is optional since
 default direction is increasing numerical or lexicographic order. Identical to --sort.

 Examples:
 ps jaxkuid,-ppid,+pid
 ps axk comm o comm,args
 ps kstart_time -ef

 --lines n
 Set screen height.

 -n namelist
 Set namelist file. Identical to N. The namelist file is needed for a proper WCHAN display, and must match the current Linux kernel exactly for correct output. Without
 this option, the default search path for the namelist is:

 $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 Numeric output for WCHAN and USER (including all types of UID and GID).

 N namelist
 Specify namelist file. Identical to -n, see -n above.

 --no-headers
 Print no header line at all. --no-heading is an alias for this option.

 O order
 Sorting order (overloaded). The BSD O option can act like -O (user-defined output format with some common fields predefined) or can be used to specify sort order.
 Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way
 (e.g. with -O or --sort).

 For sorting, obsolete BSD O option syntax is O[+|-]k1[,[+|-]k2[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of
 one-letter short keys k1,k2, ... described in the OBSOLETE SORT KEYS section below. The "+" is currently optional, merely re-iterating the default direction on a key, but
 may help to distinguish an O sort from an O format. The "-" reverses direction only on the key it precedes.

 --rows n
 Set screen height.

 S Sum up some information, such as CPU usage, from dead child processes into their parent. This is useful for examining a system where a parent process repeatedly forks off
 short-lived children to do work.

 --sort spec
 Specify sorting order. Sorting syntax is [+|-]key[,[+|-]key[,...]]. Choose a multi-letter key from the STANDARD FORMAT SPECIFIERS section. The "+" is optional since
 default direction is increasing numerical or lexicographic order. Identical to k. For example: ps jax --sort=uid,-ppid,+pid

 w Wide output. Use this option twice for unlimited width.

 -w Wide output. Use this option twice for unlimited width.

 --width n
 Set screen width.

THREAD DISPLAY
 H Show threads as if they were processes.

 -L Show threads, possibly with LWP and NLWP columns.

 m Show threads after processes.

 -m Show threads after processes.

 -T Show threads, possibly with SPID column.

OTHER INFORMATION
 --help section
 Print a help message. The section argument can be one of simple, list, output, threads, misc or all. The argument can be shortened to one of the underlined letters as in:
 s|l|o|t|m|a.

 --info Print debugging info.

 L List all format specifiers.

 V Print the procps-ng version.

 -V Print the procps-ng version.

 --version
 Print the procps-ng version.

 

กลุ่มคำสั่ง

pgrep(1), pstree(1), top(1), proc(5).

 

Reference:

คำสั่ง Unix – Linux Command

Linux, Unix

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com

Leave a Reply