<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>WingsNodeTeam</title><generator>teletype.in</generator><description><![CDATA[Наш телеграмм канал 👉 https://t.me/WingsNodeTeam

 Наш бот помощник 👉 https://t.me/WingsNodeTeambot

 Наш Twitter 👉 https://twitter.com/WingsNodeTe]]></description><image><url>https://img2.teletype.in/files/5c/1e/5c1ed30c-bb6b-4c3f-94db-3cafb4738ee0.png</url><title>WingsNodeTeam</title><link>https://teletype.in/@wingsnodeteam</link></image><link>https://teletype.in/@wingsnodeteam?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/wingsnodeteam?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/wingsnodeteam?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Tue, 07 Apr 2026 07:49:23 GMT</pubDate><lastBuildDate>Tue, 07 Apr 2026 07:49:23 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/titan_tnt4</guid><link>https://teletype.in/@wingsnodeteam/titan_tnt4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/titan_tnt4?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Titan: The Galileo Testnet is Live!</title><pubDate>Tue, 07 Jan 2025 19:26:04 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/44/ff/44ff3b86-3c53-47b9-90ac-f2a63870b95a.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/93/bf/93bf3941-3b30-451d-94e6-f7671b3db4ca.png"></img>https://discord.gg/titannet]]></description><content:encoded><![CDATA[
  <p id="b4Bt"><a href="https://discord.gg/titannet" target="_blank">https://discord.gg/titannet</a><br /></p>
  <figure id="rH7S" class="m_original">
    <img src="https://img2.teletype.in/files/93/bf/93bf3941-3b30-451d-94e6-f7671b3db4ca.png" width="2157" />
  </figure>
  <h2 id="tBCr">нам потребуется:</h2>
  <p id="qCoc">1) сервер<br />2) кошелек Keprl<br />3) кошелек Phantom</p>
  <h2 id="Zjov">Поехали</h2>
  <p id="hkIl"><strong>1) заказ сервера - минималка ниже на скрине<br /><br />сервера можно смотреть здесь:<br /><br />Заказ сервера: </strong></p>
  <p id="6KG4">Аренда сервера <strong><br />Хорек     <a href="https://xorek.cloud/?from=11384" target="_blank">https://xorek.cloud/?from=11384</a><br />AEZA             <a href="https://aeza.net/?ref=594466" target="_blank">https://aeza.net/?ref=594466</a><br />PQ          		<a href="https://pq.hosting/?from=36405" target="_blank">https://pq.hosting/?from=36405</a><br /><br /><br /></strong></p>
  <figure id="KaqR" class="m_original">
    <img src="https://img4.teletype.in/files/fc/4f/fc4f1668-543b-47b4-924f-3c17d01bce3a.png" width="933" />
  </figure>
  <p id="iKC0"><strong>2) идем на сайт, устанавливаем кошелек keprl и конектимся к сайту<br /><br /><a href="https://test4.titannet.io/" target="_blank">https://test4.titannet.io/</a></strong></p>
  <figure id="BH8u" class="m_original">
    <img src="https://img4.teletype.in/files/f8/1b/f81b62e0-b480-4ebf-a53f-4a38c56b7a8e.png" width="1543" />
  </figure>
  <p id="C8Ly">3) сохраняем ключ (он понадобится в ноде)</p>
  <figure id="QkPE" class="m_original">
    <img src="https://img1.teletype.in/files/87/9c/879c7852-9a4a-497a-8fbd-f21c6f37b86f.png" width="1593" />
  </figure>
  <p id="oMm3">4) идем на арендованный сервер (Ubunta 22.04+) </p>
  <p id="OBrc">обновляем пакеты и готовим сервер к установке.<br /><br /></p>
  <h3 id="45yK">Обязательно проверьте это:<br /><br /></h3>
  <figure id="vBjY" class="m_original">
    <img src="https://img4.teletype.in/files/b9/7a/b97a6c2b-a910-4c5d-be44-c1e35bcedd84.png" width="984" />
  </figure>
  <p id="frhl"></p>
  <p id="hcMz">egrep -o &#x27;(vmx|svm)&#x27; /proc/cpuinfo</p>
  <p id="pCQ3"><br /></p>
  <p id="KiBs">Обновление сервера:</p>
  <p id="VG5Z">вот стандартное обновление пакетов перед установкой нод</p>
  <p id="8WRV"><strong>1. Установка зависимостей</strong></p>
  <p id="l2Vu"><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></p>
  <p id="CNyh"><strong>2. Установка пакетов (одной командой)</strong></p>
  <p id="6FaF">sudo apt install curl iptables build-essential git wget lz4 jq make gcc nano automake autoconf tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev  -y</p>
  <p id="SmGg"><strong>3) дополнительные команды из доков проекта</strong><br /><br />sudo apt update<br /><br />sudo apt install snapd</p>
  <p id="q10v">sudo systemctl enable --now snapd.socket<br /><br />sudo snap install multipass<br /><br />(ждем долго будет выполняться)<br /><br />если все выше правильно установилось должны увидеть версию после ввода команды:<br /><br />multipass --version</p>
  <p id="nSOZ"><strong>4) Дополнительно:</strong><br /><br />apt install unzip<br /><br />apt install screen<br /><br /><strong>5) далее по документации по шагам</strong><br /><br /># Download installation package<br />wget https://pcdn.titannet.io/test4/bin/agent-linux.zip</p>
  <p id="EWCI"># Create installation directory<br />mkdir -p /opt/titanagent</p>
  <p id="2gee"># Extract installation package<br />unzip agent-linux.zip -d /opt/titanagent</p>
  <p id="rNI3">6) открываем сессию screen<br /><br />screen -S titan<br /><br /><strong>7) после входа в сессию выполняем</strong><br /><br />cd /opt/titanagent<br /><br />дадим права на операции с файлом<br /><br />chmod +x agent<br /><br /><strong>8) теперь нам надо выполнить эту команду но сначала исправьте в ней на свой ключ<br /></strong><br />./agent --working-dir=/opt/titanagent --server-url=<a href="https://test4-api.titannet.io" target="_blank">https://test4-api.titannet.io</a> --key=ВАШ_КЛЮЧ_ИЗ_ШАГА_3</p>
  <p id="ZBO9">пример как должна выглядеть команда</p>
  <p id="oySG">./agent --working-dir=/opt/titanagent --server-url=<a href="https://test4-api.titannet.io" target="_blank">https://test4-api.titannet.io</a> --key=898BPNKZtCU</p>
  <p id="aKPt"><strong>9) смотрим логи - примерно так </strong></p>
  <figure id="wgJZ" class="m_original">
    <img src="https://img4.teletype.in/files/bb/97/bb97d481-b442-47cc-b715-ecd11c5655f9.png" width="1286" />
  </figure>
  <p id="Auis"><strong>10) выходим из сесcии screen</strong><br /><br />контрл + A + D<br /><br />(для последующего входа в сессию используйте команду screen -x titan )</p>
  <p id="nYFT"><strong>11) идем на платформу и смотрим пока статус фалсе (надеюсь скоро починят)<br /><br /><a href="https://test4.titannet.io/" target="_blank">https://test4.titannet.io/</a></strong></p>
  <figure id="D2X6" class="m_original">
    <img src="https://img1.teletype.in/files/c0/83/c083523e-c8dd-4e0b-a816-64193c16a5bc.png" width="1566" />
  </figure>
  <figure id="HVsx" class="m_original">
    <img src="https://img1.teletype.in/files/c2/db/c2db7de6-c2d9-4cc3-a907-5f5fbfa52732.png" width="1647" />
  </figure>
  <p id="LC02"></p>
  <p id="7fRH"></p>
  <p id="cYql">12) можно тотестить свап (за реал с помощью Phantoma)  и мост (пока нет)<br /><br /><a href="https://raydium.io/swap/?inputMint=Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB&outputMint=BLtGNfvvtND57Vc6YHMvJtKaCuN9i2DjUdHbs4EJixnw" target="_blank">https://raydium.io/swap/?inputMint=Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB&amp;outputMint=BLtGNfvvtND57Vc6YHMvJtKaCuN9i2DjUdHbs4EJixnw</a></p>
  <figure id="bbIa" class="m_original">
    <img src="https://img1.teletype.in/files/47/78/4778ba0d-1a86-47b7-912c-60fc7d5e17de.png" width="1594" />
  </figure>
  <figure id="bJ2a" class="m_original">
    <img src="https://img1.teletype.in/files/c7/3a/c73a2a8d-4514-4b9d-b76c-0c71dfd55c97.png" width="1625" />
  </figure>
  <p id="ZVOi"><a href="https://test4.titannet.io/transfer" target="_blank">https://test4.titannet.io/transfer</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/pipe_node</guid><link>https://teletype.in/@wingsnodeteam/pipe_node?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/pipe_node?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Установка ноды Pipe</title><pubDate>Mon, 02 Dec 2024 17:32:25 GMT</pubDate><media:content medium="image" url="https://img3.teletype.in/files/e0/63/e0639d81-7267-4c4b-9da2-af389e3ea1dd.png"></media:content><description><![CDATA[<img src="https://img3.teletype.in/files/62/ee/62eed8ec-19a3-497b-9076-88d66f4a752a.png"></img>актуальна, если вы получили приглашение на devnet на почту]]></description><content:encoded><![CDATA[
  <p id="VGBA">актуальна, если вы получили приглашение на devnet на почту</p>
  <figure id="SjwP" class="m_original">
    <img src="https://img3.teletype.in/files/62/ee/62eed8ec-19a3-497b-9076-88d66f4a752a.png" width="2315" />
    <figcaption>Письмо выглядит так</figcaption>
  </figure>
  <p id="3Asq"></p>
  <p id="NBxz">1) Заказ сервера, обновление пакетов<br /><br />Хорек в последнее время чудит, соответственно предлагаю или AEZA или PQHosting ну или если вы доросли до выделенного сервера по знаниям - PowerVps<br /><br />Заказ сервера - <a href="https://aeza.net/?ref=594466" target="_blank">https://aeza.net/?ref=594466</a><br />Заказ Сервера - <a href="https://pq.hosting/?from=36405" target="_blank">https://pq.hosting/?from=36405</a><br />Заказ Сервера             <a href="https://xorek.cloud/?from=11384" target="_blank">https://xorek.cloud/?from=11384</a><br />Выделенный сервер - <a href="https://powervps.net/ru/?from=91820" target="_blank">https://powervps.net/ru/?from=91820</a><br /><br /></p>
  <h2 id="v8tC">Скачиваем на ПК 2 файла по ссылкам из письма</h2>
  <p id="pxb1"><br /><br /></p>
  <figure id="y0qL" class="m_original">
    <img src="https://img2.teletype.in/files/d3/15/d315979f-4061-4f6a-b17b-48be3dd6530c.png" width="1446" />
  </figure>
  <figure id="qVZa" class="m_original">
    <img src="https://img1.teletype.in/files/4f/a9/4fa95740-dbbc-4e7c-a36f-50cc9fd1953c.png" width="1018" />
  </figure>
  <p id="59k4"></p>
  <p id="fsna">Заходим на арендованный сервер и обновляем пакеты</p>
  <p id="9hSf"></p>
  <p id="TDC5">Ubutta 20.04 и выше, лучше 22.04 (на 20.04 может не работать)</p>
  <p id="x33F">Обновления на сервере перед началом работы.</p>
  <p id="Iy2f">1) команды для обновления пакетов на сервере:</p>
  <p id="Gsb2"><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></p>
  <p id="HKf5"><code>sudo apt install make clang pkg-config libssl-dev build-essential git gcc chrony curl jq ncdu bsdmainutils htop net-tools lsof fail2ban wget -y</code><br /></p>
  <figure id="xIP6" class="m_original">
    <img src="https://img4.teletype.in/files/f0/ae/f0ae3fd3-3d5b-46c2-893c-a375b3787766.png" width="1018" />
  </figure>
  <p id="EevS">Находясь в папке ROOT командной строкой выполняем<br /><br /></p>
  <p id="yh99"><code>sudo mkdir -p /opt/dcdn</code></p>
  <p id="43XX"></p>
  <figure id="e20z" class="m_original">
    <img src="https://img3.teletype.in/files/6a/25/6a2585a3-6535-4107-97fe-93f726dbbc22.png" width="782" />
  </figure>
  <p id="mYbe">в панели слева переходим в созданную папку и подпапку (обращаю внимание она выше ROOT) тоесть надо нажать на .. находясь в roo что бы найти ее</p>
  <p id="848n">Следующее- находясь в папке DCDN загружаем файл с компьютера нажав на <strong>зеленую!!!!!!</strong> стрелку (скрин ниже) и выбираем файл dcdn на компе</p>
  <figure id="E4tX" class="m_original">
    <img src="https://img1.teletype.in/files/cd/c8/cdc88885-619c-487c-b7fb-ea2d6b1f58fe.png" width="831" />
  </figure>
  <p id="zr9h">после его загрузки вы его должны увидеть в мобахтерн</p>
  <p id="GDlo">Следующее:<br />создаем папку, находясь здесь же и называем ее <code>pipe-tool</code></p>
  <p id="9N4K">переходим в созданную папку <code>pipe-tool</code></p>
  <p id="6CLF">загружаем второй файл (вот так он должен отобразиться после загрузки (скрин ниже)<br /></p>
  <figure id="xrEG" class="m_original">
    <img src="https://img3.teletype.in/files/a5/12/a51278bf-a41d-4f92-9b15-c05c0f73e22f.png" width="616" />
  </figure>
  <p id="mfpA">С загрузкой все на левой панели мобахтерна.</p>
  <p id="HIa6">Переходим к командной строке. Мы должны быть в папке root<br />(введите <code>cd</code> и ентер если сомневаетесь что вы не там командной строкой)<br />вводим ниже 3 команды<br /><br /><code>chmod +x /opt/dcdn/pipe-tool/pipe-tool</code><br /><br /><code>chmod +x /opt/dcdn/dcdnd</code><br /></p>
  <p id="othX"><code>sudo /opt/dcdn/pipe-tool/pipe-tool login --node-registry-url=&quot;https://rpc.pipedev.network&quot;<br /><br /><br /></code></p>
  <p id="mgNG">внимательно смотрим что написано на экране:<br /><br />2 способа - <br />1)скопировать ссылку с экрана (держа левый контрл и открыть в браузере и ввести код который будет там же на экране сервера) - пройти авторизацию.<br />2) отсканировать куар код и открыть на телефоне, ввести код и выполнить авторизацию<br /><br />мы использовали первый вариант<br /><br />Если все удачно то появится курсор в командной строке.<br /><br />далее<br /><br /><code>/opt/dcdn/pipe-tool/pipe-tool generate-registration-token --node-registry-url=&quot;https://rpc.pipedev.network</code>&quot;<br /><br /><br />Далее , подгрузим nano если нет по умолчанию<br /><br /><code>apt install nano</code><br /></p>
  <p id="5tYh">Далее создаем сервисный файл для автономной работы<br /><br /><code>nano /etc/systemd/system/dcdnd.service</code></p>
  <p id="84Qf">в открывшемся файле пустом вставляем все что ниже целиком<br /><br /></p>
  <p id="kSoZ"><code>[Unit]<br />Description=DCDN Node Service<br />After=network.target<br />Wants=network-online.target</code></p>
  <p id="BLl7"><code>[Service]<br /># Path to the executable and its arguments<br />ExecStart=/opt/dcdn/dcdnd \<br />                --grpc-server-url=0.0.0.0:8002 \<br />                --http-server-url=0.0.0.0:8003 \<br />                --node-registry-url=&quot;https://rpc.pipedev.network&quot; \<br />                --cache-max-capacity-mb=1024 \<br />                --credentials-dir=/home/dcdn-svc-user/.permissionless \<br />                --allow-origin=*</code></p>
  <p id="nZ6b"><code># Restart policy<br />Restart=always<br />RestartSec=5</code></p>
  <p id="fGBZ"><code># Resource and file descriptor limits<br />LimitNOFILE=65536<br />LimitNPROC=4096</code></p>
  <p id="g0w7"><code># Logging to journal (logs will be captured here)<br />StandardOutput=journal<br />StandardError=journal<br />SyslogIdentifier=dcdn-node</code></p>
  <p id="lWgy"><code># Working directory for the service<br />WorkingDirectory=/opt/dcdn</code></p>
  <p id="mF3I"><code># Running the service as a dedicated user (for security)<br />User=dcdn-svc-user<br />Group=dcdn-svc-user</code></p>
  <p id="MYKK"><code>[Install]<br />WantedBy=multi-user.target</code><br /></p>
  <p id="QERj">вот так это должно выглядеть<br /><br /></p>
  <figure id="G3Y8" class="m_original">
    <img src="https://img4.teletype.in/files/38/66/38661cdf-44ee-4618-8cc6-8025286b1486.png" width="882" />
  </figure>
  <p id="YCXc">теперь сохраняем  (старайтесь не нажимать лишние пробелы или символы<br /><br />Контрл + S<br /><br />Контрл + X</p>
  <p id="luxU"></p>
  <p id="Ogu4">СЕрвисный файл создан и сохранен</p>
  <p id="8RM7"></p>
  <p id="UaDC"># Создайте учетную запись для службы<br /><code>sudo useradd -r -m -s /sbin/nologin dcdn-svc-user -d /home/dcdn-svc-user</code></p>
  <p id="fZfo"># Создайте каталог для хранения токенов и настроек<br /><code>sudo mkdir -p /home/dcdn-svc-user/.permissionless</code></p>
  <p id="JG9m"># Установите правильные права на каталог<br /><code>sudo chown -R dcdn-svc-user:dcdn-svc-user /home/dcdn-svc-user/.permissionless</code></p>
  <p id="u7q4"># Переместите сгенерированный токен в новый каталог<br /><code>mv /root/.permissionless/registration_token.json /home/dcdn-svc-user/.permissionless</code></p>
  <p id="sS82"><br /><br />далее</p>
  <ol id="TKJm">
    <li id="dnzT"><strong>Перезагрузить Systemd Daemon</strong> : используйте эту команду для перезагрузки конфигурации менеджера systemd.<br /><code>sudo systemctl daemon-reload</code></li>
    <li id="UyDa"><strong>Включить службу при загрузке</strong> : настроить автоматический запуск службы при загрузке системы.<br /><code>sudo systemctl enable dcdnd</code></li>
    <li id="16zf"><strong>Запустите службу</strong> : запустите службу вручную.<br /><code>sudo systemctl restart dcdnd</code></li>
  </ol>
  <p id="5NJf">Теперь смотрим статус ноды. должно быть  как на скине ниже<br /><br /><code>sudo systemctl status dcdnd</code></p>
  <figure id="ET7o" class="m_original">
    <img src="https://img1.teletype.in/files/01/b3/01b3657f-855d-4ed4-b6a7-16365a87ca5f.png" width="2306" />
  </figure>
  <p id="4DKs">Едем далее</p>
  <p id="ziyR">идем на сайт <a href="https://iancoleman.io/bip39/#english" target="_blank">https://iancoleman.io/bip39/#english</a></p>
  <p id="TFvn"></p>
  <figure id="ws1l" class="m_original">
    <img src="https://img1.teletype.in/files/ca/fb/cafb728e-40fb-4d4c-91e4-19529ab5345e.png" width="2308" />
  </figure>
  <p id="RpTn">на сервере выполняем команду целиком<br /><br /></p>
  <p id="H45L"><code>/opt/dcdn/pipe-tool/pipe-tool generate-wallet --node-registry-url=&quot;<a href="https://rpc.pipedev.network" target="_blank">https://rpc.pipedev.network</a>&quot;</code></p>
  <p id="s5zI">вводим 12 слов, что сгенерировали на сайте и получаем сгенерированный кошелек.<br /><br />копируем, все держа левый контрл себе в сохран, все данные. сид фразу адрес и тд что там будет.<br /><br />КАк скопируете выходите, q или контрл + с<br />( у меня выходил как то посреди экрана курсор появлялся я просто ентер прожимал до низу)</p>
  <p id="CheB"><br /><br />Теперь осталось проверить как у вас нода работает<br /><br />проверка ноды<br /><br /><code>/opt/dcdn/pipe-tool/pipe-tool list-nodes --node-registry-url=&quot;<a href="https://rpc.pipedev.network" target="_blank">https://rpc.pipedev.network</a>&quot;</code></p>
  <figure id="ueQQ" class="m_original">
    <img src="https://img3.teletype.in/files/ad/36/ad36548d-1b6a-4bde-8ab6-2cddd41ddef4.png" width="2559" />
  </figure>
  <p id="3mld">если так, то все в порядке</p>
  <p id="oNuk">Далее выполним команду, что бы каждый раз не вводить путь перед командами<br /><br /></p>
  <p id="FTHz"><code>echo &#x27;export PATH=$PATH:/opt/dcdn/pipe-tool&#x27; &gt;&gt; ~/.bashrc</code></p>
  <p id="TDKb"><code>source ~/.bashrc</code></p>
  <p id="St0O"></p>
  <p id="qrQz"></p>
  <p id="DhL0">На этом все. Еще можно посмотреть ключи по ноде.<br /><br /></p>
  <p id="YCzK">посмотреть публичный ключ</p>
  <p id="pmqJ"><code>pipe-tool show-public-key</code></p>
  <p id="Zkoq">посмотреть кошелек</p>
  <p id="HrBF"><code>pipe-tool show-private-key</code></p>
  <p id="PT3G"></p>
  <p id="kU2T">Рестарт ноды<br /></p>
  <p id="JJ7L"><code>sudo systemctl restart dcdnd</code></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/slovar_treidera</guid><link>https://teletype.in/@wingsnodeteam/slovar_treidera?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/slovar_treidera?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Словарь трейдера</title><pubDate>Wed, 09 Oct 2024 12:51:33 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/1f/93/1f930eb3-153a-4a0f-9f28-2455f0c8cc8b.jpeg"></img>Биткоин, биток (Bitcoin, BTC) - самая первая криптовалюта, с которой началась эра криптоиндустрии. На данный момент всё чаще рассматривается не как средство платежа, а как споссоб сохранения капитала.]]></description><content:encoded><![CDATA[
  <p id="xGAT"><strong>Биткоин, биток (Bitcoin, BTC)</strong> - самая первая криптовалюта, с которой началась эра криптоиндустрии. На данный момент всё чаще рассматривается не как средство платежа, а как споссоб сохранения капитала.</p>
  <p id="DLlT"><strong>Альткоин или альт</strong> - так называют все криптовалюты, кроме Bitcoin. Он первый, единственный и неповторимый, все остальные токены считаются альтернативными, за что и получили такое название.</p>
  <p id="IHra"><strong>Сатоши (Satoshi)</strong> - минимальная единица измерения биткоина, равная 0.00000001 BTC. Это как копейка у рубля или цент у доллара. Названа так в честь легендарного и неизвестного создателя биткоин Сатоши Накамото.</p>
  <p id="cEyZ"><strong>Блокчейн (Blockchain)</strong> - неизменная цепочка блоков, каждый из которых содержит в себе информацию о предыдущих. На блокчейне построены криптовалюты и другие компьютерные системы. Фактически это база данных, которая используется в децентрализованных сетях.</p>
  <p id="EDws"><strong>Блок</strong> - список транзакций за определённый промежуток времени, за подтверждение которого майнеры получают награду. Блоки добываются и встраиваются в блокчейн последовательно, каждый новый блок согласовывается со всеми добытыми ранее.</p>
  <p id="H6pt"><strong>Волатильность</strong> - это статистический показатель, характеризующий тенденцию изменчивости цены. При высокой волатильности валюты наблюдаются резкие скачки курса.</p>
  <p id="K0wD"><strong>Памп и дамп</strong> - способ спекуляции на рынке крипты. Курс сначала искусственно накручивается (памп), а когда новые инвесторы скупают токены по высокой цене, его обваливают (дамп). Эту схему еще называют «стричь хомячков».</p>
  <p id="e71h"><strong>Анализ</strong> - метод исследования, заключающийся в разложении исследуемого объекта на составные части и изучении свойств этих частей.</p>
  <p id="ghoy"><strong>Технический анализ (ТА)</strong> - представляет собой совокупность приемов и методов, при помощи которых анализируется ценовая динамика ценных бумаг. Целью технического анализа является определение наиболее вероятного направления движения рыночного курса ценных бумаг.</p>
  <p id="RWcb"><strong>Фундаментальный анализ (ФА)</strong> - совокупность методов аналитических исследований, применяемых для оценки состояния и перспектив рынка ценных бумаг, отраслей, товарных, финансовых рынков и экономики, в целом. Для объяснения процессов, событий и получения необходимых прогнозных данных проводится изучение и исследование динамики показателей макро и микроэкономики, сравнения их между собой, а так же финансовый анализ.</p>
  <p id="WKay"><strong>Индекс</strong> - это средняя цена всех финансовых инструментов, которые входят в его расчетную базу. Индекс отражает динамику рынка (рынка акций, рынка облигаций и т.д.).</p>
  <p id="yDvy"><strong>Капитализация криптовалюты</strong> - суммарная стоимость всех выпущенных монет конкретной криптовалюты. Также часто используют термин «капитализация рынка криптовалют», это суммарная стоимость всех монет на рынке.</p>
  <p id="shgD"><strong>Кит</strong> - богач, на счету которого собрано большое количество крипты, достаточное для влияния на рыночный курс.</p>
  <p id="9N8a"><strong>Криптокошелёк</strong> - программное обеспечение для хранения крипты на вашем ПК, смартфоне или просто флешке. Кошельки для криптовалют разделяют на горячие (постоянно подключены к сети) и холодные (информация содержится на автономных устройствах, не подключенных к интернету). <br />- Первые удобны для повседневного использования, но более уязвимы.<br />- Вторые - застрахованы от сетевого взлома, но ими неудобно пользоваться для активной работы с криптой, поэтому холодные кошельки применяют для накопления и долгосрочного хранения.</p>
  <p id="FAMj"><strong>Майнер (miner)</strong> - тот, кто майнит крипту, может быть как один человек, так и группа лиц или специализированная компания.</p>
  <p id="YvRD"><strong>Майнинг (mining)</strong> - процесс поддержания работоспособ- ности децентрализованной блокчейн сети. В качестве вознаграждения выплачивается криптовалюта, поэтому майнинг часто называют добычей крипты.</p>
  <p id="z3tz"><strong>Скам (SCAM)</strong> - мошенничество или кидок. Скамом называют проект, который изначально задумывался с целью украсть деньги инвесторов или в какой-то момент его команда решила поступить подобным образом.</p>
  <p id="y24V"><strong>Фиат</strong> - деньги, выпускаемые и регулируемые Центробанками разных государств, такие как рубль, евро или доллар.</p>
  <p id="lJ8L"><strong>Бык (Bull)</strong> - быками называют трейдеров, которые покупают ту или иную валюту.</p>
  <p id="7SWt"><strong>Медведь (Bear)</strong> - трейдер, который продаёт какую-то валюту. Участник рынка, который держит «на понижение» какой-то финансовый инструмент.</p>
  <p id="iksJ"><strong>Боковой тренд (боковик)</strong> - боковое движения рынка, при котором цена колеблется в узких рамках без сильного роста или падения.</p>
  <p id="1N3D"><strong>Торговая система или системная торговля</strong> - торговля, при которой открытие и закрытие позиций происходит по определенным торговым правилам. Правила могут быть основаны на различных видах анализа, идеях или подходах.</p>
  <p id="NEor"><strong>Трейд</strong> - две противоположные операции, которые привели к образованию финансового результата при торговле на рынке ценных бумаг. Таким образом, для завершения трейда, то есть для фиксации прибыли или убытка, необходимо совершить как минимум две операции: на открытие и на закрытие позиции.</p>
  <p id="xdUj"><strong>Хеджирование</strong> - открытие противоположных позиций на разных, но экономически связанных между собой рынках. Фактически это означает, что на каждую совершенную операцию по акции, должна быть совершена обратная операция на срочном рынке по соответствующему базисному активу.</p>
  <p id="dg9W"><strong>Тренд</strong> - продолжительное направление движения цен, вверх или вниз. Уровень сопротивления — уровень цены, где повышение цены много раз останавливается, из-за того, что активность продавцов больше, чем покупателей, и наоборот.</p>
  <p id="l8AX"><strong>Хай (Hi)</strong> - наивысшая цена за определённый период.</p>
  <p id="l8AX"><strong>Лоу</strong> - Минимальная точка падения курса на некотором отрезке времени, после которой цена пойдет вверх или, как минимум перестанет уменьшаться. Туземун - мощнейший рост цены.</p>
  <p id="G63Z"><strong>Стакан</strong> - сумма ближайших ордеров на покупку и продажу криптовалюты или иного биржевого товара.</p>
  <p id="r9dN"><strong>Слив</strong> - массовая продажа криптовалюты , которая на панической волне приводит к резкому снижению курса.</p>
  <p id="bMsd"><strong>Свеча</strong> - сумма совершенных сделок на одной конкретной бирже за определенный промежуток времени</p>
  <p id="jwbG"><strong>Стенка</strong> - огромный ордер на покупку или продажу, способный остановить соответственно, рост или падение курса.</p>
  <p id="jwbG"><strong>Кредитное плечо (Маржинальная торговля)</strong> - рискованный инструмент некоторых бирж, который дает возможность торговать большим объемом валюты, чем у вас есть на данный момент. (Например у вас есть 1 Биткоин, но вы хотите совершать сделку на 5 биткоинов, вам дают еще 4 биткоина в кредит. В случае успеха ваша прибыль умножается на 5, однако в случае неудачи ваши убытки умножаются соответственно.) Это хороший инструмент для профессионалов с небольшим капиталом, и крайне рискованный для новичков.</p>
  <p id="xZbB"><strong>Пункт</strong> - минимальное значение цены актива, которое рассчитывается от последнего знака после запятой.</p>
  <p id="BDaQ"><strong>ГЭП (GAP)</strong> - разрыв. Диапазон цен, внутри которого не было котировок, образует разрыв на ценовом графике.</p>
  <p id="mL24"><strong>Ликвидность</strong> - подразумевает способность относительно быстро и без потерь обменять акции на денежные средства и наоборот. Для количественного измерения ликвидности используют оборот торгов по конкретной акции и спрэд этой акции. Чем выше оборот и ниже спрэд, тем выше ликвидность акции.</p>
  <p id="Zeme"><strong>Спрэд</strong> - разница между лучшей ценой (котировкой) на покупку и лучшей ценой (котировкой) на продажу конкретной акции в &quot;очереди заявок&quot;. Чем меньше спрэд, тем выше ликвидность.</p>
  <p id="xesM"><strong>Коррекция</strong> - ценовое движение, направленное в противоположную сторону от основного или превалирующего ценового движения.</p>
  <p id="ZWJR"><strong>Лонговая или длинная позиция (long)</strong> - наличие ранее купленных ценных бумаг с целью их дальнейшей перепродажи по более высокой цене..</p>
  <p id="tzeN"><strong>Шортовая или короткая позиция (short)</strong> - наличие ранее проданных ценных бумаг с целью их дальнейшей покупки по более низкой цене. При этом брокер предоставляет ценные бумаги клиенту в кредит.</p>
  <p id="ym4Z"><strong>Стоп-лосс (Stop Loss)</strong> - помогает остановить убытки. Он применяется для ограничения неприемлемых для трейдера потерь капитала, в случае, если цена движется в противоположную от его ожиданий сторону. Применяется для управления потерями.</p>
  <p id="jkHX"><strong>Тейк-профит или цель (Profit Target, Take Profit)</strong> - означает уровень цены, на котором происходит &quot;фиксирование&quot; прибыли. Применяется для управления прибылями.</p>
  <p id="gTZD"><strong>AMD (accumulation, manipulation, distribution)</strong> - аккумуляция, манипуляция, дистрибуция.</p>
  <p id="lbip"><strong>OB (orderblock)</strong> - ордерблок.</p>
  <p id="ej5f"><strong>BB (breakerblock)</strong> - брейкерблок.</p>
  <p id="JA7i"><strong>POI (point of interest)</strong> - зона интереса.</p>
  <p id="KdaL"><strong>BOS (break of structure)</strong> - слом рыночной структуры.</p>
  <p id="yOj7"><strong>BTS (buy to sell)</strong> - купить чтобы продать.</p>
  <p id="4LU8"><strong>STB (sell to buy)</strong> - продать чтобы купить</p>
  <p id="xMZG"><strong>DO (daily open)</strong> - открытие дня.</p>
  <p id="0kYz"><strong>DP (decision point)</strong> - точка принятия решения.</p>
  <p id="jzkb"><strong>EQH (equal highs)</strong> - равные хаи.</p>
  <p id="4ZrK"><strong>EQL (equal lows)</strong> - равные лои.</p>
  <p id="YHV5"><strong>FTA (first trouble area)</strong> - первая проблемная зона.</p>
  <p id="vpAQ"><strong>FVG (fair value gap)</strong> - ценовой дисбаланс.</p>
  <p id="IeTC"><strong>IMB (imbalance)</strong> - ценовой дисбаланс.</p>
  <p id="N7YM"><strong>HTF (higher time frame)</strong> - старший ТФ.</p>
  <p id="jZfb"><strong>LTF (lower time frame)</strong> - младший ТФ.</p>
  <p id="SIfk"><strong>Mitigation</strong> - тест зоны спроса / предложения.</p>
  <p id="w6GH"><strong>MO (monthly open)</strong> - открытие месяца.</p>
  <p id="09ra"><strong>MS (market structure)</strong> - структура рынка.</p>
  <p id="pt9V"><strong>Order Flow</strong> - поток приказов.</p>
  <p id="dqpC"><strong>OTE (optimal trade entry)</strong> - оптимальный вход в сделку.</p>
  <p id="kVEr"><strong>PDH (previous daily high)</strong> - хай предыдушего дня.</p>
  <p id="p8nb"><strong>PDL (previous daily low)</strong> - лой предыдущего дня.</p>
  <p id="d5Gl"><strong>PDO (previous daily open)</strong> - открытие предыдущего дня.</p>
  <p id="muJP"><strong>PWH (previous weekly high)</strong> - хай предыдущей недели.</p>
  <p id="XgfN"><strong>PWL (previous weekly low)</strong> - лой предыдущей недели.</p>
  <p id="TSUu"><strong>RR (risk reward)</strong> - соотношение риска риска к прибыли.</p>
  <p id="t7K5"><strong>RTO (return to origin</strong>) - возврат в исходную зону спроса / предложения.</p>
  <p id="pR5t"><strong>SC (sponsored candle)</strong> - спонсированная свеча.</p>
  <p id="K0WF"><strong>Sweep</strong> - снятие ликвидности.</p>
  <p id="9dii"><strong>WO (weekly open)</strong> - открытие недели.</p>
  <p id="EwJC"><strong>YO (yearly open)</strong> - открытие года. ТВХ - точка входа.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/slovar</guid><link>https://teletype.in/@wingsnodeteam/slovar?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/slovar?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Словарь криптовалютных  терминов</title><pubDate>Wed, 09 Oct 2024 12:23:58 GMT</pubDate><description><![CDATA[<img src="https://img2.teletype.in/files/1f/93/1f930eb3-153a-4a0f-9f28-2455f0c8cc8b.jpeg"></img>Чтобы быстро что-то найти, воспользуйтесь поиском через команду Command+F (на Mac) или Ctrl+F (на Windows).]]></description><content:encoded><![CDATA[
  <h3 id="vRcC"><em>Вы не понимаете о чём говорят в чатах ?</em></h3>
  <h3 id="zKJs"><em>Когда вы слышите фразу «Я зашёл оллин в этот проект чтобы не ловить фомо, поэтому на минте НФТ поставил больше газа чтобы протолкнуть транзу в блокчейн быстрее других дегенов и сейчас на чилле», у вас ломается мозг?</em></h3>
  <h3 id="4LUe"><em>Тогда добро пожаловать в крипто-глоссарий (словарь), тут вы найдёте ответы на все вопросы по криптовалютной терминологии.<br /></em></h3>
  <p id="3eys"><em>Чтобы быстро что-то найти, воспользуйтесь поиском через команду <strong>Command+F</strong> (на Mac) или <strong>Ctrl+F </strong>(на Windows).</em></p>
  <h3 id="fK5x"></h3>
  <p id="9elv"><strong>А</strong></p>
  <p id="h8i3"><strong>Аллокация (allocation)</strong> – разрешённая проектом сумма, которую криптан может инвестировать в проект.</p>
  <p id="YmIc"><strong>All-Time High (ATH)</strong> – максимальное значение токена за все время.</p>
  <p id="xoIt"><strong>All-Time Low (ATL)</strong> – минимальное значение токена за все время.</p>
  <p id="Orp9"><strong>Альткоины (altcoin) </strong>– все криптовалюты кроме биткоина. Зачастую биткоин максималисты называют альткоины – щиткоинами (говнокоинами).</p>
  <p id="KCdU"><strong>APR (annual percentage rate)</strong> – годовая доходность в процентах без учета реинвестирования дохода.</p>
  <p id="1Rcr"><strong>APY (annual percentage yield)</strong> – годовая доходность в процентах с учетом реинвестирования дохода.</p>
  <p id="nrTW"><strong>Адвайзер </strong>– куратор проекта помогающий ему с развитием.</p>
  <p id="QuWd"><strong>Ask Me Anything (AMA)</strong> – формат интервью &quot;вопрос-ответ&quot;, который организуют каналы с проектами и медийными личностями, предварительно собирая вопросы подписчиков, а за хорошие вопросы обычно выдают денежный приз.</p>
  <p id="N46D"><strong>Аппаратный кошелек (hardware wallet) </strong>– электронное устройство похожее на флешку, которое используется для холодного (не в он-лайне) и безопасного хранения криптоактивов. Самый популярным является Ledger, но лично я предпочитаю Safepal S1.</p>
  <p id="gUPS"><strong>Актив </strong>– что-то ценное и то что даёт прибыль. Например: деньги в банке под %, недвига которую вы сдаёте , ценные бумаги на которые начисляют дивиденды, информация которая даёт вам профит. Активы могут существовать в реальном мире, а могут быть полностью цифровыми.</p>
  <p id="MJf5"><strong>Атака 51% (majority attack)</strong> – атака на блокчейн, которая происходит когда более 50% вычислительной мощности сети (хэшрейт) контролируется одной стороной. Злоумышленники создают для себя мошеннические блоки транзакций и делают другие транзакции в сети недействительными.</p>
  <h3 id="a8lR">Б</h3>
  <p id="4Pdk"><strong>Блокчейн (blockchain)</strong> – применительно к криптовалютам база данных, состоящая из цепочки последовательных блоков. Каждый блок хранит необходимую информацию для того, чтобы данные в прошлом нельзя было подменить. И каждый блок несёт в себе ещё и информацию о предыдущем блоке.</p>
  <p id="0SWA"><strong>Блок (block)</strong> – сущность, содержащая транзакционные данные внутри блокчейна. В каждом блоке также записывается информация и данные о предыдущих блоках для невозможности подмены информации.</p>
  <p id="Qz7N"><strong>Блок-проводник (block explorer)</strong> – инструмент для анализа блокчейна, с помощью которого можно изучить данные в блоках и мониторить транзакции, кошельки, загруженность сети и другие данные. К ним относятся etherscan, bscscan, ftmscan, solscan и т.д.</p>
  <p id="S6r2"><strong>Батч</strong> – &quot;раздача&quot; токенов. Например: на ТГЕ вам раздали 10% от всех токенов (первый батч), на второй месяц вам раздадут 45% (второй батч) и через месяц оставшиеся 45% (третий батч).</p>
  <p id="RLM3"><strong>Бэки или бэкер </strong>– инвестор который заходит в проекты на самых ранних стадиях инвестирования.</p>
  <p id="uGR4"><strong>Подтверждение блока (block confirmation) </strong>– процесс добавление транзакций в блок и подтверждения успешности и валидности их выполнения.</p>
  <p id="ChfX"><strong>Буллиш (bullish) </strong>– вера в рост проекта, стоимость токена или всего рынка. Происходит от «быков и медведей», исторических терминов из финансов и трейдинга (быки смотрят вверх, медведи вниз).</p>
  <p id="Zzkk"><strong>BEP-20 </strong>– стандарт токенов для BSC (Binance Smart Chain).</p>
  <p id="y6hm"><strong>Бутстреп (bootstrap)</strong> – тестовый период запуска сети с повышенными ревардами (наградами) и часто ограниченным функционалом для создания первого спроса и стабильности.</p>
  <p id="dOlK"><strong>Баунти программа (bounty)</strong> – выполнение определенных заданий для проекта. Как правило это активность в соц. сетях, написание и перевод статей, создание видео контента, мемов, отчеты о багах и прочие действия, за которые обычно вознаграждают токенами проекта.</p>
  <h3 id="vJ89">В</h3>
  <p id="S6M9"><strong>Вайтлист (whitelist или WL)</strong> – список участников, которые допущены до разного рода событий: testnet, сейл, IDO, IEO и другие события.</p>
  <p id="vfY6"><strong>Вайтпейпер (whitepaper или WP)</strong> – документ, который составляют на ранней стадии проекта. В нем изложены основные проблемы, которые решает проект, основные механизмы работы платформы и токеномика. Для примера можно посмотреть ВП Биткоина, опубликованный в 2008 году или ВП Эфира, опубликованный в 2015 году.</p>
  <p id="uUpG"><strong>Венчурные инвестиции</strong> – вложения в развивающийся бизнес или стартап, о перспективах успешности которого пока ничего не известно. Все инвестирования в криптопроекты на ранних стадиях – это венчурные инвестиции соответсвенно и риски соответствующие.</p>
  <p id="J4Vd"><strong>Время подтверждения (confirmation time)</strong> – время, необходимое для попадания транзакции в блок, что означает подтверждение транзакции.</p>
  <p id="DxjR"><strong>Волатильность </strong>– финансовый показатель, характеризующий изменчивость цены токена. В крипте цена токена может изменяться на огромные % в короткий промежуток времени, поэтому она является самым волатильным рынком.</p>
  <p id="qjmU"><strong>WAGMI </strong>– аббревиатура фразы “we all gonna make it”. Обычно используется в ситуациях, когда есть надежда, что рынки и монеты начнут расти или когда много хороших новостей выходят в свет.</p>
  <h3 id="yDwv">Г</h3>
  <p id="B5zS"><strong>Газ (gas) </strong>– единица измерения цены транзакции в сети ERC-20. Например, в Эфире она называется gwei. 1 Gwei = 0.000000001 ETH. И наоборот 1 ETH = 1 миллиард gwei.</p>
  <p id="U1Sr"><strong>Лимит газа (gas limit) </strong>– лимит (максимум) газа который можно потратить для выполнения транзакции.</p>
  <p id="nL4V"><strong>Горячий кошелек (hot wallet)</strong> – онлайн кошелек, который позволяет пользователю хранить, отправлять и получать токены (например MetaMask).</p>
  <p id="6zey"><strong>Гем </strong>– проект или монета которая в 99% даст профит или как минимум не принесёт убыток. Есть куча абривиатур этого слова типа &quot;альфа&quot; или &quot;единорог&quot;, но я больше люблю говорить &quot;очевидная идея&quot;.</p>
  <p id="Bdi4"><strong>Гарант (escrow)</strong> – доверенное лицо при проведении сделок на ОТС рынках. Защищает от мошенничества как покупателя так и продавца за счёт своей репутации. Поэтому нужно искать именно провереных гарантов с кучей отзывов</p>
  <h3 id="OofT">Д</h3>
  <p id="z2sa"><strong>Дефи (DeFi) </strong>– «децентрализованные финансы». По сути это слой публичных финансовых приложений (даппов) совместимых между собой и не имеющих центрального руководства, государственного регулирования и географического ограничения.</p>
  <p id="0TMG"><strong>Даппы (dApp) </strong>– приложения, работающие в децентрализованной компьютерной системе (на блокчейне) и которые существуют в блокчейне, а блокчейн виртуально бесконечен и не ограничен, поэтому считается, что их невозможно выключить, заблокировать, изменить и т. д.</p>
  <p id="gH82"><strong>ДИОР (Do Your Own Research или DYOR)</strong> – &quot;провести собственное исследование&quot; по проекту или полученной информации, а не тупая вера чужим словам.</p>
  <p id="oZfn"><strong>Дамп (dump) </strong>– резкое падение рынка или конкретной монеты. Противоположность пампу.</p>
  <p id="I5Fp"><strong>Деген (degen) </strong>– обозначение инвестора, который творит полную дичь и инвестирует везде куда не поподя особо не думая.</p>
  <p id="cL1m"><strong>Доминация (dominance) </strong>– процент капитализации определенной монеты ко всему крипторынку.</p>
  <p id="8WJl"><strong>Доминация Биткоина (bitcoin dominance)</strong> – процент капитализации биткоина ко всему крипторынку. Считается одним из основных показателей.</p>
  <p id="Pzum"><strong>ДАО (DAO)</strong> – &quot;децентрализованное автономная организация&quot;. Вид управления проектами в дефи, основанный на голосовании держателями токена. Чем больше токенов – тем больше вес голоса.</p>
  <p id="IVlb"><strong>Джипег (jpeg) </strong>– картинка не имеющая никакой физической или криптовалютной ценности, но которую пытаются продать под видом ценной NFT.</p>
  <h3 id="5htw">Е</h3>
  <p id="k6Rd"><strong>ERC-20 </strong>– стандарт для взаимозаменяемых токенов в сети Ethereum, поддерживает смарт-контракты и используется в dApps.</p>
  <p id="Hf67"><strong>ERC-721</strong> – является стандартом для не взаимозаменяемых токенов (NFT) в сети Ethereum. Каждый токен ERC-721 уникален и не подлежит замене. Его часто используют для предметов коллекционирования, недвижимости, картин и искусства в целом.</p>
  <h3 id="aX6K">И</h3>
  <p id="pheD"><strong>Инфлюенсер </strong>– известная в криптовалюте личность имеющая (во всех смыслах) своё комьюнити и влияние на умы окружающих его людей. Самый популярный в СНГ инфлюенсер – это Дмитрий К. он же &quot;Какой-то Мудак&quot;.</p>
  <p id="Y1Is"><strong>IEO (Initial Exchange Offering) </strong>– мероприятие по сбору средств, которое проводится и контролируется централизованной биржей. Например Launchpad на Бинансе.</p>
  <p id="yVX4"><strong>IDO (Initial DEX Offering)</strong> – мероприятие по сбору средств, которое проводится в децентрализованной манере. Обычно стартапы привлекают средства и после этого добавляют ликвидность в пул, например на Uniswap или SushiSwap.</p>
  <p id="9JQY"><strong>Initial Coin Offering (ICO) </strong>– метод сбора средств, который был популярен в 2016–2017 годах. ICO проводит сама команда стартапа. Пользователь, вкладывающий деньги, получает токен перед листингом на биржах.</p>
  <p id="LEBR"><strong>IPO (Initial Public Offering) </strong>– процесс перехода компании от частной к публичной, т.е. момент когда акции компании выходят на публичные торги.</p>
  <p id="Qu7Q"><strong>ИнсайД (не путать с инсайТ)</strong> – самая ценная информация в крипте, информация «для своих», которой не принято делиться до того, пока все не накопят сумки и смогут скинуть их на пришедших хомяков. Все мечтают знать инсайды, чтобы заходить в проекты раньше, чем про это узнает все. Но такую информацию практически невозможно выловить без должных связей.</p>
  <p id="vBqy"><strong>ИнсайТ</strong> – внезапное осознанное нахождение решения какой-либо задачи, ставшее результатом продолжительной бессознательной мыслительной деятельности.</p>
  <h3 id="LOJb">К</h3>
  <p id="BMgi"><strong>Кран (faucet)</strong> – веб-сайты или приложения, которые бесплатно раздают колосально маленькое количество крипты (как способ заработка не подходит) на каждый кошелек за выполнение простых задач или вовсе просто так. В основном краны нужны для получения токенов в тестнет сетях. Наш агрегатор кранов.</p>
  <p id="cwf2"><strong>Крипто Трекер (crypto tracker) </strong>– приложение позволяющее следить за криптовалютами в реальном времени.</p>
  <p id="w0eK"><strong>Крипто Портфолио (crypto portfolio) </strong>– сервис, где можно отслеживать свои криптоактивы. Полезно, чтобы не забывать что, куда, когда и сколько вы заносили.</p>
  <p id="ARzO"><strong>Криптан или Криптоинвестор </strong>– человек, осознанно занимающийся криптовалютой. Криптанами становятся &quot;хомяки&quot;, которые начинают думать и изучать матчасть.</p>
  <p id="MKsw"><strong>Кит </strong>– криптан с большим объемом активов.</p>
  <p id="wHz2"><strong>KYC (Know Your Customer)</strong> – процесс подтверждения личности (верификации) пользователя за счет предоставления документов. Служит якобы для защиты от незаконной деятельности с деньгами.</p>
  <p id="mc9m"><strong>Клиф (cliff)</strong> – заморозка раздачи токена после TGE или батчей. Например: в токеномике проекта указано &quot;TGE 10% затем cliff 2 месяца и далее по 45% в месяц&quot; – это значит, что на ТГЕ вы получите 10% от всех токенов, далее 2 месяца токены выдаваться не будут (заморожены), и далее 2 батча по 45% в месяц. То есть разлок всех токенов займёт 4 месяца.</p>
  <p id="HFQQ"><strong>Комиссия за транзакцию (transaction fee)</strong> – комиссионные сборы (плата в базовом активе сети), которые взимаются майнерами/валидаторами сети за транзакции и сделки.</p>
  <p id="6C0G"><strong>Ковер или рагпул </strong>(rugpull или pull the rug) – дословно &quot;выдернуть ковёр&quot;. Вид скама, при котором разработчики проекта достают всю предоставленную пользователями ликвидность из пула. В этом случае все поставщики ликвидности и держатели токена теряют деньги: ликвидность не вернуть, а токен теряет 100% цены и больше никому не нужен.</p>
  <h3 id="Gqxq">Л</h3>
  <p id="o0Js"><strong>Листинг (listing)</strong> – момент когда токен впервые появляется на бирже и становится доступен к покупке/продаже.</p>
  <p id="J2ZP"><strong>Ликвидность </strong>– способность покупать или продавать активы на рынке, не вызывая при этом радикальных изменений в цене активов. Например: покупая/продавая высоколиквидный Биткойн на 10к$ вы не повлияете на его цену, а покупая на эту же сумму какое-нибудь низколиквидное говно, вы можете пампануть/дампануть цену на десятки и даже сотни %.</p>
  <p id="bLjv"><strong>Лимитный ордер (limit order)</strong> – ордер (заявка) на покупку или продажу токена по заранее заданной цене самим покупателем.</p>
  <p id="2DUd"><strong>Лонг (long) </strong>– вид торговли токеном, при котором инвестор зарабатывает на росте цены. Противоположность шорту.</p>
  <p id="gANM"><strong>ЛП или Предоставление ликвидности (liquidity providing или LP) </strong>– покупка и предоставление в пользование нативного токена проекта в паре с другим (обычно популярным) токеном, чтобы новые пользователи могли его покупать с децентрализованной биржи.</p>
  <h3 id="Kn9r">М</h3>
  <p id="we1K"><strong>Метавселенная (metaverse)</strong> – постоянно работающее виртуальное пространство, в котором люди взаимодействуют с цифровыми объектами и друг с другом, в том числе с помощью технологий виртуальной реальности.</p>
  <p id="cenI"><strong>Майнинг </strong>– если максимально просто, то это добыча криптовалюты.</p>
  <p id="RVpc"><strong>Майнеры (miner) </strong>– пользователи выполняющие в блокчейне несколько функций таких как: хранение копий блокчейна и тем самым защищая информацию от потери или подделки; регистрируют, проверяют и подтверждают транзакции, тем самым поддерживая работу системы. И именно им, за их труды, вы платите комиссии с транзакций.</p>
  <p id="Zt4H"><strong>Минт или минтинг </strong>– &quot;чеканить&quot; NFT. В момент минта иформация об NFT добавляется в блокчейн. Или грубо говоря это покупка NFT в момент старта продаж.</p>
  <p id="r4X8"><strong>Мейннет (mainnet) </strong>– основная сеть определенного блокчейна. Только в этой сети токен имеет ценность.</p>
  <p id="iXig"><strong>Медвежий рынок (bear market)</strong> – время когда крипто рынок находится в стагнации или вовсе падает.</p>
  <p id="Oxix"><strong>Метамаск (metamask) </strong>– общепризнанный и наиболее распространённый не кастодиальный (личный) кошелёк. Основное отличие от биржи в том, что он принадлежит только пользователю, больше ни у кого нет к нему доступа. Операции происходят напрямую между пользователями и протоколами (контрактом).</p>
  <p id="67L2"><strong>Макси или максималист (maxi)</strong> – фанатик одного проекта или токена. Дурачков можно определить по изменению аватарки, имени или постоянным крикам в чате, что их монета самый топ.</p>
  <h3 id="BYlC">Н</h3>
  <p id="I2N3"><strong>NFT (Non-fungible token) </strong>– не взаимозаменяемый, а если еще проще уникальный токен. К примеру если взять картину &quot;Мона Лиза&quot;, оцифровать её, добавить данные о принадлежности её цифровой копии на блокчейн, а оригинал сжечь, то она станет NFT.</p>
  <p id="oyBs"><strong>NGMI (not gonna make it) </strong>– обычно используют для описания ситуации, когда человек не хочет покупать токен потому, что боится потерь.</p>
  <p id="bmAI"><strong>Нормис или плебсы (normies или plebs) </strong>– «обычные люди» или «плебеи», не имеющие доступа к инсайдам и покупающие то, что остаётся после барского стола.</p>
  <p id="bFyM"><strong>Ноукоинер (no coiner) </strong>– человек не владеющий криптой.</p>
  <h3 id="XrZP">О</h3>
  <p id="tm8F"><strong>ОТС (Over The Counter)</strong> – внебиржевой рынок, где покупатель с продавцом общаются напрямую, минуя посредников (биржи), используя третью сторону (гаранта) для снижения рисков.</p>
  <h3 id="uVEL">П</h3>
  <p id="NKMC"><strong>Падающий нож (falling knife) </strong>– торговый термин обозначающий быстрое падение цены токена. Часто используется во фразе: “пытаться поймать падающий нож”, означающей попытку трейдера поймать дно после резкого падения. Очень часто ловцы получают второе дно в подарок к первому.</p>
  <p id="tzJz"><strong>Памп (pump) </strong>– резкий рост рынка или конкретной монеты. Противоположность дампу.</p>
  <p id="Ceu6"><strong>Памп и Дамп (pump and pump) </strong>– стратегия накачать и сбросить монету. Киты искусственно накачивают стоимость монеты, чтобы потом продать максимально дорого мелким трейдерам прыгающим в последний вагон. В итоге стоимость монеты снижается. Кто не успел продать, тот проиграл.</p>
  <p id="7rqT"><strong>Последний вагон</strong> – слоган означающий желание успеть урвать кусочек уходящего профита.</p>
  <p id="4T35"><strong>Пул (pool)</strong> – &quot;общий фонд&quot;. Пулы собираются людьми, которые имеют выходы на проекты и возможность получения аллокаций в них, за определённый процент (комиссию пула). Это одна из возможностей для криптанов попадать в сейлы на ранних стадиях проектов.</p>
  <p id="JBSa"><strong>Профит (profit) –</strong> прибыль или польза.</p>
  <p id="jIS2"><strong>Прайс дискавери (price discovery)</strong> – стремительный выход цены за пределы предыдущего ATH, где происходит парад ликвидаций шортов исполняемых по рыночной цене, тем самым цена продолжает стремительный рост, с последующим поиском новой справедливой цены, пока не появится достаточное предложение для сдерживания цены. В этом случае монета может сделать 2-10х за минимальный промежуток времени.</p>
  <p id="8kjq"><strong>Приватный ключ (private key) </strong>– закрытый ключ. По сути просто очень большое рандомное число, полученное различными способами, в зависимости от используемой криптографии. Настолько большое, что ручками вы его хрен подберете за всё время существования вселенной, а другого способа его найти пока что нет. Данный ключ предоставляет доступ к хранящимся на счету криптовалютам. Храните его как свою девственность, ведь если потеряете приватный ключ – потеряете средства навсегда. Также служит для создания цифровой подписи при отправке транзакций с целью их последующей валидации.</p>
  <p id="dYn1"><strong>Публичный ключ (public key)</strong> – ключ, полученный специальным сложным математическим преобразованием из приватного ключа. В системах шифрования с открытым ключ он передается в открытом виде по сети и служит для зашифрования сообщения на стороне отправителя. В криптовалюте служит для проверки выполнения условия траты средств, т.е. вы предоставляете свой публичный ключ как одно из доказательств права на трату средств с вашего счета. Но это понятие размылось и сейчас если вы услышите фразу &quot;дай свой публичный ключ&quot;, то в 99% вас просят просто дать свой публичный адрес кошелька.</p>
  <p id="37rY"><strong>Публичный адрес</strong> – хэш публичного ключа, т.е. результат криптографического преобразования публичного ключа для экономии места в блокчейне и более удобного формата его чтения не только машиной, но и юзером.</p>
  <p id="qstY"><strong>Пендинг (pending) </strong>– незавершенная транзакция т.е. находится в ожидании. Например вы отправили деньги, а транзакция находятся еще в обработке и пока она не завершится, то отправленные средства не поступят на кошелек.</p>
  <p id="rKmr"><strong>Proof of Work (PоW)</strong> – &quot;доказательство выполнения работы&quot;. Механизм защиты цифровых систем и криптовалют в частности, путем решения на вычислительной мощности криптографической задачи. Каждый блокчейн ставит свою задачу. Так появляются новые блоки в цепи: железо должно &quot;разгадать&quot; задачу и представить её решения на всеобщее обозрение в качестве доказательства выполнения (собственно отсюда и доказательство выполенения работы), чтобы иметь возможность создать следующий блок.</p>
  <p id="uwNG"><strong>Proof of Stake (PоS)</strong> – альтернативный PoW механизм, который используется для защиты сети, добавления новых блоков и подтверждения транзакций. Механизм не требует для работы большого количества энергии, как в случае с PoW. Для PoS не нужны компьютерные алгоритмы, при этом он базируется непосредственно на информации о количестве монет у валидатора сети (его стейке). Это делает PoS токены более независимыми. И именно к этому алгоритму сейчас все стремятся.</p>
  <h3 id="ccJM">Р</h3>
  <p id="cxRT"><strong>Рект (rekt) </strong>– ёмкое слово обозначающее весь спектр неудач, ведущих к потерям: от скама и взлома, до резкого падения цены на токен. Типа синоним слова &quot;пиздец&quot;.</p>
  <p id="ISKx"><strong>Рыночный ордер (market order) </strong>– ордер (заявка) на быструю покупку/продажу по текущей рыночной цене. Например: рыночный ордер на продажу будет соответствовать самому дешевому лимитному ордеру на покупку, доступному в биржевом стакане. Ордер будет проходить по всему стакану пока не будет закрыт по требуемому вами объёму, так что не забывайте смотреть на ликвидность.</p>
  <p id="8WzZ"><strong>Роадмап (roadmap)</strong> – простой графический обзор целей проекта, которые размещены на временной шкале.</p>
  <p id="el37"><strong>Ретродроп (retro drop) </strong>– разновидность эирдропа, когда пользователь не мог заранее знать дадут ему токены или нет.</p>
  <p id="lpWf"><strong>Реварды или награды (rewards)</strong> – токены, которые выдаются за участие в запуске проекта первым пользователям предоставляющим ликвидность, как правило они выше всего на запуске и потом снижаются по мере роста количества участников, либо вообще прекращаются.</p>
  <h3 id="01Qo">С</h3>
  <p id="YT6J"><strong>Сатоши Накамото (Satoshi Nakamoto)</strong> – человек или группа людей, до сих пор кстати анонимные, которые создали биткоин. А ещё это единица измерения. В одном Биткойне 100 000 000 сатоши.</p>
  <p id="nBgR"><strong>Сейл (sale)</strong> – сбор инвестиций проектом. Есть разные виды (раунды) сейлов: ангельские (angel), сид (seed), приватные (private), публичные (public).</p>
  <p id="07XQ"><strong>Стоп-лосс (stop-loss order) </strong>– тип ордера, который ограничивает потенциальные убытки. Его используют чтобы установить определенный уровень цены, при котором существующий ордер автоматически закроется, если цена коснется его, дабы защититься от дальнейшего падения. Скажем так – это противовес тейк-профиту. Например: вы купили токена по цене 1$, поставили стоп-лосс на 0.9$ и ушли спать. Пока вы спали цена опустилась до 0.5$, но ваш ордер сработал по 0.9$.</p>
  <p id="L49J"><strong>Софт Кап (soft cap)</strong> – нижний предел сбора средств проектом на этапе ICO / IDO / IEO и др. Если проект его не достигает, значит он нахрен никому не нужен, его отменят и средства возвратят инвесторам. Но на деле проекты редко возвращают средства и якобы пытаются работать с тем, что собрали.</p>
  <p id="dnl2"><strong>Скам (scam) </strong>– обман с целью получения средств. Например: проект после сейла пропал с деньгами инвесторов, закрыл все соц.сети или выдернул ликвидость значит он соскамил инвесторов.</p>
  <p id="6rGR"><strong>Сид-Фраза (seed или mnemonic phrase)</strong> – это набор 12–24 слов в определенном порядке, которые генерируют по различным алгоритмам приватные ключи для кошельков. Эту фразу необходимо хранить очень надежно и никому не показывать! Проебёте фразу - можете забыть о деньгах ибо приватный ключ от кошелька, а равно и доступ к нему уже будет не восстановить. Интересно, что не любые слова подходят для сид-фраз. Всё зависит от алгоритма, который используется.</p>
  <p id="tXL4"><strong>Смарт-контракт (smart-contract) </strong>– открытый публичный протокол, обрабатывающий операции в сети Ethereum и других сетях которые их поддерживают. Практически любая операция в дефи – операция со смарт-контрактами. Контракты чаще всего пишутся на нативном языке Solidity.</p>
  <p id="r2Do"><strong>Скип или скипать</strong> – пропускать участие в чём-либо (например проекте) по определённым причинам (который каждый опрееделяет для себя сам).</p>
  <p id="tmcb"><strong>САФТ (Simple Agreement for Future Tokens) </strong>– электронный документ, подтверждающий ваше право на будущие токены. Подписывается между вами и проектом. По сути, это просто формальная бумажка, которая на данный момент в крипте не имеет никакой юридической силы. И так как она в электронке, то ей даже жопу подтереть нельзя. Поэтому никогда не думайте, что если вы подписали SAFT, то вам обязательно кто-то, что-то даст как и обещал.</p>
  <p id="IPMA"><strong>Стейкинг (staking) </strong>– процесс хранения (часто с необходимостью блокировки на определённый срок) средств на криптовалютном кошельке для обеспечения поддержки всех операций на блокчейне с целью получения вознаграждений.</p>
  <p id="uZlk"><strong>Стейблы (stablecoins)</strong> – ряд крупных и общепризнанных монет (токенов) привязанных к $1 и поэтому якобы лишенных риска волатильности. Это USDT, USDC, DAI, BUSD и т.д.</p>
  <p id="OzEI"><strong>Стакан </strong>– таблица ближайших ордеров на покупку и продажу актива, которую вы можете увидеть на любой бирже или торговой платформе.</p>
  <p id="iB3b"><strong>Стенка </strong>– огромный ордер на покупку или продажу, способный остановить, соответственно, рост или падение курса. Бывает, что стенки являются манипуляцией китов, чтоб сбить с толку хомяков.</p>
  <h3 id="BZCx">Т</h3>
  <p id="WmFK"><strong>Транзакция </strong>– передача активов между людьми/системой/протоколами.</p>
  <p id="zV4g"><strong>Тестнет (testnet) </strong>– альтернативная сеть для экспериментов и тестирования. Крипта в тестовой сети не имеет никакой ценности в основной сети, и наоборот. Многие продукты на ранней стадии запускают тестнеты для проверки работоспособности и благодарят своих тестеров ревардами.</p>
  <p id="hChi"><strong>ТГЕ (Token Generation Event) </strong>– момент когда токены проекта впервые раздаются инвесторам.</p>
  <p id="ovOR"><strong>Тейк-профит (take-profit order) </strong>– тип ордера, который фиксирует потенциальную прибыль. Скажем так противовес стоп-лоссу, только тут вы ставите цену выше точки захода и если курс токена достигнет её, то у вас сработает ордер.</p>
  <p id="hjKH"><strong>TVL</strong> – общая сумма заблокированных в конкретном смарт-контракте средств.</p>
  <p id="nqsh"><strong>Таймлок (timelock)</strong> – временное программное ограничение на любые действия. Часто накладывается на пользователей проектов с большими наградами для ограничения дампа, либо на разработчиков для ограничения выхода из ликвидности.</p>
  <p id="3XWI"><strong>Токеномика (tokenomics)</strong> – экономика проекта. Сколько токенов, кому, когда и в каких пропорциях раздаётся.</p>
  <p id="2OSa"><strong>Туземун (to the moon) </strong>– мощнейший рост цены и мечта каждого хомяка, чтобы их монеты сделали туземун и озолотили владельцев.</p>
  <p id="jwWy"><strong>Трейдер (trader)</strong> – торговец который покупает продаёт крипту с целью извлечь выгоду, то есть все мы с вами.</p>
  <p id="zEvg"><strong>ТАшник </strong>– трейдер торгующий по техническому анализу (ТА), покупатель говна в воздухе, предсказатель будущего на основании прошлого, низ пищевой цепи в криптоиндустрии и просто пиздабол. 99% ТАшников зарабатывают на продаже курсов по трейдингу, но сами на нём заработать не могут.</p>
  <p id="LsjK"><strong>Технический Анализ (ТА)</strong> – совокупность инструментов прогнозирования вероятного изменения цен в будущем на основе изменений цен в прошлом в аналогичных обстоятельствах. Или простыми словами – полная хуйня.</p>
  <h3 id="nlOP">Ф</h3>
  <p id="r0MG"><strong>Флиппенинг (flippening)</strong> – момент когда Ethereum обгонит по рыночной капитализации Биткоин. Мечта всех Эфир-максималистов.</p>
  <p id="jzPg"><strong>Форк (fork)</strong> – копирование открытого кода существующего проекта под новый проект, чаще всего с незначительными изменениями в механике и токеномике.</p>
  <p id="UVHU"><strong>Ферма</strong> – большая, или нет, хрень для майнинга (см. POW). Представляет собой объединенное в одну систему кучу компьютеров или серверов.</p>
  <p id="y6N4"><strong>Фарминг (farm) </strong>– пассивный доход от предоставления ликвидности и стейкинга нативных токенов проекта. Как правило запускается для создания ценности токена который по факту нахуй никому не нужен и идеи там никакой нет.</p>
  <p id="2RDq"><strong>Флип </strong>– противовес &quot;холду&quot;. То есть когда монета покупается только для краткосрочной спекуляции. Есть выражение &quot;флипать в стакан&quot; или &quot;лить в стакан&quot; означающее быструю продажу токена по стакану биржи не разбираясь в проекте, не ожидая будущего роста или падения. Просто купил токен, потом продал и забыл про его существование.</p>
  <p id="IOS0"><strong>Фиат (fiat) </strong>– обозначения обычных денег: рублей, долларов, евро и т. д.</p>
  <p id="AFbF"><strong>ФУД (fear uncertainty and doubt)</strong> – распространение заведомо ложных, либо же просто негативных новостей и фактов, с целью очернить репутацию проекта или просадить цену токена.</p>
  <p id="ij6g"><strong>Фомо (Fear of Missing Out)</strong> – &quot;синдром упущенной выгоды&quot;. Ощущение, когда ты видишь гигантскую зеленую свечу на графике монеты, которую не держишь и хочешь попасть в этот уходящий поезд, или когда ты не вошёл в проект, хотя мог, а он сделал х100.</p>
  <p id="ZJui"><strong>Флэш-займ (flash loan)</strong> – виртуально неограниченное количество денег, которое можно взять и вернуть за одну транзакцию, часто используется в плохих целях (например, выкачивание ликвидности).</p>
  <h3 id="GKUv">Х</h3>
  <p id="vIJK"><strong>Хомяк </strong>- неопытный в крипте человек. Пришёл в крипту думая, что тут легко поднять бабла. Обычно задаёт тупые вопросы ищет только &quot;кнопку бабло&quot; не желая при этом ничего делать и что-то изучать.</p>
  <p id="wcza"><strong>Халвинг (halving) </strong>– процесс сокращения вознаграждений вдвое, которые майнеры / валидаторы получают за свою работу. Например, предыдущее уполовинивание было в 2020 году и вознаграждение майнеров уменьшилось с 12.5 BTC до 6.25 BTC.</p>
  <p id="ENZT"><strong>Ходл и Ходлер (hodl) </strong>– сленговое определение слов &quot;холд&quot; и &quot;холдить&quot; т.е. &quot;держать&quot;. Это значит покупать криптовалюту и держать её несмотря ни на что.</p>
  <p id="zuhs"><strong>Холодный кошелек (cold wallet)</strong> – оффлайн кошелек, который используется в качестве хранилища для криптовалют. Т.к. он не имеет доступа к Интернету, то считается защищённым от онлайн-взломов и эксплойтов. Сюда относятся как аппаратные кошельки, так и бумажка с приватным ключом в вашем сейфе.</p>
  <p id="ORZ6"><strong>Хард Кап (hard cap) </strong>– максимальная цель по сбору средств проектом на ICO/IDO/IEO и т. д. Забавный факт – на ICO Ethereum не было хардкапа.</p>
  <p id="ck8t"><strong>Хард форк (hard fork) </strong>– процесс крупных изменений в сети протокола, который делает ранее валидные блоки – не валидными. После хард-форка, чтобы продолжить использование протокола, пользователи и ноды должны обновить программное обеспечение до последней версии.</p>
  <p id="THF6"><strong>Хэш (hash)</strong> – результат выполнения функции хеширования, который используется для представления слов, сообщений и данных. Может использоваться для проверки целостности данных, их идентификации и поиска, а также заменять собой данные, которые небезопасно хранить в явном виде (например, пароли или приватные/публичные ключи). Например: хэш транзакции (TX Hash или TxID) являются результатом выполнения хэш-функции над транзакционными данными (кто, кому, сколько и т.д.) и позволяет подтвердить правильность выполнения транзакции.</p>
  <p id="yfcN"><strong>Хэшрейт (hashrate) </strong>– общая вычислительная мощность, которая используется для обработки блоков и транзакций в чейнах, использующих Proof-of-Work алгоритм (Bitcoin, Ethereum, Monero и т. д.).</p>
  <h3 id="VsXI">Ч</h3>
  <p id="4xLE"><strong>Честный запуск (fair launch)</strong> – запуск проекта на деньги коммьюнити в обмен на токены, без участия внешних инвесторов и vc-фондов.</p>
  <p id="8C1c"><strong>Чилл </strong>- отдых.</p>
  <h3 id="JPwG">Ш</h3>
  <p id="oOUy"><strong>Шиллинг (shilling) </strong>– реклама или просто освещение проекта/токена с целью выгоды.</p>
  <p id="OP2R"><strong>Шиллер (shiller)</strong> – известная в криптовалюте личность, которая рекламирует токены или проект получая с этого выгоду.</p>
  <p id="QR56"><strong>Шорт (short) </strong>– вид торговли токеном, при котором инвестор зарабатывает на падении цены. Противоположность лонгу.</p>
  <h3 id="s5QN">Э</h3>
  <p id="aEiZ"><strong>Эирдроп (airdrop) </strong>– бесплатная раздача токенов проекта. Как правило, эирдропы делаются для ранних пользователей или для всех, с целью привлечения внимания к своей платформе.</p>
  <p id="YgKm"><strong>Эксплойт или хак (exploit или hack)</strong> – использование уязвимости (бага) в коде протокола третьей стороной в своих целях.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/vana</guid><link>https://teletype.in/@wingsnodeteam/vana?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/vana?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Vana: Гайд на ноду</title><pubDate>Mon, 23 Sep 2024 20:54:47 GMT</pubDate><description><![CDATA[<img src="https://img1.teletype.in/files/8e/3e/8e3ea112-c6f5-4d55-9885-1483c3e1b6a9.png"></img>Выбираем сервер показанный на скрине]]></description><content:encoded><![CDATA[
  <p id="SO0m">Выбираем <a href="https://xorek.cloud/?from=11384" target="_blank">сервер </a>показанный на скрине</p>
  <figure id="4kob" class="m_original">
    <img src="https://img1.teletype.in/files/8e/3e/8e3ea112-c6f5-4d55-9885-1483c3e1b6a9.png" width="449" />
  </figure>
  <p id="b9HD">• Устанавливаем Git, Unzip и Nano</p>
  <pre id="wVcm">sudo apt-get install git -y</pre>
  <pre id="GJEt">sudo apt install unzip</pre>
  <pre id="WMF1">sudo apt install nano</pre>
  <p id="Z4Ei">• После, устанавливаем Python</p>
  <pre id="6XXg">sudo apt install software-properties-common -y</pre>
  <pre id="Ywl5">sudo add-apt-repository ppa:deadsnakes/ppa</pre>
  <p id="nq4F">• Жмем Enter и вводим: </p>
  <p id="nq4F"><code>sudo apt update sudo apt install python3.11 -y</code></p>
  <p id="nq4F">• Если при вводе команды <code>python3.11 --version</code> показывает Python 3.11.10, значит вы все сделали верно</p>
  <p id="3Fdq">• Устанавливаем Poetry</p>
  <pre id="hanL">sudo apt install python3-pip python3-venv curl -y</pre>
  <pre id="oaKC">curl -sSL https://install.python-poetry.org | python3 -</pre>
  <pre id="AFaU">export PATH=&quot;$HOME/.local/bin:$PATH&quot;</pre>
  <pre id="owws">source ~/.bashrc</pre>
  <p id="ZNys">• И наконец устанавливаем Node.js и npm</p>
  <pre id="GEGS">curl -fsSL https://fnm.vercel.app/install | bash</pre>
  <pre id="hS3n">source ~/.bashrc</pre>
  <pre id="EyrG">fnm use --install-if-missing 22</pre>
  <p id="FhtH">• Ставим зависимости</p>
  <pre id="sQCc">apt-get install nodejs -y</pre>
  <pre id="BKAl">npm install -g yarn</pre>
  <p id="qU0r">• Теперь, устанавливаем саму ноду:</p>
  <pre id="AcIT">git clone https://github.com/vana-com/vana-dlp-chatgpt.git
cd vana-dlp-chatgpt</pre>
  <pre id="L8Mx">cp .env.example .env</pre>
  <pre id="DL2y">pip install vana</pre>
  <pre id="yGTx">poetry install</pre>
  <p id="QYiq"><strong>• ВАЖНО! Создаем кошелек и обязательно сохраняем пароль (который вы придумаете) и две мнемоник-фразы — Coldkey и Hotkey</strong></p>
  <pre id="TcfP">vanacli wallet create --wallet.name default --wallet.hotkey default</pre>
  <p id="MzNL">• Добавляем в ваш EVM кошелек сеть и сохраняем приватные ключи</p>
  <section>
    <p id="4fAs">Network name: Vana Moksha Testnet</p>
    <p id="gvsc">RPC URL: <a href="https://rpc.moksha.vana.org" target="_blank">https://rpc.moksha.vana.org</a></p>
    <p id="MaIg">Chain ID: 14800</p>
    <p id="9zH3">Currency: VANA</p>
    <p id="miQr">Block Explorer: <a href="https://moksha.vanascan.io" target="_blank">https://moksha.vanascan.io</a></p>
  </section>
  <p id="DrQa">• Вводим:</p>
  <pre id="wypc">vanacli wallet export_private_key</pre>
  <blockquote id="U2gR">Enter wallet name (default): нажимаем <strong>Enter</strong></blockquote>
  <blockquote id="s6SJ">Enter key type [coldkey/hotkey] (coldkey): тоже жмем <strong>Enter</strong></blockquote>
  <blockquote id="IMGb">Do you understand the risks? (yes/no): <strong>yes</strong></blockquote>
  <blockquote id="97RR">Enter your coldkey password: вводим пароль который вы сохранили ранее</blockquote>
  <p id="teBN"><strong>Сохраняем приватный ключ от Coldkey который вам выдадут </strong><br />• Вводим команды далее:</p>
  <p id="YwEG"><strong>• Делаем для Hotkey</strong></p>
  <pre id="DDNo">vanacli wallet export_private_key</pre>
  <section>
    <blockquote id="X93n">Enter wallet name (default): жмем <strong>Enter</strong></blockquote>
    <blockquote id="AhWl">Enter key type [coldkey/hotkey] (coldkey): <strong>hotkey</strong></blockquote>
    <blockquote id="mY6k">Do you understand the risks? (yes/no): <strong>yes</strong></blockquote>
  </section>
  <p id="T3TS">Тут тоже сохраняем приватный ключ от <strong>Hotkey • </strong>В вашем EVM кошельке, импортируем эти два приватника (Coldkey и Hotkey) и берем токены в <a href="https://faucet.vana.org" target="_blank">кране </a></p>
  <p id="T3TS">• <strong>После, cнова вводим команды для создания токена:</strong></p>
  <pre id="vICU">/keygen.sh</pre>
  <p id="A8pR">Жмем Enter</p>
  <pre id="Okd1">cd</pre>
  <pre id="w483">git clone https://github.com/vana-com/vana-dlp-smart-contracts.git</pre>
  <pre id="AFC0">cd vana-dlp-smart-contracts</pre>
  <pre id="C8JA">yarn install</pre>
  <pre id="hHLm">cp .env.example .env</pre>
  <pre id="M7kb">nano .env</pre>
  <p id="nxdN">•<strong> В текстовом окне вводим свои данные:</strong><br />DEPLOYER_PRIVATE_KEY=0x... (Приватный ключ кошелька Coldkey) <br />OWNER_ADDRESS=0x... (Адрес кошелька Coldkey) <br />DLP_NAME=... (придумываем название контракта) <br />DLP_TOKEN_NAME=... (придумываем название токена и запоминаем) <br />DLP_TOKEN_SYMBOL=... (придумываем тикер токена и запонимаем)</p>
  <p id="nxdN">• Сохраняем и закрываем комбинацией Ctrl +X &gt; Y &gt; Enter</p>
  <pre id="XeA1">npx hardhat deploy --network satori --tags DLPDeploy</pre>
  <p id="Kw8F">• Вам выдадут <strong>DataLiquidityPoolToken</strong> и <strong>DataLiquidityPool, </strong>обязательно сохраняем их.</p>
  <pre data-lang="aspnet" id="7IZu">npx hardhat verify --network satori (СЮДА ВСТАВЛЯЕМ СВОЙ DataLiquidityPool)</pre>
  <pre id="8miK">npx hardhat verify --network satori (СЮДА ВСТАВЬТЕ ВАШ DataLiquidityPoolToken) (&quot;СЮДА НАЗВАНИЕ ТОКЕНА&quot;) (СЮДА ТИКЕР) (СЮДА АДРЕС COLDKEY)</pre>
  <p id="RwEx">• На сайте ( <a href="https://satori.vanascan.io/address/" target="_blank">https://satori.vanascan.io/address/</a>контракт_токена (DataLiquidityPool) ) </p>
  <p id="RwEx">• Заходим в &quot;Contract&quot; и в &quot;Write Proxy&quot; подключаем кошелек</p>
  <figure id="aFuZ" class="m_original">
    <img src="https://img1.teletype.in/files/4b/2d/4b2d0600-629f-4d93-acc4-9b94707e0392.png" width="307" />
  </figure>
  <p id="m32o">• В 24 пункте (updateFileRewardDelay) пишем 0, жмем Write и подписываем транзу</p>
  <p id="m32o">• В 4 пункте (addRewardsForContributors) пишем 1000000000000000000000000, жмем Write и снова подписываем транзакцию</p>
  <p id="m32o"><strong>P.S. на ошибки не обращаем внимания </strong></p>
  <p id="m32o">- <strong>Финал, регистрируем и запускаем валидатора: </strong><br />• Создаем <a href="https://platform.openai.com/settings/profile?tab=api-keys" target="_blank">OpenAI Api</a>, жмем &quot;<strong>Create new secret key&quot;,</strong> придумываем название и сохраняем себе куда нибудь.</p>
  <p id="m32o">• Вводим:</p>
  <pre id="crCz">cat /root/vana-dlp-chatgpt/public_key_base64.asc</pre>
  <p id="NdX5">• Копируем все что вам выдаст и сохраняем</p>
  <pre id="cLcg">cd</pre>
  <pre id="dpXW">cd vana-dlp-chatgpt</pre>
  <pre id="X4Fm">nano .env</pre>
  <p id="ssri">• В открывшимся окне с текстом удаляем все содержимое и вводим свои данные:</p>
  <section>
    <p id="R92y"># The network to use, currently Vana Satori testnet<br />OD_CHAIN_NETWORK=satori<br />OD_CHAIN_NETWORK_ENDPOINT=https://rpc.satori.vana.org</p>
    <p id="0F1v"># Optional: OpenAI API key for additional data quality check<br />OPENAI_API_KEY=&quot;<strong>Здесь ваш API из OpenAI</strong>&quot;</p>
    <p id="X2GS"># Optional: Your own DLP smart contract address once deployed to the network, useful for local testing</p>
    <p id="9JJj">DLP_SATORI_CONTRACT=&quot;<strong>Тут ваш DataLiquidityPool</strong>&quot;<br /># Optional: Your own DLP token contract address once deployed to the network, useful for local testing</p>
    <p id="lswO">DLP_TOKEN_SATORI_CONTRACT=&quot;<strong>Тут ваш DataLiquidityPoolToken</strong>&quot;</p>
    <p id="T9jM"># The private key for the DLP, follow &quot;Generate validator encryption keys&quot; section in the README<br />PRIVATE_FILE_ENCRYPTION_PUBLIC_KEY_BASE64=<strong>&quot;Тут вставляем то что вам выдали и вы ранее копировали на предыдушем пункте&quot;</strong></p>
  </section>
  <p id="18SL">• Сохраняем все и закрываем комбинацией CTRL + X &gt; Y &gt; Enter</p>
  <p id="18SL">• В Coldkey кошелек импортируем наш токен вставив <strong>DataLiquidityPoolToken</strong><br />Отправляем самому себе по 10 токенов на Coldkey и Hotkey</p>
  <pre id="RMBD">./vanacli dlp register_validator --stake_amount 10</pre>
  <p id="wffv">• Жмем Enter и вводим ваш пароль</p>
  <p id="wffv">• Далее, вписываем:</p>
  <p id="2Hnb"><code>poetry run python -m chatgpt.nodes.validator</code> </p>
  <p id="2Hnb">• Вводим дальше:</p>
  <pre id="oJAx">echo $(which poetry)</pre>
  <pre id="eLBu">sudo tee /etc/systemd/system/vana.service &lt;&lt; EOF 
[Unit] 
Description=Vana Validator Service 
After=network.target 

[Service] 
Type=simple 
User=root 
WorkingDirectory=/root/vana-dlp-chatgpt 
ExecStart=/root/.local/bin/poetry run python -m chatgpt.nodes.validator 
Restart=on-failure 
RestartSec=10 
Environment=PATH=/root/.local/bin:/usr/local/bin:/usr/bin:/bin:/root/vana-dlp-chatgpt/myenv/bin 
Environment=PYTHONPATH=/root/vana-dlp-chatgpt 

[Install] 
WantedBy=multi-user.target 
EOF</pre>
  <pre id="rQx3">sudo systemctl daemon-reload &amp;&amp; \</pre>
  <pre id="6ZMr">sudo systemctl enable vana.service &amp;&amp; \</pre>
  <pre id="hkcy">sudo systemctl start vana.service &amp;&amp; \</pre>
  <pre id="z21X">sudo systemctl status vana.service</pre>
  <p id="7bXD">Для проверки работы вводим команду:<br /><code>sudo journalctl -u vana.service -f</code></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@wingsnodeteam/spravka_terminal</guid><link>https://teletype.in/@wingsnodeteam/spravka_terminal?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam</link><comments>https://teletype.in/@wingsnodeteam/spravka_terminal?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=wingsnodeteam#comments</comments><dc:creator>wingsnodeteam</dc:creator><title>Справочник по терминалу. Терминал Linux</title><pubDate>Mon, 08 Jan 2024 12:43:00 GMT</pubDate><media:content medium="image" url="https://img1.teletype.in/files/4d/eb/4deb8148-f058-4647-9f99-ba682c19b641.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/36/85/36858d59-752c-467f-b2c4-650ced5e73e8.jpeg"></img>Linux — это работа в терминале. Процессу обучения этому навыку может помочь данная серия статей.]]></description><content:encoded><![CDATA[
  <p id="6qx5">Linux — это работа в терминале. Процессу обучения этому навыку может помочь данная серия статей.</p>
  <p id="rtkI" data-align="center"><strong>Введение</strong></p>
  <p id="bdGa">Содержание статей:</p>
  <ol id="igrJ">
    <li id="q6aZ">Горячие клавиши и переменные окружения.</li>
    <li id="ePYB">Группы команд: справочная информация, пакетный менеджер, файловая система.</li>
    <li id="rZiO">Группы команд: архивы, пользователи, текст.</li>
    <li id="7j8L">Группы команд: информация о системе, сеть, прочее.</li>
    <li id="4pOP">Операторы, запуск скриптов, а также описание скриптов нашей команды.</li>
  </ol>
  <p id="8gxK">⠀Вся информация применима к <code>Ubuntu 20.04</code>. Она может быть неприменима частично к другим версиям и неприменима совершенно к другим дистрибутивам.</p>
  <blockquote id="r50c">В статьях с командами описываются наиболее используемые команды. Описание команд упрощено, где это возможно, поскольку статьи рассчитаны в первую очередь на новичков. За подробным описанием и кучей технических терминов обращаться в поисковик.</blockquote>
  <p id="4pS5" data-align="center"><strong>Горячие клавиши</strong></p>
  <p id="wZ1I">⠀Горячие клавиши в Linux — это, как и везде, очень удобная вещь, экономящая время, силы и нервы. Желательно попробовать воспользоваться на практике всеми ими несколько десятков раз для первичного запоминания, а затем внедрять в свою жизнь наиболее полезные, попутно запоминая их надолго.</p>
  <h3 id="uIpK" data-align="center">Команды</h3>
  <p id="RDHl"><code>↑</code> — перейти к предыдущей команде в истории команд, можно выполнять несколько раз.</p>
  <p id="YL0r"><code>↓</code> — перейти к следующей команде в истории команд, можно выполнять несколько раз.</p>
  <p id="Ib3C"><code>←</code> — перейти влево на один символ.</p>
  <p id="ckJO"><code>Ctrl + ←</code> — перейти влево на одно слово.</p>
  <p id="f8NF"><code>→</code> — перейти вправо на один символ.</p>
  <p id="XQIj"><code>Ctrl + →</code> — перейти вправо на одно слово.</p>
  <p id="uRd6"><code>Home</code> / <code>Ctrl+A</code> — перейти к началу строки.</p>
  <p id="ikUf"><code>End</code> / <code>Ctrl+E</code>  — перейти к концу строки.</p>
  <p id="hJAc"><code>Ctrl+XX</code> — перемещение между началом строки и текущим положением курсора. Одно нажатие сочетания — в начало строки, второе — обратно.</p>
  <h3 id="xRaC" data-align="center">Процессы и экран</h3>
  <p id="qGhn"><code>Ctrl+L</code> — очистить экран, аналог команды <code>clean</code>.</p>
  <p id="Ghcz"><code>Ctrl+C</code> — прервать (убить) текущий процесс, запущенный в терминале на переднем плане.</p>
  <p id="gEQ4"><code>Ctrl+Z</code> — приостановить текущий процесс, отправив его в фоновый режим (для возобновления его работы служит команда <code>fg</code>).</p>
  <p id="LxYQ"><code>Ctrl+S</code> — остановить вывод на экран (например вывод лога).</p>
  <p id="yhA1"><code>Ctrl+Q</code> — возобновить вывод на экран.</p>
  <h3 id="xGyH" data-align="center">Прочее</h3>
  <p id="33QB"><code>Tab</code> — автоматически дописать название вводимого файла, директории, команды или переменной.</p>
  <pre id="HJH6">chmod +x scri → chmod +x script.sh
cd dire → cd directory
tou → touch
echo $vari → echo $variable</pre>
  <p id="j4Bt"><code>Ctrl+R</code> — поиск команды в истории выполнения.</p>
  <figure id="OICQ" class="m_original">
    <img src="https://img2.teletype.in/files/9b/55/9b551d14-e787-4376-b28f-f85e6be9e4b7.png" width="286" />
  </figure>
  <p id="gkZM"><code>Enter</code> / <code>Ctrl+O</code> — выполнить найденную команду.</p>
  <p id="DIU9"><code>Ctrl+C</code> / <code>Ctrl+G</code> — выйти из режима поиска без выполнения команды.</p>
  <h2 id="Hs0l" data-align="center">Переменные окружения</h2>
  <p id="bPNm" data-align="right"></p>
  <p id="rmGM">⠀Переменные окружения, переменные среды или просто переменные — это объекты, имеющие значение, т.е. содержащие в себе какую-то информацию, и использующиеся программами в процессе выполнения каких-либо действий.</p>
  <h3 id="8Rf1" data-align="center">Виды</h3>
  <p id="SdVZ" data-align="center"><strong>Локальные</strong></p>
  <p id="Xkij">⠀Определены только для текущей сессии — после её завершения такие переменные перестанут существовать. Создаются и удаляются при помощи команд.</p>
  <p id="8VYg" data-align="center"><strong>Пользовательские</strong></p>
  <p id="gQCo">⠀Определены для конкретного пользователя и загружаются при каждом его входе в систему. Такие переменные обычно хранятся в специальных файлах, находящихся в домашней директории пользователя:</p>
  <ul id="Ee6s">
    <li id="dj1k"><code>.bash_profile</code></li>
    <li id="zCdv"><code>.bash_login</code> (используется, если не существует <code>.bash_profile</code>)</li>
    <li id="b85E"><code>.profile</code> (используется, если не существует <code>.bash_login</code>)</li>
    <li id="fPBJ"><code>.bashrc</code></li>
  </ul>
  <p id="5B8x">⠀Для вступления в силу изменений, внесённых в данные файлы, необходимо выполнить команду</p>
  <pre data-lang="bash" id="RQW0">. путь_к_файлу
# Или
source путь_к_файлу
# Например
. $HOME/.bash_profile</pre>
  <p id="kkGq" data-align="center"><strong>Системные</strong></p>
  <p id="WCNK">⠀Определены для всех пользователей и загружаются при запуске системы. Такие переменные обычно хранятся в следующих местах:</p>
  <ul id="0gjz">
    <li id="OwWe"><code>/etc/environment</code></li>
    <li id="Ex86"><code>/etc/profile</code></li>
    <li id="fxAg"><code>/etc/profile.d/</code></li>
    <li id="onnY"><code>/etc/bash.bashrc</code></li>
  </ul>
  <h3 id="L1TY" data-align="center">Alias</h3>
  <p id="gpMu">⠀Alias — это ещё одно представление какой-либо команды. В роли команды может выступать любая команда или группа команд, в том числе вместе с опциями и аргументами.</p>
  <section>
    <p id="UMxv">⠀Alias не является переменной окружения, однако в связи со схожим принципом работы находится в данном разделе.</p>
  </section>
  <h3 id="mq3w" data-align="center">Создание</h3>
  <p id="VNYr" data-align="center"><strong>Локальные</strong></p>
  <ul id="DqgE">
    <li id="gbFD">Переменная</li>
  </ul>
  <pre data-lang="bash" id="WeWm">variable=&quot;value&quot;
# Или
export variable=&quot;value&quot;</pre>
  <ul id="RHWl">
    <li id="D3Ir">Alias</li>
  </ul>
  <pre data-lang="bash" id="XwKm">alias update=&quot;sudo apt update &amp;&amp; sudo apt upgrade&quot;</pre>
  <p id="vvlN" data-align="center"><strong>Пользовательские</strong></p>
  <p id="xcI2">сделать вручную:</p>
  <ul id="4uIN">
    <li id="WpZL">Переменная</li>
  </ul>
  <pre data-lang="bash" id="OOky">export variable=&quot;value&quot; &gt;&gt; $HOME/.bash_profile
. $HOME/.bash_profile</pre>
  <ul id="a1Zo">
    <li id="9TzI">Alias</li>
  </ul>
  <pre data-lang="bash" id="JxWn">alias update=&quot;sudo apt update &amp;&amp; sudo apt upgrade&quot; &gt;&gt; $HOME/.bash_profile
. $HOME/.bash_profile</pre>
  <h3 id="qA44" data-align="center">Использование</h3>
  <p id="Y3gR" data-align="center"><strong>Переменная</strong></p>
  <p id="FHvR">⠀Чаще всего переменные используются в качестве текста в различных командах. Для использования переменной необходимо поставить знак <code>$</code>, а затем название переменной. Зачастую название заключается в фигурные скобки для того, чтобы переменная не сливалась с последующим текстом</p>
  <pre data-lang="bash" id="WVrN">variable=&quot;value&quot;
echo &quot;$variable&quot;</pre>
  <pre id="PfXT">value</pre>
  <pre data-lang="bash" id="kwm3">umee_wallet_name=&quot;umee&quot;
umeed keys show &quot;$umee_wallet_name&quot;
# Аналогично
umeed keys show &quot;umee&quot;</pre>
  <pre data-lang="bash" id="aDt2">dir=&quot;dir1/dir2/&quot;
cd &quot;$HOME/${dir}my_dir&quot;</pre>
  <p id="SshN" data-align="center"><strong>Alias</strong></p>
  <p id="DY2Q">⠀Alias используется в терминале или скрипте как обычная команда</p>
  <pre data-lang="bash" id="jyJM">update</pre>
  <h3 id="hFc0" data-align="center">Удаление</h3>
  <p id="Y9bB" data-align="center"><strong>Локальные</strong></p>
  <ul id="GEZd">
    <li id="NGMD">Переменная</li>
  </ul>
  <pre data-lang="bash" id="XGZP">unset variable variable2 variable3</pre>
  <ul id="opSf">
    <li id="SlWP">Alias</li>
  </ul>
  <pre data-lang="bash" id="tuSc"># Определённые
unalias update alias2 alias3
# Все
unalias -a</pre>
  <h3 id="kCaK" data-align="center">Зарезервированные системой</h3>
  <p id="shdC">⠀Помимо задаваемых пользователем переменных существуют зарезервированные системой.</p>
  <p id="FNSO">⠀Наиболее полезные из них:</p>
  <ul id="KzAH">
    <li id="C7W9"><code>HOME</code> — домашняя директория текущего пользователя (перезаписывать не рекомендуется).</li>
  </ul>
  <pre data-lang="bash" id="XYEd">echo &quot;$HOME&quot;</pre>
  <pre id="exCC"># Возможные варианты
/root
/home/user
/home/user2</pre>
  <ul id="1R1o">
    <li id="ktJW"><code>PATH</code> — список директорий, разделенных двоеточиями, в которых командная оболочка ищет команды (например <code>mkdir</code>, <code>wget</code> и т. д.).</li>
  </ul>
  <pre data-lang="bash" id="wtOa">echo &quot;$PATH&quot;</pre>
  <pre id="MEO0"># Возможные варианты
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
/root/.local/share/solana/install/active_release/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin</pre>
  <ul id="qwHd">
    <li id="fzua"><code>HOSTNAME</code> — название текущего хоста.</li>
  </ul>
  <pre data-lang="bash" id="iNy6">echo &quot;$HOSTNAME&quot;</pre>
  <pre id="ZDXL"># Возможные варианты
vmi666999.contaboserver.net
n8531eb
Ubuntu-2004-focal-64-minimal</pre>
  <ul id="eKnP">
    <li id="c1iW"><code>PWD</code> — путь к текущей рабочей директории.</li>
  </ul>
  <pre data-lang="bash" id="4aGM">echo &quot;$PWD&quot;</pre>
  <pre id="J0dR"># Возможные варианты
/root
/root/dir1
/etc</pre>
  <ul id="Nxnj">
    <li id="ftxS"><code>RANDOM</code> — случайное целое число в диапазоне от 0 до 32767.</li>
  </ul>
  <pre data-lang="bash" id="pc6v">echo &quot;$RANDOM&quot;</pre>
  <pre id="EPML"># Возможные варианты
12463
45
32466</pre>
  <ul id="Qpyq">
    <li id="0t4E"><code>EUID</code> — числовой идентификатор текущего пользователя.</li>
  </ul>
  <pre data-lang="bash" id="tuwr">echo &quot;$EUID&quot;</pre>
  <pre id="bX22"># Возможные варианты
0
100
40</pre>
  <ul id="REV0">
    <li id="xf6w"><code>GROUPS</code> — список идентификаторов групп, к которым принадлежит текущий пользователь.</li>
  </ul>
  <pre data-lang="bash" id="6XUP">echo &quot;$GROUPS&quot;</pre>
  <pre id="tbD7"># Возможные варианты
0
100</pre>
  <h1 id="SUYt" data-align="center"><br /><br />Часть 2. Терминал Linux</h1>
  <p id="jvi1">⠀В данной статье рассматриваются следующие группы команд: справочная информация, пакетный менеджер, файловая система.</p>
  <h2 id="Mr4D" data-align="center">Справочная информация</h2>
  <p id="b7x0" data-align="right"></p>
  <p id="FNtt">⠀Самые лучшие способы узнать подробнее о команде:</p>
  <ol id="rTn2">
    <li id="k41o">Воспользоваться поисковиком (желательно Google на английском языке);</li>
    <li id="7a6k">Воспользоваться командами из данного раздела.</li>
  </ol>
  <h3 id="7ov2" data-align="center">--help / -h</h3>
  <p id="CjUY">⠀В подавляющем большинстве команд, при добавлении данной опции в конец, выводит страницу помощи, на которой может быть:</p>
  <ul id="7yWf">
    <li id="d9xY">Описание команды;</li>
    <li id="Rd26">Подкоманды и их описание;</li>
    <li id="m6JX">Опции и их описание;</li>
    <li id="3FDu">Примеры использования;</li>
    <li id="bElJ">Прочая полезная информация.</li>
  </ul>
  <p id="pRBB">⠀В некоторых случаях опция <code>-h</code> имеет аналогичный функционал.</p>
  <p id="pUhA"><u>Синтаксис</u></p>
  <pre data-lang="bash" id="huo2">команда --help
команда -h</pre>
  <p id="zRFv">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="o112">du --help
wget -h</pre>
  <h3 id="8rrL" data-align="center">man</h3>
  <p id="065H">⠀Отображает справочную страницу команды, если таковая была предусмотрена. Для выхода используется клавиша <code>q</code>.</p>
  <p id="hZFY">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="7tL3">man команда</pre>
  <p id="qbOr">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="Tos5"><code>-f</code> — выводит краткое описание команды.</li>
  </ul>
  <p id="L7pO">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="pYXq">man man
man echo
man wget

man -f wget</pre>
  <pre id="ANxC">wget (1)             - The non-interactive network downloader.</pre>
  <pre data-lang="bash" id="rTdQ">man -f printf</pre>
  <pre id="y2F4">printf (1)           - format and print data
printf (3)           - formatted output conversion</pre>
  <h3 id="54IH" data-align="center">help</h3>
  <p id="2lcE">⠀Редко встречающийся аналог опции <code>--help</code> / <code>-h</code> применимый в основном к командам, где эти опции не работают.</p>
  <p id="REUF">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="tGta">help команда</pre>
  <p id="ysCw">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="7d4W">help echo
help printf</pre>
  <hr />
  <h2 id="vmKQ" data-align="center">Пакетный менеджер</h2>
  <p id="tYGl">Пакетный менеджер APT — это набор утилит для установки, удаления, обновления, поиска пакетов, а также для управления репозиториями.</p>
  <section>
    <p id="7jIo">⠀<strong>Пакет</strong> — это какое-либо программное обеспечение, готовое к установке на компьютер с Linux. Он содержит собранную программу, информацию о том, какие требуется совершить действия для её установки, информацию о зависимостях, а также другие данные.</p>
    <p id="XqBW">⠀<strong>Репозиторий</strong> — это хранилище пакетов, принадлежащих одному дистрибутиву (например, <code>Ubuntu</code>), одной его версии (например, <code>20.04</code>), находящееся в открытом доступе и готовое к использованию.</p>
  </section>
  <p id="1c8k">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="s1LL">sudo apt команда пакеты опции</pre>
  <section>
    <p id="9s5A">⠀Также существует более старая утилита <code>apt-get</code>, которая менее удобная для конечного пользователя. <code>apt</code> включает в себя все основные функции <code>apt-get</code>, поэтому последняя понадобится в редких случаях, если вообще понадобится.</p>
  </section>
  <p id="whMv">⠀<u>Полезные глобальные опции</u>:</p>
  <ul id="hRB4">
    <li id="0JBi"><code>-y</code> — отвечать утвердительно на все возникающие вопросы;</li>
    <li id="fhlB"><code>-q</code> — выводить минимум информации при выполнении действий.</li>
  </ul>
  <h3 id="8owE" data-align="center">update</h3>
  <p id="kLmy">Обновляет информацию о пакетах (например версию), проходясь по спискам репозиториев, хранящимся в:</p>
  <ul id="cAIw">
    <li id="9AVA">Текстовом файле <code>/etc/apt/sources.list</code>;</li>
    <li id="WWxx">В текстовых файлах директории <code>/etc/apt/sources.list.d/</code>.</li>
  </ul>
  <p id="vyF1">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="42du">sudo apt update</pre>
  <h3 id="pDU8" data-align="center">upgrade</h3>
  <p id="MAms">⠀Обновляет пакеты до последней версии, полученной при выполнении команды <code>sudo apt update</code>.</p>
  <p id="noOm">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Hzbt">sudo apt upgrade</pre>
  <h3 id="nOpK" data-align="center">install</h3>
  <p id="vDSn">⠀Устанавливает пакеты.</p>
  <p id="CRsV">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="mi4U">sudo apt install curl -y
sudo apt install curl jq bc -y
# Определённая версия
sudo apt install jq=1.6-1 -y</pre>
  <h3 id="AB0W" data-align="center">remove</h3>
  <p id="NX1v">⠀Удаляет пакеты.</p>
  <p id="cb3l">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="kCyk">sudo apt remove curl -y
sudo apt remove curl jq bc -y</pre>
  <h3 id="qxAB" data-align="center">purge</h3>
  <p id="v5wc">⠀Удаляет пакеты вместе с настройками или настройки удалённых пакетов.</p>
  <p id="FEj1">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="gIJf">sudo apt purge curl -y
sudo apt purge curl jq bc -y</pre>
  <h3 id="A8sM" data-align="center">autoremove</h3>
  <p id="hnPY">⠀Удаляет неиспользуемые зависимости (дополнительные пакеты для устанавливаемого пакета)</p>
  <p id="RHWq">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="FRkg">sudo apt autoremove</pre>
  <h2 id="JfJJ" data-align="center">Файловая система</h2>
  <p id="L7zs" data-align="right"></p>
  <p id="8gOg">⠀Существует несколько видов путей к файлу или директории, используемых в командах:</p>
  <ul id="mzEJ">
    <li id="W8cU">Абсолютный — это путь от корня, описывающий весь путь к файлу или папке.</li>
  </ul>
  <pre data-lang="bash" id="OprM">/root/text.txt
/etc/systemd/system/
/home/user/Downloads/file</pre>
  <ul id="K4Zw">
    <li id="HseV">Относительный — это путь относительно директории, из которой выполняется команда.</li>
  </ul>
  <pre data-lang="bash" id="GjjN"># Находясь в /root/
text.txt
./text.txt
# Находясь в /home/user/
Downloads/file
./Downloads/file</pre>
  <ul id="Odhn">
    <li id="kvlZ">Относительно домашней папки текущего пользователя.</li>
  </ul>
  <pre data-lang="bash" id="KHXP">~/text.txt
$HOME/Downloads/file</pre>
  <ul id="Ed9I">
    <li id="CgAE">Исходя из шаблона.</li>
  </ul>
  <pre data-lang="bash" id="rJ8G">text*

# Подходящие под шаблон файлы
text
text.txt
text.html</pre>
  <pre data-lang="bash" id="Hvap">/root/f*.json

# Подходящие под шаблон файлы
/root/f.json
/root/f1.json
/root/file.json</pre>
  <pre data-lang="bash" id="ORlb">$HOME/Downloads/*

# Попадающие под шаблон файлы
$HOME/Downloads/file1
$HOME/Downloads/text.txt
$HOME/Downloads/archive.tar.gz</pre>
  <h3 id="mRe6" data-align="center">pwd</h3>
  <p id="Z5g3">⠀Выводит путь к текущей рабочей директории.</p>
  <p id="TfW0">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="B524">pwd</pre>
  <h3 id="Wa30" data-align="center">cd</h3>
  <p id="VVS2">⠀Изменяет текущую рабочую директорию.</p>
  <p id="GVX0">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="YPoH">cd путь_к_директории</pre>
  <p id="8pzj">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="I9J9"># Домашняя директория
cd
# Конкретная директория
cd $HOME/dir
cd /etc/systemd/system/
# Директория уровнем выше
cd ..
# Директория, находящаяся в директории уровнем выше
cd ../dir
# Директория, находящаяся в директории 2 уровнями выше
cd ../../dir</pre>
  <h3 id="uSwq" data-align="center">ls</h3>
  <p id="18FM">⠀Выводит список файлов и папок в указанной директории.</p>
  <p id="s0su">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="VK3N">ls опции путь_к_директории</pre>
  <p id="mLU7">⠀<u>Полезные опции</u>:</p>
  <ul id="TTiK">
    <li id="9ESA"><code>-a</code> — вывести скрытые файлы;</li>
    <li id="r9Yt"><code>-l</code> — вывести подробную информацию о файлах.</li>
  </ul>
  <p id="FYV1">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="M58V">ls</pre>
  <figure id="cjBr" class="m_original">
    <img src="https://img1.teletype.in/files/0f/58/0f580b55-675e-4243-8172-38328c6c537c.png" width="413" />
  </figure>
  <pre data-lang="bash" id="HDJd">ls dir1
ls $HOME
ls -a $HOME</pre>
  <figure id="qJT4" class="m_original">
    <img src="https://img1.teletype.in/files/0c/0f/0c0f3beb-740f-4a24-916a-f20b1f76c038.png" width="1494" />
  </figure>
  <pre data-lang="bash" id="7EjT">ls -al</pre>
  <figure id="PKLH" class="m_original">
    <img src="https://img2.teletype.in/files/dc/a3/dca3cd58-eada-4c1c-9575-9394aaeb53fc.png" width="718" />
  </figure>
  <h3 id="Hjqk" data-align="center">du</h3>
  <p id="yxMZ">⠀Отображает размер файлов и директорий.</p>
  <p id="L0ae">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Se76">du опции путь_к_директории</pre>
  <p id="vt5K">⠀<u>Полезные опции</u>:</p>
  <ul id="TTiK">
    <li id="fAML"><code>-h</code> — вывести размер в привычных человеку единицах измерения (КБ, МБ, ГБ);</li>
    <li id="0TNa"><code>-a</code> — вывести размер как для папок, так и для файлов;</li>
    <li id="qOD0"><code>-d</code> — максимальная глубина отображения файлов в директориях. Например:</li>
    <ul id="y7ni">
      <li id="uwi6"><code>0</code> — размер указанной директории;</li>
      <li id="6b2t"><code>1</code> — размер указанной директории и всех файлов и папок внутри неё.</li>
    </ul>
  </ul>
  <p id="CKtD">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="RuPI"># Указанная папка
du -had 0 &#x60;pwd&#x60; 2&gt;/dev/null</pre>
  <figure id="l1em" class="m_original">
    <img src="https://img2.teletype.in/files/56/74/567412ee-d3dd-4664-b0b3-73080227cf04.png" width="667" />
  </figure>
  <pre data-lang="bash" id="Toyy">du -had 0 $HOME/dir 2&gt;/dev/null
# Все файлы и папки в директории в порядке возрастания размера
du -had 1 &#x60;pwd&#x60; 2&gt;/dev/null | sort -h</pre>
  <figure id="Jo6B" class="m_custom">
    <img src="https://img4.teletype.in/files/b0/06/b006b440-9b18-4954-a0b8-df6dfbb9f95f.png" width="693" />
  </figure>
  <h3 id="hzsx" data-align="center">find</h3>
  <p id="ehEW">⠀Ищет файлы и директории на основе условий.</p>
  <p id="QwMK">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="3jpI">find путь_к_директории опции </pre>
  <p id="uWbn">⠀<u>Полезные опции</u>:</p>
  <ul id="TxO6">
    <li id="1wms"><code>-name</code> — поиск по имени с учётом регистра;</li>
    <li id="NSxk"><code>-iname</code> — поиск по имени без учёта регистра;</li>
    <li id="n8GB"><code>-type</code> — тип искомого объекта:</li>
    <ul id="4jcc">
      <li id="glMo"><code>f</code> — файл;</li>
      <li id="KU1P"><code>d</code> — директория;</li>
      <li id="wkbI"><code>l</code> — ссылка.</li>
    </ul>
    <li id="SS5m"><code>-size</code> — поиск по размеру объекта;</li>
    <li id="lgyC"><code>-maxdepth</code> — максимальная глубина поиска;</li>
    <li id="rQB8"><code>-depth</code> — начать поиск из самой глубокой директории;</li>
    <li id="I7q9"><code>-user</code> — поиск по владельцу;</li>
    <li id="YUv6"><code>-group</code> — поиск по группе.</li>
  </ul>
  <p id="8KYQ">⠀Можно использовать <u>логические операторы</u>:</p>
  <ul id="xLrr">
    <li id="ZN29"><code>-a</code> — И;</li>
    <li id="7nNZ"><code>-o</code> — ИЛИ;</li>
    <li id="RA8u"><code>!</code> — НЕ.</li>
  </ul>
  <p id="4f2P">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="VTkg">find . -name &quot;file&quot;</pre>
  <pre id="BFZY"># Подходящие варианты
file</pre>
  <pre data-lang="bash" id="LYEG">find $HOME -name &quot;file*&quot;</pre>
  <pre id="ZrSt"># Подходящие варианты
file
file.txt
file32434324324.txt</pre>
  <pre data-lang="bash" id="TBJ5">find $HOME -iname &quot;file*&quot;
find $HOME -iname &quot;FiLe*&quot;</pre>
  <pre id="yh4J"># Подходящие варианты
file
FILE.txt
FiLe32434324324.txt</pre>
  <pre data-lang="bash" id="L9Rk">find / -size 20M</pre>
  <pre id="xKtj"># Подходящие варианты
Файлы размером ровно 20 Мб</pre>
  <pre data-lang="bash" id="mcUN">find $HOME -size +20M</pre>
  <pre id="JFl0"># Подходящие варианты
Файлы размером 20+ Мб</pre>
  <pre data-lang="bash" id="wTv0">find $HOME -size +20M -size -30M</pre>
  <pre id="SiiR"># Подходящие варианты
Файлы размером 20-30 Мб</pre>
  <pre data-lang="bash" id="pOMz">find $HOME -iname &quot;file*&quot; -a -iname &quot;*.txt&quot;</pre>
  <pre id="4iwC"># Подходящие варианты
File.txt
filE_1.txt
fiLe32434324324.txt</pre>
  <pre data-lang="bash" id="i5BU">find $HOME -iname &quot;scr*&quot; -o -iname &quot;*.sh&quot;</pre>
  <pre id="Mgdv"># Подходящие варианты
scr
script
script.sh
install.sh
Launcher.sh</pre>
  <pre data-lang="bash" id="A8y2">find $HOME ! -iname &quot;*.txt&quot;</pre>
  <pre id="dHpY"># Подходящие варианты
Все файлы не имеющие расширение .txt</pre>
  <h3 id="LsLn" data-align="center">mkdir</h3>
  <p id="xZRc">⠀Создаёт директорию. В одной команде можно создать несколько папок. При существовании создаваемой директории или отсутствии какой-то в пути выдаёт ошибку.</p>
  <p id="ELji">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="HKsi">mkdir опции путь_к_директори_1 путь_к_директори_2 ...</pre>
  <p id="EZx9">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="MRlS"><code>-p</code> — создать все указанные в пути папки и не выдавать ошибку при существовании какой-либо из них.</li>
  </ul>
  <p id="c0J1">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Demz">mkdir dir1
mkdir $HOME/dir1 dir2 ~/dir3
mkdir -p $HOME/dir1/dir2/dir3
mkdir -p $HOME/dir1/dir2 $HOME/dir3/dir4/dir5</pre>
  <h3 id="ma77" data-align="center">touch</h3>
  <p id="jfVB">⠀В основном используется для создания пустых файлов.</p>
  <p id="yJCR">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="aMOF">touch путь_к_файлу</pre>
  <p id="ayBA">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Znjl">touch text.txt
touch $HOME/.bash_profile</pre>
  <h3 id="J5eY" data-align="center">wget</h3>
  <p id="4NXm">⠀Скачивает файлы, веб-страниц и другие ресурсы из интернета. Обычно установлена по умолчанию. По умолчанию скачивает файл с названием, заданным на конечном сервере.</p>
  <p id="3gCl">⠀<u>Может требоваться установка</u></p>
  <pre data-lang="bash" id="jzW7">sudo apt install wget -y</pre>
  <p id="T3E0">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="ThOA">wget опции URL</pre>
  <p id="N8WQ">⠀<u>Полезные опции</u>:</p>
  <ul id="4LEl">
    <li id="eArQ"><code>-q</code> — не выводить информацию о процессе скачивания;</li>
    <li id="QIYJ"><code>-O</code> — файл, в который будут сохранены полученные данные (указать <code>-O-</code> для вывода на экран);</li>
    <li id="X92b"><code>-t</code> — количество попыток подключения к URL (по умолчанию бесконечно);</li>
    <li id="YJyp"><code>-T</code> — время ожидания подключения к URL;</li>
    <li id="WYrC"><code>--post-data</code> — JSON словарь с данными для POST запроса;</li>
    <li id="KXVa"><code>-b</code> — загрузить файл в фоновом режиме.</li>
  </ul>
  <p id="FmXm">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="aRLU">wget https://raw.githubusercontent.com/SecorD0/utils/main/logo.sh</pre>
  <figure id="KzjJ" class="m_original">
    <img src="https://img2.teletype.in/files/9f/8e/9f8e767c-0031-4400-b99f-8ba07908bfdb.png" width="1239" />
  </figure>
  <pre data-lang="bash" id="AKtw">wget -qO l.sh  https://raw.githubusercontent.com/SecorD0/utils/main/logo.sh</pre>
  <figure id="SO3L" class="m_original">
    <img src="https://img3.teletype.in/files/6b/48/6b485e36-384d-4a57-9f85-dde3d5d6d26e.png" width="1017" />
  </figure>
  <h3 id="Yxjv" data-align="center">curl</h3>
  <p id="yGc0">⠀Аналог <code>wget</code> с бо́льшим функционалом. По умолчанию выводит содержимое страницы на экран.</p>
  <p id="s3G5">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="Wn0v">sudo apt install curl -y</pre>
  <p id="nbqm">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="XHZU">curl опции URL</pre>
  <p id="TzeE">⠀<u>Полезные опции</u>:</p>
  <ul id="4LEl">
    <li id="Xgg9"><code>-s</code> — не выводить информацию о процессе скачивания;</li>
    <li id="zm1h"><code>-o</code> — файл, в который будут сохранены полученные данные;</li>
    <li id="B74J"><code>-O</code> — сохранить данные в файл с именем страницы или файла на конечном сервере;</li>
    <li id="L4gn"><code>-d</code> — данные для POST запроса;</li>
    <li id="lsXm"><code>-f</code> — не выводить сообщения об ошибках;</li>
    <li id="QsVf"><code>-H</code> — заголовки для передачи на сервер;</li>
    <li id="Xgut"><code>-x</code> — использовать прокси.</li>
  </ul>
  <p id="FBi8">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="x0em">curl https://raw.githubusercontent.com/SecorD0/utils/main/logo.sh</pre>
  <pre data-lang="bash" id="H4ib">curl -O https://raw.githubusercontent.com/SecorD0/utils/main/logo.sh</pre>
  <figure id="Czho" class="m_original">
    <img src="https://img3.teletype.in/files/28/4b/284b32f7-b221-4dc0-8040-775b64fc7141.png" width="954" />
  </figure>
  <pre data-lang="bash" id="pIYe">curl -so l.sh https://raw.githubusercontent.com/SecorD0/utils/main/logo.sh</pre>
  <figure id="lCcZ" class="m_original">
    <img src="https://img4.teletype.in/files/70/53/70538c34-e2b8-45bf-bf68-84712ce57c22.png" width="1008" />
  </figure>
  <h3 id="IcQI" data-align="center">cat</h3>
  <p id="wdSY">⠀Выводит содержимое файла в терминал. При несуществующем файле выдаёт ошибку.</p>
  <p id="f0zF">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="kWqv">cat путь_к_файлу</pre>
  <p id="8nq3">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="pUko">cat text.txt
cat $HOME/.bash_profile</pre>
  <h3 id="6Xxc" data-align="center">tail</h3>
  <p id="cr0S">⠀Выводит содержимое файла начиная с конца (по умолчанию последние 10 строк).</p>
  <p id="acXo">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="1OAw">tail опции файл</pre>
  <p id="AJKh">⠀<u>Полезные опции</u>:</p>
  <ul id="TTiK">
    <li id="BJsH"><code>-n</code> — вывести последнее указанное число строк;</li>
    <li id="cVmL"><code>-f</code> — обновлять информацию по мере появления новых строк в файле.</li>
  </ul>
  <p id="BzGD">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="VLUd">tail $HOME/dir/log.txt
tail -fn 100 $HOME/solana/solana.log</pre>
  <h3 id="PWch" data-align="center">chmod</h3>
  <p id="kHLn">⠀Изменяет права доступа для файлов и директорий.</p>
  <p id="Pd52">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="VFz0">chmod разрешения путь_1 путь_2 ...</pre>
  <p id="hu0O">⠀Права можно записать <u>трёхзначным числом</u>.</p>
  <pre data-lang="bash" id="b12E">chmod 000 путь_1 путь_2 ...</pre>
  <p id="2GqY">⠀Где:</p>
  <ul id="igxZ">
    <li id="n1da">Первая цифра — права для владельца файла или директории;</li>
    <li id="u72B">Вторая — права для группы владельца;</li>
    <li id="ueB5">Третья — права для всех остальных.</li>
  </ul>
  <p id="P89O">⠀Разрешения:</p>
  <ul id="pnNu">
    <li id="fTUp"><code>0</code> — разрешения отсутствуют;</li>
    <li id="3R3V"><code>1</code> — выполнение;</li>
    <li id="7NYi"><code>2</code> — изменение;</li>
    <li id="b24b"><code>3</code> — выполнение и изменение;</li>
    <li id="7fvG"><code>4</code> — чтение;</li>
    <li id="Tx2j"><code>5</code> — выполнение и чтение;</li>
    <li id="XkJc"><code>6</code> — изменение и чтение;</li>
    <li id="SZkL"><code>7</code> — выполнение, изменение и чтение.</li>
  </ul>
  <p id="JajK">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="9BGT">chmod 700 $HOME/file1 $HOME/file2
chmod 110 script.sh
chmod 664 $HOME/text.txt</pre>
  <p id="rfXB">⠀Также права можно записать <u>символами</u>.</p>
  <pre data-lang="bash" id="Qnt5">chmod aaa путь_1 путь_2 ...</pre>
  <p id="qeYe">⠀Символьная часть состоит из трёх групп:</p>
  <ul id="RTNZ">
    <li id="AApD">Категория пользователей:</li>
    <ul id="OS1n">
      <li id="XyvH"><code>u</code> — владелец файла;</li>
      <li id="u6bl"><code>g</code> — группа владельца файла;</li>
      <li id="ucdl"><code>o</code> — все остальные;</li>
      <li id="YPSx"><code>a</code> — абсолютно все (по умолчанию, если не указать какую-либо другую).</li>
    </ul>
    <li id="kukH">Действие:</li>
    <ul id="vOK7">
      <li id="MVZz"><code>+</code> — добавить к текущим правам доступа указанные разрешения;</li>
      <li id="SJJF"><code>-</code> — удалить из текущих прав доступа указанные разрешения;</li>
      <li id="FEij"><code>=</code> — установить полностью новые разрешения.</li>
    </ul>
    <li id="zY5W">Права:</li>
    <ul id="ByMJ">
      <li id="NfRC"><code>x</code> — выполнение;</li>
      <li id="3dav"><code>w</code> — изменение;</li>
      <li id="lDDi"><code>r</code> — чтение.</li>
    </ul>
  </ul>
  <p id="877y">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="2ktn"># Владелец может выполнять, изменять и читать
chmod u=xwr $HOME/file
# Владелец и группа могут выполнять
chmod ug=x $HOME/script.sh
# Владелец и группа, вдобавок к имеющимся правам, могут выполнять,
# остальные больше не могут читать
chmod ug+x,o-r text.txt
# Любой, вдобавок к имеющимся правам, может выполнять
chmod +x script.sh
chmod a+x script.sh</pre>
  <h3 id="z1dr" data-align="center">chown</h3>
  <p id="3Gu8">⠀Изменяет владельца и/или группу указанных файлов и директорий.</p>
  <p id="WD6R">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="U9gx">chown опции пользователь:группа путь</pre>
  <p id="FLLR">⠀<u>Полезные опции</u>:</p>
  <ul id="qyj4">
    <li id="opF1"><code>-R</code> — изменить владельца для всех подкаталогов.</li>
  </ul>
  <p id="duVp">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Ebbe">chown bob $HOME/dir/text.txt
chown bob:family $HOME/dir/text.txt
chown -R bob $HOME/dir</pre>
  <h3 id="mpeQ" data-align="center">ln</h3>
  <p id="R895">⠀Создаёт ссылку (указатель) на файл или директорию (далее объект), схожую с ярлыком в Windows.</p>
  <p id="K79N">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="RKCF">ln опции путь_к_объекту путь_к_ярлыку</pre>
  <p id="KGpq">⠀Ссылка может быть символической (мягкой):</p>
  <ul id="tIbT">
    <li id="xjcj">Указывает на объект;</li>
    <li id="LBNU">Содержит в себе только путь к объекту;</li>
    <li id="LVnj">Удаление, переименование, перемещение объекта не обновляет автоматически ссылку;</li>
    <li id="JyQs">Может указывать на несуществующий объект;</li>
    <li id="I1Cb">Имеет собственные права доступа, которые не распространяются на объект;</li>
    <li id="jpGY">Изменение прав доступа у объекта не обновляет права доступа у ссылки.</li>
  </ul>
  <p id="qPds">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Aezl">ln -s $HOME/my_service.service /etc/systemd/system/
ln -s text.txt link_to_text
ln -s $HOME/programs/site/ $HOME/my_site</pre>
  <p id="5zD1">⠀Также ссылка может быть жёсткой:</p>
  <ul id="SGIs">
    <li id="AoVk">Указывает на файл и является своего рода ещё одним его именем;</li>
    <li id="Lkru">Не может указывать на директорию;</li>
    <li id="61NB">Содержит в себе ту же информацию, что и файл;</li>
    <li id="miqI">Не может указывать на несуществующий файл;</li>
    <li id="tB50">Имеет те же права доступа, что и файл.</li>
  </ul>
  <p id="rJn0">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="85cu">ln text.txt link_to_text</pre>
  <h3 id="g4JS" data-align="center">which</h3>
  <p id="D6XO">⠀Осуществляет поиск исполняемого файла указанной команды в пути оболочки (переменная <code>$PATH</code>) и отображает его при нахождении.</p>
  <p id="ni5v">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="XGgZ">which команда</pre>
  <p id="2Ykj">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="7WEY">which wget</pre>
  <pre id="anRs">/usr/bin/wget</pre>
  <pre data-lang="bash" id="RV3T">which solana</pre>
  <pre id="OIfx">/root/.local/share/solana/install/active_release/bin/solana</pre>
  <h3 id="WCR4" data-align="center">cp</h3>
  <p id="Vb5a">⠀Копирует файлы и директории. Можно скопировать несколько файлов и/или директорий в одну конечную. Перезаписывает существующий объект.</p>
  <p id="Jou4">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="UBmr">cp опции путь_к_объекту_1 путь_к_объекту_2 ... путь_куда</pre>
  <p id="G0Yo">⠀<u>Полезные опции</u>:</p>
  <ul id="4LEl">
    <li id="l3ci"><code>-r</code> — копировать директорию;</li>
    <li id="HUSI"><code>-b</code> — сделать резервную копию при существовании объекта (резервная копия имеет название <code>имя_файла~</code>).</li>
  </ul>
  <p id="6tFb">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="OyTo">cp text.txt text_1.txt
cp $HOME/text.txt $HOME/dir1/
cp -r $HOME/dir1 $HOME/dir2
cp -r $HOME/text.txt $HOME/dir1 $HOME/text_1.txt $HOME/target</pre>
  <h3 id="kjSE" data-align="center">mv</h3>
  <p id="FGLB">⠀Перемещает файлы и директории. В частности используется для переименования объектов. Можно переместить несколько файлов и/или директорий в одну конечную. Перезаписывает существующий объект.</p>
  <p id="cLun">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="bdqT">mv опции путь_к_объекту_1 путь_к_объекту_2 ... путь_куда</pre>
  <p id="VYGF">⠀<u>Полезные опции</u>:</p>
  <ul id="qyj4">
    <li id="aZ96"><code>-b</code> — сделать резервную копию при существовании объекта.</li>
  </ul>
  <p id="5Vwl">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="9N9t">mv $HOME/text.txt $HOME/dir1/dir2/text_1.txt
mv $HOME/text.txt $HOME/dir
mv $HOME/text_1.txt $HOME/dir $HOME/text_2.txt $HOME/target
# Переименовать объект
mv text.txt text_1.txt
mv $HOME/dir1 $HOME/dir2</pre>
  <h3 id="1w2j" data-align="center">rm</h3>
  <p id="WIF9">⠀Удаляет файлы (в т. ч. ссылки) и директории. Без опций удаляются только файлы.</p>
  <p id="JtmB">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="i69D">rm опции путь_1 путь_2 ...</pre>
  <p id="9WkE">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="drdY"><code>-r</code> — удалить директорию;</li>
    <li id="jnHM"><code>-f</code> — не выдавать ошибку при несуществующем объекте.</li>
  </ul>
  <p id="5gS3">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="CTKj">rm file
rm file script.sh
rm -rf file script.sh $HOME/dir</pre>
  <h1 id="awxj" data-align="center">Часть 3. Терминал Linux</h1>
  <p id="lYJb">⠀В данной статье рассматриваются следующие группы команд: архивы, пользователи, текст.</p>
  <hr />
  <h2 id="Tszv" data-align="center">Архивы</h2>
  <p id="dYN1" data-align="right"></p>
  <h3 id="FW8a" data-align="center">tar</h3>
  <p id="SrPO">⠀Создаёт и распаковывает архивы.</p>
  <p id="eXCP">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="rzin">tar опции -f архив объекты_для_архивации</pre>
  <p id="yHsc">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="m7rn"><code>-f</code> — применить действия к архиву с указанным названием;</li>
    <li id="2Cbp"><code>-x</code> — распаковать архив;</li>
    <li id="0M8n"><code>-v</code> — вывести подробную информацию о процессе;</li>
    <li id="PR5y"><code>-t</code> — показать содержимое архива;</li>
    <li id="4e92"><code>-С</code> — выполнить действия в указанной директории;</li>
    <li id="0c46"><code>-c</code> — создать архив;</li>
    <li id="ECCs"><code>-z</code> — выполнить сжатие с помощью gzip;</li>
    <li id="b3k8"><code>-r</code> — присоединить файлы к концу архива.</li>
  </ul>
  <p id="TZjj">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="CHl8"># Создать архив, сжатый с помощью gzip
tar -czvf archive.tar.gz file1 $HOME/file2 file3
# Посмотреть содержимое архива
tar -tf archive.tar.gz
# Распаковать архив
tar -xvf archive.tar.gz</pre>
  <h3 id="Yfrm" data-align="center">zip / unzip</h3>
  <p id="JxhD">⠀<code>zip</code> создаёт, <code>unzip</code> распаковывает архивы. Совместима с Windows.</p>
  <p id="cUvT">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="ofGR">sudo apt install zip unzip -y</pre>
  <p id="Vqkm">⠀<u>Синтаксис</u> <code>zip</code></p>
  <pre data-lang="bash" id="tXve">zip опции архив объекты_для_архивации</pre>
  <p id="IJX5">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="yXXe"><code>-r</code> — сжать все файлы и подпапки.</li>
  </ul>
  <p id="8kAQ">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="cMI2"># Создать архив, содержащий файлы
zip archive.zip file1 $HOME/file2 file3
# Содержащий директорию dir
zip -r archive.zip $HOME/dir/
# Содержащий все файлы папки dir
zip -r archive.zip $HOME/dir/*</pre>
  <p id="ujio">⠀<u>Синтаксис</u> <code>unzip</code></p>
  <pre data-lang="bash" id="5Ct2">unzip опции архив</pre>
  <p id="yc6q">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="kdMp"><code>-d</code> — распаковать архив в указанную директорию;</li>
    <li id="P6wY"><code>-l</code> — показать содержимое архива.</li>
  </ul>
  <p id="rja9">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="2mCl"># Показать содержимое архива
unzip -l archive.zip
# Распаковать архив в текущую директорию
unzip archive.zip
# В папку dir
unzip -d $HOME/dir archive.zip</pre>
  <hr />
  <h2 id="0mAv" data-align="center">Пользователи</h2>
  <p id="Nlsg" data-align="right"></p>
  <h3 id="gTIH" data-align="center">whoami</h3>
  <p id="4QAj">⠀Выводит имя текущего пользователя.</p>
  <p id="IUDJ">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="eNaX">whoami</pre>
  <h3 id="IY8Z" data-align="center">useradd</h3>
  <p id="5Z7V">⠀Добавляет пользователя.</p>
  <p id="odY5">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="XGhE">sudo useradd опции имя_пользователя</pre>
  <p id="6zLR">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="B8bc"><code>-s</code> — командная оболочка (по умолчанию <code>/bin/sh</code>);</li>
    <li id="Z5uY"><code>-d</code> — путь к домашней директории (по умолчанию <code>/home/имя_пользователя</code><strong>);</strong></li>
    <li id="TioY"><code>-m</code> — создать домашнюю директорию, указанную в опции <code>-d</code>;</li>
    <li id="n0P0"><code>-g</code> — имя или идентификатор (GID) основной группы пользователя (по умолчанию <code>users, 100</code>);</li>
    <li id="haBv"><code>-G</code> — сделать пользователя участником указанных групп;</li>
    <li id="m0Br"><code>-u</code> — числовой идентификатор пользователя (UID);</li>
    <li id="jVWq"><code>-o</code> — разрешить создание пользователя с уже имеющимся UID (используется с опцией <code>-u</code>).</li>
  </ul>
  <p id="gRCw">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="BoDB"># Обычный пользователь
sudo useradd -m -s /bin/bash user
sudo passwd user
# Пользователь, состоящий в группах adm и games
sudo useradd -m -G adm,games -s /bin/bash user
sudo passwd user
# Пользователь с root правами
sudo useradd -m -G sudo -s /bin/bash user
sudo passwd user</pre>
  <h3 id="GiXD" data-align="center">passwd</h3>
  <p id="EMLq">⠀Изменяет пароль пользователя.</p>
  <p id="Q9al">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="XX4l">passwd
sudo passwd имя_пользователя</pre>
  <p id="X78y">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="MLJm"># Текущий пользователь
passwd
# Другой пользователь (только из-под root)
sudo passwd user</pre>
  <h3 id="evuQ" data-align="center">usermod</h3>
  <p id="vTE0">⠀Изменяет параметры пользователя.</p>
  <p id="dISg">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="yQfL">sudo usermod опции имя_пользователя</pre>
  <p id="5wbK">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="T44P"><code>-s</code> — командная оболочка;</li>
    <li id="CXDr"><code>-d</code> — путь к домашней директории;</li>
    <li id="1lr6"><code>-m</code> — переместить содержимое домашней директории в новое место, указанное в опции <code>-d</code>;</li>
    <li id="vhPs"><code>-g</code> — имя или идентификатор (GID) основной группы пользователя;</li>
    <li id="enfX"><code>-a</code> — добавить пользователя в дополнительные группы;</li>
    <li id="546o"><code>-G</code> — добавить (с опцией <code>-a</code>) или изменить дополнительные группы;</li>
    <li id="o4PE"><code>-u</code> — числовой идентификатор пользователя (UID);</li>
    <li id="St9e"><code>-o</code> — разрешить изменение UID пользователя на уже имеющееся (используется с опцией <code>-u</code>).</li>
  </ul>
  <p id="oa9J">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="qHC0">sudo usermod -g adm user
sudo usermod -s /bin/bash -a -G games user
sudo usermod -o -u 0 -g 0 -s /bin/bash user</pre>
  <h3 id="EjRr" data-align="center">userdel</h3>
  <p id="j2HY">⠀Удаляет пользователя.</p>
  <p id="mlQ3">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Waho">sudo userdel опции имя_пользователя</pre>
  <p id="yrff">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="e3ym"><code>-r</code> — удалить домашнюю директорию и файлы пользователя;</li>
    <li id="pL7e"><code>-f</code> — удалить пользователя, даже если он залогинен.</li>
  </ul>
  <p id="Akvy">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="CjUR">sudo userdel user
sudo userdel -rf user</pre>
  <hr />
  <h2 id="s5px" data-align="center">Текст</h2>
  <p id="nwvv" data-align="right"></p>
  <h3 id="ahiX" data-align="center">nano</h3>
  <p id="66Nz">⠀Текстовый редактор.</p>
  <p id="YSP1">⠀<u>Может требоваться установка</u></p>
  <pre data-lang="bash" id="uBDq">sudo apt install nano -y</pre>
  <p id="GoaJ">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="AC3h">nano опции путь_к_файлу</pre>
  <p id="hllG">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="hn2l"><code>-m</code> — включить поддержку мыши (в MobaXterm становится проблематично копировать и перестаёт работать вставка на ПКМ);</li>
    <li id="hXZK"><code>-P</code> — запоминать и восстанавливать позицию курсора во время последнего редактирования;</li>
    <li id="Ww4J"><code>-B</code> — создать резервную копию файла при сохранении (резервная копия имеет название <code>имя_файла~</code>).</li>
  </ul>
  <p id="dzHW">⠀Для удобства управления, помимо поддержки мыши, присутствуют горячие клавиши.</p>
  <p id="3jIS">⠀<u>Горячие клавиши</u>:</p>
  <ul id="RLZo">
    <li id="XvLS"><code>Alt+U</code> — отменить изменения;</li>
    <li id="zxih"><code>Alt+E</code> — повторить изменения;</li>
    <li id="MKgp"><code>Ctrl+K</code> — удалить строку, на которой находится курсор;</li>
    <li id="VoOC"><code>Ctrl+C</code> — показать (снизу по центру редактора) на какой строке и символе находится курсор;</li>
    <li id="HNgM"><code>Ctrl+W</code> — найти в файле:</li>
    <ul id="SPKC">
      <li id="mrO7">Ввести текст;</li>
      <li id="ZRHW">Нажать <code>Enter</code>;</li>
      <li id="y4Hc"><code>Alt+W</code> — перейти к следующему совпадению найденного текста;</li>
      <li id="xzGs"><code>Ctrl+C</code> — прекратить поиск.</li>
    </ul>
    <li id="0di2"><code>Ctrl+\</code> — поиск и замена текста:</li>
    <ul id="QAyg">
      <li id="R4Uc">Ввести текст для поиска;</li>
      <li id="XIAX">Нажать <code>Enter</code>;</li>
      <li id="Ai7Q">Ввести текст, на который заменить найденный;</li>
      <li id="Dgcu">Нажать <code>Enter</code>:</li>
      <ul id="APwt">
        <li id="YxJZ">Просматривать каждое совпадение и выбирать, делать ли замену — <code>Y</code> (Yes) или <code>N</code> (No);</li>
        <li id="LF5m">Нажать <code>A</code> для замены всего.</li>
      </ul>
    </ul>
    <li id="VpWk"><code>Ctrl+S</code> — сохранить изменения;</li>
    <li id="cPr6"><code>Ctrl+O</code> — сохранить как (необходимо ввести название);</li>
    <li id="VKYA"><code>Ctrl+X</code> — сохранить как (пропускается, если уже сохранено) и выйти.</li>
  </ul>
  <p id="IJOi">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="r1PI"># Открытие файла без поддержки мыши
nano -P $HOME/text.txt

# Открытие файла с поддержкой мыши
nano -mP $HOME/text.txt
# При сохранении сделать резервную копию файла
nano -mBP $HOME/text.txt</pre>
  <h3 id="aZ43" data-align="center">grep</h3>
  <p id="lzQj">⠀Находит строки на основе фрагмента, шаблона или регулярного выражения.</p>
  <p id="JcMg">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="NBE9">grep опции поисковый_запрос путь_к_файлу
grep опции поисковый_запрос &lt;&lt;&lt; &quot;текст&quot;
команда | grep опции поисковый_запрос</pre>
  <p id="mxN7">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="oeKl"><code>-c</code> — вывести количество найденных строк;</li>
    <li id="eYu2"><code>-r</code> — искать внутри всех файлов указанной директории;</li>
    <li id="OSST"><code>-q</code> — не выводить найденную строку (зачастую используется в скриптах);</li>
    <li id="7k7Q"><code>-B</code> — показать вхождение и указанное количество строк до него;</li>
    <li id="Jq6E"><code>-A</code> — показать вхождение и указанное количество строк после него;</li>
    <li id="mTj4"><code>-C</code> — показать вхождение и указанное количество строк до и после него;</li>
    <li id="Qhx0"><code>-i</code> — не учитывать регистр.</li>
  </ul>
  <p id="bpB2">⠀<u>Пример</u> работы с файлом</p>
  <pre data-lang="bash" id="HhUj">grep user $HOME/file.txt</pre>
  <pre id="LqSD"># Подходящие варианты
user
user_1
_user_
Current user</pre>
  <pre data-lang="bash" id="J0Sp">grep -i user $HOME/file.txt</pre>
  <pre id="Sjzy"># Подходящие варианты
User
uSEr_1
_uSer_
Current USER</pre>
  <pre data-lang="bash" id="jQEm">grep &quot;Hello wo&quot; $HOME/file.txt</pre>
  <pre id="P3UL"># Подходящие варианты
Hello wo
Hello world
Hello wod42334</pre>
  <p id="e8oV">⠀<u>Пример</u> работы с текстом</p>
  <pre data-lang="bash" id="k2TT">grep user &lt;&lt;&lt; &quot;Current user&quot;</pre>
  <pre id="sTBe"># Вывод
Current user</pre>
  <pre data-lang="bash" id="W9uH">text=&quot;root
user:user
user_1
bob&quot;
grep user &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="eR7V"># Вывод
user:user
user_1</pre>
  <p id="4s6X">⠀<u>Пример</u> работы с командой</p>
  <pre data-lang="bash" id="9Kzp">lscpu | grep &quot;Model name&quot;</pre>
  <pre id="Yp7X"># Вывод
Model name:                      AMD Ryzen 9 5950X 16-Core Processor</pre>
  <p id="ePZG">⠀Прочие <u>примеры</u></p>
  <pre data-lang="bash" id="ly5I"># Вывести вхождение, 10 строк до и 5 после него
grep -B10 -A5 user $HOME/file.txt

# Вывести вхождение, а также 5 строк до и после него
grep -C5 user $HOME/file.txt
# Посчитать количество найденных строк
text=&quot;root
user:user
user_1
bob&quot;
grep -c user &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="stKf"># Вывод
2</pre>
  <pre data-lang="bash" id="ufQm"># Поиск во всех файлах директории dir
grep -r user $HOME/dir</pre>
  <pre id="lNgp"># Вывод
/root/dir/users: user
/root/dir/text.txt: Current user</pre>
  <pre data-lang="bash" id="BdCz"># Найти подстроку
grep -oPm1 &quot;(?&lt;=^variable = \&quot;)([^%]+)(?=\&quot;$)&quot; &lt;&lt;&lt; &#x27;variable = &quot;value&quot;&#x27;</pre>
  <pre id="ohSr"># Вывод
value</pre>
  <h3 id="QZa8" data-align="center">jq</h3>
  <p id="Cmvl">⠀Утилита для работы с JSON.</p>
  <p id="qPmp">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="wTAY">sudo apt install jq -y</pre>
  <p id="iLBc">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="OsSu">jq опции поисковый_запрос путь_к_файлу
jq опции поисковый_запрос &lt;&lt;&lt; &quot;текст&quot;
команда | jq опции поисковый_запрос</pre>
  <p id="WqH5">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="cdmM"><code>-r</code> — не выводить скобки у текстовых значений.</li>
  </ul>
  <p id="WeBu">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="jeud">json=&#x27;{&quot;username&quot;:&quot;Bob&quot;,&quot;balance&quot;:102034.1,&quot;friends&quot;:2,&quot;property&quot;:[&quot;car&quot;,&quot;house&quot;,&quot;farm&quot;]}&#x27;
jq &lt;&lt;&lt; &quot;$json&quot;
jq &quot;.&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="MqJK">{
  &quot;username&quot;: &quot;Bob&quot;,
  &quot;balance&quot;: 102034.1,
  &quot;friends&quot;: 2,
  &quot;property&quot;: [
    &quot;car&quot;,
    &quot;house&quot;,
    &quot;farm&quot;
  ]
}</pre>
  <pre data-lang="bash" id="N3Ch">jq &quot;.username&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="ngMB">&quot;Bob&quot;</pre>
  <pre data-lang="bash" id="i1X6">jq -r &quot;.username&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="JHvc">Bob</pre>
  <pre data-lang="bash" id="oQLU">jq &quot;.balance&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="iZDd">102034.1</pre>
  <pre data-lang="bash" id="izrr">jq &quot;.friends, .balance&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="IZjs">2
102034.1</pre>
  <pre data-lang="bash" id="oVGt">jq &quot;[.friends, .balance]&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="mliv">[
  2,
  102034.1
]</pre>
  <pre data-lang="bash" id="xDy3">jq &quot;.property&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="T5TK">[
  &quot;car&quot;,
  &quot;house&quot;,
  &quot;farm&quot;
]</pre>
  <pre data-lang="bash" id="Ktzr">jq &quot;.property | length&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="xYQT">3</pre>
  <pre data-lang="bash" id="iU9r">jq -r &quot;.property[0]&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="XD1Q">car</pre>
  <pre data-lang="bash" id="00vJ">jq -r &quot;.property[-1]&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="A6Pl">farm</pre>
  <pre data-lang="bash" id="leUB">jq &quot;. | keys&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="8jA3">[
  &quot;balance&quot;,
  &quot;friends&quot;,
  &quot;property&quot;,
  &quot;username&quot;
]</pre>
  <pre data-lang="bash" id="tISU">jq &quot;. | to_entries[]&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="w9ap">{
  &quot;key&quot;: &quot;username&quot;,
  &quot;value&quot;: &quot;Bob&quot;
}
{
  &quot;key&quot;: &quot;balance&quot;,
  &quot;value&quot;: 102034.1
}
{
  &quot;key&quot;: &quot;friends&quot;,
  &quot;value&quot;: 2
}
{
  &quot;key&quot;: &quot;property&quot;,
  &quot;value&quot;: [
    &quot;car&quot;,
    &quot;house&quot;,
    &quot;farm&quot;
  ]
}</pre>
  <h3 id="hCTv" data-align="center">sed</h3>
  <p id="akIG">⠀Заменяет, удаляет, вставляет и ищет фрагменты текста. По умолчанию обрабатывает одну команду и выводит результат выполнения на экран.</p>
  <p id="dzQt">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="DHqy">sed опции -e &quot;команда_1; команда_2; ...&quot; путь_к_файлу
sed опции -e &quot;команда_1; команда_2; ...&quot; &lt;&lt;&lt; &quot;текст&quot;
команда | sed опции -e &quot;команда_1; команда_2; ...&quot;</pre>
  <p id="tcTB">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="ZQxp"><code>-e</code> — выполнить несколько команд.</li>
    <li id="u9Lw"><code>-i</code> — внести изменения в файл. При указании каких-либо символов после опции создаёт резервную копию с названием файла плюс указанные символы, например, команда с опцией <code>-i~</code> создаст резервную копию с названием <code>file_name~</code>.</li>
  </ul>
  <p id="h85o">⠀<u>Полезные команды</u>:</p>
  <ul id="WqoO">
    <li id="F1Me"><code>s%фрагмент_1%фрагмент_2%</code> — заменить первый в строке <code>фрагмент_1</code> во всех строках, где он встретился, на <code>фрагмент_2</code>;</li>
    <li id="AWtH"><code>s%фрагмент_1%фрагмент_2%g</code> — заменить все <code>фрагмент_1</code> в строке во всех строках, где он встретился, на <code>фрагмент_2</code>;</li>
    <li id="WujO"><code>0,/фрагмент/{/фрагмент/d;}</code> — удалить первую строку, в которой найден <code>фрагмент</code>;</li>
    <li id="N8jE"><code>/фрагмент/d</code> — удалить все строки, в которых найден <code>фрагмент</code>.</li>
  </ul>
  <p id="ocLE">⠀<u>Специальные символы</u>:</p>
  <ul id="tx77">
    <li id="LV8d"><code>^</code> — начало строки;</li>
    <li id="oMqh"><code>$</code> — конец строки;</li>
    <li id="QtSG"><code>.</code> — один любой символ;</li>
    <li id="WbFN"><code>.*</code> — любое количество любых символов.</li>
  </ul>
  <p id="NqPV">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="MOKo">echo &quot;Hello, world!&quot; | sed &quot;s%Hello%Bye%&quot;</pre>
  <pre id="Dxan">Bye, world!</pre>
  <pre data-lang="bash" id="2Eoy">echo &quot;Hello, world! Bye, world!&quot; | sed &quot;s%world%WORLD%&quot;</pre>
  <pre id="vl8g">Hello, WORLD! Bye, world!</pre>
  <pre data-lang="bash" id="0Kvr">echo &quot;Hello, world! Bye, world!&quot; | sed &quot;s%world%WORLD%g&quot;</pre>
  <pre id="f4Bq">Hello, WORLD! Bye, WORLD!</pre>
  <pre data-lang="bash" id="L3Eo">echo &#x27;delay = 10
  variable = &quot;text&quot;
delay = &quot;124124&quot;&#x27; &gt; config.toml
sed -e &quot;s%delay%d%; s%variable%v%&quot; config.toml
cat config.toml</pre>
  <pre id="onwE">d = 10
  v = &quot;text&quot;
d = &quot;124124&quot;

delay = 10
  variable = &quot;text&quot;
delay = &quot;124124&quot;</pre>
  <pre data-lang="bash" id="dT5l">sed -i -e &quot;s%delay%d%; s%variable%v%&quot; config.toml
cat config.toml</pre>
  <pre id="eU4X">d = 10
  v = &quot;text&quot;
d = &quot;124124&quot;</pre>
  <pre data-lang="bash" id="dygU">echo &#x27;delay = 10
  variable = &quot;text&quot;
delay = &quot;124124&quot;&#x27; &gt; config.toml
sed -i -e &quot;s%variable *=.*%variable = \&quot;new text\&quot;%&quot; config.toml
cat config.toml</pre>
  <pre id="Jc2C">delay = 10
  variable = &quot;new text&quot;
delay = &quot;124124&quot;</pre>
  <pre data-lang="bash" id="E25y">sed -i -e &quot;0,/delay/{/delay/d;}&quot; config.toml
cat config.toml</pre>
  <pre id="Ukxn">  variable = &quot;text&quot;
delay = &quot;124124&quot;</pre>
  <pre data-lang="bash" id="p69s">echo &#x27;delay = 10
  variable = &quot;text&quot;
delay = &quot;124124&quot;&#x27; &gt; config.toml
sed -i -e &quot;/delay/d&quot; config.toml
cat config.toml</pre>
  <pre id="3Nz4">  variable = &quot;new text&quot;</pre>
  <h3 id="GALq" data-align="center">awk</h3>
  <p id="rhWF">⠀Построчно разбирает и обрабатывает текст по заданным шаблонам.</p>
  <p id="ksi9">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Qlh4">awk опции команды путь_к_файлу
awk опции команды &lt;&lt;&lt; &quot;текст&quot;
команда | awk опции команды</pre>
  <p id="1NSw">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="Yeiy"><code>-F</code> — символ-разделитель для полей (по умолчанию пробел).</li>
  </ul>
  <p id="G6lg">⠀<u>Зарезервированные переменные</u>:</p>
  <ul id="fcSJ">
    <li id="GDys"><code>NF</code> — количество столбцов в тексте;</li>
    <li id="Fqbw"><code>NR</code> — номер текущей строки.</li>
  </ul>
  <p id="cuKE">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="zlDj">table=&quot;Name Price Number
Tea 1.5 20
Bread 0.5 44
Cucumber 0.4 17
Potato 0.2 44&quot;
# Названия продуктов
awk &#x27;{print $1}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="lll8">Name
Tea
Bread
Cucumber
Potato</pre>
  <pre data-lang="bash" id="lsrQ"># Колисчество продуктов
awk &#x27;{print $3}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="2QnR">Number
20
44
17
44</pre>
  <pre data-lang="bash" id="4Kvr"># Названия и цены
awk &#x27;{print $1 &quot;\t&quot; $2}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="OF7z">Name    Price
Tea     1.5
Bread   0.5
Cucumber        0.4
Potato  0.2</pre>
  <pre data-lang="bash" id="3Zs8"># Продукты, количество которых равно 44
awk &#x27;$3 == 44 { print $0 }&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="JG4l">Bread 0.5 44
Potato 0.2 44</pre>
  <pre data-lang="bash" id="MCZP"># Продукты, количество которых равно 44 и цена больше 0.4
awk &#x27;$3 == 44 &amp;&amp; $2 &gt; 0.4 {print $0}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="GzGk">Bread 0.5 44</pre>
  <pre data-lang="bash" id="RxpB"># 4-ая строка
awk &#x27;NR == 4 {print $0}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="aBMN">Cucumber 0.4 17</pre>
  <pre data-lang="bash" id="pd4r"># 2-ой столбец с конца
awk &#x27;{print $(NF-1)}&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="Owqe">Price
1.5
0.5
0.4
0.2</pre>
  <pre data-lang="bash" id="B9ck"># Печать при помощи printf
awk &#x27;{ printf &quot;%3d %s\n&quot;, NR, $0 }&#x27; &lt;&lt;&lt; &quot;$table&quot;</pre>
  <pre id="Qct5">  1 Name Price Number
  2 Tea 1.5 20
  3 Bread 0.5 44
  4 Cucumber 0.4 17
  5 Potato 0.2 44</pre>
  <h3 id="VaJR" data-align="center">tr</h3>
  <p id="pnc9">⠀Заменяет, замещает или удаляет символы.</p>
  <p id="2TY8">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="jB5W">tr опции &quot;набор_1&quot; &quot;набор_2&quot; &lt;&lt;&lt; &quot;текст&quot;
команда | tr опции &quot;набор_1&quot; &quot;набор_2&quot;</pre>
  <p id="VONh">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="zts2"><code>-d</code> — удалить из текста знаки из <code>набор_2</code>;</li>
    <li id="uzNt"><code>-s</code> — заменить последовательность одинаковых символов из <code>набор_1</code> одним символом, а затем на символ из <code>набор_2</code>, если он указан.</li>
  </ul>
  <p id="uk3I">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="6ft2">echo &quot;Hello, world!&quot; | tr &quot;el&quot; &quot;ab&quot;</pre>
  <pre id="R3V5">Habbo, worbd!</pre>
  <pre data-lang="bash" id="oKVo">echo -e &quot;Hello,\nworld!&quot; | tr -d &quot;\n&quot;</pre>
  <pre id="v5bI">Hello,world!...~#</pre>
  <pre data-lang="bash" id="O75x">echo -e &quot;He\rllo,\nwor\rld!&quot; | tr -d &quot;\r\n&quot;</pre>
  <pre id="H0ub">Hello,world!...~#</pre>
  <pre data-lang="bash" id="S7mC"># Удаление дублирующихся пробелов
echo &quot;Hello,                world!&quot; | tr -s &quot; &quot;
echo &quot;Hello,                world!&quot; | tr -s &quot;[:space:]&quot;</pre>
  <pre id="I39a">Hello, world!</pre>
  <pre data-lang="bash" id="XzWq">echo &quot;Hello,                world!&quot; | tr -s &quot; &quot; &quot;_&quot;</pre>
  <pre id="QZXB">Hello,_world!</pre>
  <h3 id="l0st" data-align="center">sort</h3>
  <p id="DmIR">⠀Сортирует строки.</p>
  <p id="SG1a">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="n9Ip">sort опции путь_к_файлу
sort опции &lt;&lt;&lt; &quot;текст&quot;
команда | sort опции</pre>
  <p id="9d42">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="oFUI"><code>-n</code> — сортировать числа;</li>
    <li id="wXrA"><code>-r</code> — сортировать в обратном направлении;</li>
    <li id="D933"><code>-u</code> — пропускать повторяющиеся строки.</li>
  </ul>
  <p id="eLI6">⠀Логика сортировки строк (начиная с первого символа):</p>
  <ul id="11oX">
    <li id="Hhd8">Специальные символы (<code>!</code>, <code>&quot;</code>, <code>#</code> и т. п.) в порядке возрастания ASCII кода;</li>
    <li id="JQ1T">Цифры в порядке возрастания;</li>
    <li id="Hl3i">Буквы в алфавитном порядке:</li>
    <ul id="4rQQ">
      <li id="FF9U">В нижнем регистре;</li>
      <li id="kTGq">В верхнем регистре.</li>
    </ul>
    <li id="zJuX">Аналогичная логика для следующего символа.</li>
  </ul>
  <p id="bGVJ">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="tStw">text=&quot;market
Basket
FIRE
fire
Yacht
appropriation
basket&quot;
numbers=&quot;
9
120
1
0
354235
10&quot;
sort &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="89Ld">appropriation
basket
Basket
fire
FIRE
market
Yacht</pre>
  <pre data-lang="bash" id="nzZX">sort -r &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="pMPw">Yacht
market
FIRE
fire
Basket
basket
appropriation</pre>
  <pre data-lang="bash" id="nTNM">sort &lt;&lt;&lt; &quot;$numbers&quot;</pre>
  <pre id="tJOW">0
1
10
120
354235
9</pre>
  <pre data-lang="bash" id="Qv85">sort -n &lt;&lt;&lt; &quot;$numbers&quot;</pre>
  <pre id="gbOa">0
1
9
10
120
354235</pre>
  <pre data-lang="bash" id="hUVp">sort &lt;&lt;&lt; &quot;${text}${numbers}&quot;</pre>
  <pre id="l8N5">0
1
10
120
354235
9
appropriation
basket
Basket
fire
FIRE
market
Yacht</pre>
  <h3 id="55Hd" data-align="center">wc</h3>
  <p id="kVMQ">⠀Подсчитывает число строк, слов, символов и байтов в указанных файлах.</p>
  <p id="rsG4">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Dw6A">wc опции путь_к_файлу_1 путь_к_файлу_2 ...
wc опции &lt;&lt;&lt; &quot;текст&quot;
команда | wc опции</pre>
  <p id="melG">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="wLbN"><code>-l</code> — вывести количество строк (исходя из количества переводов строк <code>\n</code>);</li>
    <li id="bXtZ"><code>-w</code> — вывести количество слов;</li>
    <li id="me3b"><code>-m</code> — вывести количество символов (включая новую строку).</li>
  </ul>
  <p id="tJGa">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="T7LM">text=&quot;market
Basket
FIRE
fire
Yacht
appropriation
basket
&quot;
wc &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="bM50"> 8  7 52</pre>
  <pre data-lang="bash" id="EAZH">wc -l &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="XaUt">8</pre>
  <pre data-lang="bash" id="groJ">wc -w &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="3DI7">7</pre>
  <pre data-lang="bash" id="4TUi">wc -m &lt;&lt;&lt; &quot;$text&quot;</pre>
  <pre id="6iL2">52</pre>
  <h1 id="bwS5" data-align="center">Часть 4. Терминал Linux</h1>
  <h2 id="mGDv" data-align="center">Информация о системе</h2>
  <p id="fFk5" data-align="right"></p>
  <h3 id="Jynm" data-align="center">bash &lt;(wget -qO- -o /dev/null yabs.sh)</h3>
  <p id="v9qO">⠀Скрипт отображает основную информацию о системе и проверяет скорость чтения и записи дисков, пропускную способность интернет соединения и производительность системы. По умолчанию тестируется всё.</p>
  <p id="4OVI">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Rp6w">bash &lt;(wget -qO- yabs.sh) опции</pre>
  <p id="SiAc">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="KYea"><code>-f</code> / <code>-d</code> — пропустить тестирование дисков;</li>
    <li id="yCk6"><code>-i</code> — пропустить тестирование скорости интернета;</li>
    <li id="fGPG"><code>-g</code> — пропустить тестирование производительности системы;</li>
    <li id="MSDx"><code>-4</code> — при тестировании производительности использовать Geekbench 4, вместо Geekbench 5.</li>
  </ul>
  <p id="AaOk">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="1V7S"># Полное тестирование
bash &lt;(wget -qO- -o /dev/null yabs.sh)</pre>
  <figure id="aVLQ" class="m_original">
    <img src="https://img3.teletype.in/files/26/3c/263c5dff-bb81-4f8e-96d4-6cdf2c33a50e.png" width="628" />
  </figure>
  <pre data-lang="bash" id="A9bN"># Протестировать только диски
bash &lt;(wget -qO- -o /dev/null yabs.sh) -ig
# Протестировать только скорость интернета
bash &lt;(wget -qO- -o /dev/null yabs.sh) -dg
# Протестировать только производительность системы
bash &lt;(wget -qO- -o /dev/null yabs.sh) -di</pre>
  <h3 id="rvqy" data-align="center">df</h3>
  <p id="7rMP">⠀Отображает информацию об использовании дискового пространства.</p>
  <p id="vvmt">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="wloA">df опции устройство</pre>
  <p id="bGFs">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="97cz"><code>-h</code> — вывести размер в привычных человеку единицах измерения (КБ, МБ, ГБ).</li>
  </ul>
  <p id="7aHD">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="5pX6">df -h</pre>
  <figure id="xGM6" class="m_original">
    <img src="https://img1.teletype.in/files/0b/6e/0b6ea2b4-1d8b-4751-a2e3-9085b4811e87.png" width="444" />
  </figure>
  <h3 id="4xN3" data-align="center">nvme</h3>
  <p id="IFIB">⠀Позволяет контролировать и управлять NVMe накопителями. Наиболее полезная и часто используемая функция — чтение SMART (состояние накопителя).</p>
  <p id="ykj4">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="H7a7">sudo apt install nvme-cli -y</pre>
  <p id="iiEf">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="zdPO">nvme команда диск </pre>
  <p id="8QeA">⠀<u>Полезные команды</u>:</p>
  <ul id="K99z">
    <li id="VXUo"><code>list</code> — список NVMe дисков;</li>
    <li id="T7wi"><code>smart-log</code> — прочитать SMART указанного диска.</li>
  </ul>
  <p id="lGjC">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="773J"># Список NVMe дисков
nvme list</pre>
  <figure id="Qir2" class="m_original">
    <img src="https://img4.teletype.in/files/34/03/34032ae2-9fe3-47de-93ac-487341217142.png" width="1136" />
  </figure>
  <pre data-lang="bash" id="0MFE"># Чтение SMART жирнала 1-ого диска
nvme smart-log /dev/nvme0</pre>
  <figure id="EY8T" class="m_original">
    <img src="https://img4.teletype.in/files/74/95/74956046-d2bd-48a0-83b7-58f470803f7e.png" width="433" />
  </figure>
  <h3 id="vGbj" data-align="center">free</h3>
  <p id="jGqc">⠀Отображает информацию об использовании оперативной памяти.</p>
  <p id="5t7u">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="i7vV">df опции</pre>
  <p id="ws2A">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="DFy4"><code>-h</code> — вывести размер в привычных человеку единицах измерения (КБ, МБ, ГБ).</li>
  </ul>
  <p id="Uiz3">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="79d8">free -h</pre>
  <figure id="F0ZZ" class="m_original">
    <img src="https://img2.teletype.in/files/1f/4e/1f4e7bba-9716-4ae7-a157-525ae97ed3fd.png" width="641" />
  </figure>
  <h3 id="aMmL" data-align="center">lscpu</h3>
  <p id="vszV">⠀Отображает информацию о характеристиках процессора.</p>
  <p id="xhgC">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="dyq2">lscpu</pre>
  <figure id="SUhQ" class="m_original">
    <img src="https://img2.teletype.in/files/94/68/94686fa6-9aa5-4c9b-825e-31a5c96ba9f5.png" width="976" />
  </figure>
  <h3 id="Q7gq" data-align="center">cat /etc/*-release</h3>
  <p id="usSP">⠀Отображает информацию об операционной системе.</p>
  <p id="9IBP">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Gmmb">cat /etc/*-release</pre>
  <pre id="5gTB">DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION=&quot;Ubuntu 20.04.3 LTS&quot;
NAME=&quot;Ubuntu&quot;
VERSION=&quot;20.04.3 LTS (Focal Fossa)&quot;
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME=&quot;Ubuntu 20.04.3 LTS&quot;
VERSION_ID=&quot;20.04&quot;
HOME_URL=&quot;https://www.ubuntu.com/&quot;
SUPPORT_URL=&quot;https://help.ubuntu.com/&quot;
BUG_REPORT_URL=&quot;https://bugs.launchpad.net/ubuntu/&quot;
PRIVACY_POLICY_URL=&quot;https://www.ubuntu.com/legal/terms-and-policies/privacy-policy&quot;
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal</pre>
  <h3 id="3XuQ" data-align="center">htop</h3>
  <p id="qljl">⠀Отображает информацию о потреблении системных ресурсов и позволяет управлять процессами.</p>
  <p id="exeb">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="EPIy">sudo apt install htop -y</pre>
  <p id="WtHY">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="JB4p">htop</pre>
  <figure id="ncUD" class="m_original">
    <img src="https://img3.teletype.in/files/ae/a4/aea4ef15-add9-4729-b8c0-f7c936bfde3d.png" width="2246" />
  </figure>
  <p id="UZnD">⠀В верхней части отображена информация о системе:</p>
  <ul id="bmiZ">
    <li id="StBn"><code>1-…</code> — нагрузка на каждый поток процессора:</li>
    <ul id="eP7U">
      <li id="u4iL">Синий цвет — процессы низкого приоритета;</li>
      <li id="tyU6">Зелёный — процессы обычных пользователей;</li>
      <li id="f0t5">Красный — системные процессы;</li>
      <li id="KsR9">Голубой — процессы виртуализации.</li>
    </ul>
    <li id="sYEI"><code>Mem</code> — общий и используемый объём оперативной памяти:</li>
    <ul id="YnB8">
      <li id="2Jpd">Зелёный цвет — используемая память;</li>
      <li id="HChT">Синий — память, используемая буферами;</li>
      <li id="mGgl">Жёлтый — память, выделенная под кэш.</li>
    </ul>
    <li id="WE0f"><code>Swp</code> — размер файла подкачки и используемый объём;</li>
    <li id="nGWF"><code>Tasks</code> — статистика по процессам;</li>
    <li id="nhGs"><code>Load average</code> — средние значения нагрузки за последние 1, 5, 15 минут;</li>
    <li id="LnQe"><code>Uptime</code> — время работы системы с момента запуска.</li>
  </ul>
  <figure id="cUtz" class="m_original">
    <img src="https://img3.teletype.in/files/ab/fc/abfc2d41-4bf9-40c4-b3b0-7feaa2db8d0c.png" width="2246" />
  </figure>
  <p id="mQfI">⠀В нижней части отображена информация о каждом процессе:</p>
  <ul id="bmiZ">
    <li id="DxKR"><code>PID</code> — ID процесса;</li>
    <li id="kzUi"><code>USER</code> — владелец процесса;</li>
    <li id="64wL"><code>PRI</code> — внутренний приоритет ядра;</li>
    <li id="blBo"><code>NI</code> — NICE приоритет от 19 (низкий приоритет) до -20 (высокий приоритет);</li>
    <li id="8ojz"><code>VIRT</code> — потребляемая виртуальную память;</li>
    <li id="u4Fo"><code>RES</code> — потребляемая физическая память;</li>
    <li id="C9Tv"><code>SHR</code> — потребляемая общая память;</li>
    <li id="mZ7s"><code>S</code> — состояние:</li>
    <ul id="iY6T">
      <li id="Kl6I">S — спящий;</li>
      <li id="hc9t">R — запущенный.</li>
    </ul>
    <li id="RETW"><code>CPU%</code> — сумма потреблений каждого потока процессора (максимально <code>100*количество_потоков</code>);</li>
    <li id="iXsf"><code>MEM%</code> — потребляемый в текущий момент процент оперативной памяти;</li>
    <li id="B747"><code>TIME+</code> — время работы процесса с момента запуска;</li>
    <li id="5zwD"><code>Command</code> — команда, запустившая процесс.</li>
  </ul>
  <figure id="4Re3" class="m_original">
    <img src="https://img3.teletype.in/files/26/6e/266ebbfc-be94-41e6-8e6c-2b40480617e9.png" width="2246" />
  </figure>
  <p id="1jLK">⠀Для удобства управления утилитой и процессами, помимо поддержки мыши, присутствуют горячие клавиши.</p>
  <p id="LcHQ">⠀<u>Горячие клавиши</u>:</p>
  <ul id="RLZo">
    <li id="6J5A"><code>Ctrl+C</code> / <code>q</code> / <code>F10</code> — закрыть htop;</li>
    <li id="HRDE"><code>H</code> (<code>Shift+h)</code> — скрыть потоки процессов, оставить только сами процессы;</li>
    <li id="qGvX"><code>↑</code> / <code>↓</code> — перемещение по списку процессов;</li>
    <li id="4dfB"><code>F9</code> / <code>k</code> — завершить процесс, на котором находится курсор, или помеченные процессы (необходимо выбрать сигнал выхода, обычно <code>2 SIGINT</code>);</li>
    <li id="oUst"><code>F4</code> / <code>\</code> — сортировка процессов (скрыть все, кроме найденных);</li>
    <li id="oMNn"><code>F3</code> / <code>/</code> — поиск процессов (подсвечивать по очереди найденные);</li>
    <li id="Qlar"><code>F6</code> — выбрать по какому столбцу сортировать;</li>
    <li id="jgYc"><code>P</code> — сортировка по задействованию процессора;</li>
    <li id="IjIB"><code>M</code> — сортировка по задействованию оперативной памяти;</li>
    <li id="tOfH"><code>I</code> — инвертировать сортировку;</li>
    <li id="uRFo"><code>u</code> — сортировать процессы исходя из выбранного пользователя;</li>
    <li id="PAHF"><code>Пробел</code> — пометить/снять пометку с процесса;</li>
    <li id="bjZn"><code>U</code> (<code>Shift+u)</code> — снять все пометки с процессов.</li>
  </ul>
  <h3 id="EJqr" data-align="center">uptime</h3>
  <p id="uHmD">⠀Отображает:</p>
  <ul id="1471">
    <li id="fxnE">Текущее время;</li>
    <li id="9ttW">Время работы системы с момента запуска;</li>
    <li id="amu4">Количество залогиненных пользователей;</li>
    <li id="95hW">Средние значения нагрузки за последние 1, 5, 15 минут.</li>
  </ul>
  <p id="lJtP">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="OByw">uptime</pre>
  <pre id="Qm3W"> 00:00:00 up 91 days,  9:24,  1 user,  load average: 0.13, 0.23, 0.36</pre>
  <p id="MnuR"></p>
  <h2 id="fOrC" data-align="center">Сеть</h2>
  <p id="k7NV" data-align="right"></p>
  <h3 id="JlD4" data-align="center">ss</h3>
  <p id="lQJ8">⠀Отображает статистику сетевых подключений.</p>
  <p id="vw7j">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="dS5u">ss опции
ss опции | grep шаблон</pre>
  <p id="Ncjv">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="VkvD"><code>-p</code> — вывести информацию о процессах, использующих сокеты (порты);</li>
    <li id="CT4Y"><code>-n</code> — использовать цифровые представления сокетов вместо имён служб (например <code>22</code> вместо <code>ssh</code>);</li>
    <li id="tanZ"><code>-t</code> — TCP сокеты;</li>
    <li id="o5e1"><code>-u</code> — UPD сокеты;</li>
    <li id="nFXw"><code>-l</code> — показать только прослушиваемые сокеты.</li>
  </ul>
  <p id="XfMK">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="9w8a"># Открытые порты
ss -tulpn</pre>
  <figure id="uoWT" class="m_original">
    <img src="https://img4.teletype.in/files/bc/82/bc828c6c-8033-45c0-870e-c81c3d0aa9d3.png" width="2093" />
  </figure>
  <pre data-lang="bash" id="I6zP"># Найти среди открытых портов начинающиеся на 3303
ss -tulpn | grep :3303</pre>
  <p id="BAH2" data-align="center"><strong>iptables, iptables-persistent</strong></p>
  <p id="YdX5">⠀<code>iptables</code>управляет сетевым трафиком. <code>iptables-persistent</code> сохраняет правила (по умолчанию правила сбрасываются при перезагрузке сервера).</p>
  <p id="PVFP">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="aF0K">sudo apt install iptables iptables-persistent -y</pre>
  <p id="rZOS">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Lcbn">iptables команда цепочка условие -j действие</pre>
  <p id="VqMd">⠀<u>Полезные команды</u>:</p>
  <ul id="K99z">
    <li id="x261"><code>-L</code> — вывести все правила;</li>
    <li id="nDKX"><code>-A</code>— добавить правило;</li>
    <li id="xtKi"><code>-D</code>— удалить правило;</li>
    <li id="9SyH"><code>-F</code> — очистить все правила.</li>
  </ul>
  <p id="415a">⠀<u>Цепочки</u>:</p>
  <ul id="uebu">
    <li id="YWth"><code>INPUT</code> — входящие пакеты (когда кто-то обращается к серверу);</li>
    <li id="RIv0"><code>OUTPUT</code> — исходящие пакеты (когда сервер обращается к кому-то);</li>
    <li id="arvf"><code>FORWARD</code> — проходящие пакеты (когда проходят через сервер, но не предназначены ему).</li>
  </ul>
  <p id="qsXg">⠀<u>Полезные условия</u>:</p>
  <ul id="tWqG">
    <li id="AAU2"><code>-p</code> — сетевой протокол (TCP, UDP, ICMP или ALL);</li>
    <li id="Afsp"><code>-s</code> — адрес отправителя пакетов;</li>
    <li id="4ehf"><code>-d</code> — адрес источника назначения;</li>
    <li id="TkZj"><code>--dport</code> — порт назначения;</li>
    <li id="poPM"><code>--sport</code> — порт источника.</li>
  </ul>
  <p id="8Smg">⠀<u>Полезные действия</u>:</p>
  <ul id="vqcW">
    <li id="Uxze"><code>ACCEPT</code> — разрешить пакеты;</li>
    <li id="T6vb"><code>DROP</code> — запретить пакеты.</li>
  </ul>
  <p id="05mK">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="QdWF"># Все правила
iptables -L</pre>
  <figure id="wKKE" class="m_original">
    <img src="https://img3.teletype.in/files/e6/ca/e6caebe1-4a5b-4474-95de-27dc13643fb2.png" width="650" />
  </figure>
  <pre data-lang="bash" id="p9FZ"># Открыть один порт
iptables -A INPUT -p tcp --dport 9091 -j ACCEPT
# Открыть диапазон портов
iptables -A INPUT -p tcp --dport 9001:9004 -j ACCEPT# Сохранить все правила
sudo netfilter-persistent save
# Очистить все правила
iptables -F</pre>
  <h3 id="L5ah" data-align="center">ufw</h3>
  <p id="ADP8">⠀Брандмауэр, фильтрующий сетевой трафик.</p>
  <p id="nXfv">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="4DLc">sudo ufw команда аргументы</pre>
  <p id="E0zV">⠀<u>Полезные команды</u>:</p>
  <ul id="K99z">
    <li id="OtfD"><code>status</code> — посмотреть состояние и действующие правила;</li>
    <li id="MPBw"><code>enable</code> — включить брандмауэр и добавить его в автозагрузку;</li>
    <li id="TKqA"><code>reload</code> — перезапустить брандмауэр;</li>
    <li id="rjT2"><code>reset</code> — сбросить все настройки до состояния по умолчанию;</li>
    <li id="Cnc6"><code>allow</code> — добавить разрешающее правило;</li>
    <li id="mb7y"><code>deny</code> — добавить запрещающее правило (отправителю отправляется пакет с уведомлением об ошибке);</li>
    <li id="xMi2"><code>reject</code> — добавить отбрасывающее правило (входящий пакет отбрасывается, а отправителю ничего не отсылается);</li>
    <li id="WZUO"><code>delete</code> — удалить правило;</li>
    <li id="hrzX"><code>disable</code> — отключить брандмауэр и удалить его из автозагрузки.</li>
  </ul>
  <p id="V5j3">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="rXAo"># Проверить состояние
sudo ufw status</pre>
  <pre id="Mw9x"># Выключен
Status: inactive

# Включен
Status: active
...</pre>
  <pre data-lang="bash" id="t15H"># Включить брандмауэр
sudo ufw enable</pre>
  <section>
    <p id="1wK9">⠀Чтобы избежать потерю подключения к серверу, необходимо открыть 22 порт командой ниже.</p>
  </section>
  <pre data-lang="bash" id="asLp"># Открыть порт для любого протокола
sudo ufw allow 22
sudo ufw allow 9090
# Открыть порт только для TCP протокола
sudo ufw allow 9090/tcp
# Открыть порт только для UPD протокола
sudo ufw allow 9090/upd
# Разрешить исходящий и запретить входящий трафик
sudo ufw allow out 9090/upd
sudo ufw deny in 9090/upd
# Удалить правило
sudo ufw delete allow out 9090/upd
sudo ufw delete deny in 9090/upd
# Перезапустить брандмауэр
sudo ufw reload
# Отключить брандмауэр
sudo ufw disable</pre>
  <h3 id="0tTa" data-align="center">speedtest-cli</h3>
  <p id="HQ5m">⠀Проверяет пропускную способность интернет соединения.</p>
  <p id="1Egg">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="SfSR">sudo apt install speedtest-cli -y</pre>
  <p id="DNKk">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="lNB8">speedtest-cli опции</pre>
  <p id="3rS9">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="q19r"><code>--simple</code> — отобразить только пинг, скорость скачивания и отдачи.</li>
  </ul>
  <p id="9oda">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="2GIR">speedtest-cli --simple</pre>
  <pre id="8Kiw">Ping: 14.596 ms
Download: 789.05 Mbit/s
Upload: 534.10 Mbit/s</pre>
  <h3 id="pAaZ" data-align="center">ping</h3>
  <p id="TaOu">⠀Проверяет доступность удалённого узла (IP или домен) в сети. В частности используется для проверки подключения интернета.</p>
  <p id="MUHC">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="eBaR">ping опции адрес_узла</pre>
  <p id="KbQP">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="lGgT"><code>-6</code> — использовать только ipv6.</li>
  </ul>
  <p id="Xa3e">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="kDab">ping www.google.com</pre>
  <figure id="Fi7M" class="m_original">
    <img src="https://img3.teletype.in/files/64/b8/64b8ca7f-1cdc-4b80-83bd-1baa493ae0ac.png" width="810" />
  </figure>
  <hr />
  <h2 id="haZH" data-align="center">Прочее</h2>
  <p id="7zKB" data-align="right"></p>
  <h3 id="4P0A" data-align="center">echo</h3>
  <p id="WESs">⠀Выводит текст в терминал.</p>
  <p id="SfKu">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="cBgl">echo опции текст</pre>
  <p id="TOzd">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="ZziC"><code>-n</code> — не делать перевод строки в конце текста;</li>
    <li id="xrof"><code>-e</code> — обрабатывать символы, экранированные обратной косой чертой (новая строка, табуляция, цвета и т. д.).</li>
  </ul>
  <p id="00UJ">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="ejP6">echo &quot;Hello world!&quot;</pre>
  <pre id="lT6Q">Hello world!</pre>
  <pre data-lang="bash" id="eSE8">echo &quot;Hello\nworld!&quot;</pre>
  <pre id="399Q">Hello\nworld!</pre>
  <pre data-lang="bash" id="ZTX3">echo -e &quot;Hello\nworld!&quot;</pre>
  <pre id="dKrg">Hello
world!</pre>
  <pre data-lang="bash" id="DCMC">echo &quot;Hello
world!&quot;</pre>
  <pre id="OZwk">Hello
world!</pre>
  <pre data-lang="bash" id="T1wO">text=&quot;world!
...&quot;
echo &quot;Hello $text&quot;</pre>
  <pre id="MuSF">Hello world!
...</pre>
  <h3 id="gDmS" data-align="center">printf</h3>
  <p id="0RHa">⠀Выводит текст в терминал по аналогии с <code>printf()</code> из языка программирования C. Имеет больший функционал по сравнению с <code>echo</code>. В отличие от <code>echo</code> по умолчанию не делает перевод строки в конце текста.</p>
  <p id="9VHr">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="WEZL">printf формат аргументы</pre>
  <p id="5KYz">⠀<u>Формат</u> может содержать:</p>
  <ul id="hRB4">
    <li id="rmiS">Обычные символы — просто выводятся как есть;</li>
    <li id="VNre">Символы с обратной косой чертой — обрабатываются и выводятся:</li>
    <ul id="TmwO">
      <li id="zwOE"><code>\\</code> — символ обратной косой черты;</li>
      <li id="Qm3b"><code>\n</code> — новая строка;</li>
      <li id="JRBv"><code>\t</code> — горизонтальная табуляция.</li>
    </ul>
    <li id="yaXF">Преобразования типов — заменяются аргументами и выводятся:</li>
    <ul id="7baX">
      <li id="V03C"><code>%s</code> — строка;</li>
      <li id="hO3n"><code>%d</code> / <code>%i</code> — десятичное целое число;</li>
      <li id="CB1C"><code>%f</code> — число с плавающей точкой;</li>
      <li id="Nh64"><code>%x</code> — восьмеричное число;</li>
      <li id="nktq"><code>%o</code> — шестнадцатиричное число;</li>
      <li id="o7iR"><code>%%</code> — символ <code>%</code>.</li>
    </ul>
  </ul>
  <p id="G3m7">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="iXm3">printf &quot;Hello world!\n&quot;</pre>
  <pre id="I23H">Hello world!</pre>
  <pre data-lang="bash" id="wiqR">printf &quot;%s\n&quot; &quot;Hello world!&quot;</pre>
  <pre id="h3Sm">Hello world!</pre>
  <pre data-lang="bash" id="xc8u">printf &quot;%d\n&quot; &quot;666&quot;</pre>
  <pre id="Cc40">666</pre>
  <pre data-lang="bash" id="97lP"># Округлить число с плавающей точкой
printf &quot;%.2f\n&quot; 3.1415926535</pre>
  <pre id="iDaW">3.14</pre>
  <pre data-lang="bash" id="V7e0">printf &quot;%.1f\n&quot; &quot;6.66&quot;</pre>
  <pre id="T90X">6.7</pre>
  <pre data-lang="bash" id="EJRd"># Округление до целого числа
printf &quot;%.0f\n&quot; 6.66</pre>
  <pre id="6bzv">7</pre>
  <pre data-lang="bash" id="Cqpa">printf &quot;%s\t%d\t%.2f\n&quot; &quot;Hello world!&quot; &quot;666&quot; 3.1415926535</pre>
  <pre id="mehI">Hello world!    666     3.14</pre>
  <pre data-lang="bash" id="IWET">text=&quot;Hello world!&quot;
int=&quot;666&quot;
pi=3.1415926535
printf &quot;%s\n%d\n%.2f\n&quot; &quot;$text&quot; &quot;$int&quot; &quot;$pi&quot;</pre>
  <pre id="Znj7">Hello world!
666
3.14</pre>
  <h3 id="Fr2I" data-align="center">git</h3>
  <p id="rroA">⠀Система контроля версий и совместной разработки проектов. В основном используется для работы с GitHub.</p>
  <p id="Fp1G">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="mTvD">sudo apt install git -y</pre>
  <p id="FS6q">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="YLyy">git опции команда аргументы</pre>
  <p id="blNj">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="HeNk"><code>-C</code> — использовать для работы указанную директорию вместо текущей.</li>
  </ul>
  <p id="5smQ">⠀<u>Полезные команды</u>:</p>
  <ul id="hRB4">
    <li id="VZWu"><code>clone</code> — скачать указанный репозиторий на сервер;</li>
    <li id="TNxH"><code>pull</code> — обновить локальный проект на основе внесённых изменений в источнике;</li>
    <li id="itAS"><code>branch</code> — управление ветками проекта;</li>
    <li id="E2lA"><code>checkout</code> — переключиться между ветками;</li>
    <li id="dxCR"><code>clean</code> — удалить неиспользуемые проектом файлы.</li>
  </ul>
  <p id="vis2">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="BBxy"># Клонировать репозиторий
git clone https://github.com/SecorD0/utils.git</pre>
  <figure id="2MDs" class="m_original">
    <img src="https://img1.teletype.in/files/41/ec/41ecb957-2b53-4599-81c1-c6634b0c9922.png" width="787" />
  </figure>
  <pre data-lang="bash" id="TCwU"># Клонировать репозиторий в папку с другим названием
git clone https://github.com/SecorD0/utils.git pack_of_utils</pre>
  <figure id="rUuZ" class="m_original">
    <img src="https://img2.teletype.in/files/d4/34/d434d969-126b-48ce-b609-c98256e4c4b7.png" width="893" />
  </figure>
  <pre data-lang="bash" id="k0G0"># Для использования команд ниже необходимо перейти в директорию
# с проектом или указывать для каждой путь в опции -C
cd utils
# Посмотреть текущую ветку
git branch</pre>
  <pre id="Nbam">* main</pre>
  <pre data-lang="bash" id="yt6E"># Посмотреть все ветки
git branch -a</pre>
  <pre id="oHOc">* main
  remotes/origin/HEAD -&gt; origin/main
  remotes/origin/main</pre>
  <pre data-lang="bash" id="NNNY"># Обновить локальные файлы
git pull# Переключиться на другую ветку
git checkout test
# Удалить неиспользуемые проектом файлы
git clean</pre>
  <h3 id="gZHB" data-align="center">tmux</h3>
  <p id="NAly">⠀Позволяет запускать несколько сессий на одном сервере. Можно провести аналогию с несколькими окнами в Windows. При отключении от сервера активные процессы в сессиях не прекращают работу.</p>
  <p id="Gn90">⠀<u>Понятия</u>:</p>
  <ul id="LWhH">
    <li id="L4AG">Сессия — ещё один терминал сервера (1 сервер = 1+ сессии);</li>
    <li id="eqME">Окно — ещё один «рабочий стол» сессии (1 сессия = 1+ окно);</li>
    <li id="RSxh">Панель — область для работы в окне (1 окно = 1+ панелей).</li>
  </ul>
  <p id="v4VW">⠀<u>Требуется установка</u></p>
  <pre data-lang="bash" id="HpZb">sudo apt install tmux -y</pre>
  <p id="wCVe">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="E5IG">tmux команда опции аргументы</pre>
  <p id="I7JS">⠀<u>Полезные команды</u>:</p>
  <ul id="zKbu">
    <li id="NEHc"><code>new</code> — создать новую сессию;</li>
    <li id="dK8B"><code>attach</code> — подключиться к существующей сессии;</li>
    <li id="xOWV"><code>detach</code> — отключиться от текущей сессии;</li>
    <li id="Z8sP"><code>ls</code> — список открытых сессий;</li>
    <li id="zqK1"><code>rename-session</code> — переименовать сессию;</li>
    <li id="Y4I0"><code>kill-session</code> — завершить сессию;</li>
    <li id="7d4K"><code>kill-server</code> — завершить все сессии.</li>
  </ul>
  <p id="omXX">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="2sGJ"><code>-t</code> — название или часть названия сессии, к которой будет применяться действие;</li>
    <li id="ExYr"><code>-s</code> — название создаваемой сессии.</li>
  </ul>
  <p id="5OYF">⠀Для управления активными окнами существуют горячие клавиши, для их использования необходимо нажать сочетание клавиш <code>Ctrl+B</code> с <u>включённой английской раскладкой</u>, а затем нажать горячую клавишу.</p>
  <p id="UYu4">⠀<u>Горячие клавиши</u>:</p>
  <ul id="RLZo">
    <li id="vhnT"><code>d</code> — отключиться от текущей сессии (аналог команды <code>tmux detach</code>);</li>
    <li id="MEYJ"><code>%</code> — разделить текущую панель по горизонтали;</li>
    <li id="03eb"><code>&quot;</code> — разделить текущую панель по вертикали;</li>
    <li id="Ycbv"><code>←</code> / <code>↑</code> / <code>→</code> / <code>↓</code> — перейти на панель, находящуюся в стороне, куда указывает стрелка;</li>
    <li id="uqDI"><code>Ctrl+стрелка</code> — изменить размер текущей панели;</li>
    <li id="jDcg"><code>o</code> — перейти на следующую панель;</li>
    <li id="bauC"><code>;</code> — переключаться между текущей и предыдущей панелью;</li>
    <li id="lOPP"><code>x</code> — закрыть текущую панель;</li>
    <li id="eO6h"><code>c</code> — открыть новое окно;</li>
    <li id="OF7a"><code>w</code> — выбрать окно из списка;</li>
    <li id="Nrgr"><code>0-9</code> — открыть окно по его номеру;</li>
    <li id="DT4D"><code>,</code> — переименовать текущее окно.</li>
  </ul>
  <p id="j8Tp">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="VjMV"># Создать сессию
tmux new -s session
# Отключиться командой от текущей сессии
tmux detach
# Список сессий
tmux ls
# Переименовать сессию
tmux rename-session -t session session1
# Подключиться к сессии
tmux attach -t sess
tmux attach -t session1
# Закрыть активную панель (закрывает окно и сессию, если панель одна) 
exit
# Завершить последнюю сессию
tmux kill-session
# Завершить определённую сессию
tmux kill-session -t session1
# Завершить все сессии
tmux kill-server</pre>
  <h3 id="F9hV" data-align="center">date</h3>
  <p id="YW5j">⠀Позволяет работать с датой и временем. По умолчанию используется часовой пояс, установленный на сервере.</p>
  <p id="rbah">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="INhU">date опции +формат</pre>
  <p id="GAUG">⠀<u>Полезные опции</u>:</p>
  <ul id="hRB4">
    <li id="QEyH"><code>-d</code> — вывод даты и времени исходя из указанных условий;</li>
    <li id="hnM2"><code>-u</code> — вывод даты и времени в UTC формате.</li>
  </ul>
  <p id="ROiO">⠀<u>Полезные форматы</u>:</p>
  <ul id="hRB4">
    <li id="jaEj"><code>%H</code> — часы (<code>00…23</code>);</li>
    <li id="UDw0"><code>%M</code> — минуты (<code>00…59</code>);</li>
    <li id="LvHp"><code>%S</code> — секунды (<code>00…59</code>);</li>
    <li id="j04s"><code>%a</code> — день недели словом в короткой форме (<code>Mon</code>);</li>
    <li id="JAag"><code>%A</code> — день недели словом в длинной форме (<code>Monday</code>);</li>
    <li id="ugdR"><code>%b</code> — месяц словом в короткой форме (<code>Jan</code>);</li>
    <li id="5Rbj"><code>%B</code> — месяц словом в длинной форме (<code>January</code>);</li>
    <li id="VWva"><code>%d</code> — день месяца (<code>01…31</code>);</li>
    <li id="UEn0"><code>%m</code> — месяц числом (<code>01…12</code>);</li>
    <li id="s3oA"><code>%y</code> — две последних цифры года (<code>22</code>);</li>
    <li id="azdQ"><code>%Y</code> — полный год (<code>2022</code>);</li>
    <li id="nMWS"><code>%j</code> — день года (<code>001...366</code>);</li>
    <li id="UO5Q"><code>%q</code> — квартал года (<code>1…4</code>);</li>
    <li id="LzqM"><code>%Z</code> — аббревиатура временной зоны (<code>UTC</code>, <code>CET</code>, <code>MSK</code>);</li>
    <li id="MR2D"><code>%n</code> — новая строка;</li>
    <li id="pDze"><code>%t</code> — знак табуляции;</li>
    <li id="3079"><code>%D</code> — дата в формате <code>%m/%d/%y</code>;</li>
    <li id="8oEi"><code>%T </code>— время в формате <code>%H:%M:%S</code>.</li>
  </ul>
  <p id="AVS5">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Oxg8">date</pre>
  <pre id="1TYG">Sat 01 Jan 2022 12:00:00 AM CET</pre>
  <pre data-lang="bash" id="KnUC">date -u</pre>
  <pre id="g16B">Fri 31 Dec 2021 11:00:00 PM UTC</pre>
  <pre data-lang="bash" id="Wk8W"># UNIX Timestamp to DATE
date -d &quot;@1640991600&quot;</pre>
  <pre id="Nt83">Sat 01 Jan 2022 12:00:00 AM CET</pre>
  <pre data-lang="bash" id="blF7">date +&quot;%H:%M:%S %d.%m.%y&quot;</pre>
  <pre id="LzbP">00:00:00 01.01.22</pre>
  <pre data-lang="bash" id="ZtnY">date -d &quot;@1640991665&quot; +&quot;%H:%M:%S %d.%m.%y&quot;</pre>
  <pre id="46TQ">00:01:05 01.01.22</pre>
  <pre data-lang="bash" id="SLRq">date -d &quot;2 days&quot; +&quot;%H:%M:%S %d.%m.%y&quot;</pre>
  <pre id="fg0o">00:00:00 03.01.22</pre>
  <pre data-lang="bash" id="gJb3"># Изменить часовой пояс
TZ=&quot;Europe/Moscow&quot; date -d &quot;@1640991665&quot; +&quot;%H:%M:%S %d.%m.%y&quot;</pre>
  <pre id="oogt">02:01:05 01.01.22</pre>
  <p id="jG4B"></p>
  <h1 id="BTc6" data-align="center">Часть 5. Терминал Linux</h1>
  <p id="zCFi">В данной статье рассматриваются операторы, запуск скриптов, а также скрипты нашей команды.</p>
  <h2 data-align="center" id="TOyt">Операторы</h2>
  <p id="aVUs" data-align="right"></p>
  <h3 id="0smK" data-align="center">;</h3>
  <p id="zmoQ">⠀Выполняет последовательно несколько команд. Если текущая команда выполнится неуспешно, то следующая всё равно выполнится.</p>
  <p id="58gK">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="s8Eb">команда_1; команда_2; команда_3; ...</pre>
  <p id="ASYu">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="gHGt">sudo apt-get update; sudo apt-get upgrade</pre>
  <h3 id="lteP" data-align="center">&amp;&amp;</h3>
  <p id="ofa6">⠀Выполняет последовательно несколько команд. Если текущая команда выполнится неуспешно, то следующая не выполнится.</p>
  <p id="QvPR">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="oIN9">команда_1 &amp;&amp; команда_2 &amp;&amp; команда_3 &amp;&amp; ...</pre>
  <p id="deWO">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="QMYE">sudo apt-get update &amp;&amp; sudo apt-get upgrade</pre>
  <h3 id="O7ik" data-align="center">||</h3>
  <p id="4hAI">⠀Выполняет следующую команду, если предыдущая выполнилась неуспешно.</p>
  <p id="77ki">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="yUML">команда_1 || команда_2 || команда_2 || ...</pre>
  <p id="0KpK">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="H6GF">ls -a /there_is_no_dir || echo &quot;error&quot;</pre>
  <h3 id="vtRw" data-align="center">&amp;</h3>
  <p id="a7pC">⠀Запускает выполнение команды в фоновом режиме.</p>
  <p id="rfwC">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="owES">команда_1 &amp; команда_2 &amp; команда_3 &amp; ...</pre>
  <p id="d21O">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="AvhL">sudo apt-get update &amp; sudo apt-get upgrade &amp;</pre>
  <h3 id="4KTC" data-align="center">\</h3>
  <p id="lAcR">⠀Выполняет две функции:</p>
  <ul id="L1Ff">
    <li id="Sc34">Отменяет специальное назначение (экранирует) символов, таких как <code>$</code>, <code>\</code>, <code>&amp;</code>, <code>*</code>, <code>[</code>, <code>]</code>, <code>^</code>, <code>.</code>;</li>
    <li id="9LMo">«Склеивает» несколько строк команды в одну.</li>
  </ul>
  <p id="5hwV">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Ns14">команда_1; \
команда_2; \
команда_3
...</pre>
  <p id="ng2U">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Fngf">echo &quot;Hello,&quot;\
&quot; world!&quot;</pre>
  <pre id="jtqq">Hello, world!</pre>
  <pre data-lang="bash" id="DieQ">sudo apt-get update; \
sudo apt-get upgrade</pre>
  <h3 id="Kh7B" data-align="center">|</h3>
  <p id="0VLk">⠀Перенаправляет данные из одной команды в другую.</p>
  <p id="gsyN">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="FBb3">команда_1 | команда_2 | команда_3 | ...</pre>
  <p id="g9ZF">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="5kAq">echo &#x27;!{&quot;json&quot;: [&quot;one&quot;, &quot;two&quot;]}&#x27; | tr -d &#x27;!&#x27; | jq -r &quot;.&quot; | grep json</pre>
  <pre id="w0Fz">  &quot;json&quot;: [</pre>
  <h3 id="QOD4" data-align="center">&gt;</h3>
  <p id="bELg">⠀Перенаправляет вывод команды в файл. Перезаписывает файл при существовании. Для скрытия вывода команды можно использовать конструкцию <code>&gt; /dev/null</code>.</p>
  <p id="yL6U">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="GBW0">команда &gt; файл</pre>
  <p id="lwyM">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="WLua">echo &quot;Hello, world!&quot; &gt; /dev/null</pre>
  <pre data-lang="bash" id="rXXo">echo &quot;Hello, world!&quot; &gt; hi.txt
cat hi.txt</pre>
  <pre id="rNLV">Hello, world!</pre>
  <h3 id="C5zd" data-align="center">| tee</h3>
  <p id="kQ6q">⠀Оставляет вывод команды на экран, при этом записывает его в файл. Перезаписывает файл при существовании.</p>
  <p id="YqPV">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="xjvJ">команда | tee файл</pre>
  <p id="LMvq">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="lcIn">echo &quot;Hello, world!&quot; | tee hi.txt
cat hi.txt</pre>
  <pre id="jgC1">Hello, world!

Hello, world!</pre>
  <h3 id="2v7p" data-align="center">&gt;&gt;</h3>
  <p id="AFvB">⠀Перенаправляет вывод команды в файл. При существовании файла дописывает в конец.</p>
  <p id="Lrxw">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="WhLM">команда &gt;&gt; файл</pre>
  <p id="tU9R">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="7uUs">cat hi.txt
echo &quot;Hi&quot; &gt;&gt; hi.txt
cat hi.txt</pre>
  <pre id="GSU9">Hello, world!

Hello, world!
Hi</pre>
  <h3 id="Z80Q" data-align="center">| tee -a</h3>
  <p id="lRB0">⠀Оставляет вывод команды на экран, при этом записывает его в файл. При существовании файла дописывает в конец.</p>
  <p id="N84d">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="FuZT">команда | tee -a файл</pre>
  <p id="zB9a">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="cSOU">cat hi.txt
echo &quot;hello&quot; | tee -a hi.txt
cat hi.txt</pre>
  <pre id="lcwV">Hello, world!
Hi

hello

Hello, world!
Hi
hello</pre>
  <h3 id="vWkF" data-align="center">2&gt;, 2&gt;&gt;</h3>
  <p id="WMGT">⠀Перенаправляет вывод ошибок команды в файл:</p>
  <ul id="7wHX">
    <li id="XAcj"><code>2&gt;</code> перезаписывает файл при существовании. Для скрытия ошибок можно использовать конструкцию 2<code>&gt; /dev/null</code>.</li>
    <li id="9AqF"><code>2&gt;&gt;</code> при существовании файла дописывает в конец.</li>
  </ul>
  <p id="Bmze">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="517g">команда 2&gt; файл
команда 2&gt;&gt; файл</pre>
  <p id="a642">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="lgpj">ls -a /there_is_no_dir 2&gt; /dev/null</pre>
  <pre data-lang="bash" id="3FHJ">ls -a /there_is_no_dir 2&gt; errors.txt
cat errors.txt</pre>
  <pre id="Rubb">ls: cannot access &#x27;/there_is_no_dir&#x27;: No such file or directory</pre>
  <pre data-lang="bash" id="gI1M">ls -a /there_is_no_dir2 2&gt;&gt; errors.txt
cat errors.txt</pre>
  <pre id="kK8D">ls: cannot access &#x27;/there_is_no_dir&#x27;: No such file or directory
ls: cannot access &#x27;/there_is_no_dir2&#x27;: No such file or directory</pre>
  <h3 id="4yBE" data-align="center">&amp;&gt;, &amp;&gt;&gt;</h3>
  <p id="NVlO">⠀Перенаправляет вывод команды и ошибок в файл:</p>
  <ul id="7wHX">
    <li id="QsdY"><code>&amp;&gt;</code> перезаписывает файл при существовании. Для полного скрытия вывода можно использовать конструкцию &amp;<code>&gt; /dev/null</code>.</li>
    <li id="C8tM"><code>&amp;&gt;&gt;</code> при существовании файла дописывает в конец.</li>
  </ul>
  <p id="VN8h">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="NsG2">команда &amp;&gt; файл
команда &amp;&gt;&gt; файл</pre>
  <p id="ISl7">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="QIIs">printf &quot;%d\n&quot; 2.22 &amp;&gt; /dev/null</pre>
  <pre data-lang="bash" id="9GHf">printf &quot;%d\n&quot; 2.22 &amp;&gt; output.txt
cat output.txt</pre>
  <pre id="UA2G">-bash: printf: 2.22: invalid number
2</pre>
  <pre data-lang="bash" id="l1vm">printf &quot;%d\n&quot; 4.76 &amp;&gt;&gt; output.txt
cat output.txt</pre>
  <pre id="5DrX">-bash: printf: 2.22: invalid number
2
-bash: printf: 4.76: invalid number
4</pre>
  <h3 id="ULGS" data-align="center">&lt;</h3>
  <p id="VNX4">⠀Использует данные из файла в качестве источника ввода в команду вместо клавиатуры.</p>
  <p id="DcJu">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="b5Xl">команда &lt; файл</pre>
  <p id="eS70">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="a2dT">echo &quot;2*2+2&quot; &gt; calc.txt
cat calc.txt</pre>
  <pre id="snXa">2*2+2</pre>
  <pre data-lang="bash" id="VZUm">bc &lt; calc.txt</pre>
  <pre id="ghY8">6</pre>
  <h3 id="1Nrh" data-align="center">&lt;&lt;EOF...EOF</h3>
  <p id="dvfE">⠀Позволяет ввести в команду многострочный текст.</p>
  <p id="E43X">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="rxZQ">команда &lt;&lt;EOF
многострочный
текст
EOF</pre>
  <p id="bN54">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Am2r">cat &lt;&lt;EOF
многострочный
текст
EOF</pre>
  <pre id="Jh2x">многострочный
текст</pre>
  <h3 id="OZCB" data-align="center">&lt;&lt;&lt;</h3>
  <p id="sVjw">⠀Передаёт указанный текст в команду вместо ввода с клавиатуры.</p>
  <p id="3Gkj">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="C5qy">команда &lt;&lt;&lt; &quot;текст&quot;</pre>
  <p id="ckzk">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="Ebvs">bc &lt;&lt;&lt; &quot;2*2+2&quot;</pre>
  <pre id="OWWM">6</pre>
  <pre data-lang="bash" id="Xhjd">jq -r &quot;.json[1]&quot; &lt;&lt;&lt; &#x27;{
	&quot;json&quot;: [&quot;one&quot;, &quot;two&quot;]
}&#x27;</pre>
  <pre id="E1Ed">two</pre>
  <pre data-lang="bash" id="VN7b">json=&#x27;{
	&quot;json&quot;: [&quot;one&quot;, &quot;two&quot;]
}&#x27;
jq -r &quot;.json[1]&quot; &lt;&lt;&lt; &quot;$json&quot;</pre>
  <pre id="9Liz">two</pre>
  <h3 id="iYZX" data-align="center">&lt;(команды)</h3>
  <p id="1PXU">⠀Возвращает путь к созданному временному файлу, содержащему результат выполнения одной или нескольких объединённых внутри конструкции команд.</p>
  <p id="1wE3">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="Ml4b">команда &lt;(команда_1; команда_2 &amp;&amp; команда_3; ...)</pre>
  <p id="YgFd">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="f2rN"># Путь к временному файлу
echo &lt;(uptime)</pre>
  <pre id="qgsp">/dev/fd/63</pre>
  <pre data-lang="bash" id="4bTd"># Содержимое временного файла
cat &lt;(uptime)</pre>
  <pre id="0FcZ"> 00:00:00 up 5 days,  7:25,  2 users,  load average: 0.00, 0.00, 0.00</pre>
  <pre data-lang="bash" id="P3u8">cat &lt;(uptime; date)</pre>
  <pre id="yRQ0"> 00:00:00 up 5 days,  7:27,  2 users,  load average: 0.00, 0.00, 0.00
Tue 01 Jan 2022 12:00:00 AM CET</pre>
  <h2 id="12F1" data-align="center">Запуск скриптов</h2>
  <p id="bwQs" data-align="right"></p>
  <h3 id="PPde" data-align="center">Локальные</h3>
  <p id="Z2ZL">⠀Для выполнения скрипта, находящегося на сервере, необходимо:</p>
  <ul id="b8Vq">
    <li id="1AL0">Сделать его исполняемым;</li>
    <li id="Gswk">Запустить его при помощи:</li>
    <ul id="p2xb">
      <li id="GyXX"><code>bash</code> — для выполнения скрипта запускается ещё один сеанс Bash терминала, в следствии чего, например, не получиться использовать и обновлять переменные пользователя;</li>
      <li id="KGOm"><code>source</code> / <code>.</code> — скрипт выполняется в сеансе Bash терминала, из которого был запущен скрипт.</li>
    </ul>
  </ul>
  <p id="orpH">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="pFXy"># Bash
chmod +x путь_к_скрипту; \
./путь_к_скрипту аргументы
# Source
chmod +x путь_к_скрипту; \
. ./путь_к_скрипту аргументы</pre>
  <p id="OyhT">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="19Nb"># Bash
chmod +x script.sh; \
./script.sh -u -t &quot;hi&quot; &quot;text&quot; 666
# Source
chmod +x script.sh; \
. ./script.sh -u -t &quot;hi&quot; &quot;text&quot; 666</pre>
  <h3 id="yl2r" data-align="center">По ссылке</h3>
  <p id="zpem">⠀Скрипты по ссылке, например из GitHub можно выполнять тремя способами:</p>
  <ul id="0EV5">
    <li id="s4ac">Для эстетов</li>
  </ul>
  <p id="flpb">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="UfVL"># Bash
bash &lt;(wget -qO- ссылка) аргументы
bash &lt;(curl -s ссылка) аргументы
# Source
. &lt;(wget -qO- ссылка) аргументы
. &lt;(curl -s ссылка) аргументы</pre>
  <p id="X48B">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="dcJ5"># Bash
bash &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) -h
bash &lt;(curl -s https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) -h
# Source
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) -h
. &lt;(curl -s https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) -h
</pre>
  <ul id="vie3">
    <li id="7KWC">Для тех, кто может позволить себе «И так сойдёт!»</li>
  </ul>
  <p id="Nhvo">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="TK4G"># Bash
wget -q ссылка; \
chmod +x путь_к_скрипту; \
./путь_к_скрипту аргументы

curl -sO ссылка; \
chmod +x путь_к_скрипту; \
./путь_к_скрипту аргументы

# Source
wget -q ссылка; \
chmod +x путь_к_скрипту; \
. ./путь_к_скрипту аргументы

curl -sO ссылка; \
chmod +x путь_к_скрипту; \
. ./путь_к_скрипту аргументы</pre>
  <p id="dO3g">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="4jXi"># Bash
wget -q https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh
chmod +x colors.sh; \
./colors.sh -h

curl -sO https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh
chmod +x colors.sh; \
./colors.sh -h
# Source
wget -q https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh
chmod +x colors.sh; \
. ./colors.sh -h

curl -sO https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh
chmod +x colors.sh; \
. ./colors.sh -h</pre>
  <h3 id="7cyl" data-align="center">Цвета</h3>
  <p id="7RYM" data-align="right"></p>
  <p id="jpJL">⠀Для красивого вывода в командах <code>echo</code> и <code>printf</code> можно использовать цвета, каждый из которых имеет свой код. С целью заменить непонятные некрасивые коды на что-то элегантное был создан данный скрипт.</p>
  <p id="qv6Q">⠀<u>Посмотреть цвета</u></p>
  <pre data-lang="bash" id="5yHO">. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) -h
</pre>
  <figure id="E1qU" class="m_original">
    <img src="https://img3.teletype.in/files/e0/c1/e0c19746-5b3e-4e7f-af65-e73a90a5d07f.png" width="910" />
  </figure>
  <p id="jJEP">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="L1Xs">. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/colors.sh) --; \
echo -e &quot;${C_LGn}I&#x27;m Light Green${RES}&quot;

</pre>
  <h3 id="ys3J" data-align="center">Работа с переменными</h3>
  <p id="5DOh">⠀Для упрощения работы с переменными был создан скрипт, который может:</p>
  <ul id="rQxG">
    <li id="pWYB">Добавить переменную;</li>
    <li id="TdMC">Переименовать;</li>
    <li id="270T">Удалить первое или все совпадения.</li>
  </ul>
  <p id="nw8x">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="dJpU">. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
опции</pre>
  <p id="2Pq4">⠀<u>Опции</u>:</p>
  <ul id="ATnF">
    <li id="BK3i"><code>-n</code> * — название переменной;</li>
    <li id="bhCY"><code>-v</code> — значение переменной (если не указать значение, то появится ручной ввод);</li>
    <li id="0RkS"><code>-a</code> — добавить alias;</li>
    <li id="C5Bu"><code>-r</code> — сменить указанное название переменной на указанное в опции <code>-n</code>;</li>
    <li id="K6yJ"><code>-d</code> — удалить первое вхождение переменной, указанной в опции <code>-n</code>;</li>
    <li id="sTmh"><code>-da</code> — удалить все вхождения переменной, указанной в опции <code>-n</code>.</li>
  </ul>
  <p id="wtuE">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="cifk"># Ручной ввод значения
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n variable</pre>
  <pre id="RIP6">Enter the value:</pre>
  <pre data-lang="bash" id="J5IX"># Добавить переменную
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n variable -v &quot;text text&quot;
# Добавить alias
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n update -v &quot;sudo apt update \&amp;\&amp; sudo apt upgrade&quot; -a
# Переименовать переменную
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n var -r variable
# Удалить первое вхождение переменной
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n var -d
# Удалить все вхождения переменной
. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) \
-n var -da</pre>
  <h3 id="ZB6Q" data-align="center">Открытие портов</h3>
  <p id="x4dP">В зависимости от того, включён ли брандмауэр, осуществляется выбор алгоритма открытия портов. Чтобы не заниматься выбором вручную, был создан этот скрипт, принимающий в качестве аргументов один или несколько портов.</p>
  <p id="BCTS">⠀<u>Синтаксис</u></p>
  <pre data-lang="bash" id="9aOG">. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \
порт_1 порт_2 порт_3 ...</pre>
  <p id="eL7A">⠀<u>Примеры</u></p>
  <pre data-lang="bash" id="ntoz">. &lt;(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) \
9090 9091</pre>
  <h3 id="iZeJ" data-align="center"></h3>
  <p id="9QzT"></p>
  <blockquote id="lm9T"><br /><br /><strong>Ну вот собственно и всё! Это далеко не все конечно, но мы постарались включить наиболее распространенные команды и описания к ним, в процессе изучения и установки нод вы сможете справочно изучать по каждой команде что она из себя представляет и у вас будет складываться потихоньку это все в один единый пазл. Конечно с нуля это сложно но терпение и труд в изучении приведут к хорошим результатам. Удачи в изучении.</strong></blockquote>

]]></content:encoded></item></channel></rss>