Editing
vim / view
sed - search/replace, especially on streams
pandoc - document converter
File management
ls - list files and directories
find - find files recursively
tar - compress/extract archives
df - check disk usage
du - check disk usage per file(s)
ln - create symbolic links
Searching text
ack / ag - better than grep for searching source code
My custom wrapper around the above: search
grep - simple searches not on source code
diff - compare files, create patches
vimdiff - compare files side by side
Process management
top - see system resource usage in real time
ps - detailed process information
kill - kill processes
pstree - print a process tree, showing parent/child relationships
xargs - tokenizes text, but I generally use it to parallelize tasks (xargs -P)
Password management
gopass
Development
git - revision control
gdb / cgdb - debugger
gcc et al - C/C++ compiler
make / m4 et al - GNU make tools
ninja - meson tools
python
rustc
perl
Network
ssh - connect to remote machines
nmcli - network manager CLI (e.g. connect to a Wi-Fi network)
Shell
My shell of choice is bash. Some builtins I commonly use:
which - get the path of a command in your $PATH
history - history of issued commands, use !n to repeat command n
pushd / popd - push/pop to directory stack
bg / fg / jobs / & - job control, move from foreground to background and vice-versa
&& / || - chain commands together based on last command's return value
!! - repeat last command, especially sudo !!
!$ - repeat last argument
Some custom commands I made:
dc - cd backwards, with tab completion up the directory tree
mcd - make and change to directory in one shot
hc - hard copy, replacing symbolic link
Solus-specific
eopkg
solbuild - for building packages
arc - arcanist (revision control)
Miscellaneous
man - RTFM
clear - clears the terminal (I am neurotic about this)