neulab/tldr huggingface dataset:
Perl is available for most operating systems, including virtually all Unix-like platforms.  See "Supported Platforms" in perlport for a listing.
See "ENVIRONMENT" in perlrun.
Larry Wall <larry@wall.org>, with the help of oodles of other folks.
If your Perl success stories and testimonials may be of help to others who wish to advocate the use of Perl in their applications, or if you wish to simply express your gratitude to Larry and the Perl developers, please write to perl-thanks@perl.org .
"@INC"                 locations of perl libraries
"@INC" above is a reference to the built-in variable of the same name; see perlvar for more information.
https://www.perl.org/       the Perl homepage https://www.perl.com/       Perl articles https://www.cpan.org/       the Comprehensive Perl Archive https://www.pm.org/         the Perl Mongers
Using the "use strict" pragma ensures that all variables are properly declared and prevents other misuses of legacy Perl features.
The "use warnings" pragma produces some lovely diagnostics. One can also use the -w flag, but its use is normally discouraged, because it gets applied to all executed Perl code, including that not under your control.
See perldiag for explanations of all Perl's diagnostics.  The "use diagnostics" pragma automatically turns Perl's normally terse warnings and errors into these longer forms.
Compilation errors will tell you the line number of the error, with an indication of the next token or token type that was to be examined.  (In a script passed to Perl via -e switches, each -e is counted as one line.)
Setuid scripts have additional constraints that can produce error messages such as "Insecure dependency".  See perlsec.
Did we mention that you should definitely consider using the use warnings pragma?
The behavior implied by the use warnings pragma is not mandatory.
Perl is at the mercy of your machine's definitions of various operations such as type casting, atof(), and floating-point output with sprintf().
If your stdio requires a seek or eof between reads and writes on a particular stream, so does Perl.  (This doesn't apply to sysread() and syswrite().)
While none of the built-in data types have any arbitrary size limits (apart from memory size), there are still a few arbitrary limits:  a given variable name may not be longer than 251 characters.  Line numbers displayed by diagnostics are internally stored as short integers, so they are limited to a maximum of 65535 (higher numbers usually being affected by wraparound).
You may submit your bug reports (be sure to include full configuration information as output by the myconfig program in the perl source tree, or by "perl -V") to <https://github.com/Perl/perl5/issues>.
Perl actually stands for Pathologically Eclectic Rubbish Lister, but don't tell anyone I said that.
The Perl motto is "There's more than one way to do it."  Divining how many more is left as an exercise to the reader.
The three principal virtues of a programmer are Laziness, Impatience, and Hubris.  See the Camel Book for why.
PARTED(8)                       GNU Parted Manual                      PARTED(8)
parted - a partition manipulation program
parted [options] [device [command [options...]...]]
parted is a program to manipulate disk partitions.  It supports multiple partition table formats, including MS-DOS and GPT.  It is useful for creating space for new operating systems, reorganising disk usage, and copying data to new hard disks.
This manual page documents parted briefly.  Complete documentation is distributed with the package in GNU Info format.
-h, --help displays a help message
-l, --list lists partition layout on all block devices
-m, --machine displays machine parseable output
-s, --script never prompts for user intervention
-v, --version displays the version
-a alignment-type, --align alignment-type Set alignment for newly created partitions, valid alignment types are:
none   Use the minimum alignment allowed by the disk type.
cylinder Align partitions to cylinders.
minimal Use minimum alignment as given by the disk topology information. This and the opt value will use layout information provided by the disk to align the logical partition table addresses to actual physical blocks on the disks.  The min value is the minimum alignment needed to align the partition properly to physical blocks, which avoids performance degradation.
optimal Use optimum alignment as given by the disk topology information. This aligns to a multiple of the physical block size in a way that guarantees optimal performance.
[device] The block device to be used.  When none is given, parted will use the first block device it finds.
[command [options]] Specifies the command to be executed.  If no command is given, parted will present a command prompt.  Possible commands are:
help [command] Print general help, or help on command if specified.
align-check type partition Check if partition satisfies the alignment constraint of type.  type must be "minimal" or "optimal".
mklabel label-type Create a new disklabel (partition table) of label-type. label-type should be one of "aix", "amiga", "bsd", "dvh", "gpt", "loop", "mac", "msdos", "pc98", or "sun".
mkpart [part-type name fs-type] start end Create a new partition. part-type may be specified only with msdos and dvh partition tables, it should be one of "primary", "logical", or "extended".  name is required for GPT partition tables and fs-type is optional.  fs-type can be one of "btrfs", "ext2", "ext3", "ext4", "fat16", "fat32", "hfs", "hfs+", "linux-swap", "ntfs", "reiserfs", "udf", or "xfs".
name partition name Set the name of partition to name. This option works only on Mac, PC98, and GPT disklabels. The name can be placed in double quotes, if necessary.  And depending on the shell may need to also be wrapped in single quotes so that the shell doesn't strip off the double quotes.
print  Display the partition table.
quit   Exit from parted.
rescue start end Rescue a lost partition that was located somewhere between start and end.  If a partition is found, parted will ask if you want to create an entry for it in the partition table.
resizepart partition end Change the end position of partition.  Note that this does not modify any filesystem present in the partition.
rm partition Delete partition.
select device Choose device as the current device to edit. device should usually be a Linux hard disk device, but it can be a partition, software raid device, or an LVM logical volume if necessary.
set partition flag state Change the state of the flag on partition to state. Supported flags are: "boot", "root", "swap", "hidden", "raid", "lvm", "lba", "legacy_boot", "irst", "msftres", "esp", "chromeos_kernel", "bls_boot" and "palo".  state should be either "on" or "off".
unit unit Set unit as the unit to use when displaying locations and sizes, and for interpreting those given by the user when not suffixed with an explicit unit.  unit can be one of "s" (sectors), "B" (bytes), "kB", "MB", "MiB", "GB", "GiB", "TB", "TiB", "%" (percentage of device size), "cyl" (cylinders), "chs" (cylinders, heads, sectors), or "compact" (megabytes for input, and a human-friendly form for output).
toggle partition flag Toggle the state of flag on partition.
version Display version information and a copyright message.
fdisk(8), mkfs(8), The parted program is fully documented in the info(1) format GNU partitioning software manual.
VIMTUTOR(1)                  General Commands Manual                 VIMTUTOR(1)
vimtutor - the Vim tutor
vimtutor [-g] [language]
Vimtutor starts the Vim tutor.  It copies the tutor file first, so that it can be modified without changing the original file.
The Vimtutor is useful for people that want to learn their first Vim commands.
The optional argument -g starts vimtutor with gvim rather than vim, if the GUI version of vim is available, or falls back to Vim if gvim is not found.
The optional [language] argument is the two-letter name of a language, like "it" or "es".  If the [language] argument is missing, the language of the current locale will be used.  If a tutor in this language is available, it will be used.  Otherwise the English version will be used.
Vim is always started in Vi compatible mode.
/usr/share/vim/vim82/tutor/tutor[.language] The Vimtutor text file(s).
/usr/share/vim/vim82/tutor/tutor.vim The Vim script used to copy the Vimtutor text file.
The Vimtutor was originally written for Vi by Michael C. Pierce and Robert K. Ware, Colorado School of Mines using ideas supplied by Charles Smith, Colorado State University.  E-mail: bware@mines.colorado.edu. It was modified for Vim by Bram Moolenaar.  For the names of the translators see the tutor files.
PHPCPD(1)                         User Commands                        PHPCPD(1)
phpcpd - PHPCPD command line interface
phpcpd [options] [--] [<values>]...
Copy and paste detector (CPD) for PHP code. This tool provides details about duplicated lines inside a PHP project.
Arguments: values Files and directories to analyze
--regexps-exclude=REGEXPS-EXCLUDE A comma-separated list of paths regexps to exclude (example: "#var/.*_tmp#")
--exclude=EXCLUDE Exclude a directory from code analysis (must be relative to source) (multiple values allowed)
--log-pmd=LOG-PMD Write result in PMD-CPD XML format to file
--min-lines=MIN-LINES Minimum number of identical lines [default: 5]
--min-tokens=MIN-TOKENS Minimum number of identical tokens [default: 70]
--fuzzy Fuzz variable names
--progress Show progress bar
KNIFE(1)                              knife                             KNIFE(1)
knife - The man page for the knife command line tool.
knife is a command-line tool that provides an interface between a local chef-repo and the Chef server. knife helps users to manage:
• Nodes
• Cookbooks and recipes
• Roles
• Stores of JSON data (data bags), including encrypted data
• Environments
• Cloud resources, including provisioning
• The installation of the chef-client on management workstations
• Searching of indexed data on the Chef server
Knife subcommands:
• knife bootstrap
• knife client
• knife configure
• knife cookbook
• knife cookbook site
• knife data bag
• knife delete
• knife deps
• knife diff
• knife download
• knife edit
• knife environment
• knife exec
• knife list
• knife node
• knife raw
• knife recipe list
• knife role
• knife search
• knife show
• knife ssh
• knife status
• knife tag
• knife upload
• knife user
• knife xargs
knife runs from a management workstation and sits in-between a Chef server and an organization's infrastructure. knife interacts with a Chef server by using the same REST API that is used by a chef-client. Role-based authentication controls (RBAC) can be used to authorize changes when knife is run with Enterprise Chef. knife is configured during workstation setup, but subsequent modifications can be made using the knife.rb configuration file.
Common Options The following options can be run with all knife sub-commands and plug-ins:
-c CONFIG_FILE, --config CONFIG_FILE The configuration file to use. For example, when knife is run from a node that is configured to be managed by the Chef server, this option is used to allow knife to use the same credentials as the chef-client when communicating with the Chef server.
--chef-zero-port PORT The port on which chef-zero will listen.
-d, --disable-editing Use to prevent the $EDITOR from being opened and to accept data as-is.
--defaults Use to have knife use the default value instead of asking a user to provide one.
-e EDITOR, --editor EDITOR The $EDITOR that is used for all interactive commands.
-E ENVIRONMENT, --environment ENVIRONMENT The name of the environment. When this option is added to a command, the command will run only against the named environment. This option is ignored during search queries made using the knife search subcommand.
-F FORMAT, --format FORMAT The output format: summary (default), text, json, yaml, and pp.
-h, --help Shows help for the command.
-k KEY, --key KEY The private key that knife will use to sign requests made by the API client to the Chef server.
--[no-]color Use to view colored output.
--print-after Use to show data after a destructive operation.
-s URL, --server-url URL The URL for the Chef server.
-u USER, --user USER The user name used by knife to sign requests made by the API client to the Chef server. Authentication will fail if the user name does not match the private key.
-v, --version The version of the chef-client.
-V, --verbose Set for more verbose outputs. Use -VV for maximum verbosity.
-y, --yes Use to respond to all confirmation prompts with "Yes". knife will not ask for confirmation.
-z, --local-mode Use to run the chef-client in local mode. This allows all commands that work against the Chef server to also work against the local chef-repo.
JSON Data Format Most data is entered using a text editor in JSON format, unless the --disable-editing option is entered as part of a command. (Encrypted data bags use YAML, which is a superset of JSON.) JSON is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information about JSON, see http://www.json.org/ or http://en.wikipedia.org/wiki/JSON.
Set the Text Editor Some knife commands, such as knife data bag edit, require that information be edited as JSON data using a text editor. For example, the following command:
$ knife data bag edit admins admin_name
will open up the text editor with data similar to:
{ "id": "admin_name" }
Changes to that file can then be made:
{ "id": "Justin C." "description": "I am passing the time by letting time pass over me ..." }
The type of text editor that is used by knife can be configured by adding an entry to the knife.rb file or by setting an EDITOR environment variable. For example, to configure the text editor to always open with vim, add the following to the knife.rb file:
knife[:editor] = "/usr/bin/vim"
When a Microsoft Windows file path is enclosed in a double-quoted string (" "), the same backslash character (\) that is used to define the file path separator is also used in Ruby to define an escape character. The knife.rb file is a Ruby file; therefore, file path separators must be escaped. In addition, spaces in the file path must be replaced with ~1 so that the length of each section within the file path is not more than 8 characters. For example, if EditPad Pro is the text editor of choice and is located at the following path:
C:\\Program Files (x86)\EditPad Pro\EditPad.exe
the setting in the knife.rb file would be similar to:
knife[:editor] = "C:\\Progra~1\\EditPa~1\\EditPad.exe"
One approach to working around the double- vs. single-quote issue is to put the single-quotes outside of the double-quotes. For example, for Notepad++:
knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe -nosession -multiInst"'
for Sublime Text:
knife[:editor] = '"C:\Program Files\Sublime Text 2\sublime_text.exe --wait"'
for TextPad:
knife[:editor] = '"C:\Program Files (x86)\TextPad 7\TextPad.exe"'
and for vim:
knife[:editor] = '"C:\Program Files (x86)\vim\vim74\gvim.exe"'
Using Quotes Values can be entered with double quotes (" ") or single quotes (' '), but this should be done consistently.
Sub-commands knife comes with a collection of built in subcommands that work together to provide all of the functionality required to take specific actions against any object in an organization, including cookbooks, nodes, roles, data bags, environments, and users. A knife plugin extends the functionality beyond built-in subcommands.
knife has the following subcommands: bootstrap, client, configure, cookbook, cookbook site, data bag, delete, deps, diff, download, edit, environment, exec, index rebuild, list, node, recipe list, role, search, show, ssh, status, tag, upload, user, and xargs.
NOTE: The following subcommands run only against the open source Chef server: index rebuild and user.
Syntax All knife subcommands have the following syntax: knife subcommand [ARGUMENT] (options)
Each subcommand has its own set of arguments and options.
NOTE: All syntax examples in this document show variables in ALL_CAPS. For example -u PORT_LIST (where PORT_LIST is a comma-separated list of local and public UDP ports) or -F FORMAT (where FORMAT determines the output format, either summary, text, json, yaml, or pp). These variables often require specific values that are unique to each organization.
ELVI(1sr)                                                              ELVI(1sr)
elvi - surfraw(1) search tools
surfraw elviname [options] search words ... sr elviname [options] search words ... sr elviname -help sr -elvi
This is the man page for the elvi, a set of search tools that form part of surfraw(1).
Surfraw provides a fast unix command line interface to a variety of popular WWW search engines and other artifacts of power. It reclaims google, altavista, dejanews, freshmeat, research index, slashdot and many others from the false‐prophet, pox‐infested heathen lands of html‐forms, placing these wonders where they belong, deep in unix heartland, as god loving extensions to the shell.
To search using this elvis, do:
sr elvisname [options] search terms.
To find out about options specific to this elvis, do:
sr elvisname -help
To find out about surfraw, see the man page for surfraw(1).  To see the full list of elvi, do:
Use  sr elviname -help for elvi‐specific options.
-q|-quote Bracket arguments with " characters (default: no) Note that putting quotes round arguments works now, so you can do, for example:
Man page by Ian Beckwith, based on the original README and an earlier man page for surfraw(1) by Christian Surchi.
Copyright (c) 2003‐2010 The Surfraw-Devel Team <surfraw-devel@lists.alioth.debian.org> Copyright (c) 2000‐2001 Julian Assange <proff@iq.org> Copyright (c) 2001 Australian Institute for Collaborative Research Copyright (c) 2000 Melbourne Institute for Advanced Study
Cdk(3)                      Library Functions Manual                      Cdk(3)
cdk - Curses Development Kit
cc [ flag ... ] file ...  -lcdk [ library ... ]
#include <cdk.h>
Cdk provides functions to use a large number of predefined curses widgets.  To use the Cdk widgets the header file cdk.h must be included in the source.
The widgets available from Cdk are listed below.
Widget Type                 Manual Page Name ────────────────────────────────────────────── Alphalist                   cdk_alphalist (3) Button                      cdk_button (3) Buttonbox                   cdk_buttonbox (3) Calendar                    cdk_calendar (3) Dialog                      cdk_dialog (3) DoubleFloat Scale           cdk_dscale (3) Entry Field                 cdk_entry (3) File Selector               cdk_fselect (3) File Viewer                 cdk_viewer (3) Floating Scale              cdk_fscale (3) Floating Slider             cdk_fslider (3) Graph                       cdk_graph (3) Histogram                   cdk_histogram (3) Integer Scale               cdk_scale (3) Integer Slider              cdk_slider (3) Item List                   cdk_itemlist (3) Label                       cdk_label (3) Marquee                     cdk_marquee (3) Matrix                      cdk_matrix (3) Multiple Line Entry Field   cdk_mentry (3) Pulldown Menu               cdk_menu (3) Radio List                  cdk_radio (3) Scrolling List              cdk_scroll (3) Scrolling Selection List    cdk_selection (3) Scrolling Window            cdk_swindow (3) Template                    cdk_template (3) Unsigned Scale              cdk_uscale (3) Unsigned Slider             cdk_uslider (3)
The rest of the manual pages describe supporting functions:
Manual Page Name     Description ───────────────────────────────────────────────────────── cdk_binding (3)      Outlines how to create user definable key bindings. cdk_display (3)      Shows how to add special display attributes, colors, and justification into a widget. cdk_draw (3)         Outlines functions used for drawing text and lines. cdk_screen (3)       Demonstrates the use of screens within Cdk. cdk_misc (3)         Outlines miscellaneous functions provided with the Cdk library.
cdk_process (3)      Demonstrates the use of the pre- and post-process function class.
Cdk is a library of functions which allow a programmer to quickly create a full screen interactive program with ease.  The Cdk widgets support the following features:
• Ncurses library. Instead of using the standard curses library, Cdk can take advantage of the colors that Ncurses provides.  To learn how to take advantage of Cdk's color capabilities, see cdk_display (3).
• Key Bindings. Individual keys can be overridden with a callback.  The callback is set up using the bindCDKObject function.  To learn more about this see cdk_binding (3).
• Pre and Post Processing. Certain widgets allow the user to trap a character before and after the character has been applied to the widget.  This allows programmers to `filter' character input.  To learn more about this see cdk_process (3).
• Self Test Widgets. With the use of the inject function class and the activate function, programmers can have the widgets test themselves.  This allows the programmer to perform automated tests on a final program.
• Special Display Formats There are special character format commands that can be inserted into any string in Cdk and the contents will get mapped to a chtype (see the curses manual page) with character attributes.  This allows the programmer to insert format types on each character if they wish.
• The Ability To Build Predefined Screens Widgets can be associated to any given screen.  If there is more than one screen defined, then Cdk has the ability to "flip" from one screen to another with ease.  See the cdk_screen manual page for more details.
All of the widgets have a member of the structure called exitType.  This member states how the widget exited.  There are three values in which to check for, they are as follows:
cdk_binding(3), cdk_display(3), cdk_draw(3), cdk_misc(3), cdk_process(3), cdk_screen(3)
The header file <cdk.h> automatically includes the header files <curses.h>, <stdlib.h>, <string.h>, <ctype.h>, <unistd.h>, <dirent.h>, <time.h>, <errno.h>, <pwd.h>, <grp.h>, <sys/stat.h>, and <sys/types.h>. The <curses.h> header file includes <stdio.h> and <unctrl.h>.
UVCDYNCTRL(1)                   uvcdynctrl 0.2.3                   UVCDYNCTRL(1)
uvcdynctrl-0.2.3 - libwebcam command line tool
uvcdynctrl [OPTIONS]... [VALUES]...
uvcdynctrl 0.2.3
Manage dynamic controls in uvcvideo
-h, --help Print full help and exit
-l, --list List available cameras
-i, --import=filename Import dynamic controls from an XML file
-a, --addctrl=vid Import dynamic controls for vid from default location
-v, --verbose Enable verbose output  (default=off)
-d, --device=devicename Specify the device to use  (default=`video0')
-c, --clist List available controls
-g, --get=control Retrieve the current control value -G, --get_raw=unit_id:selector Retrieve the current raw control value
-s, --set=control Set a new control value (For negative values: -s 'My Control' -- -42)
-S, --set_raw=unit_id:selector Set a new raw control value (value is a hex string of control size, default is little endian use '(BE)' prefix to change: -S 13:1 0x01100c or -S 13:1 '(BE)0x0c1001' )
-f, --formats List available frame formats
-W, --save=filename Save device controls state to a file
-L, --load=filename Load device controls state from a file
The full documentation for uvcdynctrl is maintained as a Texinfo manual. If the info and uvcdynctrl programs are properly installed at your site, the command
info uvcdynctrl
SMBMAP(1)                         User Commands                        SMBMAP(1)
smbmap - SMB enumeration tool
smbmap [options]
SMBMap allows users to enumerate samba share drives across an entire domain. List share drives, drive permissions, share contents, upload/download functionality, file name auto-download pattern matching, and even execute remote commands. This tool was designed with pen testing in mind, and is intended to simplify searching for potentially sensitive data across large networks.
Main arguments: -H HOST IP of host
--host-file FILE File containing a list of hosts
-u USERNAME Username, if omitted null session assumed
-p PASSWORD Password or NTLM hash
-s SHARE Specify a share (default C$), ex 'C$'
-d DOMAIN Domain name (default WORKGROUP)
-P PORT SMB port (default 445)
Command Execution: Options for executing commands on the specified host
-x COMMAND Execute a command ex. 'ipconfig /all'
Filesystem Search: Options for searching/enumerating the filesystem of the specified host
-L     List all drives on the specified host
-R [PATH] Recursively list dirs, and files (no share\path lists ALL shares), ex. 'C$\Finance'
-r [PATH] List contents of directory, default is to list root of all shares, ex. -r 'C$\Documents and Settings\Administrator\Documents'
-A PATTERN Define a file name pattern (regex) that auto downloads a file on a match (requires -R or -r), not case sensitive, ex '(web|global).(asax|config)'
-q     Disable verbose output. Only shows shares you have READ/WRITE on, and suppresses file listing when performing a search (-A).
--depth DEPTH Traverse a directory tree to a specific depth
File Content Search: Options for searching the content of files
-F PATTERN File content search, -F '[Pp]assword' (requries admin access to execute commands, and powershell on victim host)
--search-path PATH Specify drive/path to search (used with -F, default C:\Users), ex 'D:\HR\'
Filesystem interaction: Options for interacting with the specified host's filesystem
--download PATH Download a file from the remote system, ex.'C$\temp\passwords.txt'
--upload SRC DST Upload a file to the remote system ex.  '/tmp/payload.exe C$\temp\payload.exe'
--delete PATH TO FILE Delete a remote file, ex. 'C$\temp\msf.exe'
--skip Skip delete file confirmation prompt
Optional arguments: -h, --help show help message and exit
smbmap -u jsmith -p password1 -d workgroup -H 192.168.0.1 smbmap -u jsmith -p 'aad3b435b51404eeaad3b435b51404ee:da76f2c4c96028b7a6111aef4a50a94d' -H 172.16.0.20 smbmap -u 'apadmin' -p 'asdf1234!' -d ACME -H 10.1.3.30 -x 'net group "Domain Admins" /domain'
smbmap was developed by ShawnDEvans <ShawnDEvans@gmail.com>
This manual page was written by Samuel Henrique <samueloph@debian.org> for the Debian project, it was based on smbmap -h output and can be used by other projects as well.
JMTPFS(1)                    General Commands Manual                   JMTPFS(1)
jmtpfs - FUSE based filesystem for accessing MTP devices
jmtpfs [options] MOUNTPOINT
jmtpfs is a FUSE and libmtp based filesystem for accessing MTP (Media Transfer Protocol) devices. It was specifically designed for exchanging files between Linux (and Mac OS X) systems and newer Android devices that support MTP but not USB Mass Storage.
The goal is to create a well-behaved filesystem, allowing tools like find(1) and rsync(1) to work as expected. MTP file types are set automatically based on file type detection using libmagic(3).  Setting the file type is necessary for some Android applications, like Gallery, to be able to find and use the files uploaded to the device.
For regular use, simply specifying a MOUNTPOINT will have the first available MTP device mounted under it. Mounted devices should be unmounted using
fusermount -u MOUNTPOINT
(see fusermount(1) for more details).
Note: most (if not all) Android phones have to be unlocked when first accessed over MTP; if you get an input/output error on the mountpoint, unlock the phone and retry.
jmtpfs accepts the following options:
-V, --version Show the program version.
-l, --listDevices List all available MTP devices.
-device=<busnum>,<devnum> Specify the device to mount. If unspecified, the first device found is used.
In addition to these options, all options supported by fuse(8) are available. See jmtpfs -h for more information.
fuse(8), fusermount(1)
jmtpfs was written by Jason Ferrara <jason.ferrara@jacquette.com>.
This manual page was written by Apollon Oikonomopoulos <apoikos@debian.org>, for the Debian project (but may be used by others).
RUNCON(1)                         User Commands                        RUNCON(1)
runcon - run command with specified security context
runcon CONTEXT COMMAND [args] runcon [ -c ] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]
Run COMMAND with completely-specified CONTEXT, or with current or transitioned security context modified by one or more of LEVEL, ROLE, TYPE, and USER.
If none of -c, -t, -u, -r, or -l, is specified, the first argument is used as the complete context.  Any additional arguments after COMMAND are interpreted as arguments to the command.
Note that only carefully-chosen contexts are likely to successfully run.
Run a program in a different SELinux security context.  With neither CONTEXT nor COMMAND, print the current security context.
CONTEXT Complete security context
-c, --compute compute process transition context before modifying
-t, --type=TYPE type (for same role as parent)
-u, --user=USER user identity
-r, --role=ROLE role
-l, --range=RANGE levelrange
Written by Russell Coker.
Full documentation <https://www.gnu.org/software/coreutils/runcon> or available locally via: info '(coreutils) runcon invocation'
NL(1P)                      POSIX Programmer's Manual                     NL(1P)
nl — line numbering filter
nl [-p] [-b type] [-d delim] [-f type] [-h type] [-i incr] [-l num] [-n format] [-s sep] [-v startnum] [-w width] [file]
The nl utility shall read lines from the named file or the standard input if no file is named and shall reproduce the lines to standard output. Lines shall be numbered on the left. Additional functionality may be provided in accordance with the command options in effect.
The nl utility views the text it reads in terms of logical pages. Line numbering shall be reset at the start of each logical page. A logical page consists of a header, a body, and a footer section. Empty sections are valid. Different line numbering options are independently available for header, body, and footer (for example, no numbering of header and footer lines while numbering blank lines only in the body).
The starts of logical page sections shall be signaled by input lines containing nothing but the following delimiter characters:
┌───────────┬────────────┐ │   Line    │  Start of  │ ├───────────┼────────────┤ │\:\:\:     │ Header     │ │\:\:       │ Body       │ │\:         │ Footer     │ └───────────┴────────────┘ Unless otherwise specified, nl shall assume the text being read is in a single logical page body.
The nl utility shall conform to the Base Definitions volume of POSIX.1‐2017, Section 12.2, Utility Syntax Guidelines.  Only one file can be named.
-b type   Specify which logical page body lines shall be numbered. Recognized types and their meaning are:
a       Number all lines.
t       Number only non-empty lines.
n       No line numbering.
pstring Number only lines that contain the basic regular expression specified in string.
The default type for logical page body shall be t (text lines numbered).
-d delim  Specify the delimiter characters that indicate the start of a logical page section. These can be changed from the default characters "\:" to two user-specified characters. If only one character is entered, the second character shall remain the default character ':'.
-f type   Specify the same as b type except for footer. The default for logical page footer shall be n (no lines numbered).
-h type   Specify the same as b type except for header. The default type for logical page header shall be n (no lines numbered).
-i incr   Specify the increment value used to number logical page lines. The default shall be 1.
-l num    Specify the number of blank lines to be considered as one. For example, -l 2 results in only the second adjacent blank line being numbered (if the appropriate -h a, -b a, or -f a option is set). The default shall be 1.
-n format Specify the line numbering format. Recognized values are: ln, left justified, leading zeros suppressed; rn, right justified, leading zeros suppressed; rz, right justified, leading zeros kept. The default format shall be rn (right justified).
-p        Specify that numbering should not be restarted at logical page delimiters.
-s sep    Specify the characters used in separating the line number and the corresponding text line. The default sep shall be a <tab>.
-v startnum Specify the initial value used to number logical page lines. The default shall be 1.
-w width  Specify the number of characters to be used for the line number. The default width shall be 6.
file      A pathname of a text file to be line-numbered.
The standard input shall be used if no file operand is specified, and shall be used if the file operand is '-' and the implementation treats the '-' as meaning standard input.  Otherwise, the standard input shall not be used.  See the INPUT FILES section.
The following environment variables shall affect the execution of nl:
LC_CTYPE  Determine the locale for the interpretation of sequences of bytes of text data as characters (for example, single-byte as opposed to multi-byte characters in arguments and input files), the behavior of character classes within regular expressions, and for deciding which characters are in character class graph (for the -b t, -f t, and -h t options).
The standard output shall be a text file in the following format:
"%s%s%s", <line number>, <separator>, <input line>
where <line number> is one of the following numeric formats:
%6d       When the rn format is used (the default; see -n).
%06d      When the rz format is used.
%-6d      When the ln format is used.
<empty>   When line numbers are suppressed for a portion of the page; the <separator> is also suppressed.
In the preceding list, the number 6 is the default width; the -w option can change this value.
In using the -d delim option, care should be taken to escape characters that have special meaning to the command interpreter.
nl -v 10 -i 10 -d \!+ file1
numbers file1 starting at line number 10 with an increment of 10. The logical page delimiter is "!+".  Note that the '!'  has to be escaped when using csh as a command interpreter because of its history substitution syntax.  For ksh and sh the escape is not necessary, but does not do any harm.
CCOMPS(1)                    General Commands Manual                   CCOMPS(1)
ccomps - connected components filter for graphs
ccomps [ -sxvenzC?  ] [ -X[#%]s[-f] ] [ -ooutfile ] [ files ]
ccomps decomposes graphs into their connected components, printing the components to standard output.
-e     Do not induce edges in the connected components.
-s     No output graph is printed. The return value can be used to check if the graph is connected or not.
-x     Only the connected components are printed, as separate graphs.
-v     Counts of nodes, edges and connected components are printed.
-z     Sort components by size, with the largest first. This is only effective if either -x or -X# is present.  Thus, -zX#0 will cause the largest component to be printed.
-C     Use clusters in computing components in addition to normal edge connectivity. In essence, this gives the connected components of the derived graph in which nodes top-level clusters and nodes in the original graph. This maintains all subgraph structure within a component, even if a subgraph does not contain any nodes.
-n     Do not project subgraph structure. Normally, if ccomps produces components as graphs distinct from the input graph, it will define subgraphs which are projections of subgraphs of the input graph onto the component. (If the projection is empty, no subgraph is produced.)  If this flag is set, the component contains only the relevant nodes and edges.
-X node_name Prints only the component containing the node node_name, if any.
-X# start
-X# start-
-X# start-last Prints only components in the given range of indices. In the first form, only the component whose index is start, if any, is printed. In the second form, each component whose index is at least start is printed. In the last form, only those components whose indices are in the range [Istart,last] are printed.  Thus, the flag -x is equivalent to -X#0-.
-X% min
-X% min-
-X% min-max Prints only components in the given range of sizes. In the first form, only a component whose size is min, if any, is printed.  In the second form, each component whose size is at least min is printed. In the last form, only those components whose sizes are in the range [Imin,max] are printed.
-o outfile If specified, each graph will be written to a different file with the names derived from outfile. In particular, if both -o and -x flags are used, then each connected component is written to a different file. If outfile does not have a suffix, the first file will have the name outfile; then next outfile_1, then next outfile_2, and so on.  If outfile has a suffix, i.e., has the form base.sfx, then the files will be named base.sfx, base_1.sfx, base_2.sfx, etc.
By default, each input graph is printed, with each connected component given as a subgraph whose name is a concatenation of the name of the input graph, the string "_cc_" and the number of the component.
Unless used to extract a single connected component, ccomps returns 0 if all the input graphs are connected; and non-zero if any graph has multiple components, or any error occurred.  If just extracting a single component, ccomps returns 0 on success and non-zero if an error occurred.
gc(1), dot(1), gvpr(1), gvcolor(1), acyclic(1), sccmap(1), tred(1), libgraph(3)
docker-network - Manage networks
docker network
Manage networks
-h, --help[=false]      help for network
docker(1), docker-network-connect(1), docker-network-create(1), docker- network-disconnect(1), docker-network-inspect(1), docker-network-ls(1), docker-network-prune(1), docker-network-rm(1)
FORTUNE(6)                    UNIX Reference Manual                   FORTUNE(6)
fortune - print a random, hopefully interesting, adage
fortune     [-acefilosw] [-n length] [-m pattern] [[n%] file/dir/all]
When fortune is run with no arguments it prints out a random epigram. Epigrams are divided into several categories.
Options The options are as follows:
Choose from all lists of maxims.
Show the cookie file from which the fortune came.
Consider all fortune files to be of equal size (see discussion below on multiple files).
Print out the list of files which would be searched, but don't print a fortune.
Long dictums only. See -n on how “long” is defined in this sense.
-m pattern
Print out all fortunes which match the basic regular expression pattern. The syntax of these expressions depends on how your system defines re_comp(3) or regcomp(3), but it should nevertheless be similar to the syntax used in grep(1).
The fortunes are output to standard output, while the names of the file from which each fortune comes are printed to standard error. Either or both can be redirected; if standard output is redirected to a file, the result is a valid fortunes database file. If standard error is also redirected to this file, the result is still valid, but there will be “bogus” fortunes, i.e. the filenames themselves, in parentheses. This can be useful if you wish to remove the gathered matches from their original files, since each filename-record will precede the records from the file it names.
-n length
Set the longest fortune length (in characters) considered to be “short” (the default is 160). All fortunes longer than this are considered “long”. Be careful! If you set the length too short and ask for short fortunes, or too long and ask for long ones, fortune goes into a never-ending thrash loop.
-s Short apothegms only. See -n on which fortunes are considered “short”.
Ignore case for -m patterns.
Wait before termination for an amount of time calculated from the number of characters in the message. This is useful if it is executed as part of the logout procedure to guarantee that the message can be read before the screen is cleared.
The user may specify alternate sayings. You can specify a specific file, a directory which contains one or more files, or the special word all which says to use all the standard databases. Any of these may be preceded by a percentage, which is a number n between 0 and 100 inclusive, followed by a %. If it is, there will be a n percent probability that an adage will be picked from that file or directory. If the percentages do not sum to 100, and there are specifications without percentages, the remaining percent will apply to those files and/or directories, in which case the probability of selecting from one of them will be based on their relative sizes.
As an example, given two databases funny and not-funny, with funny twice as big (in number of fortunes, not raw file size), saying
fortune funny not-funny
will get you fortunes out of funny two-thirds of the time. The command
fortune 90% funny 10% not-funny
will pick out 90% of its fortunes from funny (the “10% not-funny” is unnecessary, since 10% is all that's left).
The -e option says to consider all files equal; thus
fortune -e funny not-funny
fortune 50% funny 50% not-funny
Note: these are the defaults as defined at compile time.
/usr/share/fortune/ Directory for innoffensive fortunes.
If a particular set of fortunes is particularly unwanted, there is an easy solution: delete the associated .dat file. This leaves the data intact, should the file later be wanted, but since fortune no longer finds the pointers file, it ignores the text file.
The supplied fortune databases have been attacked, in order to correct orthographical and grammatical errors, and particularly to reduce redundancy and repetition and redundancy. But especially to avoid repetitiousness. This has not been a complete success. In the process, some fortunes may also have been lost.
The fortune databases are now divided into a larger number of smaller files, some organized by format (poetry, definitions), and some by content (religion, politics).
This version of fortune is based on the NetBSD fortune 1.4, but with a number of bug fixes and enhancements.
The original fortune/strfile format used a single file; strfile read the text file and converted it to null-delimited strings, which were stored after the table of pointers in the .dat file. By NetBSD fortune 1.4, this had changed to two separate files: the .dat file was only the header (the table of pointers, plus flags; see strfile.h), and the text strings were left in their own file. The potential problem with this is that text file and header file may get out of synch, but the advantage is that the text files can be easily edited without resorting to unstr, and there is a potential savings in disk space (on the assumption that the sysadmin kept both .dat file with strings and the text file).
Many of the enhancements made over the NetBSD version assumed a Linux system, and thus caused it to fail under other platforms, including BSD. The source code has since been made more generic, and currently works on SunOS 4.x as well as Linux, with support for more platforms expected in the future. Note that some bugs were inadvertently discovered and fixed during this process.
At a guess, a great many people have worked on this program, many without leaving attributions.
re_comp(3), regcomp(3), strfile(1), unstr(1)
GIT-MISSING(1)                     Git Extras                     GIT-MISSING(1)
git-missing - Show commits missing from another branch
git-missing [<first branch>] <second branch> [<git log options>]
Shows commits that are in either of two branches but not both. Useful for seeing what would come across in a merge or push.
[<first branch>]
First branch to compare. If not specified, defaults to currently checked out branch.
<second branch>
Second branch to compare.
[<git log options>]
Any flags that should be passed to ´git log´, such as --no-merges.
Show commits on either my current branch or master but not both:
$ git missing master < d14b8f0 only on current checked out branch > 97ef387 only on master
Show commits on either branch foo or branch bar but not both:
$ git missing foo bar < b8f0d14 only on foo > f38797e only on bar
Written by Nate Jones <nate@endot.org>
<http://github.com/tj/git-extras/issues>
<http://github.com/tj/git-extras>
GIT-RENAME-BRANCH(1)               Git Extras               GIT-RENAME-BRANCH(1)
git-rename-branch - rename local branch and push to remote
git-rename-branch <new-branch> <old-branch>
Rename local branch and push the new branch to remote
&lt;new-branch&gt;
&lt;old-branch&gt;
Old branch whose has to be renamed. This is an optional parameter. If no value is supplied then the current branch will be renamed.
$ git rename-branch new-name old-name
$ git rename-branch new-name
Written by Hozefa Jodiawalla <hozefarules@gmail.com>
NPX(1)                                                                    NPX(1)
npx - Run a command from a local or remote npm package
Synopsis npm exec -- <pkg>[@<version>] [args...] npm exec --package=<pkg>[@<version>] -- <cmd> [args...] npm exec -c '<cmd> [args...]' npm exec --package=foo -c '<cmd> [args...]'
npx <pkg>[@<specifier>] [args...] npx -p <pkg>[@<specifier>] <cmd> [args...] npx -c '<cmd> [args...]' npx -p <pkg>[@<specifier>] -c '<cmd> [args...]'
alias: npm x, npx
--package=<pkg> (may be specified multiple times) -p is a shorthand for --package only when using npx executable -c <cmd> --call=<cmd> (may not be mixed with positional arguments)
Description This command allows you to run an arbitrary command from an npm package (either one installed locally, or fetched remotely), in a similar context as running it via npm run.
Whatever packages are specified by the --package option will be provided in the PATH of the executed command, along with any locally installed package executables.  The --package option may be specified multiple times, to execute the supplied command in an environment where all specified packages are available.
If any requested packages are not present in the local project dependencies, then they are installed to a folder in the npm cache, which is added to the PATH environment variable in the executed process.  A prompt is printed (which can be suppressed by providing either --yes or --no).
Package names provided without a specifier will be matched with whatever version exists in the local project.  Package names with a specifier will only be considered a match if they have the exact same name and version as the local dependency.
If no -c or --call option is provided, then the positional arguments are used to generate the command string.  If no --package options are provided, then npm will attempt to determine the executable name from the package specifier provided as the first positional argument according to the following heuristic:
• If the package has a single entry in its bin field in package.json, or if all entries are aliases of the same command, then that command will be used.
• If the package has multiple bin entries, and one of them matches the unscoped portion of the name field, then that command will be used.
• If this does not result in exactly one option (either because there are no bin entries, or none of them match the name of the package), then npm exec exits with an error.
To run a binary other than the named binary, specify one or more --package options, which will prevent npm from inferring the package from the first command argument.
npx vs npm exec When run via the npx binary, all flags and options must be set prior to any positional arguments.  When run via npm exec, a double-hyphen -- flag can be used to suppress npm's parsing of switches and options that should be sent to the executed command.
$ npx foo@latest bar --package=@npmcli/foo
In this case, npm will resolve the foo package name, and run the following command:
$ foo bar --package=@npmcli/foo
Since the --package option comes after the positional arguments, it is treated as an argument to the executed command.
In contrast, due to npm's argument parsing logic, running this command is different:
$ npm exec foo@latest bar --package=@npmcli/foo
In this case, npm will parse the --package option first, resolving the @npmcli/foo package.  Then, it will execute the following command in that context:
$ foo@latest bar
The double-hyphen character is recommended to explicitly tell npm to stop parsing command line options and switches.  The following command would thus be equivalent to the npx command above:
$ npm exec -- foo@latest bar --package=@npmcli/foo
Examples Run the version of tap in the local dependencies, with the provided arguments:
$ npm exec -- tap --bail test/foo.js $ npx tap --bail test/foo.js
Run a command other than the command whose name matches the package name by specifying a --package option: