Sed oneliners explained:
1. File Spacing, Numbering and Text Conversion and Substitution
2. Selective Printing of Certain Lines
3. Selective Deletion of Certain Lines and Special Applications
AWK oneliners explained:
1. File Spacing, Numbering and Calculations
2. Text Conversion and Substitution
3. Selective Printing and Deleting of Certain Lines
4. String creation, array creation and update on selective printing of certain lines
Perl oneliners explained
1. File spacing
2. Line Numbering
3. Calculations
4. String and Array Creation
5. Text conversion and substitution
6. Selective printing and deleting of lines
7. Handy Regular Expressions
8. A Collection of Handy Perl Scripts
Bash onliners (in progress...)
1. Working with files
2. Working with strings
3. All about redirections
4. Working with history
5. Navigating around
6. ...
#sed #awk #perl #bash #oneliners
1. File Spacing, Numbering and Text Conversion and Substitution
2. Selective Printing of Certain Lines
3. Selective Deletion of Certain Lines and Special Applications
AWK oneliners explained:
1. File Spacing, Numbering and Calculations
2. Text Conversion and Substitution
3. Selective Printing and Deleting of Certain Lines
4. String creation, array creation and update on selective printing of certain lines
Perl oneliners explained
1. File spacing
2. Line Numbering
3. Calculations
4. String and Array Creation
5. Text conversion and substitution
6. Selective printing and deleting of lines
7. Handy Regular Expressions
8. A Collection of Handy Perl Scripts
Bash onliners (in progress...)
1. Working with files
2. Working with strings
3. All about redirections
4. Working with history
5. Navigating around
6. ...
#sed #awk #perl #bash #oneliners
catonmat.net
Sed One-Liners Explained, Part I: File Spacing, Numbering and Text Conversion and Substitution
Inspired by the success of my Awk One-Liners Explained article (30,000 views in first three days), I decided to explain sed one-liners as well. These one-liners, just like the Awk one-liners, were compiled by Eric Pement. You can download them here – sed…
Forwarded from Sysadmin Tools 🇺🇦
Достойный пост об Идемпотентности
https://ru.hexlet.io/blog/posts/pochemu-vazhna-idempotentnost-i-kak-pisat-idempotentnye-bash-skripty
#hexlet #bash
https://ru.hexlet.io/blog/posts/pochemu-vazhna-idempotentnost-i-kak-pisat-idempotentnye-bash-skripty
#hexlet #bash
Хекслет
Почему важна идемпотентность и как писать идемпотентные bash-скрипты
Идемпотентность помогает проектировать более надёжные системы. Это математическая концепция, которую должен понимать каждый разработчик. Операция считается идемпотентной, если её многократное выполнение приводит к тому же результату, что и однократное выполнение.…
Forwarded from Записки админа
🖥 Смотрите какой крутой дашборд нашёл - bashtop называется. Написан на баше (требует версию 5+), умеет показывать общую информацию, детальную инфорацию по каждому процессу, позволяет процессы сортировать по различным параметрам. Очень круто выглядит, и легко конфигурируется. Вобщем, бегом смотреть, если ещё не видели его.
#bash #git #tui
#bash #git #tui
“Using Bash for templating configuration files in Docker containers” by Ivan Tuzhilkin https://link.medium.com/3i8jKJ1BT8
#docker #bash #templating
#docker #bash #templating
Medium
Using Bash for templating configuration files in Docker containers
Using environment variables instead of configuration files is pretty standard practice for the modern application development process…
https://mywiki.wooledge.org/BashPitfalls
This page is a compilation of common mistakes made by bash users. Each example is flawed in some way.
#bash
This page is a compilation of common mistakes made by bash users. Each example is flawed in some way.
#bash
Forwarded from Записки админа
🛠 hiSHtory - занятная утилита для работы с историей команд. Ведёт статистику их выполнения, сохраняет дополнительную информацию о них (например, код завершения, или время выполнения команды), и позволяет всё это дело между машинами синхронизировать.
https://github.com/ddworken/hishtory
#bash #history #будничное
https://github.com/ddworken/hishtory
#bash #history #будничное
Forwarded from Bash Days | Linux | DevOps (Роман Шубин)
✨ Ты - самый счастливый человек на планете!
Почему? Потому, что сейчас узнаешь про ONLY.
Частенько возникала необходимость разрешить пользователю запускать только определенные команды по ssh. То есть явно указать ему белый список таких команд.
Городили мы конечно знатные велосипеды с помощью костылей, rbash, симлинков, chroot и т.п.
Все эти костыли были неудобные и какие-то пиздец сложно поддерживаемые. Но решение было найдено и вполне элегантное. Всё ужеукрадено придумано за нас.
Для затравки:
Думаю идею ты понял. Пользователь подключается по ssh и может выполнить только 3 команды rsync, ls, cat.
И тут большой плюс - пользователь не получает интерактивную оболочку, то есть всё сводится к выполнению подобной конструкции:
Команда ls находится в белом списке и успешно отработает при подключении по ssh, а дальше сессия завершится.
Нехер ему на сервере делать. Есть список команд, вот пусть ими и довольствуется без интерактива.
✔️ Теперь подробности
ONLY это НЕ какая-то встроенная команда в Linux, это Bash скрипт, который аккуратно лежит в
1. Берем only из репы
2. Кидаем его в
3. Ставим chmod +x чтобы запускался
4. Делаем пару ключей для работы
P = пустая парольная фраза
f = задаем имя ключа
Содержимое ключа only pub добавляем в authorized_keys нужному пользователю, а private key отдаем, тому кто будет подключаться к серверу.
Да, файл authorized_keys у меня выглядит примерно так:
То есть запрещаем всякую лишнюю хуйню. Ну и добавляем в белый список команды, которые будем позволять запускать этому пользователю.
Важная штука, потребуется файл с правилами, называется .onlyrules. Забирай тут.
Этот файл нужно также скопировать в папку, того пользователя, которого ограничиваем, например в
Правила нужны, чтобы еще сильнее ограничить пользователя на ввод команд, этакие лимиты на регулярках и sed.
Короче это фильтры на аргументы, ключи и т.п. Можно не заморачиваться и просто обернуть нужные команды между
Все файлы из этого поста можешь взять в нашей репе. А историю создания этой пепяки и мельчайшие подробности, можешь почитать тут кстати очень занятно чтиво, правда на английском, да и похер.
Лично мне эта штука понравилась, раздал тестировщикам ключики, теперь они сами могут своих вонючих демонов перезапускать, без блуждания по серверу и фраз — да блядь, я что-то нажал и всё сломалось!
Такие дела. Увидимся!
tags: #bash #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Почему? Потому, что сейчас узнаешь про ONLY.
Частенько возникала необходимость разрешить пользователю запускать только определенные команды по ssh. То есть явно указать ему белый список таких команд.
Городили мы конечно знатные велосипеды с помощью костылей, rbash, симлинков, chroot и т.п.
Кстати про chroot писал в этом посте, почитай на досуге, мож где применишь.
Все эти костыли были неудобные и какие-то пиздец сложно поддерживаемые. Но решение было найдено и вполне элегантное. Всё уже
Для затравки:
/home/user/.ssh/authorized_keys
command="only rsync ls cat" ssh-rsa AAAAB3Nza
Думаю идею ты понял. Пользователь подключается по ssh и может выполнить только 3 команды rsync, ls, cat.
И тут большой плюс - пользователь не получает интерактивную оболочку, то есть всё сводится к выполнению подобной конструкции:
ssh user@bashdays.ru ls /home/user/
Команда ls находится в белом списке и успешно отработает при подключении по ssh, а дальше сессия завершится.
Нехер ему на сервере делать. Есть список команд, вот пусть ими и довольствуется без интерактива.
ONLY это НЕ какая-то встроенная команда в Linux, это Bash скрипт, который аккуратно лежит в
/usr/local/sbin
, положить его туда ты должен самостоятельно.1. Берем only из репы
2. Кидаем его в
/usr/local/sbin/only
3. Ставим chmod +x чтобы запускался
4. Делаем пару ключей для работы
ssh-keygen -P "" -f only
P = пустая парольная фраза
f = задаем имя ключа
Содержимое ключа only pub добавляем в authorized_keys нужному пользователю, а private key отдаем, тому кто будет подключаться к серверу.
Да, файл authorized_keys у меня выглядит примерно так:
command="only rsync cat ls", no-agent-forwarding, no-port-forwarding, no-pty, no-user-rc, no-X11-forwarding ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA
То есть запрещаем всякую лишнюю хуйню. Ну и добавляем в белый список команды, которые будем позволять запускать этому пользователю.
Важная штука, потребуется файл с правилами, называется .onlyrules. Забирай тут.
Этот файл нужно также скопировать в папку, того пользователя, которого ограничиваем, например в
/home/user/.onlyrules
Правила нужны, чтобы еще сильнее ограничить пользователя на ввод команд, этакие лимиты на регулярках и sed.
\:^ls$:{p;q}
\:^who$:{p;q}
Короче это фильтры на аргументы, ключи и т.п. Можно не заморачиваться и просто обернуть нужные команды между
\:^ и $:{p;q}
.Бонусом, в папке пользователя можешь разместить файл .onlyrc и затюнить всякие информационные сообщения. Но автор не рекомендует этого делать и использовать only без этого файла.
Все файлы из этого поста можешь взять в нашей репе. А историю создания этой пепяки и мельчайшие подробности, можешь почитать тут кстати очень занятно чтиво, правда на английском, да и похер.
Лично мне эта штука понравилась, раздал тестировщикам ключики, теперь они сами могут своих вонючих демонов перезапускать, без блуждания по серверу и фраз — да блядь, я что-то нажал и всё сломалось!
Такие дела. Увидимся!
tags: #bash #linux #utils
@ВАSНDАYS | BАSHDАYS.CОM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Useful Tools | Linux | GitOps | DevOps (Dmitry Malinin)
bunster
- скомпилируйте сценарии оболочки bash
в статические двоичные файлы.Вы когда-нибудь хотели, чтобы ваши сценарии оболочки были быстрее, портативнее и безопаснее?
Bunster
воплощает это в жизнь, преобразуя ваши сценарии оболочки в эффективные автономные двоичные файлы, которые легко распространять и развертывать на разных платформах (на данный момент поддерживается только Unix
) .В отличие от других инструментов,
Bunster
не просто оборачивает ваши сценарии в двоичный файл - он компилирует их в эффективный машинный код, используя мощную цепочку инструментов Go
. Это обеспечивает производительность, портативность и надежность.Технически говоря,
Bunster
на самом деле является shell-to-Go
транслятором, который генерирует исходный код Go
из ваших скриптов. Затем при необходимости используется Go Toolchain
для компиляции кода в исполняемую программу. https://github.com/yassinebenaid/bunster
опубликовано в @gitgate
#bash #go #binary #compiller
GitHub
GitHub - yassinebenaid/bunster: Compile shell scripts to static binaries.
Compile shell scripts to static binaries. Contribute to yassinebenaid/bunster development by creating an account on GitHub.