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)