Переназначение команды su

Я случайно связал свою команду "su" с двоичным файлом Sublime Text (это то, что вы получаете, когда доверяете нажатию на вкладку, не глядя...) Теперь "su" просто открывает сеанс SublimeTExt. Кто-нибудь знает, как я могу вернуться к предыдущей версии и указать "su" на то, на что он должен указывать? Спасибо!

РЕДАКТИРОВАТЬ: случайно выданная команда

sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/su

3 ответа

Решение

Оригинал su в /bin/suпросто удалите ссылку:

sudo rm /usr/bin/su

Проверьте which su если он вернулся к /bin/su

Там приоритет в исполняемых путях, см.:

echo $PATH

/usr/bin приходит раньше /binТаким образом, ваша ссылка будет выполнена в первую очередь. Но чтобы научиться создавать эту ссылку снова и запустить which su ты получишь /usr/bin/su,

Ну, все $PATH могут содержать сам исполняемый файл или его ссылку. Таким образом, большинство из этих путей содержат смесь, дают ls -l /usr/bin попытка (я сократил длинные результаты):

total 925272
-rwxr-xr-x 1 root   root       39552 Dec 18 14:36 [
lrwxrwxrwx 1 root   root           8 Dec 21 15:14 2to3 -> 2to3-2.7
-rwxr-xr-x 1 root   root          96 Jan 12 10:12 2to3-2.7
-rwxr-xr-x 1 root   root          96 Jan 27 17:21 2to3-3.3
-rwxr-xr-x 1 root   root          96 Jan 27 17:23 2to3-3.4
-rwxr-xr-x 1 root   root        5655 Jan  7 12:12 404main
-rwxr-xr-x 1 root   root       10320 Feb  7  2013 411toppm
-rwxr-xr-x 1 root   root          39 Feb 17  2012 7z
-rwxr-xr-x 1 root   root          40 Feb 17  2012 7za
-rwxr-xr-x 1 root   root          40 Feb 17  2012 7zr
-rwxr-xr-x 1 root   root      106584 Jan 15 06:49 a2p
lrwxrwxrwx 1 root   root          52 Jan 25 00:22 a2ping -> ../share/texlive/texmf-dist/scripts/a2ping/a2ping.pl
-rwxr-xr-x 1 root   root         883 Apr 30  2007 a5booklet
lrwxrwxrwx 1 root   root          54 Jan 25 00:22 a5toa4 -> ../share/texlive/texmf-dist/scripts/pfarrei/a5toa4.tlu
-rwxr-xr-x 1 root   root       10328 Apr 28  2009 aa3d

Ссылки теперь понятны, 3 ссылки, остальные файлы:

  • l в начале lrwxrwxrwx (l link, d directory, - обычный файл, c char device).

  • -> указать на целевой файл.

Если вы использовали псевдонимы для этого, как вас спрашивают в комментариях, вы можете временно избежать псевдонима, набрав:

\su <restofthecommandhere>

"\" Указывает bash использовать настоящую команду, игнорируя псевдоним. Затем вы можете отредактировать ваш.bashrc и удалить строку, ссылающуюся на этот псевдоним:

gedit $HOME/.bashrc

Если вы использовали псевдоним, способ его удаления заключается в следующем:

  1. Временно удалите это

    unalias su
    
  2. Чтобы окончательно удалить его, удалите его из своего .bashrc или же .bash_aliases файл.

Скорее всего, вы не связались su возвышать текстовый двоичный файл, потому что для этого потребовалось бы sudo привилегии. Так что просто проверьте, работает ли первое решение в списке. Если это работает тогда, и проблема появляется снова позже, вам нужно следовать инструкции 2.

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