2opml - Convert list of URLs to OPML. |
2opml - Convert list of URLs to OPML.
2opml [--add-attributes <ATTRIBUTES>] < urls.txt
Convert text file, containing "<TITLE> <URL>" looking lines, to OPML.
adr2html - Convert Opera Hostlist 2.0 bookmarks to HTML |
adr2html - Convert Opera Hostlist 2.0 bookmarks to HTML
asterisk-log-separator - Split up Asterisk PBX log file into multiple files based on which process wrote each part |
asterisk-log-separator - Split up Asterisk PBX log file into multiple files based on which process wrote each part
awk-cut - Select fields from input stream with awk |
awk-cut - Select fields from input stream with awk
awk-cut [COLUMNS-SPEC]
Where COLUMNS-SPEC is a variation of these:
cut.awk(1)
base58 - Encode to Base58 |
base58 - Encode to (decode from) Base58
base64url - Encode to Base64-URL encoding |
base64url - Encode to (decode from) Base64-URL encoding
bencode2json - Convert Bencode to JSON |
bencode2json - Convert Bencode (BitTorrent's loosely structured data) to JSON
cdexec - Run a given command in the given directory |
cdexec - Run a given command in the given directory
cdexec [--home | <DIRECTORY>] [--] <COMMAND> [<ARGS>]
Run a given command in the given directory. Set the target directory to the command's self directory if not given.
chattr-cow - try hard to enable Copy-on-Write attribute on files |
chattr-cow - try hard to enable Copy-on-Write attribute on files
chattr-nocow - try hard to disable Copy-on-Write attribute on files
chattr-cow - try hard to enable Copy-on-Write attribute on files |
chattr-cow - try hard to enable Copy-on-Write attribute on files
chattr-nocow - try hard to disable Copy-on-Write attribute on files
chromium_cookie_decrypt.py - Decrypt Chromium web browser stored cookies and output cleartext |
chromium_cookie_decrypt.py - Decrypt Chromium web browser stored cookies and output cleartext
chshebang - Change a script's default interpreter |
chshebang - Change a script's default interpreter
convert_chromium_cookies_to_netscape.sh - Convert Chromium and derivative web browser's cookies to Netscape format |
convert_chromium_cookies_to_netscape.sh - Convert Chromium and derivative web browser's cookies to Netscape format (used by wget and curl)
corner_time - Place a digital clock in the upper right hand corner of the terminal |
corner_time - Place a digital clock in the upper right hand corner of the terminal
cut.awk - Output only the selected fields from the input stream, parameters follow awk syntax |
cut.awk - Output only the selected fields from the input stream, parameters follow awk(1)
syntax
awk-cut(1)
daemonctl - Manage preconfigured libslack daemon daemons more conveniently |
daemonctl - Manage preconfigured libslack daemon(1)
daemons more conveniently
Daemonctl presumes some facts about the system:
dataurl2bin - Decode "data:..." URLs from input stream and output the raw binary data |
dataurl2bin - Decode "data:..." URLs from input stream and output the raw binary data
debdiff - Display differences between 2 Debian packages |
debdiff - Display differences between 2 Debian packages (*.deb files)
descpids - List all descendant process PIDs of the given process |
descpids - List all descendant process PIDs of the given process(es)
dfbar - Display disk space usage with simple bar chart |
dfbar - Display disk space usage with simple bar chart (as reported by df(1))
digasn - Query Autonom System Number from DNS |
digasn - Query Autonom System Number (ASN) from DNS
diu - Display Inode usage, similar to du for space usage |
diu - Display Inode usage, similar to du(1)
for space usage
dlnew - Download web resource if local copy is older |
dlnew - Download web resource if local copy is older
dlnew [-C] <url> <file>
Download content from web if newer than local copy (based on Last-Modified and caching headers).
Bypass validating cache.
URL to be downloaded. Schema can be HTTP or HTTPS.
Local file data have to written in. If omitted, last component (basename) of url will be used.
Url ia found and downloaded.
General error, system errors.
Local file's freshness validated by saved cache metadata, not downloaded.
Download not OK. (usually Not Found)
Url found but not modified. (HTTP 304)
Url found but not updated, based on Last-Modified header.
eat - Read and echo back input |
eat - Read and echo back input (like cat(1)) until interrupted (ie. ignore end-of-file)
errorlevel - Exit with the given status code |
errorlevel - Exit with the given status code
fcomplete - Complete a smaller file with the data from a bigger one |
fcomplete - Complete a smaller file with the data from a bigger one
fc-search-codepoint - Print the names of available X11 fonts containing the given code point |
fc-search-codepoint - Print the names of available X11 fonts containing the given code point(s)
fdupes-hardlink - Make hardlinks from identical files as reported by fdupes |
fdupes-hardlink - Make hardlinks from identical files as reported by fdupes(1)
ff - Find files horizontally, ie. a whole directory level at a time, across subtrees |
ff - Find files horizontally, ie. a whole directory level at a time, across subtrees
ff <pattern> [path-1] [path-2] ... [path-n]
Search files which name matches to pattern in paths directories recursively, case-insensitively. The file's path is matched if pattern contains '/'. Searching is done horizontaly, ie. scan the upper-most directory level first completely, then dive into the next level and scan those directories before moving to the 3rd level deep, and so on. This way users usually find what they search for more quickly.
fgat - Execute command in foreground at a given time |
fgat - Execute command in foreground at a given time
fgat <time-spec> <command> [arguments]
In opposite of at(1)
, fgat(1)
stays in console's foreground and waits for time-spec, after that runs command.
time-spec can be any string accepted by date(1)
.
findnewestfile - Search for the newest file in a given path recursively and always show the most recent while scanning |
findnewestfile - Search for the newest file in a given path recursively and always show the most recent while scanning
findoldestfile - Search for the oldest file in a given path recursively and always show the most older while scanning
findnewestfile [path]
findoldestfile [path]
Search for the newest/oldest file in given directory and in its subdirectories showing files immediately when found one newer/older than the past ones.
findnewestfile - Search for the newest file in a given path recursively and always show the most recent while scanning |
findnewestfile - Search for the newest file in a given path recursively and always show the most recent while scanning
findoldestfile - Search for the oldest file in a given path recursively and always show the most older while scanning
findnewestfile [path]
findoldestfile [path]
Search for the newest/oldest file in given directory and in its subdirectories showing files immediately when found one newer/older than the past ones.
fixlogfiledatetime - Set the target files modification time to their respective last log entry's timestamp |
fixlogfiledatetime - Set the target files modification time to their respective last log entry's timestamp
fixRFC822filemtime - Set a file's last modification time, which contains an email message in RFC-822 format, to the email's Date |
fixRFC822filemtime - Set a file's last modification time, which contains an email message in RFC-822 format, to the email's Date
fmtkv - Tranform key=value pairs into 1 pair by 1 line on the output |
fmtkv - Tranform key=value (each optionally double-quoted) pairs into 1 pair by 1 line on the output
foreach - Run an OS or shell command on each input line, similar to xargs |
foreach - Run an OS or shell command on each input line, similar to xargs(1)
g_filename_to_uri - Mimic g_filename_to_uri GLib function creating a file:// url from path string |
g_filename_to_uri - Mimic g_filename_to_uri()
GLib function creating a file:// url from path string
gitdiff - View two files' diff by git-diff, even not under git version control |
gitdiff - View two files' diff by git-diff(1), even not under git version control
Head - output as many lines from the first part of files as many lines on the terminal currently |
Head - output as many lines from the first part of files as many lines on the terminal currently
header.sed - Echo the input stream up to the first empty line |
header.sed - Echo the input stream up to the first empty line (usual end-of-header marker)
indent2tree - Makes TAB-indented text into ascii tree chart |
indent2tree - Makes TAB-indented text into ascii tree chart
Input: lines with leading tabs representing the depth in the tree
Output: ascii tree chart with drawing chars
inisort - Sort keys in an INI file according to the order of keys in an other INI file |
inisort - Sort keys in an INI file according to the order of keys in an other INI file
inisort [<UNSORTED>] [<REFERENCE>] > [<SORTED>]
is_gzip - Return 0 if the file in argument has gzip signature |
is_gzip - Return 0 if the file in argument has gzip signature
jobsel
jobsel <joblist> [COLUMNS]
Improved job control frontend for bash. joblist is a jobs -l
output from which jobsel builds a menu.
COLUMNS is an optional parameter, if omitted jobsel calls tput(1)
to obtain number of columns on the terminal.
Left,Right Select item Enter Switch to job in forground U Hangup selected process SIGHUP I Interrupt process SIGINT S,T,Space Suspend, Resume job SIGCONT,SIGTSTP K Kill process SIGKILL D Process details X,C,L Expanded, collapsed, in-line display mode Q Dismiss menu
eval $(jobsel "$(jobs -l)" $COLUMNS)
alias j='eval $(jobsel "$(jobs -l)" $COLUMNS)'
bind -x '"\204"':"eval \$(jobsel \"\$(jobs -l)\" \$COLUMNS)" bind '"\ej"':"\"\204\"" # ESC-J
Where 204 is an arbitrary free keyscan code
json2bencode - Convert JSON to Bencode |
json2bencode - Convert JSON to Bencode (BitTorrent's loosely structured data)
kt - Run command in background terminal; keept convenience wrapper |
kt - Run command in background terminal; keept(1)
convenience wrapper
LevelDB - Commandline interface for Google's leveldb key-value storage |
LevelDB - Commandline interface for Google's leveldb key-value storage
lines - Output only the given lines of the input stream |
lines - Output only the given lines of the input stream
screens - List all GNU/Screen sessions accessible by the user and all of their inner windows as well |
screens - List all GNU/Screen sessions accessible by the user and all of their inner windows as well
lnto - ln convenience wrapper; you enter link target paths relative to the current directory |
lnto - ln(1)
convenience wrapper; you enter link target paths relative to the current directory
lsata - List ATA devices on the system |
lsata - List ATA devices on the system
lsenv - List environment variables of a process |
lsenv - List environment variables of a process
lsenv <pid>
mime_extract - Extract parts from a MIME multipart file and save them into separate files |
mime_extract - Extract parts from a MIME multipart file and save them into separate files
mkdeb - Create a Debian package |
mkdeb - Create a Debian package (.deb)
mkdeb [-m | --multiarch]
Create a *.deb file according to the package name and version info found in ./deb/DEBIAN/control file
and include all file in the package found in ./deb folder. Update some of control
file's fields, eg.
Version
(increase by 1 if there is any file in the package newer than control
file), Installed-Size
...
In multiarch mode, instead of ./deb folder, it takes data from all folders in the current working directory which name is a valid Debian architecture name (eg. amd64, i386, ...), and stores temporary files in ./deb for building each architecture's package.
Mkdeb also considers mkdeb-perms.txt
file in the current working directory to set
some file attributes in the package, otherwise all file attributes are gonna be the same as on the original.
Each line in this file looks like:
<MODE> <OWNER> <GROUP> <PATH>
Where
is an octal file permission mode, 3 or 4 digits, or "-" to ignore
UID or name of the owner user
GID or name of the owner group
the file's path itself to which the attributes are applied, relative to ./deb directory.
moz_bookmarks - Read Mozilla bookmarks database and display titles and URLs line-by-line |
moz_bookmarks - Read Mozilla bookmarks database and display titles and URLs line-by-line
msg - Write to given user's open terminals |
msg - Write to given user's open terminals
multithrottler - Run given command if not reached the defined rate limit |
multithrottler - Run given command if not reached the defined rate limit
mysql-fix-orphan-privileges.php - Suggest SQL commands to clean up unused records in system tables which hold permission data |
mysql-fix-orphan-privileges.php - Suggest SQL commands to clean up unused records in system tables which hold permission data
noacute - Strip diacritics from letters on the input stream |
noacute - Strip diacritics (acute, umlaut, ...) from letters on the input stream
nocomment - remove comment lines from input stream |
nocomment - remove comment lines from input stream
nocomment [grep-arguments]
This command does not overwrite nor write files, just prints them without comments. I.e. removing lines starting hashmark or semicolon.
grep(1)
organizebydate - Rename files based on their date-time |
organizebydate - Rename files based on their date-time
palemoon-current-url - Display the webpage's URL which is currently open in Palemoon web browser |
palemoon-current-url - Display the webpage's URL which is currently open in Palemoon web browser
parsel - Select parts of a HTML document based on CSS selectors |
parsel - Select parts of a HTML document based on CSS selectors
cat page.html | parsel <SELECTOR> [<SELECTOR> [...]]
This command takes an HTML document in STDIN and some CSS selectors in arguments. See 'parsel' and 'cssselect' python modules to see which selectors and pseudo selectors are supported.
Each SELECTOR selects a part in the DOM, but unlike CSS, does not
narrow the DOM tree considered by subsequent selectors. So a sequence of
div p
arguments (2 arguments) selects all <DIV> and then all <P> in
the document; in other words it is NOT equivalent to the div p
css
selector which selects only those <P> which are under any <DIV>.
Each SELECTOR also outputs what was matched, in the following format: First output an integer how many distinct HTML parts were selected, then output the selected parts themself each in its own line. CR, LF, and Backslash chars are escaped by one Backslash char. It's useful for programmatic consumption, because you only have to fist read a line which tells how many subsequent lines to read: each one is a DOM part on its own. Then just unescape Backslash-R, Backslash-N, and double Backslashes to get the HTML content.
Additionally it takes these special arguments as well:
Prefix your selector with an @
at sign to suppress output.
Mnemonic: Command line echo suppression in DOS batch and in Makefile.
Remove HTML tags and leaves text content only before output.
text{}
syntax is borrowed from pup(1)
.
::text
form is there for you if curly brackets are magical in your shell and you don't bother escaping.
Note, ::text
is not a valid CSS pseudo selector at the moment.
Output only the value of the uppermost selected element's ATTRIB attribute.
attr{}
syntax is borrowed from pup(1)
.
Mnemonic for the [[ATTRIB]]
form: in CSS you filter by tag attribute
with [attr]
square brackets, but as it's a valid selector,
parsel(1)
takes double square brackets to actually output the attribute.
A stand-alone /
takes the current selection as a base for the rest of the selectors.
Mnemonic: one directory level deeper.
So this arg sequence: .content / p div
selects only those P and DIV elements
which are inside a "content" class.
This is useful because with css only, you can not group P and DIV together here.
In other words neither .content p, div
nor .content > p, div
provides
the same result.
A stand-alone ..
rewinds the base DOM selection to the
previous base selection before the last /
.
Mnemonic: parent directory.
Rewind base selection back to the DOM's root.
Note, :root
is also a valid CSS pseudo selector, but in a subtree (entered into by /
)
it would yield only that subtree, not the original DOM, so parsel(1)
goes back to it at this point.
You likely need @
too to suppress output the whole document here.
$ parsel input[type=text] < page.html 2 <input type="text" name="domain" /> <input type="text" name="username" />
$ parsel input[type=text] [[name]] < page.html 2 <input type="text" name="domain" /> <input type="text" name="username" /> 2 domain username
$ parsel @input[type=text] [[name]] < page.html 2 domain username
$ parsel @form ::text < page.html 1 Enter your logon details:\ \ Domain:\ \ Username:\ \ Password:\ \ Click here to login:\ \
partial - Show an earlier started long-running command's partial output |
partial - Show an earlier started long-running command's partial output
partial [--restart|--forget|--wait|--pid] <COMMAND> [<ARGUMENTS>]
On first invocation partial(1)
starts COMMAND in the background.
On subsequent invocations, it prints the command's output to stdout which is
generated so far, including the parts which are shown before too,
and keep it running in the background.
Hence the name 'partial', because it shows a command's partial output.
When the command finished, partial(1)
prints the whole output
and exits with COMMAND's exit code.
Terminate (SIGTERM) previous instance of the same command and clean up status directory, even if it's running.
Terminate command if running (like with --forget) and start it again.
On first run, wait for the complete output.
display PID
less verbose
command started
partial output shown
called command returned with this status code nnn
If COMMAND does not exit normally, but gets terminated by a signal,
the exit code is indistinguishable from a normal exit's status code,
due to bash(1)
uses the value of 128+N as the exit status
when a command terminates on a fatal signal N.
paths2indent - Transform list of filesystem paths on input into an indented list of their leaf elements |
paths2indent - Transform list of filesystem paths on input into an indented list of their leaf elements
Input: list of file paths line-by-line
Output: leaf file name with leading tabs representing the depth on the tree
perl-repl - Read-Evaluate-Print-Loop wrapper for perl |
perl-repl - Read-Evaluate-Print-Loop wrapper for perl(1)
pipekill - Send signal to a process on the other end of the given pipe filedescriptor |
pipekill - Send signal to a process on the other end of the given pipe filedescriptor
PMbwmon - Poor man's bandwidth monitor |
PMbwmon - Poor man's bandwidth monitor
PMdirindex - Poor man's directory index generator, output HTML |
PMdirindex - Poor man's directory index generator, output HTML
PMdirindex - Poor man's hex diff viewer |
PMdirindex - Poor man's hex diff viewer
PMnslist - Poor man's namespace list |
PMnslist - Poor man's namespace list
PMpwgen - Poor man's password generator |
PMpwgen - Poor man's password generator
PMrecdiff - Poor man's directory tree difference viewer, comparing file names and sizes recursively |
PMrecdiff - Poor man's directory tree difference viewer, comparing file names and sizes recursively
pyzor-files - Run a pyzor command on the given files |
pyzor-files - Run a pyzor(1)
command on the given files
qrwifi - Generate a string, used in WiFi-setup QR codes, containing a hotspot name and password |
qrwifi - Generate a string, used in WiFi-setup QR codes, containing a hotspot name and password
pvalve - Control how much a given command should run by an other command's exit code |
pvalve - Control how much a given command should run by an other command's exit code
pvalve [<CONTROL COMMAND>] -- [<LONG RUNNING COMMAND>]
Controls when LONG RUNNING COMMAND should run, by pause and unpause it according to the CONTROL COMMAND's exit status.
Pause LONG RUNNING COMMAND process group with STOP signal(7)
if CONTROL COMMAND exits non-zero.
Unpause LONG RUNNING COMMAND process group with CONT signal(7)
if CONTROL COMMAND exits zero.
Pvalve takes the last line from CONTROL COMMAND's stdout, and if looks like a time interval (ie. positive number with optional fraction followed by optional "s", "m", or "h" suffix) then the next checking of CONTROL COMMAND will start after that much time. Otherwise it takes PVALVE_INTERVAL environment variable, or start next check immediately if it's not set.
Pvalve won't bombard LONG RUNNING COMMAND with more consecutive STOP or CONT signals.
It's useful eg. for basic load control. Start a CPU-intensive program in LONG RUNNING COMMAND and check hardware temperature in CONTROL COMMAND. Make it exit 0 when temperature is below a certain value, and exit 1 if above an other, higher value.
Default interval between two CONTROL COMMAND runs.
PVALVE_STATUS describes whether LONG RUNNING COMMAND should be in running or in paused state. Possible values: RUN, STOP. This environment is available by CONTROL COMMAND.
Further process groups which are created by LONG RUNNING COMMAND will not be affected.
renamemanual - Interactive file rename tool |
renamemanual - Interactive file rename tool
repeat - Run a give command repeatedly |
repeat - Run a give command repeatedly
repeat <COMMAND> [<ARGS>]
How many times to repeat the given command. Default is infinite.
How many time the command has been ran. The command itself can access this variable to read.
Sleep interval between invocations.
In seconds, by default.
See sleep(1)
for valid parameters.
reportcmdstatus - Textually show how the given command finished |
reportcmdstatus - Textually show how the given command finished (exit status/signal)
reportcmdstatus [-c] <COMMAND> [<ARGS>]
Take COMMAND's status and itself exits with it. Default is to exit 0.
rsacrypt - Encrypt/decrypt files with RSA |
rsacrypt - Encrypt/decrypt files with RSA
rsysrq - Send SysRQ commands remotely over the network |
rsysrq - Send SysRQ commands remotely over the network
screenconsole - Interactive CLI to run GNU/screen commands against current or specified screen session |
screenconsole - Interactive CLI to run GNU/screen commands against current or specified screen session
screen-notify - Send status-line message to the current GNU/Screen instance |
screen-notify - Send status-line message to the current GNU/Screen instance
screenreattach - Reattach to GNU/screen and import environment variables |
screenreattach - Reattach to GNU/screen and import environment variables
ssh-agent-finder - Find a working ssh agent on the system so you get the same in each of your logon sessions |
ssh-agent-finder - Find a working ssh agent on the system so you get the same in each of your logon sessions
. ssh-agent-finder -Iva
strip-ansi-seq - Dumb script removing more-or-less any ANSI escape sequences from the input stream |
strip-ansi-seq - Dumb script removing more-or-less any ANSI escape sequences from the input stream
swap - swaps two files' names |
swap - swaps two files' names
symlinks2dot - Generate a graph in dot format representing the symlink-target relations among the given files |
symlinks2dot - Generate a graph in dot(1)
format representing the symlink-target relations among the given files
tabularize - Takes TAB-delimited lines of text and outputs formatted table. |
tabularize - Takes TAB-delimited lines of text and outputs formatted table.
Tail - output as many lines from the end of files as many lines on the terminal currently |
Tail - output as many lines from the end of files as many lines on the terminal currently
takeown - Take ownership on files, even for unprivileged users |
takeown - Take ownership on files, even for unprivileged users
takeown [options] <files and directories>
Command chown(1)
or chown(2)
is permitted only for root (and processes with CAP_CHOWN),
but normal users can imitate this behavior.
You can copy other users' file to your own in a directory writable by you,
and then replace the original file with your copy.
It is quite tricky and maybe expensive (copying huge files), but gives you an option.
Say, when somebody forgot to use the right user account when saving files directly to your folders.
takeown(1)
uses *.takeown and *.tookown filename extensions to create new files
and to rename existing files to respectively.
See takeown --help
for option list.
script --> main --> takeown / | \ / | \ / | \ takeown takeown takeown _file _symlink _directory | | | - - - - - - | - - - - | - - - - - | - - - - - - - - - - - - - - error | | | handler | | V ,---> register_created_dir function: | | ,--> takeown | cleanup | | | _directory ---+---> register_moved_file | | | _recursive | | | | | | \ `---> register_ | | `------´ | \ ,-> copied_file | V V \ | | copy_out <-- copy_out --\--' | _symlink / \ V / | copy_out <------------´ | _file | | | `-------> copy_attributes <-----´
taslis - WM's Window List |
taslis - WM's Window List
Taslis stands for tasklist. List X11 clients provided by wmctrl(1)
in ANSI-compatible terminal.
Select item
Switch to workspace and raise window
Close window gracefully
Hangup selected process
Interrupt process
Suspend, Resume process
Kill process
Process's details
Dismiss
Help
tests - Show all attributes of the given files which can be tested by test shows them |
tests - Show all attributes of the given files which can be tested by test(1)
in the same color as ls(1)
shows them
text2img-dataurl - Convert text input to image in "data:..." URL representation |
text2img-dataurl - Convert text input to image in "data:..." URL representation
touchx - set execution bit on files and creates them if neccessary |
touchx - set execution bit on files and creates them if neccessary
ttinput - Inject console input in a terminal as if the user typed |
ttinput - Inject console input in a terminal as if the user typed
echo Lorm ipsum | ttinput /dev/pts/1
https://johnlane.ie/injecting-terminal-input.html
uchmod - chmod files according to umask |
uchmod - chmod files according to umask
uchmod [-v] [-R] [path-1] [path-2] ... [path-n]
Change mode bits of files and directories according to umask(1)
settings using chmod(1)
.
Use it when file modes were messed up, uchmod change them like mode of newly created files.
unicodestyle - Add font styles to input text using Unicode |
unicodestyle - Add font styles to input text using Unicode
upsidedown - Transliterate input stream to text with upsidedown-looking chars |
upsidedown - Transliterate input stream to text with upsidedown-looking chars
url_encode - Escape URL-unsafe chars in text given either in parameters or in stdin by percent-encoding |
url_encode - Escape URL-unsafe chars in text given either in parameters or in stdin by percent-encoding
url_decode - Unescape percent-encoded sequences given either in parameters or in stdin
url_encode - Escape URL-unsafe chars in text given either in parameters or in stdin by percent-encoding |
url_encode - Escape URL-unsafe chars in text given either in parameters or in stdin by percent-encoding
url_decode - Unescape percent-encoded sequences given either in parameters or in stdin
url_encode_bf - Make all chars given either in parameters or in stdin to percent-encoded sequence |
url_encode_bf - Make all chars given either in parameters or in stdin to percent-encoded sequence
url-parts - Extract specified parts from URLs given in input stream |
url-parts - Extract specified parts from URLs given in input stream
echo <URL> | url-parts <PART> [<PART> [<PART> [...]]]
Supported parts: fragment, hostname, netloc, password, path, port, query, scheme, username, and query.NAME for the query parameter NAME, and query.NAME.N for Nth element of the array parameter NAME.
Run url-parts --help
for the definitive list of URL part names
supported by the python urlparse module installed on your system.
vidir-sanitize - Helper script to change tricky filenames in a directory |
vidir-sanitize - Helper script to change tricky filenames in a directory
Not need to invoke vidir-sanitize directly. vidir(1)
calls it internally.
VISUAL=vidir-sanitize vidir
vidir(1)
from moreutils
vifiles - Edit multiple files as one |
vifiles - Edit multiple files as one
If a LF char at the end of any files is missing, it'll be added after edit.
vidir(1)
from moreutils
waitpid - Wait for a process to end |
waitpid - Wait for a process to end (even if not child of current shell)
whisper-retention-info - Show data retention policy in Whisper timeseries database file |
whisper-retention-info - Show data retention policy in Whisper timeseries database file
wikibot - Update Wikimedia article |
wikibot - Update Wikimedia (Wikipedia) article
xdg-autostart - Start XDG autostart programms |
xdg-autostart - Start XDG autostart programms
xml2json - Convert XML input to JSON |
xml2json - Convert XML input to JSON
levenshtein-distance - Calculate the Levenshtein distance of given strings |
levenshtein-distance - Calculate the Levenshtein distance of given strings
jaro-metric - Calculate the Jaro metric of given strings
jaro-winkler-metric - Calculate the Jaro-Winkler metric of given strings
levenshtein-distance - Calculate the Levenshtein distance of given strings |
levenshtein-distance - Calculate the Levenshtein distance of given strings
jaro-metric - Calculate the Jaro metric of given strings
jaro-winkler-metric - Calculate the Jaro-Winkler metric of given strings
levenshtein-distance - Calculate the Levenshtein distance of given strings |
levenshtein-distance - Calculate the Levenshtein distance of given strings
jaro-metric - Calculate the Jaro metric of given strings
jaro-winkler-metric - Calculate the Jaro-Winkler metric of given strings
loggerexec - Run a command and send STDOUT and STDERR to syslog |
loggerexec - Run a command and send STDOUT and STDERR to syslog
logrotate-counters - Increment numbers in file names |
logrotate-counters - Increment numbers in file names
logto - Run a command and append its STDOUT and STDERR to a file |
logto - Run a command and append its STDOUT and STDERR to a file
pdfflop - Flop a PDF file's pages |
pdfflop - Flop a PDF file's pages
pngmetatext - Put metadata text into PNG file |
pngmetatext - Put metadata text into PNG file
set-sys-path - Set PATH according to /etc/environment and run a program |
set-sys-path - Set PATH according to /etc/environment and run a program
subst_sudo_user - Sudo helper program |
subst_sudo_user - Sudo helper program
subst_sudo_user <COMMAND> [<ARGUMENTS>]
Substitute literal $SUDO_USER
in the ARGUMENTS and run COMMAND.
It enables sys admins to define sudoers(5)
rule in which each user is allowed to
call a privileged command with thier own username in parameters. Example:
%users ALL=(root:root) NOPASSWD: /usr/tool/subst_sudo_user passwd $SUDO_USER
This rule allows users to run subst_sudo_user
(and subsequentially
passwd(1)) as root with verbatim $SUDO_USER
parameter. So no shell
variable resolution happens so far. Subst_sudo_user
in turn, running
as root, replaces $SUDO_USER
to the value of SUDO_USER
environment
variable, which is, by sudo(1)
, guaranteed to be the caller username.
Then it runs passwd(1)
(still as root) to change the given user's
password. So effectively with this rule, each user can change their
password without knowing the current one first (because passwd(1)
usually does not ask root for his password).
%USERS ALL=(root:root) NOPASSWD: /usr/tool/subst_sudo_user /usr/bin/install -o $SUDO_USER -m 0750 -d /var/backup/user/$SUDO_USER
terminaltitle - Set the current terminal's title string |
terminaltitle - Set the current terminal's title string
timestamper - Prepend a timestamp to each input line |
timestamper - Prepend a timestamp to each input line
Timestamp format, see strftime(3)
.
Default is "%F %T %z".
ts(1)
from moreutils
set-xcursor-lock-and-run - Set X11 cursor to a padlock and run a command |
set-xcursor-lock-and-run - Set X11 cursor to a padlock and run a command
mkmagnetlink - Create a "magnet:" link out of a torrent file |
mkmagnetlink - Create a "magnet:" link out of a torrent file
htmlentities - Convert plain text into HTML-safe text |
htmlentities - Convert plain text into HTML-safe text
escape control chars (0x00-0x1F except TAB, LF, and CR)
escape meta chars (less-than, greater-than, ampersand, double- and single-quote)
scape non-ASCII chars
pfx2pem - Convert PFX certificate file to PEM format |
pfx2pem - Convert PFX (PKCS#12) certificate file to PEM format
symlinks-analyze - Discover where symlinks point at, recursively |
symlinks-analyze - Discover where symlinks point at, recursively
filterexec - Echo those arguments with which the given command returns zero. |
filterexec - Echo those arguments with which the given command returns zero.
filterexec <COMMAND> [<ARGS>] -- <DATA-1> [<DATA-2> [... <DATA-n>]]
Prints each DATA (1 per line) only if command "COMMAND ARGS DATA" exits succesfully, ie. with zero exit status.
filterexec test -d -- $(ls)
Shows only the directories.
trackrun - Record when the given command was started and ended and expose to it in environment variables |
trackrun - Record when the given command was started and ended and expose to it in environment variables
trackrun [<OPTIONS>] [--] <COMMAND> [<ARGS>]
It records when it starts COMMAND and when it ends, identifying COMMAND either by one of 4 options: (1) Full command line including ARGS. (2) Only the command name, COMMAND. (3) By the name given by the user in NAME. (4) By the environment variable given by name ENV.
Set TRACKRUN_LAST_STARTED and TRACKRUN_LAST_ENDED environments for COMMAND to the ISO 8601 representation of the date and time when COMMAND was last started and ended respectively. Set TRACKRUN_LAST_STATUS to the status COMMAND last exited with. Those are left empty if no data yet.
Store tracking data in ~/.trackrun directory.
Trackrun does not do locking. You may take care of it if you need using flock(1)
, cronrun(1)
, or similar.
oded - On-disk editor - edit text files by commands directly from shell |
oded - On-disk editor - edit text files by commands directly from shell
oded [<OPTIONS>] <INSTRUCTIONS>
Edit files by issuing editor commands like shell commands, but with the paradigm of well-known visual text processors: open file, move cursor, type in text, search and replace, select, copy, paste, ...
May open multiple files. Always one file is in the foreground. All opened files has a cursor position at which most commands are applied.
Files also have several marks which you can set or refer to in
select
or goto
commands.
A special pair of marks is SELECTION-START and SELECTION-END which
pins the currently selected text for you.
You have one clipboard.
Oded first executes INSTRUCTIONS given in parameters,
then all the instructions given at --script
option(s), if any.
Take instructions from FILE when done processing instructions given in parameters. May specify multiple times. Exit immediately on unknown command or parse error or if a command fails.
Take instructions from STDIN line-by-line.
Contrary to --script
scripts, it does not exit on errors,
just shows what was the exception,
and continues reading instructions.
Suitable for interactive mode.
Same as --script -
, except in error handling.
Set what INSTRUCTIONS to run after each successful command in
interactive mode (ie. --stdin
).
Open PATH file to edit.
open file PATH
only opens already existing files,
open or create ...
creates the file if it is not yet there.
open new file ...
opens a file only if it does not exist yet.
You can switch between multiple opened files by invoking open PATH
or open file PATH
again, or open NAME
if you opened the file
under a certain NAME by as NAME
.
Don't worry, it won't open the same PATH multiple time with conflicting editor states. However your system may allow accessing the same file (by soft and hard links) on different paths. Oded considers only the PATH string when discerning files, so x.txt and ./x.txt and .//x.txt are handled separatedly. You have to open a file before any operation.
Switch to an already opened file with the given NAME alias or
PATH path, if NAME alias is not found.
You can not open a file on path PATH once you set NAME as an alias for
a file on an other PATH.
But you can always refer to the same path by prepending ./
(or /
in case of absolute paths) to it.
Lines and byte offsets are indexed by 0.
Set cursor position in file.
Insert given STRING into the current cursor position. It does not overwrite current selection. Add newline to the end only if called as c<enter>.
Type given STRING into the current cursor position in overwrite mode. It does not overwrite current selection, but the text itself let it be currently selected or not.
Replace given PATTERN to STRING. If PATTERN is not given, then the last search pattern will be used. "Replace next" changes only the next COUNT number of occurrences starting from the cursor position. Default is 1 occurrence, if COUNT is not given. "Replace all" changes all the occurrences from the cursor position down to the end of file. If you want to replace all the occurrences in the whole file, "goto start" first.
Find next occurrence (or previous one if "backward" is specified) of
PATTERN and set the cursor to it.
PATTERN is either a bare word, a string enclosed in quotes, or a regexp
enclosed in slashes (/regexp/
).
PATTERN is not supported to overhang from one line to the next.
Remove newlines from the text if you must.
If the cursor is at a matching text, search PATTERN
will find the
very place where we are, while search next ...
skips 1 char and
continues from there.
Continue searching the next occurrence of the last search query.
You may close this instruction with an empty pattern (//
) to
separate it from the next instruction, since the empty search PATTERN
(both fixed text and regexp) is invalid, thus not searching an other
pattern but the last one.
In interactive mode search next
is enough.
Put a named mark to the current cursor position. NAME must not be a reserved mark name: START, END, SOL, EOL, HERE.
Select text from the previously named mark START-MARK to END-MARK.
Put marks with mark as
command.
You have some special predefined marks:
START
beginning of the fileEND
end of the fileHERE
current cursor positionSOL
start of lineEOL
end of line, excluding the line ending (Newline) charIf either from
or to
is missing, HERE
is implied.
Insert FILE's contents or the output (stdout) of COMMAND to the current cursor position.
Send selected text to COMMAND as stdin,
and in case of filter
, replace selection with its stdout.
Display a list of file paths which were opened.
The one in foreground prefixed with an *
asterisk.
If any of them opened by an alias name, it shown after the path in []
brackets.
Show the contents of the file in foreground.
cled - Command Line-Editor - Edit text file lines by commands directly from shell |
cled - Command Line-Editor - Edit text file lines by commands directly from shell
cled [<OPTIONS>] <EXPR> [<EXPR> [...]] [-- <FILE> [<FILE> [...]]]
Each EXPR expression consist of an optional SELECTOR term and a command and variable number of arguments depending on the command (see COMMANDS section), like:
<SELECTOR>[..<SELECTOR>] <COMMAD> [<ARG> [<ARG> [...]]]
You may narrow the COMMAND's effect by a SELECTOR term.
A SELECTOR selects either one line or a closed range of lines.
For ranges, put ..
(double dot) between SELECTORs.
A SELECTOR may be a regexp, ie. /PATTERN/[MODIFIERS]
,
or a line number, or the literal word last
which means the last line.
SELECTOR syntax:
[ /<REGEXP>/[<MODIFIERS>][[+ | -]<OFFSET>] | <LINE> | last[-<OFFSET>] ]
Examples:
10../lorem/i
Select line 10 and all subsequent lines down to the first one matching to case-insensitive "lorem".
/begin/../end/
Select the lines between /begin/ and /end/ inclusively.
/begin/+1../end/-1
Select the lines between /begin/ and /end/ exclusively.
The 2nd SELECTOR does not get tested on the same line as the 1st
SELECTOR.
So you can select at least a 2-lines long range by eg. /start/../stop/
.
If the 2nd SELECTOR is REGEXP and it does not match any lines, then
practically it's an open-ended range, so the rest of the file is
selected.
Line numbers are indexed from 0.
REGEXP and the last
SELECTOR have an optional OFFSET: eg. /begin/+2
selects the 2nd line following a line matching to /begin/. The last
SELECTOR obviously supports only negative OFFSETs.
An EXPR expression can be a group denoted by brackets, in which there are subexpressions like EXPR. This way you can do multiple COMMAND commands, all when the common SELECTOR matches to the line in order:
/^d/ [ ltrim prepend " " ]
Which removes all leading whitespace, if any, from lines starting with "d" and inserts a single space at the beginning of all of them. See COMMANDS below for all the supported editor commands.
Currently 3 type of brackets are supported: [ ... ]
square,
{ ... }
curly, and ( ... )
parenthesis. Use the square one to
save shell escaping.
File to edit. May specify multiple times. Files are edited in-place by default, by persisting their Inode, ie. buffer the output data and write to the original input file when it's all read up. If --output option(s) is (are) given, then the file(s) won't be modified in-place, rather than saved in output file(s). If not given any --file, works on STDIN and print to STDOUT.
File to save modified data into. May specify multiple times. If less --output parameters given than --file, then the input files without a corresponding output file will be edited in-place.
Prompt for confirmation for each selected line. If a readline module is installed then you may do further changes to the lines interactively. Term::ReadLine::Gnu(3pm) module is recommended.
Press Ctrl-J to insert newline (LF) at the cursor position, as it's not added automaticaly to the end of line.
If no readline module available, press only a single Enter to accept changes, and Ctrl-C to revert to the original line, or type in new content and press Enter to replace the promped line (newline is added to the end in this case). Additionally an inverse space char at the end of line indicates if the last line is not terminated by a newline.
Print edited lines to STDERR.
Prefixed with line number if option -l
is given.
A line is edited if it's selected by any SELECTOR and not reverted
thereafter at the interactive prompt.
Show line numbers in verbose mode.
Regexp substitution. Works just like in perl(1)
. See perlre(1)
.
Edit selected lines interactively by a readline interface. See --confirm option in OPTIONS section for details.
Delete matching line(s).
Remove leading (ltrim), trailing (rtrim), or leading and trailing (trim) whitespace from the line. End-of-line char (LF, \ ) is preserved.
Replace all STR1 to STR2.
Replace whole word STR1 to STR2.
Replace the whole line to STR.
Prepend STR to the line.
Insert STR as a whole line before the matching line(s). Line numbering is preserved as there was not an inserted line, ie. line numbers are not incremented.
Insert the content of PATH file before the matching line(s). The last line of PATH file will be separated from the matched line by a newline (LF) either way. Line numbering is preserved as described above.
Append STR to the line.
Append STR as a whole line to the matching line(s). Line numbering is preserved as described above.
mail-extract-raw-headers - Get named headers from RFC822-format input. |
mail-extract-raw-headers - Get named headers from RFC822-format input.
mail-extract-raw-headers [OPTIONS] <NAME> [<NAME> [...]]
Keep linefeeds in multiline text.
Output the header name(s) too, not only the contents.
randstr - Generate random string from a given set of characters and with a given length. |
randstr - Generate random string from a given set of characters and with a given length.
randstr <LENGTH> [<CHARS>]
CHARS is a character set expression, see tr(1)
.
Default CHARS is [a-zA-Z0-9_]
rcmod - Run a given command and modify its Return Code according to the rules given by the user |
rcmod - Run a given command and modify its Return Code according to the rules given by the user
rcmod [<FROM>=<TO> [<FROM>=<TO> [...]]] <COMMAND> [<ARGS>]
If COMMAND returned with code FROM then rcmod(1)
returns with TO.
FROM may be a comma-delimited list.
Keyword any means any return code not specified in FROM parameters.
Keyword same makes the listed exit codes to be preserved.
rcmod any=0 1=13 2,3=same user-command
It runs user-command, then exits with status 13 if user-command exited with 1, 2 if 2, 3 if 3, and 0 for any other return value.
If COMMAND was terminated by a signal, rcmod(1)
exits with 128 + signal number
like bash(1)
does.
killp - Send signal to processes by PID until they end |
killp - Send signal to processes (kill, terminate, ...) by PID until they end
killpgrp - Send signal to processes (kill, terminate, ...) by PGID until they end
killcmd - Send signal to processes (kill, terminate, ...) by name until they end
killexe - Send signal to processes (kill, terminate, ...) by their executable path until they end
killp [OPTIONS] <PID> [<PID> [...]]
Send signal to process(es) by PID, PGID (process group ID), command name, or by executable path
until the selected process(es) exists.
Ie. in usuall invocation, eg. killcmd java
tries to SIGTERM all java processes until at
least 1 exists, and returns only afterwards.
The following options control how killcmd and killexe finds processes. Semantics are the same as in grep(1):
-E --extended-regexp -F --fixed-strings -G --basic-regexp -P --perl-regexp -i --ignore-case -w --word-regexp -x --line-regexp
Other options:
Which signal to send.
See kill(1)
and signal(7)
for valid SIG signal names and numbers.
How much to wait between attempts.
See sleep(1)
for valid IVAL intervals.
kill(1)
, pkill(1)
, killall(1)
, signal(7)
killp - Send signal to processes by PID until they end |
killp - Send signal to processes (kill, terminate, ...) by PID until they end
killpgrp - Send signal to processes (kill, terminate, ...) by PGID until they end
killcmd - Send signal to processes (kill, terminate, ...) by name until they end
killexe - Send signal to processes (kill, terminate, ...) by their executable path until they end
killp [OPTIONS] <PID> [<PID> [...]]
Send signal to process(es) by PID, PGID (process group ID), command name, or by executable path
until the selected process(es) exists.
Ie. in usuall invocation, eg. killcmd java
tries to SIGTERM all java processes until at
least 1 exists, and returns only afterwards.
The following options control how killcmd and killexe finds processes. Semantics are the same as in grep(1):
-E --extended-regexp -F --fixed-strings -G --basic-regexp -P --perl-regexp -i --ignore-case -w --word-regexp -x --line-regexp
Other options:
Which signal to send.
See kill(1)
and signal(7)
for valid SIG signal names and numbers.
How much to wait between attempts.
See sleep(1)
for valid IVAL intervals.
kill(1)
, pkill(1)
, killall(1)
, signal(7)
killp - Send signal to processes by PID until they end |
killp - Send signal to processes (kill, terminate, ...) by PID until they end
killpgrp - Send signal to processes (kill, terminate, ...) by PGID until they end
killcmd - Send signal to processes (kill, terminate, ...) by name until they end
killexe - Send signal to processes (kill, terminate, ...) by their executable path until they end
killp [OPTIONS] <PID> [<PID> [...]]
Send signal to process(es) by PID, PGID (process group ID), command name, or by executable path
until the selected process(es) exists.
Ie. in usuall invocation, eg. killcmd java
tries to SIGTERM all java processes until at
least 1 exists, and returns only afterwards.
The following options control how killcmd and killexe finds processes. Semantics are the same as in grep(1):
-E --extended-regexp -F --fixed-strings -G --basic-regexp -P --perl-regexp -i --ignore-case -w --word-regexp -x --line-regexp
Other options:
Which signal to send.
See kill(1)
and signal(7)
for valid SIG signal names and numbers.
How much to wait between attempts.
See sleep(1)
for valid IVAL intervals.
kill(1)
, pkill(1)
, killall(1)
, signal(7)
killp - Send signal to processes by PID until they end |
killp - Send signal to processes (kill, terminate, ...) by PID until they end
killpgrp - Send signal to processes (kill, terminate, ...) by PGID until they end
killcmd - Send signal to processes (kill, terminate, ...) by name until they end
killexe - Send signal to processes (kill, terminate, ...) by their executable path until they end
killp [OPTIONS] <PID> [<PID> [...]]
Send signal to process(es) by PID, PGID (process group ID), command name, or by executable path
until the selected process(es) exists.
Ie. in usuall invocation, eg. killcmd java
tries to SIGTERM all java processes until at
least 1 exists, and returns only afterwards.
The following options control how killcmd and killexe finds processes. Semantics are the same as in grep(1):
-E --extended-regexp -F --fixed-strings -G --basic-regexp -P --perl-regexp -i --ignore-case -w --word-regexp -x --line-regexp
Other options:
Which signal to send.
See kill(1)
and signal(7)
for valid SIG signal names and numbers.
How much to wait between attempts.
See sleep(1)
for valid IVAL intervals.
kill(1)
, pkill(1)
, killall(1)
, signal(7)
hlcal [OPTIONS] [CAL-OPTIONS]
hlncal [OPTIONS] [NCAL-OPTIONS]
Wrap cal(1)
, ncal(1)
around and highlight specific days.
Where DOW is a day-of-week name (3 letters), COLOR is a space- or hyphen-delimited list of ANSI color or other formatting style name, DATE (and START-DATE, END-DATE) is in [[YYYY-]MM-]DD format, ie. year and month are optional, and lack of them interpreted as "every year" and "every month" respectively.
In single date definition, DATE, may enter an asterisk *
as month
to select a given date in every month in the given year, or in every
year if you leave out the year as well.
Example: 1917-*-15
In the interval definition, may add several DOW days which makes only
those days highlighted in the specified interval.
Examples:
04-01...06-30,WED
means every Wednesday in the second quarter.
1...7,FRI
means the first Friday in every month.
Colors: black, red, green, yellow, blue, magenta, cyan, white, default.
May be preceded by bright
, eg: bright red
.
May be followed by bg
to set the background color instead of the
foreground, eg: yellow-bg
.
Styles: bold, faint, italic, underline, blink_slow, blink_rapid, inverse, conceal, crossed,
hlcal [OPTIONS] [CAL-OPTIONS]
hlncal [OPTIONS] [NCAL-OPTIONS]
Wrap cal(1)
, ncal(1)
around and highlight specific days.
Where DOW is a day-of-week name (3 letters), COLOR is a space- or hyphen-delimited list of ANSI color or other formatting style name, DATE (and START-DATE, END-DATE) is in [[YYYY-]MM-]DD format, ie. year and month are optional, and lack of them interpreted as "every year" and "every month" respectively.
In single date definition, DATE, may enter an asterisk *
as month
to select a given date in every month in the given year, or in every
year if you leave out the year as well.
Example: 1917-*-15
In the interval definition, may add several DOW days which makes only
those days highlighted in the specified interval.
Examples:
04-01...06-30,WED
means every Wednesday in the second quarter.
1...7,FRI
means the first Friday in every month.
Colors: black, red, green, yellow, blue, magenta, cyan, white, default.
May be preceded by bright
, eg: bright red
.
May be followed by bg
to set the background color instead of the
foreground, eg: yellow-bg
.
Styles: bold, faint, italic, underline, blink_slow, blink_rapid, inverse, conceal, crossed,