Команды Linux. Быстрый гайд для новичков

Linux относится к семейству Unix-подобных ОС. Операционные системы Linux основаны на ядре Linux. Все команды Linux выполняются в терминале ОС Linux. Терминал очень похож на командную строку Windows. Он также называется оболочкой или консолью Linux. 

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

Все команды Linux чувствительны к регистру. Команды выполняются, когда вы нажимаете клавишу Enter после ввода команды. Вывод команды будет показан в самом терминале. 

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

Для выполнения команд вам понадобится компьютер под управлением Ubuntu (или любого другого дистрибутива Linux). 

В Ubuntu вы можете запустить терминал, нажав кнопку Ctrl-Alt-T или нажав кнопку «Activities» в левом верхнем углу экрана и набрав «shell» или «terminal«, или другие распространенные синонимы.

Если у вас нет Linux OS, но вы хотите попрактиковаться в командах Linux, вы можете использовать любой онлайн-терминал Linux. Многие терминалы Linux доступны в Интернете бесплатно, для изучения команд.

Основные команды Linux

1) pwd

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

По умолчанию текущий рабочий каталог является домашним, если вы только что открыли терминал. 

Команда: pwd

2) whoami: 

Эта команда отобразит имя пользователя, который в данный момент вошел в терминал Linux. 

Команда: whoami

3) clear:

Если терминал уже заполнен большим количеством команд и их выводов, вы можете использовать команду clear, чтобы очистить терминал. 

4) exit: 

Команда exit просто закроет сессию в этом терминале.

Команды Linux для отображения даты, времени и календаря

1) date: 

Эта команда отображает текущее время и дату. 

Команда: date

2) cal: 

cal означает календарь. По умолчанию команда cal отображает календарь текущего месяца. На момент написания этой статьи текущим месяцем был март 2020 года, поэтому в выводе (на скриншоте) вы видите, что отображается календарь марта 2020 года. 

Команда: cal

  • Если вы хотите отобразить календарь за весь текущий год, вы можете дать команду ‘cal -y‘. 
  • Вы также можете указать год. Например, если вы хотите увидеть календарь на 2019 год, вы можете дать команду ‘cal 2019‘ — это отобразит календарь на 2019 год. 
  • Также, если вы хотите увидеть календарь нужного месяца нужного года, скажем января 2025 года, вы можете выполнить команду ‘cal 1 2025‘ — это отобразит календарь января 2025 года. Здесь ‘1’ обозначает первый месяц года, то есть январь.
  • Вы также можете посмотреть календарь за три месяца вместе — предыдущего, текущего и следующего. Команда для этой операции — ‘cal -3‘.

Команды для навигации по файловой системе Linux 

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

Дерево каталогов очень похоже на семейное дерево — у каталога или файла есть родитель. При этом у каждого каталога или файла есть только один родитель. 

Сейчас рассмотрим подробнее, как устроена файловая система Linux. Во-первых, у нас есть корневой каталог, который является первым или самым верхним каталогом в нашем дереве. Он обозначается прямой косой чертой (/). В корневом каталоге находится множество подкаталогов — вложенных каталогов. 

Рассмотрим некоторые важные подкаталоги:

  1. Bin: Этот каталог содержит исполняемые программы и команды, которые могут использовать все пользователи системы. 
  2. Opt: Означает «необязательный». В этом каталоге содержатся коммерческие программные продукты, которые не установлены в системе по умолчанию. Например, если вы пользуете Ubuntu, то могли заметить, что Google Chrome не установлен в системе по умолчанию, и если вы хотите установить Google Chrome, вы найдете его в каталоге Opt. 
  3. Temp: temp означает “временный”. В этом каталоге находятся временные файлы. 
  4. Var: Содержит переменные данные, которые часто меняются с течением времени. К ним относятся файлы журналов (логов), пулы электронной почты, и базы данных пользователей. 
  5. Home: Linux — многопользовательская ОС, что означает, что несколько пользователей могут работать в системе одновременно. Каждому пользователю выделяется квота на диске, в его домашнем каталоге.

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

(i) pwd: Уже подробно обсуждали эту команду выше. 

(ii) ls: ls означает «список» (list). 

Синтаксис команды ls следующий:

ls [OPTIONS] [FILES]

Эта команда выводит список содержимого в каталоге. Если вы просто выполните команду ls без указания опций и конкретных файлов, она выведет в алфавитном порядке все вложенные каталоги и файлы, которые находятся в текущем рабочем каталоге.

Можно использовать команду ls с различными опциями и аргументами: 

a) ls -l: Отображает содержимое с подробным листингом. -l означает опцию long

b) ls -lh: Используется для отображения размеров файлов, удобочитаемых человеком. -h означает «человек». 

c) Ls -lha: Эта команда используется для отображения всех скрытых файлов. -a включает показ скрытых файлов. 

Пример этих команд:

ls
ls -l
ls -lh
ls -lha

d) ls /: Поскольку / означает корневой каталог, эта команда выведет все файлы и папки, находящиеся в корневом каталоге. 

e) ls ~: Поскольку ~ представляет домашний каталог, эта команда покажет содержимое вашего домашнего каталога. Команда: ls ~

f) ls …: Эта команда отобразит содержимое родительского каталога, поскольку .. означает родительский каталог. Допустим, сейчас я нахожусь в каталоге test в моем домашнем каталоге. Если я выполню команду ls … здесь, то она отобразит содержимое родительского каталога test, который является моим домашним каталогом. 

Команды, выполненные в приведенном ниже примере:

ls ~
cd test
pwd
ls ..

g) Вы также можете вывести содержимое файла, указав абсолютный путь к нему. 

Команда: ls /home/cpf657/kaushapx/test/parent

Аналогично можно использовать и относительное имя пути.

(iii) cd: Еще одна полезная команда для навигации по файловой системе — cd. cd означает «сменить каталог».

Предположим, я сейчас нахожусь в своем домашнем каталоге и хочу перейти в каталог с именем ‘test’, который находится внутри моего домашнего каталога, поэтому я использую команду cd test:

pwd
cd test
pwd

Чтобы перейти на уровень выше, нужно выполнить команду cd …:

pwd
cd..
pwd

Вы также можете перейти к любому каталогу, используя его абсолютное имя. Например, предположим, что сейчас я нахожусь в каталоге test в моем домашнем каталоге. Теперь я хочу перейти в другую директорию под названием test1, которая находится внутри моей домашней директории. Поэтому я использую команду cd вместе с абсолютным путем к каталогу test1.

Команда:

pwd
cd /home/cpf657/kaushapx/test1
pwd

Существует множество опций, которые мы можем использовать в команде cd. 

cd /: Первая опция, которая очень полезна — это обычная косая черта. Так как вы знаете, что косая черта обозначает корневой каталог, cd / приведет вас прямо в корневой каталог. 

Команда:

pwd
cd /
pwd

cd ~ : Второй вариант, это cd Tilda, то есть cd ~. Это приведет вас в домашнюю директорию, как вы можете видеть на скриншоте ниже. 

Команда:

cd test
pwd
cd ~
pwd

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

Две точки представляют родительский каталог, поэтому, используя команду cd …, вы перейдете на один шаг назад в дереве каталогов:

cd ..
pwd

Если вы будете набирать cd с двумя точками снова и снова, то в конце концов попадете в корневой каталог. 

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

pwd
cd ../directory1
pwd

cd —: команда cd-пробел-дефис переводит вас в предыдущий рабочий каталог.

Другие полезные команды Linux 

(i) w: Эта команда отображает информацию о пользователях, находящихся в системе в данный момент. 

Команда: w

(ii) uname: Эта команда отображает информацию о компьютере, на котором вы сейчас работаете. Существуют различные опции, с которыми вы можете использовать эту команду. 

  • uname -a: Отображение всей информации о компьютере с ОС Linux. 

Команда: uname -a

  • uname -s: Чтобы отобразить тип ядра.

Команда: uname -s

  • uname -r: Чтобы отобразить релизную информацию о ядре.
  • uname -v: Отображение версии ядра. 

Команда: uname -v

(iii) top: Эта команда отображает данные о вашей машине в реальном времени. Она показывает сводку состояния, сколько времени работает компьютер, среднюю нагрузку, количество запущенных задач, информацию о процессоре, памяти, состоянии процессов и т.д. Для выхода из команды top необходимо нажать Q

Команда: top

(iv) tar: tar означает ленточный архив. Эта команда используется для создания архивного файла, состоящего из множества других файлов, а также для извлечения файлов из архивного файла. 

Сначала посмотрим, как создать архивный файл. Предположим, я нахожусь в каталоге под названием ‘parent’. Внутри этого родительского каталога у меня есть еще один каталог под названием ‘directory1’, который содержит два текстовых файла, как показано на скриншоте ниже. 

Команда:

pwd
ls
ls directory1

Теперь я использую tar для архивации всех файлов в directory1 с помощью следующих аргументов: 

Команда: tar -cvf testarchive.tar directory1/

Как видите на скриншоте выше, я использовал три options: -c, -v, и -f

  • -c — это опция create, которая используется для создания архивного файла. 
  • -v — это опция verbose, которая выводит список файлов в окне терминала, которые были добавлены в окно архива, как видите на скриншоте выше. 
  • -f — это опция, которая используется для присвоения нужного имени архивному файлу. Имя файла должно следовать сразу после опции -f. 

В приведенном выше примере архивный файл создан, но он не сжат.

Существует два варианта сжатия архивного файла.  Это:

-z: Это опция gzip. Она указывает tar использовать утилиту gzip для сжатия архивного файла. Она обеспечивает достойное сжатие и приемлемую скорость. Лучше добавить суффикс ‘.gz’ после имени файла, чтобы при попытке извлечь файлы из архива можно было легко определить тип сжатия.

Команда: tar -cvzf testarchive.tar.gz directory1/

-j: Это опция bzip2. Она использует для сжатия более совершенный алгоритм компрессии. Он обеспечивает лучшее сжатие и меньшую скорость. Лучше добавить суффикс ‘.bz2’ после имени файла, чтобы, когда кто-то попытается извлечь файлы из архива, он мог легко узнать тип сжатия. 

Команда: tar -cvjf testarchive.tar.bz2 directory1/

Теперь обсудим команду для извлечения файлов из архива. Для этого нам нужно использовать опцию -x, то есть извлечение. Опции -v и -f в этом случае ведут себя так же, как и в случае с архивом. 

Команда: tar -xvf testarchive.tar

Для извлечения файлов из архива .tar.gz необходимо использовать опцию -z, а для извлечения файлов из архива .tar.bz2 — опцию -j. 

Команды:

tar -xvzf testarchive.tar.gz
tar -xvjf testarchive.tar.bz2

(v) tail: Эта команда используется для вывода последних 10 строк файла. По умолчанию она показывает последние 10 строк, но если вы хотите указать количество строк, то можете использовать опцию -n

Синтаксис: tail <имя файла> , или tail -n <количество строк> <filename> 

Команда: tail DemoFile.txt

Команда: tail -n 5 DemoFile.txt

(vi) sudo: sudo означает «суперпользователь». Эта команда используется для выполнения действий, требующих прав «рута», то есть суперпользователя, например для изменения пароля другого пользователя и подобных операций. 

(vii) ps: Эта команда позволяет получить список процессов, запущенных в текущей командной оболочке. 

Команда: ps

Если хотите увидеть процессы, запущенные для определенного пользователя, нужно использовать опцию -u (user) в команде. 

Команда: ps -u kaushapx

Чтобы отобразить все запущенные процессы, нужно использовать опцию -e (every), то есть ps -e в команде. 

(viii) ping: Это очень полезная команда для устранения неполадок в сети. Она позволяет проверить наличие сетевого соединения с другим сетевым компьютером. 

Синтаксис этой команды: 

ping <ip_address_of_machine or device_name> 

Чтобы остановить вывод команды ping, нужно нажать Ctrl+C.

Например, попробуем пропинговать сайт Google, чтобы проверить, доступен ли он на этой машине. 

Команда: ping www.google.com

В приведенном выше примере видим, что IP-адрес Google 216.58.192.196 ответил на запрос ping и начал отправлять пакеты размером 64 байта. 

Номера последовательности по протоколу ICMP (seq=1, seq=2 и т. д.) говорят о том, что нет пропущенных ответов или потери пакетов. Время жизни пакета (ttl) — это время, необходимое для предотвращения переполнения сети. 

Время — это время, необходимое для того, чтобы запрос дошел от вашего компьютера до Google, а затем вернулся обратно на ваш компьютер. Чем оно короче, тем быстрее связь. В конце, выделенная часть — это резюме, которое показывает статистику пинга, которая может быть использована для мониторинга любых проблем с подключением к сети. 

Если вы хотите пинговать только определенное количество раз, вы можете использовать опцию -c (count). А если вы хотите услышать пинг, используйте опцию -a (звук). Например, ping -ac 6 www.google.com

(ix) passwd: Эта команда позволяет изменить пароль. Если вы меняете пароль для себя, достаточно ввести только команду passwd. Но если вы меняете пароль для кого-то другого, вам нужно использовать эту команду вместе с командой sudo.

Для изменения собственного пароля: passwd 

Для изменения пароля другого пользователя: sudo passwd <имя пользователя> 

Команда: sudo passwd mary

(x) mv: Это очень важная команда. mv означает «перемещение». Эта команда позволяет перемещать файлы и папки из одной директории в другую. С помощью этой команды можно также переименовывать файлы. 

Для перемещения файла в новое место в файловой системе,

Синтаксис: mv [имя файла] [целевой каталог] 

Команда: mv DemoFile.txt /home/cpf657/kaushapx/test/parent/directory2

Если вы хотите просто переименовать файл, используйте следующий синтаксис. 

Синтаксис: mv [filename] [new_filename] 

Команда: mv DemoFile.txt Hello.txt

Вы также можете выполнить перемещение и переименование файлов одним движением, как показано в примере ниже:

Команда: mv Hello.txt /home/cpf657/kaushapx/test/parent/directory1/DemoFile.txt

(xi) mkdir: mkdir означает make directory (создать каталог). Эта команда используется для создания новых каталогов в файловой системе. 

Синтаксис: mkdir [options…] [directories …] 

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

Некоторые опции, которые можно использовать с командой mkdir: 

  • -version: Выводит информацию о версии и лицензии.

Команда: mkdir -version

-help: Здесь отображается вся информация о команде mkdir.

Команда: mkdir -help

  • -v: Это опция verbose. Она выведет сообщение о созданном каталоге. 

Команда: mkdir -v test3Dir

  • -p: Эта опция используется для создания родительских каталогов в том случае, если для вновь создаваемого каталога он не существует. 

Команда: mkdir -vp parent2/child2

  • -m: Эта опция используется для установки разрешений для вновь созданного каталога. 

Синтаксис: mkdir -m a=rwx [каталоги] 

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

Команда: mkdir -vm a=r readOnlyDir

На скриншоте выше видно, что readOnlyDir — это каталог с правами только на чтение (dr-r-r-) 

(xii) alias: Эта команда используется для присвоения имени команде или комбинации команд. 

Синтаксис: alias [-p] [name[=value] … ] 

Например, если вы хотите переименовать команду mv в move, вы можете сделать это следующим образом. 

Команда: alias mv=move

(xiii) cat: cat означает concatenate (конкатенация). Эта команда считывает данные из файла и выводит его содержимое в окно терминала. 

Рассмотрим несколько вариантов этой команды: 

  • cat filename: Эта команда выводит содержимое заданного файла в окно терминала. 

Команда: cat LearnLinuxCommands.txt

  • cat file1 file2: Эта команда объединит содержимое двух файлов и покажет в выводе. 

Команда: cat LearnLinuxCommands.txt DemoFile.txt

  • cat -n filename: отображение содержимого файла вместе с номерами строк. 

Команда: cat -n Demofile.txt

  • cat >newFileName: Эта команда используется для создания нового файла. 
  • cat [source_filename] > [destination_filename]: Эта команда используется для копирования содержимого одного файла в другой. Обратите внимание, что при этом содержимое конечного файла будет заменено содержимым исходного файла. 
  • cat [file1] >> [file2]: Эта команда добавит содержимое файла1 в конец содержимого файла2. 
  • tac filename: Эта команда покажет содержимое файла в обратном порядке. 
  • cat -E filename: Эта команда используется для выделения конца строки.

(xiv) chmod: Эта команда используется для установки прав доступа к файлу или каталогу. Если вы выполните команду ls -l для любого файла или каталога, то увидите на выходе начальные символы -rwxrwxrwx. Первый символ ‘-‘ говорит о том, что это файл, если он отображает ‘d’, то это означает, что это каталог. 

Следующие три символа представляют разрешения для пользователя, следующие — разрешения для группы и последние три — разрешения для других. r означает чтение, w — запись и x — выполнение. Если вместо rwx вы видите , то это означает, что разрешение на файл не предоставлено. 

Чтобы установить разрешение, нужно использовать команду chmod.

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

0: нет прав 

1: выполнить 

2: записать 

3: записать и выполнить 

4: прочитать 

5: прочитать и выполнить 

6: прочитать и записать 

7: прочитать, записать и выполнить 

Предположим, я хочу использовать права чтения, записи и выполнения для себя (7), права только на чтение для группы (4) и права чтения и выполнения для других (5), тогда я буду использовать 745. 

Команда:

ls -l DemoFile.txt
chmod -R 745 DemoFile.txt
ls -l DemoFile.txt

(xv) chown: chown означает «сменить владельца». С помощью этой команды вы можете изменить владельца и группу владельцев файла. 

Синтаксис: chown [OPTION]… [OWNER][:[GROUP]] ФАЙЛ… 

Если вы хотите изменить владельца файла, вы можете использовать эту команду так: 

chown [имя_владельца] [имя_файла] 

Если вы хотите изменить владельца группы, то вам нужно использовать эту команду с командой sudo так: 

sudo chown [имя_владельца]:[имя_группы] [имя_файла]

(xvi) df: Эта команда показывает размер, используемое пространство, доступное пространство, процент использования и сведения о смонтированных файловых системах на вашем компьютере. 

-h и -x — это опции для чтения человеком и исключения соответственно. Опция -h показывает размер в человекочитаемом формате (Гб и Мб). Параметр -x используется для исключения файловой системы, которая вас не интересует. В примере ниже я исключил squashfs.

Команда: df -h -x squash

(xvii) diff: diff означает «разница». Эта команда используется для сравнения двух текстовых файлов и отображения различий между ними. 

Синтаксис: diff [option] filename1 filename2 

Команда: diff file1 file2

Вы можете использовать некоторые опции этой команды, например -y для сравнения бок о бок, -W для указания ширины строки, чтобы избежать обводки, -suppress-common-lines для подавления общих строк между двумя файлами в выводе diff. 

Команда: diff -y -W 70 file1 file2 

diff -y -W 70 file1 file2 -suppress-common-lines

(xviii) echo: команда echo выводит текст в окно терминала. В команду echo можно также передавать переменные окружения, как показано ниже. 

Команда:

echo Hello World
echo $USER
echo $PATH
echo $HOME

(xix) find: Эта команда используется для поиска файлов и каталогов в файловой системе. Вы можете искать по имени файла, имени каталога, дате создания, дате изменения, владельцу файла, разрешениям на файл и т. д. Вы также можете использовать подстановочные знаки в выражении поиска. 

Синтаксис: find [начать поиск с этой точки] [выражение поиска] [-опции] [что найти] 

Команда:

find . -name “*file*”

В приведенном выше примере команда ищет все файлы в текущем каталоге (.), в именах которых содержится строка ‘file'(*file*) (опция -name). 

Попробуйте использовать find -help, чтобы изучить различные опции, которые предоставляет эта команда. 

(xx) Kill: Это встроенная команда в Linux, которая используется для завершения процесса вручную. Чтобы завершить процесс, вам нужно указать идентификатор процесса (PID) в команде kill. 

Синтаксис: kill PID

(xxi) history: Эта команда покажет команды, которые вы ранее выполняли в командной строке. Чтобы просмотреть историю всех команд, нужно просто набрать history.

Например, если я хочу посмотреть последние 10 команд, которые я выполнил, я использую следующую команду:

history 10

В крайнем левом углу вы можете увидеть цифры 1033, 1034,… Это номера событий. Они могут быть разными для разных компьютеров. Вы можете использовать эти номера событий для повторения определенной команды.

Синтаксис: !EventNumber. 

Например,

!1033

Если вы хотите повторить последнюю выполненную команду, просто введите !!! 

(xxii) head: Команда head показывает 10 верхних строк файла. Чтобы просмотреть определенное количество верхних строк, используйте опцию -n

Команда: head -n 3 file2

(xxiii) gzip: Эта команда используется для сжатия файла.

Синтаксис: gzip [-options] filename 

Пример,

gzip -v file1

Используйте gzip -help для изучения различных опций команды gzip. 

(xxiv) Groups: Эта команда отображает имена групп, в которых состоит пользователь. 

Синтаксис: groups username 

Команда: groups kaushapx

(xxv) free: Эта команда сообщает об использовании оперативной и своп-памяти (используемой, свободной, общей, буферной, кэшированной) на вашем компьютере.

Команда: free -h

(xxvi) less: Это очень полезная команда, которую можно использовать для просмотра содержимого файла на терминале Linux без открытия файла в редакторе. 

Синтаксис: less имя_файла 

Чтобы выйти из вывода команды less, нужно нажать :q.

Заключение 

В этом уроке мы подробно рассмотрели множество полезных и важных команд Linux вместе с примерами. Чтобы лучше изучить любую команду, вы всегда можете посмотреть справку по этой команде: command_name -help.

SoftwareTestingHelp


Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Подписаться
Уведомить о
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас