neulab/tldr huggingface dataset:
Thereafter, in that task window only matching users will be shown, or possibly no processes will be shown.  Prepending an exclamation point (`!') to the user id or name instructs top to display only processes with users not matching the one provided.
Different task windows can be used to filter different users. Later, if you wish to monitor all users again in the `current' window, re-issue this command but just press <Enter> at the prompt.
V  :Forest-View-Mode toggle In this mode, processes are reordered according to their parents and the layout of the COMMAND column resembles that of a tree.  In forest view mode it is still possible to toggle between program name and command line (see the `c' interactive command) or between processes and threads (see the `H' interactive command).
Note: Typing any key affecting the sort order will exit forest view mode in the `current' window.  See topic 4c. TASK AREA Commands, SORTING for information on those keys.
v  :Hide/Show-Children toggle When in forest view mode, this key serves as a toggle to collapse or expand the children of a parent.
The toggle is applied against the first (topmost) process in the `current' window.  See topic 5c. SCROLLING a Window for additional information regarding vertical scrolling.
If the target process has not forked any children, this key has no effect.  It also has no effect when not in forest view mode.
SIZE of task window
i  :Idle-Process toggle Displays all tasks or just active tasks.  When this toggle is Off, tasks that have not used any CPU since the last update will not be displayed.  However, due to the granularity of the %CPU and TIME+ fields, some processes may still be displayed that appear to have used no CPU.
If this command is applied to the last task display when in alternate-display mode, then it will not affect the window's size, as all prior task displays will have already been painted.
n | #  :Set-Maximum-Tasks You will be prompted to enter the number of tasks to display.  The lessor of your number and available screen rows will be used.
When used in alternate-display mode, this is the command that gives you precise control over the size of each currently visible task display, except for the very last.  It will not affect the last window's size, as all prior task displays will have already been painted.
Note: If you wish to increase the size of the last visible task display when in alternate-display mode, simply decrease the size of the task display(s) above it.
SORTING of task window
For compatibility, this top supports most of the former top sort keys. Since this is primarily a service to former top users, these commands do not appear on any help screen. command   sorted-field                  supported A         start time (non-display)      No M         %MEM                          Yes N         PID                           Yes P         %CPU                          Yes T         TIME+                         Yes
Before using any of the following sort provisions, top suggests that you temporarily turn on column highlighting using the `x' interactive command.  That will help ensure that the actual sort environment matches your intent.
The following interactive commands will only be honored when the current sort field is visible.  The sort field might not be visible because: 1) there is insufficient Screen Width 2) the `f' interactive command turned it Off
<  :Move-Sort-Field-Left Moves the sort column to the left unless the current sort field is the first field being displayed.
>  :Move-Sort-Field-Right Moves the sort column to the right unless the current sort field is the last field being displayed.
The following interactive commands will always be honored whether or not the current sort field is visible.
f | F  :Fields-Management These keys display a separate screen where you can change which field is used as the sort column, among other functions.  This can be a convenient way to simply verify the current sort field, when running top with column highlighting turned Off.
R  :Reverse/Normal-Sort-Field toggle Using this interactive command you can alternate between high- to-low and low-to-high sorts.
Note: Field sorting uses internal values, not those in column display. Thus, the TTY and WCHAN fields will violate strict ASCII collating sequence.
4d. COLOR Mapping When you issue the `Z' interactive command, you will be presented with a separate screen.  That screen can be used to change the colors in just the `current' window or in all four windows before returning to the top display.
The following interactive commands are available. 4 upper case letters to select a target 8 numbers to select a color normal toggles available B         :bold disable/enable b         :running tasks "bold"/reverse z         :color/mono other commands available a/w       :apply, then go to next/prior <Enter>   :apply and exit q         :abandon current changes and exit
If you use `a' or `w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window.  You can, of course, easily return to any window and reapply different colors or turn colors Off completely with the `z' toggle.
The Color Mapping screen can also be used to change the `current' window/field group in either full-screen mode or alternate-display mode. Whatever was targeted when `q' or <Enter> was pressed will be made current as you return to the top display.
5. 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), `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 systems'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.
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 presistent 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 )
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.
6. FILES 6a. PERSONAL Configuration File This file is created or updated via the 'W' interactive command.
The legacy version is written as `$HOME/.your-name-4-top' + `rc' with a leading period.
A newly created configuration file is written as procps/your-name-4-top' + `rc' without a leading period.  The procps directory will be subordinate to either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config directory.
While not intended to be edited manually, here is the general layout: global   # line  1: the program name/alias notation "      # line  2: id,altscr,irixps,delay,curwin per ea   # line  a: winname,fieldscur window   # line  b: winflags,sortindx,maxtasks,etc "      # line  c: summclr,msgsclr,headclr,taskclr global   # line 15: additional miscellaneous settings "      # any remaining lines are devoted to optional "      # active 'other filters' discussed in section 5e above "      # plus 'inspect' entries discussed in section 6b below
If a valid absolute path to the rcfile cannot be established, customizations made to a running top will be impossible to preserve.
6b. ADDING INSPECT Entries To exploit the `Y' interactive command, you must add entries at the end of the top personal configuration file.  Such entries simply reflect a file to be read or command/pipeline to be executed whose results will then be displayed in a separate scrollable, searchable window.
If you don't know the location or name of your top rcfile, use the `W' interactive command to rewrite it and note those details.
Inspect entries can be added with a redirected echo or by editing the configuration file.  Redirecting an echo risks overwriting the rcfile should it replace (>) rather than append (>>) to that file.  Conversely, when using an editor care must be taken not to corrupt existing lines, some of which will contain unprintable data or unusual characters.
Those Inspect entries beginning with a `#' character are ignored, regardless of content.  Otherwise they consist of the following 3 elements, each of which must be separated by a tab character (thus 2 `\t' total):
.type:  literal `file' or `pipe' .name:  selection shown on the Inspect screen .fmts:  string representing a path or command
The two types of Inspect entries are not interchangeable.  Those designated `file' will be accessed using fopen and must reference a single file in the `.fmts' element.  Entries specifying `pipe' will employ popen, their `.fmts' element could contain many pipelined commands and, none can be interactive.
If the file or pipeline represented in your `.fmts' deals with the specific PID input or accepted when prompted, then the format string must also contain the `%d' specifier, as these examples illustrate.
.fmts=  /proc/%d/numa_maps .fmts=  lsof -P -p %d
For `pipe' type entries only, you may also wish to redirect stderr to stdout for a more comprehensive result.  Thus the format string becomes:
.fmts=  pmap -x %d 2>&1
Here are examples of both types of Inspect entries as they might appear in the rcfile.  The first entry will be ignored due to the initial `#' character.  For clarity, the pseudo tab depictions (^I) are surrounded by an extra space but the actual tabs would not be.
# pipe ^I Sockets ^I lsof -n -P -i 2>&1 pipe ^I Open Files ^I lsof -P -p %d 2>&1 file ^I NUMA Info ^I /proc/%d/numa_maps pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr
Except for the commented entry above, these next examples show what could be echoed to achieve similar results, assuming the rcfile name was `.toprc'.  However, due to the embedded tab characters, each of these lines should be preceded by `/bin/echo -e', not just a simple an `echo', to enable backslash interpretation regardless of which shell you use.
"pipe\tOpen Files\tlsof -P -p %d 2>&1" >> ~/.toprc "file\tNUMA Info\t/proc/%d/numa_maps" >> ~/.toprc "pipe\tLog\ttail -n200 /var/log/syslog | sort -Mr" >> ~/.toprc
If any inspect entry you create produces output with unprintable characters they will be displayed in either the ^C notation or hexadecimal <FF> form, depending on their value.  This applies to tab characters as well, which will show as `^I'.  If you want a truer representation, any embedded tabs should be expanded.  The following example takes what could have been a `file' entry but employs a `pipe' instead so as to expand the embedded tabs.
# next would have contained `\t' ... # file ^I <your_name> ^I /proc/%d/status # but this will eliminate embedded `\t' ... pipe ^I <your_name> ^I cat /proc/%d/status | expand -
Note: Some programs might rely on SIGINT to end.  Therefore, if a `pipe' such as the following is established, one must use Ctrl-C to terminate it in order to review the results.  This is the single occasion where a `^C' will not also terminate top.
pipe ^I Trace ^I /usr/bin/strace -p %d 2>&1
Lastly, while `pipe' type entries have been discussed in terms of pipelines and commands, there is nothing to prevent you from including shell scripts as well.  Perhaps even newly created scripts designed specifically for the `Y' interactive command.
For example, as the number of your Inspect entries grows over time, the `Options:' row will be truncated when screen width is exceeded.  That does not affect operation other than to make some selections invisible. However, if some choices are lost to truncation but you want to see more options, there is an easy solution hinted at below.
Inspection Pause at pid ... Use:  left/right then <Enter> ... Options:  help  1  2  3  4  5  6  7  8  9  10  11 ...
The entries in the top rcfile would have a number for the `.name' element and the `help' entry would identify a shell script you've written explaining what those numbered selections actually mean.  In that way, many more choices can be made visible.
6c. SYSTEM Configuration File This configuration file represents defaults for users who have not saved their own configuration file.  The format mirrors exactly the personal configuration file and can also include `inspect' entries as explained above.
Creating it is a simple process.
1. Configure top appropriately for your installation and preserve that configuration with the `W' interactive command.
2. Add and test any desired `inspect' entries.
3. Copy that configuration file to the /etc/ directory as `topdefaultrc'.
6d. SYSTEM Restrictions File The presence of this file will influence which version of the help screen is shown to an ordinary user.
More importantly, it will limit what ordinary users are allowed to do when top is running.  They will not be able to issue the following commands. k        Kill a task r        Renice a task d or s   Change delay/sleep interval
This configuration file is not created by top.  Rather, it is created manually and placed it in the /etc/ directory as `toprc'.
It should have exactly two lines, as shown in this example: s        # line 1: secure mode switch 5.0      # line 2: delay interval in seconds
7. STUPID TRICKS Sampler Many of these tricks work best when you give top a scheduling boost.  So plan on starting him with a nice value of -10, assuming you've got the authority.
7a. Kernel Magic For these stupid tricks, top needs full-screen mode.
•  The user interface, through prompts and help, intentionally implies that the delay interval is limited to tenths of a second.  However, you're free to set any desired delay.  If you want to see Linux at his scheduling best, try a delay of .09 seconds or less.
For this experiment, under x-windows open an xterm and maximize it. Then do the following: . provide a scheduling boost and tiny delay via: nice -n -10 top -d.09 . keep sorted column highlighting Off so as to minimize path length . turn On reverse row highlighting for emphasis . try various sort columns (TIME/MEM work well), and normal or reverse sorts to bring the most active processes into view
What you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this.
•  Under an xterm using `white-on-black' colors, on top's Color Mapping screen set the task color to black and be sure that task highlighting is set to bold, not reverse.  Then set the delay interval to around .3 seconds.
After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks.
•  Delete the existing rcfile, or create a new symlink.  Start this new version then type `T' (a secret key, see topic 4c. Task Area Commands, SORTING) followed by `W' and `q'.  Finally, restart the program with -d0 (zero delay).
Your display will be refreshed at three times the rate of the former top, a 300% speed advantage.  As top climbs the TIME ladder, be as patient as you can while speculating on whether or not top will ever reach the top.
7b. Bouncing Windows For these stupid tricks, top needs alternate-display mode.
•  With 3 or 4 task displays visible, pick any window other than the last and turn idle processes Off using the `i' command toggle.  Depending on where you applied `i', sometimes several task displays are bouncing and sometimes it's like an accordion, as top tries his best to allocate space.
•  Set each window's summary lines differently: one with no memory (`m'); another with no states (`t'); maybe one with nothing at all, just the message line.  Then hold down `a' or `w' and watch a variation on bouncing windows  --  hopping windows.
•  Display all 4 windows and for each, in turn, set idle processes to Off using the `i' command toggle.  You've just entered the "extreme bounce" zone.
7c. The Big Bird Window This stupid trick also requires alternate-display mode.
•  Display all 4 windows and make sure that 1:Def is the `current' window.  Then, keep increasing window size with the `n' interactive command until all the other task displays are "pushed out of the nest".
When they've all been displaced, toggle between all visible/invisible windows using the `_' command toggle.  Then ponder this: is top fibbing or telling honestly your imposed truth?
7d. The Ol' Switcheroo This stupid trick works best without alternate-display mode, since justification is active on a per window basis.
•  Start top and make COMMAND the last (rightmost) column displayed.  If necessary, use the `c' command toggle to display command lines and ensure that forest view mode is active with the `V' command toggle.
Then use the up/down arrow keys to position the display so that some truncated command lines are shown (`+' in last position).  You may have to resize your xterm to produce truncation.
Lastly, use the `j' command toggle to make the COMMAND column right justified.
Now use the right arrow key to reach the COMMAND column.  Continuing with the right arrow key, watch closely the direction of travel for the command lines being shown.
some lines travel left, while others travel right
eventually all lines will Switcheroo, and move right
8. BUGS Please send bug reports to ⟨procps@freelists.org⟩.
9. SEE Also free(1), ps(1), uptime(1), atop(1), slabtop(1), vmstat(8), w(1)
NDCTL(1)                          ndctl Manual                          NDCTL(1)
ndctl - Manage "libnvdimm" subsystem devices (Non-volatile Memory)
ndctl [--version] [--help] [OPTIONS] COMMAND [ARGS]
-v, --version Display ndctl version.
-h, --help Run ndctl help command.
ndctl is utility for managing the "libnvdimm" kernel subsystem. The "libnvdimm" subsystem defines a kernel device model and control message interface for platform NVDIMM resources like those defined by the ACPI 6.0 NFIT (NVDIMM Firmware Interface Table). Operations supported by the tool include, provisioning capacity (namespaces), as well as enumerating/enabling/disabling the devices (dimms, regions, namespaces) associated with an NVDIMM bus.
Copyright © 2016 - 2020, Intel Corporation. License GPLv2: GNU GPL version 2 http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
ndctl-create-namespace(1), ndctl-destroy-namespace(1), ndctl-check-namespace(1), ndctl-enable-region(1), ndctl-disable-region(1), ndctl-enable-dimm(1), ndctl-disable-dimm(1), ndctl-enable-namespace(1), ndctl-disable-namespace(1), ndctl-zero-labels(1), ndctl-read-labels(1), ndctl-inject-error(1), ndctl-list(1), LIBNVDIMM <https://www.kernel.org/doc/Documentation/nvdimm/nvdimm.txt> Overview" , NVDIMM Driver <http://pmem.io/documents/NVDIMM_Driver_Writers_Guide.pdf> Writer’s Guide"
GIT-REPACK(1)                      Git Manual                      GIT-REPACK(1)
git-repack - Pack unpacked objects in a repository
git repack [-a] [-A] [-d] [-f] [-F] [-l] [-n] [-q] [-b] [-m] [--window=<n>] [--depth=<n>] [--threads=<n>] [--keep-pack=<pack-name>] [--write-midx]
This command is used to combine all objects that do not currently reside in a "pack", into a pack. It can also be used to re-organize existing packs into a single, more efficient pack.
A pack is a collection of objects, individually compressed, with delta compression applied, stored in a single file, with an associated index file.
Packs are used to reduce the load on mirror systems, backup engines, disk storage, etc.
-a Instead of incrementally packing the unpacked objects, pack everything referenced into a single pack. Especially useful when packing a repository that is used for private development. Use with -d. This will clean up the objects that git prune leaves behind, but git fsck --full --dangling shows as dangling.
Note that users fetching over dumb protocols will have to fetch the whole new pack in order to get any contained object, no matter how many other objects in that pack they already have locally.
Promisor packfiles are repacked separately: if there are packfiles that have an associated ".promisor" file, these packfiles will be repacked into another separate pack, and an empty ".promisor" file corresponding to the new separate pack will be written.
-A Same as -a, unless -d is used. Then any unreachable objects in a previous pack become loose, unpacked objects, instead of being left in the old pack. Unreachable objects are never intentionally added to a pack, even when repacking. This option prevents unreachable objects from being immediately deleted by way of being left in the old pack and then removed. Instead, the loose unreachable objects will be pruned according to normal expiry rules with the next git gc invocation. See git-gc(1).
-d After packing, if the newly created packs make some existing packs redundant, remove the redundant packs. Also run git prune-packed to remove redundant loose object files.
-l Pass the --local option to git pack-objects. See git-pack-objects(1).
-f Pass the --no-reuse-delta option to git-pack-objects, see git-pack- objects(1).
-F Pass the --no-reuse-object option to git-pack-objects, see git-pack- objects(1).
-q Pass the -q option to git pack-objects. See git-pack-objects(1).
-n Do not update the server information with git update-server-info. This option skips updating local catalog files needed to publish this repository (or a direct copy of it) over HTTP or FTP. See git-update- server-info(1).
--window=<n>, --depth=<n> These two options affect how the objects contained in the pack are stored using delta compression. The objects are first internally sorted by type, size and optionally names and compared against the other objects within --window to see if using delta compression saves space.  --depth limits the maximum delta depth; making it too deep affects the performance on the unpacker side, because delta data needs to be applied that many times to get to the necessary object.
The default value for --window is 10 and --depth is 50. The maximum depth is 4095.
--threads=<n> This option is passed through to git pack-objects.
--window-memory=<n> This option provides an additional limit on top of --window; the window size will dynamically scale down so as to not take up more than <n> bytes in memory. This is useful in repositories with a mix of large and small objects to not run out of memory with a large window, but still be able to take advantage of the large window for the smaller objects. The size can be suffixed with "k", "m", or "g". --window-memory=0 makes memory usage unlimited. The default is taken from the pack.windowMemory configuration variable. Note that the actual memory usage will be the limit multiplied by the number of threads used by git-pack-objects(1).
--max-pack-size=<n> Maximum size of each output pack file. The size can be suffixed with "k", "m", or "g". The minimum size allowed is limited to 1 MiB. If specified, multiple packfiles may be created, which also prevents the creation of a bitmap index. The default is unlimited, unless the config variable pack.packSizeLimit is set. Note that this option may result in a larger and slower repository; see the discussion in pack.packSizeLimit.
-b, --write-bitmap-index Write a reachability bitmap index as part of the repack. This only makes sense when used with -a, -A or -m, as the bitmaps must be able to refer to all reachable objects. This option overrides the setting of repack.writeBitmaps. This option has no effect if multiple packfiles are created, unless writing a MIDX (in which case a multi-pack bitmap is created).
--pack-kept-objects Include objects in .keep files when repacking. Note that we still do not delete .keep packs after pack-objects finishes. This means that we may duplicate objects, but this makes the option safe to use when there are concurrent pushes or fetches. This option is generally only useful if you are writing bitmaps with -b or repack.writeBitmaps, as it ensures that the bitmapped packfile has the necessary objects.
--keep-pack=<pack-name> Exclude the given pack from repacking. This is the equivalent of having .keep file on the pack.  <pack-name> is the pack file name without leading directory (e.g.  pack-123.pack). The option could be specified multiple times to keep multiple packs.
--unpack-unreachable=<when> When loosening unreachable objects, do not bother loosening any objects older than <when>. This can be used to optimize out the write of any objects that would be immediately pruned by a follow-up git prune.
-k, --keep-unreachable When used with -ad, any unreachable objects from existing packs will be appended to the end of the packfile instead of being removed. In addition, any unreachable loose objects will be packed (and their loose counterparts removed).
-i, --delta-islands Pass the --delta-islands option to git-pack-objects, see git-pack- objects(1).
-g=<factor>, --geometric=<factor> Arrange resulting pack structure so that each successive pack contains at least <factor> times the number of objects as the next-largest pack.
git repack ensures this by determining a "cut" of packfiles that need to be repacked into one in order to ensure a geometric progression. It picks the smallest set of packfiles such that as many of the larger packfiles (by count of objects contained in that pack) may be left intact.
Unlike other repack modes, the set of objects to pack is determined uniquely by the set of packs being "rolled-up"; in other words, the packs determined to need to be combined in order to restore a geometric progression.
When --unpacked is specified, loose objects are implicitly included in this "roll-up", without respect to their reachability. This is subject to change in the future. This option (implying a drastically different repack mode) is not guaranteed to work with all other combinations of option to git repack.
When writing a multi-pack bitmap, git repack selects the largest resulting pack as the preferred pack for object selection by the MIDX (see git-multi-pack-index(1)).
-m, --write-midx Write a multi-pack index (see git-multi-pack-index(1)) containing the non-redundant packs.
Various configuration variables affect packing, see git-config(1) (search for "pack" and "delta").
By default, the command passes --delta-base-offset option to git pack-objects; this typically results in slightly smaller packs, but the generated packs are incompatible with versions of Git older than version 1.4.4. If you need to share your repository with such ancient Git versions, either directly or via the dumb http protocol, then you need to set the configuration variable repack.UseDeltaBaseOffset to "false" and repack. Access from old Git versions over the native protocol is unaffected by this option as the conversion is performed on the fly as needed in that case.
Delta compression is not used on objects larger than the core.bigFileThreshold configuration variable and on files with the attribute delta set to false.
git-pack-objects(1) git-prune-packed(1)
XAR(1)                            User Commands                           XAR(1)
xar - eXtensible ARchiver
xar -[ctx][v] ...
The XAR project aims to provide an easily extensible archive format. Important design decisions include an easily extensible XML table of contents (TOC) for random access to archived files, storing the TOC at the beginning of the archive to allow for efficient handling of streamed archives, the ability to handle files of arbitrarily large sizes, the ability to choose independent encodings for individual files in the archive, the ability to store checksums for individual files in both compressed and uncompressed form, and the ability to query the table of content's rich meta-data.
One of the following options must be used:
-c     Creates an archive
-t     Lists the contents of an archive
-x     Extracts an archive
NOTE: all of the above require the use of the -f option (filename) as this release of xar doesn't correctly handle pipes or sockets.
-f     The filename to use for creation, listing or extraction.  With extraction, this can be a POSIX regular expression.
--compression Specifies the compression type to use.  Valid values: none, gzip, bzip2.  Default value: gzip
--dump-toc=<filename> Has xar dump the xml header into the specified file.  "-" can be specified to mean stdout.
--dump-header Has xar print out the xar binary header information to stdout.
--list-subdocs List the subdocuments in the xml header
--toc-cksum Specifies the hashing algorithm to use for xml header verification.  Valid values: none, sha1, and md5.  Default value: sha1
-l     On archival, stay on the local device.
-P     On extract, set ownership based on uid/gid.
-p     On extract, set ownership based on symbolic names, if possible.
-s <filename> On extract, specifies the file to extract subdocuments to.  On archival, specifies an xml file to add as a subdocument.
-v     Verbose output
--exclude Specifies a POSIX regular expression of files to exclude from adding to the archive during creation or from being extracted during extraction.  This option can be specified multiple times.
--rsize Specifies a size (in bytes) for the internal libxar read buffer while performing I/O.
--coalesce-heap When multiple files in the archive are identical, only store one copy of the data in the heap.  This creates smaller archives, but the archives created are not streamable.
--link-same When the data section of multiple files are identical, hardlink them within the archive.
--no-compress Specifies a POSIX regular expression of files to archive, but not compress.  The archived files will be copied raw into the archive. This can be used to exclude already gzipped files from being gzipped during the archival process.
xar -cf sample.xar /home/uid Create a xar archive of all files in /home/uid
xar -tf sample.xar List the contents of the xar archive sample.xar
xar -xf sample.xar Extract the contents of sample.xar to the current working directory
Doesn't currently work with pipes or streams.  Might be fixed in a future release.
Probably one or two more somewhere in there. If you find one please report it to http://code.google.com/p/xar/
Rob Braun <bbraun AT synack DOT net> Landon Fuller <landonf AT bikemonkey DOT org> David Leimbach Kevin Van Vechten
OPENCONNECT(8)               System Manager's Manual              OPENCONNECT(8)
openconnect - Multi-protocol VPN client, for Cisco AnyConnect VPNs and others
openconnect [--config configfile] [-b,--background] [--pid-file pidfile] [-c,--certificate cert] [-e,--cert-expire-warning days] [-k,--sslkey key] [-C,--cookie cookie] [--cookie-on-stdin] [--compression MODE] [-d,--deflate] [-D,--no-deflate] [--force-dpd interval] [--force-trojan interval] [-F,--form-entry form:opt=value] [-g,--usergroup group] [-h,--help] [--http-auth methods] [-i,--interface ifname] [-l,--syslog] [--timestamp] [--passtos] [-U,--setuid user] [--csd-user user] [-m,--mtu mtu] [--base-mtu mtu] [-p,--key-password pass] [-P,--proxy proxyurl] [--proxy-auth methods] [--no-proxy] [--libproxy] [--key-password-from-fsid] [-q,--quiet] [-Q,--queue-len len] [-s,--script vpnc-script] [-S,--script-tun] [-u,--user name] [-V,--version] [-v,--verbose] [-x,--xmlconfig config] [--authgroup group] [--authenticate] [--cookieonly] [--printcookie] [--cafile file] [--disable-ipv6] [--dtls-ciphers list] [--dtls12-ciphers list] [--dtls-local-port port] [--dump-http-traffic] [--no-system-trust] [--pfs] [--no-dtls] [--no-http-keepalive] [--no-passwd] [--no-xmlpost] [--non-inter] [--passwd-on-stdin] [--protocol proto] [--token-mode mode] [--token-secret {secret[,counter]|@file}] [--reconnect-timeout] [--resolve host:ip] [--servercert sha1] [--useragent string] [--version-string string] [--local- hostname string] [--os string] [https://]server[:port][/group]
The program openconnect connects to VPN servers which use standard TLS/SSL, DTLS, and ESP protocols for data transport.
It was originally written to support Cisco "AnyConnect" VPN servers, and has since been extended with experimental support for Juniper Network Connect (--protocol=nc) and Junos Pulse VPN servers (--protocol=pulse) and PAN GlobalProtect VPN servers (--protocol=gp).
The connection happens in two phases. First there is a simple HTTPS connection over which the user authenticates somehow - by using a certificate, or password or SecurID, etc.  Having authenticated, the user is rewarded with an authentication cookie which can be used to make the real VPN connection.
The second phase uses that cookie to connect to a tunnel via HTTPS, and data packets can be passed over the resulting connection. When possible, a UDP tunnel is also configured: AnyConnect uses DTLS, while Juniper and GlobalProtect use UDP-encapsulated ESP. The UDP tunnel may be disabled with --no-dtls, but is preferred when correctly supported by the server and network for performance reasons. (TCP performs poorly and unreliably over TCP-based tunnels; see http://sites.inka.de/~W1011/devel/tcp- tcp.html.)
--config=CONFIGFILE Read further options from CONFIGFILE before continuing to process options from the command line. The file should contain long-format options as would be accepted on the command line, but without the two leading -- dashes. Empty lines, or lines where the first non- space character is a # character, are ignored.
Any option except the config option may be specified in the file.
-b,--background Continue in background after startup
--pid-file=PIDFILE Save the pid to PIDFILE when backgrounding
-c,--certificate=CERT Use SSL client certificate CERT which may be either a file name or, if OpenConnect has been built with an appropriate version of GnuTLS, a PKCS#11 URL.
-e,--cert-expire-warning=DAYS Give a warning when SSL client certificate has DAYS left before expiry
-k,--sslkey=KEY Use SSL private key KEY which may be either a file name or, if OpenConnect has been built with an appropriate version of GnuTLS, a PKCS#11 URL.
-C,--cookie=COOKIE Use authentication cookie COOKIE.
--cookie-on-stdin Read cookie from standard input.
-d,--deflate Enable all compression, including stateful modes. By default, only stateless compression algorithms are enabled.
-D,--no-deflate Disable all compression.
--compression=MODE Set compression mode, where MODE is one of stateless, none, or all.