Мне интересно, почему добавление записи .bashrc
приводит к перезаписи ссылки? Например, на тестовой машине я установил Java с , apt-get install openjdk-7-jre
а затем поигрался с .bashrc
добавлением alias java="echo Java!"
. Когда я запустил java
из bash, я обнаружил, что Java!
вместо запуска java, расположенной в , он вывел echo /usr/bin/java
. Я также обнаружил, что это происходит с ps
, sh
и screen
. Так почему же это происходит?
решение1
Потому что так работает Bash. Это есть в руководстве: псевдонимы имеют более высокий приоритет при попытке сопоставить ввод с командой.
Обычно псевдонимы используются для переопределения команд, например:
alias java="\java -Xmx=1G"
Вышеуказанный псевдоним увеличивает максимальный объем памяти по умолчанию, доступный для процесса Java, с 256 МБ до 1 ГБ. Однако единственный способ, которым это может иметь какой-либо полезный эффект, — это если при вводе java
, он запускает псевдоним, а не команду.