ch
Feedback
GNU/Linux | Notes

GNU/Linux | Notes

前往频道在 Telegram

Open Source, GNU/Linux, Debian/Ubuntu, Dotfiles, Software, Scripts, Notes, Terminal, Shell, Tools, Games, Fun, Misc, Music, Geek, Free Software Movement. Почта: krekhov.dev@gmail.com Кто я: https://t.me/krxnotes/246 GitHub: https://github.com/krekhovx

显示更多
2 233
订阅者
无数据24 小时
-27 天
-330 天
帖子存档
Виртуальная память, общий вид. ——— @krxnotes
Виртуальная память, общий вид. ——— @krxnotes

Утилита findmnt. Выводит примонтированные ФС в виде древовидной формы: $ findmnt Вывести в виде списка: $ findmnt -l Вывести
Утилита findmnt. Выводит примонтированные ФС в виде древовидной формы:
$ findmnt
Вывести в виде списка:
$ findmnt -l
Вывести определенный тип файловой системы, например ext4:
$ findmnt -t ext4
——— @krxnotes

Утилита tree, которая выводит содержимое директории в древовидном формате. Установка: $ sudo apt-get install tree Вывод содер
Утилита tree, которая выводит содержимое директории в древовидном формате. Установка:
$ sudo apt-get install tree
Вывод содержимого директории:
$ tree /path/to/directory
Указать глубину:
$ tree -L 2
Указать размер файлов:
$ tree -h
——— @krxnotes

Утилита tig — это текстовый интерфейс для работы с системой контроля версий Git. Она предоставляет удобный способ просмотра и
Утилита tig — это текстовый интерфейс для работы с системой контроля версий Git. Она предоставляет удобный способ просмотра истории коммитов, различий между версиями файлов и других данных, связанных с репозиториями Git, в терминале. Основные функции tig включают: - Просмотр истории коммитов в виде удобного списка. - Отображение изменений в файлах между коммитами. - Навигация по веткам и тегам. - Интерактивный поиск по истории коммитов. Тig особенно полезен для разработчиков, которые предпочитают работать в терминале и нуждаются в мощных инструментах для анализа состояния репозитория. -> Github Проект написан на С и имеет около 180 issues, на мой взгляд отличный проект, чтобы начать путь вкладчика. ——— @krxnotes

Foo и Bar - смысл, традиция, история. Это часто используемые метасинтаксические переменные в программировании и компьютерной литературе. Они служат для обозначения абстрактных переменных, функций, или других объектов, когда конкретные имена не важны или не известны. Использование этих терминов помогает разработчикам сосредоточиться на структуре и логике кода, а не на именах переменных. Вот несколько причин, почему foo и bar так часто используются: 1. Традиция: Эти термины существуют с самого начала эры программирования и используются в учебниках, документации и примерах кода. Эта традиция продолжается и по сей день, потому что многие разработчики уже знакомы с этими терминами. 2. Универсальность: foo и bar не несут в себе никакого конкретного значения, что делает их идеальными для использования в качестве временных имен. Они могут обозначать что угодно — от переменных и функций до классов и объектов. 3. Легкость в запоминании: Эти короткие и простые слова легко запомнить и набрать, что делает их удобными для использования в примерах и тестовом коде. 4. Избежание конфликтов: Поскольку foo и bar не используются в реальных проектах, они минимизируют вероятность конфликтов с именами переменных, которые уже могут быть в коде. История этих метасинтаксических переменных восходит к ранним дням компьютерной науки и хакерской культуры. Они, вероятно, происходят от военных терминов "FUBAR" (fouled up beyond all recognition -> испорченный до неузнаваемости), используемых во время Второй мировой войны, которые потом были адаптированы в область компьютерных наук. Вместе с "foo" и "bar" иногда используются и другие похожие термины, такие как "baz", "qux", "quux" и так далее, особенно когда требуется несколько абстрактных имен. ——— @krxnotes

Free Software Movement и Open Source - это схожие, но разные концепции. Free Software Movement (движение за свободное программное обеспечение) фокусируется на свободах пользователей: запускать, изучать, изменять и распространять программы. Его основоположник - Ричард Столлман. Free Software Movement использует термин "свободное программное обеспечение" (free software), где "free" означает свободу, а не отсутствие стоимости. Open Source (открытое ПО) подчеркивает практические преимущества открытого кода: улучшенная безопасность, гибкость и сотрудничество. Оно менее акцентируется на этических вопросах по сравнению с Free Software Movement. ——— @krxnotes

Адресное пространство процесса (память процесса). Когда программа запускается на выполнение, ядро выделяет для нее место в оперативной памяти. Память запущенной программы (процесса) разделена на ряд непрерывных секций. Команды из секций выполняются последовательно. При развертывании программы секции разделяются и каждая готова для работы. Некоторые секции уже известны перед запуском процесса .text, .data, .bss. Их можно посмотреть после компиляции:
$ size ./a.out
.text еще может называться code space. .data может называться data space. .text (младшие адреса 0x0) В этой секции хранится код программы, машинные инструкции (исполняемый код), сюда нельзя ничего записывать. Эта секция существует в read-only чтобы предотвратить несанкционированное изменение кода программы. .data Хранятся глобальные, статические переменные, которые определены, например:
int i = 2;
char name[20];
изначально эта секция пуста, и существует на чтение/запись. .bss Хранятся глобальные, статические переменные, которые НЕ определены, например:
int i;
int x;
.heap Динамическая аллокация памяти (для долгоживущих объектов). Она аллоцируется, когда процесс стартует, и не привязана ни какому файлу (месту на диске), а .text, .data, .bss можно увидеть в /proc/$(pidof a.out)/maps файле. .stack Может расширяться и сжиматься по мере вызова функций (frames). Содержит аргументы функций, локальные переменные функций (короткоживущие объекты). Вызов функции приводит к помещению в стек (создание кадра), когда функция возвращает управление, кадр уничтожается. Размер у стека фиксированный (8 MiB). .env (0xfffffff...) Аргументы командной строки и переменных окружения. Это могут быть argc, argv, envp (переменные окружения). .debug Ключ -g при компиляции, добавляется отладочная информация. Программист, когда использует в программе указатели, использует память процесса (адресное пространство) и работает только с ней! Указатели = работа с адресным пространством процесса (логические адреса). ——— @krxnotes

=) ——— @krxnotes
=) ——— @krxnotes

Это не реклама, просто делюсь. Приобрел портативную игровую приставку Anbernic RG35XX Plus на базе Linux с возможностью играт
+2
Это не реклама, просто делюсь. Приобрел портативную игровую приставку Anbernic RG35XX Plus на базе Linux с возможностью играть в ретро-игры, поддерживает игры с различных платформ типа PSP, PS1, Game Boy и т.д (платформ довольно много, а игр около 5000). Подарок прям радует, сборка отличная, картинка неплохая (IPS экран), но вот для меня экран маловат (разрешение 640x480) глаза устают после часа игры, благо консоль имеет порт Mini HDMI, приобрел кабель и подключаю консоль к монитору, проблема глаз решена. Я удивился как быстро и без проблем картинка подстроилась под большой монитор. Я хотел приобрести Steam Deck, но решил начать с чего-то более простого. Короче, старичкам советую! ——— @krxnotes

Случайно увидел. Dirk из USA украинизировался! Выглядит очень смешно )) ——— @krxnotes
Случайно увидел. Dirk из USA украинизировался! Выглядит очень смешно )) ——— @krxnotes

Что такое Debian Desktop и какие пакеты относятся к Desktop окружению ? Debian Desktop - это рабочее окружение, предназначенное для использования на настольных компьютерах. Оно включает в себя различное программное обеспечение, такое как графические оболочки (например, GNOME, KDE, Xfce), офисные приложения, веб браузеры, мультимедийные приложения и другие инструменты, необходимые для повседневной работы на ПК. Некоторые пакеты, которые обычно относятся к Debian Desktop, включают в себя: 1. GNOME или KDE (графические оболочки) 2. LibreOffice (офисный пакет) 3. Firefox или Chromium (веб-браузеры) 4. VLC (мультимедийный проигрыватель) 5. GIMP (графический редактор) 6. Thunderbird (почтовый клиент) 7. Любые другие приложения, необходимые для работы и развлечений на рабочем столе Эти пакеты обычно включены в образы установочных дисков Debian Desktop или доступны для установки из официальных репозиториев Debian. В первую очередь Debian является серверной операционной системой, которая широко используется для управления серверами и сетями. Debian предлагает стабильность, безопасность и широкий выбор программного обеспечения, что делает его популярным выбором для развертывания серверов. ——— @krxnotes

Кодовые имена дистрибутива Debian. Дистрибутивы Debian традиционно называются в честь персонажей из анимационного фильма "История игрушек" (Toy Story) студии Pixar. Вот несколько примеров: ... Debian 5.0 - Lenny (в честь бинокля Лени) Debian 6.0 - Squeeze (в честь инопланетных игрушек) Debian 7.0 - Wheezy (в честь пингвина Визи) Debian 8.0 - Jessie (в честь Джесси, ковбойки) Debian 9.0 - Stretch (в честь осьминога Стретча) Debian 10.0 - Buster (в честь собаки Бастера) Debian 11.0 - Bullseye (в честь быка по имени Булзай) Debian 12.0 - Bookworm (в честь книжного червя Букворм) Debian 13.0 - Trixie (в честь динозавра Трикси) ... и т.д. а первая версия Debian 1.1 называлась в честь главного героя Базза Лайтера - (Buzz). Забавно не правда ли =) Этот принцип сохранения имен в честь персонажей из "Истории игрушек" является традицией и помогает легко идентифицировать различные версии дистрибутива. ——— @krxnotes

Что такое метапакеты ? Существуют пустые пакеты, в которых описаны только зависимости и метаданные (документация и т.д). Они обеспечивают установку группы взаимосвязанных программ. В описании пакета можно увидеть: Section: metapackages (но это необязательно и не всегда встречается). Например, пакет build-essential является метапакетом. В таких пакетах нет исходников и подобного, а есть только debian/ директория с описанием. Такие пакеты существуют лишь ради эффектов, которые их метаданные оказывают на стек работы с пакетами. build-essential предоставляет необходимые инструменты для сборки пакетов в Debian, включая компиляторы, библиотеки и другие инструменты, но сам по себе не содержит какого-либо программного кода. Он лишь указывает на другие пакеты, которые необходимы для сборки программ в Debian. Вся суть этого пакета в его Depends и метаданных. Этот пакет необходим для сборки и компиляции программ из исходников. И включает: 1. Компилятор GCC (GNU Compiler Collection). 2. Утилиты для сборки, такие как make. 3. Заголовочные файлы и библиотеки для разработки. ——— @krxnotes

Довольно часто приходится обращаться к Docker, чтобы не засорять свою основную Debian машину ненужными пакетами/зависимостями
Довольно часто приходится обращаться к Docker, чтобы не засорять свою основную Debian машину ненужными пакетами/зависимостями. Запустить Debian образ и развернуть его в интерактивном режиме можно так:
$ docker run -it debian
Можно подключиться к нужному контейнеру с другого tty/pts (чтобы было больше рабочих окон, терминалов). Узнать идентификатор контейнера и подключиться. На другом терминале выполнить:
$ docker ps
$ docker exec -it <ID> /bin/bash
Аналогичную работу можно произвести и с другими дистрибутивами, просто найти нужный образ и запустить его, поиск на Docker Hub осуществляется таким образом:
$ docker search <rocky-distr-for-example>
——— @krxnotes

Что такое виртуальные пакеты ? Виртуальный пакет не существует сам по себе, он служит для обозначения того, что разные реальн
+1
Что такое виртуальные пакеты ? Виртуальный пакет не существует сам по себе, он служит для обозначения того, что разные реальные пакеты могут предоставлять одинаковую функциональность. Другими словами: виртуальные пакеты представляют собой абстракции, которые не содержат собственных файлов, а служат для обозначения функциональности, предоставляемой одним или несколькими реальными пакетами. Например, существует виртуальный пакет mail-transport-agent. Он обозначает любую программу, которая может работать как почтовый транспортный агент (MTA). Реальные пакеты, такие как postfix, exim4, sendmail, msmtp и т.д, могут удовлетворять эту роль (смотреть скриншот). Это позволяет системам управления пакетами (таким как apt) гибко управлять зависимостями, предоставляя пользователю выбор из множества возможных реализаций. Когда пользователь пытается установить виртуальный пакет mail-transport-agent, пакетный менеджер сообщает, что есть несколько реальных пакетов, которые предоставляют эту функциональность. Однако пакетный менеджер не выбирает автоматически один из них, так как они являются альтернативами, и пользователь должен сам выбрать, какой именно реальный пакет установить. Еще пример, существует виртуальный пакет mcedit, при его установке скачается реальный пакет mc и его компоненты (mcedit связь с mc), грубо говоря это alias на необходимые пакеты. Еще пример, пакет awk предоставляет на выбор три пакета: original-awk, mawk, gawk. Для удобного просмотра информации о пакетах я использую aptitude, очень полезный инструмент для работы мейнтейнера. ——— @krxnotes

There’s a kernel of truth in the old Unix joke, "the only command you need to know is man." ——— @krxnotes

Процесс разработки Debian. Архивы пакетов. ——— @krxnotes
Процесс разработки Debian. Архивы пакетов. ——— @krxnotes

GNU философия. Философия GNU (GNU's Not Unix) заключается в приверженности свободному и открытому программному обеспечению. О
GNU философия. Философия GNU (GNU's Not Unix) заключается в приверженности свободному и открытому программному обеспечению. Основные принципы GNU включают в себя: Свобода использования: Пользователи имеют право использовать программное обеспечение в любых целях без каких-либо ограничений. Свобода изучения: Пользователи имеют право изучать, адаптировать и модифицировать программное обеспечение по своему усмотрению. Свобода распространения: Пользователи имеют право распространять копии программного обеспечения и делиться им с другими. Свобода улучшения: Пользователи имеют право улучшать программное обеспечение и делиться своими улучшениями с сообществом. GNU философия призывает к сотрудничеству, обмену знаниями и созданию программного обеспечения, которое будет доступно для всех без ограничений и безопасно для использования. ——— @krxnotes

Debian философия. Debian - это операционная система, основанная на свободном и открытом программном обеспечении. Философия De
Debian философия. Debian - это операционная система, основанная на свободном и открытом программном обеспечении. Философия Debian, известная как Debian Social Contract, включает в себя следующие принципы: Свобода: Debian стремится к созданию операционной системы, которая полностью основана на свободном программном обеспечении. Это означает, что пользователи имеют право использовать, изучать, изменять и распространять программное обеспечение без каких-либо ограничений. Независимость: Debian не зависит от коммерческих интересов или корпоративных спонсоров. Он остается независимым проектом, основанным на принципах свободного программного обеспечения. Стабильность: Debian стремится к созданию стабильной и надежной операционной системы, которая будет поддерживаться и обновляться на протяжении длительного времени. Сотрудничество: Debian активно поддерживает сотрудничество и обмен идеями с другими проектами и сообществами, чтобы создать лучшее программное обеспечение для всех. Философия Debian подчеркивает важность свободы, независимости, стабильности и сотрудничества в разработке программного обеспечения и обеспечении пользователям доступа к качественной операционной системе. ——— @krxnotes

Что такое трассировка скрипта ? Размещение информативных сообщений в разных точках сценария для отслеживания протекания выполнения скрипта называется трассировкой. Можно прописать в необходимых местах команды echo, а можно в shebang добавить параметр -x, например:
#!/bin/bash -x
...
или:
#!/bin/bash
set -x
...
или без изменения скрипта:
bash -x ./script.sh
Если нужно отключить данную опцию, можно прописать +x, например:
bash +x ./script.sh
——— @krxnotes