Что значит . .bashrc на самом деле делать?

13

Когда я ввожу например. новый псевдоним в моем .bashrcфайле. Я не могу использовать его в этом окне терминала сразу, и до недавнего времени я думал, что мне нужно перезапустить терминал, чтобы перезагрузить .bashrcфайл. Тогда я где-то узнал, что если я напишу

. .bashrc

это перезагрузит .bashrcфайл в текущем окне, и мне не нужно перезапускать. Это работает плавники, но что на самом деле происходит? Почему это перезагрузить .bashrcфайл?

лопата
источник
1
С помощью .«источника» файла. Это означает, что он выполняется в основном
Der Hochstapler
Возможный дубликат Что делает источник?
Дэн Д.
1
@DanD. хотя ответ тот же, вопрос звучит для меня совершенно иначе.
Calimo
1
@ Дан Д. Этот вопрос больше о назначении . , До сих пор я всегда думал о . как сокращение для текущего каталога и .. как сокращение для родительского каталога. Я так и не понял . был псевдоним для источника (который в свою очередь был совершенно новой концепцией для меня). Если кто-то приходит сюда и хочет узнать разницу, которую я обнаружил В чем разница между выполнением сценария bash и поиском сценария bash? быть очень полезным.
Спейд

Ответы:

17

Потому .что это команда.

Это встроенная команда оболочки, которая читает указанный файл и выполняет команды в нем в текущем процессе оболочки.

Оболочка Bourne Again также имеет sourceсиноним этой команды. Но это Bashism (который оболочка Bourne Again взяла из C Shell). Хотя это Bashism, который оболочка Bourne Again разделяет с оболочкой TENEX C, Z Shell и другими (но не оболочкой Korn, обратите внимание). Единственная спецификация UNIX только стандартизирует ..

Также обратите внимание, что поведение ./ sourceслегка изменяется в зависимости от того, запускается ли оболочка Bourne Again в режиме, совместимом с POSIX, или нет. (Опять же, это похоже на другие оболочки, хотя их нестандартное поведение не совпадает с поведением друг друга. Например, в оболочке Z имеется механизм скомпилированных сценариев оболочки, который sourceнесколько отличается от .обработки пути поиска. The Korn shell .будет выполнять функции оболочки, для другого примера.)

~/.bashrcэто всего лишь один из нескольких файлов, содержимое которых (в зависимости от того, как вызывается процесс оболочки) автоматически получается при запуске оболочки. Там нет ничего, что запрещает его вручную . Хотя, если его действия не являются идемпотентными, возможно, вам придется поработать над исправлением.

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

JdeBP
источник
1

help . скажу вам:

.: . filename [arguments]

Execute commands from a file in the current shell.

Read and execute commands from FILENAME in the current shell.  The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.

Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.

Saying . .bashrcвыполняет (источник) файл, .bashrcкоторый делает изменения, внесенные в файл, доступными в текущем сеансе.

По умолчанию ~/.bashrcбудет читаться при входе в систему.

.это синоним для source.

devnull
источник
1

.Команда это то же самое , как sourceкоманда, которая выполняет свой .bashrcфайл. Это добавляет все псевдонимы, которые вы определили, и любые другие параметры / переменные оболочки в текущую среду. Со sourceстраницы помощи:

source: source filename [arguments]
    Execute commands from a file in the current shell.
ethanwu10
источник