1

Я пытаюсь отредактировать мою конфигурацию .bashrc , но когда я пытаюсь получить доступ к конфигурации с помощью:

компьютер:~ home $ .bashrc

Я получаю: -bash: /.bashrc: No such file or directory ошибка каталога .

Почему не работает .bashrc?

(OSX 10.10)

2 ответа2

1

Краткий ответ: это не работает, потому что с .bashrc вы пытаетесь выполнить команду с именем .bashrc , которая должна существовать где-то в вашем $PATH и должна быть исполняемой.

Как редактировать:
Если вы хотите отредактировать его, вы должны написать что-то вроде

nano ~/.bashrc

или vim ~/.bashrc или emacs ./bashrc или любой другой текстовый редактор, который вам нравится; Все изменения вступят в силу в следующий раз, когда вы откроете интерактивную (не входя в систему) оболочку.

Еще несколько слов:

  • Он должен существовать в вашем $PATH и не обязательно в текущем каталоге, потому что вы используете commandname а не ./commandname . Текущий каталог обычно не включается в путь по соображениям безопасности.

  • Он должен быть исполняемым, потому что даже если файл с таким именем присутствует в одном из каталогов вашего $PATH , если он не исполняемый, он не запустится.

  • Этот файл (~/.bashrc) обычно используется оболочкой bash когда оболочка является интерактивной. Обычно он хранится в вашем домашнем каталоге (вы можете найти его в ~/.bashrc) и определяет поведение ваших интерактивных оболочек.

    От man bash:

    Когда запускается интерактивная оболочка, которая не является оболочкой входа в систему, bash читает и выполняет команды из ~/.bashrc, если этот файл существует.

  • . ~/.bashrc вы получите исходный файл, как если бы вы писали его построчно в оболочке.
    Предупреждение Это означает, что вы снова запустите все команды внутри. Он не забудет, например, старый alias присутствующий с ошибкой в предыдущей версии файла ...
    Для ясного понимания введенного поведения лучше начать

Дальнейшие лекции:

0

.bashrc: команда не найдена

Команда, которую вы ищете

source ~/.bashrc

или же

. ~/.bashrc

Замечания:

  • Поскольку вы, похоже, уже находитесь в своем домашнем каталоге, вы можете опустить ~/ в приведенных выше командах.

, (источник или оператор точки)

Чтение и выполнение команд из аргумента имени файла в текущем контексте оболочки.

Синтаксис

. filename [arguments]

source filename [arguments]

Когда сценарий запускается с использованием исходного кода, он запускается в существующей оболочке, любые переменные, созданные или измененные сценарием, останутся доступными после его завершения. Напротив, если скрипт запускается как имя файла, то для запуска скрипта будет создан отдельный подоболочек (с совершенно отдельным набором переменных).

Существует небольшая разница между выполнением сценария с помощью .ss64script (точка ss64script) и. ss64script (точка пробела ss64script): первый запускает файл, который был скрыт из команды 'ls' (хотя ls -a будет показывать скрытые файлы), второй параметр будет выполнять ss64script, даже если он не был задан как исполняемый файл с помощью chmod ,


Дальнейшее чтение

  • Индекс AZ командной строки Bash для Linux - отличный справочник по всем вопросам, связанным с командной строкой Bash.
  • source - чтение и выполнение команд из аргумента имени файла в текущем контексте оболочки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .