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