Как происходит завершение процесса в Linux
Управление всеми процессами в ОС происходит с помощью сигналов. Обычно сигналы передает система, но пользователь также может их передавать с помощью специальных команд.
Завершение процесса также происходит с помощью сигналов. Когда процессу приходит сигнал о необходимости завершиться, он должен выполнить некоторые подготовительные действия: завершить дочерние процессы, удалить временные файлы, сокеты и тд.
Основные сигналы:
• SIGINT - самый безобидный сигнал завершения, означает Interrupt (Ctrl+C).
• SIGQUIT - сигнал, сообщающей программе, что ей нужно завершиться и она может выполнить корректное завершение или проигнорировать сигнал (Ctrl+/).
• SIGHUP - сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
• SIGTERM - немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
• SIGKILL - немедленно завершает процесс и обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.
Управление всеми процессами в ОС происходит с помощью сигналов. Обычно сигналы передает система, но пользователь также может их передавать с помощью специальных команд.
Завершение процесса также происходит с помощью сигналов. Когда процессу приходит сигнал о необходимости завершиться, он должен выполнить некоторые подготовительные действия: завершить дочерние процессы, удалить временные файлы, сокеты и тд.
Основные сигналы:
• SIGINT - самый безобидный сигнал завершения, означает Interrupt (Ctrl+C).
• SIGQUIT - сигнал, сообщающей программе, что ей нужно завершиться и она может выполнить корректное завершение или проигнорировать сигнал (Ctrl+/).
• SIGHUP - сообщает процессу, что соединение с управляющим терминалом разорвано, отправляется, в основном, системой при разрыве соединения с интернетом;
• SIGTERM - немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы;
• SIGKILL - немедленно завершает процесс и обрабатывается ядром. Поэтому ресурсы и дочерние процессы остаются запущенными.
Ставим пароль на GRUB
1. Генерация хэш-пароля
За данное действие отвечает утилита:
А затем два раза ввести будущий пароль для GRUB. Полученный хэш – это длинная строка, которая начинается с
2. Изменить настройки
Теперь нужно назначить супер-пользователя для GRUB. Это удобно делать через файл
Вместо
Теперь выполните:
Пролистайте его содержимое до самого конца и на новой строке вставьте ранее подготовленную команду из 4 строк, которая сохранена в текстовом документе. Сохраните изменения.
3. Обновить конфигурацию
4. Проверить работу
1. Генерация хэш-пароля
За данное действие отвечает утилита:
grub-mkpasswd-pbkdf2 А затем два раза ввести будущий пароль для GRUB. Полученный хэш – это длинная строка, которая начинается с
grub.pbkdf2. Ее нужно скопировать и куда-нибудь сохранить.2. Изменить настройки
Теперь нужно назначить супер-пользователя для GRUB. Это удобно делать через файл
/etc/grub.d/00_header, отредактировав его содержимое. Удобнее сначала открыть текстовый документ, куда все было сохранено, и вставить команду следующего вида:cat << EOFset superusers="user_name"password_pbkdf2 user_name хэш-парольEOFВместо
user_name во второй и третьей строке укажите предпочтительное имя супер-пользователя GRUB, а также замените хэш пароль на свой.Теперь выполните:
sudo nano /etc/grub.d/00_headerПролистайте его содержимое до самого конца и на новой строке вставьте ранее подготовленную команду из 4 строк, которая сохранена в текстовом документе. Сохраните изменения.
3. Обновить конфигурацию
sudo update-grub4. Проверить работу
rebootБольшинство ошибок, которые вы встретите при выполнении команд, являются результатом неправильных действий с файлами или процессами.
No such file or directory
Пытались получить доступ к несуществующему файлу. Поскольку ввод/вывод в Unix не делает различий между файлами и каталогами, это сообщение об ошибке появляется везде. Вы получите его, если попытаетесь выполнить чтение несуществующего файла, или при переходе в отсутствующий каталог, или попробуете записать файл в несуществующий каталог и т. д.
File exists
В данном случае, возможно, пытались создать файл, который уже существует. Это часто бывает, когда вы создаете каталог, имя которого уже занято каким-либо файлом
Not a directory, Is a directory
Эти сообщения возникают, когда вы пытаетесь использовать файл в качестве каталога или каталог в качестве файла.
No space left on device
На жестком диске закончилось свободное пространство.
Permission denied
Эта ошибка возникает, когда вы пытаетесь выполнить чтение или запись, указав файл или каталог, к которым вам не разрешен доступ. Либо пытаетесь запустить файл, для которого не установлен бит выполнения.
Operation not permitted
Обычно возникает, когда пытаетесь завершить процесс, владельцем которого не являетесь.
Segmentation fault, Bus error
Суть ошибки сегментации состоит в том, что разработчик программы, которую вы только что запустили, где-то ошибся. Программа пыталась получить доступ к области памяти, к которой ей не разрешено обращаться, в результате ОС завершила работу программы. Подобно ей, ошибка шины означает, что программа пыталась получить доступ к памяти недолжным образом.Если вы получаете одну из этих ошибок, то, вероятно, вы передали на ввод программы какие-либо неожиданные для нее данные.
No such file or directory
Пытались получить доступ к несуществующему файлу. Поскольку ввод/вывод в Unix не делает различий между файлами и каталогами, это сообщение об ошибке появляется везде. Вы получите его, если попытаетесь выполнить чтение несуществующего файла, или при переходе в отсутствующий каталог, или попробуете записать файл в несуществующий каталог и т. д.
File exists
В данном случае, возможно, пытались создать файл, который уже существует. Это часто бывает, когда вы создаете каталог, имя которого уже занято каким-либо файлом
Not a directory, Is a directory
Эти сообщения возникают, когда вы пытаетесь использовать файл в качестве каталога или каталог в качестве файла.
No space left on device
На жестком диске закончилось свободное пространство.
Permission denied
Эта ошибка возникает, когда вы пытаетесь выполнить чтение или запись, указав файл или каталог, к которым вам не разрешен доступ. Либо пытаетесь запустить файл, для которого не установлен бит выполнения.
Operation not permitted
Обычно возникает, когда пытаетесь завершить процесс, владельцем которого не являетесь.
Segmentation fault, Bus error
Суть ошибки сегментации состоит в том, что разработчик программы, которую вы только что запустили, где-то ошибся. Программа пыталась получить доступ к области памяти, к которой ей не разрешено обращаться, в результате ОС завершила работу программы. Подобно ей, ошибка шины означает, что программа пыталась получить доступ к памяти недолжным образом.Если вы получаете одну из этих ошибок, то, вероятно, вы передали на ввод программы какие-либо неожиданные для нее данные.
Это может быть опасно для ОС линукс
1. Перезапись важных конфигурационных файлов
Если вы используете какой-либо важный файл конфигурации в качестве места для записи данных, он заменит содержимое, оставив систему сломанной.
2. Объединение раздела с мусорными данными
3. Открытие своей системы для всех
В Linux все является файлом, и каждый файл имеет определенные разрешения. Команда
1. Перезапись важных конфигурационных файлов
Если вы используете какой-либо важный файл конфигурации в качестве места для записи данных, он заменит содержимое, оставив систему сломанной.
2. Объединение раздела с мусорными данными
/dev/random в Linux может создавать мусорные данные. Объедините это с командой dd и вашим разделом, и вы получите коктейль Молотова, чтобы поджечь ваш раздел.3. Открытие своей системы для всех
В Linux все является файлом, и каждый файл имеет определенные разрешения. Команда
chmod -R 777/ предоставляет всем доступ ко всем файлам в корневом разделе. Это означает, что каждый, кто использует систему, имеет права на чтение, запись и выполнение. Это не хорошо для вашей системы.APT (Advanced Packaging Tool)
Консольная утилита, выполняющая роль «поисковика» и загрузчика пакетов из репозиториев.
Установка скачанных пакетов производится утилитой
Список репозиториев хранится в файле «
Изначально APT разрабатывался только для работы с пакетами DEB, использующихся в Debian и родственных ОС (Ubuntu, Linux Mint). Позже в него была добавлена поддержка rpm-файлов. Благодаря этому, установить софт привычным образом можно даже в дистрибутивах RED HAT и его производных (Fedora, CentOS и др.).
Для упрощения работы с APT можно использовать консольные оболочки APTITUDE или Synaptic.
Консольная утилита, выполняющая роль «поисковика» и загрузчика пакетов из репозиториев.
Установка скачанных пакетов производится утилитой
DPKG. Список репозиториев хранится в файле «
/etc/apt/sources.list» и может быть изменён пользователем в любой момент для установки или обновления программы, не входящей в базу дистрибутива. Изначально APT разрабатывался только для работы с пакетами DEB, использующихся в Debian и родственных ОС (Ubuntu, Linux Mint). Позже в него была добавлена поддержка rpm-файлов. Благодаря этому, установить софт привычным образом можно даже в дистрибутивах RED HAT и его производных (Fedora, CentOS и др.).
Для упрощения работы с APT можно использовать консольные оболочки APTITUDE или Synaptic.
Valgrind
Предоставляет ряд инструментов для отладки и профилирования, которые помогут вам сделать ваши программы быстрее и точнее.
Самый популярный из этих инструментов называется Memcheck. Он может обнаруживать многие ошибки, связанные с памятью, которые распространены в программах C и C++ и могут привести к сбоям и непредсказуемому поведению.
Чтобы запустить memcheck с подробным детектором утечек памяти, воспользуйстесь командой:
Чтобы установить valgrind на Ubuntu:
Предоставляет ряд инструментов для отладки и профилирования, которые помогут вам сделать ваши программы быстрее и точнее.
Самый популярный из этих инструментов называется Memcheck. Он может обнаруживать многие ошибки, связанные с памятью, которые распространены в программах C и C++ и могут привести к сбоям и непредсказуемому поведению.
Чтобы запустить memcheck с подробным детектором утечек памяти, воспользуйстесь командой:
valgrind --leak-check=yes ./myprogЧтобы установить valgrind на Ubuntu:
sudo apt-get updatesudo apt-get -y install valgrindДистрибутив Pop!_OS
Основные преимущества Pop!_OS
1. Оптимизация для разработчиков: Pop!_OS включает в себя множество инструментов для программирования, таких как редакторы кода, компиляторы и библиотеки. Поддержка Python, JavaScript, C++, Go и других языков программирования присутствует "из коробки".
2. Оптимизация для геймеров:
Поддержка Steam и Lutris: Pop!_OS предлагает встроенную поддержку игровых платформ Steam и Lutris, что позволяет запускать как нативные игры для Linux, так и игры, работающие через Proton.
3. Поддержка оборудования и периферии:
Pop!_OS поддерживает широкий спектр оборудования и периферийных устройств, что делает его идеальным выбором для использования на ноутбуках, настольных ПК и серверах.
Pop!_OS разработан компанией System76, которая специализируется на производстве компьютеров и серверов с предустановленным Linux.
Основные преимущества Pop!_OS
1. Оптимизация для разработчиков: Pop!_OS включает в себя множество инструментов для программирования, таких как редакторы кода, компиляторы и библиотеки. Поддержка Python, JavaScript, C++, Go и других языков программирования присутствует "из коробки".
2. Оптимизация для геймеров:
Поддержка Steam и Lutris: Pop!_OS предлагает встроенную поддержку игровых платформ Steam и Lutris, что позволяет запускать как нативные игры для Linux, так и игры, работающие через Proton.
3. Поддержка оборудования и периферии:
Pop!_OS поддерживает широкий спектр оборудования и периферийных устройств, что делает его идеальным выбором для использования на ноутбуках, настольных ПК и серверах.
Настройка и использование среды разработки Eclipse
Eclipse — это мощная среда разработки (IDE), которая используется для написания кода на различных языках программирования, включая Java, C++, Python и многие другие.
Установка Eclipse на Linux:
- Перейдя на официальный сайт Eclipse, выберите версию, которая подходит для ваших нужд. Например, для разработки на Java выберите "Eclipse IDE for Java Developers".
- Скачайте установочный файл (обычно это tar.gz файл для Linux).
- Откройте терминал и перейдите в директорию, куда был загружен установочный файл, например:
- Распакуйте скачанный архив в каталог /opt:
- Создайте символическую ссылку для удобного запуска:
Теперь можно запустить Eclipse, введя в терминале команду:
Eclipse — это мощная среда разработки (IDE), которая используется для написания кода на различных языках программирования, включая Java, C++, Python и многие другие.
Установка Eclipse на Linux:
- Перейдя на официальный сайт Eclipse, выберите версию, которая подходит для ваших нужд. Например, для разработки на Java выберите "Eclipse IDE for Java Developers".
- Скачайте установочный файл (обычно это tar.gz файл для Linux).
- Откройте терминал и перейдите в директорию, куда был загружен установочный файл, например:
cd ~/Downloads
- Распакуйте скачанный архив в каталог /opt:
sudo tar -xvzf eclipse-*.tar.gz -C /opt/
- Создайте символическую ссылку для удобного запуска:
sudo ln -s /opt/eclipse/eclipse /usr/local/bin/eclipse
Теперь можно запустить Eclipse, введя в терминале команду:
eclipseПо общепринятому соглашению люди, которые создают и поддерживают консольное ПО в Linux, параллельно пишут сложноструктурированные руководства, называемые man-файлами.
Когда устанавливается программа для Linux, ее mаn-файл почти всегда устанавливается вместе с ней и его можно просмотреть в оболочке командной строки, набрав слово
Выполнив:
NAME в котором содержится краткое введение.
SYNOPSIS который предлагает подробный обзор синтаксиса.
DESCRIPТION предоставляет более подробное описание программы, которое обычно включает в себя список аргументов командной строки и флаги. Если вам повезет, вы также найдете несколько полезных примеров.
Когда устанавливается программа для Linux, ее mаn-файл почти всегда устанавливается вместе с ней и его можно просмотреть в оболочке командной строки, набрав слово
man, а затем имя команды. Даже у команды man есть mаn-файл. Выполнив:
man man можно увидеть:NAME в котором содержится краткое введение.
SYNOPSIS который предлагает подробный обзор синтаксиса.
DESCRIPТION предоставляет более подробное описание программы, которое обычно включает в себя список аргументов командной строки и флаги. Если вам повезет, вы также найдете несколько полезных примеров.
Использовать Emacs
Emacs — это текстовый редактор, который можно использовать для программирования на различных языках. Он предлагает широкие возможности по настройке и расширению функциональности с помощью плагинов и конфигурационных файлов.
Установка Emacs
В большинстве дистрибутивов Linux Emacs доступен в стандартных репозиториях. Установите его с помощью пакетного менеджера:
Для Debian/Ubuntu:
Для Fedora:
Для Arch Linux:
Emacs — это текстовый редактор, который можно использовать для программирования на различных языках. Он предлагает широкие возможности по настройке и расширению функциональности с помощью плагинов и конфигурационных файлов.
Установка Emacs
В большинстве дистрибутивов Linux Emacs доступен в стандартных репозиториях. Установите его с помощью пакетного менеджера:
Для Debian/Ubuntu:
sudo apt update
sudo apt install emacs
Для Fedora:
sudo dnf install emacs
Для Arch Linux:
sudo pacman -S emacs
Для определения, что задействует система
Если появился список целей загрузки, значит, в системе применяется
Кроме того, можно проверить, есть ли в системе файл
BIOS или UEFI, поможет утилита efibootmgr. Если появился список целей загрузки, значит, в системе применяется
UEFI. Если же придет сообщение, что переменные EFI не поддерживаются, — применяется BIOS. Кроме того, можно проверить, есть ли в системе файл
/sys/firmware/efi. Если это так, она использует интерфейс UEFI.Установка PyCharm для Python-разработки
PyCharm — это одна из самых популярных интегрированных сред разработки (IDE) для Python. Она предоставляет множество инструментов и функций, которые делают процесс разработки более эффективным и удобным.
Установка PyChar:
- Перейдите на официальный сайт JetBrains и выберите версию PyCharm, которую хотите установить. Существует два варианта: Community (бесплатная) и Professional (платная).
- Скачайте установочный файл (tar.gz) для Linux.
- Откройте терминал и перейдите в директорию, куда был загружен установочный файл:
- Распакуйте скачанный архив:
- Переместите распакованную папку в удобное место, например, в /opt:
- Запустите PyCharm:
PyCharm — это одна из самых популярных интегрированных сред разработки (IDE) для Python. Она предоставляет множество инструментов и функций, которые делают процесс разработки более эффективным и удобным.
Установка PyChar:
- Перейдите на официальный сайт JetBrains и выберите версию PyCharm, которую хотите установить. Существует два варианта: Community (бесплатная) и Professional (платная).
- Скачайте установочный файл (tar.gz) для Linux.
- Откройте терминал и перейдите в директорию, куда был загружен установочный файл:
cd ~/Downloads- Распакуйте скачанный архив:
tar -xvzf pycharm-community-*.tar.gz- Переместите распакованную папку в удобное место, например, в /opt:
sudo mv pycharm-community-*/ /opt/pycharm- Запустите PyCharm:
/opt/pycharm/bin/pycharm.shЧто представляет собой файл ELF?
ELF — это сокращение от Executable and Linkable Format (формат исполняемых и связываемых файлов) и определяет структуру бинарных файлов, библиотек, и файлов ядра. Спецификация формата позволяет операционной системе корректно интерпретировать содержащиеся в файле машинные команды.
Файлы ELF предназначены для исполнения и линковки. В зависимости от назначения, они содержат необходимые сегменты и секции. Ядро ОС просматривает сегменты и отображает их в память. Секции просматриваются линкером, который создаёт исполняемый файл или разделяемый объект.
Файлы ELF очень гибкие и поддерживаются различные типы CPU, машинные архитектуры, и операционные системы. Также он расширяемый, каждый файл сконструирован по-разному, в зависимости от требуемых частей. Путём использования правильных инструментов, вы сможете разобраться с назначением файла, и изучать содержимое бинарных файлов. Можно просмотреть функции и строки, содержащиеся в файле. Хорошее начало для тех, кто исследует вредоносные программы, или понять, почему процесс ведёт себя (или не ведёт) определённым образом.
ELF — это сокращение от Executable and Linkable Format (формат исполняемых и связываемых файлов) и определяет структуру бинарных файлов, библиотек, и файлов ядра. Спецификация формата позволяет операционной системе корректно интерпретировать содержащиеся в файле машинные команды.
Файлы ELF предназначены для исполнения и линковки. В зависимости от назначения, они содержат необходимые сегменты и секции. Ядро ОС просматривает сегменты и отображает их в память. Секции просматриваются линкером, который создаёт исполняемый файл или разделяемый объект.
Файлы ELF очень гибкие и поддерживаются различные типы CPU, машинные архитектуры, и операционные системы. Также он расширяемый, каждый файл сконструирован по-разному, в зависимости от требуемых частей. Путём использования правильных инструментов, вы сможете разобраться с назначением файла, и изучать содержимое бинарных файлов. Можно просмотреть функции и строки, содержащиеся в файле. Хорошее начало для тех, кто исследует вредоносные программы, или понять, почему процесс ведёт себя (или не ведёт) определённым образом.
Расширение функциональности ядра
достигается 2-мя различными способами:
1. Статически
Мы вносим собственные изменения в основное дерево исходных кодов ядра Linux, после чего производится пересборка ядра. В итоге мы получаем некоторую частную модификацию ядра.
Преимущество: в добавляемом коде доступны все имена объектов ядра (вызовы функций, экземпляры данных). Таким способом сборщики дистрибутивных образов патчат официальное ядро, включая туда дополнения, которые они находят нужными.
2. Динамически
Код оформляется в формате динамически подгружаемого модуля. При выполнении системы модуль динамически загружается и становится неотъемлемой частью кода ядра. Всё связывание кода модуля производится по абсолютным адресам имён в ядре, поэтому модуль может быть собран только под конкретную версию и модификацию ядра. Ограничением этого способа является то, что коду модуля доступны только те объекты, которые явно объявлены как экспортируемые.
достигается 2-мя различными способами:
1. Статически
Мы вносим собственные изменения в основное дерево исходных кодов ядра Linux, после чего производится пересборка ядра. В итоге мы получаем некоторую частную модификацию ядра.
Преимущество: в добавляемом коде доступны все имена объектов ядра (вызовы функций, экземпляры данных). Таким способом сборщики дистрибутивных образов патчат официальное ядро, включая туда дополнения, которые они находят нужными.
2. Динамически
Код оформляется в формате динамически подгружаемого модуля. При выполнении системы модуль динамически загружается и становится неотъемлемой частью кода ядра. Всё связывание кода модуля производится по абсолютным адресам имён в ядре, поэтому модуль может быть собран только под конкретную версию и модификацию ядра. Ограничением этого способа является то, что коду модуля доступны только те объекты, которые явно объявлены как экспортируемые.
Установка IntelliJ IDEA на Linux
IntelliJ IDEA — это интегрированная среда разработки (IDE) от JetBrains, которая поддерживает множество ЯП, включая Java, Kotlin, Groovy и другие. Предоставляет обширные возможности для разработки, включая интеллектуальное автодополнение кода, мощный отладчик и интеграцию с системами контроля версий.
Установка IntelliJ IDEA:
- Идем на официальный сайт JetBrains и выбираем версию IntelliJ IDEA, которую хотите установить. Существует два варианта: Community (бесплатная) и Ultimate (платная).
- Качаем установочный файл (
- Открываем терминал и переходим в директорию, куда был загружен установочный файл:
- Распаковываем скачанный архив:
- Перемещаем распакованную папку в удобное место, например, в /opt:
- Запускаем IntelliJ IDEA:
IntelliJ IDEA — это интегрированная среда разработки (IDE) от JetBrains, которая поддерживает множество ЯП, включая Java, Kotlin, Groovy и другие. Предоставляет обширные возможности для разработки, включая интеллектуальное автодополнение кода, мощный отладчик и интеграцию с системами контроля версий.
Установка IntelliJ IDEA:
- Идем на официальный сайт JetBrains и выбираем версию IntelliJ IDEA, которую хотите установить. Существует два варианта: Community (бесплатная) и Ultimate (платная).
- Качаем установочный файл (
tar.gz) для Linux.- Открываем терминал и переходим в директорию, куда был загружен установочный файл:
cd ~/Downloads- Распаковываем скачанный архив:
tar -xvzf ideaIC-*.tar.gz- Перемещаем распакованную папку в удобное место, например, в /opt:
sudo mv idea-IC-*/ /opt/intellij- Запускаем IntelliJ IDEA:
/opt/intellij/bin/idea.shУстановка Visual Studio Code для разработки на Linux
Visual Studio Code (VS Code) — это редактор исходного кода, созданный Microsoft.
Установка Visual Studio Code:
Перейдите на официальный сайт Visual Studio Code и выберите версию для вашей операционной системы (обычно это .deb для Debian/Ubuntu).
Далее для Debian/Ubuntu:
После установки, запустите VS Code из меню приложений или с помощью команды:
Visual Studio Code (VS Code) — это редактор исходного кода, созданный Microsoft.
Установка Visual Studio Code:
Перейдите на официальный сайт Visual Studio Code и выберите версию для вашей операционной системы (обычно это .deb для Debian/Ubuntu).
Далее для Debian/Ubuntu:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpgsudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'sudo apt install apt-transport-httpssudo apt update
sudo apt install codeПосле установки, запустите VS Code из меню приложений или с помощью команды:
codeНаблюдаем за командами
Если вам необходимо следить за командами с изменяющимися выводимыми данными, используйте команду
Например, чтобы следить за средней загрузкой, выполняем:
Каждые две секунды watch будет запускать команду cat. (Для завершения выполнения команды нажмите сочетание клавиш CTRL+C).
Чтобы увеличить частоту обновления до 10 секунд, выполняем:
Чтобы выделить разницу между обновлениями на экране, выполните:
Для выполнения выделения необходимо, чтобы файлы изменялись.
Если вам необходимо следить за командами с изменяющимися выводимыми данными, используйте команду
watch. Например, чтобы следить за средней загрузкой, выполняем:
watch "cat /proc/loadavg" Каждые две секунды watch будет запускать команду cat. (Для завершения выполнения команды нажмите сочетание клавиш CTRL+C).
Чтобы увеличить частоту обновления до 10 секунд, выполняем:
watch -n 10 "ls -l" Чтобы выделить разницу между обновлениями на экране, выполните:
watch -d "ls -l" Для выполнения выделения необходимо, чтобы файлы изменялись.
Установка Java Development Kit на Linux
Java Development Kit (JDK) - необходимый инструмент для разработки и запуска Java-приложений. Рассмотрим, как установить JDK на дистрибутив Ubuntu.
1. Обновите список пакетов:
2. Установите OpenJDK:
Для установки OpenJDK версии 11:
или версии 17:
Далее провести проверку, что все установлено:
Вывод должен содержать информацию об установленной версии.
Java Development Kit (JDK) - необходимый инструмент для разработки и запуска Java-приложений. Рассмотрим, как установить JDK на дистрибутив Ubuntu.
1. Обновите список пакетов:
sudo apt update2. Установите OpenJDK:
Для установки OpenJDK версии 11:
sudo apt install openjdk-11-jdk -yили версии 17:
sudo apt install openjdk-17-jdk -yДалее провести проверку, что все установлено:
java -versionВывод должен содержать информацию об установленной версии.
Создание RAID-массива
Создание RAID-массива выполняется с помощью программы mdadmс ключом --create.
Также нужно указать опцию --level в зависимости от того, какого уровня будет RAID-массив (чтобы создать массив 5 уровня
С помощью ключа
Создание RAID-массива выполняется с помощью программы mdadmс ключом --create.
Также нужно указать опцию --level в зависимости от того, какого уровня будет RAID-массив (чтобы создать массив 5 уровня
--level=5). С помощью ключа
--raid-devices указываются устройства, поверх которых будет собираться RAID-массив.mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/hd1 /dev/hd2 /dev/hd3
Чтобы убедиться, что RAID-массив проинициализирован корректно можно просмотрев файл /proc/mdstat. В этом файле отражается текущее состояние RAID-массива.cat /proc/mdstatКоманда xargs
Возможность объединения нескольких команд Linux в терминале и использования их в качестве конвейера, когда каждая следующая команда получает вывод предыдущей - очень мощный и гибкий инструмент. Но команды можно объединять не только так. С помощью утилиты
Синтаксис команды:
Сначала выполняется любая первая команда и весь её вывод по туннелю передается в
С помощью этой команды можно например вывести все имена файлов из папки ~/folder:
Возможность объединения нескольких команд Linux в терминале и использования их в качестве конвейера, когда каждая следующая команда получает вывод предыдущей - очень мощный и гибкий инструмент. Но команды можно объединять не только так. С помощью утилиты
xargs вывод предыдущей команды можно передать в аргументы следующей.Синтаксис команды:
команда1 | xargs опции команда2 аргументыСначала выполняется любая первая команда и весь её вывод по туннелю передается в
xargs. Затем этот вывод разбивается на строки и для каждой строки вызывается вторая команда, а полученная строка передаётся ей в аргументах.С помощью этой команды можно например вывести все имена файлов из папки ~/folder:
ls ~/folder | xargs -t -L1 echo-t — используется, чтобы подробнее понять, что происходит-L1 — указывает сколько строк надо передавать в одну команду