Мини-шпаргалка по Unix
С юниксом я до некоторых пор был в достаточно прохладных отношениях - мы встречались довольно редко, каждый раз у него были новые дистрибутивы и формы. То в университете Солярис удивлял своим UI, то на хостинге каком-то надо покопаться через ssh. В какой-то момент я стал пристальней посматривать за его возможностями, удивляясь популярности. Наконец я поставил все основные дистрибутивы на виртуальные машины. Ленивый Slackware сопротивлялся больше всех. На этом казалось можно было бы и поставить точку в н ашем романе. Но теперь я работаю на маке и приходится разбираться основательней. Основное преимущество *никсов это конечно консоль и гибкая обработка файлов и текста из неё.
Итак, есть много основанных на unix систем - Solaris, MacOSX, FreeBSD и в частности Linux, у которого основные дистрибутивы: Debian - Ubuntu, Fedora - Red Hat, Slackware - Suse, Gentoo, Mandriva
Первое с чем столкнётся пользователь терминала это его интерфейс, hotkeys для быстрой работы
Tab | Автодополнение пути (для папок и файлов) при навигации |
↑ | Предыдущая комманда |
CtrlC | Убить исполняемую программу (Cancel) |
CtrlZ | Переключить вид из программы. Комманды fg, jobs, bg помогают управлять контекстом |
Q | Выход из некоторых программ (как например man - помощи) |
Навигация
Теперь основная часть - ходить по файловой системе, будь то локальной или удалённой.
ls | список файлов и папок |
cd | перейти в папку |
pwd | узнать в какой папке я нахожусь |
tail | быстрый просмотр конца файла (полезно для логов) |
cat | быстрый просмотр содержимого файла |
tree -d -L 2 | двух уровневое дерево папок |
find . -name *txt | поиск файла по имени |
grep "needle" file.txt | поиск по паттерну |
whoami | узнать какой я пользователь |
uname -a | узнать что за ядро (и может дистрибутив) |
Файловая структура
Что-бы ходить по файловой системе, надо понимать по какому принципу дерево построено, и хотя в разных дистрибутивах оно немного отличается, стандарт FSSTND такой..
FSSTND Стандарт | Suse 11 | Mac OS 10.7 | Описание |
boot | mach_kernel | Файлы загрузчика. Lilo и образ ядра | |
tmp | private/tmp | Временные фейлы для бута. Остальным - в /var/tmp | |
sbin | Системные комманды нужные при буте | ||
bin | Пользовательские комманды нужные при буте | ||
proc | Виртуальная папка настроек и процессов ядра | ||
dev | Подключённые устройства | ||
mnt | Volumes | Доступные через файловую систему устройства | |
lib | Общедоступные библиотеки root-уровня | ||
etc | private/etc | Конфигурационные файлы, зависящие от машины | |
root | private/var/root | Домашняя папка главного пользователя | |
home | Домашние папки остальных пользователей, в том числе ftp, httpd, samba-сервисов | ||
usr | Cтатичные фа йлы программ, библиотек, игр, документации, утилит не используемых при загрузке | ||
var | private/var | Часто меняющиеся файлы - почтовые сообщения, логи, временные файлы | |
cdrom | |||
opt | + | ||
image | |||
lost+found | |||
media | |||
selinux | |||
srv | Папка для апача, корень документов вместо htdocs | ||
net | маунт для NFS дисков | ||
private | сюда сгруппированы разные папки для ограничения доступа | ||
cores | место для сохранения дампов памяти при падении.. можно почистить при недостатке места | ||
Applications | Все установленные пользователем приложения | ||
Developer | |||
Library | Общедоступные файлы (например шрифты) межпрограммного уровя | ||
Network | |||
System | |||
Users | домашние папки настоящих пользователей, расширение home |