Вторая команда (конвейер) в этом примере формирует и посылает письмо с отчетом о неуспехе пользователю den.
Чтобы перенаправить в файл вывод всех команд из списка, нужно взять весь список в круглые скобки:
$ ( date; free; who; ) > logfile
Список, взятый в круглые скобки, выполняется в дочерней оболочке, имеющей собственные локальные переменные и текущий каталог:
$ pwd; ( cd / tmp ; pwd ) ; pwd;
/home/den
/tmp
/home/den
$
Если нужно часто выполнять одну и ту же последовательность команд, можно оформить ее как функцию:
$ function morning_report {
> date;
> free;
> W;
> }
$ morning_report | mail root
Имена и область видимости функций подчиняются тем же правилам, что и для переменных. Нельзя определять функцию и переменную с одинаковыми именами.
Определенные вами переменные и функции действительны только для текущего сеанса работы в оболочке bash
. Чтобы воспользоваться ими в следующем сеансе, запишите их в текстовый файл, а когда они понадобятся, загрузите этот файл в память командного интерпретатора встроенной командойsource
:$ cat > foo
myvar="Моя переменная"
function myfun {
echo $myvar
}
^D
$ source foo
$ myfun
Моя переменная
$
Команда source
myvar
и функцию myfun
из памяти оболочки командой unset
, сделайте файл foo
исполняемым командой chmod (п.3.4.3) и исполните его. Убедитесь, что после его выполнения переменная myvar
и функция myfun
остались не определены.3.4.8. Инициализационные файлы bash
Начальные значения переменных окружения становятся известны командному интерпретатору bash
из инициализационных файлов, которые он прочитывает сразу после своего запуска. Эти файлы называются.bash_profile
и .bashrc
(в порядке чтения оболочкой) и берутся из домашнего каталога запустившего оболочку пользователя.Команды, присутствующие в этих файлах по умолчанию, только прочитывают общесистемный файл настроек /etc/bashrc
При завершении сеанса работы с оболочкой выполняются команды в файле ~/.bash_logout
Команду установки переменной CDPATH, рассмотренной в п.3.4.3, имеет смысл добавить в .bash_profile
Глава 4
Рабочее место пользователя
Если вы собираетесь только изучать, настраивать и администрировать свою ОС Linux, то вашим рабочим местом станет консоль, а средой обитания — командная строка. Для нормальных же людей компьютер — не хобби, а инструмент для решения определенного круга задач. Задачи эти решаются не средствами операционной системы, а прикладными программами, и большинство людей привыкло решать их с помощью приложений, работающих в графическом режиме под управлением ОС семейства Windows. Среди таких приложений:
♦ офисный набор: текстовый процессор, редактор электронных таблиц, система управления базами данных;
♦ средства просмотра и редактирования графической информации;
♦ средства общения с коллегами (электронная почта, интернет-пейджер);
♦ средства получения информации из Интернета: веб-браузер, ftp-клиент;
♦ программы для воспроизведения аудио- и видеозаписей;
♦ узкопрофессиональные программные пакеты: математические, инженерные, бухгалтерские, разработчика программного обеспечения и т.п.
Для подавляющего большинства таких Windows-приложений существуют достойные (и, что немаловажно, бесплатные) Linux-аналоги, совокупность которых и создает удобную среду рабочего места.
4.1. Графическая система X Window
Работа в графическом режиме под Linux возможна благодаря системе, именуемой X Window (или просто Иксы; только не называйте ее X Windows), разработанной в Массачусетсом технологическом институте (MIT) и ставшей стандартом для всех UNIX-подобных систем. Сами по себе Иксы — это не графический интерфейс как таковой, а лишь набор спецификаций, которым этот самый графический интерфейс должен соответствовать. В настоящее время действует версия 11 выпуск 6 стандарта на графическую подсистему для UNIX-систем, которая кратко обозначается как X11R6.