Важнейшие переменные окружения
HOME Путь к домашнему каталогу пользователя LOGNAME Имя пользователя USER Имя пользователя MAIL Путь к почтовому ящику пользователя PATH Путь поиска исполняемых файлов PS1 Вид приглашения оболочки PWD Имя текущего каталога OLDPWD Имя предыдущего каталога SHELL Оболочка, указанная в учетной записи TERM Тип терминала LANG Тип локализации (локаль) HOSTNAME Имя хоста SHLVL Номер оболочки (при входе в сеанс — 1, для дочерней — 2 и т. д.)
Переменная окружения PS1
PS1 определяет вид приглашения оболочки \u устанавливает вывод имени пользователя \W устанавливает вывод имени текущего каталога \h отображает в строке приглашения Bash имя хоста простой пример: echo $PS1 [\u@\h \W]\$ Пример из debian: echo $PS1 \[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ Механизм продолжения в Bash действует не только для имен файлов и команд. Если строка начинается с одного из символов: $, ~ или @, то Bash попытается дополнить строку как: имя переменной оболочки ($); имя пользователя (~); имя хоста (@).
Переменные окружения, общие для всех пользователей, хранятся в файле
/etc/profile
Настройки, специфичные для конкретных пользователей, хранятся в одном из файлов домашнего каталога пользователя
~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc
История команд
~/.bash_history в переменной окружения HISTFILE можно указать другой файл history Показать какой файл для сохранения истории используется: echo $HISTFILE Ко-во сохроняемых команд в истории (строк) echo $HISTFILESIZE history - показать историю выполнненых команд команд ВНИМАНИЕ ЕСЛИ ПЕРЕД КОМАНДО ПОСТАВИТЬ ПРОБЕЛ ТО В ИСТОРИЮ ОНА НЕ БУДЕТ СОХРОНЕННА !! - выполнить последнию команду !555 - выполнить команду под номером 555 !l - история будет просмотрена с конца до тех пор, пока не будет найдена команда с подходящими первыми символами, в данном случае с буквой "l"+ позволяет производить поиск команд в истории по любым символам в командной строке. Нажмите комбинацию клавиш + , и вам будет предложено ввести символы из командной строки, причем найденная команда будет отображаться до своего исполнения.
Команда alias
Многие команды, требуемые в повседневной работе, слишком длинны и неудобны. Для ускорения набора часто повторяющихся сложных команд им можно назначить псевдонимы с помощью встроенной команды alias. Команда alias, выполненная без аргументов, выводит список всех уже определенных псевдонимов. alias Новый псевдоним также создается командой alias. alias ls='ls --color=tty' alias vi='vim' alias ls='ls --color=tty' alias vi='vim' alias ll='ls -l'
Текстовые файлы и потоки
стандартный поток ввода (stdin), файловый дескриптор которого — 0 стандартный поток вывода (stdout), файловый дескриптор — 1 стандартный поток вывода ошибок (stderr), файловый дескриптор — 2 Стандартные потоки не надо специально открывать в программах, т. к. они автоматически ассоциируются с процессом при его создании. Поток ввода открыт на чтение, а потоки вывода и ошибок — на запись. Обычно по умолчанию стандартный поток ввода связан с клавиатурой, а стандартные потоки вывода и ошибок — с дисплеем. Перенаправление потоков ввода/вывода: < — оператор перенаправления стандартного потока ввода > или 1> — операторы перенаправления стандартного потока вывода 2> — оператор перенаправления стандартного потока вывода ошибок >> — для перенаправления потока вывода на добавление к файлу 2>> — для перенаправления потока вывода ошибок на добавление к файлу Эффект замещения старого содержимого файлов, возникающий при перенаправлении в них потоков вывода и ошибок, часто бывает нежелателен. Оболочка Bash позволяет исключить стирание содержимого файлов при перенаправлении в них потоков вывода или ошибок с помощью команды set –o noclobber. Однако все же есть способ даже при установленной опции noclobber переписать содержимое существующего файла с помощью операции перенаправления вывода или вывода ошибок. Для этого можно воспользоваться операторами: >| — перенаправление потока вывода с гарантированной перезаписью файла 2>| — перенаправление потока ошибок с гарантированной перезаписью файла Многие команды, работающие с текстом, позволяют использовать поток ввода вместо открытия на чтение файла. Для завершения ввода с клавиатуры следует нажать комбинацию клавиш+ для передачи в поток ввода символа окончания потока. После этого команда, читающая стандартный поток ввода, завершит свою работу, пример: $ cat > f1 Privet + $ cat f1 Privet В примере команда cat > f1 получила через стандартный ввод текст Privet с клавиатуры, который был записан через стандартный поток вывода в файл f1. В сценариях оболочки часто возникает необходимость передать блок текста, находящийся непосредственно в тексте сценария, какой-либо команде этого же сценария. В таких случаях используют конструкцию here document (документ здесь) - << (два знака "меньше"). В таком случае для окончания ввода используется любой удобный символ вместо символа конца файла. Этот символ должен быть указан после << и должен быть единственным символом в строке. cat > file.txt << . Privet Medved lol . cat > file2.txt << "EOF" Vot escho primer razraz EOF