мета-данные страницы
Это старая версия документа!
Глава 2: Основные команды и иерархия каталогов
2.1 Оболочка Bourne Shell (bash): /bin/sh
Оболочка (shell) — одна из самых важных частей системы Unix. Это программа, выполняющая команды, которые пользователи передает в терминал. Эти команды могут быть другими программами или встроенными функциями оболочки. Оболочка - это еще и среда программирования. Программисты Unix часто разбивают типичные задачи на более мелкие компоненты и применяют оболочку для управления ими.
Существует множество различных оболочек Unix (bash, zsh, fish…), но все они - производные от оболочки Bourne shell (/bin/sh), стандартной оболочки, разработанной в компании Bell Labs для ранних версий Unix. Любая система Unix требует ту или иную версию Bourne shell для корректной работы.
Система Linux использует расширенную версию оболочки Bourne под названием bash, или Bourne-again. Оболочка bash — это оболочка по умолчанию в большинстве дистрибутивов Linux, и каталог /bin/sh обычно указывает (через линк) на bash в системе Linux.
2.3. Основные команды
ls
Перечисляет содержимое каталога.
ls -l # подробный список
cp
Копирует файлы.
cp file1 file2
mv
Переименовывает или перемещает файлы.
mv file1 file2
touch
Создает файл или обновляет его временную метку.
touch file
rm
Удаляет файл (без возможности восстановления).
rm file
echo
Выводит аргументы в стандартный вывод.
echo Hello again.
2.4. Перемещение по каталогам
Пути в linux начинаются с / - корневого каталога (root directory).
. - означает текущий каталог.
.. означает родительский для текущего каталога каталог.
Пусть начинающийся с / называют абсолютным путем. Пусть, идущий не от / (а например от . или ..) называют относительным путем.
cd
Изменяет текущий рабочий каталог. Без аргумента возвращает в домашний каталог. cd dir # перейти в каталог cd # в домашний каталог
mkdir
Создает новый каталог.
mkdir dir
rmdir
Удаляет пустой каталог.
rmdir dir rm -r dir # удалить каталог со содержимым (осторожно!)
Wildcards (шаблоны поиска)
Символы расширения имен файлов:
* - любое количество символов
? - ровно один символ
Заключить в одинарные кавычки для буквального вывода
echo * # все файлы echo at* # начинаются на 'at' echo *at # заканчиваются на 'at' echo b?at # boat, brat и т.д. echo '*' # выведет звездочку
2.5. Команды среднего уровня
grep
Выводит строки, соответствующие выражению. Поддерживает регулярные выражения.
grep root /etc/passwd # поиск 'root' grep -i pattern file # без учета регистра grep -v pattern file # инвертированный поиск grep root /etc/* # поиск в нескольких файлах
less
Просмотр больших файлов постранично. Пробел — вперед, b — назад, q — выход. Поиск: /word (вперед), ?word (назад), n — следующее совпадение.
less /usr/share/dict/words grep ie /usr/share/dict/words | less
pwd
Выводит текущий рабочий каталог.
pwd pwd -P # истинный путь (без symlinks)
diff
Показывает различия между двумя файлами.
diff file1 file2 diff -u file1 file2 # унифицированный формат
file
Определяет тип файла.
file file
find и locate
find — поиск в реальном времени. locate — поиск по индексу (быстрее).
find dir -name file -print # с кавычками для шаблонов: find dir -name '*pattern*' locate file
head и tail
Просмотр начала/конца файла (по умолчанию 10 строк).
head /etc/passwd # первые 10 строк tail /etc/passwd # последние 10 строк head -5 /etc/passwd # первые 5 строк tail +5 /etc/passwd # со строки 5
sort
Сортировка строк в алфавитно-цифровом порядке. -n для числовой сортировки.
sort file sort -n file # числовой порядок*
passwd
Изменяет пароль пользователя. Запросит старый пароль и дважды новый.
passwd
chsh
Изменяет оболочку пользователя (zsh, ksh, tcsh и т.д.).
chsh
2.7 Файлы с точками (дот-файлы)
Скрытые файлы, начинающиеся с точки (.). Не отображаются без параметра -a. Примеры: .bashrc, .login, .ssh.
ls -a # показать дот-файлы ls # скрыты дот-файлы .??* # шаблон для дот-файлов (без . и ..)
2.8. Переменные окружения и оболочки
Переменные оболочки
Временные переменные для хранения текстовых значений.
STUFF=blah # присвоение (без пробелов!) echo $STUFF # обращение к переменной
Переменные окружения
Передаются всем дочерним процессам. Создаются командой export.
STUFF=blah export STUFF # переменная окружения
2.9 PATH
Специальная переменная окружения - список каталогов для поиска команд (разделены двоеточием).
echo $PATH # показать PATH PATH=dir:$PATH # добавить в начало PATH=$PATH:dir # добавить в конец