Задать переменную среды: HOSTNAME=carson.example.com
Сделать переменную среды доступной для пользователей: export HOSTNAME
Вывести переменную среды на экран: echo $HOSTNAME
Задать переменную среды для отдельной программы: env DISPLAY=seeker.example.com:0.0 nedit (env принимает опции: -i запуск с пустой средой, -u - удалить значение определенной переменной).
Наиболее распространенные переменные среды:
-USER, USERNAME - имя пользователя
-SHELL - путь к текущей командной строке
-PWD - текущая рабочая директория
-HOSTNAME - текущее TCP/IP имя хоста
-PATH - директории, в которых будет производиться поиск исполняемых файлов
-HOME - путь к домашней директории пользователя
-MAIL - путь к временным файла почты (mail spool)
-LANG - текущий язык
-TZ - часовой пояс
-LD_LIBRARY_PATH - директории в которых будет проиводиться поиск файлов библиотек
-PS1 - сообщение по умолчанию в командной строке. Как правило содержит перменные, такие как \u (пользователь), \h (имя хоста), \W (рабочая директория)
-TERM - имя текущего типа терминала (например xterm)
-DISPLAY - дисплей, используемый Х сервером. Как правило 0:0 (первый дисплей). Если на компьютере запущено несколько сессий Х, у каждой будет свой номер дисплея, например 0:0 у первой, 1:0 у второй и т.д.
-EDITOR - программа, которая запускается при вызове другой программой текстового редактора (обратить внимание: графические редакторы могут вызывать проблемы, если запускать их в текстовом режиме)
В некоторых случаях в PATH добавляется индикатор текущей директории (.) Это может быть небезопасно, т.к. злоумышленник может оставить потенциально опасную программу с именем системной (например ls) в текущей директории пользователя. По этой причине не следует добавлять текущую директорию в PATH, особенно для суперпользователя. Если это необходимо для обычного пользователя, индикатор текущей директории следует добавить в конец строки.
Значения переменных среды, заданные командой export не сохраняются после перезагрузки. Чтобы задать их на постояной основе, следует добавить их в /etc/profile или конфигурационные файлы пользователей.
Альясы: при наборе одной команды, она автоматически заменяется другой, например alias ls='ls --color'
Конфигурационные файлы оболочек можно классифицировать следующим образом: 1. пользовательские и глобальные 2. файлы запускаемые процессом входа в систему (например подключение к консоли в текстовом режиме) и файлы запускаемые другими процессами (например xterm)
Type of file * Login file location * Non-login file location
*****************************************************************************************************
Global * /etc/profile и файлы в /etc/profile.d * /etc/bashrc or /etc/bash.bashrc *
User * ~/.bash_login, ~/.profile, или ~/.bash_profile * ~/.bashrc *
*****************************************************************************************************
Помимо скриптов запуска, оболочки могут иметь скрипты, вополняемые при выходе. Обратить внимание: скрипты, выполняемые при выходе могут работаь некорректно, если запущено несколько сессий одного и того же пользователя.
Книги по shell: Cameron Newham - Learning the Bash Shell, 3rd Edition (O’Reilly, 2005)
Richard Blum, Christine Bresnahan’s - Linux Command Line and Shell Scripting Bible, 2nd Edition (Wiley, 2011)
shell-скрипт должен начинаться строкой: #!/bin/sh
#! - это специальная последовательность символов (называемая shebang, hashbang, hash ping, pound bang), которая указывает ядру на то, что содержимое файла является скриптом и указывает путь к интепретатору. Как правило, /bin/sh является символической ссылкой на /bin/bash Если в скрипте используются специфические возможности отдельной оболочки, следует указать ее в качестве интерпретатора, напримет /bin/tcsh
Файл скрипта следует сделать исполняемым: chmod a+x my-script Даже если в свойствах файла не прописано разрешение на выполнение, его можно выполнить запусти интерпретатор и указав файл в качестве аргумента. Также файл можно запустить предварив его командой source или . :
$ source my-script
$ . my-script
В таком случае скрипт будет выполнен в текущей оболчке, без создания новой.
Если в теле скрипта прописать несколько команд в следующем виде:
/usr/bin/xterm &
/usr/bin/xterm
второй экземпляр xterm запустится не дожидаясь закрытия перевого. Без амперсанта второй экзмепляр xterm не будет запущен, пока не закроется первый.
Отправить почту из скрипта: mail
Переменные, передаваемые скрипту называются параметрами. Они состоят из знака доллара ($) и цифты от 0 до 9. Например:
#!/bin/sh
useradd -m $1
passwd $1
mkdir -p /shared/$1
$0 это имя самого скрипта.
Также в скриптах используются переменные, названия которых начинаются с буквы. Если переменной присваивается значение из вывода команды, эту команду следует заключить в (`) (символ на клавиатуре вместе с ~). Например: ip=`route -n | grep UG | tr -s " " | cut -f 2 -d " "`
Чтобы считать переменную из стандартного ввода используется команда read. Например:
echo -n "Enter a username: "
read name
useradd -m $name
В скрипте можно использовать условный оператов if. Примеры: if -f (истинно, если файл существует), if-s (истинно если файл существует и имеет ненулевой размер), ib string1 == string2 (истинно если 2 строки имеют одинаковые значения). Условия записываются в квадратных скобках после оператора, их можно комбинировать с ипользованием операторов "и" (&&) "или" (||)
if [ conditional-expression ]
then
commands
else
other-commands
fi
Если имеется много вариантов можно использовать оператор case:
case word in
pattern1) command(s) ;;
pattern2) command(s) ;;
. . .
esac
Можно использовать циклы:
#!/bin/bash
for d in `ls *.wav` ; do
aplay $d
done
Такой скрипт воспроизводит все файлы wav в директории. Полезной в циклах может быть команда seq (генерирует список числет начиная первым и заканчивая последним аргументом): for x in `seq 1 10` Такой цикл будет выполнен 10 раз.
Цикл с while будет выполняться пока условие истинно:
while [ condition ]
do
commands
done
Цикл с until будет выполняться пока услови ложно.
Также в скриптах можно использовать функции:
myfn() {
commands
}
С помощью SMTP осуществляется пересылка (push) сообщений. Наиболее популярные SMTP серверы для линукс:
-sendmail - одна из наиболее популярных программ. в настоящее время утрачивает свои лидирующие позиции
-postfix - разработана как модульная замена sendmail, проще в конфигурировании
-exim - не обладает модульностью как posfix но намного проще в конфигурировании чем senmail
-qmail
Если система под управлением линукс должна функционировать как почтовый сервер, с которого пользователи могут читать почту непосредственно, следует использовать pull-протоколы (POP либо IMAP). Такие протоколы поддерживают Cyrus IMAP и Dovecot.
Работать одновременно с push- (SMTP) и pull-протоколами может Fetchmail (утилита для unix-подобных систем, созданная для сбора почты с удаленных POP3, IMAP, ETRN и ODMR почтовых серверов и доставки локальным пользователям. Другими словами- консольный почтовый клиент.)
Для отправки/получения почты можно использовать программы mail или nail. Также эти утилиты можно использовать для отправки почты из скриптов.
Просмотр очереди почтового сервера: mailq (sendmail -bp)
Список альясов содержится в файле /etc/mail/aliaces Все почтовые серверы имеют учетную запись postmaster, письма на которую переадресуются администраторую почтового сервера. Большинство альясов перенаправляет письма учетной записи root. Для улучшения безопасности следует созадть еще один альяс, который будет перенаправлять все сообщения, адресованные root (втч перенаправленные) учетной записи администратора: root: yourusername Некоторые почтовые серверы требуют компиляции файла alicases командой newaliaces.
Также перенаправлять почту можно на уровне пользователя. Для этого следует отредактировать файл ~/.forward Этот файл должен содержать имя учетной записи на данном компьютере, либо адрес почты, на который будет осуществляться перенаправление.
Базы данных SQL:
-MySQL - Реализация oracle.
-Postgre SQL - развитие СУБД Ingres (post-ingres SQL). Лицензия BSD.
-SQLIte - не СУБД. Способ хранения данных с использованием SQL-интерфейса в программе.
MYSQL:
запуск клиента: mysql
отобразить базы данных: SHOW DATABASES;
создать базу данных: CREATE DATABASE test;
начать использование USE test;
создать таблицу с 5 столбцами: CREATE TABLE objects (name VARCHAR(30), color VARCHAR(20),
-> size FLOAT, hardness ENUM('soft','medium','hard'),
-> value DECIMAL(10,2));
вставить данные в таблицу: INSERT INTO objects
-> VALUES('lizard','green',6,'soft',10.00);
обновить значения: UPDATE objects SET size=5 WHERE name='lizard';
выбрать данные: SELECT value,color FROM objects;
удалить данные: DELETE FROM locations
-> WHERE name='tree' AND location='back yard' ;
выбрать данные из нескольких таблиц:
SELECT objects.name, objects.value, SUM(value)
-> FROM objects, locations
-> WHERE locations.name=objects.name
-> GROUP BY value;
Источник: Roderick W. Smith - LPIC study guide, 3d edtition
Комментариев нет:
Отправить комментарий