Путеводитель по Руководству Linux

  User  |  Syst  |  Libr  |  Device  |  Files  |  Other  |  Admin  |  Head  |



   top    ( 1 )

отображать процессы Linux (display Linux processes)

ALTERNATE-DISPLAY Provisions

5a. WINDOWS Overview
       Field Groups/Windows:
          In full-screen mode there is a single window represented by
          the entire screen.  That single window can still be changed to
          display 1 of 4 different field groups (see the `g' interactive
          command, repeated below).  Each of the 4 field groups has a
          unique separately configurable summary area and its own
          configurable task area.

In alternate-display mode, those 4 underlying field groups can now be made visible simultaneously, or can be turned Off individually at your command.

The summary area will always exist, even if it's only the message line. At any given time only one summary area can be displayed. However, depending on your commands, there could be from zero to four separate task displays currently showing on the screen.

Current Window: The `current' window is the window associated with the summary area and the window to which task related commands are always directed. Since in alternate-display mode you can toggle the task display Off, some commands might be restricted for the `current' window.

A further complication arises when you have toggled the first summary area line Off. With the loss of the window name (the `l' toggled line), you'll not easily know what window is the `current' window.

5b. COMMANDS for Windows - | _ :Show/Hide-Window(s) toggles The `-' key turns the `current' window's task display On and Off. When On, that task area will show a minimum of the columns header you've established with the `f' interactive command. It will also reflect any other task area options/toggles you've applied yielding zero or more tasks.

The `_' key does the same for all task displays. In other words, it switches between the currently visible task display(s) and any task display(s) you had toggled Off. If all 4 task displays are currently visible, this interactive command will leave the summary area as the only display element.

* = | + :Equalize/Reset-Window(s) The `=' key forces the `current' window's task display to be visible. It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine cpus) commands. Also, if the window had been scrolled, it will be reset with this command. See topic 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling.

The `+' key does the same for all windows. The four task displays will reappear, evenly balanced, while retaining any customizations previously applied beyond those noted for the `=' command toggle.

* A :Alternate-Display-Mode toggle This command will switch between full-screen mode and alternate-display mode.

The first time you issue this command, all four task displays will be shown. Thereafter when you switch modes, you will see only the task display(s) you've chosen to make visible.

* a | w :Next-Window-Forward/Backward This will change the `current' window, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired window using either key.

Assuming the window name is visible (you have not toggled `l' Off), whenever the `current' window name loses its emphasis/color, that's a reminder the task display is Off and many commands will be restricted.

* g :Choose-Another-Window/Field-Group You will be prompted to enter a number between 1 and 4 designating the field group which should be made the `current' window.

In full-screen mode, this command is necessary to alter the `current' window. In alternate-display mode, it is simply a less convenient alternative to the `a' and `w' commands.

G :Change-Window/Field-Group-Name You will be prompted for a new name to be applied to the `current' window. It does not require that the window name be visible (the `l' toggle to be On).

* The interactive commands shown with an asterisk (`*') have use beyond alternate-display mode. =, A, g are always available a, w act the same with color mapping and fields management

5c. SCROLLING a Window Typically a task window is a partial view into a system's total tasks/threads which shows only some of the available fields/columns. With these scrolling keys, you can move that view vertically or horizontally to reveal any desired task or column.

Up,PgUp :Scroll-Tasks Move the view up toward the first task row, until the first task is displayed at the top of the `current' window. The Up arrow key moves a single line while PgUp scrolls the entire window.

Down,PgDn :Scroll-Tasks Move the view down toward the last task row, until the last task is the only task displayed at the top of the `current' window. The Down arrow key moves a single line while PgDn scrolls the entire window.

Left,Right :Scroll-Columns Move the view of displayable fields horizontally one column at a time.

Note: As a reminder, some fields/columns are not fixed-width but allocated all remaining screen width when visible. When scrolling right or left, that feature may produce some unexpected results initially.

Additionally, there are special provisions for any variable width field when positioned as the last displayed field. Once that field is reached via the right arrow key, and is thus the only column shown, you can continue scrolling horizontally within such a field. See the `C' interactive command below for additional information.

Home :Jump-to-Home-Position Reposition the display to the un-scrolled coordinates.

End :Jump-to-End-Position Reposition the display so that the rightmost column reflects the last displayable field and the bottom task row represents the last task.

Note: From this position it is still possible to scroll down and right using the arrow keys. This is true until a single column and a single task is left as the only display element.

C :Show-scroll-coordinates toggle Toggle an informational message which is displayed whenever the message line is not otherwise being used. That message will take one of two forms depending on whether or not a variable width column has also been scrolled.

scroll coordinates: y = n/n (tasks), x = n/n (fields) scroll coordinates: y = n/n (tasks), x = n/n (fields) + nn

The coordinates shown as n/n are relative to the upper left corner of the `current' window. The additional `+ nn' represents the displacement into a variable width column when it has been scrolled horizontally. Such displacement occurs in normal 8 character tab stop amounts via the right and left arrow keys.

y = n/n (tasks) The first n represents the topmost visible task and is controlled by scrolling keys. The second n is updated automatically to reflect total tasks.

x = n/n (fields) The first n represents the leftmost displayed column and is controlled by scrolling keys. The second n is the total number of displayable fields and is established with the `f' interactive command.

The above interactive commands are always available in full-screen mode but never available in alternate-display mode if the `current' window's task display has been toggled Off.

Note: When any form of filtering is active, you can expect some slight aberrations when scrolling since not all tasks will be visible. This is particularly apparent when using the Up/Down arrow keys.

5d. SEARCHING in a Window You can use these interactive commands to locate a task row containing a particular value.

L :Locate-a-string You will be prompted for the case-sensitive string to locate starting from the current window coordinates. There are no restrictions on search string content.

Searches are not limited to values from a single field or column. All of the values displayed in a task row are allowed in a search string. You may include spaces, numbers, symbols and even forest view artwork.

Keying <Enter> with no input will effectively disable the `&' key until a new search string is entered.

& :Locate-next Assuming a search string has been established, top will attempt to locate the next occurrence.

When a match is found, the current window is repositioned vertically so the task row containing that string is first. The scroll coordinates message can provide confirmation of such vertical repositioning (see the `C' interactive command). Horizontal scrolling, however, is never altered via searching.

The availability of a matching string will be influenced by the following factors.

a. Which fields are displayable from the total available, see topic 3b. MANAGING Fields.

b. Scrolling a window vertically and/or horizontally, see topic 5c. SCROLLING a Window.

c. The state of the command/command-line toggle, see the `c' interactive command.

d. The stability of the chosen sort column, for example PID is good but %CPU bad.

If a search fails, restoring the `current' window home (unscrolled) position, scrolling horizontally, displaying command-lines or choosing a more stable sort field could yet produce a successful `&' search.

The above interactive commands are always available in full-screen mode but never available in alternate-display mode if the `current' window's task display has been toggled Off.

Note: Whenever a Search is active in a window, top will turn column highlighting Off to prevent false matches on internal non- display escape sequences. Such highlighting will be restored when a window's search string is empty. See the `x' interactive command for additional information on sort column highlighting.

5e. FILTERING in a Window You can use this `Other Filter' feature to establish selection criteria which will then determine which tasks are shown in the `current' window. Such filters can be made persistent if preserved in the rcfile via the 'W' interactive command.

Establishing a filter requires: 1) a field name; 2) an operator; and 3) a selection value, as a minimum. This is the most complex of top's user input requirements so, when you make a mistake, command recall will be your friend. Remember the Up/Down arrow keys or their aliases when prompted for input.

Filter Basics

1. field names are case sensitive and spelled as in the header

2. selection values need not comprise the full displayed field

3. a selection is either case insensitive or sensitive to case

4. the default is inclusion, prepending `!' denotes exclusions

5. multiple selection criteria can be applied to a task window

6. inclusion and exclusion criteria can be used simultaneously

7. the 1 equality and 2 relational filters can be freely mixed

8. separate unique filters are maintained for each task window

If a field is not turned on or is not currently in view, then your selection criteria will not affect the display. Later, should a filtered field become visible, the selection criteria will then be applied.

Keyboard Summary

o :Other-Filter (lower case) You will be prompted to establish a filter that ignores case when matching.

O :Other-Filter (upper case) You will be prompted to establish a case sensitive filter.

^O :Show-Active-Filters (Ctrl key + `o') This can serve as a reminder of which filters are active in the `current' window. A summary will be shown on the message line until you press the <Enter> key.

= :Reset-Filtering in current window This clears all of your selection criteria in the `current' window. It also has additional impact so please see topic 4a. GLOBAL Commands.

+ :Reset-Filtering in all windows This clears the selection criteria in all windows, assuming you are in alternate-display mode. As with the `=' interactive command, it too has additional consequences so you might wish to see topic 5b. COMMANDS for Windows.

Input Requirements

When prompted for selection criteria, the data you provide must take one of two forms. There are 3 required pieces of information, with a 4th as optional. These examples use spaces for clarity but your input generally would not. #1 #2 #3 ( required ) Field-Name ? include-if-value ! Field-Name ? exclude-if-value #4 ( optional )

Items #1, #3 and #4 should be self-explanatory. Item #2 represents both a required delimiter and the operator which must be one of either equality (`=') or relation (`<' or `>').

The `=' equality operator requires only a partial match and that can reduce your `if-value' input requirements. The `>' or `<' relational operators always employ string comparisons, even with numeric fields. They are designed to work with a field's default justification and with homogeneous data. When some field's numeric amounts have been subjected to scaling while others have not, that data is no longer homogeneous.

If you establish a relational filter and you have changed the default Numeric or Character justification, that filter is likely to fail. When a relational filter is applied to a memory field and you have not changed the scaling, it may produce misleading results. This happens, for example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) when compared as strings.

If your filtered results appear suspect, simply altering justification or scaling may yet achieve the desired objective. See the `j', `J' and `e' interactive commands for additional information.

Potential Problems

These GROUP filters could produce the exact same results or the second one might not display anything at all, just a blank task window. GROUP=root ( only the same results when ) GROUP=ROOT ( invoked via lower case `o' )

Either of these RES filters might yield inconsistent and/or misleading results, depending on the current memory scaling factor. Or both filters could produce the exact same results. RES>9999 ( only the same results when ) !RES<10000 ( memory scaling is at `KiB' )

This nMin filter illustrates a problem unique to scalable fields. This particular field can display a maximum of 4 digits, beyond which values are automatically scaled to KiB or above. So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc. nMin>9999 ( always a blank task window )

Potential Solutions

These examples illustrate how Other Filtering can be creatively applied to achieve almost any desired result. Single quotes are sometimes shown to delimit the spaces which are part of a filter or to represent a request for status (^O) accurately. But if you used them with if-values in real life, no matches would be found.

Assuming field nTH is displayed, the first filter will result in only multi-threaded processes being shown. It also reminds us that a trailing space is part of every displayed field. The second filter achieves the exact same results with less typing. !nTH=` 1 ' ( ' for clarity only ) nTH>1 ( same with less i/p )

With Forest View mode active and the COMMAND column in view, this filter effectively collapses child processes so that just 3 levels are shown. !COMMAND=` `- ' ( ' for clarity only )

The final two filters appear as in response to the status request key (^O). In reality, each filter would have required separate input. The PR example shows the two concurrent filters necessary to display tasks with priorities of 20 or more, since some might be negative. Then by exploiting trailing spaces, the nMin series of filters could achieve the failed `9999' objective discussed above. `PR>20' + `!PR=-' ( 2 for right result ) `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...

Note: Whenever Other Filtering is active in a window, top will turn column highlighting Off to prevent false matches on internal non-display escape sequences. Such highlighting will be restored when a window is no longer subject to filtering. See the `x' interactive command for additional information on sort column highlighting.