neulab/tldr huggingface dataset:
-S <button size> Enable single application mode. This option can be used when running a single, maximized application (via -s). When the minimize button of the windows application is pressed, the rdesktop window is minimized instead of the remote application. The maximize/restore button is disabled. For this to work, you must specify the correct button size, in pixels. The special word "standard" means 18 pixels.
-T <title> Sets the window title. The title must be specified using an UTF-8 string.
-N     Enable numlock synchronization between the Xserver and the remote RDP session.  This is useful with applications that looks at the numlock state, but might cause problems with some Xservers like Xvnc.
-X <windowid> Embed rdesktop-window in another window. The windowid is expected to be decimal or hexadecimal (prefixed by 0x).
-a <bpp> Sets the colour depth for the connection (8, 15, 16, 24 or 32). More than 8 bpp are only supported when connecting to Windows XP (up to 16 bpp) or newer.  Note that the colour depth may also be limited by the server configuration. The default value is the depth of the root window.
-z     Enable compression of the RDP datastream.
-x <experience> Changes default bandwidth performance behaviour for RDP5. By default only theming is enabled, and all other options are disabled (corresponding to modem (56 Kbps)). Setting experience to b[roadband] enables menu animations and full window dragging. Setting experience to l[an] will also enable the desktop wallpaper. Setting experience to m[odem] disables all (including themes). Experience can also be a hexadecimal number containing the flags.
-P     Enable caching of bitmaps to disk (persistent bitmap caching). This generally improves performance (especially on low bandwidth connections) and reduces network traffic at the cost of slightly longer startup and some disk space.  (10MB for 8-bit colour, 20MB for 15/16-bit colour, 30MB for 24-bit colour and 40MB for 32-bit colour sessions)
-r <device> Enable redirection of the specified device on the client, such that it appears on the server. Note that the allowed redirections may be restricted by the server configuration.
Following devices are currently supported:
-r comport:<comport>=<device>,... Redirects serial devices on your client to the server. Note that if you need to change any settings on the serial device(s), do so with an appropriate tool before starting rdesktop. In most OSes you would use stty. Bidirectional/Read support requires Windows XP or newer.  In Windows 2000 it will create a port, but it's not seamless, most shell programs will not work with it.
-r disk:<sharename>=<path>,... Redirects a path to the share \\tsclient\<sharename> on the server (requires Windows XP or newer). The share name is limited to 8 characters.
-r lptport:<lptport>=<device>,... Redirects parallel devices on your client to the server. Bidirectional/Read support requires Windows XP or newer. In Windows 2000 it will create a port, but it's not seamless, most shell programs will not work with it.
-r printer:<printername>[=<driver>],... Redirects a printer queue on the client to the server. The <printername> is the name of the queue in your local system. <driver> defaults to a simple PS-driver unless you specify one. Keep in mind that you need a 100% match in the server environment, or the driver will fail. The first printer on the command line will be set as your default printer.
-r sound:[local|off|remote] Redirects sound generated on the server to the client. "remote" only has any effect when you connect to the console with the -0 option. (Requires Windows XP or newer).
-r lspci Activates the lspci channel, which allows the server to enumerate the clients PCI devices. See the file lspci-channel.txt in the documentation for more information.
-r scard[:<Scard Name>=<Alias Name>[;<Vendor Name>][,...]] Enables redirection of one or more smart-cards. You can provide static name binding between GNU/Linux and Windows. To do this you can use optional parameters as described: <Scard Name> - device name in GNU/Linux and UNIX environment, <Alias Name> - device name shown in Windows environment <Vendor Name> - optional device vendor name. For list of examples run rdesktop without parameters.
-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD] Enable clipboard redirection. 'PRIMARYCLIPBOARD' looks at both PRIMARY and CLIPBOARD when sending data to server. 'CLIPBOARD' looks at only 'CLIPBOARD'.
-0     Attach to the console of the server (requires Windows Server 2003 or newer).
-4     Use RDP version 4.
-5     Use RDP version 5 (default).
-v     Enable verbose output
CredSSP Smartcard options --sc-csp-name <name> Specify the CSP (Crypto Service Provider) to use on the windows side for the smartcard authentication. CSP is the driver for your smartcard and it seems like this is required to be specified for CredSSP authentication. For Swedish NetID the following CSP name is used; "Net iD - CSP".
--sc-container-name <name> Specify the container name, usually this is the username for default container and it seems like this is required to be specified for CredSSP authentication.
--sc-reader-name <name> Specify the reader name to be used to prevent the pin code being sent to wrong card if there are several readers.
--sc-card-name <name> Specify the card name for example; "Telia EID IP5a".
0      RDP session terminated normally
1      Administrator initiated disconnect (also returned for logoff by Windows XP joined to a domain)
2      Administrator initiated logout
3      Server idle session time limit reached
4      Server active session time limit reached
5      The session was replaced
6      The server is out of memory
7      The server denied the connection
8      The server denied the connection for security reasons
9      The user cannot connect to the server due to insufficient access privileges
10     The server does not accept saved user credentials and requires that the user enter their credentials for each connection
11     Disconnect initiated by user
12     Logout initiated by user
16     Internal licensing error
17     No license server available
18     No valid license available
19     Invalid licensing message from client
20     The client license has been modified and does no longer match the hardware ID
21     The client license is in an invalid format
22     Network error during licensing protocol
23     Licensing protocol was not completed
24     Incorrect client license encryption
25     Can't upgrade or renew license
26     The server is not licensed to accept remote connections
30     The target endpoint chosen by the broker could not be found
32     The target endpoint is disconnecting from the broker
34     Error occurred while being redirected by broker
35     Error while the endpoint VM was being awakened by the broker
36     Error while the endpoint VM was being started by the broker
37     The IP address of the endpoint VM could not be determined by the broker
38     No available endpoints in the connection broker pool
39     Connection processing cancelled by the broker
40     The connection settings could not be validated by the broker
41     Timeout while the endpoint VM was being started by the broker
42     Session monitoring error while the endpoint VM was being started by the broker
50     The server can only host Remote Applications
51     Update of session keys failed
52     Decryption or session key creation failed
53     Encryption failed
62     The local client window was closed
63     Some other, unknown error occurred
64     Command line usage error
69     A service or resource (such as memory) is unavailable
70     An internal software error has been detected
71     Operating system error
76     Protocol error or unable to connect to remote host.
Main website of rdesktop http://www.rdesktop.org/
LASTCOMM(1)                  General Commands Manual                 LASTCOMM(1)
lastcomm -  print out information about previously executed commands.
lastcomm [ command-name ...  ] [ user-name ...  ] [ terminal-name ...  ] [ OPTION ... ]
lastcomm prints out information about previously executed commands.  If no arguments are specified, lastcomm will print info about all of the commands in acct (the record file).  If called with one or more of command-name, user-name, or terminal-name, only records containing those items will be displayed.  For example, to find out which users used command `a.out' and which users were logged into `tty0', type: lastcomm a.out tty0
This will print any entry for which `a.out' or `tty0' matches in any of the record's fields (command, name, or terminal).  If you want to find only items that match *all* of the arguments on the command line, you must use the '-strict-match' option.  For example, to list all of the executions of command a.out by user root on terminal tty0, type: lastcomm --strict-match --command a.out --user root --tty tty0
The order of the arguments is not important.
For each entry the following information is printed: + command name of the process + flags, as recorded by the system accounting routines: S -- command executed by super-user F -- command executed after a fork but without a following exec C -- command run in PDP-11 compatibility mode (VAX only) D -- command terminated with the generation of a core file X -- command was terminated with the signal SIGTERM + the name of the user who ran the process + time the process started
--strict-match Print only entries that match *all* of the arguments on the command line. --print-controls Print control characters. --user name List records for user with name.  This is useful if you're trying to match a username that happens to be the same as a command (e.g., ed ). --command name List records for command name. --tty name List records for tty name. --forwards Read file forwards instead of backwards. This avoids trying to seek on the file and can be used to read from a pipe. This must be specified prior to any -f arguments. -f filename, --file filename Read from the file filename instead of acct.  A filename of "-" will result in reading from stdin. This must either be the first -f option, or --forwards must precede all -f options. --ahz hz Use this flag to tell the program what AHZ should be (in hertz). This option is useful if you are trying to view an acct file created on another machine which has the same byte order and file format as your current machine, but has a different value for AHZ. -p, --show-paging Print paging statistics. --pid  Show PID and PPID of the process if acct version 3 format is supported by kernel. --pid  Add pid of the process and pid of the process parent to the output (pid is the last but one and parent pid the last column).  These values are shown only when they are generated by acct function (depends on the version of kernel) --debug Print verbose internal information. -V, --version Print the version number of lastcomm. -h, --help Prints the usage string and default locations of system files to standard output and exits.
last(1), acct(5)
BEEP(1)                           User commands                          BEEP(1)
beep - beep the pc speaker any number of ways
beep [GLOBALS] [-f FREQ] [-l LEN] [-r REPEATS] [<-d|-D> DELAY] [-s] [-c] beep [GLOBALS] <TONE_OPTIONS> [-n|--new] <TONE_OPTIONS> beep <-h|--help> beep <-v|-V|--version>
beep allows the user to control the PC speaker with precision, allowing different sounds to indicate different events.  While beep can be run quite happily on the command line, beep's intended use is within shell/perl scripts, notifying the user when something interesting occurs. Of course, it has no notion of what IS interesting, but it is good at the notifying part.
All options have default values, meaning that just typing 'beep' will work.  If an option is specified more than once on the command line, subsequent options override their predecessors.  So 'beep -f 200 -f 300' will beep at 300Hz.
All durations are given in a unit of milliseconds, frequencies as Hertz, and the number of repeats is a dimensionless number.
Global options -e DEVICE, --device=DEVICE Explicitly set the device beep shall use to generate beep tones. When not given a device explicitly, beep runs through an internal list of devices until one appears to work.
--debug, --verbose Make the beep program more verbose.
Tone options -f FREQ Beep with a tone frequency of FREQ Hz, where 0 < FREQ < 20000.  As a general ballpark, the regular terminal beep is around 750Hz. For backwards compatibility, you can give FREQ as a floating point number, but beep will round that to integer values as the kernel APIs expect them.  Default value: 440 Hz.
-l LEN Beep for a tone length of LEN milliseconds. Default value: 200 ms.
-r REPEATS Repeat the tone including delays REPEATS times. Default value: 1 tone, not repeated.
-d DELAY | -D DELAY Specify a delay of DELAY milliseconds between repetitions.  Small letter -d specifies that this delay should only occur between beeps, that is, it should not occur after the last repetition. Capital letter -D specifies that the delay should occur after every repetition, including after the last one.  Normally, -d is what you want, but if, for example, you are stringing several beep commands together to play the star wars anthem, you may want control over every delay. Default value: 100 ms delay between beeps with no delay after the last beep.
-n, --new The --new option allows you to chain multiple beeps together on a single command line.  Each time the --new is used, beep starts treating all further arguments as though they were for a new beep. So for example:
beep -f 1000 -n -f 2000 -n -f 1500
would produce a sequence of three beeps, the first with a frequency of 1000Hz (and otherwise default values), then a second beep with a frequency of 2000Hz (again, with things like delay and reps being set to their defaults), then a third beep, at 1500Hz. This is different from specifying a -r value, since -r repeats the same beep multiple times, whereas --new allows you to specify different beeps.  After a --new, the new beep is created with all the default values, and any of these can be specified without altering values for preceding (or later) beeps.  See the EXAMPLES section if this managed to confuse you.
-s, -c Both the -s and the -c option put beep into input processing mode, reading from stdin and copying all received data to stdout.  This makes it easy to slip beep into a text processing pipeline to acoustically monitor the data flow within that pipeline.  See the EXAMPLES section.
-c     Beep after every character received.
-s     Beep after every set of data received.  Usually, this means after newlines occur in text processing pipes.
In a sequence of notes specified with one or more occurrences of -n or --new, it only makes sense to have one single note marked with either -s or -c attached to it.  Then beep will beep all notes until it reaches that marked note, then repeat the marked note according to the input it receives, and once the input has reached EOF, beep will continue with the remainder of the note sequence.
The behaviour of beep with more than one note marked with -s or -c is undefined.
Other Actions -h, --help Display beep usage info and exit.
-v, -V, --version Display beep version information and exit.
When successful, beep returns with exit code 0.
Any non-0 exit code means beep has encountered an error and has bailed out.
BEEP_LOG_LEVEL When set to a number between -999 and 999, BEEP_LOG_LEVEL will be used as the default loglevel until overridden by a command line parameter.
The device files beep uses by default are the following: /dev/input/by-path/platform-pcspkr-event-spkr /dev/tty0 /dev/vc/0
Devices and Permissions When you run beep without explicitly giving a device to use, beep tries opening the following devices in sequence until one succeeds:
/dev/input/by-path/platform-pcspkr-event-spkr Uses the evdev API, and system administrator can allow access to any set of users and groups using the normal file permissions.
/dev/tty0 Uses the console API, and the kernel insists you are root or own the TTY.
/dev/vc/0 Uses the console API, and the kernel insists you are root or own the TTY.
beep does not support running as setuid root or via sudo(1).
For non-root uses, the system administrator can set up a udev(7) rule to allow write access to /dev/input/by-path/platform-pcspkr-event-spkr for certain users and/or user groups. For details, see the beep /usr/share/doc/beep/PERMISSIONS.md file.
APIs evdev Uses the input event device driver, which means running write(2) on /dev/input/by-path/platform-pcspkr-event-spkr.
The permissions to this device file can be set up such that beep can be run by any non-root user the system administrator wants to.
Opening this device takes on the order of magnitude of 20ms in the Linux kernel for every time you start the beep command. Therefore, if you need to play multiple notes in a rhythmical sequence for a melody, use one beep command invocation with multiple notes, not several beep invocations playing one note each.
console Uses the ancient console API, which means running the KIOCSOUND ioctl(2) on a tty device like /dev/tty0 or /dev/vc/0.
This requires being root, unless the non-root user happens be logged into the virtual console and be using that specific virtual console device like e.g. /dev/tty4. This makes the console driver useless for non-root users logged in via ssh, and often X11 or Wayland.
Use the evdev API instead.
Concurrent Invocations Concurrent invocations of beep are not supported. There is only one tone generator in the PC hardware, and we do not manage access to that shared resource in any way.  So if a first beep -f 1000 -l 10000 process starts a long 10 second beep with 1000Hz, and 2 seconds later a second quick beep -f 2050 -l 100 with 2050Hz comes in, you will hear that 2050Hz beep for 100ms, and then silence as the quick beep silences the tone generator. Now you will not hear that the first beep process is still running after having waited for the first 2100ms of its 10000ms. You will also not hear that the first beep process will silence the already silent speaker 7900ms later, i.e. 10000ms after the first beep started.
Sound Volume The PC speaker hardware has no way to explicitly set the volume of a beep.
If you have a standalone PC, however, chances are you have a piezo beeper connected to the mainboard.  If you prioritize a loud beep over a certain frequency beep, you can choose to beep at a frequency close to the resonance frequency of the piezo beeper.  Typical piezo beepers have a resonance frequency around 2000Hz, so you can test frequencies around that range.  The author's piezo beeper is the loudest at about 2050Hz.
If you have a PC laptop, chances are that your laptop will not have a piezo beeper hardware inside and that it will route the output of the pcspkr circuit to the laptop's internal speakers via the sound card mixer.  In that case, you can and/or must change the mixer level for the beeper using a sound card mixer application.
Frequency Table This frequency table might come in handy for translating musical notes to frequencies.  The frequencies are rounded to integer numbers as the kernel driver only works with integers.  The column for octave 4 is the octave of middle C.
Report bugs to ⟨https://github.com/spkr-beep/beep/issues⟩.
At its simplest (yet still effective)
A more interesting standalone setup
beep -f 300.7 -r 2 -d 100 -l 400
As part of a log watching pipeline
tail -f /var/log/xferlog | grep 'passwd' | beep -f 1000 -r 5 -s
When using -c mode, I recommend using a short -D, and a shorter -l, so that the beeps do not blur together.  Something like this will get you a cheesy 1970's style beep-as-you-type-each-letter effect
cat file | beep -c -f 400 -D 50 -l 10
A highly contrived example of -n/--new usage
beep -f 1000 -r 2 -n -r 5 -l 10 --new
will produce first two 1000Hz beeps, then 5 beeps at the default tone, but only 10ms long each, followed by a third beep using all the default settings (since none are specified).
/usr/share/doc/beep/README.md, /usr/share/doc/beep/PERMISSIONS.md, ⟨https://github.com/spkr-beep/beep⟩
XScreenSaver(1)              General Commands Manual             XScreenSaver(1)
helix - draw helical string-art patterns
helix [-display host:display.screen] [-foreground color] [-background color] [-window] [-root] [-mono] [-erase-speed usecs] [-erase-mode integer] [-delay seconds] [-install] [-visual visual]
The helix program draws interesting patterns composed of line segments in random colors.
helix accepts the following options:
-window Draw on a newly-created window.  This is the default.
-root   Draw on the root window.
-mono   If on a color display, pretend we're on a monochrome display.
-erase-speed usecs This controls the speed at which the screen will be erased. Lower numbers erase faster.
-erase-mode integer This sets the erase mode. Mode -1 chooses a random mode each time. There are currently 6 modes defined (0-5).
-delay seconds This sets the number of seconds that the helix will be on the screen.
-install Install a private colormap for the window.
-visual visual Specify which visual to use.  Legal values are the name of a visual class, or the id number (decimal or hex) of a specific visual.
DISPLAY to get the default host and display number.
XENVIRONMENT to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.
X(1), xscreensaver(1)
Copyright Â© 1992 by Jamie Zawinski.  Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.  No representations are made about the suitability of this software for any purpose.  It is provided "as is" without express or implied warranty.
Jamie Zawinski <jwz@jwz.org>, 13-aug-92.  Screen eraser improved by Johannes Keukelaar <johannes@nada.kth.se>, 18-sep-97.
EXPORT(1POSIX)              POSIX Programmer's Manual             EXPORT(1POSIX)
export — set the export attribute for variables
export name[=word]...
export −p
The shell shall give the export attribute to the variables corresponding to the specified names, which shall cause them to be in the environment of subsequently executed commands. If the name of a variable is followed by =word, then the value of that variable shall be set to word.
The export special built-in shall support the Base Definitions volume of POSIX.1‐2008, Section 12.2, Utility Syntax Guidelines.
When −p is specified, export shall write to the standard output the names and values of all exported variables, in the following format:
"export %s=%s\n", <name>, <value>
if name is set, and:
"export %s\n", <name>
if name is unset.
The shell shall format the output, including the proper use of quoting, so that it is suitable for reinput to the shell as commands that achieve the same exporting results, except:
1. Read-only variables with values cannot be reset.
2. Variables that were unset at the time they were output need not be reset to the unset state if a value is assigned to the variable between the time the state was saved and the time at which the saved output is reinput to the shell.
When no arguments are given, the results are unspecified. If a variable assignment precedes the command name of export but that variable is not also listed as an operand of export, then that variable shall be set in the current shell execution environment after the completion of the export command, but it is unspecified whether that variable is marked for export.
See the DESCRIPTION.
Export PWD and HOME variables:
export PWD HOME
Set and export the PATH variable:
export PATH=/local/bin:$PATH
Save and restore all exported variables:
export −p > temp-file unset a lot of variables ... processing . temp-file
Some historical shells use the no-argument case as the functional equivalent of what is required here with −p.  This feature was left unspecified because it is not historical practice in all shells, and some scripts may rely on the now-unspecified results on their implementations. Attempts to specify the −p output as the default case were unsuccessful in achieving consensus.  The −p option was added to allow portable access to the values that can be saved and then later restored using; for example, a dot script.
Section 2.14, Special Built-In Utilities
The Base Definitions volume of POSIX.1‐2008, Section 12.2, Utility Syntax Guidelines
Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2013 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, Copyright (C) 2013 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1 applied.) In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.unix.org/online.html .
SYSCTL(8)                     System Administration                    SYSCTL(8)
sysctl - configure kernel parameters at runtime
sysctl [options] [variable[=value]] [...] sysctl -p [file or regexp] [...]
sysctl is used to modify kernel parameters at runtime.  The parameters available are those listed under /proc/sys/.  Procfs is required for sysctl support in Linux.  You can use sysctl to both read and write sysctl data.
variable The name of a key to read from.  An example is kernel.ostype.  The '/' separator is also accepted in place of a '.'.
variable=value To set a key, use the form variable=value where variable is the key and value is the value to set it to.  If the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes.
-n, --values Use this option to disable printing of the key name when printing values.
-e, --ignore Use this option to ignore errors about unknown keys.
-N, --names Use this option to only print the names.  It may be useful with shells that have programmable completion.
-q, --quiet Use this option to not display the values set to stdout.
-w, --write Use this option when all arguments prescribe a key to be set.
-p[FILE], --load[=FILE] Load in sysctl settings from the file specified or /etc/sysctl.conf if none given.  Specifying - as filename means reading data from standard input.  Using this option will mean arguments to sysctl are files, which are read in the order they are specified.  The file argument may be specified as regular expression.
-a, --all Display all values currently available.
--deprecated Include deprecated parameters to --all values listing.
-b, --binary Print value without new line.
--system Load settings from all system configuration files. Files are read from directories in the following list in given order from top to bottom.  Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored. /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf
-r, --pattern pattern Only apply settings that match pattern.  The pattern uses extended regular expression syntax.
-A     Alias of -a
-d     Alias of -h
-f     Alias of -p
-X     Alias of -a
-o     Does nothing, exists for BSD compatibility.
-x     Does nothing, exists for BSD compatibility.
/sbin/sysctl -a /sbin/sysctl -n kernel.hostname /sbin/sysctl -w kernel.domainname="example.com" /sbin/sysctl -p/etc/sysctl.conf /sbin/sysctl -a --pattern forward /sbin/sysctl -a --pattern forward$ /sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp' /sbin/sysctl --system --pattern '^net.ipv6'
The base_reachable_time and retrans_time are deprecated.  The sysctl command does not allow changing values of these parameters.  Users who insist to use deprecated kernel interfaces should push values to /proc file system by other means.  For example:
echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
/proc/sys /etc/sysctl.d/*.conf /run/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /lib/sysctl.d/*.conf /etc/sysctl.conf
sysctl.conf(5) regex(7)
George Staikos ⟨staikos@0wned.org⟩
Please send bug reports to ⟨procps@freelists.org⟩
CUT(1P)                     POSIX Programmer's Manual                    CUT(1P)
cut — cut out selected fields of each line of a file
cut -b list [-n] [file...]
cut -c list [file...]
cut -f list [-d delim] [-s] [file...]
The cut utility shall cut out bytes (-b option), characters (-c option), or character-delimited fields (-f option) from each line in one or more files, concatenate them, and write them to standard output.
The cut utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.
The application shall ensure that the option-argument list (see options -b, -c, and -f below) is a <comma>-separated list or <blank>-separated list of positive numbers and ranges. Ranges can be in three forms. The first is two positive numbers separated by a <hyphen-minus> (low-high), which represents all fields from the first number to the second number. The second is a positive number preceded by a <hyphen-minus> (-high), which represents all fields from field number 1 to that number. The third is a positive number followed by a <hyphen-minus> (low-), which represents that number to the last field, inclusive. The elements in list can be repeated, can overlap, and can be specified in any order, but the bytes, characters, or fields selected shall be written in the order of the input data. If an element appears in the selection list more than once, it shall be written exactly once.
-b list   Cut based on a list of bytes. Each selected byte shall be output unless the -n option is also specified. It shall not be an error to select bytes not present in the input line.
-c list   Cut based on a list of characters. Each selected character shall be output. It shall not be an error to select characters not present in the input line.
-d delim  Set the field delimiter to the character delim.  The default is the <tab>.
-f list   Cut based on a list of fields, assumed to be separated in the file by a delimiter character (see -d).  Each selected field shall be output. Output fields shall be separated by a single occurrence of the field delimiter character. Lines with no field delimiters shall be passed through intact, unless -s is specified. It shall not be an error to select fields not present in the input line.
-n        Do not split characters. When specified with the -b option, each element in list of the form low-high (<hyphen- minus>-separated numbers) shall be modified as follows:
*  If the byte selected by low is not the first byte of a character, low shall be decremented to select the first byte of the character originally selected by low.  If the byte selected by high is not the last byte of a character, high shall be decremented to select the last byte of the character prior to the character originally selected by high, or zero if there is no prior character. If the resulting range element has high equal to zero or low greater than high, the list element shall be dropped from list for that input line without causing an error.
Each element in list of the form low- shall be treated as above with high set to the number of bytes in the current line, not including the terminating <newline>.  Each element in list of the form -high shall be treated as above with low set to 1. Each element in list of the form num (a single number) shall be treated as above with low set to num and high set to num.
-s        Suppress lines with no delimiter characters, when used with the -f option. Unless specified, lines with no delimiters shall be passed through untouched.
The standard input shall be used only if no file operands are specified, or if a file operand is '-'.  See the INPUT FILES section.
The input files shall be text files, except that line lengths shall be unlimited.
The following environment variables shall affect the execution of cut:
The cut utility output shall be a concatenation of the selected bytes, characters, or fields (one of the following):
"%s\n", <concatenation of bytes>
"%s\n", <concatenation of characters>
"%s\n", <concatenation of fields and field delimiters>
0    All input files were output successfully.
The cut and fold utilities can be used to create text files out of files with arbitrary line lengths. The cut utility should be used when the number of lines (or records) needs to remain constant. The fold utility should be used when the contents of long lines need to be kept contiguous.
Earlier versions of the cut utility worked in an environment where bytes and characters were considered equivalent (modulo <backspace> and <tab> processing in some implementations). In the extended world of multi-byte characters, the new -b option has been added. The -n option (used with -b) allows it to be used to act on bytes rounded to character boundaries. The algorithm specified for -n guarantees that:
cut -b 1-500 -n file > file1 cut -b 501- -n file > file2
ends up with all the characters in file appearing exactly once in file1 or file2.  (There is, however, a <newline> in both file1 and file2 for each <newline> in file.)
Examples of the option qualifier list:
1,4,7   Select the first, fourth, and seventh bytes, characters, or fields and field delimiters.
1-3,8   Equivalent to 1,2,3,8.
-5,10   Equivalent to 1,2,3,4,5,10.
3-      Equivalent to third to last, inclusive.
The low-high forms are not always equivalent when used with -b and -n and multi-byte characters; see the description of -n.
The following command:
cut -d : -f 1,6 /etc/passwd
reads the System V password file (user database) and produces lines of the form:
<user ID>:<home directory>
Most utilities in this volume of POSIX.1‐2017 work on text files. The cut utility can be used to turn files with arbitrary line lengths into a set of text files containing the same data. The paste utility can be used to create (or recreate) files with arbitrary line lengths. For example, if file contains long lines:
creates file1 (a text file) with lines no longer than 500 bytes (plus the <newline>) and file2 that contains the remainder of the data from file. (Note that file2 is not a text file if there are lines in file that are longer than 500 + {LINE_MAX} bytes.) The original file can be recreated from file1 and file2 using the command:
paste -d "\0" file1 file2 > file
Some historical implementations do not count <backspace> characters in determining character counts with the -c option. This may be useful for using cut for processing nroff output. It was deliberately decided not to have the -c option treat either <backspace> or <tab> characters in any special fashion. The fold utility does treat these characters specially.
Unlike other utilities, some historical implementations of cut exit after not finding an input file, rather than continuing to process the remaining file operands. This behavior is prohibited by this volume of POSIX.1‐2017, where only the exit status is affected by this problem.
The behavior of cut when provided with either mutually-exclusive options or options that do not work logically together has been deliberately left unspecified in favor of global wording in Section 1.4, Utility Description Defaults.
The OPTIONS section was changed in response to IEEE PASC Interpretation 1003.2 #149. The change represents historical practice on all known systems. The original standard was ambiguous on the nature of the output.
The list option-arguments are historically used to select the portions of the line to be written, but do not affect the order of the data. For example:
echo abcdefghi | cut -c6,2,4-7,1
yields "abdefg".
A proposal to enhance cut with the following option:
-o    Preserve the selected field order. When this option is specified, each byte, character, or field (or ranges of such) shall be written in the order specified by the list option-argument, even if this requires multiple outputs of the same bytes, characters, or fields.
was rejected because this type of enhancement is outside the scope of the IEEE P1003.2b draft standard.
Section 2.5, Parameters and Variables, fold, grep, paste
pssh(1)                      General Commands Manual                     pssh(1)
pssh â€” parallel ssh program
pssh [-vAiIP] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] command ...
pssh -I [-vAiIP] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [command ...]
pssh is a program for executing ssh in parallel on a number of hosts.  It provides features such as sending input to all of the processes, passing a password to ssh, saving output to files, and timing out.
The PSSH_NODENUM and PSSH_HOST environment variables are sent to the remote host.  The PSSH_NODENUM variable is assigned a unique number for each ssh connection, starting with 0 and counting up.  The PSSH_HOST variable is assigned the name of the host as specified in the hosts list. Note that sshd drops environment variables by default, so sshd_config on the remote host must include the line: AcceptEnv PSSH_NODENUM PSSH_HOST
-h host_file --hosts host_file Read hosts from the given host_file.  Lines in the host file are of the form [user@]host[:port] and can include blank lines and comments (lines beginning with "#").  If multiple host files are given (the -h option is used more than once), then pssh behaves as though these files were concatenated together.  If a host is specified multiple times, then pssh will connect the given number of times.
-H     [user@]host[:port] --host [user@]host[:port] -H     "[user@]host[:port] [ [user@]host[:port ] ... ]" --host "[user@]host[:port] [ [user@]host[:port ] ... ]" Add the given host strings to the list of hosts.  This option may be given multiple times, and may be used in conjunction with the -h option.
-l user --user user Use the given username as the default for any host entries that don't specifically specify a user.
-p parallelism --par parallelism Use the given number as the maximum number of concurrent connections.
-t timeout --timeout timeout Make connections time out after the given number of seconds.  With a value of 0, pssh will not timeout any connections.
-o outdir --outdir outdir Save standard output to files in the given directory.  Filenames are of the form [user@]host[:port][.num] where the user and port are only included for hosts that explicitly specify them.  The number is a counter that is incremented each time for hosts that are specified more than once.
-e errdir --errdir errdir Save standard error to files in the given directory.  Filenames are of the same form as with the -o option.
-x args --extra-args args Passes extra SSH command-line arguments (see the ssh(1) man page for more information about SSH arguments).  This option may be specified multiple times.  The arguments are processed to split on whitespace, protect text within quotes, and escape with backslashes.  To pass arguments without such processing, use the -X option instead.
-X arg --extra-arg arg Passes a single SSH command-line argument (see the ssh(1) man page for more information about SSH arguments).  Unlike the -x option, no processing is performed on the argument, including word splitting.  To pass multiple command-line arguments, use the option once for each argument.
-O options --options options SSH options in the format used in the SSH configuration file (see the ssh_config(5) man page for more information).  This option may be specified multiple times.
-A --askpass Prompt for a password and pass it to ssh.  The password may be used for either to unlock a key or for password authentication. The password is transferred in a fairly secure manner (e.g., it will not show up in argument lists).  However, be aware that a root user on your system could potentially intercept the password.
-i --inline Display standard output and standard error as each host completes.
--inline-stdout Display standard output (but not standard error) as each host completes.
-v --verbose Include error messages from ssh with the -i and \ options.
-I --send-input Read input and send to each ssh process.  Since ssh allows a command script to be sent on standard input, the -I option may be used in lieu of the command argument.
-P --print Display output as it arrives.  This option is of limited usefulness because output from different hosts are interleaved.
Connect to host1 and host2, and print "hello, world" from each: pssh -i -H "host1 host2" echo "hello, world"
Print "hello, world" from each host specified in the file hosts.txt: pssh -i -h hosts.txt echo "hello, world"
Run a command as root with a prompt for the root password: pssh -i -h hosts.txt -A -l root echo hi
Run a long command without timing out: pssh -i -h hosts.txt -t 0 sleep 10000
If the file hosts.txt has a large number of entries, say 100, then the parallelism option may also be set to 100 to ensure that the commands are run concurrently: pssh -i -h hosts.txt -p 100 -t 0 sleep 10000
Run a command without checking or saving host keys: pssh -i -H host1 -H host2 -x "-O StrictHostKeyChecking=no -O UserKnownHostsFile=/dev/null -O GlobalKnownHostsFile=/dev/null" echo hi
Print the node number for each connection (this will print 0, 1, and 2): pssh -i -H host1 -H host1 -H host2 'echo $PSSH_NODENUM'
If you have a set of hosts that you connect to frequently with specific options, it may be helpful to create an alias such as: alias pssh_servers="pssh -h /path/to/server_list.txt -l root -A"
The ssh_config file can include an arbitrary number of Host sections. Each host entry specifies ssh options which apply only to the given host. Host definitions can even behave like aliases if the HostName option is included.  This ssh feature, in combination with pssh host files, provides a tremendous amount of flexibility.
The exit status codes from pssh are as follows:
0      Success
1      Miscellaneous error
2      Syntax or usage error
3      At least one process was killed by a signal or timed out.
4      All processes completed, but at least one ssh process reported an error (exit status 255).
5      There were no ssh errors, but at least one remote command had a non-zero exit status.
Written by Brent N. Chun <bnc@theether.org> and Andrew McNabb <amcnabb@mcnabbs.org>.
http://code.google.com/p/parallel-ssh/
ssh(1), ssh_config(5), pscp(1), prsync(1), pslurp(1), pnuke(1),
FIREJAIL(1)                     firejail man page                    FIREJAIL(1)
Firejail - Linux namespaces sandbox program
Start a sandbox:
firejail [OPTIONS] [program and arguments]
Start an AppImage program:
firejail [OPTIONS] --appimage [appimage-file and arguments]
File transfer from an existing sandbox
firejail {--ls | --get | --put | --cat} dir_or_filename
Network traffic shaping for an existing sandbox:
firejail --bandwidth={name|pid} bandwidth-command
Monitoring:
firejail {--list | --netstats | --top | --tree}
firejail {-? | --debug-caps | --debug-errnos | --debug-syscalls | --debug-syscalls32 | --debug-protocols | --help | --version}
Firejail is a SUID sandbox program that reduces the risk of security breaches by restricting the running environment of untrusted applications using Linux namespaces, seccomp-bpf and Linux capabilities.  It allows a process and all its descendants to have their own private view of the globally shared kernel resources, such as the network stack, process table, mount table.  Firejail can work in a SELinux or AppArmor environment, and it is integrated with Linux Control Groups.
Written in C with virtually no dependencies, the software runs on any Linux computer with a 3.x kernel version or newer.  It can sandbox any type of processes: servers, graphical applications, and even user login sessions.
Firejail allows the user to manage application security using security profiles.  Each profile defines a set of permissions for a specific application or group of applications. The software includes security profiles for a number of more common Linux programs, such as Mozilla Firefox, Chromium, VLC, Transmission etc.
Alternative sandbox technologies like snap (https://snapcraft.io/) and flatpak (https://flatpak.org/) are not supported. Snap and flatpak packages have their own native management tools and will not work when sandboxed with Firejail.
Without any options, the sandbox consists of a filesystem build in a new mount namespace, and new PID and UTS namespaces. IPC, network and user namespaces can be added using the command line options. The default Firejail filesystem is based on the host filesystem with the main system directories mounted read-only. These directories are /etc, /var, /usr, /bin, /sbin, /lib, /lib32, /libx32 and /lib64. Only /home and /tmp are writable.
Upon execution Firejail first looks in ~/.config/firejail/ for a profile and if it doesn't find one, it looks in /etc/firejail/.  For profile resolution detail see https://github.com/netblue30/firejail/wiki/Creating-Profiles#locations- and-types.  If an appropriate profile is not found, Firejail will use a default profile.  The default profile is quite restrictive. In case the application doesn't work, use --noprofile option to disable it. For more information, please see SECURITY PROFILES section below.
If a program argument is not specified, Firejail starts the user's preferred shell.  Examples:
$ firejail [OPTIONS]                # starting the program specified in $SHELL, usually /bin/bash
$ firejail [OPTIONS] firefox        # starting Mozilla Firefox
# sudo firejail [OPTIONS] /etc/init.d/nginx start
--     Signal the end of options and disables further option processing.
--allow-debuggers Allow tools such as strace and gdb inside the sandbox by whitelisting system calls ptrace and process_vm_readv. This option is only available when running on Linux kernels 4.8 or newer - a kernel bug in ptrace system call allows a full bypass of the seccomp filter.
Example: $ firejail  --allow-debuggers --profile=/etc/firejail/firefox.profile strace -f firefox
--allusers All directories under /home are visible inside the sandbox. By default, only current user home directory is visible.
Example: $ firejail --allusers
--apparmor Enable AppArmor confinement. For more information, please see APPARMOR section below.
--apparmor.print=name|pid Print the AppArmor confinement status for the sandbox identified by name or by PID.
Example: $ firejail --apparmor.print=browser 5074:netblue:/usr/bin/firejail /usr/bin/firefox-esr AppArmor: firejail-default enforce
--appimage Sandbox an AppImage (https://appimage.org/) application. If the sandbox is started as a regular user, nonewprivs and a default capabilities filter are enabled.  private-bin and private-lib are disabled by default when running appimages.
Example: $ firejail --appimage --profile=krita krita-3.0-x86_64.appimage $ firejail --appimage --private --profile=krita krita-3.0-x86_64.appimage $ firejail --appimage --net=none --x11 --profile=krita krita-3.0-x86_64.appimage
--bandwidth=name|pid Set bandwidth limits for the sandbox identified by name or PID, see TRAFFIC SHAPING section for more details.
--bind=filename1,filename2 Mount-bind filename1 on top of filename2. This option is only available when running as root.
Example: # firejail --bind=/config/etc/passwd,/etc/passwd
--blacklist=dirname_or_filename Blacklist directory or file. File globbing is supported, see FILE GLOBBING section for more details.
Example: $ firejail --blacklist=/sbin --blacklist=/usr/sbin $ firejail --blacklist=~/.mozilla $ firejail "--blacklist=/home/username/My Virtual Machines" $ firejail --blacklist=/home/username/My\ Virtual\ Machines
--build The command builds a whitelisted profile. The profile is printed on the screen. If /usr/bin/strace is installed on the system, it also builds a whitelisted seccomp profile. The program is run in a very relaxed sandbox, with only --caps.drop=all and --nonewprivs. Programs that raise user privileges are not supported in order to allow strace to run. Chromium and Chromium-based browsers will not work.
Example: $ firejail --build vlc ~/Videos/test.mp4