Linux top command FAQ: Is there a utility to show Linux processes interactively, like the Unix/Linux ps command, but more like a GUI ro character-based interactive tool?
I was just writing a friend about how to use the Linux ps command, when I thought why bother, what he really needs to see right now is the Linux top command. The Linux top command is an interactive utility that displays a character-based screen of all processes running on the current system. The screen updates itself every few seconds, and you can sort the screen contents by characteristics like CPU Usage or Memory Use.
In this tutorial we'll take a look at the most common uses of the top command, including showing how to sort the output by CPU and memory use, and change the top command display.
When you issue the top command like this:
you'll see a screen that looks something like this:
As mentioned, this display will update itself automatically, depending on any settings that you have configured, and the version of the top command you're using.
To get help on how to use the top command, just press the letter '?' or 'h' when the top command is running. Doing so will display the following top command help screen:
In case I made that image too small, here's the content of this top help screen in text format:
Z,B Global: 'Z' change color mappings; 'B' disable/enable bold l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info 1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode f,o . Fields/Columns: 'f' add or remove; 'o' change display order F or O . Select sort field <,> . Move sort field: '<' next col left; '>' next col right R,H . Toggle: 'R' normal/reverse sort; 'H' show threads c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u . Show specific user only n or # . Set maximum tasks displayed k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval W Write configuration file q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows,
In my opinion, the most important thing you need to know from this help screen is how to sort the top command display/output. Using the top command that came with my CentOS Linux system as of September, 2009, you sort the top command output by first pressing the 'O' key (the uppercase letter 'o'), then choosing a sort column on the following screen.
Here are two quick examples. First, to sort the top command output by memory use, follow these steps:
Or, to sort the top command display by CPU usage, follow these steps:
Here's the text version of the Linux top command sort options screen:
Current Sort Field: K for window 1:Def Select sort field via field letter, type any other key to return a: PID = Process Id z: Flags = Task Flags <sched.h> b: PPID = Parent Process Pid c: RUSER = Real user name Note1: d: UID = User Id If a selected sort field can't be e: USER = User Name shown due to screen width or your f: GROUP = Group Name field order, the '<' and '>' keys g: TTY = Controlling Tty will be unavailable until a field h: PR = Priority within viewable range is chosen. i: NI = Nice value j: P = Last used cpu (SMP) Note2: * K: %CPU = CPU usage Field sorting uses internal values, l: TIME = CPU Time not those in column display. Thus, m: TIME+ = CPU Time, hundredths the TTY & WCHAN fields will violate n: %MEM = Memory usage (RES) strict ASCII collating sequence. o: VIRT = Virtual Image (kb) (shame on you if WCHAN is chosen) p: SWAP = Swapped size (kb) q: RES = Resident size (kb) r: CODE = Code size (kb) s: DATA = Data+Stack size (kb) t: SHR = Shared Mem size (kb) u: nFLT = Page Fault count v: nDRT = Dirty Pages count w: S = Process Status x: COMMAND = Command name/line y: WCHAN = Sleeping in Function
As you can see from that output, you can sort the top command output by many different pieces of process information. The asterisk indicates that the output is currently sorted by the %CPU column.
To exit/quit the top command, just type the letter 'q'.
The top command implementation is pretty different on Mac OS X. The top command itself brings up a screen, but the columns are different by default, and the commands you can issue are different. I'm not going to get into all the details for Mac OS X, but just use the '?' to get help.
You can control "summary" lines that are displayed on the top lines of the top command display. Use the following one-letter commands to toggle the display of the lines at the top of the display: