Несколько основных команд в Linux 1.1

man
Показывает справку к интересующей вас команде.
Синтаксис: man [раздел глоссария] имя_команды
Пример:
man tail Получить полную справку о команде tail
man 1 ed Получить справку о команде ed из общепользовательского глоссария.
Всего глоссариев 8:
1 общепользовательские
2 команды ядра
3 для разработчиков
4 периферия
5 системные софты
6 игрушки
7 касательно железа и спецификаций
8 администрирование
База данных справок находится в каталоге /usr/share/man и состоит из текстовых файликов, отформатированных в одном из гипертекстовых диалектов (man-db). Если у вас установлен пакет manpages-ru, некоторые файлы справки будут русскоязычными.

Навигационные и файловые команды

ls
Показывает содержимое текущего каталога. При наличии параметра пытается отобразить файлы, подпадающие под этот параметр, либо каталоги, перечисленные в параметрах.
Синтаксис использования: ls [маска или путь]
Примеры использования:
ls * (показать все файлы)
ls directory (отобразить содержимое директории directory)
Самые частые ключи для использования:
ls -l Показать список файлов со всеми их атрибутами (время, права, владельцы). Этот ключ часто доступен как алиас ll (две буквы l подряд).
ls -t Показать, отсортировав по времени - сначала самые новые файлы
ls -a Показать все файлы, даже скрытые, начинающиеся на точку
Частые приёмы использования с другими командами:
ls |wc -l Подсчитать количество файлов в текущей директории
man ls Узнать всё об использовании команды ls.

cd
Меняет текущий каталог на любой другой указанный. Аналог этого в графическом режиме - щёлканье по папкам в проводнике. Одна из самых частых команд при работе с файлами и директориями.
Синтаксис использования: cd куда
Примеры использования:
cd .. Перейти на один каталог вверх, выше.
cd ../../ Перейти на два каталога выше.
cd Desktop Перейти в каталог Desktop, находящийся в текущей директории
cd /mnt Перейти в каталог mnt, находящийся в корне файловой системы линукса.
cd ~ Перейти в домашний каталог текущего пользователя (обычно это каталог /home/$USER).

pwd
Отображает текущий путь в системе (то, где вы находитесь). Ключей и параметров нет.

cp
Копирует файлы-каталоги из одного места в другое. Требует обязательного наличия двух путей - куда и чего. Естественно!
Синтаксис использования: cp что-то куда-то
Примеры использования:
cp filename directory Скопировать файл filename внутрь директории directory
cp filename filename2 Сделать копию файла filename с именем filename2 (дубликат)
cp * /tmp Скопировать все файлы в текущей директории в папку tmp, которая находится в корне файловой системы.
cp -r * /tmp Скопировать все файлы и каталоги в текущей директории в директорию /tmp.
Самые частые ключи для использования:
cp -r Копировать рекурсивно - необходимо для копирования директорий, иначе они будут просто пропущены.
cp -v Копировать, перечисляя все копируемые объекты.
cp -f Копировать, не обращая внимания на ошибки.
cp -pRdfv Копировать, полностью сохраняя атрибуты, типы и владельцы файлов.

rm
Удаляет файл или каталог. Нафиг. Без всяких там корзин...
Синтаксис использования: rm что-нибудь
Примеры использования:
rm -rf * Уничтожить всё в текущем каталоге. Это не касается скрытых объектов, начинающихся на знак точки "."
rm filename Уничтожить файл.
rm directory/*tmp Удалить все файлы, оканчивающиеся на "tmp" в директории directory
Самые частые ключи для использования:
rm -r Удалять рекурсивно, то есть, включая поддиректории.
rm -f Удалять, невзирая на ошибки и не жаловаться.

mv
Перемещает файлы и/или каталоги из одного места в другое. Должны присутствовать параметры - что перемещать и куда. Итого целых два.
Синтаксис использования: mv что куда
Примеры использования:
mv * /tmp Переместить всё из текущей директории в директорию /tmp
mv file1 file2 file3 Desktop Переместить три указанных файла в поддиректорию Desktop относительно текущего пути.
mv file1 file2 Переименовать файл. (Полезная фича! )

find
Ищет файлы-каталоги по именам. Классная команда. Обычно ею не умеют пользоваться.
Синтаксис использования: find откуда_искать что_искать
Примеры использования:
find . -name '*bmp' Найти относительно текущего каталога все файлы, оканчивающиеся на bmp (рисунки то бишь)
find / -name '*bak' Найти по всей системе файлы резервных копий
find / -сtime -1 Найти в системе файлы, изменённые в последние сутки
find / -size +1024k Найти файлы, размером больше 1 мегабайта
find . -type d Найти все поддиректории, которые вложены в текущую директорию.
Частые приёмы использования с другими командами:
find . -size -2048k -exec rm -f {} \; Уничтожить все файлы относительно текущей директории, которые имеют размер менее 2-х мегабайт (например, почистить директорию с музыкой от мусора и недокачанных файлов)

grep
Выбирает из потока информации строки, в которых есть совпадения. Часто используется для поиска внутри файлов (даже рекурсивно). Если не указан файл, ждёт информации со входа, через вертикальную черту. Иначе обидится и повиснет.
Синтаксис использования: grep [ключи] [имя_файла]
Примеры использования:
grep -rn maska * Найти рекурсивно во всех файлах и каталогах строки со словом maska и указать номера строк и имена файлов.
grep -i -e 'one' -e 'two' filename Вывести строки из файла filename, в которых есть слова one и/или two, независимо от регистра (большие-маленькие).
grep -v '^$' filename Вывести всё содержимое файла, исключая пустые строки
grep '^[^#]' filename Вывести содержимое файла, исключая пустые строки и строки комментариев
grep -q karamba filename && echo Yes || echo No Сказать Yes, если в файле filename присутствует слово karamba или No в противном случае.

du
Подсчитывает, сколько места занимает тот или иной объект. Например, сколько "весит" текущий каталог.
Синтаксис использования: du [ключи] [объекты]
Примеры использования:
du * Выводит таблицу всех объектов и их размеров в текущем каталоге
du -s directory Показывает размер указанного каталога directory в байтах
du -sh Показывает размер текущего каталога, добавляя нужную букву множителя (М, Г, к)
Самые частые ключи для использования:
du -sh Выдаёт суммарное занимаемое место объекта или текущего каталога
du -ha Выводит всё подряд, но в конце подсчитывает ещё и общее занимаемое место.

wc
подсчитывает количество объектов на входе или в файле. Обычно используется вторым в связке (через вертикальную линию)
Синтаксис использования: wc [ключи] [файл]
Примеры использования:
wc -l filename Подсчитывает количество строк в файле
wc -c filename Подсчитывает количество байт в файле
wc -w filename Подсчитывает количество слов в файле
Частые приёмы использования с другими командами:
cat filename | wc -l Подсчёт строк в файле
cat filename |grep -v '#'| wc -l Подсчёт незакомментированных строк в файле (конфигурации чего-либо)

ln
Создаёт симлинки (ссылки) на каталоги и файлы. Это полезно, если файл лежит в одном месте, а доступ к нему хочется иметь в разных местах. С первого раза может это казаться излишним, но огромное число системных связок в линуксе работают именно так. Выглядит, как файл маленького размера, но если прочитать его - выведется содержимое файла, на который он ссылается.
Синтаксис использования: ln [ключи] файл_откуда линк_куда
Примеры использования:
ln -s /dev/ttyS0 /dev/ttyS1 Делает линк с /dev/ttyS0 как файл с именем ttyS1
ln -s libname.so.1.1 /usr/lib/libname.so Делает укороченное второе имя для библиотеки. (Именно так, по укороченным именам софты находят нужные библиотеки).

tar
Архиватор. Этим всё сказано.
Синтаксис использования: tar ключи имя_файла_архива [имена архивируемых объектов]
Примеры использования:
tar xzf archive.tar.gz Распаковать файл архива tar.gz
tar czf archive.tar.gz file1 file2 Сжать два файла в архив
tar cf archive.tar file1 directory1 Собрать без сжатия файлы и директории в один файл
tar xjf archive.tar.bz2 Распаковать файл архива tar.bz2
tar cjf archive.tar.bz2 * Сжать все файлы и каталоги в текущей директории в архив .tar.bz2
Примечание: .tar.gz и .tgz - это одно и то же. .tar.bz2 и .tbz - это тоже одно и то же. bz2 сжимает лучше, чем gz

cat
Показывает содержимое указанного файла.
Синтаксис: cat имя_файла
Примеры:
cat filename Выводит на консоль содержимое файла filename
cat directory/filename Выводит на консоль содержимое файла filename, который находится в поддиректории directory
Частые приёмы использования с другими командами:
cat filename | grep word Ищет слово word в строках файла filename и выводит строки, содержащие это слово.

head
Выводит первые несколько строк файла, либо того, что поступило на вход через вертикальную черту.
Синтаксис: head [ключи] [файл]
Примеры:
head -1 filename Вывести первую строчку из файла filename
head -100 filename Вывести первые сто строк из файла filename
Частые приёмы использования с другими командами:
cat filename | head -1 Вывести первую строку из файла filename

tail
Выводит последние несколько строк файла, либо того, что поступило на вход через вертикальную черту.
Синтаксис: tail [ключи] [файл]
Примеры:
tail -1 filename Вывести последнюю строчку из файла filename
tail -100 filename Вывести последние сто строк из файла filename
Частые приёмы использования:
tail -n 0 -f /var/log/syslog & Выводить на консоль всё, что добавляется в системный журнал. (Попытка чтения из системного журнала часто требует права суперпользователя)

less
Удобный просмотрщик текстовых файлов. Плавная прокрутка, быстрый поиск, множество опций, встроенная справка.
Синтаксис: less имя_файла
Примеры:
less /etc/apache/httpd.conf Открыть для просмотра и поиска файл конфигурации сервера apache.
ps -ef | less Просмотреть список процессов (с прокруткой и поиском).
Команды навигации при просмотре: стрелки - прокрутка, / - поиск, n - следующий найденный элемент, Ctrl+G - перейти в конец файла,!команда - выполнить команду оболочки, не выходя из редактора, q - выход из просмотрщика.

vi
Мощный текстовый редактор. Стандарт де-факто редактирования системных конфигурационных файлов - поддерживает множество расцветок, "знает" все конфигурационные файлы, сигнализирует цветом о неправильном синтаксисе, есть абсолютно на всех юниксах. Хотя на многих его подделка, а не он сам - nvi - умеет гораздо меньше и входит в базовые пакеты.
Мало кто знает, но есть замечательный вводный курс-учебник - команда "vimtutor ru". Быстро и эффективно на примерах обучает азам работы.
Синтаксис vi имя_файла
Примеры:
vi /etc/fstab Открытие на редактирование файла конфигурации автоподключения разделов.
Имеет три режима - командный (по умолчанию) - ожидает ввода команд через клавиатуру, выделения (выделение/копирование блоков текста) и редактирования - обычный, как у всех редакторов.
Команды в командном режиме:
/слово - поиск "слова"
n - следующий поиск
Ctrl+G - перейти в конец файла
:команда - одна из множества команд редактора
:!команда - выполнение внешней команды системы и возвращение в редактор
:w - запись файла
:q - выход из файла
:q! - выход без сохранения
:saveas filename - сохранить файл как filename
:wq - сохранить и выйти
x - вырезать в буфер по умолчанию
dd - удалить строку
d10d удалить 10 строк
y - скопировать символ или выделенную область
Y - скопировать текущую строку или выделенные строки в буфер по умолчанию
dw - удалить слово
o - переход в режим редактирования, вставив пустую строку
a - передвижение на следующий символ и перевод в режим редактирования
i - просто переход в режим редактирования
Команды в режиме выделения:
v - начать выделение (выделять можно стрелками). Затем копировать, удалять или вырезать, как указано выше.
Команды в режиме редактирования:
как обычно, но esc - выход в режим команд (сохранить, выйти и прочее).
Примеры команд:
:%s/a/b/g Заменить все буквы а на букву б по всему тексту.
:set hls включить подсветку найденных слов при поиске.
:split filename Разделить экран горизонтально на две части, в каждой части редактируется разный файл. Удобно для копирования-перемещения-сравнения. Если выполнить команду без параметра имени файла, разделит текущий файл. Модификация :vsplit разделит экран по вертикали. Между частями можно перемещаться сочетанием клавиш Ctrl+W, затем влево-вправо-вверх-вниз.
Частые приёмы использования:
vi filename + Открывает файл и перемещает окно просмотра на последнюю строку
vi filename +123 Открывает файл и перемещает окно просмотра на 123ю строку

chmod и chown
У всех файлов (и директорий) есть права доступа, ориентируясь по которым, система либо отказывает конкретному пользователю в доступе, либо разрешает использовать этот объект. Права доступа содержат три настройки - для владельца файла, для группы владельцев и для всех остальных. К примеру, если создать файл, то Ваш ID пользователя в системе станет владельцем этого файла, а ваша группа по умолчанию, в которую входит Ваш системный аккаунт, станет группой владельцев этого файла. Так сказать - я и моя семья. Ну и все чужаки.
Логично, что только владелец может менять уровень доступа для каждой из этих градаций. Ну и ещё root. Но root вообще может всё и всегда. Даже владельца файла менять.
Продолжим. Собственно, уровней доступа немного (гораздо меньше, чем в windows, на первый взгляд). Это:
Нет доступа Вообще. Числовое значение: 0, буквенное: -
Доступ на чтение Файлы при этом можно копировать и просматривать, числовое значение: 4, буквенное: r
Доступ на запись Файлы можно изменять и всё такое . Числовое значение: 2, буквенное: w
Доступ на исполнение Файлы можно выполнять, как процессы. В директории можно заходить. Числовое значение: 1, буквенное: x
Есть ещё специальные метки, например, метка SUID. Когда процессы создаются, они всегда имеют владельцем и группой владельца того, кто их запустил. Благодаря SUID при создании процесса можно владельцем этого процесса сделать пользователя, которому этот файл принадлежит. Например, скрипт создал Серёжа и поставил на него метку SUID, потом этот скрипт запустила Маша и без проблем обработала им фотографии, которые слил на комп всё тот же Серёжа. Если бы бита не было, у Маши по умолчанию не было бы доступа к Серёжиным фотографиям.
Биты можно комбинировать. Например, если у владельца выставлены все права на файл, то это можно представить как rwx (в буквенном выражении) или 7 в числовом. Соответственно, 5 - это rx, 6 - это rw, а 3 - это wx. То же самое касается всех остальных настроек - для группы и для других пользователей.
Исходя из этого, полную настройку безопасности для какого-то файла-папки можно указать тремя цифрами или 9ю буквами:
rwxrwxrwx
777
Утилита chmod меняет уровни доступа для объектов.
Синтаксис: chmod [-R] метка объект
Примеры использования:
chmod 755 file.ext Дать владельцу все права на файл, группе владельцев и всем остальным только чтение и выполнение.
chmod -R o-w directory Убрать для незнакомцев-не_владельцев (other) доступ на запись ко всем объектам внутри directory рекурсивно.
chmod a+x directory Дать всем (all) разрешение на вход в директорию
chmod u+s filename Дать файлу бит SUID
chmod g-w filename Запретить группе владельцев изменять файл
Есть ещё одна утилита, chown, она меняет ID-шники владельцев файла и пользоваться ей может только root. Ещё бы!
Синтаксис: chown [-R] владелец:группа объект
Примеры использования:
chown -R stimpack:users /home/stimpack Сбросить рекурсивно метки владельцев на владельца stimpack и группу владельцев users для всех объектов