Education
July 13, 2022

Linux: словарь для нодоводов

В данной статье я собрал основные команды, утилиты, скрипты Linux, активно используемые при установке и мониторинге нод. Данный раздел будет пополнятся и надеюсь когда-нибудь станет настоящей энциклопедией.

Оглавление


Базовые команды

Оглавление

sudo

Команда sudo (SuperUser DO) позволяет выполнять задачи, требующие прав администратора или root. В основном используется при установке и обновлении пакетов, запуска сервиса, просмотра логов.

sudo apt-get install git 
#команда установливает пакет git с правами администратора

cd

Команда cd (сhange directory) используется для навигации по файлам и каталогам. Используется либо с указанием пути к необходимому каталогу/подкаталогу, либо без указания пути, для перехода в папку HOME.

Важно! Оболочка Linux чувствительна к регистру. Необходимо точно вводить имена каталогов.

cd /usr/bin #переход в подкаталог bin каталога usr  

cd #переход в каталог HOME

cp

Команда cp (copy) позволяет скопировать файл из текущего каталога в другой каталог.

cp addrbook.json /home/config 
# создает копию addrbook.json из текущего каталога в каталоге /home/config

mv

Команда mv (move) перемещает файл из текущего каталога в другой каталог. Команда mv похожа на команду сp, за исключением того, что она удаляет файл в текущем каталоге. Также, команду mv можно использовать для переименования файлов.

mv addrbook.json /home/config
# перемещает addrbook.json из текущего каталога в катало /home/config

mv old_name.txt new_name.txt
# переименовывает файл old_name.txt в new_name.txt  

mkdir

Команда mkdir (make directory) создает новый каталог.

mkdir Backup
# создает подкаталог Backup в текущем каталоге

rm

Команда rm используется для удаления файлов. Для удаление каталогов необходимо использовать рекурсивную опцию -r с командой rm. Также, некоторые файлы и каталоги не могут быть удалены сразу из-за прав доступа к файлам только для чтения. Их необходимо удалть принудительно с помощью опции -f.

Важно! Будьте осторожны с этой командой и всегда проверяйте, в каком каталоге вы находитесь. Она удаляет всё и её невозможно отменить.

rm addrbook.json
#удаление файла незащищенного от записи

rm -f addrbook.json
#удаление файла защищенного от записи
rm -r config
#удаление каталога незащищенного от записи

rm -rf config 
#удаление каталога защищенного от записи

top

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

top

df

Команда df (disc free) показывает используемого и свободного дискового пространства, что очень полезно при мониторинге "жрущих" нод.

df
#отчет об используемом дисковом пространстве в килобайтах
df -m
#отчет об используемом дисковом пространстве в мегабайтах

grep

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

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

sudo journalctl -u evmosd -f |grep block
#команда поиска строк со словом block в логах ноды Evmos

grep peers config.toml
#команда поиска строк со словом peers в файле addrbook.json   

wget

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

wget https://golang.org/dl/go1.17.5.linux-amd64.tar.gz
# команда скачивания архива GO

tar

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

Распаковка задается с помощью ключа -x. Для указания имени файла используется ключ -f. Ключ -z используется для распаковки файлов сжатых через gzip (файлы с раширением *.tar.gz). Для визуального отображения хода процесса можно добавить ключ -v. Данные ключи можно объединять.

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

tar -xzf go1.17.5.linux-amd64.tar.gz
#распаковка архива в текущий каталог 
tar -C /usr/local -xzf go1.17.5.linux-amd64.tar.gz
#распаковка архива в каталог /usr/local

chmod

Команда chmod (change mode) используется для изменения разрешений на чтение (r), запись (w) и выполнение файлов и каталогов(x и s для выполнения от имени суперпользователя). Данные разрешения можно установить для трех категорий пользователей: u - владелец файла, g - группа файла, o - все остальные пользователи.

В качестве действий могут использоваться знаки "+" - включить или "-" - отключить.

chmod u+x file.sh #разрешить выполнение для владельца

chmod +x file.sh #разрешить выполнение для всех

chmod ug+w file.sh #разрешить запись для владельца и группы

chmod ugo+rwx file.sh #разрешить все для всех

echo

Команда echo выводит текст в stdout (стандартный вывод). Оператор >> дописывает stdout в файл. Также есть оператор >, который создаст файл, если он не существует и выведет туда текст или перезапишет существующий файл.

echo Nick >> nickname.txt
# добавляет текст "Nick" в файл nickname.txt

echo "export NICKNAME="Nick"" >> ~/.bash_profile
# добавляет переменную в системуПОЛЕЗНЫЕ УТИЛИТЫ

&&

Двойной амперсанд && является управляющим оператором, который позволяет выполнять несколько команд подряд.

Важно! Следите за ходом выполнения команд. Следующая команда не выполнится если предшествующая ей завершилась с ошибкой.

sudo apt update && sudo apt install curl
#обновить пакеты затем установить пакет curl

Полезные утилиты

Оглавление

curl

nano

apt-get

ufw

ccze


Пакеты

Оглавление

make

Используется для компиляции и управления набором приложений и файлов из исходного кода. Это позволяет разработчикам использовать терминал для установки и сбора различных программ. Он также управляет и сокращает время, необходимое для компиляции. Входит в мета-пакет build-essential.

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

Для установки пакета make воспользуйтесь командой

sudo apt install make

build-essential

jq

pkg-config

gcc

libssl-dev

cmake

libclang-dev


Языки программирования

Оглавление

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

GO

Язык go представляет компилируемый статически типизированный язык программирования от компании Google.

Установка go, версия 1.18.4:

wget https://go.dev/dl/go1.18.4.linux-amd64.tar.gz; \
rm -rv /usr/local/go; \
tar -C /usr/local -xzf go1.18.4.linux-amd64.tar.gz && \
rm -v go1.18.4.linux-amd64.tar.gz && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile && \
source ~/.bash_profile && \
go version

RUST

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

# устанавливаем необходимые пакеты
sudo apt install curl build-essential gcc make -y
# загружаем установочный скрипт Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Выбираем пункт 1) продолжить установку (по умолчанию).

# активируем среду Rust для текущей оболочки
source ~/.profile
source ~/.cargo/env
# устанавливаем nightly
rustup toolchain install nightly
rustup default nightly

Запуск программ через screen

Оглавление

Если вам необходимо запустить программу в фоновом режиме, то можно использовать screen. Screen - утилита позволяющая запускать приложения в фоновом режиме. Данная утилита полезная тем, что вы можете запустить любой процесс и отключиться от SSH сессии, а процесс продолжит выполняться.

Установка screen

sudo apt-get install screen 

Для создания новой сессии (терминала) используется флаг -S

screen -S <название_программы> 

Для выхода в основной терминал используется сочетание клавиш Ctrl+A+D

Для того, чтобы зайти в существующий терминал, используется флаг -x

screen -x <название_программы>

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

screen -ls

Для остановки и удаления терминала используется сочетание Ctrl + D

Nodera

Telegram | Discord | Twitter