This is a bookmark-able reference to commonly used commands in Unix-like environments.
tar
Basic tar commands. Remember this one?
tar czf file.tar.gz <files> # create a tarballtar xzf file.tar.gz # extract a tarball
dd
Useful for creating files of arbitrary size with pseudorandom content.
dd if=/dev/urandom of=target-file bs=1M count=10
if
is the input file, of
is the output file, and bs
is the block size.
count
is number of blocks to read from if
and write to of
.
split
Splitting files. Use -d
for numeric suffixes.
split -b 8K <file> <prefix-name> # split a file into 8kb chunkssplit -n 128 <file> # split a file into 128 chunks
scp
Basic copy syntax. Use -r
for copying directories recursively.
scp -i path_to_secret.pem local_file.txt remote_username@10.10.0.2:/remote/directoryscp -i path_to_secret.pem remote_username@10.10.0.2:/remote/file.txt /local/directoryscp user1@host_1.com:/files/file.txt user2@host_2.com:/files
ssh
Generate an RSA SSH key:
ssh-keygen -t rsa -b 2048 -C "foo@bar.com"
SSH config example Host block
# ~/.ssh/configHost <name> Hostname <ipv4> User <user> Port <port> IdentitiesOnly <yes/no> IdentityFile <path_to_secret>
To proxy using a bastion host, use the following directive in the config.
ProxyCommand ssh -W %h:%p <name-of-jump-server>
# Add an SSH key to authentication agentssh-add -K ~/.ssh/id_rsa
# ~/.ssh/config (bg SSH session with port forwarding# e.g. running remote jupyter notebooks)Host foo Hostname <ipv4> User <user> IdentityFile <path_to_secret>$ ssh -NfL 9999:localhost:8888 foo
psql
Common PostgreSQL slash commands
\l # list databases \c orders # switch to database 'orders' \dt # list tables \conninfo # echo connection info \des # list foreign servers \dew # list foreign data wrappers \? # get meta-command help
Connect to a PostgreSQL database
psql -h <host> -p <port> -d <db> -U <user>