Linux notes #2 — ФС, терминал, команды

В Linux все есть файл, что означает, что все элементы системы (сокеты, устройства, файлы, директории и т.д.) представлены в виде файлов. 

FHS (Filesystem Hierarchy Standard) — стандарт, который унифицирует и определяет расположение и структуру файлов и каталогов, с целью обеспечения единообразия размещения компонентов системы. Основной целью разработки было упростить администрирование и обеспечить переносимость ПО между UNIX-подобными ОС. 

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

Корневым каталогом является “/”. Как уже было сказано выше каждый файл и каталог имеет свое уникальное расположение. 

Рассмотрим некоторые:

/bin — основные исполняемые файлы

/boot — файлы, необходимые для загрузки ОС 

/dev — файлы устройств, представляющие физические и виртуальные устройства

/etc — конфигурационные файлы

/home —  домашние каталоги пользователей. Каждый пользователь имеет свой каталог в /home

/lib — библиотеки

/root — домашний каталог суперпользователя

/tmp — временные файлы

Для взаимодействия с ОС есть два вида интерфейса — графический и текстовый, а их различные реализации называются оболочками.

Среди текстовых оболочек обычно называемых интерпретаторами командной строки стандартной является sh или шелл, а самая распространенной bash, преимуществом которой является автодополнение (добивание команды с помощью Tab).

Доступ к текстовому терминалу можно получить тремя способами:

  • через эмулятор терминала в графическом интерфейсе
  • через виртуальную консоль или виртуальный терминал (например при отсутствии графического интерфейса)
  • через программы, использующие протокол ssh, например putty (преимущество данного способа в возможности подключаться удаленно)

В текстовом интерфейсе мы работаем с командами. Для этого необходимо знать их синтаксис. 

Для примера возьмем команду ls (list), которая позволяет просмотреть содержимое директории.

ВАЖНО — Linux регистрозависима, если вы напишите LS то вы получите в ответ

bash: LS: command not found...

Similar command is: 'ls'

Чтобы очистить консоль, введите команду clear (если вы используете SmarTTY и Smart Terminal — clear может не сработать, подключайтесь через классический терминал). Здесь же можно упомянуть еще один небольшой лайфхак — чтобы заново не вводить предыдущие команды целиком, можно воспользоваться стрелками на клавиатуре.  

Теперь сделаем ls и получим примерно следующее

[sysadmin@almalinux ~]$ ls

Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos

Для получения дополнительной информации по команде можно сделать следующее:

  • ls — help
  • man ls
  • info ls

Если написать «man -k ls» то будет произведен поиск в руководстве по ключевому слову — в данном случае это “ls”.

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

Если ввести в терминале «history», можно увидеть ранее введенные команды:

Кроме того, можно ввести “!!” — это повторит предыдущую команду. Чтобы повторить определенную команду из истории, нужно ввести “!33” — в данном случае 33 это номер команды в истории.

Приведу еще несколько распространенных команд:

Навигация и управление файлами:

    cd — изменяет текущий каталог.

    pwd — печатает имя текущего каталога.

    cp — копирует файлы и каталоги.

    mv — перемещает/переименовывает файлы и каталоги.

    rm — удаляет файлы и каталоги.

Управление процессами:

    ps — отображает текущие процессы.

    kill — посылает сигнал процессу.

Управление пользователями и правами:

    sudo — выполняет команду от имени суперпользователя.

    chmod — изменяет права доступа к файлам.

Сетевые команды:

    ping — проверяет доступность узла в сети.

    ifconfig — отображает сетевую конфигурацию.

Работа с архивами:

    tar — архивирует/извлекает файлы из архива.

Photo by Gabriel Heinzer on Unsplash