Useful Tools | Linux | GitOps | DevOps
5.83K subscribers
158 photos
2 videos
7 files
689 links
Полезные бесплатные opensource инструменты на все случаи жизни, а иногда и советы.

Понравился проект из поста - поддержи автора звездой!

Автор: @dmitry_malinin
Web: https://gitgate.d3.ru

Сотрудничество: @maxgrue
Обсуждение: @gittalk
Download Telegram
ipbash - функции для работы с IP и подсетями на чистом bash

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

С помощью ENTRYIP, можно убрать подсети, которые перекрывают друг-друга: Например подсеть 192.168.1.0/24 входит в подсеть 192.168.0.0/23. И для бана достаточно будеть оставить только последнюю.

А если в списке есть еще подсеть 192.168.2.0/23, то с помощью функции MERGESUBNETS можно объединить подсети 192.168.0.0/23 192.168.2.0/23 в одну 192.168.0.0/22, уменьшив список и увеличив скорость работы фильтра.

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

https://github.com/tagd-tagd/ipbash

опубликовано в @gitgate

В рамках акции "Я пиарюсь". Просьба поддержать звездочкой в репку.

#bash #dev #ip #lib
👍9🔥3
tagdoc - небольшой скрипт для поиска по тегам в текстовом руководстве (TUI/CLI)

Консольный (TUI/CLI) справочник для поиска информации по тегам. Может быть использован сотрудниками в качестве адресной книги, справочника.

Студентами, при изучении новых языков программирования.

Cотрудниками IT, для записи полезных, но редко используемых конструкций, а также в качестве дополнения для man, в котором очень мало примеров использования.

Может использоваться любыми сотрудниками для записи интересных ссылок/статей.

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

В отличие от grep поиск производится только по тэгам, не затрагивая тело статьи(заметки/комментария). Строка тэгов может выделяться цветом. Весь вывод идет в stdout, поэтому дополнительно можно воспользоваться любым фильтром (grepsed)

https://github.com/tagd-tagd/tagdoc

опубликовано в @gitgate

В рамках акции "Я пиарюсь". Просьба поддержать звездочкой в репку.

#bash #dev #tui #cli #tag
🔥9👍4
Christmas-tree - просто поздравление с наступающем Новым Годом написанное на голом bash.

Рекомендую заглянуть в код, там красиво.. А скоро от автора и бесплатный курс по bash начнется. Анонс будет !

https://github.com/tagd-tagd/Christmas-tree

поделился автор: @Tagd_Tagd

опубликовано в @gitgate


#bash #chritmas
🔥23👍12
Совет дня:

Немного полезных CLI команд в bash про повторение аргументов.

!^      first argument
!$ last argument
!* all arguments
!:2 second argument

!:2-3 second to third arguments
!:2-$ second to last arguments
!:2* second to last arguments
!:2- second to next to last arguments

!:0 the command
!! repeat the previous line


публиковано в @gitgate

#tips #bash #cli
👍36🔥12
Совет дня:

Работающий почти везде visual bell для включение в bash скрипты, например для индикации окончания какого то этапа.

printf '\e[?5h'; sleep 0.2 ; printf '\e[?5l'


опубликовано в @gitgate

#tips #bash
👍26🔥8
Совет дня:

Простая арифметика прямо в CLI для bash

echo $((2+2*4))  


публиковано в @gitgate

#tips #bash #cli
🔥15👍10
bunster - скомпилируйте сценарии оболочки bash в статические двоичные файлы.

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

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

Технически говоря, Bunster на самом деле является shell-to-Go транслятором, который генерирует исходный код Go из ваших скриптов. Затем при необходимости используется Go Toolchain для компиляции кода в исполняемую программу.

https://github.com/yassinebenaid/bunster

опубликовано в @gitgate

#bash #go #binary #compiller
👍14🔥12
bashtop - монитор ресурсов, который показывает использование и статистику процессора, памяти, дисков, сети и процессов.

Возможности:
-простота в использовании, система меню, вдохновленная игрой.
- быстрый и отзывчивый пользовательский интерфейс с выбором процесса клавишами ВВЕРХ и ВНИЗ.
- функция отображения подробной статистики выбранного процесса.
- возможность фильтровать процессы.
- легкое переключение между вариантами сортировки.
- отправка SIGTERM, SIGKILL, SIGINT выбранному процессу.
- меню пользовательского интерфейса для изменения всех параметров файла конфигурации.
- график автоматического масштабирования для использования сети.
- показывает сообщение в меню, если доступна новая версия
- показывает текущие скорости чтения и записи дисков.
- несколько методов сбора данных, которые можно переключать при работе в Linux.

https://github.com/aristocratos/bashtop

опубликовано в @gitgate

#bash #cli #tui #top
🔥7👍6
Совет дня:

Показать в bash длину массива

echo $#<array>[@]

или если совсем правильно

echo ${#arrayname[@]}


Пример:

--> ARRAY=("one" "two" "three")
--> echo $ARRAY
one two three
--> echo $#ARRAY[@]
3


опубликовано в @gitgate

#tips #bash
👍28🔥10
Совет дня:

Как в bash удалить повторы из массива

<uniques>=($(echo "${<array>[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))


Пример:

--> ARRAY=("one" "one" "two" "two" "two" "one" "three")
--> UNIQUES=($(echo "${ARRAY[@]}" | tr ' ' '\\n' | sort -u | tr '\\n' ' '))
--> echo $UNIQUES
one three two

улучшенный вариант от Ивана Гришина - @JohnMcGru

UNIQUES=( $(printf "%s\n" "${ARRAY[@]}" | sort -u ) )
echo "${UNIQUES[@]}"
###one three two

и правильнее, и короче
внутри скобочек VAR=(...) можно оставлять переводы строк

VAR=( it
  is
  OK
)
echo "${VAR[@]}"

опубликовано в @gitgate

#tips #bash
👍19🔥16
Совет дня:

Или bash Default values

Частенько требуется в bash скрипте указать значение переменной по умолчанию, например если не задано прямо.. Однако не все так просто...

Краткий списочек с описанием логики.


# bash one liner                                
# --------------

x="foo" && echo "${x:-bar} (x = $x)"
# foo (x = foo)

x="" && echo "${x:-bar} (x = $x)"
# bar (x = )

unset x && echo "${x:-bar} (x = $x)"
# bar (x = )

x="foo" && echo "${x-bar} (x = $x)"
# foo (x = foo)

x="" && echo "${x-bar} (x = $x)"
# (x = )

unset x && echo "${x-bar} (x = $x)"
# bar (x = )

x="foo" && echo "${x:=bar} (x = $x)"
# foo (x = foo)

x="" && echo "${x:=bar} (x = $x)"
# bar (x = bar)

unset x && echo "${x:=bar} (x = $x)"
# bar (x = bar)

x="foo" && echo "${x=bar} (x = $x)"
# foo (x = foo)

x="" && echo "${x=bar} (x = $x)"
# (x = )

unset x && echo "${x=bar} (x = $x)"
# bar (x = bar)

x="foo" && echo "(x = $x)" && echo "${x:?error message}"
# (x = foo) foo

x="" && echo "(x = $x)" && echo "${x:?error message}"
# (x = ) bash: x: error message

unset x && echo "(x = $x)" && echo "${x:?error message}"
# (x = ) bash: x: error message

x="foo" && echo "${x:+bar} (x = $x)"
# bar (x = foo)

x="" && echo "${x:+bar} (x = $x)"
# (x = )

unset x && echo "${x:+bar} (x = $x)"
# (x = )

опубликовано в #gitgate

#tips #bash
🔥17👍10
fly-to-podman - небольшой BASH скрипт, который помогает вам мигрировать из Docker в Podman.

Он переносит ваши контейнеры, образа и мапленные каталоги Docker в Podman, а также сохранить данные и конфигурации вашего контейнера (маунты, порты и т. д.).

Возможности:

- миграция образов Docker в Podman (включая теги)
- миграция мапленных каталогов (volumes) Docker в Podman (включая все данные)
- миграция сетей Docker в Podman (включая имена, IP-адресе, шлюзы, IP-диапазоны и т. д.)
- миграция контейнеров Docker в Podman (включая имена, идентификаторы и статусы, такие как политика перезапуска и т. д.)
- сохранение данных и конфигурации контейнера (маунты, открытые порты и т. д.)

https://github.com/Edu4rdSHL/fly-to-podman

опубликовано в @gitgate

#docker #podman #bash #converter
👍16🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
Bashly - генератор кода и Bash CLI Framework

Bashly - приложение командной строки CLI (написанное на Ruby), позволяющее создавать многофункциональные инструменты командной строки bash.

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

https://github.com/DannyBen/bashly

опубликовано в @gitgate

#bash #cli #ruby
👍8🔥5
Совет дня:

Условные выражения для файлов в bash

## True if file exists.
[[ -a ${file} ]]

## True if file exists and is a block special file.
[[ -b ${file} ]]

## True if file exists and is a character special file.
[[ -c ${file} ]]

## True if file exists and is a directory.
[[ -d ${file} ]]

## True if file exists.
[[ -e ${file} ]]

## True if file exists and is a regular file.
[[ -f ${file} ]]

## True if file exists and is a symbolic link.
[[ -h ${file} ]]

## True if file exists and is readable.
[[ -r ${file} ]]

## True if file exists and has a size greater than zero.
[[ -s ${file} ]]

## True if file exists and is writable.
[[ -w ${file} ]]

## True if file exists and is executable.
[[ -x ${file} ]]

## True if file exists and is a symbolic link.
[[ -L ${file} ]]


PS. в линукс все есть файл или поток :)

PPS. И переменные окружения.


опубликовано в @gitgate

#tips #bash
👍38🔥13