Каждый раз, когда я открываю терминал, несколько команд уже выполняются

Я новичок и долгое время не использовал Linux. Теперь я больше не знаю, что я тогда делал, что каждый раз, когда я открываю терминал, выполняются 3 команды, которые мне больше не нужны и которые больше не работают, как раньше. Теперь мой вопрос: как я могу отключить, чтобы эти команды выполнялись каждый раз, когда я открываю терминал.

2
задан 13 June 2020 в 23:09

1 ответ

Драйвер Установлено это показано здесь:

Kernel modules: bcma, wl

WL является правильным драйвером для этого адаптера.

Но проблема в том, что он не используется. Причиной может быть то, что безопасная загрузка включена в настройках UEFI или она помещена в черный список.

Проверьте, отключена ли безопасная загрузка в UEFI или BIOS. Если это не t help, запустите

grep wl /etc/modprobe.d/*

и посмотрите, есть ли где-нибудь черный список wl .

Если это не поможет, переустановите wl с помощью

sudo apt install --reinstall bcmwl-kernel-source
------- --121 -------- 863423 ----

Я не думаю, что есть способ изменить это. Вы можете отключить его только в соответствии с Справка Gnome .

и есть другие файлы ~ / .bashrc , которые могут вызвать проблему, которую вы описали.

Когда неожиданные команды запускаются при запуске оболочки Bash, проверьте .bashrc как Христос Такаридис говорит, что часто раскрывает проблему. Но иногда этого недостаточно. Можно проверить больше, чем просто команды source , и иногда вам захочется проверить больше файлов, чем просто .bashrc .

source оболочки Bash source также может быть написано . (что на самом деле является более распространенным написанием), поэтому в дополнение к:

grep source ~/.bashrc

Также может быть полезно выполнить:

grep -F '. ' ~/.bashrc

(без -F команда grep обрабатывает его паттерн как регулярное выражение и неэкранированный . в регулярном выражении соответствует любому символу, а не только литералу . .)

Хотя, даже с литеральным пробелом после . , как показано, это может иметь некоторые ложные срабатывания.

Если вы нашли файлы, которые были получены, либо с помощью команды source , либо . команда (в Bash они являются синонимами), затем я рекомендую изучить их содержимое перед закомментированием (с ведущим # ) или удалением источника или . линий. В них вы можете найти искомую команду или другую . или source команды.

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

Другой способ проверить, что было добавлено или удалено из .bashrc , - сравнить его с версией, которую система предоставляет вновь созданным учетным записям пользователей. Обычно это то же самое, что файл, с которым вы начали до внесения изменений, хотя иногда при обновлении Ubuntu с одного выпуска на другой этот файл изменяется ( без , что приводит к изменению файлов .bashrc в домашних каталогах существующих пользователей). Этот файл является /etc/skel/.bashrc (поскольку содержимое каталога / etc / skel копируется в домашние каталоги вновь созданных учетных записей пользователей при создании учетных записей обычным способом) и вы можете увидеть различия между ним и вашим файлом .bashrc , запустив:

diff /etc/skel/.bashrc ~/.bashrc

В одном из вариантов этой проблемы ваш ~ / .bashrc может содержать выводящие команды, расположенные очень высоко в нем, так что они выполняются перед проверкой, является ли текущая оболочка интерактивной или нет. Многие неинтерактивные оболочки не запускают команды из ~ /. bashrc вообще, но некоторые удаленные оболочки - которые в Ubuntu включают оболочку, которая неинтерактивно выполняет одну команду через ssh и которая управляет sftp или scp соединение - сделаем так. Поскольку большая часть того, для чего фактически используется .bashrc , не подходит для такой оболочки, по умолчанию .bashrc проверяет, является ли работающая в данный момент оболочка интерактивной, и останавливается, если это не так. Если вы хотите, чтобы что-то запускалось в этих оболочках, оно должно быть помещено перед проверкой интерактивности. Гораздо чаще вы этого не делаете, но, возможно, в любом случае поместите их туда. Команды перед проверкой интерактивности, которые вообще производят какой-либо вывод, обычно не позволяют sftp и scp работать для этой учетной записи пользователя, пока они не будут удалены.

(Или, реже, эта проверка может быть удалена или изменена. За пределами Debian и Ubuntu по умолчанию .bashrc может содержать или не содержать такую ​​проверку. Этот ответ предназначен главным образом для пользователей Ubuntu.)

В другом варианте этой проблемы команды, которые вы ищете, не могут быть найдены в ~ / .bashrc и выполняются только в оболочках входа в систему, которая включает в себя оболочку, которую вы получаете при входе в систему с неграфической виртуальной консолью, а также когда вы вводите ssh в машину, но не включает оболочку, которую вы получаете при открытии окна терминала (если вы не настроили ваше терминальное приложение для запуска оболочки входа в систему или если это не система WSL в Windows 10). shopt login_shell сообщает вам, является ли интерактивная оболочка Bash, которую вы сейчас используете, оболочкой входа в систему.

В этой ситуации вам следует проверить ваш ~ / .profile , который используют оболочки входа:

diff /etc/skel/.profile ~/.profile

В Ubuntu у вас обычно не будет ~ / .bash_profile или ~ / .bash_login файл. Если один из них существует, он используется вместо из ~ / .profile , хотя это может привести к тому, что ~ / .profile также будет использоваться при поиске ~ / .profile .

По умолчанию в Ubuntu ~ / .profile sources ~ / .bashrc , поэтому даже интерактивные оболочки входа в систему запускают команды в ~ / .bashrc и простое наличие проблемы в оболочке входа в систему , а также в других оболочках не означает, что она обязательно находится в другом месте, чем ~ / .bashrc .

Наконец, отметим, что общесистемные аналоги ~ /. bashrc и ~ / .profile являются /etc/bash.bashrc и / etc / profile , соответственно. Эти файлы редко изменяются и редко должны быть изменены, но если вы их измените, они также будут влиять на поведение запуска оболочки аналогичным образом.

2
ответ дан 19 June 2020 в 21:25

Другие вопросы по тегам:

Похожие вопросы: