Я пытаюсь найти, где конкретное alias
было объявлено. Я искал все обычные места, которые я знаю, чтобы искать псевдонимы:
- ~ / .Bashrc
- ~ / .Bash_profile
- / И т.д. / Bashrc
- / И т.д. / профиль
Без удачи.
Я знаю, что alias
потому что, когда я делаю which COMMAND
, я получаю:
alias COMMAND='/path/to/command'
/path/to/command
Есть ли способ узнать, какой файл объявляет alias
только зная alias
имя?
set -x
как предложено наверху Вашего и посмотрите, сужает ли это это для Вас.set -x
в верхней части/etc/bash_profile
или/etc/bashrc
. Почему бы просто не бежатьbash -i -x
илиbash -l -x
?Ответы:
Я бы посмотрел
/etc/profile.d/
на обидчикаalias
.Вы также можете сделать следующее, чтобы найти его:
Это рекурсивно
grep
просматривает файлы в поисках строки, начинающейся сalias COMMAND
.Если ничего не помогает, поставьте это в конце
~/.bashrc
источник
Есть несколько вещей, которые вы можете попробовать:
bash -v
чтобы увидеть, какие строки читаются во время запуска оболочкиbash -x
чтобы увидеть, какие команды выполняются во время запуска оболочкиБаш-В
-v
Опция позволяетbash
печатать каждую строку из каждого файла сценария он читает , как он читает.Начните с запуска
подождите 5-10 секунд, затем нажмите Ctrl+C.
Это даст вам один файл с именем,
bash-i.out
который похож на все ваши файлы запуска, объединенные (или объединенные) вместе.Затем используйте,
less
чтобы открыть файл и найти псевдоним, используя/aliasname
.Теперь сравните, где этот псевдоним появляется по отношению к другим строкам в файле. Например, в большинстве систем,
/etc/bash.bashrc
имеет свой комментарий на вершине , которая говорит/etc/bash.bashrc
и~/.bashrc
имеет тоже.Если он находится выше вашей вершины
~/.bashrc
, то это, вероятно, файл запуска,/etc
который определяет псевдоним, в противном случае он находится в вашем~/.bashrc
файле или в файле, который он включает с помощьюsource
или.
(точка).Если это не показывает псевдоним, попробуйте
Это говорит о том, что bash - это оболочка для входа в систему, которая читает несколько разных файлов запуска, например,
/etc/profile
а~/.bash_profile
не/etc/bash.bashrc
и~/.bashrc
.Баш-х
Если
bash -v
не дает определенного ответа, попробуйтеbash -x
выполнить команду, которая печатает команды, которые выполняет оболочка, а не строки, которые читает ваша оболочка.Метод в основном такой же, как указано выше, за исключением изменения
-v
на-x
. (Вы можете использовать оба вместе, если необходимо.)Запустить только с одним файлом запуска
и посмотреть, есть ли у вас псевдоним.
Попробуйте то же самое с
rcfile
set to,/etc/bash.bashrc
если ваша система имеет это.Тогда попробуй
и делать то же самое с каждым файлом запуска bash, который имеет
profile
свое имя, например, изменить$HOME/.bash_profile
на/etc/profile
.Какой бы способ ни показывал псевдоним, он указывает файл, на который вы должны начать смотреть.
источник
Может твой
.xinitrc
? Вы также должны проверить, нет ли у вас.bashrc
или.bash_profile
других файлов в них. Например, я храню все свои псевдонимы в отдельном файле, на который ссылается эта команда:Некоторые вопросы, которые также могут помочь: это для обычного пользователя или пользователя root? Какая это команда? Какой вкус у Linux?
источник
Я следую очень распространенной практике помещения моих псевдонимов в
а затем вызывая это из .bashrc с
источник