6 самых полезных команд для работы с терминалом на Linux, Mac и UNIX
В этом руководстве для начинающих, ты узнаешь как применять самые полезные и распространенные команды для работы с терминалом/консолью в Linux, macOS и других UNIX-подобных системах.
pwd — вывести текущую директорию
Команда pwd (print working directory) используется, чтобы понять в какой директории мы находимся. Она дает простой и понятный ответ на вопрос “Где я?”. Команду pwd полезно выполнить в самом начале работы с терминалом.
Вот пример выполнения pwd сразу после логина на Linux сервер:
ls — показать содержимое директории
Чтобы посмотреть содержимое директории (папки), в UNIX-подобных системах используется команда ls (list).
В базовом случае, ее вызывают без аргументов и на экране появляется содержимое текущего каталога:
Если ты хочешь проверить содержимое какого-то определенного каталога, например /var , ты можешь сделать это добавив путь к каталогу после ls :
К команде ls , ты можешь добавить несколько флагов, чтобы улучшить формат вывода.
Расширенная информация (Long list view)
Флаг -l добавит к каждому файлу и каталогу информацию о размере, уровне доступа, дате создания и владельце.
Кстати, если ты хочешь посмотреть расширенную информацию о каком-то одном файле, ты можешь указать его точно так же как и каталог, после команды ls . Это полезно если в директории много файлов, информация о которых тебя не интересует.
Вот как это сработает с файлом swapfile :
Показать скрытые файлы и папки
Чтобы вывести на экран скрытые файлы и директории, нужно добавить флаг -a к команде ls :
Так, мы всегда получим две скрытые записи: . и .. . Одна точка служит для доступа к текущей директории, а две — для доступа к родительскому каталогу.
Сортировка вывода команды ls
Флаг -S используется, чтобы отсортировать вывод на экран по размеру файлов и каталогов:
Объединение флагов команды ls
Иногда одного флага недостаточно. Например, ты хочешь одновременно получить расширенную информацию с помощью флага -l , отформатировать размер каждой записи с помощью -h и отсортировать все файлы и папки по размеру с помощью -S .
Чтобы получить такое поведение, нужно объединить несколько флагов. Порядок флагов не имеет значение и -lhS будет значить то же самое, что и -hSl , поэтому можешь выбирать любую последовательность которая тебе нравится:
cd — сменить директорию
Итак, после того, как ты узнал все о содержимом текущей директории, самое время ее сменить. Команда cd принимает имя каталога как аргумент и перемещает тебя туда.
Команда cd выводит информацию на экран только если возникнет ошибка, поэтому советую сразу использовать ls , чтобы осмотреться:
Перемещаемся на одну директорию выше
Чтобы перейти на одну папку выше текущей, нужно указать две точки cd .. вместо точного имени каталога. Чтобы перейти на два уровня вверх — cd ../.. и так далее.
Если ты попробуешь перейти в каталог, который не существует, то ты получишь такое сообщение:
Идем домой
Если ты используешь тильду cd
вместо имени каталога, то ты переместишься в домашнюю директорию. Это полезная ссылка, потому что где бы ты ни был, по ней ты сможешь всегда вернуться домой.
touch — создать файл
Команду touch используют для создания новых файлов. План такой:
-
Переходим в домашний каталог: cd
mkdir — создать директорию
Чтобы создать директорию в Linux, используют команду mkdir . Она работает почти так же как touch и ожидает от тебя имя директории.
man — показать мануал / получить помощь
И наконец, сверхсила! Команда man покажет тебе краткое руководство по использованию любой Linux, UNIX или MacOS команды. Ее можно применить даже к самой себе напечатав man man .
Если ты хочешь сделать, что-то полезное, но забыл как именно пользоваться какой-то командой, то выполни man и укажи после нее имя интересующей тебя команды. Вот так:
Вывод
В этом руководстве я рассказал тебе о самых часто используемых команда Linux, macOS, и *nix систем. Теперь ты умеешь работать с ls , pwd , cd , touch , mkdir , и man .
Если ты только начинаешь программировать, то Linux и терминал могут показаться тебе чем-то очень страшным. Но, как видишь, все довольно просто и прямолинейно.
Использование команд cd, pwd и ls для изучения файловой системы на сервере Linux
Знакомство с командной строкой – первый и очень важный шаг на пути к продуктивному использованию мощной серверной платформы Linux. Также это важнейшее условие для выполнения практически всех доступных в данной среде задач, связанных с сервером.
Сегодня для многих инструментов существуют графические альтернативы; но умение использовать командную строку – это дополнительный уровень продуктивности, скорости и гибкости серверной среды, достичь который при помощи большинства графических интерфейсов невозможно.
Данная статья описывает основы перемещения по системе и извлечения всей необходимой информации о ней.
Требования
Поскольку данное руководство учит основам работы с командной строкой, оно не предполагает глубоких предварительных знаний. Тем не менее, для выполнения описанных дествий необходимо иметь доступ к VPS. Текущие параметры во многом зависят от используемой операционной системы.
Необходимые для входа на новый сервер пароль и IP-адрес будут получены по электронной почте.
ssh root@ IP_адрес
Войти на сервер можно также через консоль, используя клавишу «Console Access». Это создаст виртуальную терминальную сессию непосредственно в окне веб-браузера.
Для выполнения данного руководства входить в систему как root не обязательно.
Как выяснить свое местонахождение в системе
После подключения к машине Linux на экране появится что-то вроде:
Это и есть командная строка, в которую нужно вводить команды.
Но это еще не все. На данный момент вы также находитесь в определенном месте в файловой системе сервера. Местонахождение пользователя в файловой иерархии сервера влияет на выполнение введенных команд.
Это похоже на запуск браузера файлов на локальном компьютере. Кликая по разным папкам, можно перемещаться в разные места файловой системы. Открывая меню редактирования браузера файлов, можно установить параметры, которые будут применяться к элементам текущей папки.
Командная строка – текстовое представление тех же действий.
Итак, как же узнать свое текущее положение в файловой системе? Подсказку содержит сама командная строка. В конце командной строки, перед символами # или $ (символ зависит от текущей учетной записи, через которую ведется работа), можно увидеть символ тильды (
). Данный символ обозначает домашний каталог.
Домашний каталог – это место, где хранятся файлы данного пользователя. Символ «
» – условное обозначение этого каталога.
Другой способ определить свое местонахождение в файловой системе – использовать команду «pwd».
Введите данную команду в терминал и нажмите Enter:
Каталог /root – это домашний каталог root-пользователя (администратора). Если вход в систему был выполнен с помощью другого пользователя, результат будет выглядеть примерно так:
pwd
/home/ имя_пользователя
Как было сказано выше, для выполнения действий данного руководства входить в систему как root не обязательно.
Просмотр файлов системы
Команда pwd показывает текущий каталог. Но как же узнать, что находится в текущем каталоге?
Чтобы просмотреть файлы и каталоги, находящиеся в текущем каталоге, нужно использовать команду ls:
Иногда эта команда возвращает пользователя в командную строку, не выведя никакого результата. Но это не значит, что она была выполнена неверно – просто текущий каталог пуст, и никаких файлов или каталогов в нем нет.
Чтобы увидеть поведение команды ls в случае обнаружения файлов или каталогов, создайте несколько тестовых файлов. Для создания новых файлов введите:
Это действие создаст в текущем каталоге 5 файлов с названием file1, …, file5.
Снова введите команду ls:
ls
file1 file2 file3 file4 file5
Теперь команда обнаружила файлы, которые находятся в текущем каталоге.
Большинству команд задано поведение по умолчанию – действие, которое запускается на выполнение при вводе команды без аргументов. Но поведение большей части команд можно расширить, задав им дополнительные аргументы (также они называются опциями, флагами или параметрами).
Иногда они активируют дополнительные функции команды, иногда указывают объект, на который нужно выполнить команду.
Опции ls
Встроенную функцию справки имеют далеко не все команды. В большинстве случаев ее можно вызвать, добавив флаги –help или -h в конце команды. Попробуйте вызвать справку при помощи ls:
ls —help
Usage: ls [OPTION]. [FILE].
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor —sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, —all do not ignore entries starting with .
-A, —almost-all do not list implied . and ..
—author with -l, print the author of each file
-b, —escape print C-style escapes for nongraphic characters
—block-size=SIZE scale sizes by SIZE before printing them. E.g.,
. . .
Это действие выводит некоторые рекомендации по правильному использованию команды и список опций, доступных для изменения поведения команды по умолчанию. В столбце слева представлены символы для расширения команды, а в столбце справа описан каждый флаг.
Использование флага –help – отличный пример работы аргументов.
Также узнать о параметрах, доступных для определенной команды, можно из руководства. Чтобы открыть руководство, введите команду man, а после нее укажите команду, аргументы которой нужно найти. Например:
Для прокрутки страницы используйте клавиши со стрелками: чтобы покинуть руководство, введите «q».
Как видите, команда ls имеет немало опций, меняющих и расширяющих ее действия. Например:
ls -l
-rw-r—r— 1 root root 0 Feb 28 19:45 file1
-rw-r—r— 1 root root 0 Feb 28 19:45 file2
-rw-r—r— 1 root root 0 Feb 28 19:45 file3
-rw-r—r— 1 root root 0 Feb 28 19:45 file4
-rw-r—r— 1 root root 0 Feb 28 19:45 file5
Данное действие показывает нам те же пять тестовых файлов, но в длинном формате. Так можно получить больше информации о файлах: узнать владельца файла (первый столбец со значением «root»), группу файла (второй столбец со значением «root»), его размер (0), дату его последнего изменения, и т.д.
Теперь используйте другую опцию команды:
ls -a
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo
Данный результат показывает несколько файлов, которые ранее выведены не были. Флаг –a является синонимом флага –all. Он показывает все файлы текущего каталога, в том числе скрытые.
В системе Linux все файлы, имя которых начинается с символа точки, являются скрытыми по умолчанию. Данные файлы не засекречены, и любой может найти их; они скрыты для более удобного управления файлами. С помощью флага –a команда ls выводит эти файлы.
Также можно использовать сразу несколько флагов, указав их последовательно:
ls -l -a
drwx—— 4 root root 4096 Feb 28 19:45 .
drwxr-xr-x 23 root root 4096 May 3 2013 ..
drwx—— 2 root root 4096 Feb 28 17:19 .aptitude
-rw——- 1 root root 2036 Feb 28 18:20 .bash_history
-rw-r—r— 1 root root 570 Jan 31 2010 .bashrc
-rw-r—r— 1 root root 0 Feb 28 19:45 file1
. . .
Можно также «свернуть» флаги в один флаг:
Это работает точно таким же образом, при этом занимая меньше времени на набор.
Ещё одна полезная опция – флаг –R, который перечисляет файлы рекурсивно. Поскольку все каталоги, находящиеся в текущем каталоге, скрыты, нужно также использовать флаг –a:
ls -Ra
.:
. .aptitude .bashrc file2 file4 .profile .ssh
.. .bash_history file1 file3 file5 .rnd .viminfo
./.aptitude:
. .. cache config
./.ssh:
. .. authorized_keys
Теперь, ознакомившись со способами изменения действий команды ls, попробуйте изменить объект ее действия.
Использование ls на другие каталоги
По умолчанию ls выводит содержимое текущего каталога. Но таким же способом можно просмотреть содержимое любого каталога, указав его имя после команды (подобно флагам).
К примеру, просмотреть содержимое каталога /etc, существующего во всех системах Linux, можно, набрав:
ls /etc
acpi fstab magic rc.local
adduser.conf fstab.d magic.mime rc.local.orig
aliases fuse.conf mailcap rcS.d
aliases.db gai.conf mailcap.order reportbug.conf
alternatives groff mailname resolvconf
anacrontab group mail.rc resolv.conf
apm group- manpath.config rmt
. . .
Как видно, в данном каталоге достаточно много файлов.
Любой путь к каталогу, который начинается с косой черты (/), называется абсолютным (или полным), поскольку он ссылается на путь к каталогу из самого «высокого» в данной иерархии каталога, root, на что указывает слеш.
Еще один способ сослаться на каталог – использовать его относительный путь. Он представляет собой путь по отношению к текущему каталогу и нен ачинается со слеша.
Поскольку в текущем каталоге явных каталогов нет, для выполнения следующего действия нужно создать несколько каталогов и добавить в них файлы. Для этого просто наберите следующие команды как в примере ниже:
mkdir dir<1..3>
touch dir<1..3>/test
Это создаст несколько каталогов с файлами. Чтобы ппросмотреть их, используйте команду ls без аргументов:
ls
dir1 dir2 dir3 file1 file2 file3 file4 file5
Чтобы просмотреть содержимое каталога dir1, можно использовать абсолютный путь, как было показано выше. Чтобы узнать текущий каталог:
Затем введите имя каталога в конце строки:
ls /root/dir1
testA testB testC
Но проделывать данную операцию каждый раз необязательно, так как можно просто указать имя текущего каталога, чтобы сослаться на него:
ls dir1
testA testB testC
Если путь не начинается со слеша, операционная система ищет путь к каталогу, начиная с текущего каталога.
Перемещение по файловой системе
Предыдущие главы руководства рассказывают, как выяснить свое местоположение в файловой системе и как получить некоторые сведения о файлах в определенных каталогах.
Но как изменить рабочий каталог? Изменив рабочий каталог, пользователь получает возможность использовать относительные пути из другого места. Как правило, с файлами легче работать из каталога, в котором они содержатся.
Для перемещения по файловой иерархии используется команда cd, которая расшифровывается как «change directories».
Простейший вариант ее использования:
Данная команда без дополнительной информации перейдет в домашний каталог. Если пользователь уже находится в домашнем каталоге, команда не выполнит никаких действий.
Чаще команда используется следующим образом:
В данном случае фразу /путь/к/каталогу нужно заменить реальным путем к каталогу, в который нужно перейти. К примеру, чтобы перейти в root-каталог, который обозначается слешем (/) и является вершиной иерархии, наберите:
Примечание: root-каталог (/) не является домашним каталогом root-пользователя (/root). Сначала их можно очень легко спутать.
Обратите внимание, командная строка изменилась.
», обозначающий домашний каталог) перед символом # или $ был заменен на root.
Чтобы убедиться, что текущим теперь является root-каталог файловой системы, используйте команду pwd:
Можно также проверить файлы данного каталога:
ls
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr
Теперь попробуйте перейти в другой каталог при помощи относительного пути. Найдите в данном каталоге каталог с именем usr и перейдите в него, введя:
Обратите внимание, с командой cd также можно использовать относительный путь. Как вернуться в root-каталог? Можно использовать уже знакомую команду «cd /», но есть еще один способ сделать это.
Попробуйте подняться вверх по дереву каталогов, используя относительные пути. Как сослаться на каталог, в котором находится текущий каталог, пи помощи относительных путей?
Для этого используется специальный синтаксис. Каталог, содержащий текущий каталог, называется «родительским». Чтобы сослаться на родительский каталог, используются две точки (..).
То есть, чтобы подняться на уровень выше, нужно использовать:
Как видите, root-каталог снова стал текущим. Чтобы просмотреть содержимое текущего каталога, можно использовать символ точки вместо имени:
ls .
bin etc lib media proc sbin sys var
boot home lib64 mnt root selinux tmp vmlinuz
dev initrd.img lost+found opt run srv usr
Это очень полезно в дальнейшей работе с командной строкой, так как позже может возникнуть множество ситуаций, в которых нужно быстро сослаться на текущий каталог.
Как было сказано ранее, символ «
» ссылается на домашний каталог. Используйте его как начало другого пути к каталогу, чтобы перейти к каталогу dir1 домашнего каталога:
Итак, используя символ «
» вместо первой части пути, можно без труда перейти в каталог, который находится в текущем каталоге.
Но что, если при переходе произошла ошибка и теперь нужно вернуться в последний каталог? Чтобы перейти назад в предыдущий каталог, введя:
В завершение вернитесь в домашний каталог. Это делается при помощи символа тильды, который используется как путь к каталогу. Но также можно просто использовать команду cd без аргументов, так как ее поведение по умолчанию – возвращать домашний каталог. Это выглядит так:
Как видите, теперь домашний каталог стал текущим.
Итоги
Это самые простые инструменты изучения файловой системы, при помощи которых можно быстро перемещаться по системе, отслеживать свое местоположение и просматривать содержимое каталогов.
Справочник 70 основных команд Linux: полное описание с примерами

Одним из коренных отличий семейства ОС Linux от ОС Windows является ведущая роль командной строки или терминала в администрировании системы. Для успешной работы с «Линукс» одного графического интерфейса недостаточно. Полноценное управление тут возможно только через терминал. А в работе с терминалом никак не обойтись без изучения основных команд Linux.
В Linux насчитывается несколько сотен основных команд и их модификаций. Они группируются по нескольким категориям. По расположению — могут быть утилитами командной строки или встроенной функцией командной оболочки. По частоте применения – используемыми постоянно, эпизодически и редко. По типам действий – от получения справки до управления файлами и процессами. Именно третья, функциональная составляющая и станет основой группировки утилит в этой статье.
В обзоре собраны все важнейшие команды Linux, которые могут пригодиться для администрирования ОС Linux. Статья рассчитана как на новичков, так и на продвинутых пользователей, уже знакомых с основным функционалом терминала. Эту своеобразную шпаргалку можно смело добавлять в закладки всем, кто хочет извлечь из «Линукс» максимум полезных свойств и повысить свою продуктивность в несколько раз.
Справочная информация / документация
(Manual). Показывает инструкцию к программам и командам Linux. Чтобы получить руководство для программы, наберите:
Для инструкции по команде, введите:
whatis
Выводит краткое описание программы. Пример:
whereis
Показывает полный путь к исполняемому файлу и другим файлам программы. Пример:
Вся необходимая информация о команде будет доступна, если набрать:
whoami
Ctrl + R
Права суперпользователя
Большое число базовых команд Linux, например, установка программ или создание файлов в корневой системе, требуют для исполнения права пользователя root или суперпользователя. Применение данного режима несёт серьёзные изменения для операционной системы, поэтому нужно точно понимать, как сработает запущенная команда.
Способы получить права root в Linux
- Вход от имени суперпользователя в виртуальной консоли, введя логин и пароль пользователя root.
- Разовое переключение на роль суперпользователя в терминале с помощью специальных утилит.
О втором варианте расскажем подробнее.
(Super User Do). Позволяет исполнять команды с правами суперпользователя. Перед переходом в режим root администратора система выполнит запрос пароля и логина root. Пример:
sudo su
sudo gksudo
Максимальную производительность приложений Linux зависит от правильного подбора платформы для ОС. Мощный виртуальный сервер от Eternalhost обеспечит интернет-ресурсу стабильную работу и пространство для развития.
Управления файлами и каталогами
(List). С помощью этой утилиты можно посмотреть, что содержится в папке. Без указания конкретного пути показывает текущий каталог. Если путь указан, то переход совершиться в конечный его каталог. Чтобы вывести каталог в виде списка с дополнительной поясняющей информацией введите:
Для показа скрытых файлов:
(Concatenate / Catenate). Команда двойного назначения. Показывает на экране что содержит файл или стандартный ввод. Также к «склеивает» несколько переданных подряд файлов в один. Если нужно посмотреть содержимое одного файла, вводим:
Если нужно узнать содержимое нескольких файлов подряд:
Для «склейки» файлов, вводим:
Чтобы задать нужное количество строк в показанном:
(Change Directory). Меняет текущий каталог, в котором работает терминал на указанный. Когда терминал запущен, он использует по умолчанию корневой каталог (root), вернуться в который можно, набрав:
Чтобы указать другую папку для работы с файлами, нужно ввести:
Чтобы подняться по древу каталогов на уровень вверх набираем:
Чтобы вернуться к предыдущей директории:
Двойной амперсанд – не полноценная команда, а управляющий оператор. Он предназначен для выполнения последовательного ряда команд. Чтобы терминал выполнил команды одну за другой, нужно разделить их следующим образом:
mkdir
(Make Directory). Создаёт новую директорию. Можно также создать полную структуру подкаталогов, если ввести сочетание:
(Copy). Утилита, позволяющая скопировать файл или каталог. Копирование файлов и каталогов. Чтобы копирование прошло рекурсивно, т. е. включало все поддиректории и файлы в них, надо добавить к команде:
А если надо дополнить рекурсивное копирование сохранением всех атрибутов, сведения о владельце и временный штамп, добавляем «архивную» опцию -a, чтобы получилось:
(Remove). Отвечает за удаление папок и файлов. Использовать оператор rm следует крайне осторожно. В Linux файлы удаляются не в корзину, откуда их можно восстановить, а стираются безвозвратно. Для рекурсивного удаления используйте сочетание:
(Link). Создаёт программные ссылки на файлы. По функционалу это похоже на ярлыки в Windows.
Типы ссылок Linux
- символические ( -s ) – указание на адрес файла ил папки без метаданных;
- твёрдые или жёсткие ( -P ) – содержат сведения о физическом адресе на диске, где хранится файл.
Удалить ссылку в Linux можно при помощи атрибута –f .
chmod
(Change Mode). Изменяет разрешения доступа к файлу. Под доступом имеется в виду классическая триада: чтение r, изменение w и запуск x. Общий вид:
Популярные комбинации разрешений для команды chmod
| Вид разрешения | Символьный код | Числовой код |
| Нет допуска | — | 0 |
| Чтение | r— | 4 |
| Изменение | -w- | 2 |
| Запуск | —x | 1 |
| Запуск + Изменение | -wx | 3 |
| Чтение + Запуск | r-x | 5 |
| Чтение + Изменение | rw- | 6 |
| Запуск + Изменение + Запуск | rwx | 7 |
chown
(Change Owner). Команда для смены владельца файла и его группы. Для смены владельца используем синтаксис:
Для смены группы файла:
Если надо поменять оба параметра:
Команду можно применить только с правами суперпользователя. Чтобы изменить владельца/группу рекурсивно добавляем:
chgrp
(Disk Free). Даёт полную информацию о свободном пространстве на диске. Анализ включает перечисление файловых систем смонтированных разделов, обзор занятого и свободного места на диске. Для более удобного вывода информации, лучше применять сочетание:
Основные linux-команды для новичка
Linux — это операционная система. Как винда (windows), только более защищенная. В винде легко подхватить вирус, в линуксе это практически невозможно. А еще линукс бесплатный, и ты сам себе хозяин: никаких тебе неотключаемых автообновлений системы!
Правда, разобраться в нем немного посложнее… Потому что большинство операций выполняется в командной строке. И если вы видите в вакансии «знание linux» — от вас ожидают как раз умение выполнять простейшие операции — перейти в другую директорию, скопировать файл, создать папочку… В этой статье я расскажу про типовые операции, которые стоит уметь делать новичку. Ну и плюс пара полезняшек для тестировщиков.
Я дам кратенькое описание основных команд с примерами (примеры я все проверяла на cent os, red hat based системе) + ссылки на статьи, где можно почитать подробнее. Если же хочется копнуть еще глубже, то см раздел «Книги и видео по теме». А еще комментарии к статье, там много полезного написали)
Содержание
Где я? Как понять, где находишься
Очень полезная команда, когда у вас нет ничего, кроме командной строки под рукой. Расшифровывается как Print Working Directory. Запомните ее, пригодится.
Как понять, что находится в папке
Команда ls позволяет просмотреть содержимое каталога:

Хотя лучше использовать команду сразу с флагом «l»:
Такая команда выведет более читабельный список, где можно будет сразу увидеть дату создания файла, его размер, автора и выданные файлу права.

У команды есть и другие флаги, но чаще всего вы будете использовать именно «ls – l».
См также:
Команда ls Linux — подробнее о команде и всех ее флагах
Команда ls – просмотр каталога — о команде для новичков (без перечисления всех флагов)
Как перейти в другую директорию
С помощью команды cd:
Путь может быть абсолютным или относительным.
По абсолютному пути
Либо у вас где-то записан путь, «куда идти», либо вы подсмотрели его в графическом интерфейсе (например, в WinSCP).
Вставляем путь в командную строку после «cd»
Ну вот, мы переместились из домашней директории (обозначается как
) в /home/student/log.

По относительному пути
Относительный путь — относительно вашей текущей директории, где вы сейчас находитесь. Если я уже нахожусь в /home/student, а мне надо в /home/student/log, команда будет такой:
Если мне надо из /home/student/photo в /home/student/photo/city/msk/2017/cat_1, команда будет такой:
Я не пишу /home/student/photo, так как я уже там.

В линуксе можно задавать путь относительно домашней папки текущего пользователя. Домашняя директория обозначается
/. Дальше вы уже можете указывать подпапки:
Эта команда будет работать отовсюду. И переместит нас в /home/user/log.
Вот пример, где я вошла под пользователем students. Исходно была в директории /var, а попала в /home/students/log:

С автодополнением
Если вы начнете набирать название папки и нажмете Tab, система сама его подставит. Если просто нажмете Tab, ничего не вводя, система начнет перебирать возможные варианты:
— (cd tab) Может, ты имел в виду папку 1?
— (tab) Нет? Может, папку 2?
— (tab) Снова нет? Может, папку 3?
— (tab) Снова нет? Может, файл 1 (она перебирает имена всех файлов и директорий, которые есть в той, где вы сейчас находитесь)?
— (tab) У меня кончились варианты, поехали сначала. Папка 1?

cd lon(Tab) → cd long-long-long-long-name-folder — начали вводить название папки и система сама подставила имя (из тех, что есть в директории, где мы находимся).
cd (Tab)(Tab)(Tab) — система перебирает все файлы / папки в текущей директории.
Это очень удобно, когда перемещаешься в командной строке. Не надо вспоминать точное название папки, но можно вспомнить первую букву-две, это сократит количество вариантов.
Подняться наверх
Подняться на уровень выше:
Если нужно поднять на два уровня выше, то
И так до бесконечности =) Можно использовать файл, лежащий на уровне выше или просто сменить директорию.
Обратите внимание, что команда для линукса отличается от команды для винды — слеш другой. В винде это «cd ..\..», а в линуксе именно «cd ../..».
Как создать директорию
Используйте команду mkdir:
Можно и в другом месте создать папку:
Когда это нужно? Например, если вам надо сделать бекап логов. Создаете папку и сохраняете туда нужные логи. Или если вы читаете инструкцию по установке ПО и видите там «создать папку». Через командную строку это делается именно так.
Как создать файл
Командой touch:
Такая команда создаст пустой файл с названием «app.log». А потом уже можно открыть файл в редакторе и редактировать.
Как отредактировать файл
Вот честное слово, лучше делать это через графический интерфейс!
Но если такой возможности нет, чтож… Если использовать программы, которые есть везде, то у вас два варианта:
- nano — более простая программа, рассчитана на новичков
- vim — более сложная, но позволяет сделать кучу всего
Для перемещения по файлу используйте кнопки со стрелками. После того, как закончите редактировать файл, нажмите:
- Ctrl+O — чтобы сохранить
- Ctrl+X — для выхода

А вот с vim с этим сложнее. В него легко зайти:
Войти вошли, а как выйти то, аааа? Тут начинается легкая паника, потому что ни одна из стандартных комбинаций не срабатывает: Esc, ctrl + x, ctrl + q… Если под рукой есть второй ноутбук или хотя бы телефон / планшет с интернетом, можно прогуглить «как выйти из vim», а если у вас только одно окно с терминалом, которое вы заблокировали редактором?
Делюсь секретом, для выхода надо набрать:
- :q — закрыть редактор
- :q! — закрыть редактор без сохранения (если что-то меняли, то просто «:q» не проканает)
Исходно, когда мы открываем файл через vim, то видим его содержимое, а внизу информацию о файле:

Когда нажимаем двоеточие, оно печатается внизу:

Если не печатается, не паникуем! Тогда попробуйте нажать Esc (вернуться в нормальный режим), потом Enter (подтвердить команду), а потом снова печатайте. Фух, помогло, мы вышли оттуда.
На самом деле сейчас всё не так страшно. Даже если вас заслали работать в банк, где нет доступа в интернет, а вы вошли в vi и не знаете как выйти, всегда можно погулить выход с телефона. Слава мобильному интернету! Ну а если вы знаете логин-пароль от сервера, то можно просто закрыть терминал и открыть его снова.
Если нужно выйти, сохранив изменения, используйте команду
Ну а про возможности редактирования см статьи ниже =)
См также:
Как редактировать файлы в Ubuntu — подробнее о разных способах
Как пользоваться текстовым редактором vim — подробнее о vim и всех его опциях
Как выйти из редактора Vi или Vim? — зачем нажимать Esc
Как перенести / скопировать файл
Допустим, у нас в директории /opt/app/log находится app.log, который мы хотим сохранить в другом месте. Как перенести лог в нужное место, если нет графического интерфейса, только командная строка?
Скопировать файл
Если мы находимся в директории /opt/app/log:
В данном примере мы использовали относительный путь для «что копировать» — мы уже находимся рядом с логом, поэтому просто берем его. А для «куда копировать» используем абсолютный путь — копируем в /home/olga.
Можно сразу переименовать файл:
В этом случае мы взяли app.log и поместили его в папку /home/olga, переименовав при этом в app_test_2020_03_08.log. А то мало ли, сколько логов у вас в этом папке уже лежит, чтобы различать их, можно давать файлу более говорящее имя.
Если в «куда копировать» файл с таким именем уже есть, система не будет ничего спрашивать, просто перезапишет его. Для примера положим в папку log внутри домашней директории файл «app.log», который там уже есть:

Никаких ошибок, система просто выполнила команду.
Скопировать директорию
Команда остается та же, «cp», только используется ключ R — «копировать папку рекурсивно»:
Так в директории /home/olga появится папка «log».
Переместить файл
Если надо переместить файл, а не скопировать его, то вместо cp (copy) используем mv (move).
Можно использовать относительные и абсолютные пути:
Можно сразу переименовать файл:
Переместить директорию
Аналогично перемещению файла, команда mv
Как удалить файл
С помощью команды rm (remove):
Если нужно удалить все файлы в текущей директории (скажем, вычищаем старые логи перед переустановкой приложения), используйте «*»:

Если нужно удалить папку, надо добавить флаг -r (recursive):
Если вы пытаетесь удалить файлы, которые уже используются в программе или доступны только для чтения, система будет переспрашивать:

А теперь представьте, что вы чистите много файлов. И на каждый система переспрашивает, и надо постоянно отвечать «да, да, да. » (y – enter, y – enter, y – enter)… Чтобы удалить все без вопросов, используйте флаг -f (force):

Но учтите, что это довольно опасная команда! Вот так надоест подстверждать удаление и введешь «-rf», а директорию неправильно укажешь… Ну и все, прости-прощай нужные файлы. Аккуратнее с этой командой, особенно если у вас есть root-полномочия!
Опция -v показывает имена удаляемых файлов:

Тут вы хотя бы можете осознать, что натворили )))
Как изменить владельца файла
Если у вас есть root-доступ, то вы наверняка будете выполнять все действия под ним. Ну или многие… И тогда любой созданный файл, любая папка будут принадлежать root-пользователю.
Это плохо, потому что никто другой с ними работать уже не сможет. Но можно создать файл под root-ом, а потом изменить его владельца с помощью команды chown.

Допустим, что я поднимаю сервис testbase. И он должен иметь доступ к директории user и файлу test.txt в другой директории. Так как никому другому эти файлики не нужны, а создала я их под рутом, то просто меняю владельца:
В итоге был владелец root, а стал testbase. То, что надо!
Как установить приложение
Если вы привыкли к винде, то для вас установка приложения — это скачать некий setup файлик, запустить и до упора тыкать «далее-далее-далее». В линуксе все немного по-другому. Тут приложения ставятся как пакеты. И для каждой системы есть свой менеджер пакетов:
- yum — red hat, centos
- dpkg, apt — debian
Давайте посмотрим на примере, как это работает. В командной строке очень удобно работать с Midnight Commander (mc) — это как FAR на windows. К сожалению, программа далеко не всегда есть в «чистом» дистрибутиве.
И вот вы подняли виртуалку на centos 7, хотите вызвать Midnight Commander, но облом-с.

Ничего страшного, установите это приложение через yum:

Он там будет что-то делать, качать, а потом уточнит, согласны ли вы поставить программу с учетом ее размеров. Если да, печатаем «y»:

И система заканчивает установку.
Вот и все! Никаких тебе унылых «далее-далее-далее», сказал «установи», программа установилась! Теперь, если напечатать «mc» в командной строке, запустится Midnight Commander:

Как запустить приложение
Некоторые приложения запускаются через скрипты. Например, чтобы запустить сервер приложения WildFly, нужно перейти в папку bin и запустить там standalone.sh. Файл с расширением .sh — это скрипт.
Чтобы запустить скрипт, нужно указать полный путь к нему:
Это важно! Даже если вы находитесь в той папке, где и скрипт, он не будет найден, если просто указать название sh-скрипта. Надо написать так:
Поиск идет только в каталогах, записанных в переменную PATH. Так что если скрипт используется часто, добавляйте путь туда и вызывайте просто по названию:
См также:
Запуск скрипта sh в Linux — подробнее о скриптах

Если же приложение запускается как сервис, то все еще проще:
Чтобы сервис test запускался автоматически при рестарте системы, используйте команду:
Она добавит службу в автозапуск.
Как понять, где установлено приложение
Вот, например, для интеграции Jenkins и newman в Jenkins надо прописать полный путь к ньюману в параметре PATH. Но как это сделать, если newman ставился автоматически через команду install? И вы уже забыли, какой путь установки он вывел? Или вообще не вы ставили?
Чтобы узнать, куда приложение установилось, используйте whereis (без пробела):

Как создать архив
Стандартная утилита, которая будет работать даже на «голой» системе — tar. Правда, для ее использования надо запомнить флаги. Для создания архива стандартная комбинация cvzf:

В данном примере мы упаковали директорию /home/test, внутри которой было две картинки — 502.jpg и 504.jpg.
Для распаковки меняем флаг «c» на «x» и убираем «z»:

Хотя система пишет, что распаковала «/home/test», на самом деле папка «test» появляется там, где мы сейчас находимся.
Давайте разберемся, что все эти флаги означают:
- c — создать архив в linux
- x — извлечь файлы из архива
- v — показать подробную информацию о процессе работы (без него мы бы не увидели, какие файлики запаковались / распаковались)
- f — файл для записи архива
- z — сжатие

Если очень хочется использовать rar, то придется изгаляться. Через yum установка не прокатит:
Говорит, нет такого пакета:
Придется выполнить целую пачку команд! Сначала скачиваем, разархивируем и компилируем:
Как посмотреть использованные ранее команды
Вот, допустим, вы выполняли какие-то сложные действия. Или даже не вы, а разработчик или админ! У вас что-то сломалось, пришел коллега, вжух-вжух ручками, magic — работает. А что он делал? Интересно же!
Или, может, вы писали длинную команду, а теперь ее надо повторить. Снова набирать ручками? Неохота! Тем более что есть помощники:
Если надо «отмотать» недалеко, проще через стрелочку пролистать команды. Один раз нажали — система показала последнюю команду. Еще раз нажали — предпоследнюю. И так до 1000 раз (потому что именно столько хранится в истории).

Большой бонус в том, что линукс хранит историю даже при перезапуске консоли. Это вам не как в винде — скопировал текст, скопировал другой, а первый уже потерялся. А при перезагрузке системы вообще все потерялось.
Если тыкать в стрелочку не хочется, или команды была давно, можно напечатать «history» и внимательно изучить команды.
См также:
История команд Linux — больше о возможностях history
Как посмотреть свободное место
Сколько места свободно на дисках
Сколько весит директория
Как узнать IP компьютера
Если у вас настроены DNS-имена, вы подключаетесь к linux-машине именно по ним. Ведь так проще запомнить — это testbase, это bugred… Но иногда нужен именно IP. Например, если подключение по DNS работает только внутри рабочей сети, а коллега хочет подключиться из дома, вот и уточняет айпишник.
Чтобы узнать IP машины, используйте команду:
Также можно использовать ifconfig:
Как узнать версию OS
Сидите вы у Заказчика на линуксовой машине. Пытаетесь что-то установить — не работает. Лезете гуглить, а способы установки разные для разных операционных систем. Но как понять, какая установлена на данной машине?

На этой виртуалке стоит CentOs 7.
Если нужна версия ядра:
Как узнать, как работает команда
Если вы не знаете, как работает команда, всегда можно спросить о ней саму систему, используя встроенную команду man:

Закрыть мануал можно с помощью клавиши q. Для того, кто первый раз в линуксовой консоли, это совсем не очевидно, а подсказки есть не везде.
Команда удобна тем, что не надо даже уходить из командной строки, сразу получаешь всю информацию. К тому же это всегда актуальная информация. А что вы там нагуглите — неизвестно =))
Хотя лично мне проще какую-то команду прогуглить, ведь так я получу русское описание + сначала самые главные флаги (а их может быть много). Но я сама новичок в линуксе, это подход новичка. А лучше сразу учиться прокачивать навык поиска по man-у. Он вам очень пригодится для более сложных задач!
Если man у программы нет, используйте флаг -h (—help):
Как создать много тестовых папок и файлов
Допустим, у нас есть некая папка test. Создадим в ней сотню директорий и кучу файликов в каждой:
Вот и все, дальше можно играться с ними!

- mkdir — создать директорию
- touch — создать файл (или изменить существующий, но если файла с таким именем нет, то команда создаст новый, пустой)
- <000..100>— пробежится по всем числам от 0 до 100
— пробежится по всем буквам английского алфавита от A до Z
Символ $ при описании команд означает начало строки, куда мы пишем команду. Так мы отделяем то, что ввели сами (pwd) от ответа системы (/home/test).
Ага, в домашней директории. Создам себе песочницу:
Вот в ней и буду творить!
А потом можно проверить, что получилось:
Как-то так! Имхо, полезные команды.
Я нашла их в книге «Командная строка Linux. Полное руководство», они используются для того, чтобы создать песочницу для прощупывания команды find. Я, как и автор, восхищаюсь мощью командной строки в данном случае. Всего 2 строчки, а сколько боли бы принесло сделать похожую структуру через графический интерфейс!
И, главное, тестировщику полезно — может пригодиться для тестов.
Как протестировать IOPS на Linux
Это очень полезно делать, если машину вам дает заказчик. Там точно SSD-диски? И они дают хороший iops? Если вы разрабатываете серверное приложение, и от вас требуют выдерживать нагрузку, нужно быть уверенными в том, что диски вам выдали по ТЗ.
Наше приложение активно использует диск. Поэтому, если заказчик хочет видеть хорошие результаты по нагрузке, мы хотим видеть хорошие результаты по производительности самих дисков.
Но верить админам другой стороны на слово нельзя. Если приложение работает медленно, они, разумеется, будут говорить, что у них то все хорошо, это «они» виноваты. Поэтому надо тестировать диски самим.
Я расскажу о том, как мы тестировали диски. Как проверили, сколько IOPS они выдают.

1) Скачиваем последнюю версию, распаковываем, переходим в каталог. В командах ниже нужно заменить «fio-3.19» на актуальную версию из списка
2) Должны стоять пакеты для сборки
Какие должны быть результаты:
- Средний SSD, выпущенный 2-3 года назад — 50 тысяч IOPS.
- Свежий Samsung 960 Pro, который стоит на одной из железок у нас в офисе — 350 тысяч IOPS.
Если должно быть 50 тысяч, а диск выдает сильно меньше, то:
— он не SSD;
— есть сетевые задержки;
— неправильно примонтирован;
— с ними что-то еще плохое случилось и стоит поднять алярм.
И это все?
Еще полезно изучить команду find и регулярные выражения. Тестировщику как минимум надо уметь «грепать логи» — использовать grep. Но это уже остается на самостоятельный гуглеж.
База, которая всегда нужна — pwd, cp, mv, mkdir, touch. Остальное можно легко гуглить, как только возникает необходимость.
Вот вам еще пара ссылочек от меня:
-
— а то вроде про «>» знаешь еще по винде, а что значит «>>»? Вот в статье и ответ! — очень полезная штука, если у вас есть доступы на продакшен. Обезопасьте себя )))
Книги и видео по теме
Где тренироваться
Можно поднять виртуалку. Правда, тут сначала придется разбираться, как поднимать виртуалку )))
А можно купить облачную машину. Когда мне надо было поиграться с линуксом, я пошла на SimpleCloud (он мне в гугле одним из первых выпал и у него дружелюбный интерфейс. Но можно выбрать любой аналог) и купила самую дешманскую машину — за 150 руб в месяц. Месяца вам за глаза, чтобы «пощупать-потыркать», и этой машины с минимумом памяти тоже.
У меня был когда-то план самой платить эти 150р за то, чтобы дать машину в общий доступ. Но увы. Как я не пыталась ее огородить (закрывала команды типа ssh, ping и прочая), у меня не получилось. Всегда есть люди, которых хлебом не корми, дай испортить чужое. Выложил в общий доступ пароли? На тебе ддос-атаку с твоего сервера. Ну и сервер блокируют. После N-ой блокировки я плюнула на это дело. Кто хочет научиться, найдет 150р.