June 20

Linux: базовые навыки

Если вы только начинаете знакомство с Linux и хотите понять, зачем вообще нужен этот «пингвин» в мире IT — эта статья для вас. Linux — это операционная система, на которой работают сервера, сайты и даже банкоматы. Она бесплатна, надёжна и активно используется в компаниях по всему миру.

В этой статье я разберу пошагово тест на базовые знания Linux. Каждому вопросу будет дано понятное объяснение, даже если вы раньше не работали в терминале. Объясню, что значит «chmod», зачем нужны команды вроде ps и как узнать, что тормозит сервер.

Такие базовые знания особенно пригодятся тем, кто хочет начать карьеру в IT: системным администратором, DevOps-инженером, техническим специалистом поддержки или просто грамотным пользователем, уверенно чувствующим себя в Linux-среде.

Вопрос 1:

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

Варианты:
a) hostname
b) ls
c) cd
d) echo $PATH
e) pwd

Обоснование:
Команда pwd (print working directory) показывает путь к текущему рабочему каталогу. Это именно то, что требуется в вопросе. Остальные команды:

  • hostname — показывает имя хоста (компьютера),
  • ls — список файлов в каталоге,
  • cd — смена каталога,
  • echo $PATH — выводит переменную окружения PATH, не связана с текущим каталогом.

Выбранный ответ: e) pwd

Вопрос 2:

Вы находитесь в каталоге /home/user/docs/reports. Какой командой можно перейти в директорию /home/user/docs?

Варианты:
a) cd /
b) cd ..
c) cd root
d) cd ./docs
e) cd ~

Обоснование:
Команда cd .. используется для перехода на один уровень вверх в иерархии каталогов.
Находясь в /home/user/docs/reports, команда cd .. переместит пользователя в /home/user/docs.

Остальные команды:

  • cd / — переместит в корень файловой системы (/), не подходит.
  • cd root — ищет подкаталог root в текущем каталоге, а не /root.
  • cd ./docs — от текущего пути /home/user/docs/reports ищет подкаталог docs, которого нет.
  • cd ~ — отправляет в домашнюю директорию, обычно /home/user.

Выбранный ответ: b) cd ..

Вопрос 3:
Какая команда НЕ используется для работы с файлами и каталогами как объектами файловой системы?

Варианты:
a) grep
b) cp
c) rm
d) mkdir
e) mv

Обоснование:

  • grep — используется для поиска текста по шаблону в содержимом файлов. Она не работает с файлами как объектами, а только с их содержимым.
  • cp — копирует файлы и каталоги.
  • rm — удаляет файлы и каталоги.
  • mkdir — создаёт директории.
  • mv — перемещает или переименовывает файлы и каталоги.

Следовательно, grep — это правильный ответ, так как она не управляет файлами как объектами файловой системы.

Выбранный ответ: a) grep

Вопрос 4:

Вы подготовили файл summary.txt и хотите создать резервную копию этого файла в каталоге /home/user/backups. Какую команду используете?

Варианты:
a) mkdir /home/user/backups/summary.txt
b) mv summary.txt /home/user/backups/
c) copy summary.txt /home/user/backups/
d) cp summary.txt /home/user/backups/
e) rm summary.txt && touch /home/user/backups/summary.txt

Обоснование:

  • cp — это команда копирования файлов. Именно она используется для создания резервной копии, не удаляя оригинал.
  • mv переместит файл, а не скопирует — неподходящий вариант.
  • copy — не существует как отдельная команда в Linux.
  • mkdir — создает каталоги, а не файлы.
  • rm ... && touch ... — удалит файл и создаст пустой — данные будут потеряны.

Правильный способ сохранить копию в другом каталоге: cp summary.txt /home/user/backups/.

Выбранныйответ: d) cp summary.txt /home/user/backups/

Вопрос 5:

Вы находитесь в домашнем каталоге пользователя и хотите найти файл report.txt. Какую команду следует использовать?

Варианты:
a) Использовать grep по пути . для поиска имени файла
b) Выполнить cat на каждый каталог
c) Применить ps aux | grep report.txt
d) Применить команду locate без обновления базы
e) Использовать find . -name "report.txt"

Обоснование:
Команда find . -name "report.txt" — это стандартный способ поиска файла по имени в текущем каталоге (.) и его подкаталогах. Она работает без необходимости обновления базы, в отличие от locate, и подходит для поиска по файловой системе в реальном времени.

Остальные команды:

  • grep ищет по содержимому файлов, а не по именам файлов.
  • cat выводит содержимое файлов, а не подходит для каталогов — вызовет ошибку.
  • ps aux | grep ищет процессы, а не файлы.
  • locate работает только с уже обновлённой базой файловой системы и может не увидеть недавно созданные файлы.

Выбранный ответ: e) Использовать find . -name "report.txt"

Вопрос 6:

Вы хотите найти все строки, содержащие слово "ERROR", в файлах с расширением .log, находящихся в текущем каталоге и его подкаталогах. Какаякомандаподойдётлучшевсего?

Варианты:
a) grep "ERROR" *.log
b) find . -name "*.log" | grep "ERROR"
c) grep -r "ERROR" --include="*.log"
d) cat *.log | grep "ERROR"
e) locate "*.log" | grep "ERROR"

Обоснование:
Команда grep -r "ERROR" --include="*.log" делает именно то, что нужно:

  • -r — рекурсивный поиск по всем подкаталогам,
  • --include="*.log" — ограничивает поиск только файлами с расширением .log,
  • "ERROR" — шаблон, который нужно найти.

Остальные варианты:

  • a) grep "ERROR" *.log — ищет только в файлах .log текущей директории, не рекурсивно.
  • b) find . -name "*.log" | grep "ERROR" — ищет имена файлов, содержащие "ERROR", а не содержимое файлов.
  • d) cat *.log | grep "ERROR" — только в текущей директории, не охватывает подкаталоги.
  • e) locate "*.log" | grep "ERROR" — locate ищет пути, не читает содержимое файлов.

Выбранныйответ: c) grep -r "ERROR" --include="*.log"

Вопрос 7:
Чем отличается оператор >> от оператора > в командной строке Linux?

Варианты:
a) >> выводит только ошибки, а > — обычный вывод
b) >> добавляет вывод в конец файла, а > перезаписывает файл
c) >> используется только в пайплайнах
d) >> создаёт файл, а > записывает в уже существующий
e) >> работает только с текстовыми файлами

Обоснование:

  • > — перезаписывает файл: если файл уже существует, его содержимое удаляется и заменяется новым.
  • >> — добавляет (append) вывод в конец существующего файла, не удаляя текущие данные.

Остальные утверждения:

  • a) Неверно, для ошибок используется 2> и 2>>.
  • c) Не соответствует реальности, оба оператора могут использоваться вне пайплайнов.
  • d) Оба оператора могут создать файл, если он не существует.
  • e) Оба работают с любыми файлами, не только текстовыми.

Выбранный ответ: b) >> добавляет вывод в конец файла, а > перезаписывает файл

Вопрос 8:

Вам нужно сохранить список всех видимых файлов и папок в текущем каталоге в файл list.txt для дальнейшего анализа. Какую команду нужно ввести?

Варианты:
a) ls list.txt
b) cat list.txt > ls
c) ls > list.txt
d) ls -a > list.txt
e) echo list.txt > ls

Обоснование:

  • Команда ls > list.txt выведет все видимые (не скрытые) файлы и папки в текущем каталоге и запишет их в файл list.txt.
  • Именно это и требуется по условию — "все видимые файлы и папки".

Остальные варианты:

  • ls list.txt — попытается показать файл list.txt, не выводит список всех файлов.
  • cat list.txt > ls — читает файл и перезаписывает системную команду ls, потенциально опасная ошибка.
  • ls -a > list.txt — включает скрытые файлы (начинающиеся с точки), не соответствует условию.
  • echo list.txt > ls — создаёт файл ls с текстом list.txt, бессмысленно и вредно.

Выбранный ответ: c) ls > list.txt

Вопрос 9:
Как называется учётная запись в Linux, которая обладает полным доступом ко всем файлам и операциям в системе?

Варианты:
a) manager
b) sudo
c) root
d) admin
e) owner

Обоснование:

  • root — это суперпользователь в Linux, обладающий неограниченными правами доступа. Он может выполнять любые действия в системе: изменять файлы, управлять пользователями, устанавливать ПО и т.д.

Остальные:

  • sudo — команда, а не имя пользователя. Она позволяет обычному пользователю выполнять команды от имени root.
  • manager, admin, owner — это просто названия, которые могут быть именами пользователей или ролями, но не являются встроенной системной учётной записью в Linux.

Выбранный ответ: c) root

Вопрос 10:

Вы создали группу analytics и теперь хотите добавить пользователя olga в эту группу, не убирая его из текущих групп. Какую команду нужно использовать?

Варианты:
a) usergroup add olga analytics
b) chmod +g analytics olga
c) groupadd olga analytics
d) usermod -g analytics olga
e) usermod -aG analytics olga

Обоснование:

  • usermod -aG означает:
    • -G analytics — добавить в группу analytics
    • -a (append) — добавить, не удаляя из уже существующих групп

Остальные команды:

  • a) usergroup add — не существует такой команды.
  • b) chmod +g — используется для изменения прав доступа к файлам, не работает с группами пользователей.
  • c) groupadd olga analytics — создаёт группу, но не добавляет пользователя в неё.
  • d) usermod -g — назначает основную группу, и удаляет из всех остальных.

Правильный и безопасный способ добавить пользователя в дополнительную группу — usermod -aG.

Выбранный ответ: e) usermod -aG analytics olga

Заключение:

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