В мире Linux в отличии от мира Windows есть такой замечательный инструмент как консоль или другими словами командная оболочка (shell). Во многих случаях некоторые вещи гораздо легче и информативней сделать именно через консоль, не лазя по дебрям файловой системы и менюшек. Для многих это утверждение будет спорным, но со временем вы обязательно выделите те задачи которые легче и удобней выполнить из нее. Командных оболочек существует достаточное большое количество. Самые популярные из них это bash, zsh и sh. Так как большинство предпочитает bash поэтому и речь пойдет именно о bash.
Для начала немного ликбеза. Существуют команды которые будут работать в любом дистрибутиве и даже с любой оболочкой. Также существуют дистрозависимые команды которые будут актуальны только в конкретном дистрибутиве.
1. Команды работающие всегда и везде.
ls
Показывает список файлов и каталогов в текущей директории. У каждой команды всегда есть ключи (опции запуска) которые задаются после ввода самой команды и позволяют точно передать программе то, что мы от нее хотим. Самые частоиспользуемые ключи запуска:
ls -a
Будет отображать все видимые и доступные для чтения файлы в директории. По умолчанию ls не отображает файлы начинающиеся с точки (.). Таких файлов очень много в домашней директории пользователя (home).
ls -l
Отображает кроме списка файлов еще и права на эти файлы и их размер (Размер показывается только для файлов, для директорий не показывается)
ls -h
Делает вывод ls более читабельным для человека (размер выводится в килобайтах, мегабайтах…,а не в байтах) Соответственно будет актуально запускать
ls -alh
ls -R
Выводит список файлов и директори рекурсивно. Другими словами будут отображены все имеющиеся в текущей директории каталоги и вложенные в них файлы.
ls -H
Следовать по символьным ссылкам. Если в каталоге есть символьная ссылка на другой каталог, то будет отображаться и его содержимое тоже. Все описанные ключи могут быть введены совместно, например
ls -alhR
. Все остальные опции вы можете посмотреть запустив
ls с ключом --help.
rm
Удаляет файл или директорию. Удаление происходит мимо корзины, так что восстановление удаленных файлов будет возможно только с помощью специальных утилит. Данная команда так же имеет ключи запуска.
rm -f
Удаляет заданный каталог (или файл) принудительно, не спрашивая подтверждения пользователя.
rm -i
Будет запрашивать подтверждение на удаление у пользователя.
rm -r
(или -R) Рекурсивное удаление. Удаляет каталог со всеми вложенными в него файлами и каталогами. Например
rm -rfv /home/kernel/others
удалит этот каталог полностью со всеми файлами и директориями отображая процесс удаления каждого файла.
mv
Перемещение, и переименование файлов и каталогов.
mv -f
Аналогично предыдущему, принудительно перемещает файлы не задавая лишних вопросов.
mv -i
Интерактивный режим. При наличии конфликтов в директории назначения пользователю будет задаваться вопрос перезаписывать ли конфликтные файлы или нет.
mv -u
Перемещает файлы только в том случае если источник новее чем назначение. Например
mv -iv /home/kernel/a /Files
перемещает директорию /home/kernel/a и все ее содержимое в директорию /Files отображая при этом весь процесс.
mkdir
Команда для создания каталогов.
mkdir -m
Задание прав доступа для будущей директории. Например
mkdir -m 400 /home/kernel/test
создаст директорию test с правами доступа 400 (dr———) Только чтение)) Подробнее о правах я расскажу в следующий раз.
mkdir -p
Создать директорию рекурсивно. Это означает, что если вы хотите создать /home/kernel/a/b/c, но директории «a» в /home/kernel не существует, то mkdir создаст их автоматически.
cp
Копирует заданные файлы. Имеет массу опций из которых несколько самых важных я опишу:
cp -Rv
Рекурсивно копирует каталог в каталог назначения отображая прогресс.
cp -a
Рекурсивно копирует каталог сохраняя права на файлы при создании их в целевом каталоге.
cp -H
При копировании будет следовать по символическим ссылкам.
touch
Создает файл, а при условии что по заданному пути он уже присутствует — обновляет время его последнего изменения.
touch -t
Задает время последнего доступа к файлу или директории в формате ГГММДДччмм.
Например touch -t 201102151735
изменит время последнего доступа файла на 15 февраля 2011 года 17 часов 35 минут
cat
Выводит содержимое любого файла в stdout(стандартный вывод, например в ту консоль в которой команда и запускается)
cat -n
Нумерует выводимые строки.
df
Выводит информацию о смонтированных в системе разделах и подробную информацию о них. Например название раздела, точку монтирования, процент свободного и использованного места на разделе и общий их размер.
df -h
Аналогично предыдущим выводит данную информацию в удобном для восприятия человеком виде.
history
Выводит информацию о последней 1000 введенных команд. Очень удобная вещь, когда например помнишь что уже это делал, но забыл как.
cd
Задает путь перехода «терминалом» Например введя
cd /Files/Video/HD
вы переместитесь «терминалом» в данную директорию. Для быстрого возвращения в домашний каталог достаточно просто ввести cd.
pwd
Отображает путь вашего текущего местонахождения.
dmesg
Отображает «debug» информацию выдаваемую ядром Linux. Иногда бывает очень полезна особенно в случаях если что то работает неправильно.
grep
Фильтрует содержимое файлов содержимое которых отправленно на stdout, например нахождения чего то в текстовом файле. Используется совместно с командами ls и cat.
cat /home/kernel/Linux.txt | grep kernel
Выведет все строки из файла Linux.txt содержащие kernel. Аналогично с ls.
uname
Показывает информацию о системе. Версию ядра, номер сборки, архитектуру и прочее.
lspci
Отобразить список оборудования.
2. Некоторый список команд работающих только в Debian like дистрибутивах.
sudo apt-get update
Синхронизирует локальную базу о доступных для установки пакетов с репозиторием разработчиков.
sudo apt-get upgrade
Скачивает и устанавливает доступные обновления.
sudo apt-get dist-upgrade
Обновляет до следующей версии дистрибутива. Использовать с осторожностью иначе можно получить неработающую систему