Поиск по сайту:

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


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

  1. 5 трюков с командной строкой Linux

В этом посте мы познакомим вас с 6 советами по командной строке, а именно: создайте чат командной строки Linux с помощью команды Netcat, выполните добавление столбца на лету из вывода команды, удалить бесхозные пакеты из Debian и CentOS, получить локальный и удаленный IP-адрес из командной строки, получить цветной вывод в терминале и декодировать различные цветовые коды и, наконец, что не менее важно, реализацию хеш-тегов в командной строке Linux. Давайте проверим их один за другим.

1. Создайте чат-сервер командной строки Linux.

Мы все уже давно пользуемся чатом. Мы знакомы с чатом Google, Hangouts, чатом Facebook, Whatsapp, Hike и некоторыми другими приложениями и интегрированными службами чата. Знаете ли вы, что команда Linux nc может превратить ваш Linux-сервер в чат-сервер с помощью всего лишь одной строки команды.

Что такое команда nc в Linux и что она делает?

nc — устаревшая команда Linux netcat. Утилита nc часто называется «швейцарским ножом» из-за количества встроенных в нее возможностей. Он используется в качестве инструмента отладки, инструмента исследования, чтения и записи в сетевое соединение с использованием TCP/UDP, прямой/обратной проверки DNS.

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

Используйте команду nc (на сервере с IP-адресом: 192.168.0.7), чтобы мгновенно создать сервер обмена сообщениями из командной строки.

nc -l -vv -p 11119

Пояснения к вышеуказанным командным переключателям.

  1. -v: означает подробный
  2. -vv: более подробный
  3. -p: номер локального порта.

Вы можете заменить 11119 на любой другой номер локального порта.

Затем на клиентском компьютере (IP-адрес: 192.168.0.15) выполните следующую команду, чтобы инициализировать сеанс чата на компьютере (где работает сервер обмена сообщениями).

nc 192.168.0.7 11119

Примечание. Вы можете завершить сеанс чата, нажав клавиши ctrl+c, а NC-чат – это услуга индивидуального общения.

2. Как суммировать значения в столбце в Linux

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

Вывод команды «ls -l».

ls -l

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

Перечислите содержимое 5-го столбца, не печатая ничего другого. Для этого мы будем использовать команду «awk». «$5» представляет 5-й столбец.

ls -l | awk '{print $5}'

Теперь используйте awk, чтобы напечатать сумму выходных данных 5-го столбца путем конвейерной обработки.

ls -l | awk '{print $5}' | awk '{total = total + $1}END{print total}'

Как удалить потерянные пакеты в Linux?

Особые пакеты — это пакеты, которые устанавливаются как зависимость от другого пакета и больше не требуются после удаления исходного пакета.

Допустим, мы установили пакет gtprogram, который зависел от gtdependent. Мы не сможем установить gtprogram, пока не установлен gtdependent.

Когда мы удаляем gtprogram, gtdependent по умолчанию не удаляется. И если мы не удалим gtdependent, он останется как пакет Orpahn без связи с каким-либо другим пакетом.

yum autoremove                [On RedHat Systems]

apt-get autoremove                [On Debian Systems]

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

4. Как получить локальный и общедоступный IP-адрес Linux-сервера

Чтобы получить локальный IP-адрес, запустите приведенный ниже однострочный скрипт.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

У вас должен быть установлен ifconfig, если нет, apt или yum необходимые пакеты. Здесь мы будем конвейеризировать вывод ifconfig с помощью команды grep, чтобы найти строку «intel addr:».

Мы знаем, что команды ifconfig достаточно для вывода локального IP-адреса. Но ifconfig генерирует множество других выходных данных, и наша задача здесь — сгенерировать только локальный IP-адрес и ничего больше.

ifconfig | grep "inet addr:"

Хотя вывод теперь стал более индивидуальным, нам нужно фильтровать только наш локальный IP-адрес и ничего больше. Для этого мы будем использовать awk для печати второго столбца только путем конвейерной передачи его с помощью приведенного выше сценария.

ifconfig | grep “inet addr:” | awk '{print $2}'

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

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

ifconfig | grep "inet addr" | awk '{print $2}' | grep -v '127.0.0.1'

Мы почти сгенерировали желаемый результат, просто замените строку (addr:) с начала. Мы будем использовать команду cut, чтобы напечатать только второй столбец. столбец 1 и столбец 2 разделены не табуляцией, а (:), поэтому нам нужно использовать разделитель (-d ) путем конвейеризации приведенного выше вывода.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:

Окончательно! Желаемый результат получен.

5. Как раскрасить терминал Linux

Возможно, вы видели цветной вывод в терминале. Также вы должны знать, как включить/отключить цветной вывод в терминале. Если нет, вы можете выполнить следующие шаги.

В Linux у каждого пользователя есть файл '.bashrc', этот файл используется для обработки вывода вашего терминала. Откройте и отредактируйте этот файл в выбранном вами редакторе. Обратите внимание, что этот файл скрыт (точка в начале файла означает скрытый).

vi /home/$USER/.bashrc

Убедитесь, что следующие строки ниже не закомментированы. т. е. оно не начинается с #.

if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dirc$
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

Когда-то сделали! Сохранить и выйти. Чтобы изменения вступили в силу, выйдите из системы и снова войдите в систему.

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

dircolors -p

Поскольку вывод слишком длинный, давайте конвейеризуем вывод с помощью команды less, чтобы мы получали вывод по одному экрану за раз.

dircolors -p | less

6. Как хешировать команды и сценарии Linux

Мы используем хеш-теги в Twitter, Facebook и Google Plus (может быть, и в других местах, я не заметил). Эти хеш-теги облегчают другим поиск хэш-тега. Очень немногие знают, что мы можем использовать хеш-тег в командной строке Linux.

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

Запустите команду, а затем создайте хеш-тег команды, чтобы мы могли найти ее позже. Допустим, у нас есть длинный скрипт, который был выполнен в пункте 4 выше. Теперь создайте для этого хэш-тег. Мы знаем, что ifconfig может запускаться пользователем sudo или root, следовательно, он действует от имени пользователя root.

ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d: #myip

Приведенный выше сценарий имеет хеш-тег «myip». Теперь найдите хеш-тег в reverse-i-serach (нажмите ctrl+r) в терминале и введите «myip». Вы также можете выполнить его оттуда.

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

Это все на данный момент. Мы прилагаем все усилия, чтобы создать для вас интересный и познавательный контент. Как вы думаете, как у нас дела? Любое предложение приветствуется. Вы можете оставить комментарий в поле ниже. Оставайтесь на связи! Слава.