--- format: rst toc: no ... ===================================== UNIX Tricks ===================================== See also `freebsd `_ and `debian `_ tricks. Fork many processes with `xargs` ----------------------------------- To fork off 10 instances of sleep with incremented lengths, 5 at a time:: $ seq 10 20 | xargs -n 1 -P 5 sleep Remapping a Keyboard Key to Meta ----------------------------------- I like having a Meta key (aka "Windows key") for use with system keyboard shortcuts (change desktop etc), but some laptop keyboards don't have an extra button. To remap one of the Alt keys, you need to know it's code: on FreeBSD 6.3 it was: ``Alt_R keysum 0xffea keycode 113``. To get the right mapping under X11, read the directions in ``/usr/X11R6/lib/X11/xkb/README``. To get the right mapping under the console, edit ``/usr/share/syscons/keymaps/us.iso.kbd`` and change 'ralt' to 'meta'. Figlet --------------------- figlet is the horizontal banner. thttpd --------------- thttpd is a super small/light http web server with almost no features. To server up the working directory as cgi to local host, use:: $ thttpd -p 8080 -h localhost -D To allow CGI for PHP scripts: $ thttpd -p 8080 -h localhost -D -c \*.php Simple "undelete" -------------------- This oneliner is useful for recovering recently deleted files from unix filesystems, assuming you know a reasonably unique string in that file. Change the -A and -B options (lines of context before and after the unique string) as appropriate, and go through the output file to clean up the text. $ sudo grep "bookmark_bar" --binary-files=text -B 10 -A 1000 /dev/sda5 | tee undeleted_content.txt Misc ---- ``tput`` is useful for controlling the terminal cursor position, font style, etc. OpenSSL Primes ----------------- See if a number is prime with ``openssl prime 2011``. SSH Tunnel ------------ Try `autossh `_ to keep tunnels open. printf ------ The `printf` command is much more powerful than `echo`. stderr in Red --------------- Via `stack overflow `_: $ command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m"; done) Mount an .img file as loopback device ----------------------------------------- Either: mount -o loop distro.img /mnt Or: losetup /dev/loop0 distro.img mount /dev/loop0 /mnt Search and Replace String in Multiple Files --------------------------------------------- Using sed: sed -i 's/OldString/NewString/g' *.txt File-based Network Access --------------------------------------------- You can directly access network sockets as if they were files from bash using the virtual devices ``/dev/tcp/HOSTNAME/PORT`` and ``/dev/udp/HOSTNAME/PORT``.