neulab/tldr huggingface dataset:
FLASH(1)                          User Commands                         FLASH(1)
flash - Fast Length Adjustment of SHort reads
flash [OPTIONS] MATES_1.FASTQ MATES_2.FASTQ
flash [OPTIONS] --interleaved-input (MATES.FASTQ | -)
flash [OPTIONS] --tab-delimited-input (MATES.TAB | -)
FLASH (Fast Length Adjustment of SHort reads) is an accurate and fast tool to merge paired-end reads that were generated from DNA fragments whose lengths are shorter than twice the length of reads.  Merged read pairs result in unpaired longer reads, which are generally more desired in genome assembly and genome analysis processes.
Briefly, the FLASH algorithm considers all possible overlaps at or above a minimum length between the reads in a pair and chooses the overlap that results in the lowest mismatch density (proportion of mismatched bases in the overlapped region).  Ties between multiple overlaps are broken by considering quality scores at mismatch sites.  When building the merged sequence, FLASH computes a consensus sequence in the overlapped region. More details can be found in the original publication (http://bioinformatics.oxfordjournals.org/content/27/21/2957.full).
Limitations of FLASH include: - FLASH cannot merge paired-end reads that do not overlap.
- FLASH is not designed for data that has a significant amount of indel errors (such as Sanger sequencing data).  It is best suited for Illumina data.
The most common input to FLASH is two FASTQ files containing read 1 and read 2 of each mate pair, respectively, in the same order.
Alternatively, you may provide one FASTQ file, which may be standard input, containing paired-end reads in either interleaved FASTQ (see the --interleaved-input option) or tab-delimited (see the --tab-delimited-input option) format.  In all cases, gzip compressed input is autodetected.  Also, in all cases, the PHRED offset is, by default, assumed to be 33; use the --phred-offset option to change it.
The default output of FLASH consists of the following files:
- out.extendedFrags.fastq The merged reads.
- out.notCombined_1.fastq Read 1 of mate pairs that were not merged.
- out.notCombined_2.fastq Read 2 of mate pairs that were not merged.
- out.hist Numeric histogram of merged read lengths.
- out.histogram Visual histogram of merged read lengths.
FLASH also logs informational messages to standard output.  These can also be redirected to a file, as in the following example:
$ flash reads_1.fq reads_2.fq 2>&1 | tee flash.log
In addition, FLASH supports several features affecting the output:
- Writing the merged reads directly to standard output (--to-stdout)
- Writing gzip compressed output files (-z) or using an external compression program (--compress-prog)
- Writing the uncombined read pairs in interleaved FASTQ format
(--interleaved-output)
- Writing all output reads to a single file in tab-delimited format
(--tab-delimited-output)
-m, --min-overlap=NUM The minimum required overlap length between two reads to provide a confident overlap.  Default: 10bp.
-M, --max-overlap=NUM Maximum overlap length expected in approximately 90% of read pairs.  It is by default set to 65bp, which works well for 100bp reads generated from a 180bp library, assuming a normal distribution of fragment lengths.  Overlaps longer than the maximum overlap parameter are still considered as good overlaps, but the mismatch density (explained below) is calculated over the first max_overlap bases in the overlapped region rather than the entire overlap.  Default: 65bp, or calculated from the specified read length, fragment length, and fragment length standard deviation.
-x, --max-mismatch-density=NUM Maximum allowed ratio between the number of mismatched base pairs and the overlap length.  Two reads will not be combined with a given overlap if that overlap results in a mismatched base density higher than this value.  Note: Any occurence of an 'N' in either read is ignored and not counted towards the mismatches or overlap length.  Our experimental results suggest that higher values of the maximum mismatch density yield larger numbers of correctly merged read pairs but at the expense of higher numbers of incorrectly merged read pairs.  Default: 0.25.
-O, --allow-outies Also try combining read pairs in the "outie" orientation, e.g.
Read 1: <----------- Read 2:       ------------>
as opposed to only the "innie" orientation, e.g.
Read 1: <------------
Read 2: ----------->
FLASH uses the same parameters when trying each orientation.  If a read pair can be combined in both "innie" and "outie" orientations, the better-fitting one will be chosen using the same scoring algorithm that FLASH normally uses.
This option also causes extra .innie and .outie histogram files to be produced.
-p, --phred-offset=OFFSET The smallest ASCII value of the characters used to represent quality values of bases in FASTQ files.  It should be set to either 33, which corresponds to the later Illumina platforms and Sanger platforms, or 64, which corresponds to the earlier Illumina platforms.  Default: 33.
-r, --read-len=LEN
-f, --fragment-len=LEN
-s, --fragment-len-stddev=LEN Average read length, fragment length, and fragment standard deviation.  These are convenience parameters only, as they are only used for calculating the maximum overlap (--max-overlap) parameter.  The maximum overlap is calculated as the overlap of average-length reads from an average-size fragment plus 2.5 times the fragment length standard deviation.  The default values are -r 100, -f 180, and -s 18, so this works out to a maximum overlap of 65 bp.  If --max-overlap is specified, then the specified value overrides the calculated value.
If you do not know the standard deviation of the fragment library, you can probably assume that the standard deviation is 10% of the average fragment length.
--cap-mismatch-quals Cap quality scores assigned at mismatch locations to 2.  This was the default behavior in FLASH v1.2.7 and earlier.  Later versions will instead calculate such scores as max(|q1 - q2|, 2); that is, the absolute value of the difference in quality scores, but at least 2.  Essentially, the new behavior prevents a low quality base call that is likely a sequencing error from significantly bringing down the quality of a high quality, likely correct base call.
--interleaved-input Instead of requiring files MATES_1.FASTQ and MATES_2.FASTQ, allow a single file MATES.FASTQ that has the paired-end reads interleaved.  Specify "-" to read from standard input.
--interleaved-output Write the uncombined pairs in interleaved FASTQ format.
-I, --interleaved Equivalent to specifying both --interleaved-input and --interleaved-output.
-Ti, --tab-delimited-input Assume the input is in tab-delimited format rather than FASTQ, in the format described below in '--tab-delimited-output'.  In this mode you should provide a single input file, each line of which must contain either a read pair (5 fields) or a single read (3 fields).  FLASH will try to combine the read pairs.  Single reads will be written to the output file as-is if also using --tab-delimited-output; otherwise they will be ignored.  Note that you may specify "-" as the input file to read the tab-delimited data from standard input.
-To, --tab-delimited-output Write output in tab-delimited format (not FASTQ).  Each line will contain either a combined pair in the format 'tag <tab> seq <tab> qual' or an uncombined pair in the format 'tag <tab> seq_1 <tab> qual_1 <tab> seq_2 <tab> qual_2'.
-o, --output-prefix=PREFIX Prefix of output files.  Default: "out".
-d, --output-directory=DIR Path to directory for output files.  Default: current working directory.
-c, --to-stdout Write the combined reads to standard output.  In this mode, with FASTQ output (the default) the uncombined reads are discarded. With tab-delimited output, uncombined reads are included in the tab-delimited data written to standard output.  In both cases, histogram files are not written, and informational messages are sent to standard error rather than to standard output.
-z, --compress Compress the output files directly with zlib, using the gzip container format.  Similar to specifying --compress-prog=gzip and --suffix=gz, but may be slightly faster.
--compress-prog=PROG Pipe the output through the compression program PROG, which will be called as `PROG -c -', plus any arguments specified by --compress-prog-args.  PROG must read uncompressed data from standard input and write compressed data to standard output when invoked as noted above.  Examples: gzip, bzip2, xz, pigz.
--compress-prog-args=ARGS A string of additional arguments that will be passed to the compression program if one is specified with --compress-prog=PROG. (The arguments '-c -' are still passed in addition to explicitly specified arguments.)
--suffix=SUFFIX, --output-suffix=SUFFIX Use SUFFIX as the suffix of the output files after ".fastq".  A dot before the suffix is assumed, unless an empty suffix is provided.  Default: nothing; or 'gz' if -z is specified; or PROG if --compress-prog=PROG is specified.
-t, --threads=NTHREADS Set the number of worker threads.  This is in addition to the I/O threads.  Default: number of processors.  Note: if you need FLASH's output to appear deterministically or in the same order as the original reads, you must specify -t 1 (--threads=1).
-q, --quiet Do not print informational messages.
-v, --version Display version.
This manpage was written by Andreas Tille for the Debian distribution and can be used for any other usage of the program.
DD(1P)                      POSIX Programmer's Manual                     DD(1P)
dd — convert and copy a file
dd [operand...]
The dd utility shall copy the specified input file to the specified output file with possible conversions using specific input and output block sizes. It shall read the input one block at a time, using the specified input block size; it shall then process the block of data actually returned, which could be smaller than the requested block size. It shall apply any conversions that have been specified and write the resulting data to the output in blocks of the specified output block size. If the bs=expr operand is specified and no conversions other than sync, noerror, or notrunc are requested, the data returned from each input block shall be written as a separate output block; if the read returns less than a full block and the sync conversion is not specified, the resulting output block shall be the same size as the input block. If the bs=expr operand is not specified, or a conversion other than sync, noerror, or notrunc is requested, the input shall be processed and collected into full-sized output blocks until the end of the input is reached.
The processing order shall be as follows:
1. An input block is read.
2. If the input block is shorter than the specified input block size and the sync conversion is specified, null bytes shall be appended to the input data up to the specified size. (If either block or unblock is also specified, <space> characters shall be appended instead of null bytes.) The remaining conversions and output shall include the pad characters as if they had been read from the input.
3. If the bs=expr operand is specified and no conversion other than sync or noerror is requested, the resulting data shall be written to the output as a single block, and the remaining steps are omitted.
4. If the swab conversion is specified, each pair of input data bytes shall be swapped. If there is an odd number of bytes in the input block, the last byte in the input record shall not be swapped.
5. Any remaining conversions (block, unblock, lcase, and ucase) shall be performed. These conversions shall operate on the input data independently of the input blocking; an input or output fixed-length record may span block boundaries.
6. The data resulting from input or conversion or both shall be aggregated into output blocks of the specified size. After the end of input is reached, any remaining output shall be written as a block without padding if conv=sync is not specified; thus, the final output block may be shorter than the output block size.
All of the operands shall be processed before any input is read.  The following operands shall be supported:
if=file   Specify the input pathname; the default is standard input.
of=file   Specify the output pathname; the default is standard output. If the seek=expr conversion is not also specified, the output file shall be truncated before the copy begins if an explicit of=file operand is specified, unless conv=notrunc is specified. If seek=expr is specified, but conv=notrunc is not, the effect of the copy shall be to preserve the blocks in the output file over which dd seeks, but no other portion of the output file shall be preserved. (If the size of the seek plus the size of the input file is less than the previous size of the output file, the output file shall be shortened by the copy. If the input file is empty and either the size of the seek is greater than the previous size of the output file or the output file did not previously exist, the size of the output file shall be set to the file offset after the seek.)
ibs=expr  Specify the input block size, in bytes, by expr (default is 512).
obs=expr  Specify the output block size, in bytes, by expr (default is 512).
bs=expr   Set both input and output block sizes to expr bytes, superseding ibs= and obs=.  If no conversion other than sync, noerror, and notrunc is specified, each input block shall be copied to the output as a single block without aggregating short blocks.
cbs=expr  Specify the conversion block size for block and unblock in bytes by expr (default is zero). If cbs= is omitted or given a value of zero, using block or unblock produces unspecified results.
The application shall ensure that this operand is also specified if the conv= operand is specified with a value of ascii, ebcdic, or ibm.  For a conv= operand with an ascii value, the input is handled as described for the unblock value, except that characters are converted to ASCII before any trailing <space> characters are deleted. For conv= operands with ebcdic or ibm values, the input is handled as described for the block value except that the characters are converted to EBCDIC or IBM EBCDIC, respectively, after any trailing <space> characters are added.
skip=n    Skip n input blocks (using the specified input block size) before starting to copy. On seekable files, the implementation shall read the blocks or seek past them; on non-seekable files, the blocks shall be read and the data shall be discarded.
seek=n    Skip n blocks (using the specified output block size) from the beginning of the output file before copying. On non-seekable files, existing blocks shall be read and space from the current end-of-file to the specified offset, if any, filled with null bytes; on seekable files, the implementation shall seek to the specified offset or read the blocks as described for non- seekable files.
count=n   Copy only n input blocks. If n is zero, it is unspecified whether no blocks or all blocks are copied.
conv=value[,value ...] Where values are <comma>-separated symbols from the following list:
ascii    Convert EBCDIC to ASCII; see Table 4-7, ASCII to EBCDIC Conversion.
ebcdic   Convert ASCII to EBCDIC; see Table 4-7, ASCII to EBCDIC Conversion.
ibm      Convert ASCII to a different EBCDIC set; see Table 4-8, ASCII to IBM EBCDIC Conversion.
The ascii, ebcdic, and ibm values are mutually-exclusive.
block    Treat the input as a sequence of <newline>-terminated or end-of-file-terminated variable-length records independent of the input block boundaries. Each record shall be converted to a record with a fixed length specified by the conversion block size. Any <newline> shall be removed from the input line; <space> characters shall be appended to lines that are shorter than their conversion block size to fill the block. Lines that are longer than the conversion block size shall be truncated to the largest number of characters that fit into that size; the number of truncated lines shall be reported (see the STDERR section).
The block and unblock values are mutually-exclusive.
unblock  Convert fixed-length records to variable length. Read a number of bytes equal to the conversion block size (or the number of bytes remaining in the input, if less than the conversion block size), delete all trailing <space> characters, and append a <newline>.
lcase    Map uppercase characters specified by the LC_CTYPE keyword tolower to the corresponding lowercase character. Characters for which no mapping is specified shall not be modified by this conversion.
The lcase and ucase symbols are mutually-exclusive.
ucase    Map lowercase characters specified by the LC_CTYPE keyword toupper to the corresponding uppercase character. Characters for which no mapping is specified shall not be modified by this conversion.
swab     Swap every pair of input bytes.
noerror  Do not stop processing on an input error. When an input error occurs, a diagnostic message shall be written on standard error, followed by the current input and output block counts in the same format as used at completion (see the STDERR section). If the sync conversion is specified, the missing input shall be replaced with null bytes and processed normally; otherwise, the input block shall be omitted from the output.
notrunc  Do not truncate the output file. Preserve blocks in the output file not explicitly written by this invocation of the dd utility. (See also the preceding of=file operand.)
sync     Pad every input block to the size of the ibs= buffer, appending null bytes. (If either block or unblock is also specified, append <space> characters, rather than null bytes.)
The behavior is unspecified if operands other than conv= are specified more than once.
For the bs=, cbs=, ibs=, and obs= operands, the application shall supply an expression specifying a size in bytes. The expression, expr, can be:
1. A positive decimal number
2. A positive decimal number followed by k, specifying multiplication by 1024
3. A positive decimal number followed by b, specifying multiplication by 512
4. Two or more positive decimal numbers (with or without k or b) separated by x, specifying the product of the indicated values
All of the operands are processed before any input is read.
The following two tables display the octal number character values used for the ascii and ebcdic conversions (first table) and for the ibm conversion (second table). In both tables, the ASCII values are the row and column headers and the EBCDIC values are found at their intersections. For example, ASCII 0012 (LF) is the second row, third column, yielding 0045 in EBCDIC. The inverted tables (for EBCDIC to ASCII conversion) are not shown, but are in one-to-one correspondence with these tables. The differences between the two tables are highlighted by small boxes drawn around five entries.
Table 4-7: ASCII to EBCDIC Conversion
Table 4-8: ASCII to IBM EBCDIC Conversion
If no if= operand is specified, the standard input shall be used. See the INPUT FILES section.
The input file can be any file type.
The following environment variables shall affect the execution of dd:
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 classification of characters as uppercase or lowercase, and the mapping of characters from one case to the other.
For SIGINT, the dd utility shall interrupt its current processing, write status information to standard error, and exit as though terminated by SIGINT. It shall take the standard action for all other signals; see the ASYNCHRONOUS EVENTS section in Section 1.4, Utility Description Defaults.
If no of= operand is specified, the standard output shall be used. The nature of the output depends on the operands selected.
On completion, dd shall write the number of input and output blocks to standard error. In the POSIX locale the following formats shall be used:
"%u+%u records in\n", <number of whole input blocks>, <number of partial input blocks>
"%u+%u records out\n", <number of whole output blocks>, <number of partial output blocks>
A partial input block is one for which read() returned less than the input block size. A partial output block is one that was written with fewer bytes than specified by the output block size.
In addition, when there is at least one truncated block, the number of truncated blocks shall be written to standard error. In the POSIX locale, the format shall be:
"%u truncated %s\n", <number of truncated blocks>, "record" (if <number of truncated blocks> is one) "records" (otherwise)
Diagnostic messages may also be written to standard error.
If the of= operand is used, the output shall be the same as described in the STDOUT section.
0    The input file was copied successfully.
If an input error is detected and the noerror conversion has not been specified, any partial output block shall be written to the output file, a diagnostic message shall be written, and the copy operation shall be discontinued. If some other error is detected, a diagnostic message shall be written and the copy operation shall be discontinued.
The input and output block size can be specified to take advantage of raw physical I/O.
There are many different versions of the EBCDIC codesets. The ASCII and EBCDIC conversions specified for the dd utility perform conversions for the version specified by the tables.
dd if=/dev/rmt0h  of=/dev/rmt1h
copies from tape drive 0 to tape drive 1, using a common historical device naming convention.
dd ibs=10  skip=1
strips the first 10 bytes from standard input.
This example reads an EBCDIC tape blocked ten 80-byte EBCDIC card images per block into the ASCII file x:
dd if=/dev/tape of=x ibs=800 cbs=80 conv=ascii,lcase
The OPTIONS section is listed as ``None'' because there are no options recognized by historical dd utilities. Certainly, many of the operands could have been designed to use the Utility Syntax Guidelines, which would have resulted in the classic hyphenated option letters. In this version of this volume of POSIX.1‐2017, dd retains its curious JCL-like syntax due to the large number of applications that depend on the historical implementation.
A suggested implementation technique for conv=noerror,sync is to zero (or <space>-fill, if blocking or unblocking) the input buffer before each read and to write the contents of the input buffer to the output even after an error. In this manner, any data transferred to the input buffer before the error was detected is preserved. Another point is that a failed read on a regular file or a disk generally does not increment the file offset, and dd must then seek past the block on which the error occurred; otherwise, the input error occurs repetitively. When the input is a magnetic tape, however, the tape normally has passed the block containing the error when the error is reported, and thus no seek is necessary.
The default ibs= and obs= sizes are specified as 512 bytes because there are historical (largely portable) scripts that assume these values. If they were left unspecified, unusual results could occur if an implementation chose an odd block size.
Historical implementations of dd used creat() when processing of=file. This makes the seek= operand unusable except on special files. The conv=notrunc feature was added because more recent BSD-based implementations use open() (without O_TRUNC) instead of creat(), but they fail to delete output file contents after the data copied.
The w multiplier (historically meaning word), is used in System V to mean 2 and in 4.2 BSD to mean 4. Since word is inherently non-portable, its use is not supported by this volume of POSIX.1‐2017.
Standard EBCDIC does not have the characters '[' and ']'.  The values used in the table are taken from a common print train that does contain them. Other than those characters, the print train values are not filled in, but appear to provide some of the motivation for the historical choice of translations reflected here.
The Standard EBCDIC table provides a 1:1 translation for all 256 bytes.
The IBM EBCDIC table does not provide such a translation. The marked cells in the tables differ in such a way that:
1. EBCDIC 0112 ('¢') and 0152 (broken pipe) do not appear in the table.
2. EBCDIC 0137 ('¬') translates to/from ASCII 0236 ('^').  In the standard table, EBCDIC 0232 (no graphic) is used.
3. EBCDIC 0241 ('~') translates to/from ASCII 0176 ('~').  In the standard table, EBCDIC 0137 ('¬') is used.
4. 0255 ('[') and 0275 (']') appear twice, once in the same place as for the standard table and once in place of 0112 ('¢') and 0241 ('~').
In net result:
EBCDIC 0275 (']') displaced EBCDIC 0241 ('~') in cell 0345.
That displaced EBCDIC 0137 ('¬') in cell 0176.
That displaced EBCDIC 0232 (no graphic) in cell 0136.
That replaced EBCDIC 0152 (broken pipe) in cell 0313.
EBCDIC 0255 ('[') replaced EBCDIC 0112 ('¢').
This translation, however, reflects historical practice that (ASCII) '~' and '¬' were often mapped to each other, as were '[' and '¢'; and ']' and (EBCDIC) '~'.
The cbs operand is required if any of the ascii, ebcdic, or ibm operands are specified. For the ascii operand, the input is handled as described for the unblock operand except that characters are converted to ASCII before the trailing <space> characters are deleted. For the ebcdic and ibm operands, the input is handled as described for the block operand except that the characters are converted to EBCDIC or IBM EBCDIC after the trailing <space> characters are added.
The block and unblock keywords are from historical BSD practice.
The consistent use of the word record in standard error messages matches most historical practice. An earlier version of System V used block, but this has been updated in more recent releases.
Early proposals only allowed two numbers separated by x to be used in a product when specifying bs=, cbs=, ibs=, and obs= sizes. This was changed to reflect the historical practice of allowing multiple numbers in the product as provided by Version 7 and all releases of System V and BSD.
A change to the swab conversion is required to match historical practice and is the result of IEEE PASC Interpretations 1003.2 #03 and #04, submitted for the ISO POSIX‐2:1993 standard.
A change to the handling of SIGINT is required to match historical practice and is the result of IEEE PASC Interpretation 1003.2 #06 submitted for the ISO POSIX‐2:1993 standard.
Section 1.4, Utility Description Defaults, sed, tr
guestinfo domain [--user] [--os] [--timezone] [--hostname] [--filesystem] [--disk] [--interface]
When run without any arguments, this command prints all information types that are supported by the guest agent. You can limit the types of information that are returned by specifying one or more flags.  If a requested information type is not supported, the processes will provide an exit code of 1.  Available information types flags are --user, --os, --timezone, --hostname, --filesystem, --disk and --interface.
--interface returns: * if.count - the number of interfaces defined on this domain * if.<num>.name - name in the guest (e.g. eth0) for interface <num> * if.<num>.hwaddr - hardware address in the guest for interface <num> * if.<num>.addr.count - the number of IP addresses of interface <num> * if.<num>.addr.<num1>.type - the IP address type of addr <num1> (e.g. ipv4) * if.<num>.addr.<num1>.addr - the IP address of addr <num1> * if.<num>.addr.<num1>.prefix - the prefix of IP address of addr <num1>
update-memory-device Syntax:
update-memory-device domain [--print-xml] [[--alias alias] | [--node node]] [[--live] [--config] | [--current]] [--requested-size size]
This command finds <memory/> device inside given domain, changes requested values and passes updated device XML to daemon. If --print-xml is specified then the device is not changed, but the updated device XML is printed to stdout.  If there are more than one <memory/> devices in domain use --alias or --node to select the desired one.
If --requested-size is specified then <requested/> under memory target is changed to requested size (as scaled integer, see NOTES above). It defaults to kibibytes if no suffix is provided. The option is valid only for virtio-mem memory device model.
nodedev-start device
Since libvirt 7.10.0 the VM process is always restarted so the following paragraph is no longer valid. If the snapshot metadata lacks the full VM XML it's no longer possible to revert to such snapshot.
Note that libvirt uses the QMP to talk to qemu so command must be valid JSON in QMP format to work properly. If command is not a JSON object libvirt tries to wrap it as a JSON object to provide convenient interface such as the groups of commands with identical handling:
# simple command $ virsh qemu-monitor-command VM commandname $ virsh qemu-monitor-command VM '{"execute":"commandname"}'
# with arguments $ virsh qemu-monitor-command VM commandname '"arg1":123' '"arg2":"test"' $ virsh qemu-monitor-command VM commandname '{"arg1":123,"arg2":"test"}' $ virsh qemu-monitor-command VM '{"execute":"commandname", "arguments":{"arg1":123,"arg2":"test"}}'
SHOW(1mh)                           [mmh-0.4]                          SHOW(1mh)
show - display (MIME) messages
next - show the next message
prev - show the previous message
show [+folder] [msgs] [-file file] [-part number] ...  [-type content] ...  [-form formfile] [-Version] [-help]
next is equivalent to show n
prev is equivalent to show p
This (i.e. mmh's) version of show is a modified version of nmh's mhshow program.  The old (non-MIME) show program was removed from mmh.
The show command display contents of a MIME (multi-media) message or collection of messages.  Next and prev perform a show on the next or previous message in the specified (or current) folder, respectively.
show manipulates multi-media messages as specified in RFC-2045 thru RFC-2049.  Currently show only supports encodings in message bodies, and does not support the encoding of message headers as specified in RFC-2047.
By default show will display all parts of a multipart message.  By using the -part and -type switches, you may limit the scope of show to particular subparts (of a multipart content) and/or particular content types.
The option -file file directs show to use the specified file as the source message, rather than a message from a folder.  If you specify this file as `-', then show will accept the source message on the standard input.  Note that the file, or input from standard input should be a validly formatted message, just like any other mh message.  It should NOT be in mail drop format (to convert a file in mail drop format to a folder of mh messages, see inc(1)).
When displaying multiple messages, show prepends each of them with a `>>> Message nnn' header, and separates the messages with two lines of space. This is similar to the way mhl acts on multiple files.
A part specification consists of a series of numbers separated by dots. For example, in a multipart content containing three parts, these would be named as 1, 2, and 3, respectively.  If part 2 was also a multipart content containing two parts, these would be named as 2.1 and 2.2, respectively.  Note that the -part switch is effective for only messages containing a multipart content.  If a message has some other kind of content, or if the part is itself another multipart content, the -part switch will not prevent the content from being acted upon.
A content specification consists of a content type and a subtype.  The initial list of `standard' content types and subtypes can be found in RFC-2046.
A list of commonly used contents is briefly reproduced here:
Type         Subtypes ----         -------- text         plain, enriched multipart    mixed, alternative, digest, parallel message      rfc822, partial, external-body application  octet-stream, postscript image        jpeg, gif, png audio        basic video        mpeg
A legal MIME message must contain a subtype specification.
To specify a content, regardless of its subtype, just use the name of the content, e.g., `audio'.  To specify a specific subtype, separate the two with a slash, e.g., `audio/basic'.  Note that regardless of the values given to the `-type' switch, a multipart content (of any subtype listed above) is always acted upon.
Unseen Sequence If the profile entry `Unseen-Sequence' is present and non-empty, then show will remove each of the messages shown from each sequence named by the profile entry.
Showing the Contents Mhshow prints messages in a convenient representation.  If show is outputting to a terminal, then a pager will be placed between the terminal and show.
The headers of each message are displayed with mhl using the standard format file mhl.headers.  You may specify an alternate format file with the -form formfile switch.  If the format file mhl.null is specified, then the display of the message headers is suppressed.
Next, the contents are extracted from the message and are stored in a temporary file.  Usually, the name of the temporary file is the word `show' followed by a string of characters.  Occasionally, the method used to display a content (described next), requires that the file end in a specific suffix.  For example, the soffice command (part of the StarOffice package) can be used to display Microsoft Word content, but it uses the suffix to determine how to display the file.  If no suffix is present, the file is not correctly loaded.  Similarly, older versions of the gs command append a `.ps' suffix to the filename if one was missing. As a result, these cannot be used to read the default temporary file.
To get around this, your profile can contain lines of the forms:
mhshow-suffix-<type>/<subtype>: <suffix> mhshow-suffix-<type>: <suffix>
to specify a suffix which can be automatically added to the temporary file created for a specific content type.  For example, the following lines might appear in your profile:
mhshow-suffix-text: .txt mhshow-suffix-application/msword: .doc mhshow-suffix-application/PostScript: .ps
to automatically append a suffix to the temporary files.
The method used to display the different contents in the messages bodies will be determined by a `display string'.  To find the display string, show will first search your profile for an entry of the form:
mhshow-show-<type>/<subtype>
to determine the display string.  If this isn't found, show will search for an entry of the form:
mhshow-show-<type>
to determine the display string.
If a display string is found, any escapes (given below) will be expanded. The result will be executed under `/bin/sh', with the standard input set to the content.
The display string may contain the following escapes:
%l  Display listing prior to displaying content %f  Insert filename containing content %F  %f, but stdin is terminal not content %a  Insert parameters from Content-Type field %s  Insert content subtype %c  Insert foreign charset %d  Insert content description %%  The character %
Mhshow processes the MIME parts serially, i.e. the next display process is executed after the previous one has terminated.
Further, when show is display a content, typing QUIT (usually control-\) will tell show to wrap things up immediately.
Note that if the content being displayed is multipart, but not one of the subtypes listed above, then the f- and F-escapes expand to multiple filenames, one for each subordinate content.  Further, stdin is not redirected from the terminal to the content.
If a display string is not found, show has the following default values:
mhshow-show-text/plain: %liconv -f <source-charset> mhshow-show-message/rfc822: %lshow -file %F
If a subtype of type text doesn't have a profile entry, it will be treated as text/plain.
show has default methods for handling multipart messages of subtype mixed, alternative, parallel, and digest.  Any unknown subtype of type multipart (without a profile entry), will be treated as multipart/mixed.
If none of these apply, then show will complain.
Example entries might be:
mhshow-show-audio/basic: raw2audio 2>/dev/null | play mhshow-show-image: xv %f mhshow-show-application/PostScript: lpr -Pps
When expanding %f and %F escapes, the file names get wrapped in single- quotes automatically.
Finally, show will process each message serially - it won't start showing the next message until all the commands executed to display the current message have terminated.  Although a multipart content may contain advice to display the parts in parallel, show will never do so.
Showing Alternate Character Sets Because a content of type text might be in a non-ASCII character set, when show encounters a `charset' parameter for this content, it checks if your terminal can display this character set natively.  show checks this by first examining the the environment variable $MM_CHARSET and if not set, taking the character encoding of the current locale.
If the character set of text/plain cannot be displayed natively, then the default display method converts the content automatically by piping it through:
iconv -f '<source-charset>'
Note that if you have a custom `mhshow-show-*' display string, you need to care yourself for converting the encodings.  (The foreign charset is available through the %c escape.)
The tool iconv needs to be available.
`mhshow-charset-*' profile entries are not supported anymore.
Messages of Type message/partial show cannot directly display messages of type partial.  You must reassemble them first into a normal message using mhstore.  Check the man page for mhstore(1) for details.
External Access Mhshow does not automatically retrieve message/external-body parts (anymore), but prints the relevant information to enable the user to retrieve the files manually.
User Environment Because the display environment in which show operates may vary for different machines, show will look for the environment variable $MHSHOW. If present, this specifies the name of an additional user profile which should be read.  Hence, when a user logs in on a particular display device, this environment variable should be set to refer to a file containing definitions useful for the given display device.  Normally, only entries that deal with the methods to display different content type and subtypes
mhshow-show-<type>/<subtype> mhshow-show-<type>
need be present in this additional profile. Finally, show will attempt to consult one other additional user profile, e.g.,
/etc/mmh/mhn.defaults
which is created automatically during mmh installation.
$HOME/.mmh/profile         The user profile $MHSHOW                    Additional profile entries /etc/mmh/mhn.defaults      System default MIME profile entries /etc/mmh/mhl.headers       The headers template
Path:                To determine the user's mail storage Current-Folder:      To find the default current folder Unseen-Sequence:     To name sequences denoting unseen messages mhshow-show-<type>*  Template for displaying contents Pager:               Program to use as interactive front-end
mhbuild(1), mhl(1), mhlist(1), mhstore(1), sendfiles(1)
`+folder' defaults to the current folder `msgs' defaults to the current message `-form mhl.headers' `-noverbose'
If a folder is given, it will become the current folder.  The last message selected will become the current message.
Next and prev are really links to the show program.  As a result, if you make a link to next or prev and that link is not called next or prev, your link will act like show instead.  To circumvent this, add a profile-entry for the link to your mmh profile and add the argument n or p to the entry.
PORTS(7)              BSD Miscellaneous Information Manual              PORTS(7)
ports — contributed applications
The FreeBSD Ports Collection offers a simple way to compile and install third party applications.  It is also used to build packages, to be installed using pkg(8).
The ports tree, typically located at /usr/ports, consists of subdirectories, one for each category; those in turn contain individual ports.  Each port is a directory with metadata and patches necessary to make the original application source code compile and run on FreeBSD. Compiling an application is as simple as typing “make build” in the port directory.  The Makefile automatically fetches the application source code, either from a local disk or the network, unpacks it, applies the patches, and compiles it.  It also recursively handles dependencies — other pieces of software the port depends on in order to build and work.  Afterwards, “make install” installs the application.
The FreeBSD Ports Collection is maintained in several branches, which differ mostly by versions of software provided: the head branch contains all the latest changes, while the quarterly branches only provide critical fixes.  The head branch can be installed or updated from the Subversion repository located at:
https://svn.FreeBSD.org/ports/head
The quarterly branches can be found in Subversion in the branches/ subdirectory, eg:
https://svn.FreeBSD.org/ports/branches/2019Q1
It is generally a good idea to use the ports branch that matches the pkg(8) repository being used.  By default, for FreeBSD CURRENT the pkg(8) is configured to install packages built from the head branch, while for FreeBSD STABLE or RELEASE versions it is configured to install packages built from the latest quarterly branch.  Currently configured pkg(8) repository can be verified by looking at the url field in pkg -vv output.
For more information about using ports, see the “Packages and Ports section” in The FreeBSD Handbook:
https://www.FreeBSD.org/doc/en/books/handbook/ports.html
For information about creating new ports, see The Porter's Handbook:
https://www.FreeBSD.org/doc/en/books/porters-handbook/
Some of the make(1) targets work recursively through subdirectories.  This lets you, for example, install all of the “biology” ports with one command. The targets that do this are build, checksum, clean, configure, depends, extract, fetch, install, and package.
The following targets will be run automatically by each proceeding target in order.  That is, build will be run (if necessary) by install, and so on all the way to fetch.  Usually, you will only use the install target.
config     Configure OPTIONS for this port using dialog4ports(1).
fetch      Fetch all of the files needed to build this port from the sites listed in MASTER_SITES and PATCH_SITES.  See FETCH_CMD, MASTER_SITE_OVERRIDE and MASTER_SITE_BACKUP.
checksum   Verify that the fetched distfile's checksum matches the one the port was tested against.  If the distfile's checksum does not match, it also fetches the distfiles which are missing or failed the checksum calculation.  Defining NO_CHECKSUM will skip this step.
depends    Install (or compile if only compilation is necessary) any dependencies of the current port.  When called by the extract or fetch targets, this is run in piecemeal as fetch-depends, build-depends, etc.  Defining NO_DEPENDS will skip this step.
extract    Expand the distfile into a work directory.
patch      Apply any patches that are necessary for the port.
configure  Configure the port.  Some ports will ask you questions during this stage.  See INTERACTIVE and BATCH.
build      Build the port.  This is the same as calling the all target.
install    Install the port and register it with the package system.  This is all you really need to do.
The following targets are not run during the normal install process.
showconfig       Display OPTIONS config for this port.
showconfig-recursive Display OPTIONS config for this port and all its dependencies.
rmconfig         Remove OPTIONS config for this port.
rmconfig-recursive Remove OPTIONS config for this port and all its dependencies.
config-conditional Skip the ports which have already had their OPTIONS configured.
config-recursive Configure OPTIONS for this port and all its dependencies using dialog4ports(1).
fetch-list       Show list of files to be fetched in order to build the port.
fetch-recursive  Fetch the distfiles of the port and all its dependencies.
fetch-recursive-list Show list of files that would be retrieved by fetch-recursive.
run-depends-list, build-depends-list Print a list of all the compile and run dependencies, and dependencies of those dependencies, by port directory.
all-depends-list Print a list of all dependencies for the port.
pretty-print-run-depends-list, pretty-print-build-depends-list Print a list of all the compile and run dependencies, and dependencies of those dependencies, by port name and version.
missing          Print a list of missing dependencies to be installed for the port.
clean            Remove the expanded source code.  This recurses to dependencies unless NOCLEANDEPENDS is defined.
distclean        Remove the port's distfiles and perform the clean target. The clean portion recurses to dependencies unless NOCLEANDEPENDS is defined, but the distclean portion never recurses (this is perhaps a bug).
reinstall        Use this to restore a port after using pkg-delete(8) when you should have used deinstall.
deinstall        Remove an installed port from the system, similar to pkg-delete(8).
deinstall-all    Remove all installed ports with the same PKGORIGIN from the system.
package          Make a binary package for the port.  The port will be installed if it has not already been.  The package is a .tbz file that you can use to install the port on other machines with pkg-add(8).  If the directory specified by PACKAGES does not exist, the package will be put into the current directory.  See PKGREPOSITORY and PKGFILE.
package-recursive Like package, but makes a package for each depending port as well.
package-name     Prints the name with version of the port.
readmes          Create a port's README.html.  This can be used from /usr/ports to create a browsable web of all ports on your system!
search           Search the INDEX file for the pattern specified by the key (searches the port name, comment, and dependencies), name (searches the port name only), path (searches the port path), info (searches the port info), maint (searches the port maintainer), cat (searches the port category), bdeps (searches the port build-time dependency), rdeps (searches the port run-time dependency), www (searches the port web site) make(1) variables, and their exclusion counterparts: xname, xkey etc.  For example, one would type:
cd /usr/ports && make search name=query
to find all ports whose name matches “query”.  Results include the matching ports' path, comment, maintainer, build dependencies, and run dependencies.
cd /usr/ports && make search name=pear- \ xbdeps=apache
To find all ports whose names contain “pear-” and which do not have apache listed in build-time dependencies.
cd /usr/ports && make search name=pear- \ xname='ht(tp|ml)'
To find all ports whose names contain “pear-”, but not “html” or “http”.
make search key=apache display=name,path,info keylim=1
To find ports that contain “apache” in either of the name, path, info fields, ignore the rest of the record.
By default the search is not case-sensitive.  In order to make it case-sensitive you can use the icase variable:
make search name=p5-R icase=0
quicksearch      Reduced search output.  Only display name, path and info.
describe         Generate a one-line description of each port for use in the INDEX file.
maintainer       Display the port maintainer's email address.
index            Create /usr/ports/INDEX, which is used by the pretty-print-* and search targets.  Running the index target will ensure your INDEX file is up to date with your ports tree.
fetchindex       Fetch the INDEX file from the FreeBSD cluster.
You can change all of these.
PORTSDIR      Location of the ports tree.  This is /usr/ports by default.
WRKDIRPREFIX  Where to create any temporary files.  Useful if PORTSDIR is read-only (perhaps mounted from a CD-ROM).
DISTDIR       Where to find/put distfiles, normally distfiles/ in PORTSDIR.
SU_CMD        Command used to elevate privilege to configure and install a port.  The unprivileged user must have write access to WRKDIRPREFIX and DISTDIR.  The default is ‘/usr/bin/su root -c’.  Many users set it to ‘/usr/local/bin/sudo -E sh -c’ for convenience.
PACKAGES      Used only for the package target; the base directory for the packages tree, normally packages/ in PORTSDIR.  If this directory exists, the package tree will be (partially) constructed.  This directory does not have to exist; if it does not, packages will be placed into the current directory, or you can define one of
PKGREPOSITORY  Directory to put the package in.
PKGFILE        The full path to the package.
LOCALBASE     Where existing things are installed and where to search for files when resolving dependencies (usually /usr/local).