Що робить. .bashrc насправді?


13

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

. .bashrc

це перезавантажить .bashrcфайл у поточному вікні, і мені не доведеться перезавантажувати. Це працює плавниками, але що насправді відбувається? Чому це завантажує .bashrcфайл?


1
З ., ви "джерелом" файлу. Це означає, що воно виконується в основному
Der Hochstapler

можливий дублікат Що робить джерело?
Дан Д.

1
@DanD. в той час як відповідь однакова, питання звучить для мене досить чітко.
Калімо

1
@Dan D. це питання більше стосується згадки про . . До цього часу я завжди думав про це . як скорочення для поточного каталогу та .. як скорочення для батьківського каталогу. Я ніколи не усвідомлював . був псевдонімом для джерела (що, в свою чергу, було для мене абсолютно новою концепцією). Якщо хтось приходить сюди і хоче знати різницю, я знайшов, в чому різниця між виконанням bash-скрипту і пошуку bash-скрипту? бути дуже корисним.
Лопата

Відповіді:


17

Тому що .це команда.

Це вбудована команда оболонки, яка зчитує названий файл і виконує команди в ньому в поточному процесі оболонки.

Оболонка Bourne Again також є sourceсинонімом цієї команди. Але це башизм (що оболонка Bourne Again взяла зі С-оболонки). Хоча це - башизм, який оболонка Bourne Again ділиться зі оболонкою TENEX C, Z Shell та іншими (але не приміткою пан Корн). Єдина специфікація UNIX лише стандартизується ..

Також зауважте, що поведінка ./ sourceнепомітно змінюється залежно від того, працює оболонка Bourne Again у своєму сумісному POSIX режимі чи ні. (Знову ж це, як і інші оболонки, хоча їх нестандартна поведінка не така, як одна до одної. Наприклад, у Z Shell є попередньо складений механізм сценарію оболонки, який sourceсуттєво відрізняється від .керованого шляху пошуку. Корн .Інший приклад оболонки буде виконувати функції оболонки.)

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

Подальше читання


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.

Скажіть, . .bashrcвиконує (джерела) файл, .bashrcякий робить зміни, внесені до файлу, доступними в поточному сеансі.

За замовчуванням ~/.bashrcбуде прочитано при вході в систему.

.є синонімом для source.


1

.Команда це те ж саме , як sourceкоманда, яка виконує свій .bashrcфайл. Це додає всі поточні псевдоніми та будь-які інші налаштування / змінні оболонки в поточне середовище. З sourceдовідкової сторінки:

source: source filename [arguments]
    Execute commands from a file in the current shell.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.