Командная строка
Базовые методы управления текстом в терминале.
clear — удаляет из текущий сессии терминала все ранее выведенные в него данные, содержимое открытых документов и историю использованных команд. Используется, когда нужно четко лицезреть вывод конкретной операции.
history — показывает ранее использованные приложения и инструменты. Без дополнительных аргументов отображает 10 элементов. Но их количество можно изменить вручную, добавив к слову history любое число. history 13, к примеру.
Парочка полезных сочетаний клавиш.
Стрелка вверх — показывает предыдущую команду.
Ctrl+C — прерывает запущенный процесс.
Ctrl+A — перемещает курсор в начало строки.
Ctrl+E — перемещает курсор в конец строки.
Дополнительные символы
Не совсем команды, но тоже текстовые элементы, причем полезные.
; — разделитель, необходимый, чтобы активировать сразу несколько команд подряд. Это выглядит так: cd ~/Documents; mkdir Novaya_papka; rmdir Staraya-papka. Команды будут выполняться друг за другом независимо от результата выполнения каждой из них.
&& — то же самое, что и ;, но с важным нюансом. Команды, соединенные с помощью &&, будут выполняться друг за другом, только если предыдущая завершилась успешно. Синтаксис аналогичный:
sudo apt-get update && sudo apt-get install wget
Работа с процессами
ps — вводится вместе с аргументом -e для распечатки в терминал информации обо всех запущенных процессах вместе с их PID-кодами. Обычно активируются в тандеме с grep. К примеру, чтобы найти запущенный текстовый редактор vi, вводим:ps -e | grep vi
kill — завершает один процесс (указывается с помощью PID-кода). kill работает следующим образом: сначала вписываем саму команду, а потом PID-код программы, которую нужно закрыть. Покажу на примере. Я хочу выключить проигрыватель Spotify, который работает в фоновом режиме. Диспетчер задач top говорит, что PID Spotify равняется 6199. Соответственно, чтобы его выключить, надо ввести в терминал:
kill 6199. Важно отметить, что каждый kill отправляет процессу определенный сигнал. По умолчанию это SIGTERM. Такой сигнал разрешает программе завершить начатые дела, сохраниться и только потом выключиться. Но если указать вручную сигнал SIGKILL, то приложение прекратит работу моментально, не сохраняя какой-либо прогресс.
killall — отличается от kill тем, что может «убить» программу, даже не зная ее PID. Все, что нужно killall — название утилиты. Он также поддерживает различные типы сигналов вроде SIGTERM и SIGKILL. А еще он забирает с собой все зависимые процессы.
uptime — выводит в терминал данные о том, как долго ваш сервер находится в рабочем состоянии без перезагрузок.
ping — рассказывает, может ли ваш сервер «достучаться» до другого сервера (указывается в команде с помощью адреса или доменного имени). Синтаксис такой: ping адрес сервера, соединение с которым надо проверить. Например, чтобы проверить статус подключения к Timeweb, введем в терминал: ping timeweb.com, а к официальному сайту Apple — ping apple.com, а к серверу ping 64.227.39.118 .
netstat -lptnu — отображает «слушающие» сетевые порты TCP, UPD и PID-код процессов, слушающих эти порты. Это важно для того чтоб когда вы ставите несколько нод на один сервер, ноды не конфликтовали по портам и вы знали какие порты уже заняти и каким процессом.
ssh — это протокол, с помощью которого обеспечивается безопасность удаленного доступа.Синтаксис: ssh имя пользователя@адрес сервера .
Например - ssh [email protected]
scp — делает копии файлов с одного хоста на другой, задействуя протокол SSH. Синтаксис: scp имя пользователя@адрес сервера:путь до директории или документа, которые надо перенести путь до каталога, куда нужно отправить выбранные элементы. Немного запутанный, но если смотреть на пример, то будет легче:
scp [email protected]:/home/timeweb/Desktop Documents/. Такая команда перенесет папку Desktop в директорию Documents.
Работа с текстом
Парочка полезных команд для взаимодействия с любыми видами текстов на сервере через SSH.
cat — показывает текст из выбранного файла. В качестве аргумента передаем этой утилите текстовый документ, и cat выведет в консоль его содержимое. Синтаксис:
cat путь до файла, содержимое которого надо осмотреть
Чтобы взглянуть на содержимое файла node.txt, который лежит на рабочем столе, напишем в терминал: cat ~/Desktop/node.txt
grep — ищет конкретный кусочек текста в большом документе или распечатке из консоли. Чтобы дать понять, как он работает, покажу пример. Например будем искать слово «indexed» в логах evmos. Сделаем это одной командой journalctl -n 100 -f -u evmos | grep indexed. Также можно сделать и исключение с помощью команды grep -v «indexed» исключает строчку с данным словом для удобства отображения
mcedit - редактор текста. Если с помощью cat мы просто смотрели текст в файле, то с помощью mcedit мы можем его редактировать. Например mcedit $HOME/account_aleo.txt
Навигация и управление файловой системой
Команды, необходимые для перемещения и ориентирования в файловой системе сервера. А еще для перемещения, копирования и удаления файлов. В общем, все, что вы делали бы в файловом менеджере, но через терминал.
cd — отправляет вас в любую папку на выбор. Синтаксис: cd путь до нужной директории. Если хочется на рабочий стол, то пишем: cd ~/Desktop. Вернуться в предыдущую папку cd .. . Перепрыгнуть в home просто вводим: cd без аргументов.
ls — отображает директории и файлы в данной директории. Но чтобы ею пользоваться, не обязательно переходить в конкретную директорию. Ее можно указать заранее. Вот так:
ls ~/Desktop/papka
pwd — укажет путь до папки тем, кто заблудился. Если вы находитесь в папке Документы, то вывод pwd будет выглядеть вот так /home/имя пользователя/Documents. И так для любого каталога, в котором вы окажетесь.
mv — изначально использовалась для того, чтобы перемещать файлы из одного места в другое. mv ~/Desktop/node.html ~/Documents переносит HTML-документ node с рабочего стола в документы. Но пользователи приноровились использовать mv для смены имени файлов. mv ~/Desktop/node.html node-2.html оставляет документ на месте, но меняет его название.
cp — создает копию выбранного файла в другом каталоге.
cp ~/Documents/node-file.txt /home/Webmaster/Desktop копирует документ с названием node-file.txt на рабочий стол того же пользователя.
rm — удаляет папки и все, что сможет в них найти. «Уничтожает» все субдиректории, документы, картинки, медиа. Вообще все, без возможности восстановления. Синтаксис:
rm путь до каталога, который надо удалить
mkdir — создает новую папку. Синтаксис: mkdir путь_до каталога(где_нужно_создать_новую_директорию) /название_для_этой директории. Если надо сделать на рабочем столе папку Node, то пишем:mkdir ~/Desktop/Node
wget — скачивает файл из переданной ссылки. Больше ничего не умеет. Простой текстовый менеджер загрузок. Работает так – если мы хотим загрузить скриншот панели управления Timeweb с официального сайта, то введем в терминал: wget https://timeweb.com/upload/resize_cache/iblock/b56/400_400_2/xscreen_3.jpg.pagespeed.ic.O4a5jdlo5A.jpg
zip — архивирует один или несколько файлов один файл в формате .zip. Синтаксис: zip название архива.zip путь до файла, который надо упаковать. К примеру:
zip noviy-archive.zip /home/me/soderzhimoe-archiva.txt
unzip — вытаскивает содержимое архива наружу. Работает по тому же принципу: сначала команда, потом путь до архива, который надо распаковать. Еще можно добавить опцию -d, чтобы удалить файлы из архива по завершении распаковки.
find — ищет файлы и папки по всей файловой системе. Умеет находить их по названию и по типу, но это зависит от выставленных опций. find -type d -name Timeweb будет искать только директории с именем Timeweb.
mount — монтирует образ или раздел диска. Синтаксис:
mount путь до раздела, что нужно смонтировать
unmount — «демонтирует» образ или указанный раздел. Синтаксис:
unmount путь до раздела, что нужно отмонтировать
Системные компоненты проверки ресурсов сервера
Утилиты, делящиеся разного рода справочной информацией с администратором компьютера.
df — отображает количество свободного пространства на жестком диске. Правда, в неудобном формате, в виде блоков. Поэтому обычно эту утилиту используют вкупе с опцией -m, чтобы конвертировать данные в привычные и удобоваримые мегабайты.
du — показывает, сколько весит конкретный элемент файловой системы. Чтобы узнать, сколько места занимает timeweb.html на моем рабочем столе, введу в терминал следующее:
du ~/Desktop/timeweb.html. По пути столкнусь с той же проблемой, что сталкивался при работе с df. Опять эти блоки. Меняем на мегабайты с помощью ключа -h. Получится
du -h ~/Desktop/timeweb.html
free — это df для оперативной памяти. Показывает, сколько свободно и сколько используется.
top — программа, отображающая информацию о запущенных процессах. Сколько памяти они занимают, какую нагрузку дают на процессор, какой у них PID-код и время работы каждого. Это что-то в духе диспетчера задач в Windows.
htop — компьютерная программа, предназначенная для вывода на терминал списка запущенных процессов и информации о них. Создана, как альтернатива программы top. Вот тут рассказываем как ей пользоваться https://razumv.tech/check#dsVr
ncdu — это дисковая утилита. Его название относится к тому же назначению, что и утилита du, но ncdu использует текстовый пользовательский интерфейс. Вот тут рассказываем как ей пользоваться https://razumv.tech/check#Oh4V
Управление пользователями
Так как Linux заточена под использование большим количеством людей одновременно, разработчики придумали для нее продвинутую иерархию пользователей. У каждого свой набор прав и свои возможности. И есть целый набор команд для работы с ними. Рассмотрим главные.
useradd — создает на сервере новую учетную запись. По сути, нового пользователя. Синтаксис: useradd имя будущей учетной записи. Имя можно указать любое на свой вкус. Потом останется лишь добавить для нового аккаунта пароль.
passwd — задает пароль для учетной записи. Работает вкупе с предыдущей командой. То есть сразу после создания аккаунта, пишем: passwd имя новой учетной записи. После этого система попросит придумать и указать пароль для новой учетной записи.
Система безопасности в Linux не показывает во время ввода пароля даже звездочки, но это не значит, что он не вводится. Продолжайте набирать вслепую, а как закончите, нажмите Enter, и все сработает. И не бойтесь запутаться, вас попросят повторить придуманный пароль.
userdel — удаляет выбранную учетную запись. Синтаксис: userdel имя учетной записи, которую нужно стереть
usermod — вносит изменения в характеристики существующих учетных записей, лишает их контроля или вовсе приостанавливает работу. Делает все, что не связано с созданием и удалением аккаунтов. Используется только вместе с дополнительными опциями:
-с — добавляет комментарий к аккаунту (можно вписать любой текст по желанию, чтобы запомнить для чего нужен выбранный пользователь).
-d — меняет расположение домашней директории выбранной учетной записи.
-e — указывает время, которое будет существовать аккаунт (после этого сработает автоматический userdel).
-g — меняет группу, к которой принадлежит аккаунт.
-G — привязывает аккаунт к выбранной группе.
-L — блокирует пользователя.
-m — перемещает контент из домашней папки пользователя в другую папку.
-p — устанавливает незашифрованный пароль (лучше так не делать).
-s — задает конкретную оболочку для нового аккаунта на усмотрение администратора компьютера.
-U — снимает блокировку с выбранной учетной записи.
Выполнение команд из-под суперпользователя
sudo — выдает права суперпользователя. Используется перед любой командой, если нужно выполнить ее от имени администратора. Многие программы и операции запускаются исключительно при наличии этих прав, так что sudo используется часто. Например, чтобы обновить список пакетов в Ubuntu, введем: sudo apt update. При этом система запросит пароль администратора.
sudo su — на время превращает все вводимые в терминал команды в команды суперпользователя. Пригодится, если предстоит вносить много изменений в системные файлы, которые нельзя редактировать без соответствующих прав.
Установка, обновление и удаление пакетов
В Linux почти все программное обеспечение имеет открытый исходный код, поэтому в большинстве своем распространяется через открытые репозитории. Для его загрузки и установки используются менеджеры пакетов. В каждом семействе дистрибутивов он свой. Расмотрим на примере Ubuntu. Где это делается с помощью apt
sudo apt-get install название пакета — устанавливает пакет из подключенных репозиториев. Ищется по названию и версии.
sudo apt remove название пакета — удаляет из системы установленный пакет.
sudo apt purge название пакета — удаляет установленный пакет и вместе с ним уничтожает все зависимые данные. От приложения не остается никаких следов. Такой вариант подходит, когда нужна полная переустановка пакета «с нуля».
sudo apt autoremove — автоматически выполняет уборку среди установленных пакетов, убирая ненужные остатки кода.
sudo apt-add-repository адрес репозитория — подключает к системе дополнительный репозиторий с пакетами, не вошедшими в базу репозиториев по умолчанию. Требуется для установки некоторых open-source-приложений.
sudo apt update — обновляет информацию о пакетах, имеющихся в системе и тех, что хранятся в подключенных репозиториях.