2

В моей компании есть общесистемные файлы bashrc, такие как /etc/bashrc и так далее.

Внутри они получают все больше и больше файлов. Это очень сбивает с толку (я заметил, что мой "ls" наделен кучей флагов для ls, которые я не хочу).

Я хочу для моего ~/.bashrc очистить эффекты всех bashrcs.

Есть ли что-то подобное в bash? Просто для очистки всех псевдонимов, функций и т.д., Определенных в общесистемных файлах.

1 ответ1

0

Самый простой способ - добавить эту строку в ваш ~/.bashrc :

unalias -a

Насколько я знаю, нет эквивалента для очистки всех функций. Вы можете, однако, очистить их один за другим, используя

unset -f function_name

Следующие два варианта bash также актуальны:

  --rcfile file
          Execute  commands  from file instead of the system wide
          initialization file /etc/bash.bashrc and  the  standard
          personal  initialization file ~/.bashrc if the shell is
          interactive (see INVOCATION below).

  --norc Do  not read and execute the system wide initialization
          file /etc/bash.bashrc and the  personal  initialization
          file  ~/.bashrc  if  the  shell  is  interactive.  This
          option is on by default if the shell is invoked as sh.

Таким образом, вы можете установить bash в качестве псевдонима для bash --norc:

    alias bash='/bin/bash --norc'

Таким образом, каждый раз, когда вы вручную запускаете bash запускается новая оболочка без файлов инициализации. Затем вам нужно будет вручную получить ваш .bashrc .

Я думал, что вы могли бы объединить --norc и --rcfile , чтобы прочитать только ваш ~/.bashrc но не смогли заставить его работать.

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