Linux для чайника – Telegram
Linux для чайника
20K subscribers
86 photos
4 files
77 links
Linux
- Разбор утилит / инструментов
- Новости / факты
- Опросы для проверки знаний, навыков
и многое другое.

Только по вопросам сотрудничества: @altmainf

Регистрация в перечне РКН https://clck.ru/3EpL9L
Download Telegram
Бывает такое, когда рабочий стол не реагирует ни на клики мыши, ни на клавиатуру. В этом случае остаётся задействовать виртуальные терминалы, переключившись на один из них (вот тут про них)

После авторизации можно попытаться перезапустить графическую оболочку и/или X-сервер, например для Ubuntu:
sudo /etc/init.d/lightdm restart
Или:
sudo /etc/init.d/ssdm restart

Здесь lightdm или ssdm зависит от того, какая графическая оболочка используется. В последних версиях дистрибутивов Ubuntu в основном используется композитный менеджер ssdm.
После установки:
sudo apt install lolcat

Смотрим имеющиеся возможности:
lolcat -h

Можем использовать утилиту в комплекте с любой другой командой. К примеру:
ping google.com | lolcat

ps | lolcat

cal | lolcat

или выдать анимированный текст:
echo Hello World | lolcat -a -d 500

Пользы никакой, для развлечения, получается ..
Обычный архив формата TAR, TGZ, TBZ или TAZ, содержащий исходный код приложения, либо бинарные установочные файлы это...
Anonymous Quiz
26%
Репозиторий
33%
Дистрибутив
42%
Тарболл
Каталог /lib

Директория для хранения системных библиотек (/lib/ и /lib64/ - 32 и 64-битные соответственно), необходимых для работы программ из директорий /bin и /sbin

В противном случае им надо было бы держать свои версии кода библиотек, в своих директориях, тратя на это дисковое пространство, так как это реализовано в Windows.

Кроме этого, в каталоге /lib/ хранятся модули ядра операционной системы.
Каталог /home/

В каталоге /home/ хранятся домашние каталоги каждого пользователя ОС Linux. 

Если в вашей ОС заведена только одна учетная запись, то в этом каталоге будут как минимум: lost+found (подробнее про него тут) и каталог с именем вашей учетной записи.

В самом каталоге с именем вашей учетной записи хранятся файлы с пользовательскими данными, а также конфигурационные файлы и персональные настройки системы именно вашей учётки.

Каждый пользователь имеет право записи только в свой каталог. Право изменять и читать каталоги других учетных записей имеется только у пользователя root.
Cacaview

Очень простой просмотрщик изображений рисунков с помощью символов ASCII.

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

Установить:
sudo apt install caca-utils

Запустить, передав изображение:
cacaview some_photo.jpg


(Настолько адекватное изображение получить самостоятельно мне не удалось, пришлось брать готовую картинку в интернетах )
Alacritty

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

Использует OpenGL для оптимизации вычислений на вашем GPU. Функция, которую имеют очень немногие эмуляторы терминала.

Alacritty - с открытым исходным кодом посмотреть который можно на GitHub.

Установка. Добавляем репозиторий:
sudo add-apt-repository ppa:mmstick76/alacritty
Далее
sudo apt install alacritty

(я видел его со стороны, но не под высокими нагрузками. Даже после ручной регулировки. интерфейс - так себе .. )
Какова задача символов || в сценарии Linux:
Anonymous Quiz
28%
добавление
18%
выбор
49%
условие
6%
комментарий
This media is not supported in your browser
VIEW IN TELEGRAM
Одна из самых удобных функций, имеющихся в bash — автодополнение команд по клавише <Tab>. К этому быстро привыкаешь, помогает во многих моментах.

Для VSCode есть возможность дополнять аргументы для команд, реализуется это при помощи расширения Shell Completion.
Признаки того, когда лучше отказаться от скриптов:

Список может быть бесконечным и очевидным, но мало ли ..

- Важна скорость/производительность.

- Скрипт содержит более нескольких сотен строк.

- Нужны структуры данных сложнее обычных массивов.

- Задолбало заниматься непотребствами с кавычками и экранированием.

- Необходимо обрабатывать/изменять много строковых переменных.

- Нет необходимости вызывать сторонние программы и нет необходимости в пайпах.
GRUB - программа управления процессом загрузки.

Для большинства дистрибутивов Linux - является загрузчиком по умолчанию. (Самостоятельный FreeBSD тебе сейчас машет ручкой..).

Есть две основные версии: GRUB Legacy, который давно уже не развивается (но какое-то время все же получал обновления в виде патчей безопасности) и GRUB 2, который является текущим стандартом.

Обе версии GRUB работают схожим образом ведь основная задача любого из GRUB — загрузить ядро Linux в память и запустить его.

К тому же, GRUB 2 имеет тот же загрузочный функционал, что и GRUB Legacy, но обладает значительной гибкостью на предзагрузочном этапе и нововведениями: от переносимости на разные архитектуры до поддержки скриптов.
Как узнать, является ли порт хорошо известным? Начать стоит с просмотра файла services.

cat /etc/services | less

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

ssh 22/tcp # SSH Remote Login Protocol
smtp 25/tcp
domain 53/udp

Первый столбец содержит имя, а во втором указаны номер порта и относящийся к нему протокол транспортного уровня (может отличаться от TCP).

В дополнение к файлу /etc/services существует онлайн-реестр портов, который регулируется документом RFC6335 о сетевых стандартах.
[ http://www.iana.org/ ]
Много лет назад на одном популярном англоязычном форуме, ныне покойном, предложили гениально простой способ нагреть проц и посчитать его скорость в попугаях.

time echo "scale=5000; 4*a(1)" | bc -l

bc - Си-подобный интерактивный интерпретатор.
Подгружаем в bc математическую библиотеку опцией -l и просим выдать число π с точностью 5000 знаков после запятой.

Мой результат вычисления на  AMD EPYC 7B12 2.3GHz
выдал:

real 0m0.002s
user 0m0.001s
sys 0m0.001s
Смотрим три средних значения загрузки в дополнение к тому, как долго работает ядро, запустив:

uptime

Получаем что-то вроде:
22:30:28 up 4 days, 13:07, 1 user, load average: 0,07, 0,02, 0,00

Три числа, выделенных жирным шрифтом, являются средними значениями загрузки за последние 1, 5 и 15 минут соответственно.
1 user - количество залогиненных пользователей.

По отдельности выводим время запуска системы:
uptime -s

Либо только время работы системы
uptime -p
Для быстрого копирования файлов с вашего компьютера на другой в вашей сети - существует удобный способ с помощью модуля Python.

Просто перейдите в каталог с необходимыми файлами и запустите команду:
python -m SimpleHTTPServer

Запускается базовый веб-сервер, который делает данный каталог доступным для любого браузера в сети. Обычно он работает с портом 8000 поэтому, если адрес компьютера, на котором вы запустили эту команду, равен 10.1.2.4, наберите адрес http://10.1.2.4:8000 на компьютере назначения, и у вас появится возможность забрать необходимые файлы.

Если используете Python 3, то получите сообщение об ошибке: Нет модуля с именем SimpleHTTPServer.
В таком случае нужно использовать:
python3 -m http.server 9000
Как запускается GRUB?

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

Второй этап: 
BIOS находит загрузчик на жестком диске и запускает его. GRUB загружает файлы, необходимые для запуска ОС, и выводит загрузочное меню.

Если установлена только одна ОС, то дистрибутив Linux будет скрывает это меню. Чтобы оно все равно появлялось перед загрузкой (Зачем? Просто имей ввиду), то можно сделать следующее:

Отредактировать файл /etc/default/grub таким образом:
GRUB_TIMEOUT="10"
GRUB_TIMEOUT_STYLE=menu

(Если присутствуют строки:
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_ TIMEOUT_QUIET=true, то их нужно закомментировать)

далее:
sudo update-grub
В Linux ядро обычно размещается в каталогах /vmlinuz или /boot/vmlinuz.

Загрузчик системы отправляет этот файл в память и приводит его в действие при запуске системы.

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

Тем не менее, можно обнаружить множество модулей, которые ядро может по запросу загружать и выгружать во время нормального функционирования системы. Такие загружаемые модули ядра расположены в каталоге /lib/modules.
Показатели нагрузки, отображаемые uptime, представляют собой средние значения за:
Anonymous Quiz
15%
1, 10 и 25 минут;
34%
10, 60 и 300 секунд.
10%
1, 5 и 24 часа;
40%
1, 5 и 15 минут;
Всем известно, что при удалении файлов, содержащих конфиденциальные данные (любые данные), с устройств хранения они фактически не удаляются.

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

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

Следующая команда потратит некоторое время на запись миллионов и миллионов нулей в каждый закоулок раздела /dev/sda1:

dd if=/dev/zero of=/dev/sda1

Но можно поступить еще лучше. Используя файл /dev/urandom в качестве источника, наполнив диск случайными символами:

dd if=/dev/urandom of=/dev/sda1
Уникальность файловой системы Linux в том, что для каждого устройства в Linux создается собственный файл в каталоге /dev. Загляните в каталог /dev - в нем вы найдете множество файлов для всех устройств вашей системы.

Вот примеры некоторых файлов устройств:

/dev/sda - первый жесткий диск, как правило, подключенный к первому SAТА-контроллеру.

/dev/sda1 - первый раздел на первом жестком диске. Нумерация разделов жестких дисков в Linux начинается с 1.

/dev/mouse - файл устройства мыши.

/dev/cpu - файл устройства процессора;

/dev/cdrom - ваш СD/DVD-привод;  

/dev/random - файл устройства-генератора случайных чисел;

/dev/tty1 - первая консоль (терминал). 

Файлы устройств бывают двух типов: символьные, обмен информацией с которыми осуществляется посимвольно, и блочные, обмен информацией с которыми осуществляется блоками данных. Пример символьного устройства - /dev/ttySO- последовательный (СОМ) порт, пример блочного устройства - /dev/sda1 - раздел жесткого диска.