neulab/tldr huggingface dataset:
multicast on or multicast off change the MULTICAST flag on the device.
allmulticast on or allmulticast off change the ALLMULTI flag on the device. When enabled, instructs network driver to retrieve all multicast packets from the network to the kernel for further processing.
promisc on or promisc off change the PROMISC flag on the device. When enabled, activates promiscuous operation of the network device.
trailers on or trailers off change the NOTRAILERS flag on the device, NOT used by the Linux and exists for BSD compatibility.
protodown on or protodown off change the PROTODOWN state on the device. Indicates that a protocol error has been detected on the port. Switch drivers can react to this error by doing a phys down on the switch port.
protodown_reason PREASON on or off set PROTODOWN reasons on the device. protodown reason bit names can be enumerated under /etc/iproute2/protodown_reasons.d/. possible reasons bits 0-31
dynamic on or dynamic off change the DYNAMIC flag on the device. Indicates that address can change when interface goes down (currently NOT used by the Linux).
name NAME change the name of the device. This operation is not recommended if the device is running or has some addresses already configured.
txqueuelen NUMBER
txqlen NUMBER change the transmit queue length of the device.
mtu NUMBER change the MTU of the device.
address LLADDRESS change the station address of the interface.
broadcast LLADDRESS
brd LLADDRESS
peer LLADDRESS change the link layer broadcast address or the peer address when the interface is POINTOPOINT.
netns NETNSNAME | PID move the device to the network namespace associated with name NETNSNAME or process PID.
Some devices are not allowed to change network namespace: loopback, bridge, wireless. These are network namespace local devices. In such case ip tool will return "Invalid argument" error. It is possible to find out if device is local to a single network namespace by checking netns-local flag in the output of the ethtool:
ethtool -k DEVICE
To change network namespace for wireless devices the iw tool can be used. But it allows to change network namespace only for physical devices and by process PID.
alias NAME give the device a symbolic name for easy reference.
group GROUP specify the group the device belongs to.  The available groups are listed in file /etc/iproute2/group.
vf NUM specify a Virtual Function device to be configured. The associated PF device must be specified using the dev parameter.
mac LLADDRESS - change the station address for the specified VF. The vf parameter must be specified.
vlan VLANID - change the assigned VLAN for the specified VF. When specified, all traffic sent from the VF will be tagged with the specified VLAN ID. Incoming traffic will be filtered for the specified VLAN ID, and will have all VLAN tags stripped before being passed to the VF. Setting this parameter to 0 disables VLAN tagging and filtering. The vf parameter must be specified.
qos VLAN-QOS - assign VLAN QOS (priority) bits for the VLAN tag. When specified, all VLAN tags transmitted by the VF will include the specified priority bits in the VLAN tag. If not specified, the value is assumed to be 0. Both the vf and vlan parameters must be specified. Setting both vlan and qos as 0 disables VLAN tagging and filtering for the VF.
proto VLAN-PROTO - assign VLAN PROTOCOL for the VLAN tag, either 802.1Q or 802.1ad.  Setting to 802.1ad, all traffic sent from the VF will be tagged with VLAN S-Tag.  Incoming traffic will have VLAN S-Tags stripped before being passed to the VF.  Setting to 802.1ad also enables an option to concatenate another VLAN tag, so both S-TAG and C-TAG will be inserted/stripped for outgoing/incoming traffic, respectively.  If not specified, the value is assumed to be 802.1Q. Both the vf and vlan parameters must be specified.
rate TXRATE -- change the allowed transmit bandwidth, in Mbps, for the specified VF.  Setting this parameter to 0 disables rate limiting.  vf parameter must be specified. Please use new API max_tx_rate option instead.
max_tx_rate TXRATE - change the allowed maximum transmit bandwidth, in Mbps, for the specified VF.  Setting this parameter to 0 disables rate limiting.  vf parameter must be specified.
min_tx_rate TXRATE - change the allowed minimum transmit bandwidth, in Mbps, for the specified VF.  Minimum TXRATE should be always <= Maximum TXRATE.  Setting this parameter to 0 disables rate limiting.  vf parameter must be specified.
spoofchk on|off - turn packet spoof checking on or off for the specified VF.
query_rss on|off - toggle the ability of querying the RSS configuration of a specific VF. VF RSS information like RSS hash key may be considered sensitive on some devices where this information is shared between VF and PF and thus its querying may be prohibited by default.
state auto|enable|disable - set the virtual link state as seen by the specified VF. Setting to auto means a reflection of the PF link state, enable lets the VF to communicate with other VFs on this host even if the PF link state is down, disable causes the HW to drop any packets sent by the VF.
trust on|off - trust the specified VF user. This enables that VF user can set a specific feature which may impact security and/or performance. (e.g. VF multicast promiscuous mode)
node_guid eui64 - configure node GUID for Infiniband VFs.
port_guid eui64 - configure port GUID for Infiniband VFs.
xdp object | pinned | off set (or unset) a XDP ("eXpress Data Path") BPF program to run on every packet at driver level.  ip link output will indicate a xdp flag for the networking device. If the driver does not have native XDP support, the kernel will fall back to a slower, driver- independent "generic" XDP variant. The ip link output will in that case indicate xdpgeneric instead of xdp only. If the driver does have native XDP support, but the program is loaded under xdpgeneric object | pinned then the kernel will use the generic XDP variant instead of the native one.  xdpdrv has the opposite effect of requestsing that the automatic fallback to the generic XDP variant be disabled and in case driver is not XDP-capable error should be returned.  xdpdrv also disables hardware offloads. xdpoffload in ip link output indicates that the program has been offloaded to hardware and can also be used to request the "offload" mode, much like xdpgeneric it forces program to be installed specifically in HW/FW of the apater.
off (or none ) - Detaches any currently attached XDP/BPF program from the given device.
object FILE - Attaches a XDP/BPF program to the given device. The FILE points to a BPF ELF file (f.e. generated by LLVM) that contains the BPF program code, map specifications, etc. If a XDP/BPF program is already attached to the given device, an error will be thrown. If no XDP/BPF program is currently attached, the device supports XDP and the program from the BPF ELF file passes the kernel verifier, then it will be attached to the device. If the option -force is passed to ip then any prior attached XDP/BPF program will be atomically overridden and no error will be thrown in this case. If no section option is passed, then the default section name ("prog") will be assumed, otherwise the provided section name will be used. If no verbose option is passed, then a verifier log will only be dumped on load error.  See also EXAMPLES section for usage examples.
section NAME - Specifies a section name that contains the BPF program code. If no section name is specified, the default one ("prog") will be used. This option is to be passed with the object option.
verbose - Act in verbose mode. For example, even in case of success, this will print the verifier log in case a program was loaded from a BPF ELF file.
pinned FILE - Attaches a XDP/BPF program to the given device. The FILE points to an already pinned BPF program in the BPF file system. The option section doesn't apply here, but otherwise semantics are the same as with the option object described already.
master DEVICE set master device of the device (enslave device).
nomaster unset master device of the device (release device).
addrgenmode eui64|none|stable_secret|random set the IPv6 address generation mode
eui64 - use a Modified EUI-64 format interface identifier
none - disable automatic address generation
stable_secret - generate the interface identifier based on a preset /proc/sys/net/ipv6/conf/{default,DEVICE}/stable_secret
random - like stable_secret, but auto-generate a new random secret if none is set
link-netnsid set peer netnsid for a cross-netns interface
type ETYPE TYPE_ARGS Change type-specific settings. For a list of supported types and arguments refer to the description of ip link add above. In addition to that, it is possible to manipulate settings to slave devices:
Bridge Slave Support For a link with master bridge the following additional arguments are supported:
ip link set type bridge_slave [ fdb_flush ] [ state STATE ] [ priority PRIO ] [ cost COST ] [ guard { on | off } ] [ hairpin { on | off } ] [ fastleave { on | off } ] [ root_block { on | off } ] [ learning { on | off } ] [ flood { on | off } ] [ proxy_arp { on | off } ] [ proxy_arp_wifi { on | off } ] [ mcast_router MULTICAST_ROUTER ] [ mcast_fast_leave { on | off} ] [ mcast_flood { on | off } ] [ mcast_to_unicast { on | off } ] [ group_fwd_mask MASK ] [ neigh_suppress { on | off } ] [ vlan_tunnel { on | off } ] [ isolated { on | off } ] [ backup_port DEVICE ] [ nobackup_port ]
fdb_flush - flush bridge slave's fdb dynamic entries.
state STATE - Set port state.  STATE is a number representing the following states: 0 (disabled), 1 (listening), 2 (learning), 3 (forwarding), 4 (blocking).
priority PRIO - set port priority (allowed values are between 0 and 63, inclusively).
cost COST - set port cost (allowed values are between 1 and 65535, inclusively).
guard { on | off } - block incoming BPDU packets on this port.
hairpin { on | off } - enable hairpin mode on this port. This will allow incoming packets on this port to be reflected back.
fastleave { on | off } - enable multicast fast leave on this port.
root_block { on | off } - block this port from becoming the bridge's root port.
learning { on | off } - allow MAC address learning on this port.
flood { on | off } - open the flood gates on this port, i.e. forward all unicast frames to this port also. Requires proxy_arp and proxy_arp_wifi to be turned off.
proxy_arp { on | off } - enable proxy ARP on this port.
proxy_arp_wifi { on | off } - enable proxy ARP on this port which meets extended requirements by IEEE 802.11 and Hotspot 2.0 specifications.
mcast_router MULTICAST_ROUTER - configure this port for having multicast routers attached. A port with a multicast router will receive all multicast traffic. MULTICAST_ROUTER may be either 0 to disable multicast routers on this port, 1 to let the system detect the presence of routers (this is the default), 2 to permanently enable multicast traffic forwarding on this port or 3 to enable multicast routers temporarily on this port, not depending on incoming queries.
mcast_fast_leave { on | off } - this is a synonym to the fastleave option above.
mcast_flood { on | off } - controls whether a given port will flood multicast traffic for which there is no MDB entry.
mcast_to_unicast { on | off } - controls whether a given port will replicate packets using unicast instead of multicast. By default this flag is off.
group_fwd_mask MASK - set the group forward mask. This is the bitmask that is applied to decide whether to forward incoming frames destined to link-local addresses, ie addresses of the form 01:80:C2:00:00:0X (defaults to 0, ie the bridge does not forward any link-local frames coming on this port).
neigh_suppress { on | off } - controls whether neigh discovery (arp and nd) proxy and suppression is enabled on the port. By default this flag is off.
vlan_tunnel { on | off } - controls whether vlan to tunnel mapping is enabled on the port. By default this flag is off.
backup_port DEVICE - if the port loses carrier all traffic will be redirected to the configured backup port
nobackup_port - removes the currently configured backup port
Bonding Slave Support For a link with master bond the following additional arguments are supported:
ip link set type bond_slave [ queue_id ID ]
queue_id ID - set the slave's queue ID (a 16bit unsigned value).
MACVLAN and MACVTAP Support Modify list of allowed macaddr for link in source mode.
ip link set type { macvlan | macvap } [ macaddr COMMAND MACADDR ...  ]
Commands: add - add MACADDR to allowed list
set - replace allowed list
del - remove MACADDR from allowed list
flush - flush whole allowed list
Update the broadcast/multicast queue length.
ip link set type { macvlan | macvap } [ bcqueuelen  LENGTH ]
bcqueuelen LENGTH - Set the length of the RX queue used to process broadcast and multicast packets.  LENGTH must be a positive integer in the range [0-4294967295].  Setting a length of 0 will effectively drop all broadcast/multicast traffic.  If not specified the macvlan driver default (1000) is used.  Note that all macvlans that share the same underlying device are using the same queue. The parameter here is a request, the actual queue length used will be the maximum length that any macvlan interface has requested.  When listing device parameters both the bcqueuelen parameter as well as the actual used bcqueuelen are listed to better help the user understand the setting.
ip link show - display device attributes dev NAME (default) NAME specifies the network device to show.
group GROUP GROUP specifies what group of devices to show.
up     only display running interfaces.
master DEVICE DEVICE specifies the master device which enslaves devices to show.
vrf NAME NAME specifies the VRF which enslaves devices to show.
type TYPE TYPE specifies the type of devices to show.
Note that the type name is not checked against the list of supported types - instead it is sent as-is to the kernel. Later it is used to filter the returned interface list by comparing it with the relevant attribute in case the kernel didn't filter already. Therefore any string is accepted, but may lead to empty output.
ip link xstats - display extended statistics type TYPE TYPE specifies the type of devices to display extended statistics for.
ip link afstats - display address-family specific statistics dev DEVICE DEVICE specifies the device to display address-family statistics for.
ip link help - display help TYPE specifies which help of link type to display.
GROUP may be a number or a string from the file /etc/iproute2/group which can be manually filled.
ip link show Shows the state of all network interfaces on the system.
ip link show type bridge Shows the bridge devices.
ip link show type vlan Shows the vlan devices.
ip link show master br0 Shows devices enslaved by br0
ip link set dev ppp0 mtu 1400 Change the MTU the ppp0 device.
ip link add link eth0 name eth0.10 type vlan id 10 Creates a new vlan device eth0.10 on device eth0.
ip link delete dev eth0.10 Removes vlan device.
ip link help gre Display help for the gre link type.
ip link add name tun1 type ipip remote 192.168.1.1 local 192.168.1.2 ttl 225 encap gue encap-sport auto encap-dport 5555 encap-csum encap-remcsum Creates an IPIP that is encapsulated with Generic UDP Encapsulation, and the outer UDP checksum and remote checksum offload are enabled.
ip link set dev eth0 xdp obj prog.o Attaches a XDP/BPF program to device eth0, where the program is located in prog.o, section "prog" (default section). In case a XDP/BPF program is already attached, throw an error.
ip -force link set dev eth0 xdp obj prog.o sec foo Attaches a XDP/BPF program to device eth0, where the program is located in prog.o, section "foo". In case a XDP/BPF program is already attached, it will be overridden by the new one.
ip -force link set dev eth0 xdp pinned /sys/fs/bpf/foo Attaches a XDP/BPF program to device eth0, where the program was previously pinned as an object node into BPF file system under name foo.
ip link set dev eth0 xdp off If a XDP/BPF program is attached on device eth0, detach it and effectively turn off XDP for device eth0.
ip link add link wpan0 lowpan0 type lowpan Creates a 6LoWPAN interface named lowpan0 on the underlying IEEE 802.15.4 device wpan0.
ip link add dev ip6erspan11 type ip6erspan seq key 102 local fc00:100::2 remote fc00:100::1 erspan_ver 2 erspan_dir ingress erspan_hwid 17 Creates a IP6ERSPAN version 2 interface named ip6erspan00.
ip(8), ip-netns(8), ethtool(8), iptables(8)
Original Manpage by Michail Litvak <mci@owl.openwall.com>
dcfldd(1)       enhanced version of dd for forensics and security      dcfldd(1)
dcfldd [OPTION]...
Copy a file, converting and formatting according to the options.
dcfldd was initially developed at Department of Defense Computer Forensics Lab (DCFL). This tool is based on the dd program with the following additional features:
•  Hashing on-the-fly: dcfldd can hash the input data as it is being transferred, helping to ensure data integrity.
•  Status output: dcfldd can update the user of its progress in terms of the amount of data transferred and how much longer operation will take.
•  Flexible disk wipes: dcfldd can be used to wipe disks quickly and with a known pattern if desired.
•  Image/wipe verify: dcfldd can verify that a target drive is a bit-for- bit match of the specified input file or pattern.
•  Multiple outputs: dcfldd can output to multiple files or disks at the same time.
•  Split output: dcfldd can split output to multiple files with more configurability than the split command.
•  Piped output and logs: dcfldd can send all its log data and output to commands as well as files natively.
•  When dd uses a default block size (bs, ibs, obs) of 512 bytes, dcfldd uses 32768 bytes (32 KiB) which is HUGELY more efficient.
•  The following options are present in dcfldd but not in dd: ALGORITHMlog:, errlog, hash, hashconv, hashformat, hashlog, hashlog:, hashwindow, limit, of:, pattern, sizeprobe, split, splitformat, statusinterval, textpattern, totalhashformat, verifylog, verifylog:, vf.
dcfldd supports the following letters to specify amount of data: k for kilo, M for Mega, G for Giga, T for Tera, P for Peta, E for Exa, Z for Zetta and Y for Yotta. E.g. 10M is equal to 10 MiB. See the BLOCKS AND BYTES section to get other possibilities.
bs=BYTES Force ibs=BYTES and obs=BYTES. Default value is 32768 (32KiB). See BLOCKS AND BYTES section. Warning: the block size will be created in RAM. Make sure you have sufficient amount of free memory.
cbs=BYTES Convert BYTES bytes at a time. (see BLOCKS AND BYTES section)
conv=KEYWORDS Convert the file as per the comma separated keyword list.
count=BLOCKS Copy only BLOCKS input blocks. (see BLOCKS AND BYTES section)
limit=BYTES Similar to count but using BYTES instead of BLOCKS. (see BLOCKS AND BYTES section)
ibs=BYTES Read BYTES bytes at a time. (see BLOCKS AND BYTES section)
if=FILE Read from FILE instead of stdin. (see BLOCKS AND BYTES section)
obs=BYTES Write BYTES bytes at a time. (see BLOCKS AND BYTES section)
of=FILE Write to FILE instead of stdout. NOTE: of=FILE may be used several times to write output to multiple files simultaneously.
of:=COMMAND Exec and write output to process COMMAND.
seek=BLOCKS Skip BLOCKS obs-sized blocks at start of output. (see BLOCKS AND BYTES section)
skip=BLOCKS Skip BLOCKS ibs-sized blocks at start of input. (see BLOCKS AND BYTES section)
pattern=HEX Use the specified binary pattern as input. You can use a byte only.
textpattern=TEXT Use repeating TEXT as input. You can use a character only.
errlog=FILE Send error messages to FILE as well as stderr.
hash=NAME Do hash calculation in parallel with the disk reading. Either md5, sha1, sha256, sha384 or sha512 can be used. Default algorithm is md5. To select multiple algorithms to run simultaneously enter the names in a comma separated list.
hashlog=FILE Send hash output to FILE instead of stderr. If you are using multiple hash algorithms you can send each to a separate file using the convention ALGORITHMlog=FILE, for example md5log=FILE1, sha1log=FILE2, etc.
hashwindow=BYTES Perform a hash on every BYTES amount of data. The partial results will be shown in screen. The default hash is md5 but you can use hash= option to choose other.
hashlog:=COMMAND Exec and write hashlog to process COMMAND.
ALGORITHMlog:=COMMAND Also works in the same fashion of hashlog:=COMMAND.
hashconv=[before|after] Perform the hashing before or after the conversions.
hashformat=FORMAT Display each hashwindow according to FORMAT the hash format mini- language is described below.
totalhashformat=FORMAT Display the total hash value according to FORMAT the hash format mini-language is described below.
status=[on|off] Display a continual status message on stderr. Default state is "on".
statusinterval=N Update the status message every N blocks. Default value is 256.
sizeprobe=[if|of|BYTES] Determine the size of the input or output file or an amount of BYTES for use with status messages. This option gives you a percentage indicator around the sizeprobe value. WARNING: do not use this option against a tape device. (see BLOCKS AND BYTES section)
split=BYTES Write every BYTES amount of data to a new file. This operation applies to any of=FILE that follows (split= must be put before of=). (see BLOCKS AND BYTES section)
splitformat=[TEXT|MAC|WIN] The file extension format for split operation. You may use "a" for letters and "n" for numbers. If you use annn, an extension started as a000 will be appended; the last possible extension for this format will be z999.  splitformat=an will provide a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, b0, b1, b2, b3... If nothing is specified the default format is "nnn". NOTE: the split and splitformat options take effect only for output files (option of=) specified AFTER these options appear in the command line (e.g. split=50M splitformat=annn of=/tmp/test.iso).  Likewise, you may specify it several times for different output files within the same command line. You may use as many digits in any combination you would like. E.g. "anaannnaana" would be valid, but a quite insane (see BLOCKS AND BYTES section).  Other possible approach is MAC. If "MAC" is used, a suffix dmg and several dmgpart will be appended. In other words, it will generate a partial disk image file, used by the Mac OS X operating system. dmgpart files are usually provided with a corresponding dmg file, which is the master file for the split archive.  If dmg is opened in Mac OS X, all dmgpart will be read too. The last option is WIN, which will automatically output file naming of foo.001, foo.002, ..., foo.999, foo.1000, ....
vf=FILE Verify that FILE matches the specified input.
verifylog=FILE Send verify results to FILE instead of stderr.
verifylog:=COMMAND Exec and write verify results to process COMMAND.
--help Display a help page and exit.
--version Output version information and exit.
BLOCKS and BYTES may be followed by the following multiplicative suffixes: xM M, c 1, w 2, b 512, kD 1000, k 1024, MD 1,000,000, M 1,048,576, GD 1,000,000,000, G 1,073,741,824, and so on for T, P, E, Z, Y.
Each KEYWORD may be:
ascii  From EBCDIC to ASCII.
ebcdic From ASCII to EBCDIC.
ibm    From ASCII to alternated EBCDIC.
block  Pad newline-terminated records with spaces to cbs-size.
unblock Replace trailing spaces in cbs-size records with newline.
lcase  Change upper case to lower case.
notrunc Do not truncate the output file.
ucase  Change lower case to upper case.
swab   Swap every pair of input bytes.
noerror Continue after read errors.
sync   Pad every input block with NULs to ibs-size. When used with block or unblock, pad with spaces rather than NULs.
The structure of FORMAT may contain any valid text and special variables. The built-in variables are the following format: #variable_name#. To pass FORMAT strings to the program from a command line, it may be
necessary to surround your FORMAT strings with "quotes." The built-in variables are listed below:
window_start The beginning byte offset of the hashwindow.
window_end The ending byte offset of the hashwindow.
block_start The beginning block (by input blocksize) of the window.
block_end The ending block (by input blocksize) of the hash window.
hash   The hash value.
algorithm The name of the hash algorithm.
For example, the default FORMAT for hashformat and totalhashformat are:
hashformat="#window_start# - #window_end#: #hash#" totalhashformat="Total (#algorithm#): #hash#"
The FORMAT structure accepts the following escape codes:
\n     Newline
\t     Tab
\r     Carriage return
\      Insert the '\' character
##     Insert the '#' character as text, not a variable
Each following line will create a 100 MiB file containing zeros:
$ dcfldd if=/dev/zero of=test bs=1M count=100 $ dcfldd if=/dev/zero of=test bs=100M count=1 $ dcfldd if=/dev/zero of=test bs=50M count=2 $ dcfldd if=/dev/zero of=test limit=100M
To create a copy (forensics image) from a disk called /dev/sdb inside a file, using input/output blocks of 4096 bytes (4 KiB) instead of 32 KiB (default):
$ dcfldd if=/dev/sdb bs=4096 of=sdb.img
As the last example, plus calculating MD5 and SHA256 hashes, putting the results inside sdb.md5 and sdb.sha256. It is very useful for forensics works because the hashes will be processed in real time, avoiding a waste of time to make something as 'dd + md5 + sha256'. Considering that I/O disk is very slow and RAM is very fast, the hashes will be calculated, bit per bit in memory, when the next portion of the disk is read. When all disk was read, all hashes are now ready.
$ dcfldd if=/dev/sdb bs=4096 hash=md5,sha256 md5log=sdb.md5 sha256log=sdb.sha256 of=sdb.img
To validate the image file against the original source:
$ dcfldd if=/dev/sdb vf=sdb.img
Splitting the image in 500 MiB slices, using the default bs value (32 KiB). Note that split= must be put before of= to work:
$ dcfldd if=/dev/sdb split=500M of=sdb.img
At the last example, using from a0000 up to z9999 as suffix for each split file:
$ dcfldd if=/dev/sdb split=500M splitformat=annnn of=sdb.img
Now, dcfldd will work byte per byte (bs=1) and will hop 1056087439 bytes. After this, dcfldd will collect 200000 bytes and write the results to a file called airplane.jpg.
$ dcfldd if=/dev/sda3 bs=1 skip=1056087439 count=200000 of=airplane.jpg
In the last example, the same result could be obtained using "limit" instead of "count". The main difference is that count uses 200000*bs and limit uses 200000 bytes (regardless of the value declared in bs option):
$ dcfldd if=/dev/sda3 bs=1 skip=1056087439 limit=200000 of=airplane.jpg
To write something inside a file, you can use seek. Suppose you want to write a message from a file called message.txt inside a file called target.iso, hopping 200000 bytes from start of file:
$ dcfldd if=message.txt bs=1 seek=200000 of=target.iso
dcfldd also can send a result to be processed by an external command:
$ dcfldd if=text.txt  of:="cat | sort -u"
To convert a file from ASCII to EBCDIC:
$ dcfldd if=text.asc conv=ebcdic of=text.ebcdic
To convert a file from EBCDIC to ASCII:
$ dcfldd if=text.ebcdic conv=ascii of=text.asc
dd(1)
Report bugs at https://github.com/resurrecting-open-source- projects/dcfldd/issues
dcfldd was originally written by Nicholas Harbour. Currently is maintained by some volunteers.
GNU dd was written by Paul Rubin, David MacKenzie and Stuart Kemp.
This manpage was written by dd authors, Nicholas Harbour, Joao Eriberto Mota Filho and others.
XBACKLIGHT(1)                General Commands Manual               XBACKLIGHT(1)
xbacklight - adjust display and keyboard backlight using the /sys filesystem
xbacklight [-h|-help] [-ctrl CTRL] [-display IGNORED] [-perceived] [-time MILLISECS] [-steps STEPS | -fps FPS] ...
xbacklight [flags] -list xbacklight [flags] -get | -getf | -get-steps xbacklight [flags] -set PERCENT | -inc PERCENT | -dec PERCENT xbacklight [flags] [=]PERCENT | +PERCENT | -PERCENT
xbacklight can query or set the brightness of display and keyboard backlight.  xbacklight operates on the first device found in /sys/class/backlight, unless told otherwise. Use -list to see the full list of available devices that can be used; then use the -ctrl flag to control them individually.
-list  Print the list of controllable devices.
-get   Print out the backlight brightness as a percentage.
-getf  Same as -get, but without rounding.
-get-steps Return the number of available brightness steps.
The brightness can be set with either command flags or positional arguments.  When changing brightness level, both integer and fractional values (as reported by -get and -getf respectively) are accepted.
Regular set flags:
-set PERCENT Sets the backlight brightness to the specified percentage level.
-inc PERCENT Increases brightness by the specified amount.
-dec PERCENT Decreases brightness by the specified amount.
Set operations using positional arguments:
xbacklight PERCENT xbacklight =PERCENT Set brightness (same as -set PERCENT).
xbacklight +PERCENT Increase brightness (same as -inc PERCENT).
xbacklight -PERCENT Decrease brightness (same as -dec PERCENT).
-h, -help Print out a summary of the usage and exit.
-time MILLISECONDS Length of time to spend fading the backlight between old and new value.  Default is 200. Specifying either the number of fading steps (with -steps) or fading frame rate (with -fps) is required to actually perform fading.
-steps STEPS Number of fading steps.
-fps FPS Target frame rate (frames/steps per second).
-display IGNORED Ignored for backward compatibility.
-ctrl CONTROLLER Set the device name to operate on.
-perceived Adjust the display according to the perceived brighness instead of operating on the raw value directly.
xbacklight doesn't lock the backlight device during fading. Running two concurrent fading operations will result in backlight flickering.
The backlight of most panels cannot be changed at a rate higher than 20-30hz.  Setting a high FPS value will not improve the transition smoothness beyond a certain point.
Most keyboard's backlights have a very coarse resolution, with usually only 4 brightness steps available. Use -get-steps to determine the available resolution. Supplying small relative increments will not effectively change the backlight illumination. Use large values (+30) or set absolute percentages directly (=70).
This version of xbacklight is part of "acpilight" and contains several enhancements not available in the original version:
The command-line flags -list, -ctrl, -getf, -get-steps, -perceived and -fps do not exist in the original xbacklight.
Fractional values are not allowed in the original xbacklight.
The = (equals) is required by the original version when specifying an absolute brightness value, but can be omitted in this version.
xbacklight is part of acpilight (https://gitlab.com/wavexx/acpilight) and is distributed under GPLv3+ WITHOUT ANY WARRANTY. Copyright(c) 2016-2018 by wave++ "Yuri D'Elia" <wavexx@thregr.org>.
GIT-REBASE(1)                      Git Manual                      GIT-REBASE(1)
git-rebase - Reapply commits on top of another base tip
git rebase [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase> | --keep-base] [<upstream> [<branch>]] git rebase [-i | --interactive] [<options>] [--exec <cmd>] [--onto <newbase>] --root [<branch>] git rebase (--continue | --skip | --abort | --quit | --edit-todo | --show-current-patch)
If <branch> is specified, git rebase will perform an automatic git switch <branch> before doing anything else. Otherwise it remains on the current branch.
If <upstream> is not specified, the upstream configured in branch.<name>.remote and branch.<name>.merge options will be used (see git-config(1) for details) and the --fork-point option is assumed. If you are currently not on any branch or if the current branch does not have a configured upstream, the rebase will abort.
All changes made by commits in the current branch but that are not in <upstream> are saved to a temporary area. This is the same set of commits that would be shown by git log <upstream>..HEAD; or by git log 'fork_point'..HEAD, if --fork-point is active (see the description on --fork-point below); or by git log HEAD, if the --root option is specified.
The current branch is reset to <upstream>, or <newbase> if the --onto option was supplied. This has the exact same effect as git reset --hard <upstream> (or <newbase>). ORIG_HEAD is set to point at the tip of the branch before the reset.
The commits that were previously saved into the temporary area are then reapplied to the current branch, one by one, in order. Note that any commits in HEAD which introduce the same textual changes as a commit in HEAD..<upstream> are omitted (i.e., a patch already accepted upstream with a different commit message or timestamp will be skipped).
It is possible that a merge failure will prevent this process from being completely automatic. You will have to resolve any such merge failure and run git rebase --continue. Another option is to bypass the commit that caused the merge failure with git rebase --skip. To check out the original <branch> and remove the .git/rebase-apply working files, use the command git rebase --abort instead.
Assume the following history exists and the current branch is "topic":
A---B---C topic / D---E---F---G master
From this point, the result of either of the following commands:
git rebase master git rebase master topic
would be:
A'--B'--C' topic / D---E---F---G master
NOTE: The latter form is just a short-hand of git checkout topic followed by git rebase master. When rebase exits topic will remain the checked-out branch.
If the upstream branch already contains a change you have made (e.g., because you mailed a patch which was applied upstream), then that commit will be skipped and warnings will be issued (if the merge backend is used). For example, running git rebase master on the following history (in which A' and A introduce the same set of changes, but have different committer information):
A---B---C topic / D---E---A'---F master
will result in:
B'---C' topic / D---E---A'---F master
Here is how you would transplant a topic branch based on one branch to another, to pretend that you forked the topic branch from the latter branch, using rebase --onto.
First let’s assume your topic is based on branch next. For example, a feature developed in topic depends on some functionality which is found in next.
o---o---o---o---o  master \ o---o---o---o---o  next \ o---o---o  topic
We want to make topic forked from branch master; for example, because the functionality on which topic depends was merged into the more stable master branch. We want our tree to look like this:
o---o---o---o---o  master |            \ |             o'--o'--o'  topic \ o---o---o---o---o  next
We can get this using the following command:
git rebase --onto master next topic
Another example of --onto option is to rebase part of a branch. If we have the following situation:
H---I---J topicB / E---F---G  topicA / A---B---C---D  master
then the command
git rebase --onto master topicA topicB
would result in:
H'--I'--J'  topicB / | E---F---G  topicA |/ A---B---C---D  master
This is useful when topicB does not depend on topicA.
A range of commits could also be removed with rebase. If we have the following situation:
E---F---G---H---I---J  topicA
git rebase --onto topicA~5 topicA~3 topicA
would result in the removal of commits F and G:
E---H'---I'---J'  topicA
This is useful if F and G were flawed in some way, or should not be part of topicA. Note that the argument to --onto and the <upstream> parameter can be any valid commit-ish.
In case of conflict, git rebase will stop at the first problematic commit and leave conflict markers in the tree. You can use git diff to locate the markers (<<<<<<) and make edits to resolve the conflict. For each file you edit, you need to tell Git that the conflict has been resolved, typically this would be done with
git add <filename>
After resolving the conflict manually and updating the index with the desired resolution, you can continue the rebasing process with
Alternatively, you can undo the git rebase with
--onto <newbase> Starting point at which to create the new commits. If the --onto option is not specified, the starting point is <upstream>. May be any valid commit, and not just an existing branch name.
As a special case, you may use "A...B" as a shortcut for the merge base of A and B if there is exactly one merge base. You can leave out at most one of A and B, in which case it defaults to HEAD.
--keep-base Set the starting point at which to create the new commits to the merge base of <upstream> <branch>. Running git rebase --keep-base <upstream> <branch> is equivalent to running git rebase --onto <upstream>... <upstream>.
This option is useful in the case where one is developing a feature on top of an upstream branch. While the feature is being worked on, the upstream branch may advance and it may not be the best idea to keep rebasing on top of the upstream but to keep the base commit as-is.
Although both this option and --fork-point find the merge base between <upstream> and <branch>, this option uses the merge base as the starting point on which new commits will be created, whereas --fork-point uses the merge base to determine the set of commits which will be rebased.
See also INCOMPATIBLE OPTIONS below.
<upstream> Upstream branch to compare against. May be any valid commit, not just an existing branch name. Defaults to the configured upstream for the current branch.
<branch> Working branch; defaults to HEAD.
--continue Restart the rebasing process after having resolved a merge conflict.
--abort Abort the rebase operation and reset HEAD to the original branch. If <branch> was provided when the rebase operation was started, then HEAD will be reset to <branch>. Otherwise HEAD will be reset to where it was when the rebase operation was started.
--quit Abort the rebase operation but HEAD is not reset back to the original branch. The index and working tree are also left unchanged as a result. If a temporary stash entry was created using --autostash, it will be saved to the stash list.
--apply Use applying strategies to rebase (calling git-am internally). This option may become a no-op in the future once the merge backend handles everything the apply one does.
--empty={drop,keep,ask} How to handle commits that are not empty to start and are not clean cherry-picks of any upstream commit, but which become empty after rebasing (because they contain a subset of already upstream changes). With drop (the default), commits that become empty are dropped. With keep, such commits are kept. With ask (implied by --interactive), the rebase will halt when an empty commit is applied allowing you to choose whether to drop it, edit files more, or just commit the empty changes. Other options, like --exec, will use the default of drop unless -i/--interactive is explicitly specified.
Note that commits which start empty are kept (unless --no-keep-empty is specified), and commits which are clean cherry-picks (as determined by git log --cherry-mark ...) are detected and dropped as a preliminary step (unless --reapply-cherry-picks is passed).
--no-keep-empty, --keep-empty Do not keep commits that start empty before the rebase (i.e. that do not change anything from its parent) in the result. The default is to keep commits which start empty, since creating such commits requires passing the --allow-empty override flag to git commit, signifying that a user is very intentionally creating such a commit and thus wants to keep it.
Usage of this flag will probably be rare, since you can get rid of commits that start empty by just firing up an interactive rebase and removing the lines corresponding to the commits you don’t want. This flag exists as a convenient shortcut, such as for cases where external tools generate many empty commits and you want them all removed.
For commits which do not start empty but become empty after rebasing, see the --empty flag.
--reapply-cherry-picks, --no-reapply-cherry-picks Reapply all clean cherry-picks of any upstream commit instead of preemptively dropping them. (If these commits then become empty after rebasing, because they contain a subset of already upstream changes, the behavior towards them is controlled by the --empty flag.)
By default (or if --no-reapply-cherry-picks is given), these commits will be automatically dropped. Because this necessitates reading all upstream commits, this can be expensive in repos with a large number of upstream commits that need to be read. When using the merge backend, warnings will be issued for each dropped commit (unless --quiet is given). Advice will also be issued unless advice.skippedCherryPicks is set to false (see git-config(1)).
--reapply-cherry-picks allows rebase to forgo reading all upstream commits, potentially improving performance.
--allow-empty-message No-op. Rebasing commits with an empty message used to fail and this option would override that behavior, allowing commits with empty messages to be rebased. Now commits with an empty message do not cause rebasing to halt.
--skip Restart the rebasing process by skipping the current patch.
--edit-todo Edit the todo list during an interactive rebase.
--show-current-patch Show the current patch in an interactive rebase or when rebase is stopped because of conflicts. This is the equivalent of git show REBASE_HEAD.
-m, --merge Using merging strategies to rebase (default).
Note that a rebase merge works by replaying each commit from the working branch on top of the <upstream> branch. Because of this, when a merge conflict happens, the side reported as ours is the so-far rebased series, starting with <upstream>, and theirs is the working branch. In other words, the sides are swapped.
-s <strategy>, --strategy=<strategy> Use the given merge strategy, instead of the default ort. This implies --merge.
Because git rebase replays each commit from the working branch on top of the <upstream> branch using the given strategy, using the ours strategy simply empties all patches from the <branch>, which makes little sense.
-X <strategy-option>, --strategy-option=<strategy-option> Pass the <strategy-option> through to the merge strategy. This implies --merge and, if no strategy has been specified, -s ort. Note the reversal of ours and theirs as noted above for the -m option.
--rerere-autoupdate, --no-rerere-autoupdate Allow the rerere mechanism to update the index with the result of auto-conflict resolution if possible.
-S[<keyid>], --gpg-sign[=<keyid>], --no-gpg-sign GPG-sign commits. The keyid argument is optional and defaults to the committer identity; if specified, it must be stuck to the option without a space.  --no-gpg-sign is useful to countermand both commit.gpgSign configuration variable, and earlier --gpg-sign.
-q, --quiet Be quiet. Implies --no-stat.
-v, --verbose Be verbose. Implies --stat.
--stat Show a diffstat of what changed upstream since the last rebase. The diffstat is also controlled by the configuration option rebase.stat.
-n, --no-stat Do not show a diffstat as part of the rebase process.
--no-verify This option bypasses the pre-rebase hook. See also githooks(5).
--verify Allows the pre-rebase hook to run, which is the default. This option can be used to override --no-verify. See also githooks(5).
-C<n> Ensure at least <n> lines of surrounding context match before and after each change. When fewer lines of surrounding context exist they all must match. By default no context is ever ignored. Implies --apply.
--no-ff, --force-rebase, -f Individually replay all rebased commits instead of fast-forwarding over the unchanged ones. This ensures that the entire history of the rebased branch is composed of new commits.
You may find this helpful after reverting a topic branch merge, as this option recreates the topic branch with fresh commits so it can be remerged successfully without needing to "revert the reversion" (see the revert-a-faulty-merge How-To[1] for details).
--fork-point, --no-fork-point Use reflog to find a better common ancestor between <upstream> and <branch> when calculating which commits have been introduced by <branch>.
When --fork-point is active, fork_point will be used instead of <upstream> to calculate the set of commits to rebase, where fork_point is the result of git merge-base --fork-point <upstream> <branch> command (see git-merge-base(1)). If fork_point ends up being empty, the <upstream> will be used as a fallback.
If <upstream> is given on the command line, then the default is --no-fork-point, otherwise the default is --fork-point. See also rebase.forkpoint in git-config(1).
If your branch was based on <upstream> but <upstream> was rewound and your branch contains commits which were dropped, this option can be used with --keep-base in order to drop those commits from your branch.
--ignore-whitespace Ignore whitespace differences when trying to reconcile differences. Currently, each backend implements an approximation of this behavior:
apply backend: When applying a patch, ignore changes in whitespace in context lines. Unfortunately, this means that if the "old" lines being replaced by the patch differ only in whitespace from the existing file, you will get a merge conflict instead of a successful patch application.
merge backend: Treat lines with only whitespace changes as unchanged when merging. Unfortunately, this means that any patch hunks that were intended to modify whitespace and nothing else will be dropped, even if the other side had no changes that conflicted.
--whitespace=<option> This flag is passed to the git apply program (see git-apply(1)) that applies the patch. Implies --apply.
--committer-date-is-author-date Instead of using the current time as the committer date, use the author date of the commit being rebased as the committer date. This option implies --force-rebase.
--ignore-date, --reset-author-date Instead of using the author date of the original commit, use the current time as the author date of the rebased commit. This option implies --force-rebase.
--signoff Add a Signed-off-by trailer to all the rebased commits. Note that if --interactive is given then only commits marked to be picked, edited or reworded will have the trailer added.
-i, --interactive Make a list of the commits which are about to be rebased. Let the user edit that list before rebasing. This mode can also be used to split commits (see SPLITTING COMMITS below).
The commit list format can be changed by setting the configuration option rebase.instructionFormat. A customized instruction format will automatically have the long commit hash prepended to the format.
-r, --rebase-merges[=(rebase-cousins|no-rebase-cousins)] By default, a rebase will simply drop merge commits from the todo list, and put the rebased commits into a single, linear branch. With --rebase-merges, the rebase will instead try to preserve the branching structure within the commits that are to be rebased, by recreating the merge commits. Any resolved merge conflicts or manual amendments in these merge commits will have to be resolved/re-applied manually.
By default, or when no-rebase-cousins was specified, commits which do not have <upstream> as direct ancestor will keep their original branch point, i.e. commits that would be excluded by git-log(1)'s --ancestry-path option will keep their original ancestry by default. If the rebase-cousins mode is turned on, such commits are instead rebased onto <upstream> (or <onto>, if specified).
It is currently only possible to recreate the merge commits using the ort merge strategy; different merge strategies can be used only via explicit exec git merge -s <strategy> [...]  commands.
See also REBASING MERGES and INCOMPATIBLE OPTIONS below.
-x <cmd>, --exec <cmd> Append "exec <cmd>" after each line creating a commit in the final history. <cmd> will be interpreted as one or more shell commands. Any command that fails will interrupt the rebase, with exit code 1.
You may execute several commands by either using one instance of --exec with several commands:
git rebase -i --exec "cmd1 && cmd2 && ..."
or by giving more than one --exec:
git rebase -i --exec "cmd1" --exec "cmd2" --exec ...
If --autosquash is used, "exec" lines will not be appended for the intermediate commits, and will only appear at the end of each squash/fixup series.
This uses the --interactive machinery internally, but it can be run without an explicit --interactive.
--root Rebase all commits reachable from <branch>, instead of limiting them with an <upstream>. This allows you to rebase the root commit(s) on a branch. When used with --onto, it will skip changes already contained in <newbase> (instead of <upstream>) whereas without --onto it will operate on every change.