1 # Aliases and similar functions which can be used by all shells (supporting
4 # Copyright (C) 2011-2015 Simon Ruderich
6 # This file is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # This file is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this file. If not, see <http://www.gnu.org/licenses/>.
20 # Shortcuts for often used programs.
28 alias p=less # p for pager
33 # Shortcuts for a little less used programs.
40 alias mj='make -j$(nproc)'
42 alias rs=reset # like git's reset alias
47 # systemd ... (sc is provided as shell script for better completion)
52 unalias mv cp 2>/dev/null
53 # Ask for confirmation before overwriting files. Especially useful when moving
54 # to a different directory. No alias for `rm` because I specify the files to
55 # remove directly, so I know what will happen.
57 # Additionally preserve all file attributes when copying, this includes
58 # copying symbolic links as is without dereferencing them.
62 # Make sure there is no alias named ls as it causes problems with the
63 # following ls function on (at least) bash 4.0.35.
64 unalias ls 2>/dev/null
65 # Improved ls which displays the files in columns (-C), visualizes
66 # directories, links and other special files (-F), uses human file sizes (-h)
67 # and pages everything through less.
69 # If available use GNU ls with colorized output. If it isn't available try
70 # normal ls which needs CLICOLOR_FORCE so it displays colors when used with a
71 # pager. If none work no colors are used.
73 # See `setup.sh` for details. LS_* are replaced with the appropriate values
74 # when this file is generated.
76 LS_ARGS -C -F -h "$@" 2>&1 | less -S
79 unalias ll lt la lal lat 2>/dev/null
80 # List the files in list format with access rights, etc.
82 # List the files sorted by last modification date.
86 # List all files in list format with access rights, etc.
88 # List all files sorted by last modification date.
92 # Make going up directories simple.
95 alias ....='cd ../../..'
96 alias .....='cd ../../../..'
98 # Automatically use unified diffs.
101 # COLUMN is set to `| column -t` if it's available, empty otherwise.
103 # Display all files (-s), use human readable sizes (-h) and display the
104 # complete size (-c).
106 # Use human readable sizes and format it nicely, thanks to climagic
107 # (http://twitter.com/climagic/status/49623386762129408).
109 command df -hP "$@" COLUMN
112 # Highlight matched strings. Doesn't work with a pager!
113 alias grep='grep --color=auto'
115 # Pipe output through less.
117 command tree -C "$@" | less -S
120 # Better viewer for info pages .. just pipe everything into less.
122 command info "$@" 2>/dev/null | less
125 # Using su (or sudo) as root to a less privileged user might allow the other
126 # user to run arbitrary commands as root. See also Debian bugs #628843 and
128 if test "`id -u`" -eq 0; then
130 echo 'never su as root' >&2
135 # Use short `ip` output per default.