aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Ryder <tom@sanctum.geek.nz>2017-01-25 14:00:17 +1300
committerTom Ryder <tom@sanctum.geek.nz>2017-01-25 14:06:03 +1300
commit43c88db1a7b402f28567e2659a40943b2a1a54ac (patch)
tree6d15afa0d2afbb96ac6a7cdfd193e6f1bc881cc8
parentBe more specific in ref name trimming (diff)
downloaddotfiles-43c88db1a7b402f28567e2659a40943b2a1a54ac.tar.gz
dotfiles-43c88db1a7b402f28567e2659a40943b2a1a54ac.zip
Clear away all aliases for interactive shells
Some systems like OpenBSD or Slackware set up well-meaning aliases that I don't want. We do this for Bash, Yash, and Zsh, but not for Ksh, because it looks like its implementations all variously use aliases to implement some POSIX builtins like fc(1) or type(1) in terms of their own builtins.
-rw-r--r--bash/bashrc5
-rw-r--r--yash/yashrc5
-rw-r--r--zsh/zshrc5
3 files changed, 15 insertions, 0 deletions
diff --git a/bash/bashrc b/bash/bashrc
index 3070c00c..ca13c4bf 100644
--- a/bash/bashrc
+++ b/bash/bashrc
@@ -9,6 +9,11 @@ esac
# shellcheck disable=SC2128
[ -n "$BASH_VERSINFO" ] && shopt -q restricted_shell && return
+# Clear away all aliases; we do this here rather than in $ENV because the ksh
+# family of shells relies on aliases to implement certain POSIX utilities like
+# fc(1) and type(1)
+unalias -a
+
# If ENV is set, source it to get all the POSIX-compatible interactive stuff;
# we should be able to do this even if we're running a truly ancient Bash
[ -n "$ENV" ] && . "$ENV"
diff --git a/yash/yashrc b/yash/yashrc
index a731c80b..c2b2df26 100644
--- a/yash/yashrc
+++ b/yash/yashrc
@@ -1,3 +1,8 @@
+# Clear away all aliases; we do this here rather than in $ENV because the ksh
+# family of shells relies on aliases to implement certain POSIX utilities like
+# fc(1) and type(1)
+unalias -a
+
# Load POSIX interactive shell startup files, because Yash won't do it if not
# invoked as sh(1)
[ -e "$ENV" ] && . "$ENV"
diff --git a/zsh/zshrc b/zsh/zshrc
index a97c0a73..68f8ffc7 100644
--- a/zsh/zshrc
+++ b/zsh/zshrc
@@ -1,6 +1,11 @@
# Emacs keybindings even if EDITOR is vi(1)
bindkey -e
+# Clear away all aliases; we do this here rather than in $ENV because the ksh
+# family of shells relies on aliases to implement certain POSIX utilities like
+# fc(1) and type(1)
+unalias -a
+
# If ENV is set, source it to get all the POSIX-compatible interactive stuff
[[ -n $ENV ]] && source "$ENV"