Архив рубрики: Публикации

Настройка прокси-соединения с системой на Java

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

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

Настройка прокси-соединения с системой на Java

Подходы:

Мы выясним два способа подключения через прокси-серверы в java, а именно:

  1. Устаревший подход, охватывающий всю JVM и настраиваемый с помощью системных свойств.
  2. Использование класса Proxy, который обеспечивает больший контроль, разрешая настройку на основе каждого соединения.

 

Метод 1: использование глобальной настройки

Java демонстрирует набор системных свойств, которые можно использовать для настройки поведения всей JVM. Этот «универсальный» подход зачастую проще всего реализовать, если он подходит для конкретного случая использования. Мы можем установить необходимые свойства из командной строки во время вызова JVM. В качестве альтернативы мы также можем определить их с помощью System.setProperty () во время выполнения. Вот как их определить с помощью командной строки, как показано ниже:

 

1.1. Устанавливается с помощью аргументов командной строки

Мы можем определить прокси в командной строке, минуя параметры как системные свойства:

java -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8080 com.geeksforgeeks.networking.proxies.CommandLineProxyDemo

 

При запуске процесса таким образом мы можем просто использовать openConnection () для URL без дополнительной работы:

URL url = new URL(RESOURCE_URL);



URLConnection con = url.openConnection();

 

1.2 Настройка прокси с помощью метода System.setProperty ()

Если при использовании командной строки возникают проблемы, есть другой способ сделать это, используя метод System.setProperty (). Для настройки прокси.

System.setProperty(“http.proxyHost”, “127.0.0.1”);  



System.setProperty(“http.proxyPort”, “8080”);  



URL url = new URL(RESOURCE_URL);  



URLConnection con = url.openConnection();  



// …

 

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

System.setProperty(“http.proxyHost”, null);

 

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

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

Примечание
Чтобы обойти это ограничение, может быть привлекательно включать и выключать настройки, если это необходимо. Но необходимо принять меры для защиты от проблем параллелизма в многопоточной программе.

 

Таким образом, в качестве альтернативы Proxy API более эффективен и обеспечивает больший контроль над конфигурацией прокси. В качестве альтернативы Proxy API обеспечивает более детальный контроль над конфигурацией прокси. Это рождает другой подход, который через Proxy API.

 

Метод 2: использование прокси API

Класс Proxy дает нам гибкий способ настройки прокси для каждого соединения. Если существуют какие-либо существующие настройки прокси для всей JVM, настройки прокси на основе подключения с использованием класса Proxy переопределят их. Вот три типа прокси, которые мы можем определить по типу прокси:

  1. HTTP  — это прокси, использующий протокол HTTP
  2. SOCKS — это прокси, использующий протокол SOCKS.
  3. DIRECT — это явно настроенное прямое соединение без прокси.

(A) Использование прокси-сервера HTTP

Чтобы использовать HTTP-прокси, мы сначала оборачиваем экземпляр SocketAddress с помощью Proxy и типа Proxy.Type.HTTP. Затем мы просто передаем экземпляр Proxy в URLConnection.openConnection ():

URL weburl = new URL(URL_STRING);



Proxy webProxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(“127.0.0.1”, 8080));



HttpURLConnection webProxyConnection = (HttpURLConnection) weburl.openConnection(webProxy);

 

Теперь мы подключимся к URL_STRING, но затем направим это соединение через прокси-сервер, расположенный по адресу 127.0.0.1:8080.

(B) Использование ПРЯМОГО прокси

У нас может возникнуть потребность напрямую подключиться к хосту. В этом случае мы можем явно обойти прокси, который может быть настроен глобально, с помощью статического экземпляра Proxy.NO_PROXY. По сути, API создает для нас новый экземпляр Proxy, используя Proxy.Type.DIRECT в качестве типа:

HttpURLConnection directConnection = (HttpURLConnection) weburl.openConnection(Proxy.NO_PROXY);

 

(C) Использование прокси-сервера SOCKS

Прокси-сервер Socks работает аналогично варианту HTTP при работе с URLConnection. В прокси Socks сначала мы оборачиваем экземпляр SocketAddress прокси, используя тип Proxy.Type.SOCKS. После этого экземпляр Proxy передается в URLConnection.openConnection.

Proxy socksProxy  = new Proxy(Proxy.Type.SOCKS, new InetSocketAddress(“127.0.0.1”, 1080));



HttpURLConnection socksConnection = (HttpURLConnection) weburl.openConnection(socksProxy);

 

Также можно использовать прокси-сервер SOCKS при подключении к сокету TCP. Сначала мы используем экземпляр Proxy для создания Socket. После этого мы передаем целевой экземпляр SocketAddress в Socket.connect () следующим образом:

Socket proxySocket = new Socket(socksProxy);



InetSocketAddress socketHost = new InetSocketAddress(SOCKET_SERVER_HOST, SOCKET_SERVER_PORT);



proxySocket.connect(socketHost);

 

Пример:



// Java-программа для создания простого прокси-сервера

  

// Импорт классов ввода вывода

import java.io.*;

// Импорт

import java.net.*;

  

public class SimpleProxyServer {

    public static void main(String[] args)

        throws IOException

    {

        try {

            String host = "Ваш прокси сервер";

            int remoteport = 100;

            int localport = 111;

            // Печать сообщения о запуске

            System.out.println("Starting proxy for " + host

                               + ":" + remoteport

                               + " on port " + localport);

            // И начните запускать сервер

            runServer(host, remoteport,

                      localport); // never returns

        }

        catch (Exception e) {

            System.err.println(e);

        }

    }

  

    /**

     * запускает однопоточный прокси-сервер на указанном

     * локальном порту. Он никогда не возвращается.

     */

    public static void

    runServer(String host, int remoteport, int localport)

        throws IOException

    {

        // Create a ServerSocket to listen for connections

        // with

        ServerSocket ss = new ServerSocket(localport);

  

        final byte[] request = new byte[1024];

        byte[] reply = new byte[4096];

  

        while (true) {

            Socket client = null, server = null;

            try {

                // Дождитесь подключения на локальном порту

                client = ss.accept();

  

                final InputStream streamFromClient

                    = client.getInputStream();

                final OutputStream streamToClient

                    = client.getOutputStream();

  

                // Установите соединение с реальным сервером.

                // Если мы не можем подключиться к серверу,

                // отправьте сообщение об ошибке клиенту, отключитесь

                // и продолжайте ждать подключения.

                try {

                    server = new Socket(host, remoteport);

                }

                catch (IOException e) {

                    PrintWriter out

                        = new PrintWriter(streamToClient);

                    out.print(

                        "Proxy server cannot connect to "

                        + host + ":" + remoteport + ":n"

                        + e + "n");

                    out.flush();

                    client.close();

                    continue;

                }

  

                // Получить потоки сервера.

                final InputStream streamFromServer

                    = server.getInputStream();

                final OutputStream streamToServer

                    = server.getOutputStream();

  

                // поток для чтения запросов клиента

                // и передачи их на сервер. Отдельный

                // поток для асинхронного.

                Thread t = new Thread() {

                    public void run()

                    {

                        int bytesRead;

                        try {

                            while ((bytesRead

                                    = streamFromClient.read(

                                        request))

                                   != -1) {

                                streamToServer.write(

                                    request, 0, bytesRead);

                                streamToServer.flush();

                            }

                        }

                        catch (IOException e) {

                        }

  

                        // клиент закрыл соединение

                        // с нами, поэтому закройте наше

                        // соединение с сервером.

                        try {

                            streamToServer.close();

                        }

                        catch (IOException e) {

                        }

                    }

                };

  

                // Запустите поток запросов от клиента к серверу

                // запуск

                t.start();

  

                // Прочитайте ответы сервера

                //  и передайте их обратно клиенту

                int bytesRead;

                try {

                    while ((bytesRead

                            = streamFromServer.read(reply))

                           != -1) {

                        streamToClient.write(reply, 0,

                                             bytesRead);

                        streamToClient.flush();

                    }

                }

                catch (IOException e) {

                }

  

                // Сервер закрыл свое соединение с нами,

                // поэтому мы закрываем наше соединение с нашим клиентом.

                streamToClient.close();

            }

            catch (IOException e) {

                System.err.println(e);

            }

            finally {

                try {

                    if (server != null)

                        server.close();

                    if (client != null)

                        client.close();

                }

                catch (IOException e) {

                }

            }

        }

    }

}

 

Вывод:

Настройка прокси-соединения с системой на Java

 

Заключение

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



2021-04-29T21:34:43
Java

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

Когда вы застряли внутри на несколько недель подряд, какие услуги вам нужны и в которых больше всего нуждаетесь? Быстрое и надежное интернет-соединение возглавляет списки многих людей с рекордным объемом поиска, приходящимся на первый пик пандемии в апреле:

 

Быстрый Интернет важнее, чем когда-либо

Если в вашем доме проживает несколько человек, вы поймете, что иногда три или четыре устройства не могут передавать потоковый контент с высокой пропускной способностью (HD-видео, игры и т. д.) Через одно и то же медленное интернет-соединение. Сегодня к этой пропускной способности предъявляются очень большие требования, подумайте обо всех устройствах, подключенных к вашему Wi-Fi. Потоковое видео обычно является самым большим источником данных, но оно также является одним из наиболее часто используемых.

Прогони медленный интернет из дома. Подключай бесконтактно тариф с технологичным роутером от компании izet-telecom.ru, подробнее на сайте chelyabinsk.izet-telecom.ru. Проверьте, подключен ли Ваш дом к интернету iZet в Челябинске.

Люди ищут в Yandex или Google «более быстрый интернет» на рекордно высоких уровнях во время пандемии. Можно предположить, что им нужна дополнительная пропускная способность, чтобы поддерживать навязчивые идеи своей семьи Netflix, Youtube, Disney+ и World of Warcraft, и они не обязательно довольны своей текущей настройкой.

 

Ограничения и препятствия на пути к поиску лучшего Интернета

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

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



2021-04-29T14:52:28
Сетевые технологии

Как бесплатно создать видеоролик для Windows

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

Создание загрузчика анимации сканирования с использованием HTML и CSS

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

простые HTML и CSS.

 

Подход:

  • Сначала мы создадим HTML-файл, в который мы собираемся добавить div для добавления в него диапазона.
  • Затем мы создадим стиль CSS, чтобы придать анимационные эффекты анимации сканирования.

 

Мы начнем с определения разделов HTML и CSS на странице, как показано ниже.

Раздел HTML: в этом разделе определяется структура страницы.

 

  • Сначала мы создадим HTML-файл.
  • Затем мы напишем шаблонный код, необходимый для HTML-страницы.
  • Затем мы свяжем файл CSS или напрямую добавим необходимый CSS, который обеспечивает все эффекты анимации.
  • В разделе body мы добавим диапазон, чтобы добавить наш текст.
  • index.html

<!DOCTYPE html>

<html lang="ru">

<head>

<link rel="stylesheet" href="style.css" />

</head>



<body>

<div class="scan">

<img

src=

"https://readmag.ru/wp-content/uploads/2021/04/Sozdanie-zagruzchika-animatsii-skanirovaniya-s-ispolzovaniem-HTML-i-CSS.png"

alt="barcode"

/>

</div>

</body>

</html>


 

Раздел CSS: В этом разделе мы определим CSS страницы. Используя CSS, мы добавим различные типы анимации и эффектов к нашей HTML-странице, чтобы она выглядела интерактивной для всех пользователей.

  • Сначала мы сбросим все эффекты браузера, чтобы все было согласовано во всех браузерах.
  • Затем мы определим стиль, который будет присвоен элементам, включая размер и положение.
  • Мы будем использовать @keyframe и псевдокласс, чтобы добавить эффекты анимации к определенным классам.



 

.scan {

    width: 10em;

    text-align: center;

    padding: 6px 2px;

    position: absolute;

    left: 0;

    right: 0;

    top: 50%;

    margin: auto;

    border: dashed .25em rgb(90, 85, 85);

    transform: translate(-50%);

}





.scan::after {

    content: '';

    background: rgb(23, 162, 74);

    width: 0.25em;

    height: 3.5em;

    display: block;

    position: absolute;

    top: 0;

    right: 0;

    left: 0;

    bottom: 0;

    margin: auto;

    opacity: 7;

    z-index: 2;

    animation: 2s infinite ease-in-out roll;

}





.scan img {

    height: 30px;

    width: 98%;

}





@keyframes roll {

    0% {

        transform: translateX(-50px);

    }

    50% {

        transform: translateX(50px);

    }

    100% {

        transform: translateX(-50px);

    }

}

 

Вывод:



2021-04-29T12:19:36
Программирование

7 лучших языков программирования для серверной веб-разработки

Даже если вы новичок, самое меньшее, что вы могли бы знать, это то, что веб-разработка в основном подразделяется на два аспекта: фронтенд-разработка и бэкэнд-разработка. И очевидно, что у них обоих есть соответствующий набор инструментов и технологий. Например, когда мы говорим о Frontend-разработке, в первую очередь всегда используются 3 имени — HTML, CSS и JavaScript.

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

Но поскольку существуют сотни языков программирования, какой язык следует выбрать для серверной веб-разработки… ??

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

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

 

1. JavaScript

Всякий раз, когда речь идет о веб-разработке — скорее всего, в 9 из 10 случаев речь идет о названии JavaScript. Согласно ежегодным отчетам различных популярных платформ, таких как Stack Overflow и Octoverse, JavaScript является одним из наиболее предпочтительных и ведущих языков программирования в мире технологий. Одна из основных причин этого заключается в том, что конкретный язык может использоваться как для интерфейсной веб-разработки, так и для внутренней веб-разработки. Глядя на несколько прошлых тенденций и статистику, можно сказать, что популярность Node.js каким-то образом увеличила использование JavaScript в качестве внутреннего языка для веб-разработки. Между тем, язык предоставляет вам несколько замечательных функций для внутренней разработки, таких как облегченный язык сценариев, динамический набор текста, интерпретируемый, поддержка объектно-ориентированного программирования, проверка на стороне клиента,

  • Фреймворки JavaScript для серверной веб-разработки: Next.js, Express, MeteorJS и т. д.
  • Популярные сайты, использующие JavaScript: Facebook, Google, eBay и т. д.

 

2. Python

Хотя Python довольно известен среди людей своей совместимостью с передовыми технологиями, такими как машинное обучение, Интернет вещей (IoT), Data Science и т. д., Позвольте нам сказать вам, что этот обогащающий язык программирования широко используется и очень подходит для серверной веб-разработки. также. Даже один из ведущих ИТ-гигантов в настоящее время Google в значительной степени полагается на Python, и это один из трех основных языков, используемых Google (два других — Java и C ++). Одним из основных преимуществ использования Python для веб-разработки является огромная коллекция стандартных библиотек, которые делают работу разработчиков сравнительно простой и эффективной. Дополнительные выдающиеся и уникальные особенности Python, такие как улучшенная читаемость кода. более простая интеграция с другими языками, поддержка программирования GUI, переносимость,

  • Фреймворки Python для серверной веб-разработки: Django, Flask, Pyramid и т. д.
  • Популярные веб-сайты, использующие Python: Spotify, Pinterest, Instacart и т. д.

 

3. PHP

PHP (или, можно сказать, препроцессор гипертекста) — ветеран в мире веб-разработки. Этот серверный язык сценариев с открытым исходным кодом создан в 1994 году и специально используется для веб-разработки. Поскольку это интерпретируемый язык — он также не требует компилятора, а также может работать практически во всех основных операционных системах, таких как Windows, Linux, macOS, Unix и т. д. Говоря о расширяющих функциях PHP, таких очень много. простота в освоении, кроссплатформенная совместимость, функции ООП, поддержка различных стандартных баз данных, таких как MySQL, SQLite и т. д., огромная поддержка сообщества и многие другие. В остальном PHP очень безопасен как язык сценариев на стороне сервера, поскольку в PHP имеется множество хеш-функций для шифрования данных пользователя. В частности,

  • PHP-фреймворки для серверной веб-разработки: Laravel, CodeIgniter, Symfony и т. д.
  • Популярные веб-сайты, использующие PHP: WordPress, MailChimp, Flickr и т. д.

 

4. Java

Java — еще один пример языка программирования для серверной веб-разработки. Объектно-ориентированный язык программирования широко используется для разработки веб-приложений корпоративного уровня наряду с разработкой приложений для Android, настольных приложений, научных приложений и т. д. Основное преимущество использования Java заключается в том, что он работает по принципу Write Once Run Anywhere, т. е. , скомпилированный код Java может быть выполнен на любой платформе, поддерживающей Java, без необходимости повторной компиляции. Говоря более конкретно, код Java сначала компилируется в байтовый код, который не зависит от машины, а затем этот байтовый код выполняется на JVM независимо от базовой архитектуры. Кроме того, Java поддерживает многопоточность, которая позволяет одновременное выполнение двух или более потоков для максимального использования ЦП.

  • Фреймворки Java для серверной веб-разработки: Spring, Struts, Grails
  • Популярные веб-сайты, использующие Java: LinkedIn, IRCTC, Yahoo и т. д.

 

5. Ruby

Ruby — это интерпретируемый язык программирования общего назначения, который поддерживает различные парадигмы программирования, такие как процедурное, функциональное и объектно-ориентированное программирование. Этот язык широко используется для веб-разработки по всему миру и очень рекомендуется новичкам для начала работы с серверной веб-разработкой, так как он сравнительно проще в освоении. Как и Python, Ruby также фокусируется на повышении производительности разработчиков, что в конечном итоге ускоряет процесс веб-разработки. Конкретный язык поддерживает почти все основные платформы, такие как Windows, Mac и Linux, и позвольте нам также сказать вам, что Ruby сильно основан на многих других языках программирования, таких как Perl, Lisp, Eiffel, Ada и т. д. Динамическая типизация и Duck набор текста, автоматический сбор мусора, большая стандартная библиотека, настраиваемое поведение отправки, гибкость и

  • Ruby Frameworks для серверной веб-разработки: Ruby on Rails, Sinatra, Grape и т. д.
  • Популярные сайты, использующие Ruby: Airbnb, Shopify, Slideshare и т. д.

 

6. Golang

Если вы думаете, что Go не так популярен среди разработчиков, позвольте нам сказать вам, согласно прошлогоднему отчету Stack Overflow — это был один из 5 самых любимых языков программирования разработчиками во всем мире. Go — это статически типизированный язык программирования, разработанный в Google и имеющий синтаксис, очень похожий на язык C. Язык позволяет разработчикам более эффективно создавать масштабируемые и безопасные веб-приложения. Одним из основных преимуществ использования Go является то, что он обеспечивает отличную поддержку многопоточности, а также имеет функцию сборки мусора для автоматического управления памятью. Некоторые из других значительных особенностей языка Go — это простой в изучении, читаемый код, поддерживаемый Google, скомпилированный язык, управление пакетами, мощная стандартная библиотека, поддержка параллелизма, высокая производительность и многое другое.

  • Go Framework для серверной веб-разработки: beego, echo, revel и т. д.
  • Популярные веб-сайты, использующие Go: Dropbox, SoundCloud, Dailymotion и т. д.

 

7. C#

C# — один из тех немногих языков, который в течение последних нескольких лет постоянно входит в пятерку лучших языков программирования по различным стандартным индексам. Однако вам необходимо знать, что этот универсальный язык изначально был разработан Microsoft в первую очередь для среды.Net. Наряду с серверной веб-разработкой, теперь C # широко используется во многих областях, таких как разработка приложений Windows, разработка игр и т. д. Язык предоставляет вам различные дополнительные функции, такие как более быстрая компиляция, совместимость, масштабируемость и возможность обновления, компонентно-ориентированная. & структурированный язык и многие другие. Кроме того, C # предлагает богатый набор библиотек, которые помогают разработчикам ускорить и повысить эффективность процесса разработки. Следовательно,

  • C # Framework для серверной веб-разработки: .NET
  • Популярные веб-сайты, использующие C #: GoDaddy, Marketwatch, Stack Overflow и т. д.

 

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



2021-04-29T10:44:32
Программирование

Примеры команд Tmux для управления несколькими терминальными сессиями

Сегодня мы увидим одну хорошо известную утилиту командной строки под названием «Tmux» для управления сеансами терминала. Подобно GNU Screen, Tmux также является мультиплексором терминала, который позволяет нам создавать несколько сеансов терминала и запускать более одной программы или процессов одновременно в одном окне терминала. Tmux — это бесплатная кроссплатформенная программа с открытым исходным кодом, которая поддерживает Linux, OpenBSD, FreeBSD, NetBSD и Mac OS X. В этом руководстве мы обсудим наиболее часто используемые команды Tmux в Linux, ответив, тема самым, на очередной вопрос по использованию Linux https://unixhow.com.

Установка Tmux в Linux

Tmux доступен в официальных репозиториях большинства дистрибутивов Linux.

В Arch Linux и его вариантах выполните следующую команду, чтобы установить его.

$ sudo pacman -S tmux

В Debian, Ubuntu, Linux Mint:

$ sudo apt-get install tmux

В Fedora:

$ sudo dnf install tmux

В RHEL и CentOS:

$ sudo yum install tmux

В SUSE/openSUSE:

$ sudo zypper install tmux

Итак, мы только что установили Tmux. Давайте посмотрим на несколько примеров, чтобы узнать, как использовать Tmux.

Примеры команд Tmux для управления несколькими терминальными сессиями

Ярлык префикса по умолчанию для всех команд в Tmux — Ctrl + b . Просто запомните это сочетание клавиш при использовании Tmux.

Примечание. Префиксом по умолчанию для всех экранных команд является Ctrl + a .

Создание сессий Tmux

Чтобы создать новый сеанс Tmux и присоединиться к нему, выполните следующую команду из Терминала:

tmux

Или же,

tmux new

Как только вы войдете в сеанс Tmux, вы увидите зеленую полосу внизу, как показано на скриншоте ниже.

Очень удобно проверить, находитесь ли вы в сеансе Tmux или нет.

Отключение от сессий Tmux

Чтобы отключиться от текущего сеанса Tmux, просто нажмите Ctrl + b и d . Вам не нужно нажимать оба сочетания клавиш одновременно. Сначала нажмите «Ctrl + b», а затем нажмите «d».

Как только вы отключитесь от сеанса, вы увидите результат, подобный приведенному ниже.

[detached (from session 0)]

Создание именованных сессий

Если вы используете несколько сеансов, вы можете запутаться, какие программы в каких сеансах работают. В таких случаях вы можете просто создать именованные сеансы. Например, если вы хотите выполнить некоторые действия, связанные с веб-сервером в сеансе, просто создайте сеанс Tmux с настраиваемым именем, например «веб-сервер» (или любым именем по вашему выбору).

tmux new -s webserver

Вот новый сеанс Tmux.

Как вы можете видеть на приведенном выше снимке экрана, имя сеанса Tmux — веб-сервер . Таким образом, вы можете легко определить, какая программа в каком сеансе запущена.

Чтобы отсоединить, просто нажмите Ctrl + b и d .

Список сеансов Tmux

Чтобы просмотреть список открытых сессий Tmux, запустите:

tmux ls

Пример вывода:

Как видите, у меня есть два открытых сеанса Tmux.

Создание отдельных сеансов

Иногда вам может потребоваться просто создать сеанс и не подключаться к нему автоматически.

Чтобы создать новый отдельный сеанс с именем «ostechnix», запустите:

tmux new -s ostechnix -d

Приведенная выше команда создаст новый сеанс Tmux под названием «ostechnix», но не будет к нему подключаться.

Вы можете проверить, создан ли сеанс, используя команду «tmux ls«:

Присоединение к сессиям Tmux

Вы можете подключиться к последней созданной сессии, выполнив эту команду:

tmux attach

Или же,

tmux a

Если вы хотите подключиться к какому-либо конкретному именованному сеансу, например, «ostechnix», запустите:

tmux attach -t ostechnix

Или коротко:

tmux a -t ostechnix

Убить сеансы Tmux

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

tmux kill-session -t ostechnix

Чтобы убить при прикреплении, нажмите Ctrl + b и x . Нажмите «y», чтобы завершить сеанс.

Вы можете проверить, закрыт ли сеанс, с помощью команды «tmux ls».

Чтобы убить сервер Tmux вместе со всеми сеансами Tmux, запустите:

tmux kill-server

Будьте осторожны! Это завершит все сеансы Tmux, даже если внутри сеансов есть какие-либо запущенные задания без какого-либо предупреждения.

Когда не было запущенных сеансов Tmux, вы увидите следующий вывод:

$ tmux ls

no server running on /tmp/tmux-1000/default

Разделение окон сеанса Tmux

Tmux имеет возможность разделить одно окно сеанса Tmux на несколько меньших окон, называемых панелями Tmux. Таким образом, мы можем запускать разные программы на каждой панели и взаимодействовать со всеми одновременно. Размер каждой панели можно изменять, перемещать и закрывать, не затрагивая другие панели. Мы можем разделить окно Tmux либо по горизонтали, либо по вертикали, либо по обоим сразу.

Разделить панели по горизонтали

Чтобы разделить панель по горизонтали, нажмите Ctrl + b и » (одинарная кавычка).

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

Разделить панели по вертикали

Чтобы разделить панель по вертикали, нажмите Ctrl + b и % .

Разделение панелей по горизонтали и вертикали

Мы также можем разделить панель одновременно по горизонтали и вертикали. Взгляните на следующий снимок экрана.

Сначала я сделал горизонтальное разделение, нажав Ctrl + b «, а затем разделил нижнюю панель по вертикали, нажав Ctrl + b% .

Как вы видите на скриншоте выше, я запускаю три разные программы на каждой панели.

Переключение между панелями

Для переключения между панелями нажимайте Ctrl + b и клавиши со стрелками (влево, вправо, вверх, вниз) .

Отправлять команды на все панели

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

Для этого нажмите Ctrl + b, введите следующую команду и нажмите ENTER:

:setw synchronize-panes

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

Поменять местами панели

Чтобы поменять местами панели, нажмите Ctrl + b и o .

Показать номера панелей

Нажмите Ctrl + b и q, чтобы отобразить номера панелей.

Убить панели

Чтобы убить панель, просто введите команду exit и нажмите клавишу ВВОД. Или нажмите Ctrl + b и x . Вы увидите подтверждающее сообщение. Просто нажмите «y», чтобы закрыть панель.

Увеличение и уменьшение панелей Tmux

Мы можем масштабировать панели Tmux, чтобы они соответствовали полному размеру текущего окна Терминала, для лучшей видимости текста и для просмотра большего количества его содержимого. Это полезно, когда вам нужно больше места или сосредоточиться на конкретной задаче. После завершения этой задачи вы можете уменьшить (уменьшить масштаб) панель Tmux до ее нормального положения. Подробнее по следующей ссылке.

На этом этапе вы получите базовое представление о Tmux и о том, как его использовать для управления несколькими сеансами терминала. Для получения дополнительных сведений см. Справочные страницы.

$ man tmux

Утилиты GNU Screen и Tmux могут быть очень полезны при удаленном управлении серверами через SSH. Тщательно изучите команды Screen и Tmux, чтобы профессионально управлять удаленными серверами.



2021-04-26T14:17:40
Вопросы читателей