Хардкорные разборки с консолью j1m (j1m@list.ru) Xakep, номер #069, стр. 069-112-2 $ setterm -foreground blue -background white –store Ключ -store нужен для сохранения всех внесенных изменений. Праздник в консоли Наконец, пришло время поговорить об одной из самых полезных программ для работы в консоли - screen. Эта программа существенно упрощает жизнь юниксоида. Это настоящий оконный менеджер для консоли, очень удобный и многофункциональный. Но услышав про оконный менеджер, не нужно сразу представлять себе иксовый диспетчер окон. Screen предоставляет возможность создавать внутри одного терминала несколько терминалов (окон). Таким образом, зарегистрировавшись на одном терминале, можно работать с множеством приложений одновременно, при этом можно разделить одно окно на два и работать в двух окнах сразу. Можно сделать так, чтобы нижнюю строку терминала занимала строка состояния, в которой будет отображаться время, дата, текущие окна, загрузка процессора и т.д. Можно назначить горячие клавиши для запуска часто используемых приложений, которые будут открываться в отдельном окне. С установкой никаких проблем быть не должно, т.к. screen можно найти в любом дистрибутиве в виде бинарного пакета. Для того чтобы со screen было действительно удобно работать, необходимо добавить в конфиг несколько строк. Глобальный конфиг screen'а хранится в /etc/screenrc, а в роли персональных конфигов пользователей выступают файлы ~/.screenrc. Пример конфига можно взять в каталоге etc из тарболла с исходниками. $ vi ~/.screenrc # долой приветствие startup_message off # показывать мигание экрана вместо писка динамика, шансы стать эпилептиком резко снизятся vbell on # размер буфера прокрутки defscrollback 1000 # волшебная строка shelltitle '$ |sh' # создавать login-шелл shell -$SHELL # строка состояния hardstatus lastline "%{+b wk} %c %D %d %M %Y $LOGNAME : %H %=[ %w ] " # по клавише Esc создать окно и запустить в нем команду su bind \033 screen -ln -t root 9 su Хочу обратить твое внимание на строку shelltitle '$ |sh', за счет которой имя работающего в окне приложения отображается рядом с номером окна. Например, сейчас у меня в строке состояния можно увидеть [ 0 sh 1* emacs 2 mikmod 3 mutt ] - это значит, что текущим является первое окно, в котором запущен редактор emacs, также в остальных трех окнах выполняются оболочка bash (0), проигрыватель трекерной музыки mikmod (2) и почтовик mutt (3). Но чтобы эта опция работала, необходимо в /etc/profile добавить строку: export PROMPT_COMMAND = 'echo -n -e "\033k\033\134"' С помощью опции bind можно переназначить дефолтные комбинации клавиш или повесить запуск определенных команд на комбинации клавиш. Синтаксис ее предельно прост: "bind клавиша команда". Но следует учитывать, что все комбинации в screen должны начинаться с комбинации ctrl+a, т.е. запись "bind 'F' screen fetchmail -v" означает: «нажать комбинацию ctrl+a, затем нажать клавишу F для того, чтобы запустить в новом окне fetchmail (для запуска приложений в отдельных окнах их следует указывать как аргумент команды screen)». Упрощенно эта комбинация записывается как C-a F. Однако при переназначении клавиш не забывай, что многие комбинации уже используются для управления самим screen'ом. Теперь поговорим об управлении программой, так сказать, в реальном времени. |