GNU/Linux | Notes – Telegram
GNU/Linux | Notes
2.39K subscribers
111 photos
8 files
75 links
Open Source, Dotfiles, Debian/Ubuntu, Software, Linux, Scripts, Notes, Terminal, Shell, Gnu, Tools, Games, Fun, Free Software Movement.

Автор: Кирилл Рехов
Почта: krekhov.dev@gmail.com
Кто я: https://news.1rj.ru/str/krxnotes/246
GitHub: https://github.com/krekhovx
Download Telegram
Теперь все понятно =)

#fun
😁211👍1
😁18👎2🤮21😱1👌1🥴1🍌1🦄1
dirname и basename

Удалить последний компонент из имени файла:
$ dirname /usr/local/bin/file

/usr/local/bin

Удалить каталог и суффикс из имени файла:
$ basename /usr/local/bin/file

file

#shell #utils
16🔥1
Удаленное исполнение скрипта/команд по SSH (способы)

1. Исполнить команды на удаленном сервере:
$ ssh <user>@<ip> 'команда1; команда2; команда3'


2. Исполнить скрипт на удаленном сервере:
$ ssh <user>@<ip> bash -s < noscript.sh


Осуществляется перенаправление сценария noscript.sh с машины А на машину Б через сокет. bash -s считывает из стандартного ввода.

3. Исполнить скрипт на удаленном сервере:
$ scp noscript.sh <user>@<ip>:/path/to/destination/
$ ssh <user>@<ip> 'bash /path/to/destination/noscript.sh'


#shell #utils
👍17
Получить информацию о пользователе

Получить информацию 1000 uid:
$ getent passwd 1000

kory:x:1000:1000:kory,,,:/home/kory:/bin/bash

Получить только имя пользователя 1000 uid:
$ getent passwd 1000 | cut -d ':' -f1

kory

Получить имена пользователей от 1000 до 2000 uid:
$ getent passwd {1000..2000} | cut -d: -f1

kory
resu
gvan

#shell #utils
6👍1
Создание временного файла или директории

Раньше для создания временного файла я писал:
$ t=$(cat /dev/urandom | tr -dc 'a-z0-9' | head -c 8)
$ touch "/tmp/$t"


Узнал, что существует mktemp. Например, создание временного файла:
$ tmpdir=$(mktemp)

Появится файл: /tmp/tmp.iFRIpUv0xt
После работы с файлом не забудьте его удалить.

Создать временную директорию:
$ tmpdir=$(mktemp -d)

Появится директория: /tmp/tmp.MUsZJ1cc0C
После работы с директорией не забудьте ее удалить.

#shell #utils
9👍4
Откуда ноги растут

Возможно, вам будет интересно узнать, откуда я беру информацию/идеи для постов.

Ссылка на репозиторий с моими многочисленными Linux заметками: https://github.com/krekhovx/krxnotes

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

Данный канал является более упрощенной и красивой версией этих заметок =) Буду рад если вы поддержите репозиторий ⭐️ звездой. Спасибо.

#info
👍22❤‍🔥31😍1
Сколько людей трудится над Debian?

Точное количество людей, работающих над Debian, может варьироваться, так как проект является полностью открытым и добровольным. В Debian участвуют как официальные разработчики, так и множество добровольцев со всего мира. По состоянию на 2023 год, в проекте участвует более 1000 официальных разработчиков, но если учитывать всех участников, включая тех, кто вносит свой вклад в виде пакетов, документации, тестирования и поддержки, то общее количество людей может быть значительно выше.

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

Кстати, про пакеты: в Debian насчитывается около 30.000 пакетов. Это очень круто 🥳

#debian
10👍42🆒1
Debra + Ian

Debian - это операционная система с открытым исходным кодом, основанная на ядре Linux. Она была создана Иэном Мердоком (Ian Murdock) в 1993 году.

Название Debian произошло от комбинации имен Иэна Мердока и его тогдашней подруги (впоследствии жены) Дебры Линн (Debra Lynn). Deb + Ian, получилось Debian.

Иэн Мердок родился в 1973 году и окончил Университет Пердью в 1996 году. Он был не только создателем Debian, но и активным участником в развитии свободного программного обеспечения. Иэн написал Debian Manifesto, в котором изложил видение и цели проекта. Его работа повлияла на многие аспекты развития свободного программного обеспечения и открытых стандартов.

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

#debian #people
❤‍🔥1762👍2🆒1
Aptitude - это текстовый интерфейс для управления пакетами в Debian. Мейнтейнеры используют его для:

1. Установки и удаления пакетов.
2. Обновления системы.
3. Управления зависимостями.
4. Поиска и просмотра информации о пакетах.
5. Удобного интерактивного управления пакетами.

Он помогает эффективно поддерживать систему в актуальном состоянии.

Например, можно создать алиас:
$ alias a='sudo aptitude'


> Salsa

#software #opensource #utils
6
In Memory of Ian Murdock

Иэн Мердок ушел из жизни в 2015 году в возрасте 42 лет. После его смерти проектом Debian продолжает управлять сообщество разработчиков. В Debian нет постоянного единоличного лидера, вместо этого ежегодно избирается Debian Project Leader (DPL).

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

Debian скорбит о смерти Иэна: https://bits.debian.org/2015/12/mourning-ian-murdock-ru.html

#debian #people
😭13🫡9🙏5👍1
Цвета используемые в логотипе Debian (HEX)

Современный логотип Debian использует следующие вариации красного цвета:
#CE0056
или
#CE0058
или
#D70A53

На фоне используется белый цвет:
#FFFFFF

Для букв используется черный цвет с шрифтом Poppl Laudatio Condensed:
#000000

И получается красота =)

#debian
🔥64👍32🌚1
Midnight Commander (MC) - это текстовый файловый менеджер для Unix-подобных систем и Windows. Он работает в режиме консоли и предоставляет удобный интерфейс для управления файлами. Основные функции MC включают копирование, перемещение, удаление файлов, просмотр содержимого файлов и архивов, а также работу с FTP-серверами. Благодаря своему двухпанельному интерфейсу и множеству горячих клавиш, Midnight Commander значительно облегчает навигацию и управление файлами в командной строке.

Ссылка на репозиторий с исходным кодом: https://github.com/MidnightCommander/mc

Ссылка на сайт: https://midnight-commander.org/

Разработчики MC не принимают Pull Requests в репозиторий на GitHub, но зато активно мониторят тикеты на сайте (смотреть "View Tickets"), если вы обнаружили баг или хотите предложить для MC свои патчи/улучшения, нужно зарегистрироваться на сайте и создать тикет.

Мне кажется, это хороший проект для начинающих вкладчиков.

#software #opensource #utils
👍611🆒1
Установка локальных пакетов с помощью dpkg или apt (различие)

$ dpkg -i <./pkg>

Устанавливает пакет из указанного файла, но не обрабатывает зависимости. Если пакет, который вы устанавливаете, зависит от других пакетов, вам нужно будет установить их вручную.

$ apt install <./pkg>

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

Таким образом, использование apt install предпочтительнее, если вы хотите, чтобы все зависимости (Depends / Recommends) были установлены автоматически.

#debian #utils
👍95❤‍🔥4
Отправка своих патчей в upstream, что нужно учесть?

1. Качество патча.
Патч должен быть хорошо написан, протестирован и документирован.

2. Спрос и полезность.
Разработчики рассмотрят, насколько полезной будет эта функциональность для широкой аудитории.

3. Совместимость и поддержка.
Патч не должен ломать существующий функционал или мешать текущим пользователям.

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

Мои патчи им нужны? Это зависит от того, насколько разработчики и сообщество ПО сочтут ваш патч полезным и востребованным. Чтобы узнать об их интересе, можно сначала обсудить идею на форумах или в списках рассылки проекта (Mailing List).

#opensource
2
Merge Request и Pull Request, в чем разница?

Pull Request
(относится к Open Source продуктам, на открытой платформе типа GitHub).
-> Я вот тут ваш продукт усовершенствовал, заберите-ка то, чего я наделал.

Merge Request (внутри компании, на закрытой платформе типа GitLab).
-> Я вот сделал правки, хочу свою ветку залить к вам в основную (master / main).

#git
👍123🥴2
GitHub / Bitbucket / GitLab в чем разница?

Все это +- одно и тоже, но есть небольшие различия.

GitHub - Open Source инструмент, есть так же закрытые репозитории, но в основном стал популярен из-за Open Source проектов.

Bitbucket - очень редко используется для Open Source, и часто для закрытых проектов, используется разными закрытыми компаниями вместе с Jira.

GitLab - тоже самое, есть CI/CD, многие компании берут его и разворачивает у себя в локальной сети для закрытого использования.

Процесс разработки программного обеспечения:
GitHub: Code -> Review.
GitLab: Code -> Review -> Build -> Test -> Plan.
Bitbucket: Code -> Review -> Build -> Test -> Plan.

#git
👍75🤔1
Права доступа файлов в GIT

Git
не сохраняет права доступа файлов. После клонирования права доступа будут установлены в соответствии с umask пользователя.

В Git сохраняется только бит исполнения (x) для файлов. Остальные права доступа (чтение, запись) — нет, они выставляются согласно umask пользователя.

#git
👍42
Что такое linux-headers?

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

Пользовательские программы обращаются к /usr/include заголовкам.
Модули ядра обращаются к /usr/src/linux-headers-$(uname -r) заголовкам.

#kernel #theory
63👍1🆒1
Найм на работу в IT (часть 1)

Зачем в IT нужен HR ? Почему сфера HR никак не развивается ? Почему в современных реалиях я до сих пор слышу вопрос "Расскажите о себе" (когда все данные открыты) ? Зачем проводить более одного этапа собеседования ? Почему до сих пор не автоматизировали процесс найма инженеров ? Почему не избавляются от старой, вонючей методички найма, по которой работают большинство компаний ? Все это мне непонятно.

Когда я ищу новую работу в IT, у меня начинается дикий приступ тошноты и агрессии. Почему ? Да потому что все одно и то же, все крайне примитивно и глупо. Очень много времени отнимают бесполезные HR со своими вопросиками, работающие по одной и той же методичке уже 200 лет.

Я заметил, что половину информации работодатели/директора/HR вообще не дочитывают из резюме. И я слышу вопросы, ответы на которые уже есть в моем резюме. Я повторяюсь по много раз и меня это раздражает.

Хотя в свою сторону они требуют, чтобы соискатель был ИДЕАЛЬНО готов, знал все ответы на все вопросы, мог решить все задачи в мире, знал все алгоритмы, мог программировать на всех языках, не спрашивал лишнего, был не слишком веселым и не слишком грустным, интересовался судьбой компании, и был вообще отличным рабом!

Я часто указывал ссылки на портфолио, проекты, коммиты, решённые задачки из CodeWars и т.д., но в какой-то момент я просто перестал это делать, потому что это всё просто-напросто никто не смотрит при найме, и мне всё равно зададут кучу тупорылых вопросов, которые можно было изучить до собеседования со мной (просмотрев мои ссылочки). Они просто не готовятся к собеседованию (и так сойдет), это меня удивляет, хотя я почему-то готовлюсь. Очень странная позиция.

Я не понимаю, почему в 2024 году процесс найма IT инженеров до сих пор не автоматизировали. Можно избежать кучу рутинных, повторяющихся процессов, и сэкономить большое количество времени. Но нет ... они упрямо не хотят расставаться с методичкой. Должен же быть какой-то автоматический отбор резюме и тестирования кандидатов с помощью заданий ? Чтобы я мог не выходя из дома зайти в браузер, пройти какой-нибудь тест на знания или сделать задание, исправить баг, написать модуль, отправить это в виде патча.

Я устраиваюсь только в те компании, которые в процессе собеседования дают интересные задания на дом (и не **** мозги), например, в компании 'A' мне дали задание закрыть незакрытое CVE в openssl, я отлаживал, узнавал много нового, писал код, по итогу справился за неделю и меня взяли (без лишних и тупых вопросов). А в компании 'Б' задание было прикреплено к Хабр статье с указанием "если исправишь это в ядре, отправляй патч нам на почту и мы тебя берем" и все! Ничего лишнего. Я естественно прошел. На мой взгляд очень полезный вид собеседования, чем пустой треп в 3 и более этапов.

#thoughts
🔥10❤‍🔥22👍2👎1🤪1