neulab/tldr huggingface dataset:
SLURM_EXIT_ERROR      Specifies the exit code generated when a Slurm error occurs (e.g. invalid options).  This can be used by a script to distinguish application exit codes from various Slurm error conditions.  Also see SLURM_EXIT_IMMEDIATE.
SLURM_EXIT_IMMEDIATE  Specifies the exit code generated when the --immediate option is used and resources are not currently available.  This can be used by a script to distinguish application exit codes from various Slurm error conditions.  Also see SLURM_EXIT_ERROR.
SLURM_EXPORT_ENV      Same as --export
SLURM_GPUS            Same as -G, --gpus
SLURM_GPU_BIND        Same as --gpu-bind
SLURM_GPU_FREQ        Same as --gpu-freq
SLURM_GPUS_PER_NODE   Same as --gpus-per-node
SLURM_GPUS_PER_TASK   Same as --gpus-per-task
SLURM_GRES_FLAGS      Same as --gres-flags
SLURM_HINT            Same as --hint
SLURM_GRES            Same as --gres. Also see SLURM_STEP_GRES
SLURM_IMMEDIATE       Same as -I, --immediate
SLURM_JOB_ID          Same as --jobid
SLURM_JOB_NAME        Same as -J, --job-name except within an existing allocation, in which case it is ignored to avoid using the batch job's name as the name of each job step.
SLURM_JOB_NODELIST    Same as -w, --nodelist=<host1,host2,... or filename>. If job has been resized, ensure that this nodelist is adjusted (or undefined) to avoid jobs steps being rejected due to down nodes.
SLURM_JOB_NUM_NODES (and SLURM_NNODES for backwards compatibility) Same as -N, --nodes Total number of nodes in the jobâ€™s resource allocation.
SLURM_KILL_BAD_EXIT   Same as -K, --kill-on-bad-exit
SLURM_LABELIO         Same as -l, --label
SLURM_MEM_BIND        Same as --mem-bind
SLURM_MEM_PER_CPU     Same as --mem-per-cpu
SLURM_MEM_PER_GPU     Same as --mem-per-gpu
SLURM_MEM_PER_NODE    Same as --mem
SLURM_MPI_TYPE        Same as --mpi
SLURM_NETWORK         Same as --network
SLURM_NO_KILL         Same as -k, --no-kill
SLURM_NTASKS_PER_CORE Same as --ntasks-per-core
SLURM_NTASKS_PER_GPU  Same as --ntasks-per-gpu
SLURM_NTASKS_PER_NODE Same as --ntasks-per-node
SLURM_NTASKS_PER_SOCKET Same as --ntasks-per-socket
SLURM_OPEN_MODE       Same as --open-mode
SLURM_OVERCOMMIT      Same as -O, --overcommit
SLURM_OVERLAP         Same as --overlap
SLURM_PARTITION       Same as -p, --partition
SLURM_PMI_KVS_NO_DUP_KEYS If set, then PMI key-pairs will contain no duplicate keys. MPI can use this variable to inform the PMI library that it will not use duplicate keys so PMI can skip the check for duplicate keys.  This is the case for MPICH2 and reduces overhead in testing for duplicates for improved performance
SLURM_POWER           Same as --power
SLURM_PROFILE         Same as --profile
SLURM_PROLOG          Same as --prolog
SLURM_QOS             Same as --qos
SLURM_REMOTE_CWD      Same as -D, --chdir=
SLURM_REQ_SWITCH      When a tree topology is used, this defines the maximum count of switches desired for the job allocation and optionally the maximum time to wait for that number of switches. See --switches
SLURM_RESERVATION     Same as --reservation
SLURM_RESV_PORTS      Same as --resv-ports
SLURM_SIGNAL          Same as --signal
SLURM_STDERRMODE      Same as -e, --error
SLURM_STDINMODE       Same as -i, --input
SLURM_SPREAD_JOB      Same as --spread-job
SLURM_SRUN_REDUCE_TASK_EXIT_MSG if set and non-zero, successive task exit messages with the same exit code will be printed only once.
SLURM_STEP_GRES       Same as --gres (only applies to job steps, not to job allocations).  Also see SLURM_GRES
SLURM_STDOUTMODE      Same as -o, --output
SLURM_TASK_EPILOG     Same as --task-epilog
SLURM_TASK_PROLOG     Same as --task-prolog
SLURM_TEST_EXEC       If defined, srun will verify existence of the executable program along with user execute permission on the node where srun was called before attempting to launch it on nodes in the step.
SLURM_THREAD_SPEC     Same as --thread-spec
SLURM_THREADS         Same as -T, --threads
SLURM_THREADS_PER_CORE Same as -T, --threads-per-core
SLURM_TIMELIMIT       Same as -t, --time
SLURM_UNBUFFEREDIO    Same as -u, --unbuffered
SLURM_USE_MIN_NODES   Same as --use-min-nodes
SLURM_WAIT            Same as -W, --wait
SLURM_WAIT4SWITCH     Max time waiting for requested switches. See --switches
SLURM_WCKEY           Same as -W, --wckey
SLURM_WHOLE           Same as --whole
SLURM_WORKING_DIR     -D, --chdir
SRUN_EXPORT_ENV       Same as --export, and will override any setting for SLURM_EXPORT_ENV.
srun will set some environment variables in the environment of the executing tasks on the remote compute nodes.  These environment variables are:
SLURM_*_HET_GROUP_#   For a heterogeneous job allocation, the environment variables are set separately for each component.
SLURM_CLUSTER_NAME    Name of the cluster on which the job is executing.
SLURM_CPU_BIND_VERBOSE --cpu-bind verbosity (quiet,verbose).
SLURM_CPU_BIND_TYPE   --cpu-bind type (none,rank,map_cpu:,mask_cpu:).
SLURM_CPU_BIND_LIST   --cpu-bind map or mask list (list of Slurm CPU IDs or masks for this node, CPU_ID = Board_ID x threads_per_board + Socket_ID x threads_per_socket + Core_ID x threads_per_core + Thread_ID).
SLURM_CPU_FREQ_REQ    Contains the value requested for cpu frequency on the srun command as a numerical frequency in kilohertz, or a coded value for a request of low, medium,highm1 or high for the frequency.  See the description of the --cpu-freq option or the SLURM_CPU_FREQ_REQ input environment variable.
SLURM_CPUS_ON_NODE    Count of processors available to the job on this node.  Note the select/linear plugin allocates entire nodes to jobs, so the value indicates the total count of CPUs on the node.  For the select/cons_res plugin, this number indicates the number of cores on this node allocated to the job.
SLURM_CPUS_PER_TASK   Number of cpus requested per task.  Only set if the --cpus-per-task option is specified.
SLURM_DISTRIBUTION    Distribution type for the allocated jobs. Set the distribution with -m, --distribution.
SLURM_GTIDS           Global task IDs running on this node.  Zero origin and comma separated.
SLURM_JOB_ACCOUNT     Account name associated of the job allocation.
SLURM_JOB_CPUS_PER_NODE Number of CPUS per node.
SLURM_JOB_DEPENDENCY  Set to value of the --dependency option.
SLURM_JOB_ID (and SLURM_JOBID for backwards compatibility) Job id of the executing job.
SLURM_JOB_NAME        Set to the value of the --job-name option or the command name when srun is used to create a new job allocation. Not set when srun is used only to create a job step (i.e. within an existing job allocation).
SLURM_JOB_PARTITION   Name of the partition in which the job is running.
SLURM_JOB_QOS         Quality Of Service (QOS) of the job allocation.
SLURM_LAUNCH_NODE_IPADDR IP address of the node from which the task launch was initiated (where the srun command ran from).
SLURM_LOCALID         Node local task ID for the process within a job.
SLURM_MEM_BIND_LIST   --mem-bind map or mask list (<list of IDs or masks for this node>).
SLURM_MEM_BIND_PREFER --mem-bind prefer (prefer).
SLURM_MEM_BIND_SORT   Sort free cache pages (run zonesort on Intel KNL nodes).
SLURM_MEM_BIND_TYPE   --mem-bind type (none,rank,map_mem:,mask_mem:).
SLURM_MEM_BIND_VERBOSE --mem-bind verbosity (quiet,verbose).
SLURM_JOB_NODES       Total number of nodes in the job's resource allocation.
SLURM_NODE_ALIASES    Sets of node name, communication address and hostname for nodes allocated to the job from the cloud. Each element in the set if colon separated and each set is comma separated. For example: SLURM_NODE_ALIASES=ec0:1.2.3.4:foo,ec1:1.2.3.5:bar
SLURM_NODEID          The relative node ID of the current node.
SLURM_JOB_NODELIST    List of nodes allocated to the job.
SLURM_NTASKS (and SLURM_NPROCS for backwards compatibility) Total number of processes in the current job or job step.
SLURM_HET_SIZE        Set to count of components in heterogeneous job.
SLURM_PRIO_PROCESS    The scheduling priority (nice value) at the time of job submission.  This value is propagated to the spawned processes.
SLURM_PROCID          The MPI rank (or relative process ID) of the current process.
SLURM_SRUN_COMM_HOST  IP address of srun communication host.
SLURM_SRUN_COMM_PORT  srun communication port.
SLURM_STEP_LAUNCHER_PORT Step launcher port.
SLURM_STEP_NODELIST   List of nodes allocated to the step.
SLURM_STEP_NUM_NODES  Number of nodes allocated to the step.
SLURM_STEP_NUM_TASKS  Number of processes in the job step or whole heterogeneous job step.
SLURM_STEP_TASKS_PER_NODE Number of processes per node within the step.
SLURM_STEP_ID (and SLURM_STEPID for backwards compatibility) The step ID of the current job.
SLURM_SUBMIT_DIR      The directory from which srun was invoked or, if applicable, the directory specified by the -D, --chdir option.
SLURM_SUBMIT_HOST     The hostname of the computer from which salloc was invoked.
SLURM_TASK_PID        The process ID of the task being started.
SLURM_TASKS_PER_NODE  Number of tasks to be initiated on each node. Values are comma separated and in the same order as SLURM_JOB_NODELIST.  If two or more consecutive nodes are to have the same task count, that count is followed by "(x#)" where "#" is the repetition count. For example, "SLURM_TASKS_PER_NODE=2(x3),1" indicates that the first three nodes will each execute two tasks and the fourth node will execute one task.
SLURM_TOPOLOGY_ADDR   This is set only if the system has the topology/tree plugin configured.  The value will be set to the names network switches which may be involved in the job's communications from the system's top level switch down to the leaf switch and ending with node name. A period is used to separate each hardware component name.
SLURM_TOPOLOGY_ADDR_PATTERN This is set only if the system has the topology/tree plugin configured.  The value will be set component types listed in SLURM_TOPOLOGY_ADDR. Each component will be identified as either "switch" or "node".  A period is used to separate each hardware component type.
SLURM_UMASK           The umask in effect when the job was submitted.
SLURMD_NODENAME       Name of the node running the task. In the case of a parallel job executing on multiple compute nodes, the various tasks will have this environment variable set to different values on each compute node.
SRUN_DEBUG            Set to the logging level of the srun command. Default value is 3 (info level).  The value is incremented or decremented based upon the --verbose and --quiet options.
Signals sent to the srun command are automatically forwarded to the tasks it is controlling with a few exceptions. The escape sequence <control-c> will report the state of all tasks associated with the srun command. If <control-c> is entered twice within one second, then the associated SIGINT signal will be sent to all tasks and a termination sequence will be entered sending SIGCONT, SIGTERM, and SIGKILL to all spawned tasks. If a third <control-c> is received, the srun program will be terminated without waiting for remote tasks to exit or their I/O to complete.
The escape sequence <control-z> is presently ignored. Our intent is for this put the srun command into a mode where various special actions may be invoked.
MPI use depends upon the type of MPI being used.  There are three fundamentally different modes of operation used by these various MPI implementation.
1. Slurm directly launches the tasks and performs initialization of communications through the PMI2 or PMIx APIs.  For example: "srun -n16 a.out".
2. Slurm creates a resource allocation for the job and then mpirun launches tasks using Slurm's infrastructure (OpenMPI).
3. Slurm creates a resource allocation for the job and then mpirun launches tasks using some mechanism other than Slurm, such as SSH or RSH. These tasks are initiated outside of Slurm's monitoring or control. Slurm's epilog should be configured to purge these tasks when the job's allocation is relinquished, or the use of pam_slurm_adopt is highly recommended.
See https://slurm.schedmd.com/mpi_guide.html for more information on use of these various MPI implementation with Slurm.
Comments in the configuration file must have a "#" in column one.  The configuration file contains the following fields separated by white space:
Task rank One or more task ranks to use this configuration.  Multiple values may be comma separated.  Ranges may be indicated with two numbers separated with a '-' with the smaller number first (e.g. "0-4" and not "4-0").  To indicate all tasks not otherwise specified, specify a rank of '*' as the last line of the file.  If an attempt is made to initiate a task for which no executable program is defined, the following error message will be produced "No executable program specified for this task".
Executable The name of the program to execute.  May be fully qualified pathname if desired.
Arguments Program arguments.  The expression "%t" will be replaced with the task's number.  The expression "%o" will be replaced with the task's offset within this range (e.g. a configured task rank value of "1-5" would have offset values of "0-4").  Single quotes may be used to avoid having the enclosed values interpreted.  This field is optional.  Any arguments for the program entered on the command line will be added to the arguments specified in the configuration file.
For example: ################################################################### # srun multiple program configuration file # # srun -n8 -l --multi-prog silly.conf ################################################################### 4-6       hostname 1,7       echo  task:%t 0,2-3     echo  offset:%o
> srun -n8 -l --multi-prog silly.conf 0: offset:0 1: task:1 2: offset:1 3: offset:2 4: linux15.llnl.gov 5: linux16.llnl.gov 6: linux17.llnl.gov 7: task:7
This simple example demonstrates the execution of the command hostname in eight tasks. At least eight processors will be allocated to the job (the same as the task count) on however many nodes are required to satisfy the request. The output of each task will be proceeded with its task number. (The machine "dev" in the example below has a total of two CPUs per node)
> srun -n8 -l hostname 0: dev0 1: dev0 2: dev1 3: dev1 4: dev2 5: dev2 6: dev3 7: dev3
The srun -r option is used within a job script to run two job steps on disjoint nodes in the following example. The script is run using allocate mode instead of as a batch job in this case.
> cat test.sh #!/bin/sh echo $SLURM_JOB_NODELIST srun -lN2 -r2 hostname srun -lN2 hostname
> salloc -N4 test.sh dev[7-10] 0: dev9 1: dev10 0: dev7 1: dev8
The following script runs two job steps in parallel within an allocated set of nodes.
> cat test.sh #!/bin/bash srun -lN2 -n4 -r 2 sleep 60 & srun -lN2 -r 0 sleep 60 & sleep 1 squeue squeue -s wait
> salloc -N4 test.sh JOBID PARTITION     NAME     USER  ST      TIME  NODES NODELIST 65641     batch  test.sh   grondo   R      0:01      4 dev[7-10]
STEPID     PARTITION     USER      TIME NODELIST 65641.0        batch   grondo      0:01 dev[7-8] 65641.1        batch   grondo      0:01 dev[9-10]
This example demonstrates how one executes a simple MPI job.  We use srun to build a list of machines (nodes) to be used by mpirun in its required format. A sample command line and the script to be executed follow.
> cat test.sh #!/bin/sh MACHINEFILE="nodes.$SLURM_JOB_ID"
# Generate Machinefile for mpi such that hosts are in the same #  order as if run via srun # srun -l /bin/hostname | sort -n | awk '{print $2}' > $MACHINEFILE
# Run using generated Machine file: mpirun -np $SLURM_NTASKS -machinefile $MACHINEFILE mpi-app
rm $MACHINEFILE
> salloc -N2 -n4 test.sh
This simple example demonstrates the execution of different jobs on different nodes in the same srun.  You can do this for any number of nodes or any number of jobs.  The executables are placed on the nodes sited by the SLURM_NODEID env var.  Starting at 0 and going to the number specified on the srun commandline.
> cat test.sh case $SLURM_NODEID in 0) echo "I am running on " hostname ;; 1) hostname echo "is where I am running" ;; esac
> srun -N2 test.sh dev0 is where I am running I am running on dev1
This example demonstrates use of multi-core options to control layout of tasks.  We request that four sockets per node and two cores per socket be dedicated to the job.
> srun -N2 -B 4-4:2-2 a.out
This example shows a script in which Slurm is used to provide resource management for a job by executing the various job steps as processors become available for their dedicated use.
> cat my.script #!/bin/bash srun -n4 prog1 & srun -n3 prog2 & srun -n1 prog3 & srun -n1 prog4 & wait
This example shows how to launch an application called "server" with one task, 8 CPUs and 16 GB of memory (2 GB per CPU) plus another application called "client" with 16 tasks, 1 CPU per task (the default) and 1 GB of memory per task.
> srun -n1 -c16 --mem-per-cpu=1gb server : -n16 --mem-per-cpu=1gb client
Copyright (C) 2006-2007 The Regents of the University of California. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). Copyright (C) 2008-2010 Lawrence Livermore National Security. Copyright (C) 2010-2015 SchedMD LLC.
salloc(1), sattach(1), sbatch(1), sbcast(1), scancel(1), scontrol(1), squeue(1), slurm.conf(5), sched_setaffinity (2), numa (3) getrlimit (2)
Version 8.1.3
p7zip(1)                     General Commands Manual                    p7zip(1)
p7zip - Wrapper on 7-Zip file archiver with high compression ratio
p7zip [-c|--stdout|--to-stdout] [-d|--decompress|--uncompress] [-f|--force] [-h|--help] [-k|--keep] [--] [file ...]
7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format.
p7zip is a gzip-like CLI wrapper script for 7-Zip, and handles only the 7z format (the native format of 7-Zip), internally executing either 7za(1) or 7zr(1) command.
With no switches passed in the command line, each given file argument is compressed into file.7z, and then removed.
With the -d switch each passed file needs to end with the .7z extension and is decompressed. After the decompression the original file is removed unless it contained more than one archived file.
When used without any file argument, p7zip reads data from the standard input and compresses (or decompresses in case of -d) it into the standard output.
-c, --stdout, --to-stdout Write output on standard output.
-d, --decompress, --uncompress Decompress file.
-f, --force Skip some checks and force compression or decompression.
-h, --help Print usage.
-k, --keep Do not delete input file.
--     Treat all subsequent arguments as file names, even if they start with a dash.
7z(1), 7za(1), 7zr(1), bzip2(1), gzip(1), zip(1)
Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda.
nkf(1)                                                                    nkf(1)
nkf - Network Kanji Filter
nkf [-butjnesliohrTVvwWJESZxXFfmMBOcdILg] [file ...]
Nkf is a yet another kanji code converter among networks, hosts and terminals.  It converts input kanji code to designated kanji code such as ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 or UTF-32.
One of the most unique faculty of nkf is the guess of the input kanji encodings.  It currently recognizes ISO-2022-JP, Shift_JIS, EUC-JP, UTF-8, UTF-16 and UTF-32.  So users needn't set the input kanji code explicitly.
By default, X0201 kana is converted into X0208 kana.  For X0201 kana, SO/SI, SSO and ESC-(-I methods are supported.  For automatic code detection, nkf assumes no X0201 kana in Shift_JIS.  To accept X0201 in Shift_JIS, use -X, -x or -S.
multiple options are specified as seprate strings, such as
print nkf('--ic=UTF8-MAC', '-w', $string), "\n";
except the last arguments.
-J -S -E -W -W16 -W32 -j -s -e -w -w16 -w32 Specify input and output encodings. Upper case is input.  cf. --ic and --oc.
-J  ISO-2022-JP (JIS code).
-S  Shift_JIS and JIS X 0201 kana.  EUC-JP is recognized as X0201 kana. Without -x flag, JIS X 0201 Katakana (a.k.a.halfwidth kana) is converted into JIS X 0208.  If you use Windows, see Windows-31J (CP932).
-E  EUC-JP.
-W  UTF-8N.
-W16[BL][0] UTF-16.  B or L gives whether Big Endian or Little Endian.  0 gives whther put BOM or not.
-W32[BL][0] UTF-32.  B or L gives whether Big Endian or Little Endian.  0 gives whther put BOM or not.
-b -u Output is buffered (DEFAULT), Output is unbuffered.
-t  No conversion.
-i[@B] Specify the escape sequence for JIS X 0208.
-i@ Use ESC ( @. (JIS X 0208-1978)
-iB Use ESC ( B. (JIS X 0208-1983/1990 DEFAULT)
-o[BJ] Specify the escape sequence for US-ASCII/JIS X 0201 Roman. (DEFAULT B)
-r  {de/en}crypt ROT13/47
-h[123] --hiragana --katakana --katakana-hiragana -h1 --hiragana Katakana to Hiragana conversion.
-h2 --katakana Hiragana to Katakana conversion.
-h3 --katakana-hiragana Katakana to Hiragana and Hiragana to Katakana conversion.
-T  Text mode output (MS-DOS)
-f[m [- n]] Folding on m length with n margin in a line.  Without this option, fold length is 60 and fold margin is 10.
-F  New line preserving line folding.
-Z[0-3] Convert X0208 alphabet (Fullwidth Alphabets) to ASCII.
-Z -Z0 Convert X0208 alphabet to ASCII.
-Z1 Convert X0208 kankaku to single ASCII space.
-Z2 Convert X0208 kankaku to double ASCII spaces.
-Z3 Replacing fullwidth >, <, ", & into '&gt;', '&lt;', '&quot;', '&amp;' as in HTML.
-X -x With -X or without this option, X0201 is converted into X0208 Kana. With -x, try to preserve X0208 kana and do not convert X0201 kana to X0208.  In JIS output, ESC-(-I is used. In EUC output, SS2 is used.
-B[0-2] Assume broken JIS-Kanji input, which lost ESC.  Useful when your site is using old B-News Nihongo patch.
-B1 allows any chars after ESC-( or ESC-$.
-B2 force ASCII after NL.
-I  Replacing non iso-2022-jp char into a geta character (substitute character in Japanese).
-m[BQN0] MIME ISO-2022-JP/ISO8859-1 decode. (DEFAULT) To see ISO8859-1 (Latin-1) -l is necessary.
-mB Decode MIME base64 encoded stream. Remove header or other part before conversion.
-mQ Decode MIME quoted stream. '_' in quoted stream is converted to space.
-mN Non-strict decoding.  It allows line break in the middle of the base64 encoding.
-m0 No MIME decode.
-M  MIME encode. Header style. All ASCII code and control characters are intact.
-MB MIME encode Base64 stream.  Kanji conversion is performed before encoding, so this cannot be used as a picture encoder.
-MQ Perform quoted encoding.
-l  Input and output code is ISO8859-1 (Latin-1) and ISO-2022-JP.  -s, -e and -x are not compatible with this option.
-L[uwm] -d -c Convert line breaks.
-Lu -d unix (LF)
-Lw -c windows (CRLF)
-Lm mac (CR)
Without this option, nkf doesn't convert line breaks.
--fj --unix --mac --msdos --windows Convert for these systems.
--jis --euc --sjis --mime --base64 Convert to named code.
--jis-input --euc-input --sjis-input --mime-input --base64-input Assume input system
--ic=input codeset --oc=output codeset Set the input or output codeset.  NKF supports following codesets and those codeset names are case insensitive.
ISO-2022-JP a.k.a. RFC1468, 7bit JIS, JUNET
EUC-JP (eucJP-nkf) a.k.a. AT&T JIS, Japanese EUC, UJIS
eucJP-ascii eucJP-ms CP51932 Microsoft Version of EUC-JP.
Shift_JIS a.k.a. SJIS, MS_Kanji
Windows-31J a.k.a. CP932
UTF-8 same as UTF-8N
UTF-8N UTF-8 without BOM
UTF-8-BOM UTF-8 with BOM
UTF8-MAC (input only) decomposed UTF-8
UTF-16 same as UTF-16BE
UTF-16BE UTF-16 Big Endian without BOM
UTF-16BE-BOM UTF-16 Big Endian with BOM
UTF-16LE UTF-16 Little Endian without BOM
UTF-16LE-BOM UTF-16 Little Endian with BOM
UTF-32 same as UTF-32BE
UTF-32BE UTF-32 Big Endian without BOM
UTF-32BE-BOM UTF-32 Big Endian with BOM
UTF-32LE UTF-32 Little Endian without BOM
UTF-32LE-BOM UTF-32 Little Endian with BOM
--fb-{skip, html, xml, perl, java, subchar} Specify the way that nkf handles unassigned characters.  Without this option, --fb-skip is assumed.
--prefix=escape charactertarget character.. When nkf converts to Shift_JIS, nkf adds a specified escape character to specified 2nd byte of Shift_JIS characters.  1st byte of argument is the escape character and following bytes are target characters.
--no-cp932ext Handle the characters extended in CP932 as unassigned characters.
--no-best-fit-chars When Unicode to Encoded byte conversion, don't convert characters which is not round trip safe.  When Unicode to Unicode conversion, with this and -x option, nkf can be used as UTF converter.  (In other words, without this and -x option, nkf doesn't save some characters)
When nkf converts strings that related to path, you should use this option.
--cap-input Decode hex encoded characters.
--url-input Unescape percent escaped characters.
--numchar-input Decode character reference, such as "&#....;".
--in-place[=SUFFIX]  --overwrite[=SUFFIX] Overwrite original listed files by filtered result.
Note --overwrite preserves timestamps of original files.
--guess=[12] Print guessed encoding and newline. (2 is default, 1 is only encoding)
--help Print nkf's help.
--version Print nkf's version.
--  Ignore rest of -option.
Copyright (c) 1987, Fujitsu LTD. (Itaru ICHIKAWA).
Copyright (c) 1996-2018, The nkf Project.
FSG(1)                                 FSG                                FSG(1)
FSG - manual page for FSG lsb_release v1.4
lsb_release [OPTION]...
FSG lsb_release v1.4 prints certain LSB (Linux Standard Base) and Distribution information.
With no OPTION specified it is the same as -v.
-v, --version
Display the version of the LSB specification against which the distribution is compliant.
-i, --id
Display the string id of the distributor.
-d, --description
Display the single line text description of the distribution.
-r, --release
Display the release number of the distribution.
-c, --codename
Display the codename according to the distribution release.
-a, --all
Display all of the above information.
-s, --short
Display all of the above information in short output format.
Display this message.
If the installation is LSB compliant, the "/etc/lsb-release" file should contain the LSB_VERSION field. The value of the field should be the version number of the LSB specification against which the installation is compliant. If the installation is not compliant, the above field should not be present.
Optional fields are DISTRIB_ID, DISTRIB_RELEASE, DISTRIB_CODENAME, DISTRIB_DESCRIPTION and can be used to overwrite information which is parsed from the next file.
The "/etc/[distrib]-release" file contains a description line which is parsed to get information (especially on currently non-LSB compliant systems).
The required line style is: "Distributor release x.x (Codename)"
Where Distributor can be a couple of words, but then concatenated (i.e. Linux Foo BarLinux Linux -> FooBarLinux), x.x starts with a digit followed by any non-blank characters, Codename will also be concatenated (blanks cleanup only).
And release is a keyword not to be used in DISTRIB_DESCRIPTION if you don't want to overwrite "/etc/[distrib]-release" data.
Notice: To support the Debian distributions' lack of information (see "/etc/debian_version" file) some have been directly added into the lsb_release script.
The /etc/lsb-release file contains:
LSB_VERSION="1.0" DISTRIB_DESCRIPTION="I enjoy using my distrib"
And the /etc/foobar-release file contains:
My Linux Distrib release 1.0RC4 (TryIt)
$ ./lsb_release --all LSB Version:    1.0 Distributor ID: MyDistrib Description:    I enjoy using my distrib Release:        1.0RC4 Codename:       TryIt
$ ./lsb_release -a -s 1.0 MyDistrib "I enjoy using my distrib" 1.0RC4 TryIt
Then simply without the "/etc/lsb-release" file, that means result on a non-LSB compliant distrib: $ ./lsb_release -a LSB Version:    n/a Distributor ID: MyDistrib Description:    My Linux Distrib release 1.0RC4 (TryIt) Release:        1.0RC4 Codename:       TryIt
Written by Dominique MASSONIE.
Report bugs to <mdomi@users.sourceforge.net>.  Include a complete, self contained example that will allow the bug to be reproduced, and say which version of lsb_release you are using.
Copyright Â© 2000 Free Software Group, Inc. This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
GIT-NOTES(1)                       Git Manual                       GIT-NOTES(1)
git-notes - Add or inspect object notes
git notes [list [<object>]] git notes add [-f] [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>] git notes copy [-f] ( --stdin | <from-object> [<to-object>] ) git notes append [--allow-empty] [-F <file> | -m <msg> | (-c | -C) <object>] [<object>] git notes edit [--allow-empty] [<object>] git notes show [<object>] git notes merge [-v | -q] [-s <strategy> ] <notes-ref> git notes merge --commit [-v | -q] git notes merge --abort [-v | -q] git notes remove [--ignore-missing] [--stdin] [<object>...] git notes prune [-n] [-v] git notes get-ref
Adds, removes, or reads notes attached to objects, without touching the objects themselves.
By default, notes are saved to and read from refs/notes/commits, but this default can be overridden. See the OPTIONS, CONFIGURATION, and ENVIRONMENT sections below. If this ref does not exist, it will be quietly created when it is first needed to store a note.
A typical use of notes is to supplement a commit message without changing the commit itself. Notes can be shown by git log along with the original commit message. To distinguish these notes from the message stored in the commit object, the notes are indented like the message, after an unindented line saying "Notes (<refname>):" (or "Notes:" for refs/notes/commits).
Notes can also be added to patches prepared with git format-patch by using the --notes option. Such notes are added as a patch commentary after a three dash separator line.
To change which notes are shown by git log, see the "notes.displayRef" configuration in git-log(1).
See the "notes.rewrite.<command>" configuration for a way to carry notes across commands that rewrite commits.
list List the notes object for a given object. If no object is given, show a list of all note objects and the objects they annotate (in the format "<note object> <annotated object>"). This is the default subcommand if no subcommand is given.
add Add notes for a given object (defaults to HEAD). Abort if the object already has notes (use -f to overwrite existing notes). However, if you’re using add interactively (using an editor to supply the notes contents), then - instead of aborting - the existing notes will be opened in the editor (like the edit subcommand).
copy Copy the notes for the first object onto the second object (defaults to HEAD). Abort if the second object already has notes, or if the first object has none (use -f to overwrite existing notes to the second object). This subcommand is equivalent to: git notes add [-f] -C $(git notes list <from-object>) <to-object>
In --stdin mode, take lines in the format
<from-object> SP <to-object> [ SP <rest> ] LF
on standard input, and copy the notes from each <from-object> to its corresponding <to-object>. (The optional <rest> is ignored so that the command can read the input given to the post-rewrite hook.)
append Append to the notes of an existing object (defaults to HEAD). Creates a new notes object if needed.
edit Edit the notes for a given object (defaults to HEAD).
show Show the notes for a given object (defaults to HEAD).
merge Merge the given notes ref into the current notes ref. This will try to merge the changes made by the given notes ref (called "remote") since the merge-base (if any) into the current notes ref (called "local").
If conflicts arise and a strategy for automatically resolving conflicting notes (see the "NOTES MERGE STRATEGIES" section) is not given, the "manual" resolver is used. This resolver checks out the conflicting notes in a special worktree (.git/NOTES_MERGE_WORKTREE), and instructs the user to manually resolve the conflicts there. When done, the user can either finalize the merge with git notes merge --commit, or abort the merge with git notes merge --abort.
remove Remove the notes for given objects (defaults to HEAD). When giving zero or one object from the command line, this is equivalent to specifying an empty note message to the edit subcommand.
prune Remove all notes for non-existing/unreachable objects.
get-ref Print the current notes ref. This provides an easy way to retrieve the current notes ref (e.g. from scripts).
-f, --force When adding notes to an object that already has notes, overwrite the existing notes (instead of aborting).
-m <msg>, --message=<msg> Use the given note message (instead of prompting). If multiple -m options are given, their values are concatenated as separate paragraphs. Lines starting with # and empty lines other than a single line between paragraphs will be stripped out.
-F <file>, --file=<file> Take the note message from the given file. Use - to read the note message from the standard input. Lines starting with # and empty lines other than a single line between paragraphs will be stripped out.
-C <object>, --reuse-message=<object> Take the given blob object (for example, another note) as the note message. (Use git notes copy <object> instead to copy notes between objects.)
-c <object>, --reedit-message=<object> Like -C, but with -c the editor is invoked, so that the user can further edit the note message.
--allow-empty Allow an empty note object to be stored. The default behavior is to automatically remove empty notes.
--ref <ref> Manipulate the notes tree in <ref>. This overrides GIT_NOTES_REF and the "core.notesRef" configuration. The ref specifies the full refname when it begins with refs/notes/; when it begins with notes/, refs/ and otherwise refs/notes/ is prefixed to form a full name of the ref.
--ignore-missing Do not consider it an error to request removing notes from an object that does not have notes attached to it.
--stdin Also read the object names to remove notes from the standard input (there is no reason you cannot combine this with object names from the command line).
-n, --dry-run Do not remove anything; just report the object names whose notes would be removed.
-s <strategy>, --strategy=<strategy> When merging notes, resolve notes conflicts using the given strategy. The following strategies are recognized: "manual" (default), "ours", "theirs", "union" and "cat_sort_uniq". This option overrides the "notes.mergeStrategy" configuration setting. See the "NOTES MERGE STRATEGIES" section below for more information on each notes merge strategy.
--commit Finalize an in-progress git notes merge. Use this option when you have resolved the conflicts that git notes merge stored in .git/NOTES_MERGE_WORKTREE. This amends the partial merge commit created by git notes merge (stored in .git/NOTES_MERGE_PARTIAL) by adding the notes in .git/NOTES_MERGE_WORKTREE. The notes ref stored in the .git/NOTES_MERGE_REF symref is updated to the resulting commit.
--abort Abort/reset an in-progress git notes merge, i.e. a notes merge with conflicts. This simply removes all files related to the notes merge.
-q, --quiet When merging notes, operate quietly.
-v, --verbose When merging notes, be more verbose. When pruning notes, report all object names whose notes are removed.
Commit notes are blobs containing extra information about an object (usually information to supplement a commit’s message). These blobs are taken from notes refs. A notes ref is usually a branch which contains "files" whose paths are the object names for the objects they describe, with some directory separators included for performance reasons [1].
Every notes change creates a new commit at the specified notes ref. You can therefore inspect the history of the notes by invoking, e.g., git log -p notes/commits. Currently the commit message only records which operation triggered the update, and the commit authorship is determined according to the usual rules (see git-commit(1)). These details may change in the future.
It is also permitted for a notes ref to point directly to a tree object, in which case the history of the notes can be read with git log -p -g <refname>.
The default notes merge strategy is "manual", which checks out conflicting notes in a special work tree for resolving notes conflicts (.git/NOTES_MERGE_WORKTREE), and instructs the user to resolve the conflicts in that work tree. When done, the user can either finalize the merge with git notes merge --commit, or abort the merge with git notes merge --abort.
Users may select an automated merge strategy from among the following using either -s/--strategy option or configuring notes.mergeStrategy accordingly:
"ours" automatically resolves conflicting notes in favor of the local version (i.e. the current notes ref).
"theirs" automatically resolves notes conflicts in favor of the remote version (i.e. the given notes ref being merged into the current notes ref).
"union" automatically resolves notes conflicts by concatenating the local and remote versions.
"cat_sort_uniq" is similar to "union", but in addition to concatenating the local and remote versions, this strategy also sorts the resulting lines, and removes duplicate lines from the result. This is equivalent to applying the "cat | sort | uniq" shell pipeline to the local and remote versions. This strategy is useful if the notes follow a line-based format where one wants to avoid duplicated lines in the merge result. Note that if either the local or remote version contain duplicate lines prior to the merge, these will also be removed by this notes merge strategy.
You can use notes to add annotations with information that was not available at the time a commit was written.
$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2 $ git show -s 72a144e [...] Signed-off-by: Junio C Hamano <gitster@pobox.com>
Notes: Tested-by: Johannes Sixt <j6t@kdbg.org>
In principle, a note is a regular Git blob, and any kind of (non-)format is accepted. You can binary-safely create notes from arbitrary files using git hash-object:
$ cc *.c $ blob=$(git hash-object -w a.out) $ git notes --ref=built add --allow-empty -C "$blob" HEAD
(You cannot simply use git notes --ref=built add -F a.out HEAD because that is not binary-safe.) Of course, it doesn’t make much sense to display non-text-format notes with git log, so if you use such notes, you’ll probably need to write some special-purpose tools to do something useful with them.
core.notesRef Notes ref to read and manipulate instead of refs/notes/commits. Must be an unabbreviated ref name. This setting can be overridden through the environment and command line.
notes.mergeStrategy Which merge strategy to choose by default when resolving notes conflicts. Must be one of manual, ours, theirs, union, or cat_sort_uniq. Defaults to manual. See "NOTES MERGE STRATEGIES" section above for more information on each strategy.
This setting can be overridden by passing the --strategy option.
notes.<name>.mergeStrategy Which merge strategy to choose when doing a notes merge into refs/notes/<name>. This overrides the more general "notes.mergeStrategy". See the "NOTES MERGE STRATEGIES" section above for more information on each available strategy.
notes.displayRef Which ref (or refs, if a glob or specified more than once), in addition to the default set by core.notesRef or GIT_NOTES_REF, to read notes from when showing commit messages with the git log family of commands. This setting can be overridden on the command line or by the GIT_NOTES_DISPLAY_REF environment variable. See git-log(1).
notes.rewrite.<command> When rewriting commits with <command> (currently amend or rebase), if this variable is false, git will not copy notes from the original to the rewritten commit. Defaults to true. See also "notes.rewriteRef" below.
This setting can be overridden by the GIT_NOTES_REWRITE_REF environment variable.
notes.rewriteMode When copying notes during a rewrite, what to do if the target commit already has a note. Must be one of overwrite, concatenate, cat_sort_uniq, or ignore. Defaults to concatenate.
This setting can be overridden with the GIT_NOTES_REWRITE_MODE environment variable.
notes.rewriteRef When copying notes during a rewrite, specifies the (fully qualified) ref whose notes should be copied. May be a glob, in which case notes in all matching refs will be copied. You may also specify this configuration several times.
Does not have a default value; you must configure this variable to enable note rewriting.
Can be overridden with the GIT_NOTES_REWRITE_REF environment variable.
GIT_NOTES_REF Which ref to manipulate notes from, instead of refs/notes/commits. This overrides the core.notesRef setting.
GIT_NOTES_DISPLAY_REF Colon-delimited list of refs or globs indicating which refs, in addition to the default from core.notesRef or GIT_NOTES_REF, to read notes from when showing commit messages. This overrides the notes.displayRef setting.
A warning will be issued for refs that do not exist, but a glob that does not match any refs is silently ignored.
GIT_NOTES_REWRITE_MODE When copying notes during a rewrite, what to do if the target commit already has a note. Must be one of overwrite, concatenate, cat_sort_uniq, or ignore. This overrides the core.rewriteMode setting.
GIT_NOTES_REWRITE_REF When rewriting commits, which notes to copy from the original to the rewritten commit. Must be a colon-delimited list of refs or globs.
If not set in the environment, the list of notes to copy depends on the notes.rewrite.<command> and notes.rewriteRef settings.
1. Permitted pathnames have the form bf/fe/30/.../680d5a...: a sequence of directory names of two hexadecimal digits each followed by a filename with the rest of the object ID.
FUSER(1)                          User Commands                         FUSER(1)
fuser - identify processes using files or sockets
fuser [-fuv] [-a|-s] [-4|-6] [-c|-m|-n space] [ -k [-i] [-M] [-w] [-SIGNAL] ] name ... fuser -l fuser -V
fuser displays the PIDs of processes using the specified files or file systems.  In the default display mode, each file name is followed by a letter denoting the type of access:
c      current directory. e      executable being run. f      open file.  f is omitted in default display mode. F      open file for writing.  F is omitted in default display mode. r      root directory. m      mmap'ed file or shared library. .      Placeholder, omitted in default display mode.
fuser returns a non-zero return code if none of the specified files is accessed or in case of a fatal error.  If at least one access has been found, fuser returns zero.
In order to look up processes using TCP and UDP sockets, the corresponding name space has to be selected with the -n option. By default fuser will look in both IPv6 and IPv4 sockets.  To change the default behavior, use the -4 and -6 options.  The socket(s) can be specified by the local and remote port, and the remote address.  All fields are optional, but commas in front of missing fields must be present:
[lcl_port][,[rmt_host][,[rmt_port]]]
Either symbolic or numeric values can be used for IP addresses and port numbers.
fuser outputs only the PIDs to stdout, everything else is sent to stderr.
-a, --all Show all files specified on the command line.  By default, only files that are accessed by at least one process are shown.
-c     Same as -m option, used for POSIX compatibility.
-f     Silently ignored, used for POSIX compatibility.
-k, --kill Kill processes accessing the file.  Unless changed with -SIGNAL, SIGKILL is sent.  An fuser process never kills itself, but may kill other fuser processes.  The effective user ID of the process executing fuser is set to its real user ID before attempting to kill.
-i, --interactive Ask the user for confirmation before killing a process.  This option is silently ignored if -k is not present too.
-I, --inode For the name space file let all comparisons be based on the inodes of the specified file(s) and never on the file names even on network based file systems.
-l, --list-signals List all known signal names.
-m NAME, --mount NAME NAME specifies a file on a mounted file system or a block device that is mounted.  All processes accessing files on that file system are listed.  If a directory is specified, it is automatically changed to NAME/ to use any file system that might be mounted on that directory.
-M, --ismountpoint Request will be fulfilled only if NAME specifies a mountpoint. This is an invaluable seat belt which prevents you from killing the machine if NAME happens to not be a filesystem.
-w     Kill only processes which have write access.  This option is silently ignored if -k is not present too.
-n NAMESPACE, --namespace NAMESPACE Select a different name space.  The name spaces file (file names, the default), udp (local UDP ports), and tcp (local TCP ports) are supported.  For ports, either the port number or the symbolic name can be specified.  If there is no ambiguity, the shortcut notation name/space (e.g., 80/tcp) can be used.
-s, --silent Silent operation.  -u and -v are ignored in this mode.  -a must not be used with -s.
-SIGNAL Use the specified signal instead of SIGKILL when killing processes.  Signals can be specified either by name (e.g., -HUP) or by number (e.g., -1).  This option is silently ignored if the -k option is not used.
-u, --user Append the user name of the process owner to each PID.
-v, --verbose Verbose mode.  Processes are shown in a ps-like style.  The fields PID, USER and COMMAND are similar to ps.  ACCESS shows how the process accesses the file.  Verbose mode will also show when a particular file is being accessed as a mount point, knfs export or swap file.  In this case kernel is shown instead of the PID.
-4, --ipv4 Search only for IPv4 sockets.  This option must not be used with the -6 option and only has an effect with the tcp and udp namespaces.
-6, --ipv6 Search only for IPv6 sockets.  This option must not be used with the -4 option and only has an effect with the tcp and udp namespaces.
-      Reset all options and set the signal back to SIGKILL.
fuser -km /home kills all processes accessing the file system /home in any way.
if fuser -s /dev/ttyS1; then :; else command; fi invokes command if no other process is using /dev/ttyS1.
fuser telnet/tcp shows all processes at the (local) TELNET port.
Processes accessing the same file or file system several times in the same way are only shown once.
If the same object is specified several times on the command line, some of those entries may be ignored.
fuser may only be able to gather partial information unless run with privileges.  As a consequence, files opened by processes belonging to other users may not be listed and executables may be classified as mapped only.
fuser cannot report on any processes that it doesn't have permission to look at the file descriptor table for.  The most common time this problem occurs is when looking for TCP or UDP sockets when running fuser as a non-root user.  In this case fuser will report no access.
Installing fuser SUID root will avoid problems associated with partial information, but may be undesirable for security and privacy reasons.
udp and tcp name spaces, and UNIX domain sockets can't be searched with kernels older than 1.3.78.
Accesses by the kernel are only shown with the -v option.
The -k option only works on processes.  If the user is the kernel, fuser will print an advice, but take no action beyond that.
fuser -m /dev/sgX will show (or kill with the -k flag) all processes, even if you don't have that device configured.  There may be other devices it does this for too.
The mount -m option will match any file within the same device as the specified file, use the -M option as well if you mean to specify only the mount point.
kill(1), killall(1), lsof(8), pkill(1), ps(1), kill(2).
WHOAMI(1)                         User Commands                        WHOAMI(1)
whoami - print effective user name
whoami [OPTION]...
Print the user name associated with the current effective user ID.  Same as id -un.
Written by Richard Mlynarik.
Full documentation <https://www.gnu.org/software/coreutils/whoami> or available locally via: info '(coreutils) whoami invocation'
dpkg(1)                            dpkg suite                            dpkg(1)
dpkg - package manager for Debian
dpkg [option...] action
It should not be used by package maintainers wishing to understand how dpkg will install their packages. The descriptions of what dpkg does when installing and removing packages are particularly inadequate.