10 команд Linux для начинающих пользователей

В предыдущей статье мы привели базовые горячие клавиши, которые помогают быстрее адаптироваться на первых этапах знакомства с терминалом. Мы продолжим тему первых шагов знакомства с терминалом Linux и познакомим вас с 10 его командами, знание которых сильно облегчит работу в среде Linux.

Начнём с команды, без которой невозможно перемещаться по каталогам Linux, а значит и полноценно работать, — cd.

Cd – переход между директориями

Cd — это одна из самых часто используемых команд, так как невозможно работать не перемещение по директориям. Синтаксис команды очень прост: cd

Чтобы перейти в нужный каталог — необходимо ввести его полный путь, а если вы хотите перейти в подкаталог из каталога — достаточно ввести его название. Например, мы хотим перейти в каталог /etc/, тогда команда будет выглядеть так:

cd /etc/

Команда имеет множество удобных шорткодов для более быстрой навигации:

  • cd – перемещение в домашний каталог пользователя, аналог cd home или cd ~
  • cd .. – перемещение на один каталог вверх
  • cd - – возвращение в предыдущей каталог
  • cd / – перемещение в корневую директорию

Если вы запутались или вам сложно сориентироваться, в какой директории вы сейчас находитесь – воспользуйтесь командой pwd. Она выведет полный путь директории.

Pwd – отображение полного пути до текущей рабочей директории

Команда pwd возвращает абсолютный (полный) путь, который является путём всех каталогов, начинающийся с косой черты (/). Синтаксис команды:

pwd

Пример вывода полного пути:

pseudolukian@DELL-2J1ZPT2:/etc/apt/sources.list.d$ pwd
/etc/apt/sources.list.d

Команда pwd не имеет никаких ключей. Если мы хотим просмотреть содержимое директории, в которой находимся нам нужно воспользоваться командой ls.

Ls - отображение содержимого директории

Команда ls выводит содержимое каталога, в котором сейчас находится пользователь. Синтаксис команды:

ls

Вы можете просмотреть содержимое любого каталога, к которому знаете путь. Например, команда ls /etc/ выведет на экран содержимое каталога etc:

ls /etc/

Команда ls по сравнению с pwd имеет множество полезных ключей, которые меняют форму вывода команды.

Ключ — это специальный параметр команды или терминальной утилиты. Ключи указываются между названием команды или утилиты и файлом, который передаётся на вход: команда -ключ название файла.

Например, при указании ключа -R, ls будет выводить содержимое вложенных директорий:

pseudolukian@DELL-2J1ZPT2:/etc/apt$ ls -R
.:
apt.conf.d auth.conf.d preferences.d sources.list sources.list.d trusted.gpg.d

./apt.conf.d:
01-vendor-ubuntu 10periodic 20auto-upgrades 50command-not-found 99update-notifier
01autoremove 15update-stamp 20packagekit 50unattended-upgrades
01autoremove-kernels 20archive 20snapd.conf 70debconf
./auth.conf.d:
./preferences.d:
./sources.list.d:
./trusted.gpg.d:
ubuntu-keyring-2012-archive.gpg ubuntu-keyring-2012-cdimage.gpg ubuntu-keyring-2018-archive.gpg

По умолчанию ls не отображает скрытые файлы, чтобы ls начал отображать скрытые файлы, его надо запустить с ключом -a. Пример вывода содержимого директории /etc/apt:

pseudolukian@DELL-2J1ZPT2:/etc/apt$ ls -a
. .. apt.conf.d auth.conf.d preferences.d sources.list sources.list.d trusted.gpg.d

Обратите внимание, в начале списка, выведены объекты директории:

  • Точка – это псевдоним пути к текущей директории
  • Две точки – это псевдоним родительской директории (директория на уровень выше)

Следующий ключ -l. Используя этот ключ, ls выведет список файлов и каталогов с подробной информацией о пользователях, правах доступа, размерах, владельцах и т. д. Пример вывода с ключом -l:

pseudolukian@DELL-2J1ZPT2:/etc/apt$ ls -l
total 4
drwxr-xr-x 1 root root 4096 Feb 20 02:49 .
drwxr-xr-x 1 root root 4096 Aug 17 15:40 ..
drwxr-xr-x 1 root root 4096 Feb 20 02:51 apt.conf.d
drwxr-xr-x 1 root root 4096 Apr 9 2020 auth.conf.d
drwxr-xr-x 1 root root 4096 Apr 9 2020 preferences.d
-rw-r--r-- 1 root root 2743 Feb 20 02:51 sources.list
drwxr-xr-x 1 root root 4096 Apr 9 2020 sources.list.d
drwxr-xr-x 1 root root 4096 Feb 20 02:49 trusted.gpg.d

Ключи могут быть использованы одновременно. Например, чтобы вывести всё содержимое директории, вместе со скрытыми объектами, команду можно указать так: ls -la.

Итак, мы посмотрели на команды, которые помогают перемещаться по каталогам Linux, теперь можно перейти к командам, предназначенным для просмотра содержимого файлов и манипуляций с ними: копирование, удаление, перемещение.

Cat, head, sed, tail – вывод содержимого файла

Рассмотрим сразу набор команд, которые используются для вывода содержимого файла в командной строке. Начнем с команды cat, которая используется для просмотра текстовых файлов или скриптов. Синтаксис команды:

cat

Чтобы просмотреть содержимое файла – укажите его полное имя после команды cat:

pseudolukian@DELL-2J1ZPT2:~$ cat test.txt
Привет!
Мы открыли тестовый файл с помощью команды cat. Всё работает нормально :)

Команда cat обладает множеством полезных ключей и функций. Например, ключ -n выводит содержимое файла с нумерацией строк:

pseudolukian@DELL-2J1ZPT2:~$ cat -n test.txt
1 Привет!
2 Мы открыли тестовый файл с помощью команды cat. Всё работает нормально :)
3 Для более наглядного примера, напишем ещё несколько строк. А лучше вставим список.
4 Linux - замечательная ОС, она позволяет:
5 - легко запускать веб-сервера;
6 - гибко настраивать права доступа;
7 - управлять инфраструктурой;
8 - и многое другое.

Часто бывает нужно вывести первые несколько строк файла. Для этого используется команда head с указанием количества, выводимых строк и названием файла:

pseudolukian@DELL-2J1ZPT2:~$ head -2 test.txt
Привет!
Мы открыли тестовый файл с помощью команды cat. Всё работает нормально :)

Чтобы вывести последние строки файла — используют команду tail с указанием количества строк и названия файла:

pseudolukian@DELL-2J1ZPT2:~$ tail -4 test.txt
- легко запускать веб-сервера;
- гибко настраивать права доступа;
- управлять инфраструктурой;
- и многое другое.

Для вывода произвольного количества строк из файла применяется команда sed с указанием диапазона строк в формате: 'начало, конец !d'.

pseudolukian@DELL-2J1ZPT2:~$ sed '2,3!d' test.txt
Мы открыли тестовый файл с помощью команды cat. Всё работает нормально :)
Для более наглядного примера напишем ещё несколько строк. А лучше вставим список.

Команды cat, head, sed и tail позволяют выводить информацию в терминал по определенным условиям. Однако часто нужно найти конкретную информацию в файле или файл целиком. Для этого существует команда — grep.

Grep — поиск файлов в директориях и строк в файлах

Строго говоря, grep — это утилита командной строки, которая входит во все широко используемые дистрибутивы Linux, а слово грепнуть стало нарицательным для поиска чего-либо.

Чаще всего grep используется в сочетании с другими командами, передавая на вход данные через оператор потока PIPE — |. Например, следующая цепочка команд (конвейер) найдёт среди множества файлов все файлы, в названии которых есть слово vdc с расширением .png и выведет на экран первые 3 файла:

ls -l | grep .png | head -3

Искать можно как файлы и директории, так и строки внутри файлов. Например, найдёт строку в тестовом текстовом файле test_test_.txt, содержащую слово «Мы»:

cat test_test.txt | grep Мы

Если нужно найти словосочетание с пробелами, то оно берется в кавычки:

cat test_test.txt | grep "Мы открыли"

Несмотря на то, что grep обычно используется, как фильтр, команду можно использовать и самостоятельно. Для этого достаточно указать искомое значение и место для поиска: файл или директория.

Грепнем строку "Мы открыли" в файле test_test.txt:

grep "Мы открыли" test_test.txt

Для поиска файлов в директории и вложенных директориях применяется ключ -r. Например, найдем всех файлы с расширением .txt в домашней директории пользователя и всех вложенных директориях:

root@DELL-2J1ZPT2:/home/pseudolukian# grep -r .txt

Конечно, в рамках данной обзорной статьи продемонстрировать все возможности команды grep — невозможно. Мы ограничились только базовым функционалом, а также рассмотрели команды, с помощью которых можно перемещаться по директориям и просматривать содержимое файлов.

Теперь посмотрим на команды, которые позволяют проводить манипуляции с файлами и директориями.

Touch, cp, mv, rm — создание, копирование, удаление и перемещение файлов

Создать файл в Linux можно несколькими путями: 1) Запустить нужную терминальную утилиту и после сохранить готовый файл; 2) Создать пустой файл командой touch и после его открыть в нужной утилите.

Для создания пустого файла применяется команда touch, которой нужно в качестве аргумента передать название и расширение файла:

touch test.txt

Чтобы создать копию файла — применяется команда cp, с указанием нового имени файла. Например:

cp test.txt copied_test.txt

Если файл нужно скопировать в другую директорию — ее нужно указать в конце команды:

cp test.txt /home/

Команда cp имеет множество полезных ключей, которые могут пригодиться. Вот некоторые из них:

  • -f — перезаписать существующий файл при копировании
  • -i — спросить нужно ли перезаписывать существующий файл
  • -r — рекурсивное копирование директории (подробнее в разделе о работе с директориями)

Ключей, конечно же, намного больше, но для базовых задач по копированию — их более чем достаточно.

Для перемещения файлов между директориями применяется команда mv:

mv test.txt /home/

Часто команду mv используют для переименования файлов. В этом случае синтаксис команды будет таким:

mv test.txt new_nest.txt

Чтобы удалить файл — применяется команда rm:

rm test.txt

Далее рассмотрим команды для работы с директориями.

Mkdir, cp, rm — создание, копирование, удаление и перемещение директорий

Для создания директорий используют команду mkdir, с указанием названия новой директории. Например, мы создадим директорию folder в /home:

mkdir folder

Для более наглядной демонстрации последующих команд копирования и удаления, создадим в директории folder несколько пустых файлов командой touch, применив небольшой лайфхак — мы автоматизируем процесс создания файлов с помощью такой конструкции:

touch some_file_{1..10}.txt

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

cp -r folder/ copied_folder

Для удаления директории, содержащий файлы применяют команду rm с ключом -r:

rm -r folder

Переместить директорию со всем содержимым можно командой mv. Сначала указывается переносимый каталог, а затем каталог для переноса:

mv folder /home

Работа с файлами и директориями не ограничивается их созданием, удалением и перемещением. Часто необходимо изменить права доступа к файлам и назначить им владельца.

Chmod — установка прав на файл

Для работы с правами доступа используется команда chmod. Синтаксис команды:

chmod права файл или папка

Просмотреть права можно командой ls с ключом -l:

root@DELL-2J1ZPT2:/home# ls -l
total 0
drwxr-xr-x 1 root root 4096 Aug 24 12:41 folder
drwxr-xr-x 1 pseudolukian pseudolukian 4096 Aug 24 14:21 pseudolukian
-r--r----- 1 root root 0 Aug 25 13:34 test.txt

Указать изменения в правах на файл через chmod можно двумя разными форматами записей:

Первый формат записи — символьный. В нем используются следующие символы:

  • u — пользователь-владелец
  • g — группа-владелец
  • o — другие пользователи
  • a — все пользователи
  • r — права на чтение
  • w — права на запись
  • x — права на выполнение
  • "+" — добавить права
  • "-" — отменить права
  • "=" — заменить набор прав.

Пример добавления прав в символьном формате записи:

chmod u+rwx,g+rwx,a+rwx test.txt

Пример отмены прав в символьном формате записи:

chmod u-rwx,g-rwx,a-rwx test.txt

Если нужно изменить сразу набор прав, то используется следующая запись:

chmod u=rwx,g=rwx,a=rwx test.txt

Если нужно некоторые права добавить, а некоторые отменить, то вместо права указывается прочерк — «-»:

chmod u=r-x,g=rw-,a=--- test.txt

Второй формат записи — числовой. Здесь права представляются не в виде букв, а в виде восьмеричной записи групп значений:

  • r — 4
  • w — 2
  • x — 1.

Так запись формата rwxrwxrwx можно представить, как сумму значений прав, разбитых по группам: (4+2+1), (4+2+1), (4+2+1) = 777. Чаще всего для изменения прав используют именно такой формат записи.

Пример добавления прав в цифровом формате записи:

chmod 777 test.txt

Этой записью мы установили максимальные права доступа для всех. Например, если нужно запретить исполнение файла — устанавливается значение 6 (r — 4 + w — 2) в нужную группу прав. Запретим исполнение для всех:

chmod 666 test.txt

Если нужно отменить права сразу на группу прав — устанавливается 0. Например, отменим все права на файл для владельца-пользователя:

chmod 066 test.txt

Мы рассмотрели работу с правами доступа к файлам и папкам. Часто бывает необходимо еще изменить владельца и группу владельцев файла или папки. Делается это с помощью команд chown и chgrp.

Chown, chgrp — смена владельца файла и группы

В Linux каждый файл и директория имеют своего владельца и группу владельца. Назначаются владельцы при создании объектов. Такая система сделана для того, чтобы разделить права доступа между пользователями.

Напомним, что узнать владельца можно командой ls -l. А сменить владельца и группу владельца можно командой chown. Синтаксис команды:

chown новый пользователь:новая группа файл или папка

Например, изменим пользователя и группу пользователя для файла test.txt на root-пользователя:

chown root:root test.txt

Для изменения пользователя у директории и всех вложенных объектов применяется команда chown с ключом -R:

chown root:root ./folder

Существует команда, которая изменяет только группу владельца — chgrp. Синтаксис команды:

chgrp название группы владельца файл или директория

Как изменить владельца или группу владельца мы рассмотрели, теперь ознакомимся с командами для создания пользователя и групп в Linux.

Useradd, groupadd — создание пользователя, группы и добавление пользователя в группу

Создать пользователя или изменить права уже существующим пользователям в Linux можно с помощью команды useradd. Команда позволяется также создать домашний каталог и скопировать в него системные файлы. Синтаксис команды:

useradd опции имя_пользователя

Команда useradd имеет множество опций. Мы приведем только некоторые из них:

  • -D — отобразить параметры, которые будут применены по умолчанию при создании нового пользователя
  • -p — задать пароль пользователя
  • -s — задать командную оболочку для пользователя
  • -g — основная группа пользователя
  • -G — дополнительная группа пользователя

Ознакомимся сначала с дефолтными условиями создания нового пользователя:

useradd -D

Команда вернет информацию следующего вида:

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

Если стандартные условия вас устраивают, то создать нового пользователя можно, указав только два параметра: имя пользователя и пароль.

useradd -p porol new_user

По умолчанию у дефолтной группы довольно ограниченные права, чтобы новые пользователи могли получить доступ к системным ресурсам, можно указать ключ -G с системными ресурсами. Например:

useradd -G adm,cdrom -p parol new_user

Если стандартные группы пользователей вам не подходят и нужно создать новою группу, то делается это командой groupadd.

Создадим группу new_users:

groupadd new_users

Теперь с помощью команд cat и grep проверим, что группа была создана:

root@DELL-2J1ZPT2:/home/folder# cat /etc/group | grep new_users
new_users:x:1002:

А если требуется получить список всех групп, то просто воспользуйтесь командой cat без grep:

cat /etc/group

Команда вернёт список названий групп. Здесь стоит поэкспериментировать с объединением команд для работы с выводом на экран через оператор |. Это позволит вам лучше понять принцип работы каждой из команд.

Если статья показалась вам интересной, возможно, вас заинтересует наша другая статья — «10 горячих клавиш Linux для начинающих пользователей».

Опробовать на боевую новые знания можно прямо сейчас. Достаточно создать виртуальный сервер под управлением Linux и воспользоваться бесплатным тестовым периодом.