Linux
2.57K subscribers
210 photos
377 videos
6 files
139 links
Все для системного администратора, новости и информация из мира Linux
Download Telegram
Администрирование Линукс (Linux)

Вводный урок
Урок 1 - Разворачиваем стенды с Linux
Урок 2 - Навигация в системе с использованием командной строки
Урок 3 - Потоки ввода-вывода данных
Урок 4 - Работа с файлами и каталогами (часть 1)
Урок 5 - Работа с файлами и каталогами (часть 2)
Урок 6 - Символические и жесткие ссылки в Linux
Урок 7 - Монтирование файловых систем
Урок 8 - Работа с пакетами средствами dpkg
Урок 9 - Управление пакетами с использованием APT

👉@linuxchmod
👍5
Media is too big
VIEW IN TELEGRAM
Revolution OS
Перевод Дмитрий Бачило

Фильм об истории появления идей свободного программного обеспечения, ядра Linux, ОС GNU, перехода Netscape (Mozilla, Firefox) с проприетарной на откртую модель разработки, создание Red Hat и т.д.

источник

👉@linuxchmod
🔥4👍2
apt-get — команда для управления пакетами программного обеспечения в дистрибутивах, основанных на Debian

Команда apt-get предназначена для работы с утилитой «apt», являющейся стандартной утилитой для управлении пакетами программного обеспечения в дистрибутиве Debian, а также основанных на нем дистрибутивах (Ubuntu, Linux Mint, ...).

Вы можете использовать apt-get для установки и удаления пакетов программного обеспечения из вашей системы (группами или по одному), а также обновления системных списков пакетов программного обеспечения из подключенных на данный момент репозиториев.

Примеры использования
Установка пакета программного обеспечения:

# apt-get install <имя пакета>

Переустановка пакета программного обеспечения:

# apt-get install --reinstall <имя пакета>

Удаление пакета программного обеспечения:

# apt-get remove <имя пакета>

Удаление пакета программного обеспечения со всему файлами конфигурации:

# apt-get --purge remove <имя пакета>

Поиск пакета программного обеспечения:

# apt-cache search <имя пакета>

Обновление списков пакетов программного обеспечения из подключенных репозиториев (файлов с расширением .deb):

# apt-get update

Обновление системы (полезно для поддержания программного обеспечения в актуальном состоянии):

# apt-get upgrade

Обновление дистрибутива (утилита попытается загрузить и установить пакеты программного обеспечения из состава новой версии дистрибутива):

# apt-get dist-upgrade

Вывод короткого списка всех доступных параметров команды:

# apt-get --help

Механизм автодополнения команд
Для активации механизма автодополнения команд apt-get по клавише Tab следует добавить строку

source /etc/bash_completion

в файл .bashrc из вашей домашней директории. После этого при вводе такой команды, как «apt-get install a» и нажатии клавиши Tab командная оболочка Bash попытается подставить имя пакета программного обеспечения.

Дополнительная информация
Попробуйте выполнить команду:

apt-get moo

Вы должны будете увидеть следующий вывод:

(__)
(oo)
/------/
/ | ||
* /---/

...."Have you mooed today?"…


Использование в других дистрибутивах
Если утилиты из комплекта поставки apt-get совместимы с вашим дистрибутивом, вы сможете воспользоваться штатным менеджером пакетов вашего дистрибутива для установки их в вашу систему. После окончания процесса установки вы сможете использовать приведенные выше команды для управления пакетами программного обеспечения дистрибутива.

Устранение неполадок в дистрибутивах, использующих пакеты RPM
В некоторых случаях после исполнения команды apt-get будет выводиться сообщение о невозможности блокировки определенной директории. Большинство проблем, вызывающих подобное поведение, решается путем исполнения следующей последовательности команд:

rm /var/lock/rpm/transaction
rm /var/lib/rpm/__db*
rm /var/cache/apt/archives/lock

👉@linuxchmod
👍4
#вакансия #удалённо #parttime #преподаватель #linux

OTUS ищет преподавателей на онлайн-курс Administrator Linux. Professional

Мы расширяем команду экспертов (уже более 650 человек) и ищем опытных практикующих специалистов, которым интересно делиться знаниями. Преподавательский опыт не обязателен — наши методисты помогут вам освоить практики преподавания.

Требуется: опыт администрирования Linux от 3 лет. Виртуализация, контейнеризация, кластеризация. Разворачивание серверов, работа с сетью.

Обязанности:
- подготовиться к занятиям (есть материалы для опоры);
- проводить онлайн-занятия, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи;
- за доплату возможна проверка домашних заданий.

Условия:
гибкий график, легко совмещать с основной работой, занятия в вечернее время с 20:00 до 21:30, дни на выбор;
темы занятий на выбор;
оплата от 4000 до 6000 руб. за вебинар (полтора часа) и 300-400 рублей за проверку 1 домашнего задания;
бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, участие в воркшопах и конференциях.

Обсудить подробнее: @HR_Nikita
О UEFI

Вообще, представленный в статье материл не относятся исключительно к Ubuntu. В статье освящены и вопросы на прямую не зависящие от ОС.
Статья сфокусирована на объяснении понятий и принципов, а также важных и интересных возможностях UEFI. Более детально сам процесс установки и настройки загрузки Ubuntu в UEFI режиме описан в этой статье или в этой.

Практически все современные компьютеры оснащены системной прошивкой позволяющей загрузиться через UEFI. На более старых компьютерах за загрузку отвечал BIOS. В чем разница и как с этим всем жить - давайте разберемся.

https://help.ubuntu.ru/wiki/uefi

👉@linuxchmod
👍6
Горячие клавиши терминала Linux

Общие:
Ctrl+Alt+T - в дистрибутивах, основанных на Ubuntu это сочетание клавиш используется для открытия терминала.
Tab - эта клавиша используется для автодополнения в терминале. Вам достаточно набрать начало какой-нибудь команды, затем нажать её и команда предложит доступные варианты или завершит её если она одна.
Ctrl+L - очистить весь вывод терминала.
Ctrl+S - приостановить вывод терминала.
Ctrl+Q - возобновить вывод если он был приостановлен.
Ctrl+C - отправить команде сигнал SigInt для её завершения.
Ctrl+Z - свернуть текущую команду в фоновый режим.

История команд:
Стрелки вверх и вниз - используются для перемещения вперед и назад по истории команд.
Ctrl+r - можно использовать для поиска по истории команд.
Ctrl+p - предыдущая команда в истории команд.
Ctrl+n - следующая команда в истории команд.
Ctrl+g - если вы находитесь в режиме поиска, завершает поиск.
Ctrl+o - выполнить найденную поиском команду.
Alt+. - использовать последнее слово предыдущей команды.

Перемещение курсора:
Ctrl+a - перейти в начало строки.
Ctrl+e - перейти в конец строки.
Alt+b - перейти влево на одно слово.
Alt+f - перейти в право на одно слово.
Ctrl+b - перейти влево на один символ.
Ctrl+f - перейти вправо на один символ.
Ctrl+xx - перейти в конец или в начало строки.

Редактирование:
Ctrl+u - вырезать строку до позиции курсора.
Alt+Del - удалить слово перед курсором.
Alt+d - удалить слово после курсора.
Ctrl+d - удалить символ под курсором.
Ctrl+h - удалить символ под курсором.
Ctrl+w - вырезать слово под курсором.
Ctrl+k - вырезать строку от позиции курсора до конца строки
Alt+t - поменять текущее слово с предыдущим.
Ctrl+t - поменять местами два символа перед курсором.
Esc+t - поменять местами два слова перед курсором.
Ctrl+y - вставить то, что было вырезано.
Alt+u - сделать верхний регистр символов от позиции курсора до конца текущего слова.
Alt+l - сделать нижний регистр символов от позиции курсора до конца слова.
Alt+c - перевести символ под курсором в верхний регистр и перейти к концу слова.
Alt+r - вернуть строку в исходное состояние.
Ctrl+_ - отменить последнее действие со строкой.

👉@linuxchmod
👍13
Советы по настройке history команд в Bash

Каждая вводимая в терминале команда сохраняется в файле ~/.bash_history. Чтобы посмотреть историю команд – введите history.

Настройка истории команд в Bash осуществляется путем добавления переменных окружения в файл ~/.bashrc.

Чтобы изменения в ~/.bashrc вступили в силу, выполните:

source ~/.bashrc


1. Добавляем Отображение Даты и Времени в Bash History
Иногда очень полезно узнать время, когда какая-либо команда была выполнена.

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

Для этого добавьте следующую строку в файл ~/.bashrc:

export HISTTIMEFORMAT="%h %d %H:%M:%S "
Теперь, набрав history, Вы получите следующий вывод:

113 Jun 08 16:31:06 sudo ifconfig
114 Jun 08 16:31:10 top
115 Jun 08 16:31:19 ping disnetern.ru
116 Jun 08 16:31:22 history


2. Увеличиваем Размер Хранимой Истории
Увеличьте HISTSIZE — количество команд, которые необходимо запоминать в списке истории (стандартное значение — 500).

export HISTSIZE=5000
Увеличьте HISTFILESIZE — максимальное количество строк, содержащееся в файле истории (стандартное значение — 500).

export HISTFILESIZE=5000


3. Добавляем Команды Bash в Файл с Историей
Bash перезаписывает файл .bash_history?

Чтобы добавлять новые команды в файл с историей, а не переписывать его каждый раз, добавьте следующую строку в ~/.bashrc:

shopt -s histappend


4. Мгновенно Сохранять Историю Команд
По умолчанию, Bash записывает историю команд в .bash_history, при завершении сессии.

Если сессия внезапно оборвется Вы потеряете текущую историю команд.

Используйте переменную $PROMPT_COMMAND, чтобы сохранять команды сразу после выполнения:

Добавьте следующую строку в файл ~/.bashrc, если переменная $PROMPT_COMMAND не была задана ранее:

PROMPT_COMMAND='history -a'
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:

PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

👉@linuxchmod
👍5
Понимание Inode’ов

Понимание inode’ов критически важно для понимания файловых систем Unix. Файлы содержат данные и метаданные. Метаданные — это информация о файле. Метаданные хранятся в inode. Содержимое inode включает:

- Номер inode
- UID
- GID
- Размер
- Atime (время последнего доступа)
- Mtime (время последней модификации)
- Ctime (время последнего изменения метаданных)
- Размер блока
- Режим (права доступа и тип файла)
- Количество жёстких ссылок
- ACL (списки контроля доступа)

Обычно inode занимает 256 байт. Имена файлов не хранятся в inode — они находятся в данных, относящихся к директории. Как правило, имена файлов хранятся линейно, из-за чего поиск по имени может быть медленным. Файловые системы Ext4 и XFS используют более эффективные B-деревья (Btrees) для хранения имён файлов в директориях, что обеспечивает постоянное время поиска, в отличие от линейного.

Dentry (сокращение от directory entry — запись в директории) используется для хранения связи между inode и именем файла в директории.

Inode может содержать как прямые (direct), так и косвенные (indirect) указатели на блоки данных файла. Прямой указатель означает, что inode содержит номер блока, в котором находятся данные файла. Косвенный указатель означает, что inode содержит номер блока, в котором находятся номера других блоков с данными.

Файловая система Ext создаёт фиксированное количество inode’ов при форматировании. Если inode’ы заканчиваются, необходимо форматировать файловую систему. В отличие от неё, XFS не использует фиксированное количество inode’ов — они создаются по мере необходимости.

При удалении файла системный вызов unlink() удаляет запись в директории, указывающую на inode, и помечает inode как свободный. Сами блоки данных при этом не удаляются.

Количество жёстких ссылок на файл хранится в inode. Каждый раз при создании жёсткой ссылки это число увеличивается. Символические (soft) ссылки не увеличивают счётчик ссылок на файл или директорию.

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

– Размер файловой системы
– Размер блока
– Количество свободных и занятых блоков
– Размер и расположение таблицы inode’ов
– Карта блоков диска

Информацию о суперблоке можно получить с помощью команды:
dumpe2fs /dev/mount | grep -i superblock

👉@linuxchmod
👍4
Запуск команд в фоновом режиме

Синтаксис
Задачу (например, команду или скрипт) можно перевести в фоновый режим, добавив символ «&» в конец командной строки. Этот оператор переводит команду в фоновый режим и освобождает место в терминале. Команда, выполняемая в фоновом режиме, называется заданием. Во время работы фоновой команды можно выполнять любые другие команды. Синтаксис выглядит следующим образом:

command & script-name & /path/to/command arg1 arg2 & command-1 | command-2 arg1 & command-1 | command-2 -arg1 -arg2 >/path/to/output &

Примеры
Чтобы перевести команду ls в фоновый режим, введите:
$ ls *.py > output.txt &

Чтобы перевести следующую команду поиска в фоновый режим, добавьте символ «&» в конец командной строки:
find . -iname "*.mp3" > myplaylist.txt &

Как найти задания, работающие в фоновом режиме?
Выполните следующую команду:
jobs

Пример вывода данных:
[1]- Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Где
[1] и [2] идентификаторы заданий.
Чтобы отобразить идентификаторы процессов для идентификаторов заданий помимо стандартных сведений, передайте параметр -l:

jobs –l


Пример вывода данных:

[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Чтобы отобразить только идентификаторы процессов, введите:
jobs -p

Пример вывода данных:

7307
7324


Как прекратить выполнение заданий, работающих в фоновом режиме?
Для принудительного или постепенного завершения процесса следует использовать команду kill. Синтаксис выглядит следующим образом:

kill PID
kill -15 PID
kill -9 PID
killall process-Name-Here
killall -15 process-Name-Here
killall -9 process-Name-Here


Как переместить процесс из фонового режима в приоритетный?
Синтаксис:
%JOB-ID

ИЛИ
fg JOB-ID

Сначала следует вывести список текущих заданий с помощью команды jobs. Для этого введите:
jobs -l

Пример вывода данных:

[1]- 7307 Running find / -iname "*.c" 2> /dev/null > /tmp/output.txt &
[2]+ 7324 Running grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt &

Чтобы перевести задание job id #2 в приоритетный режим, введите:
%2
ИЛИ используйте команду:
fg 2

Пример вывода данных:

grep -R "hostNamed" / 2> /dev/null > /tmp/grep.txt
Чтобы перевести это задание обратно в фоновый режим, нажмите клавишу Z, удерживая клавишу CTRL. При этом выполнение текущего приоритетного задания будет приостановлено. Введите следующую команду, чтобы перевести задание в фоновый режим:
%2 &

ИЛИ используйте команду:
bg

Теперь командное задание grep будет работать в фоновом режиме.

👉@linuxchmod
👍4
🕵️ ss вместо netstat: как быстро найти, что слушает порт

netstat давно устарел и не показывает точную картину на системах с systemd. Настоящие профи уже давно используют ss.

🔧 Примеры, которые реально полезны:

1️⃣ Кто слушает порт 443:

ss -ltnp 'sport = :443'

📌 -l — только слушающие, -t — TCP, -n — не резолвим имена, -p — покажи PID/имя процесса.

2️⃣ Все открытые соединения от процесса (например, PID 1234):

ss -pant | grep pid=1234


3️⃣ Список соединений в состоянии ESTABLISHED:

ss -ant state established


4️⃣ Сколько вообще активных соединений:

ss -s


💡 Фишка:
ss быстрее и точнее netstat, т.к. работает через netlink. Особенно это критично на серверах с тысячами соединений.

Для UDP аналогично — просто меняем -t на -u.

👉@linuxchmod
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥Зажигаем огонь в терминале с помощью команды:
aafire

Как установить libaa-bin в Ubuntu / Debian

sudo apt update
sudo apt install libaa-bin



Примеры программ с использованием aalib

https://aa-project.sourceforge.net/aalib/

👉@linuxchmod
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
This media is not supported in your browser
VIEW IN TELEGRAM
Netdata - это высокоточный мониторинг инфраструктуры и производительности в режиме реального времени.

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

Если метрика может быть собрана, она будет собрана: с 2 000+ автоопределяемых метрик и 100+ предварительно настроенных предупреждений на каждый узел.

https://github.com/netdata/netdata

👉@linuxchmod
👍2
Скриптик переустановки пароля пользователя MikroTik

# Скрипт смены пароля пользователя
# только для исполнения в терминале ROS
# by Sertik 09/06/2020

{
:global EnterString do={
:local cont 0; :local string ""
:while ($cont!=13) do={
:local key ([:terminal inkey])
:if ($key!=13) do={
:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]
:set string ("$string"."$char")}
:set cont $key
}
:return $string}
;
:put "Please, enter Username:"
:local RegUser [$EnterString];
:put "";
:if ([:len [/user find disabled=no name=$RegUser]]!=0) do={:put "Ok, a user with this name was found"; :put "";
:put "Please, enter new password for this user:"
:local newPass [$EnterString];
[/user remove $RegUser];
[/user add name=$RegUser password=$newPass group=full];
:put "";
:put "The user has been re-created, the password has been changed";
:put ("New user`s password: "."$newPass");
:put "Don't forget to set up access restrictions based on ip addresses";
} else={:put ("User "."$RegUser "."not found"); :put "";
}
}

Скрипт интересен строкой преобразования кода символа из переменной $key, сграбленного с клавиатуры терминала, в сам символ.

:local char [[:parse "(\"\\$[:pick "0123456789ABCDEF" (($key >> 4) & 0xF)]$[:pick "0123456789ABCDEF" ($key & 0xF)]\")"]]

👉@linuxchmod
👍2
Badblocks — команда для поиска и исправления поврежденных секторов на жестких дисках

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

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

Перед использованием badblocks необходимо определиться с жестким диском или его разделом, на котором нужно искать поврежденные сектора. Для этого может использоваться команда lsblk:

# lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL
NAME FSTYPE LABEL MOUNTPOINT MODEL
...


В данном случае в столбце NAME будут выводиться имена файлов устройств накопителей и их разделов (для обозначения разделов используется дополнительная нумерация), в столбце FSTYPE - названия созданных в разделах файловых систем, в столбце LABEL - метки разделов, в столбце MOUNTPOINT - пути к точкам монтирования файловых систем, а в столбце MODEL - информация о моделях устройств.

Базовый синтаксис команды:

# badblocks -v /dev/<имя файла раздела или устройства>

Параметр -v используется для вывода информации о ходе процесса проверки жесткого диска.

Если вам по какой-либо причине понадобится запретить использование поврежденных секторов на уровне файловой системы вы всегда можете сохранить список этих секторов и передать его утилите e2fsck. Это делается следующим образом:

# badblocks -v /dev/<имя файла раздела или устройства> > /tmp/badblocks.txt
# e2fsck -l /tmp/bad-blocks.txt /dev/<имя файла раздела или устройства>
# rm /tmp/badblocks.txt


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

Примеры использования
1. Выбор раздела жесткого диска для проверки

# lsblk -o NAME,FSTYPE,LABEL,MOUNTPOINT,MODEL
NAME FSTYPE LABEL MOUNTPOINT MODEL
sdb MAXTOR STM316081
├─sdb4 ext4 home /home
├─sdb2 ext4 Debian
└─sdb1 swap
...


Выберем раздел с корневой файловой сситемой дистрибутива Debian (с соотвествующей меткой), который в данный момент не смонтирован. Ему соответствует файл устройства sdb2.

2. Проверка выбранного раздела на наличие поврежденных секторов
# badblocks -v /dev/sdb2
Checking blocks 0 to 12697599
Checking for bad blocks (read-only test): done

Pass completed, 0 bad blocks found. (0/0/0 errors)


Очевидно, что в ходе проверки раздела поврежденных секторов не было обнаружено.

👉@linuxchmod
👍3
Наиболее распространенные оболочки

🔹Текстовые оболочки
Bash (оболочка типичная для систем GNU/Linux)
Bourne оболочки (оболочка из первых систем Unix)
C оболочки (оболочки популярные на Unix)
Z оболочки (известный как Zsh)
Korn оболочки (системы оболочки , обычно доступные на Unix)
Debian Альмквист оболочки (оболочки , используемый в Debian и производных для запуска системных скриптов)
cmd.exe (оболочка операционных систем семейства Windows NT)
command. com (оболочка операционной системы MS-DOS и некоторых системах Microsoft Windows)
Windows PowerShell (Advanced Shell для систем Microsoft Windows)

🔹Графические оболочки
GNOME (что характерно для GNU / Linux и Solaris 10)
KDE (что характерно для GNU/ Linux)
Xfce (что характерно для систем GNU / Linux)
Common Desktop Environment (как правило, доступны для систем Unix)
Finder (оболочка систем Mac OS )
File Explorer оболочка системы Microsoft Windows)
Unity (Official оболочка Ubuntu)

👉@linuxchmod
👍4
Текстовый интерфейс пользователя (RHCSA)
Стандартные потоки (RHCSA)
Создание backup скрипта (RHCSA)
Инкрементальные бэкапы с tar
Глоббинг и регулярные выражения (RHCSA)

источник

👉@linuxchmod
👍2