2013-09-25 2 views
2

Я пытаюсь сохранить gvim в качестве моего редактора по умолчанию, когда я использую VNC для своей машины. Но хочу, чтобы vim был моим редактором по умолчанию, когда я вошел в систему через SSH. Я не уверен, как это сделать в моем файле .bashrc, чтобы сделать это автоматически. Точно так же есть способ, которым я могу знать, что сеанс проходит через консоль, напрямую связанную с моей машиной.Как различать сеанс ssh или сеанс vnc или сеанс консоли в файле bashrc

Благодаря

ответ

0

Среда переменная $SSH_AUTH_SOCK должна быть установлена ​​в любой SSH сессии. Так что в вашем .bashrc, вы могли бы

if [ -n "$SSH_AUTH_SOCK" ] 
then 
    # code for SSH sessions here 
fi 

Как для определения ли вы на непосредственно прикрепленной консоли see this question; для получения имени tty в оболочке (а не из программы C), используйте команду tty.

+1

В моем случае я вижу, что, когда я использую VNC, установлен SSH_AUTH_SOCK, но нет, если я вхожу в систему через SSH. VNC Сессия: $ set | Grep SSH SSH_AGENT_PID = 4958 SSH_AUTH_SOCK =/TMP/брелока-TnDwmJ/SSH SSH_CLIENT = '192.168.1.1 60038 22' SSH_CONNECTION = '192.168.1.1 192.168.1.2 60038 22' SSH_TTY =/DEV/PTS/2 SSH Сессия: $ set | Grep SSH SSH_CLIENT = '192.168.1.1 49874 22' SSH_CONNECTION = '192.168.1.1 49874 192.168.1.2 22' SSH_TTY =/DEV/PTS/2 Примечание: Я не уверен, если это уместно, но я использую замазка для SSH и RealVNC для подключения vnc – adikshit

+0

Ах, похоже, ваша сессия VNC пересылается через туннель SSH. И я сделал (неуместное) предположение, что вы включили переадресацию SSH для своей другой сессии SSH. Вы проверяли среду обеих сессий для любых других различий? Может быть, есть что-то надежное, что вы могли бы использовать. – ajk

0

Спасибо за подсказку от ajk Я посмотрел на набор переменных и увидел, что VNCDESKTOP установлен только в случае vnc. Я использовал предложенный выше способ, и теперь он работает.

Хотя я все еще надеюсь, что кто-то может предложить, если это полное решение или нет

2

Это звучит, как вы на самом деле не волнует, будь то SSH, VNC или консоль. Вы заботитесь, есть ли у вас GUI для запуска gvim или нет.

Вы можете проверить это с $DISPLAY:

[[ $DISPLAY ]] && export EDITOR=gvim || export EDITOR=vim 

Это позволит установить ваш редактор gvim для VNC, а также XDMCP, NX, Chromoting, локальных графических логинов, SSH с графическим экспедирования, и все остальное, с X11.

Он установит ваш редактор на vim для обычных учетных записей SSH, а также Telnet, rsh, последовательных консолей, локальных логинов и всех других логинов, не основанных на X11.

Смежные вопросы