Поиск по сайту:

Введение в основы Linux


Введение

Linux — это семейство бесплатных операционных систем с открытым исходным кодом, основанных на ядре Linux. Операционные системы на основе Linux известны как дистрибутивы Linux или дистрибутивы. Примеры включают Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux и многие другие.

Ядро Linux активно разрабатывается с 1991 года и зарекомендовало себя как чрезвычайно универсальное и адаптируемое. Вы можете найти компьютеры под управлением Linux в самых разных контекстах по всему миру, от веб-серверов до сотовых телефонов. Сегодня 90% всей облачной инфраструктуры и 74% смартфонов в мире работают под управлением Linux.

Тем не менее, новичкам в Linux может быть несколько сложно подобраться, поскольку файловые системы Linux имеют другую структуру, чем в Windows или MacOS. Кроме того, операционные системы на базе Linux сильно зависят от работы с интерфейсом командной строки, в то время как большинство персональных компьютеров полагаются на графические интерфейсы.

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

Предпосылки

Чтобы следовать этому руководству, вам потребуется доступ к компьютеру с операционной системой на базе Linux. Это может быть либо виртуальный частный сервер, к которому вы подключились с помощью SSH, либо ваша локальная машина. Обратите внимание, что это руководство было проверено с использованием сервера Linux с Ubuntu 20.04, но приведенные примеры должны работать на компьютере с любой версией любого дистрибутива Linux.

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

Терминал

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

  • терминал — это среда ввода и вывода, представляющая собой текстовое окно с запущенной оболочкой.
  • Оболочка — это программа, открывающая операционную систему компьютера пользователю или программе. В системах Linux оболочка, представленная в терминале, является интерпретатором командной строки.
  • Интерфейс командной строки — это пользовательский интерфейс (управляемый программой-интерпретатором командной строки), который обрабатывает команды для компьютерной программы и выводит результаты.

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

Чтобы стать экспертом по Linux, вам нужно уметь пользоваться терминалом. Любые административные задачи, включая работу с файлами, установку пакетов и управление пользователями, можно выполнять через терминал. Терминал интерактивен: вы указываете команды для запуска, а терминал выводит результаты этих команд. Чтобы выполнить любую команду, введите ее в приглашение и нажмите ENTER.

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

Стандарт иерархии файловой системы

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

Косая черта (/) используется для обозначения корневого каталога в иерархии файловой системы, определенной FHS.

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

Пользователь root имеет собственный домашний каталог, указанный FHS: /root/. Обратите внимание, что / упоминается как «корневой каталог» и что он отличается от root/, который хранится внутри /.

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

Навигация

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

Чтобы увидеть, в каком каталоге вы в данный момент активны, вы можете запустить команду pwd, что означает «распечатать рабочий каталог»:

  1. pwd

pwd печатает путь к вашему текущему каталогу. Вывод будет примерно таким:

Output
/home/sammy

В этом примере выходные данные показывают, что текущим активным каталогом является sammy, который находится внутри каталога home/, который находится в корневом каталоге /. Как упоминалось ранее, поскольку каталог sammy/ хранится в каталоге home/, sammy/ представляет собой домашний каталог пользователя sammy.

Чтобы просмотреть список файлов и каталогов, существующих в вашем текущем рабочем каталоге, выполните команду ls:

  1. ls

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

Вы можете создать один или несколько новых каталогов в текущем рабочем каталоге с помощью команды mkdir, что означает \создать каталог. Например, чтобы создать два новых каталога с именем testdir1 и testdir2, вы можете запустить следующую команду:

  1. mkdir testdir1 testdir2

Теперь, когда вы запустите команду ls, эти каталоги появятся в выводе:

  1. ls
Output
testdir1 testdir2

Чтобы перейти в один из этих новых каталогов, запустите команду cd (что означает «изменить каталог») и укажите имя каталога:

  1. cd testdir1

Это изменит ваш новый текущий рабочий каталог на указанный вами каталог. Вы можете увидеть это с помощью pwd:

  1. pwd
Output
/home/sammy/testdir1

Однако, поскольку testdir1 и testdir2 хранятся в домашнем каталоге пользователя sammy, они находятся в разных ветвях дерева каталогов. Команда cd ищет каталоги в вашем текущем рабочем каталоге, поэтому это означает, что вы не можете cd напрямую войти в каталог testdir2, который вы создали ранее, в то время как testdir1 — ваш рабочий каталог:

  1. cd testdir2
Output
bash: cd: testdir2: No such file or directory

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

  1. cd /home/sammy/testdir2

Примечание. В Linux тильда (~) — это сокращение для домашнего каталога пользователя, под которым вы вошли. Зная это, вы можете альтернативно написать предыдущую команду следующим образом, и она даст тот же результат:

  1. cd ~/testdir2

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

  1. cd ..

Если вы когда-нибудь запутались в том, где вы находитесь в дереве навигации, помните, что вы всегда можете запустить команду pwd, чтобы найти текущий каталог. Многие современные оболочки (включая Bash, используемую по умолчанию для многих дистрибутивов Linux) также указывают ваш текущий каталог, как показано в примерах команд в этом разделе.

Работа с файлами

Вы не можете использовать cd для взаимодействия с файлами; cd означает «изменить каталог» и позволяет вам перемещаться только по каталогам. Однако вы можете создавать, редактировать и просматривать содержимое файлов.

Один из способов создать файл — использовать команду touch. Чтобы создать новый файл с именем file.txt:

  1. touch file.txt

Это создает пустой файл с именем file.txt в вашем текущем рабочем каталоге. Содержимое этого файла пусто.

Если вы решите переименовать file.txt позже, вы можете сделать это с помощью команды mv:

  1. mv file.txt newfile.txt

mv означает \перемещение и может перемещать файл или каталог из одного места в другое. Указав исходный файл file.txt, вы можете \переместить ” в новое место в текущем рабочем каталоге, тем самым переименовав его.

Также можно скопировать файл в новое место с помощью команды cp. Если мы хотим вернуть file.txt, но сохранить newfile.txt, вы можете сделать копию newfile.txt с именем file .txt вот так:

  1. cp newfile.txt file.txt

Как вы могли догадаться, cp — это сокращение от «copy». Копируя newfile.txt в новый файл с именем file.txt, вы реплицировали исходный файл в новый файл с другим именем.

Однако от файлов мало толку, если они ничего не содержат. Для редактирования файлов необходим редактор файлов.

Существует множество вариантов файловых редакторов, созданных профессионалами для повседневного использования. К таким редакторам относятся vim, emacs, nano и pico.

nano — подходящий вариант для начинающих: он относительно удобен для пользователя и не перегружает вас загадочными параметрами или командами.

Чтобы добавить текст в file.txt с помощью nano, выполните следующую команду:

  1. nano file.txt

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

Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.

Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.

Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.

It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.

Чтобы сохранить написанный текст, нажмите CTRL + X, Y, а затем ENTER. Это вернет вас в оболочку с недавно сохраненным файлом file.txt.

Теперь, когда file.txt содержит некоторый текст, вы можете просмотреть его, используя cat или less.

Команда cat выводит содержимое указанного файла на вывод вашей системы. Попробуйте запустить cat и передайте файл file.txt, который вы только что отредактировали, в качестве аргумента:

  1. cat file.txt

Это распечатает все содержимое file.txt на терминал. Если вы использовали текст из предыдущего примера, эта команда вернет примерно такой вывод:

Output
Say it's only a paper moon Sailing over a cardboard sea, But it wouldn't be make believe If you believed in me. Yes it's only a canvas sky Hanging over a muslin tree, But it wouldn't be make believe If you believed in me. Without your love, It's a honky-tonk parade. Without your love, It's a melody played in a penny arcade. It's a Barnum and Bailey world, Just as phony as it can be, But it wouldn't be make believe If you believed in me.

Использование cat для просмотра содержимого файла может быть громоздким и трудным для чтения, если файл очень длинный. В качестве альтернативы вы можете использовать команду less, которая позволит вам разбить вывод на страницы.

Используйте less для просмотра содержимого файла file.txt, например:

  1. less file.txt

Это также распечатает содержимое file.txt, но по одной конечной странице за раз, начиная с начала файла. Вы можете использовать клавишу пробела для перемещения по странице или клавиши со стрелками для перехода вверх и вниз по одной строке за раз.

Нажмите q, чтобы выйти из less.

Наконец, чтобы удалить файл file.txt, передайте имя файла в качестве аргумента в rm:

  1. rm file.txt

Примечание. Без других параметров команду rm (что означает «удалить») нельзя использовать для удаления каталогов. Однако она включает флаг -d, который позволяет вам удалить пустые каталоги:

  1. rm -d directory

Вы также можете удалить пустые каталоги с помощью команды rmdir:

  1. rmdir directory

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

  1. rm -r directory

Однако, поскольку удаление содержимого является постоянным действием, вам следует запускать rm с параметром -r только в том случае, если вы уверены, что хотите удалить указанный каталог.

Культура обучения

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

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

Если ваш вопрос связан с конкретной командой Linux, страницы руководства предлагают подробную и полезную документацию почти для каждой команды. Чтобы просмотреть справочную страницу для любой команды, передайте имя команды в качестве аргумента команде man:

  1. man command

Например, man rm отображает назначение rm, способы его использования, доступные параметры, примеры использования и другую полезную информацию.

Заключение

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

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