neulab/tldr huggingface dataset:
ufw supports several different protocols. The following are valid in any rule and enabled when the protocol is not specified:
tcp udp
The following have certain restrictions and are not enabled when the protocol is not specified:
ah      valid without port number esp     valid without port number gre     valid without port number ipv6    valid for IPv4 addresses and without port number igmp    valid for IPv4 addresses and without port number
Rules for traffic not destined for the host itself but instead for traffic that should be routed/forwarded through the firewall should specify the route keyword before the rule (routing rules differ significantly from PF syntax and instead take into account netfilter FORWARD chain conventions). For example:
ufw route allow in on eth1 out on eth2
This will allow all traffic routed to eth2 and coming in on eth1 to traverse the firewall.
ufw route allow in on eth0 out on eth1 to 12.34.45.67 port 80 proto tcp
This rule allows any packets coming in on eth0 to traverse the firewall out on eth1 to tcp port 80 on 12.34.45.67.
In addition to routing rules and policy, you must also setup IP forwarding.  This may be done by setting the following in /etc/ufw/sysctl.conf:
net/ipv4/ip_forward=1 net/ipv6/conf/default/forwarding=1 net/ipv6/conf/all/forwarding=1
then restarting the firewall:
ufw disable ufw enable
Be aware that setting kernel tunables is operating system specific and ufw sysctl settings may be overridden. See the sysctl manual page for details.
ufw supports connection rate limiting, which is useful for protecting against brute-force login attacks. When a limit rule is used, ufw will normally allow the connection but will deny connections if an IP address attempts to initiate 6 or more connections within 30 seconds. See http://www.debian-administration.org/articles/187 for details. Typical usage is:
ufw limit ssh/tcp
Sometimes it is desirable to let the sender know when traffic is being denied, rather than simply ignoring it. In these cases, use reject instead of deny.  For example:
ufw reject auth
By default, ufw will apply rules to all available interfaces. To limit this, specify DIRECTION on INTERFACE, where DIRECTION is one of in or out (interface aliases are not supported).  For example, to allow all new incoming http connections on eth0, use:
ufw allow in on eth0 to any port 80 proto tcp
To delete a rule, simply prefix the original rule with delete with or without the rule comment. For example, if the original rule was:
ufw deny 80/tcp
Use this to delete it:
ufw delete deny 80/tcp
You may also specify the rule by NUM, as seen in the status numbered output. For example, if you want to delete rule number '3', use:
ufw delete 3
If you have IPv6 enabled and are deleting a generic rule that applies to both IPv4 and IPv6 (eg 'ufw allow 22/tcp'), deleting by rule number will delete only the specified rule. To delete both with one command, prefix the original rule with delete.
To insert a rule, specify the new rule as normal, but prefix the rule with the rule number to insert. For example, if you have four rules, and you want to insert a new rule as rule number three, use:
ufw insert 3 deny to any port 22 from 10.0.0.135 proto tcp
Similarly, to add a rule before all other rules matching the rule's IP type, use the prepend rule:
ufw prepend deny from 1.2.3.4
This is particularly useful for dynamic firewalls as found in an IPS. Importantly, if the specified rule is an IPv4 rule, it will be prepended before all other IPv4 rules. If it is an IPv6 rule, it will be prepended before any IPv6 rules.
To see a list of numbered rules, use:
ufw status numbered
ufw supports per rule logging. By default, no logging is performed when a packet matches a rule. Specifying log will log all new connections matching the rule, and log-all will log all packets matching the rule. For example, to allow and log all new ssh connections, use:
ufw allow log 22/tcp
See LOGGING for more information on logging.
Deny all access to port 53:
ufw deny 53
Allow all access to tcp port 80:
ufw allow 80/tcp
Allow all access from RFC1918 networks to this host:
ufw allow from 10.0.0.0/8 ufw allow from 172.16.0.0/12 ufw allow from 192.168.0.0/16
Deny access to udp port 514 from host 1.2.3.4:
ufw deny proto udp from 1.2.3.4 to any port 514
Allow access to udp 1.2.3.4 port 5469 from 1.2.3.5 port 5469:
ufw allow proto udp from 1.2.3.5 port 5469 to 1.2.3.4 port 5469
When running ufw enable or starting ufw via its initscript, ufw will flush its chains. This is required so ufw can maintain a consistent state, but it may drop existing connections (eg ssh). ufw does support adding rules before enabling the firewall, so administrators can do:
ufw allow proto tcp from any to any port 22
before running 'ufw enable'. The rules will still be flushed, but the ssh port will be open after enabling the firewall. Please note that once ufw is 'enabled', ufw will not flush the chains when adding or removing rules (but will when modifying a rule or changing the default policy). By default, ufw will prompt when enabling the firewall while running under ssh. This can be disabled by using 'ufw --force enable'.
ufw supports application integration by reading profiles located in /etc/ufw/applications.d. To list the names of application profiles known to ufw, use:
ufw app list
Users can specify an application name when adding a rule (quoting any profile names with spaces). For example, when using the simple syntax, users can use:
ufw allow <name>
Or for the extended syntax:
ufw allow from 192.168.0.0/16 to any app <name>
You should not specify the protocol with either syntax, and with the extended syntax, use app in place of the port clause.
Details on the firewall profile for a given application can be seen with:
ufw app info <name>
where '<name>' is one of the applications seen with the app list command. Users may also specify all to see the profiles for all known applications.
Syntax for the application profiles is a simple .INI format:
[<name>] title=<title> description=<description> ports=<ports>
The 'ports' field may specify a '|'-separated list of ports/protocols where the protocol is optional. A comma-separated list or a range (specified with 'start:end') may also be used to specify multiple ports, in which case the protocol is required. For example:
[SomeService] title=Some title description=Some description ports=12/udp|34|56,78:90/tcp
In the above example, 'SomeService' may be used in app rules and it specifies UDP port 12, TCP and UDP on port 34 and TCP ports 56 and 78-90 inclusive.
After creating or editing an application profile, users can run:
ufw app update <name>
This command will automatically update the firewall with updated profile information. If specify 'all' for name, then all the profiles will be updated.  To update a profile and add a new rule to the firewall automatically, users can run:
ufw app update --add-new <name>
The behavior of the update --add-new command can be configured using:
ufw app default <policy>
The default application policy is skip, which means that the update --add-new command will do nothing. Users may also specify a policy of allow or deny so the update --add-new command may automatically update the firewall.  WARNING: it may be a security to risk to use a default allow policy for application profiles. Carefully consider the security ramifications before using a default allow policy.
ufw supports multiple logging levels. ufw defaults to a loglevel of 'low' when a loglevel is not specified. Users may specify a loglevel with:
ufw logging LEVEL
LEVEL may be 'off', 'low', 'medium', 'high' and 'full'. Log levels are defined as:
off    disables ufw managed logging
low    logs all blocked packets not matching the defined policy (with rate limiting), as well as packets matching logged rules
medium log level low, plus all allowed packets not matching the defined policy, all INVALID packets, and all new connections.  All logging is done with rate limiting.
high   log level medium (without rate limiting), plus all packets with rate limiting
full   log level high without rate limiting
Loglevels above medium generate a lot of logging output, and may quickly fill up your disk. Loglevel medium may generate a lot of logging output on a busy system.
Specifying 'on' simply enables logging at log level 'low' if logging is currently not enabled.
The following reports are supported. Each is based on the live system and with the exception of the listening report, is in raw iptables format:
raw builtins before-rules user-rules after-rules logging-rules listening added
The raw report shows the complete firewall, while the others show a subset of what is in the raw report.
The listening report will display the ports on the live system in the listening state for tcp and the open state for udp, along with the address of the interface and the executable listening on the port. An '*' is used in place of the address of the interface when the executable is bound to all interfaces on that port. Following this information is a list of rules which may affect connections on this port. The rules are listed in the order they are evaluated by the kernel, and the first match wins. Please note that the default policy is not listed and tcp6 and udp6 are shown only if IPV6 is enabled.
The added report displays the list of rules as they were added on the command-line. This report does not show the status of the running firewall (use 'ufw status' instead). Because rules are normalized by ufw, rules may look different than the originally added rule. Also, ufw does not record command ordering, so an equivalent ordering is used which lists IPv6-only rules after other rules.
On installation, ufw is disabled with a default incoming policy of deny, a default forward policy of deny, and a default outgoing policy of allow, with stateful tracking for NEW connections for incoming and forwarded connections.  In addition to the above, a default ruleset is put in place that does the following:
- DROP packets with RH0 headers
- DROP INVALID packets
- ACCEPT certain icmp packets (INPUT and FORWARD): destination- unreachable, source-quench, time-exceeded, parameter-problem, and echo- request for IPv4. destination-unreachable, packet-too-big, time-exceeded, parameter-problem, and echo-request for IPv6.
- ACCEPT icmpv6 packets for stateless autoconfiguration (INPUT)
- ACCEPT ping replies from IPv6 link-local (ffe8::/10) addresses (INPUT)
- ACCEPT DHCP client traffic (INPUT)
- DROP non-local traffic (INPUT)
- ACCEPT mDNS (zeroconf/bonjour/avahi 224.0.0.251 for IPv4 and ff02::fb for IPv6) for service discovery (INPUT)
- ACCEPT UPnP (239.255.255.250 for IPv4 and ff02::f for IPv6) for service discovery (INPUT)
Rule ordering is important and the first match wins. Therefore when adding rules, add the more specific rules first with more general rules later.
ufw is not intended to provide complete firewall functionality via its command interface, but instead provides an easy way to add or remove simple rules.
The status command shows basic information about the state of the firewall, as well as rules managed via the ufw command. It does not show rules from the rules files in /etc/ufw. To see the complete state of the firewall, users can ufw show raw.  This displays the filter, nat, mangle and raw tables using:
iptables -n -L -v -x -t <table> ip6tables -n -L -v -x -t <table>
See the iptables and ip6tables documentation for more details.
If the default policy is set to REJECT, ufw may interfere with rules added outside of the ufw framework. See README for details.
IPV6 is allowed by default. To change this behavior to only accept IPv6 traffic on the loopback interface, set IPV6 to 'no' in /etc/default/ufw and reload ufw. When IPv6 is enabled, you may specify rules in the same way as for IPv4 rules, and they will be displayed with ufw status. Rules that match both IPv4 and IPv6 addresses apply to both IP versions. For example, when IPv6 is enabled, the following rule will allow access to port 22 for both IPv4 and IPv6 traffic:
ufw allow 22
IPv6 over IPv4 tunnels and 6to4 are supported by using the 'ipv6' protocol ('41'). This protocol can only be used with the full syntax. For example:
ufw allow to 10.0.0.1 proto ipv6 ufw allow to 10.0.0.1 from 10.4.0.0/16 proto ipv6
IPSec is supported by using the 'esp' ('50') and 'ah' ('51') protocols. These protocols can only be used with the full syntax. For example:
ufw allow to 10.0.0.1 proto esp ufw allow to 10.0.0.1 from 10.4.0.0/16 proto esp ufw allow to 10.0.0.1 proto ah ufw allow to 10.0.0.1 from 10.4.0.0/16 proto ah
In addition to the command-line interface, ufw also provides a framework which allows administrators to modify default behavior as well as take full advantage of netfilter. See the ufw-framework manual page for more information.
ufw-framework(8), iptables(8), ip6tables(8), iptables-restore(8), ip6tables-restore(8), sysctl(8), sysctl.conf(5)
ufw is Copyright 2008-2014, Canonical Ltd.
ufw and this manual page was originally written by Jamie Strandboge <jamie@canonical.com>
SWIG(1)                      General Commands Manual                     SWIG(1)
swig - Simplified Wrapper and Interface Generator
swig [options] file
The swig command is used to create wrapper code to connect C and C++ code to scripting languages like Perl, Python, etc. from the definition of the interface. For detailed information on writing those interface definitions please refer to /usr/share/doc/swig-doc/Manual/index.html from the swig-doc package.  This manpage concentrates on explaining the invocation of the swig command.
Target Language Options: -chicken Generate CHICKEN wrappers
-csharp Generate C# wrappers
-guile Generate Guile wrappers
-java  Generate Java wrappers
-mzscheme Generate Mzscheme wrappers
-ocaml Generate Ocaml wrappers
-perl  Generate Perl wrappers.
-php   Generate PHP wrappers
-pike  Generate Pike wrappers
-python Generate Python wrappers
-ruby  Generate Ruby wrappers
-sexp  Generate Lisp S-Expressions wrappers
-tcl   Generate Tcl wrappers
-xml   Generate XML wrappers.
General Options -c++   Enable C++ processing
-co    Check a file out of the SWIG library
-dirprot Turn on wrapping of protected members for director classes
-Dsymbol Define a symbol symbol (for conditional compilation)
-E     Preprocess only, does not generate wrapper code
-fcompact Compile in compact mode
-fvirtual Compile in virtual elimination mode
-Fstandard Display error/warning messages in commonly used format
-Fmicrosoft Display error/warning messages in Microsoft format
-help  Show a summary of supported options and especially of supported options for the selected language.
-Idir  Look for SWIG files in dir
-ignoremissing Ignore missing include files
-importall Follow all #include statements as imports
-includeall Follow all #include statements
-lifile Include SWIG library file ifile
-M     List all dependencies
-MM    List dependencies, but omit files in SWIG library
-makedefault Create default constructors/destructors (the default)
-module name Set module name to name
-nocontract Turn off contract checking
-nodefault Do not generate constructors/destructors
-nodirprot Do not wrap director protected members
-noexcept Do not wrap exception specifiers
-noextern Do not generate extern declarations
-noruntime Do not include SWIG runtime code
-o outfile Set name of the output file to outfile
-outdir dir Set language specific files output directory
-runtime Make the runtime support code globally visible.
-small Compile in virtual elimination & compact mode
-swiglib Report location of SWIG library and exit
-v     Run in verbose mode
-version Print SWIG version number
-Wall  Enable all warning messages
-Wallkw Enable warning messages for all the languages keywords
-Werror Force to treat the warnings as errors
-w n   Suppress warning number n
SWIG was originally created by David Beazley. For up-to-date information about authors and contributors please check http://www.swig.org/guilty.html.  This manual page was written by Torsten Landschoff <torsten@debian.org> for the Debian project (but may be used by others).
GIMP(1)                         GIMP Manual Pages                        GIMP(1)
gimp - an image manipulation and paint program.
gimp [-h] [--help] [--help-all] [--help-gtk] [-v] [--version] [--license] [--verbose] [-n] [--new-instance] [-a] [--as-new] [-i] [--no-interface] [-d] [--no-data] [-f] [--no-fonts] [-s] [--no-splash]  [--no-shm] [--no-cpu-accel] [--display display] [--session <name>] [-g] [--gimprc <gimprc>] [--system-gimprc <gimprc>] [--dump-gimprc] [--console-messages] [--debug-handlers] [--stack-trace-mode <mode>] [--pdb-compat-mode <mode>] [--batch-interpreter <procedure>] [-b] [--batch <command>] [filename] ...
GIMP is the GNU Image Manipulation Program. It is used to edit and manipulate images. It can load and save a variety of image formats and can be used to convert between formats.
GIMP can also be used as a paint program. It features a set of drawing and painting tools such as airbrush, clone, pencil, and paint brush. Painting and drawing tools can be applied to an image with a variety of paint modes.  It also offers an extensive array of selection tools like rectangle, ellipse, fuzzy select, bezier select, intelligent scissors, and select by color.
GIMP offers a variety of plug-ins that perform a variety of image manipulations.  Examples include bumpmap, edge detect, gaussian blur, and many others. In addition, GIMP has several scripting extensions which allow for advanced non-interactive processing and creation of images.
GIMP ships with a second binary called gimp-console. This binary is a console-only version and behaves as if gimp was called with the --no-interface command-line option.
On platforms with the D-Bus message bus system, GIMP will by default check if an instance is already running in this user session. If it detects that, it will pass all filenames given on the command-line to the already running GIMP instance and quit.
GIMP accepts the following options:
-h, --help Show GIMP command-line options.
--help-all Show all command-line options.
--help-gtk Show GTK+ command-line options.
--help-gegl Show GEGL command-line options.
-v, --version Output version information and exit. When combined with the --verbose option, version information about libraries used by GIMP is shown as well.
--license Output license information and exit.
--verbose Be verbose and create information on standard output.
-n, --new-instance Do not attempt to reuse an already running GIMP instance. Always start a new one.
-a, --as-new Open filenames passed on the command-line as new images, don't set the filename on them.
-i, --no-interface Run without a user interface.
-d, --no-data Do not load patterns, gradients, palettes, or brushes. Often useful in non-interactive situations where startup time is to be minimized.
-f, --no-fonts Do not load any fonts. No text functionality will be available if this option is used.
--display display Use the designated X display.
-s, --no-splash Do not show the splash screen.
--no-shm Do not use shared memory between GIMP and its plug-ins.  Instead of using shared memory, GIMP will send the data via pipe. This will result in slower performance than using shared memory.
--no-cpu-accel Do not use CPU accelerations such as MMX or SSE even if GIMP detects that your CPU provides this functionality.
--session <name> Use a different sessionrc for this GIMP session. The given session name is appended to the default sessionrc filename.
-g, --gimprc <gimprc> Use an alternative gimprc instead of the default one. Useful in cases where plug-in paths or machine specs may be different.
--system-gimprc <gimprc> Use an alternate system gimprc file.
--dump-gimprc Output a gimprc file with default settings.
--debug-handlers Enable debugging signal handlers.
-c, --console-messages Do not popup dialog boxes on errors or warnings. Print the messages on the console instead.
--stack-trace-mode {never|query|always} If a stack-trace should be generated in case of fatal signals.
--pdb-compat-mode {off|on|warn} If the PDB should provide aliases for deprecated functions.
--batch-interpreter <procedure> Specifies the procedure to use to process batch events. The default is to let Script-Fu evaluate the commands.
-b, --batch <command> Execute <command> non-interactively. This option may appear multiple times.  The <command> is passed to the batch interpreter. When <command> is - the commands are read from standard input.
GIMP respects a number of environment variables.
GIMP2_DIRECTORY to get the name of the personal GIMP directory. If unset $XDG_CONFIG_HOME/GIMP/2.10 is used.  If this is an absolute path, it is used as is.  If it is a relative path, it is taken to be a subdirectory of $XDG_CONFIG_HOME.
GIMP2_DATADIR to get the base location for data files such as brushes and patterns.  If unset ${datarootdir}/gimp/2.0 is used.
GIMP2_LOCALEDIR to get the base location for translations. If unset ${datarootdir}/locale is used.
GIMP2_PLUGINDIR to get the base location for plug-ins and modules. If unset ${exec_prefix}/lib/gimp/2.0 is used.
GIMP2_SYSCONFDIR to get the location of configuration files. If unset /etc/gimp/2.0 is used.
GIMP2_CACHEDIR to get the location for caches files. If unset the system default for per-user cached files is used.
GIMP2_TEMPDIR to get the location of temporary files. If unset the system default for temporary files is used.
On Linux GIMP can be compiled with support for binary relocatibility.  This will cause data, plug-ins and configuration files to be searched relative to the location of the gimp executable file unless overridden by the environment variables mentioned above.
GIMP's data files are stored in ${datarootdir}/gimp/2.0, where ${datarootdir} is set on install, but is typically /usr/share. GIMP's system-wide configuration files are stored in /etc/gimp/2.0, where ${prefix} is typically /usr.
Most GIMP configuration is read in from the user's init file, $XDG_CONFIG_HOME/GIMP/2.10/gimprc. The system wide equivalent is in /etc/gimp/2.0/gimprc. The system wide file is parsed first and the user gimprc can override the system settings.  /etc/gimp/2.0/gimprc_user is the default gimprc placed in users' home directories the first time GIMP is run.
$XDG_CONFIG_HOME/GIMP/2.10/devicerc - holds settings for input devices together with the tool, colors, brush, pattern and gradient associated to that device.
$XDG_CONFIG_HOME/GIMP/2.10/gtkrc - users set of GIMP-specific GTK+ config settings. Options such as widget color and fonts sizes can be set here.
/etc/gimp/2.0/gtkrc - system wide default set of GIMP-specific GTK+ config settings.
$XDG_CONFIG_HOME/GIMP/2.10/menurc - user's set of keybindings.
$XDG_CONFIG_HOME/GIMP/2.10/parasiterc - Stores all persistent GIMP parasites. This file will be rewritten every time you quit GIMP.
$XDG_CONFIG_HOME/GIMP/2.10/sessionrc - This file takes session-specific info (that is info, you want to keep between two GIMP sessions). You are not supposed to edit it manually, but of course you can do. This file will be entirely rewritten every time you quit GIMP. If this file isn't found, defaults are used.
$XDG_CONFIG_HOME/GIMP/2.10/templaterc - Image templates are kept in this file. New images can conveniently created from these templates. If this file isn't found, defaults are used.
/etc/gimp/2.0/unitrc - default user unit database. It contains the unit definitions for centimeters, meters, feet, yards, typographic points and typographic picas and is placed in users home directories the first time GIMP is ran. If this file isn't found, defaults are used.
$XDG_CONFIG_HOME/GIMP/2.10/unitrc - This file contains your user unit database. You can modify this list with the unit editor. You are not supposed to edit it manually, but of course you can do.  This file will be entirely rewritten every time you quit GIMP.
$XDG_CONFIG_HOME/GIMP/2.10/plug-ins - location of user installed plug- ins.
$XDG_CONFIG_HOME/GIMP/2.10/pluginrc - plug-in initialization values are stored here. This file is parsed on startup and regenerated if need be.
$XDG_CONFIG_HOME/GIMP/2.10/modules - location of user installed modules.
$XDG_CONFIG_HOME/GIMP/2.10/tmp - default location that GIMP uses as temporary space.
${datarootdir}/gimp/2.0/brushes - system wide brush files.
$XDG_CONFIG_HOME/GIMP/2.10/brushes - user created and installed brush files. These files are in the .gbr, .gih or .vbr file formats.
$XDG_CONFIG_HOME/GIMP/2.10/curves - Curve profiles and presets as saved from the Curves tool.
$XDG_CONFIG_HOME/GIMP/2.10/gimpressionist - Presets and user created brushes and papers are stored here.
$XDG_CONFIG_HOME/GIMP/2.10/levels - Level profiles and presets as saved from the Levels tool.
${datarootdir}/gimp/2.0/palettes - the system wide palette files.
$XDG_CONFIG_HOME/GIMP/2.10/palettes - user created and modified palette files. This files are in the .gpl format.
${datarootdir}/gimp/2.0/patterns - basic set of patterns for use in GIMP.
$XDG_CONFIG_HOME/GIMP/2.10/patterns - user created and installed gimp pattern files. This files are in the .pat format.
${datarootdir}/gimp/2.0/gradients - standard system wide set of gradient files.
$XDG_CONFIG_HOME/GIMP/2.10/gradients - user created and installed gradient files.
${datarootdir}/gimp/2.0/scripts - system wide directory of scripts used in Script-Fu and other scripting extensions.
$XDG_CONFIG_HOME/GIMP/2.10/scripts - user created and installed scripts.
${datarootdir}/gimp/2.0/gflares - system wide directory used by the gflare plug-in.
$XDG_CONFIG_HOME/GIMP/2.10/gflares - user created and installed gflare files.
${datarootdir}/gimp/2.0/gfig - system wide directory used by the gfig plug-in.
$XDG_CONFIG_HOME/GIMP/2.10/gfig - user created and installed gfig files.
${datarootdir}/gimp/2.0/images/gimp-splash.png - the default image used for the GIMP splash screen.
${datarootdir}/gimp/2.0/images/gimp-logo.png - image used in the GIMP about dialog.
${datarootdir}/gimp/2.0/tips/gimp-tips.xml - tips as displayed in the "Tip of the Day" dialog box.
GIMP comes with a default image for the splash screen but it allows system administrators and users to customize the splash screen by providing other images. The image to be used with the splash screen is chosen as follows:
1.     GIMP tries to load a random splash screen from the directory $XDG_CONFIG_HOME/GIMP/2.10/splashes.
2.     It then falls back to using $XDG_CONFIG_HOME/GIMP/2.10/gimp-splash.png.
3.     If the user didn't install any custom splash images, a random image is picked from ${datarootdir}/gimp/2.0/splashes.
4.     As a last resort, GIMP uses the default splash image located at ${datarootdir}/gimp/2.0/images/gimp-splash.png.
Any bugs found should be reported to the online bug-tracking system available on the web at https://gitlab.gnome.org/GNOME/gimp/issues. Before reporting bugs, please check to see if the bug has already been reported.
When reporting GIMP bugs, it is important to include a reliable way to reproduce the bug, version number of GIMP (and probably GTK+), OS name and version, and any relevant hardware specs. If a bug is causing a crash, it is very useful if a stack trace can be provided. And of course, patches to rectify the bug are even better.
The canonical place to find GIMP info is at https://www.gimp.org/.  Here you can find links to just about many other GIMP sites, tutorials, data sets, mailing list archives, and more.
There is also a GIMP User Manual available at https://docs.gimp.org/ that goes into much more detail about the interactive use of GIMP.
The latest versions of GIMP and the GTK+ libs are always available at https://download.gimp.org/.
Spencer Kimball, Peter Mattis and the GIMP Development Team.
With patches, fixes, plug-ins, extensions, scripts, translations, documentation and more from lots and lots of people all over the world.
gimprc(5), gimptool(1),
ASX(3)                              QuantLib                              ASX(3)
ASX - Main cycle of the Australian Securities Exchange (a.k.a. ASX) months.
#include <ql/time/asx.hpp>
Public Types enum Month { F = 1, G = 2, H = 3, J = 4, K = 5, M = 6, N = 7, Q = 8, U = 9, V = 10, X = 11, Z = 12 }
Static Public Member Functions static bool isASXdate (const Date &d, bool mainCycle=true) returns whether or not the given date is an ASX date static bool isASXcode (const std::string &in, bool mainCycle=true) returns whether or not the given string is an ASX code static std::string code (const Date &asxDate) static Date date (const std::string &asxCode, const Date &referenceDate=Date()) static Date nextDate (const Date &d=Date(), bool mainCycle=true) next ASX date following the given date static Date nextDate (const std::string &asxCode, bool mainCycle=true, const Date &referenceDate=Date()) next ASX date following the given ASX code static std::string nextCode (const Date &d=Date(), bool mainCycle=true) next ASX code following the given date static std::string nextCode (const std::string &asxCode, bool mainCycle=true, const Date &referenceDate=Date()) next ASX code following the given code
Detailed Description Main cycle of the Australian Securities Exchange (a.k.a. ASX) months.
Member Function Documentation static std::string code (const Date & asxDate) [static] returns the ASX code for the given date (e.g. M5 for June 12th, 2015).
Warning It raises an exception if the input date is not an ASX date
static Date date (const std::string & asxCode, const Date & referenceDate = Date()) [static] returns the ASX date for the given ASX code (e.g. June 12th, 2015 for M5).
Warning It raises an exception if the input string is not an ASX code
static Date nextDate (const Date & d = Date(), bool mainCycle = true) [static] next ASX date following the given date returns the 1st delivery date for next contract listed in the Australian Securities Exchange.
static Date nextDate (const std::string & asxCode, bool mainCycle = true, const Date & referenceDate = Date()) [static] next ASX date following the given ASX code returns the 1st delivery date for next contract listed in the Australian Securities Exchange
static std::string nextCode (const Date & d = Date(), bool mainCycle = true) [static] next ASX code following the given date returns the ASX code for next contract listed in the Australian Securities Exchange
static std::string nextCode (const std::string & asxCode, bool mainCycle = true, const Date & referenceDate = Date()) [static] next ASX code following the given code returns the ASX code for next contract listed in the Australian Securities Exchange
NANO(1)                      General Commands Manual                     NANO(1)
nano - Nano's ANOther editor, inspired by Pico
nano [options] [[+line[,column]] file]...
nano [options] [[+[crCR](/|?)string] file]...
nano is a small and friendly editor.  It copies the look and feel of Pico, but is free software, and implements several features that Pico lacks, such as: opening multiple files, scrolling per line, undo/redo, syntax coloring, line numbering, and soft-wrapping overlong lines.
When giving a filename on the command line, the cursor can be put on a specific line by adding the line number with a plus sign (+) before the filename, and even in a specific column by adding it with a comma. (Negative numbers count from the end of the file or line.)  The cursor can be put on the first or last occurrence of a specific string by specifying that string after +/ or +? before the filename.  The string can be made case sensitive and/or caused to be interpreted as a regular expression by inserting c and/or r after the + sign.  These search modes can be explicitly disabled by using the uppercase variant of those letters: C and/or R.  When the string contains spaces, it needs to be enclosed in quotes.  To give an example: to open a file at the first occurrence of the word "Foo", you would do:
nano +c/Foo file
As a special case: if instead of a filename a dash (-) is given, nano will read data from standard input.
Entering text and moving around in a file is straightforward: typing the letters and using the normal cursor movement keys.  Commands are entered by using the Control (^) and the Alt or Meta (M-) keys.  Typing ^K deletes the current line and puts it in the cutbuffer.  Consecutive ^Ks will put all deleted lines together in the cutbuffer.  Any cursor movement or executing any other command will cause the next ^K to overwrite the cutbuffer.  A ^U will paste the current contents of the cutbuffer at the current cursor position.
When a more precise piece of text needs to be cut or copied, you can mark its start with ^6, move the cursor to its end (the marked text will be highlighted), and then use ^K to cut it, or M-6 to copy it to the cutbuffer.  You can also save the marked text to a file with ^O, or spell check it with ^T^T.
On some terminals, text can be selected also by holding down Shift while using the arrow keys.  Holding down the Ctrl or Alt key too will increase the stride.  Any cursor movement without Shift being held will cancel such a selection.
The two lines at the bottom of the screen show some important commands; the built-in help (^G) lists all the available ones.  The default key bindings can be changed via a nanorc file -- see nanorc(5).
Since version 4.0, nano by default:
• does not automatically hard-wrap lines that become overlong, • includes the line below the title bar in the editing area, • does linewise (smooth) scrolling.
If you want the old, Pico behavior back, you can use --breaklonglines, --emptyline, and --jumpyscrolling (or -bej for short).
-A, --smarthome Make the Home key smarter.  When Home is pressed anywhere but at the very beginning of non-whitespace characters on a line, the cursor will jump to that beginning (either forwards or backwards). If the cursor is already at that position, it will jump to the true beginning of the line.
-B, --backup When saving a file, back up the previous version of it, using the current filename suffixed with a tilde (~).
-C directory, --backupdir=directory Make and keep not just one backup file, but make and keep a uniquely numbered one every time a file is saved -- when backups are enabled (-B).  The uniquely numbered files are stored in the specified directory.
-D, --boldtext For the interface, use bold instead of reverse video.  This will be overridden by setting the options titlecolor, statuscolor, keycolor, functioncolor, numbercolor, and/or selectedcolor in your nanorc file.  See nanorc(5).
-E, --tabstospaces Convert each typed tab to spaces -- to the number of spaces that a tab at that position would take up.
-F, --multibuffer Read a file into a new buffer by default.
-G, --locking Use vim-style file locking when editing files.
-H, --historylog Save the last hundred search strings and replacement strings and executed commands, so they can be easily reused in later sessions.
-I, --ignorercfiles Don't look at the system's nanorc nor at the user's nanorc.
-J number, --guidestripe=number Draw a vertical stripe at the given column, to help judge the width of the text.  (The color of the stripe can be changed with set stripecolor in your nanorc file.)
-K, --rawsequences Interpret escape sequences directly (instead of asking ncurses to translate them).  If you need this option to get your keyboard to work properly, please report a bug.  Using this option disables nano's mouse support.
-L, --nonewlines Don't automatically add a newline when a text does not end with one.  (This can cause you to save non-POSIX text files.)
-M, --trimblanks Snip trailing whitespace from the wrapped line when automatic hard-wrapping occurs or when text is justified.
-N, --noconvert Disable automatic conversion of files from DOS/Mac format.
-O, --bookstyle When justifying, treat any line that starts with whitespace as the beginning of a paragraph (unless auto-indenting is on).
-P, --positionlog For the 200 most recent files, log the last position of the cursor, and place it at that position again upon reopening such a file.
-Q "regex", --quotestr="regex" Set the regular expression for matching the quoting part of a line.  The default value is "^([ \t]*([!#%:;>|}]|//))+".  (Note that \t stands for an actual Tab.)  This makes it possible to rejustify blocks of quoted text when composing email, and to rewrap blocks of line comments when writing source code.
-R, --restricted Restricted mode: don't read or write to any file not specified on the command line.  This means: don't read or write history files; don't allow suspending; don't allow spell checking; don't allow a file to be appended to, prepended to, or saved under a different name if it already has one; and don't make backup files. Restricted mode can also be activated by invoking nano with any name beginning with 'r' (e.g. "rnano").
-S, --softwrap Display over multiple screen rows lines that exceed the screen's width.  (You can make this soft-wrapping occur at whitespace instead of rudely at the screen's edge, by using also --atblanks.) (The old short option, -$, is deprecated.)
-T number, --tabsize=number Set the size (width) of a tab to number columns.  The value of number must be greater than 0.  The default value is 8.
-U, --quickblank Make status-bar messages disappear after 1 keystroke instead of after 20.  Note that options -c (--constantshow) and -_ (--minibar) override this.
-V, --version Show the current version number and exit.
-W, --wordbounds Detect word boundaries differently by treating punctuation characters as part of a word.
-X "characters", --wordchars="characters" Specify which other characters (besides the normal alphanumeric ones) should be considered as part of a word.  When using this option, you probably want to omit -W (--wordbounds).
-Y name, --syntax=name Specify the name of the syntax highlighting to use from among the ones defined in the nanorc files.
-Z, --zap Let an unmodified Backspace or Delete erase the marked region (instead of a single character, and without affecting the cutbuffer).
-a, --atblanks When doing soft line wrapping, wrap lines at whitespace instead of always at the edge of the screen.
-b, --breaklonglines Automatically hard-wrap the current line when it becomes overlong. (This option is the opposite of -w (--nowrap) -- the last one given takes effect.)
-c, --constantshow Constantly show the cursor position on the status bar.  Note that this overrides option -U (--quickblank).
-d, --rebinddelete Interpret the Delete and Backspace keys differently so that both Backspace and Delete work properly.  You should only use this option when on your system either Backspace acts like Delete or Delete acts like Backspace.
-e, --emptyline Do not use the line below the title bar, leaving it entirely blank.
-f file, --rcfile=file Read only this file for setting nano's options, instead of reading both the system-wide and the user's nanorc files.
-g, --showcursor Make the cursor visible in the file browser (putting it on the highlighted item) and in the help viewer.  Useful for braille users and people with poor vision.
-h, --help Show a summary of the available command-line options and exit.
-i, --autoindent Automatically indent a newly created line to the same number of tabs and/or spaces as the previous line (or as the next line if the previous line is the beginning of a paragraph).
-j, --jumpyscrolling Scroll the buffer contents per half-screen instead of per line.
-k, --cutfromcursor Make the 'Cut Text' command (normally ^K) cut from the current cursor position to the end of the line, instead of cutting the entire line.
-l, --linenumbers Display line numbers to the left of the text area.  (Any line with an anchor additionally gets a mark in the margin.)
-m, --mouse Enable mouse support, if available for your system.  When enabled, mouse clicks can be used to place the cursor, set the mark (with a double click), and execute shortcuts.  The mouse will work in the X Window System, and on the console when gpm is running.  Text can still be selected through dragging by holding down the Shift key.
-n, --noread Treat any name given on the command line as a new file.  This allows nano to write to named pipes: it will start with a blank buffer, and will write to the pipe when the user saves the "file". This way nano can be used as an editor in combination with for instance gpg without having to write sensitive data to disk first.
-o directory, --operatingdir=directory Set the operating directory.  This makes nano set up something similar to a chroot.
-p, --preserve Preserve the XON and XOFF sequences (^Q and ^S) so they will be caught by the terminal.
-q, --indicator Display a "scrollbar" on the righthand side of the edit window. It shows the position of the viewport in the buffer and how much of the buffer is covered by the viewport.
-r number, --fill=number Set the target width for justifying and automatic hard-wrapping at this number of columns.  If the value is 0 or less, wrapping will occur at the width of the screen minus number columns, allowing the wrap point to vary along with the width of the screen if the screen is resized.  The default value is -8.
-s "program [argument ...]", --speller="program [argument ...]" Use this command to perform spell checking and correcting, instead of using the built-in corrector that calls hunspell(1) or spell(1).
-t, --saveonexit Save a changed buffer without prompting (when exiting with ^X). (The old form of the long option, --tempfile, is deprecated.)
-u, --unix Save a file by default in Unix format.  This overrides nano's default behavior of saving a file in the format that it had. (This option has no effect when you also use --noconvert.)
-v, --view Just view the file and disallow editing: read-only mode.  This mode allows the user to open also other files for viewing, unless --restricted is given too.
-w, --nowrap Do not automatically hard-wrap the current line when it becomes overlong.  This is the default.  (This option is the opposite of -b (--breaklonglines) -- the last one given takes effect.)
-x, --nohelp Don't show the two help lines at the bottom of the screen.
-y, --afterends Make Ctrl+Right and Ctrl+Delete stop at word ends instead of beginnings.
-z, --suspendable Allow the user to suspend the editor (with ^Z by default).
-%, --stateflags Use the top-right corner of the screen for showing some state flags: I when auto-indenting, M when the mark is on, L when hard- wrapping (breaking long lines), R when recording a macro, and S when soft-wrapping.  When the buffer is modified, a star (*) is shown after the filename in the center of the title bar.
-_, --minibar Suppress the title bar and instead show information about the current buffer at the bottom of the screen, in the space for the status bar.  In this "minibar" the filename is shown on the left, followed by an asterisk if the buffer has been modified.  On the right are displayed the current line and column number, the code of the character under the cursor (in Unicode format: U+xxxx), the same flags as are shown by --stateflags, and a percentage that expresses how far the cursor is into the file (linewise).  When a file is loaded or saved, and also when switching between buffers, the number of lines in the buffer is displayed after the filename. This number is cleared upon the next keystroke, or replaced with an [i/n] counter when multiple buffers are open.  The line plus column numbers and the character code are displayed only when --constantshow is used, and can be toggled on and off with M-C. The state flags are displayed only when --stateflags is used.
-!, --magic When neither the file's name nor its first line give a clue, try using libmagic to determine the applicable syntax.
Several of the above options can be switched on and off also while nano is running.  For example, M-L toggles the hard-wrapping of long lines, M-S toggles soft-wrapping, M-N toggles line numbers, M-M toggles the mouse, M-I auto-indentation, and M-X the help lines.  See at the end of the ^G help text for a complete list.
The M-X toggle is special: it works in all menus except the help viewer and the linter.  All other toggles work in the main menu only.
When --rcfile is given, nano will read just the specified file for setting its options and syntaxes and key bindings.  Without that option, nano will read two configuration files: first the system's nanorc (if it exists), and then the user's nanorc (if it exists), either ~/.nanorc or $XDG_CONFIG_HOME/nano/nanorc or ~/.config/nano/nanorc, whichever is encountered first.  See nanorc(5) for more information on the possible contents of those files.
See /usr/share/nano/ and /usr/share/nano/extra/ for available syntax- coloring definitions.
If no alternative spell checker command is specified on the command line nor in one of the nanorc files, nano will check the SPELL environment variable for one.
In some cases nano will try to dump the buffer into an emergency file. This will happen mainly if nano receives a SIGHUP or SIGTERM or runs out of memory.  It will write the buffer into a file named nano.save if the buffer didn't have a name already, or will add a ".save" suffix to the current filename.  If an emergency file with that name already exists in the current directory, it will add ".save" plus a number (e.g. ".save.1") to the current filename in order to make it unique.  In multibuffer mode, nano will write all the open buffers to their respective emergency files.
The recording and playback of keyboard macros works correctly only on a terminal emulator, not on a Linux console (VT), because the latter does not by default distinguish modified from unmodified arrow keys.
Please report any other bugs that you encounter via: https://savannah.gnu.org/bugs/?group=nano.
When nano crashes, it will save any modified buffers to emergency .save files.  If you are able to reproduce the crash and you want to get a backtrace, define the environment variable NANO_NOCATCH.
https://nano-editor.org/
nanorc(5)
/usr/share/doc/nano/ (or equivalent on your system)
GENRSA(1)                            OpenSSL                           GENRSA(1)
openssl-genrsa, genrsa - generate an RSA private key
openssl genrsa [-help] [-out filename] [-passout arg] [-aes128] [-aes192] [-aes256] [-aria128] [-aria192] [-aria256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-f4] [-3] [-rand file...] [-writerand file] [-engine id] [-primes num] [numbits]
The genrsa command generates an RSA private key.
-out filename Output the key to the specified file. If this argument is not specified then standard output is used.
-passout arg The output file password source. For more information about the format of arg see "Pass Phrase Options" in openssl(1).
-aes128, -aes192, -aes256, -aria128, -aria192, -aria256, -camellia128, -camellia192, -camellia256, -des, -des3, -idea These options encrypt the private key with specified cipher before outputting it. If none of these options is specified no encryption is used. If encryption is used a pass phrase is prompted for if it is not supplied via the -passout argument.
-F4|-3 The public exponent to use, either 65537 or 3. The default is 65537.
-engine id Specifying an engine (by its unique id string) will cause genrsa to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms.
-primes num Specify the number of primes to use while generating the RSA key. The num parameter must be a positive integer that is greater than 1 and less than 16.  If num is greater than 2, then the generated key is called a 'multi-prime' RSA key, which is defined in RFC 8017.
numbits The size of the private key to generate in bits. This must be the last option specified. The default is 2048 and values less than 512 are not allowed.
RSA private key generation essentially involves the generation of two or more prime numbers. When generating a private key various symbols will be output to indicate the progress of the generation. A . represents each number which has passed an initial sieve test, + means a number has passed a single round of the Miller-Rabin primality test, * means the current prime starts a regenerating progress due to some failed tests. A newline means that the number has passed all the prime tests (the actual number depends on the key size).
Because key generation is a random process the time taken to generate a key may vary somewhat. But in general, more primes lead to less generation time of a key.
gendsa(1)
lsd(1)                             User Manual                            lsd(1)
lsd - LSDeluxe
lsd [FLAGS] [OPTIONS] [--] [FILE]...
lsd is a ls command with a lot of pretty colours and some other stuff to enrich and enhance the directory listing experience.
-a, --all Do not ignore entries starting with .