А знаете ли вы, что в Bash есть особая переменная "$_" ? Из описания можно узнать, что в переменную "$_" помещается последний аргумент последней команды.
Что-то знакомое? Конечно, в Python есть примерно тоже самое.
Мы знаем, что дата первого релиза Bash (8 июня 1989) несколько раньше чем первый релиз Python (20 февраля 1991). Если учесть, что по задумке автора Python это агрегация самых успешных практик отовсюду, можно ли сказать что именно эта фишка к нему пришла из Bash? Ни подтверждения ни опровержения я пока не нашел.
Давайте просто считать это совпадением 😉
А как это может быть полезно в Bash?
Приведу простой пример, который оценят те, кто часто работает в терминале.
Допустим, нам надо создать директорию и зайти в неё. Что обычно делаем?
:~$ mkdir foldername
:~$ cd foldername
:~/foldername$
Как это сделать в одну команду?
:~$ mkdir foldername && cd foldername
:~/foldername$
Уже лучше, но хочется короче, без повторов. Вот тут и пригодится наша переменная. Напомню, что в неё сохраняется последний аргумент предыдущей команды.
:~$ mkdir foldername && cd $_
:~/foldername$
_________________
PS.
Символы "&&"" разделяют команды и означают, что требуется выполнить вторую команду только если первая завершилась успешно.
#linux#tricks
A useful command when you encounter conflicts while cherry-picking:
tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1)
#tricks@sudo_recast
• Нашел очень крутой ресурс с бесплатными лабораторными работами и туториалами для ИБ специалистов. Единственный минус - не вся информация переведена на русский язык. Никаких видео — только полностью интерактивные лаборатории, разработанные для более быстрого и эффективного обучения. Даже есть ИИ помощник, если возникнут трудности с выполнением заданий...
➡️https://labex.io/ru
• LEARNING PATH:
➡Learn Linux;
➡Learn DevOps;
➡Learn Cybersecurity;
➡Learn Database;
➡Learn Python;
➡Learn Docker;
➡Learn Java;
➡Learn Jenkins;
➡Learn Machine Learning;
➡Learn Kali Linux.
• PROJECTS & TUTORIALS:
➡All Interactive Tutorials;
➡Linux Projects;
➡Python Projects;
➡Java Projects;
➡Numpy Projects;
➡Linux Tutorial;
➡Docker Tutorial;
➡Cybersecurity tutorial;
➡Free Labs;
➡Linux Commands Cheat Sheet.
• PLAYGROUNDS:
➡Online Linux Terminal;
➡Online Docker Playground;
➡Online Python Playground;
➡Online Golang Playground;
➡Online C++ Playground;
➡Online Java Playground;
➡Online Rust Playground;
➡Online MySQL Playground;
➡Online Ansible Playground;
➡Online Jenkins Playground.
• LATEST TUTORIALS:
➡Python Itertools Combinations;
➡Docker Compose with Host Network;
➡Systemctl daemon-reload in Linux;
➡Match Patterns with Bash Regex;
➡DevOps Free Labs;
➡Find Key with Max Value in Python Dictionary;
➡Linux Free Labs;
➡Bash Function Return Values;
➡Area and Circumference of a Circle in C;
➡Cybersecurity Free Labs.
#Linux#DevOps#ИБ
• Весьма любопытный tui тренажёр для обучения основам работы в терминале. Содержит около 70 заданий, которые вам предстоит решить. Проходить увлекательно и полезно, так что рекомендую для самообразования и получения необходимого опыта.
➡️https://github.com/learnbyexample/TUI-apps
• Кстати, у автора есть ещё несколько tui программ, с помощью которых можно потренироваться в работе с awk, grep, sed и регулярками...
#CLI#Linux
• the art of command line - невероятно полезный гайд по использованию командной строки в Linux, к которому приложили руку множество авторов и переводчиков. Еще здесь есть разделы про Windows и macOS, а также универсальные советы, применимые для операционных систем на базе UNIX. Подходит как для новичков, так и для опытных специалистов. Гайд опубликован на разных языках, включая русский.
➡Описание;
➡Основы;
➡Ежедневное использование;
➡Процессинг файлов и информации;
➡Системный дебаггинг;
➡В одну строчку;
➡Сложно, но полезно;
➡MacOS only;
➡Windows only;
➡Больше информации по теме;
➡Дисклеймер.
➡️https://github.com/jlevy/the-art-of-command-line
#Linux#CLI
🪨Все по песочницам!
• Представьте, что вам нужно запустить некоторый процесс Linux в изолированной среде. Так, чтобы он не смог нанести вред системе, на которой запускается. Какие инструменты мы используем в таких случаях? Первое, что приходит в голову, это технологии виртуализации или контейнеризации. Но что, если нам нужно что-то более легковесное и простое в использовании? Bubblewrap — это утилита командной строки, которая является одним из проектов сообщества Containers (знаменито авторством таких инструментов, как Podman, Buildah, Skopeo и др.).
• Когда может быть полезен:
➡Невысокие требования к изоляции процесса и системы;
➡Недопустимы накладные расходы как у более сложных средств изоляции;
➡Тестирование (поведения) программы в разных условиях эксплуатации;
➡Запуск программ/скриптов/кода, полученных из ненадежных источников;
➡Лимитирование расхода ресурсов для отдельно взятого процесса;
➡Изменение структуры файловой системы для запускаемого процесса.
• Стоит сказать, что bubblewrap — это не то ПО, которое предоставляет готовую "песочницу" с определенной политикой безопасности. В некоторых вариантах использования bubblewrap требуется граница безопасности между изолированной средой и реальной системой; в других вариантах использования требуется возможность изменять расположение файловой системы для процессов внутри изолированной среды, но не ставится цель создания границы безопасности. В результате уровень защиты между изолированными процессами и хост-системой определяется аргументами, передаваемыми bubblewrap.
• Таким образом, используя аргументы командной строки, вы сами определяете уровень изоляции запускаемого процесса. При этом под капотом Bubblewrap использует стандартные средства Linux, которые не требуют повышения привилегий пользователя: chroot, clone, seccomp, cgroups, landlock.
• Основные плюсы:
➡Не требуются root-привилегии;
➡Изолирует работу только одного процесса;
➡Может использоваться для изоляции приложений с графическим UI;
➡Предоставляет большой спектр настроек лимитирования;
➡Простая установка и использование;
➡Низкие накладные расходы на изоляцию.
• Основной минус — это то, что ограничение на ресурсы системы устанавливаются только с использованием cgroup. Это значит, что для полноценной работы bwrap в Docker/Kubernetes-контейнере последний придется запустить в privileged-режиме!
➡️https://github.com/containers/bubblewrap
• Дополнительно:
• Firejail — гибкий и мощный инструмент изоляции, который не просто контролирует доступ к файловой системе, а полностью отрезает приложение от основной системы с помощью механизма Linux Namespaces. Подробнее тут: https://t.me/it_secur/1053
#Linux#Песочница
Linux Kernel Teaching. Laboratory
*
Большой и годный сборник лекций и лабораторных работ по ядру Linux. Лекции посвящены теоретическому исследованию ядра Linux.
Лабораторки сделаны в стиле инструкций.
Будет полезно: админам, драйверописателям и специальным разработчикам
*
Link
#linux#kernel
Bashtop, Linux resource monitor that shows usage and stats for processor, memory, disks, network and processes.
#tools#terminal#linux
@thedevs
https://kutt.it/OBxUjn