====== Shell Tricks ======
===== Hotkeys (bash) =====
| ''Alt + .''\\ ''Esc, .'' | Add last argument of most recent command. |
| ''Ctrl + A''\\ ''Ctrl + E'' | Jump to st**a**rt or **e**nd of the line. |
| ''Ctrl + D'' | **D**isconnect / exit current shell |
===== Snippets =====
==== do something with multiple files ====
You can use find and the ''-exec'' option.
For example if you want to extract multiple .rar files:
find . -name '*.rar' -exec 'unrar' 'e' '{}' \;
''{}'' gets replaced with the filename found by ''find . -name %%'*.rar'%%''. Watch out that you have to single-quote (''%%'%%'') every option to the program you're ''-exec''uting.
=== open multiple files in image viewer ===
for file in *.jpg; do feh $file&; done
The ''&'' makes it run in the background and opens all files at once.
==== urlencode text ====
echo "text" | jq -sRr @uri
([[https://stackoverflow.com/questions/296536/how-to-urlencode-data-for-curl-command|source]])
==== compare md5sum with given string ====
md5sum -c - <<<"b4460802b5853b7bb257fbf071ee4ae2 file_name.ext"
==== generate 4 letter password ====
shuf -n 4 /usr/share/dict/ngerman
==== mount partition from dd image ====
losetup --partscan --find --show sd.img
lsblk | grep loop
mount /dev/loop0p2 sd/
==== ssh without executing .login ====
ssh -t user@host /bin/bash
==== generate crypt(3) output for /etc/shadow ====
mkpasswd # on debian
openssl passwd -crypt myPassword
==== convert ext2/ext3 to ext4 ====
tune2fs -O extents,uninit_bg,dir_index,has_journal /dev/sdx0
==== backup MBR (Master Boot Record) ====
# Use 446 bytes to overwrite or restore your /dev/XYZ MBR boot code only with the contents of $mbr.backup.file.
# Use 512 bytes to overwrite or restore your /dev/XYZ the full MBR (which contains both boot code and the drive’s partition table) with the contents of $mbr.backup.file.
dd if=/dev/sdx of=mbr.img bs=512 count=1
==== check & wipe drive ====
badblocks -t random -wsv /dev/disk/by-id/drive-id
==== compare the contents of two folders ====
diff -rq dir1 dir2
==== login with empty password ====
passwd -d USERNAME
usermod -U USERNAME
==== disable gnome-keyring in favor of ssh-agent ====
chmod 0 /usr/bin/gnome-keyring-daemon
==== hide process informations from other users ====
mount -o remount,rw,hidepid=2 /proc
==== save current X.org config ====
sudo X :2 -configure
==== find out current Kernel boot options ====
cat /proc/cmdline
===== similar sites =====
* [[https://www.commandlinefu.com/commands/browse/sort-by-votes|commandlinefu.com]] – It's like Kung Fu, but for the command line. User contributed useful snippets.