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.
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 сессии, а процесс продолжит выполняться.
sudo apt-get install screen
Для создания новой сессии (терминала) используется флаг -S
screen -S <название_программы>
Для выхода в основной терминал используется сочетание клавиш Ctrl+A+D
Для того, чтобы зайти в существующий терминал, используется флаг -x
screen -x <название_программы>
Просмотреть список запущенных терминалов можно командой
screen -ls
Для остановки и удаления терминала используется сочетание Ctrl + D