GitHub теперь в Telegram!
Более 7000+ репозиториев с исходным кодом нейросетей, ботов, сайтов и других интересных проектов для разработчиков
Всё разбито по #хештегам. Подписывайтесь:
Более 7000+ репозиториев с исходным кодом нейросетей, ботов, сайтов и других интересных проектов для разработчиков
Всё разбито по #хештегам. Подписывайтесь:
Если необходимо использовать арифметические операторы в сценариях оболочки, поможет команда
Например:
Полный перечень операций:
Если вам часто приходится заниматься ими, то, лучше использовать что-то вроде Python.
expr (которая выполняет даже некоторые операции со строками). Например:
expr 5 + 2 выводит результат 7. Полный перечень операций:
expr --help
expr не хранит результат, а по умолчанию просто печатает ответ. Но никто не запрещает сохранять результат в переменные: A=$( expr 12 - 7 )
echo $A # 5
Применение команды expr — это неуклюжий и медленный способ выполнения математических вычислений. Если вам часто приходится заниматься ими, то, лучше использовать что-то вроде Python.
Как сохранить изменения и выйти в текстовом редакторе nano
NANO простой текстовый редактор. Чтобы сохранить изменения нужно нажать сочетание клавиш
Однако, если вы попытаетесь сохранить данные в файл, к которому у вас нет доступа, то получите ошибку: "Ошибка записи /имя/файла: Отказано в доступе"
Проще всего, закрыть редактор, нажав
Если изменения не хочется терять, во время запроса имени файла можно указать путь к новому файлу в вашей домашней директории.
Новый файл сохранится туда, потом вы сможете переместить его вместо старого в помощью команды
NANO простой текстовый редактор. Чтобы сохранить изменения нужно нажать сочетание клавиш
Ctrl + O , после этого редактор попросит ввести имя файла для сохранение. И когда все готово, достаточно нажать Enter. Чтобы выйти — Ctrl+XОднако, если вы попытаетесь сохранить данные в файл, к которому у вас нет доступа, то получите ошибку: "Ошибка записи /имя/файла: Отказано в доступе"
Проще всего, закрыть редактор, нажав
Ctrl+X не сохраняя изменений. На вопрос редактора про сохранение буфера надо ответить No. А затем открыть редактор уже от имени суперпользователя.Если изменения не хочется терять, во время запроса имени файла можно указать путь к новому файлу в вашей домашней директории.
Новый файл сохранится туда, потом вы сможете переместить его вместо старого в помощью команды
mv уже используя sudo.Команда more
Утилита more предназначена для постраничного просмотра файлов в терминале Linux. Команда more — одна из самых примитивных команд для работы с текстом.
Примеры использования:
Для того, чтобы просмотреть текст из файла filename.txt:
Также в команде можно перечислить несколько имён файлов одно за другим, разделяя их пробелом. Содержимое этих файлов будет выведено в том же порядке:
Порой необходимо вывести на экран не весь текст, а только его часть. Для таких случаев предусмотрены опции - (минус) и + (плюс), рядом с которыми указывается число строк. Чтобы увидеть содержимое файла, начиная с 8-й строки, следует добавить к команде опцию +8, а чтобы команда выводила результат, состоящий максимум из 5-ти строк, опцию -5:
Также more умеет работать не только с выводами других команд:
Утилита more предназначена для постраничного просмотра файлов в терминале Linux. Команда more — одна из самых примитивных команд для работы с текстом.
Примеры использования:
Для того, чтобы просмотреть текст из файла filename.txt:
more filename.txtТакже в команде можно перечислить несколько имён файлов одно за другим, разделяя их пробелом. Содержимое этих файлов будет выведено в том же порядке:
more file1.txt file2.txtПорой необходимо вывести на экран не весь текст, а только его часть. Для таких случаев предусмотрены опции - (минус) и + (плюс), рядом с которыми указывается число строк. Чтобы увидеть содержимое файла, начиная с 8-й строки, следует добавить к команде опцию +8, а чтобы команда выводила результат, состоящий максимум из 5-ти строк, опцию -5:
more +8 -5 filename.txtТакже more умеет работать не только с выводами других команд:
locate bin | more -10Контроль активности пользователя
Чтобы мониторить действий пользователей в системе, можно использовать два приложения —
Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как
Команды для мониторинга действий процесса:
⁃
⁃
⁃
⁃
⁃
Пакет
Чтобы мониторить действий пользователей в системе, можно использовать два приложения —
psacct или acct.Они предоставляют отличный способ отслеживать, что делают пользователи, какие команды они запускают, сколько ресурсов они потребляют, как долго пользователи активны в системе. Еще одна замечательная особенность в том, что она дает общие ресурсы, потребляемые такими службами, как
Apache, MySQL, FTP, SSH и т.д.Команды для мониторинга действий процесса:
⁃
ac — выводит статистику пользовательских входов/выходов (время подключения) в часах.⁃
lastcomm — печатает информацию о ранее выполненных командах пользователя.⁃
accton — используются для включения/выключения процесса учета.⁃
sa — суммирует информацию о ранее выполненных командах.⁃
last и lastb — показывают список последних зарегистрированных пользователей.Пакет
psacct доступен только для дистрибутивов на основе rpm (RHEL, CentOS и Fedora), а acct — для Ubuntu, Debian и Linux Mint.Кроме
Иногда в файле
Как известно, при входе пользователя в систему запускается установленная для него оболочка. Так вот, если для какого-либо пользователя задать оболочку
bash в Linux существуют и другие оболочки: sh, csh, ksh, zsh, tcsh и пр. Все командные оболочки, установленные в системе, прописаны в файле /etc/shells.Иногда в файле
/etc/shells можно найти /bin/false и /bin/true, которые не являются оболочками. Это «заглушки», которые можно использовать, если вы хотите отключить ту или иную учетную запись пользователя. Как известно, при входе пользователя в систему запускается установленная для него оболочка. Так вот, если для какого-либо пользователя задать оболочку
/bin/false (или /bin/true), он не сможет войти в систему. Точнее, в систему-то он войдет, но и сразу выйдет из нее, поскольку сессия пользователя длится до завершения работы его оболочки, а обе заглушки ничего не делают, кроме того, что просто возвращают значение 0 (для false) или 1 (для true)..IMG файл
Файл
Файлы
Прежде чем использовать файл
Файл
IMG представляет собой файл образа диска, созданный различными приложениями для работы с образами дисков, такими как H+H Software Virtual CD. Он хранит точную копию данных на CD или DVD и используется для резервного копирования и записи новых дисков.Файлы
IMG, созданные разными программами создания образа диска, могут использовать разные форматы. Например, файлы IMG, созданные SlySoft CloneCD, должны быть объединены в пару с соответствующими файлами .CCD и .SUB, прежде чем их можно будет использовать для создания диска. Прежде чем использовать файл
IMG для создания нового диска, вы должны попытаться определить, какая программа создала файл IMG, и проверить, может ли ваша программа создания дисков записывать файлы, сохраненные в этом формате.Команда nl
Нумерация строк облегчает чтение и упрощает запоминание вашего места или указания на конкретный раздел.
Используя
Самый простой способ использования команды
А если вам нравится использовать
Нумерация строк облегчает чтение и упрощает запоминание вашего места или указания на конкретный раздел.
Используя
nl, вы можете буквально нумеровать строки. Принятие некоторого текста на стандартный ввод дает тот же результат, но с номерами строк. Самый простой способ использования команды
nl:cat <file> | nlА если вам нравится использовать
less для просмотра больших файлов, вы можете просто передать аргумент -N при открытии файла, чтобы автоматически пронумеровать строки.❤1
Получить всю информацию о компонентах компьютера можно с помощью команды
Если запустить команду без параметров, то на выходе получим огромный список в несколько сотен строк, включающий версию прошивки, установленные драйверы, поддерживаемые возможности, серийные номера, номера версий и информацию о шине.
Поэтому следует немного отфильтровать поток, запустив:
Пример вывода информации с конкретными классами:
Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр
lshwЕсли запустить команду без параметров, то на выходе получим огромный список в несколько сотен строк, включающий версию прошивки, установленные драйверы, поддерживаемые возможности, серийные номера, номера версий и информацию о шине.
Поэтому следует немного отфильтровать поток, запустив:
sudo lshw -short или sudo lshw -businfo, чтобы увидеть список классов устройств, которые дальше можно передать утилите.Пример вывода информации с конкретными классами:
sudo lshw -short -class bus -class cpu Вывод можно преобразовать в форматы HTML, XML или JSON, к примеру:
sudo lshw -html -class storage > log.html Чтобы убрать из вывода информацию, такую как IP адреса и серийные номера, можно добавить параметр
-sanitizeYADRO приглашает Software Engineer на SPRINT OFFER 🔍
Компания-лидер инженерной индустрии в России YADRO проводит SPRINT OFFER для Software Engineer в двух направлениях — Linux-based и Android.
🔵 Оффер в команду KVADRA, которая разрабатывает собственную операционную систему kvadraOS, можно получить всего за 3 дня!
→ На направлении Linux-based вам предстоит адаптировать исходный код Chromium для компьютеров и ноутбуков с нашими аппаратными платформами и вносить изменения в поведение устройств, учитывая продуктовые требования.
→ На направлении Android вы будете заниматься подготовкой unit-тестов своего кода. Разрабатывать собственные и адаптировать чужие приложения, если они входят в базовую поставку ОС.
Чтобы принять участие, до 24 ноября подайте заявку на сайте.
Станьте частью YADRO!
Компания-лидер инженерной индустрии в России YADRO проводит SPRINT OFFER для Software Engineer в двух направлениях — Linux-based и Android.
🔵 Оффер в команду KVADRA, которая разрабатывает собственную операционную систему kvadraOS, можно получить всего за 3 дня!
→ На направлении Linux-based вам предстоит адаптировать исходный код Chromium для компьютеров и ноутбуков с нашими аппаратными платформами и вносить изменения в поведение устройств, учитывая продуктовые требования.
→ На направлении Android вы будете заниматься подготовкой unit-тестов своего кода. Разрабатывать собственные и адаптировать чужие приложения, если они входят в базовую поставку ОС.
Чтобы принять участие, до 24 ноября подайте заявку на сайте.
Станьте частью YADRO!
Поиск блочных устройств
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе.
Типичные примеры блочных устройств: жёсткий диск, CD-ROM, НГМД.
Чтобы выполнить поиск блочных устройств для создания физических томов на их основе, можно воспользоваться командой
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе.
Типичные примеры блочных устройств: жёсткий диск, CD-ROM, НГМД.
Чтобы выполнить поиск блочных устройств для создания физических томов на их основе, можно воспользоваться командой
lvmdiskscan.Копирование файлов по ssh
Чтобы скопировать локальный файл
А наоборот, скопировать файл с удаленного компьютера в текущую директорию:
Также копировать можно не только файлы, но и и целые директории.
Чтобы скопировать с локального компьютера директорию
Чтобы скопировать локальный файл
myfile.txt на компьютер с IP адресом 192.168.12.124 в директорию /home/mycomputer:scp myfile.txt mycomputer.168.12.124:/home/mycomputerА наоборот, скопировать файл с удаленного компьютера в текущую директорию:
scp mycomputer.168.12.124:/home/mycomputerТакже копировать можно не только файлы, но и и целые директории.
Чтобы скопировать с локального компьютера директорию
~/mydir на удаленный компьютер в директорию /home/mycomputer:scp -r ~/mydir mycomputer.168.1.17:/home/mycomputerInxi — утилита командной строки для отображения подробной информации о системе в Linux и других Unix-подобных ОС. Она предоставляет обширные данные о конфигурации системы, включая информацию о железе, сети, процессах и многом другом.
Для получения подробной информации о системе, можно запустить команду:
Для большинства дистрибутивов Inxi доступен через стандартные репозитории:
В Ubuntu/Debian:
В Fedora:
В Arch Linux:
Для получения подробной информации о системе, можно запустить команду:
inxi -F (Параметр -F (или --full) выводит полную информацию о системе, включая аппаратные и программные компоненты).inxi -x: выводит более подробную информацию о процессоре и памяти.inxi -S: показывает информацию только о системе, такой как дистрибутив, версия ядра и архитектура.inxi -G: отображает только информацию о графической карте.Для большинства дистрибутивов Inxi доступен через стандартные репозитории:
В Ubuntu/Debian:
sudo apt install inxiВ Fedora:
sudo dnf install inxiВ Arch Linux:
sudo pacman -S inxihttpie
Инструмент командной строки, который упрощает взаимодействие с веб-API, предоставляя более человекочитаемый вывод по сравнению с curl. Он предоставляет удобный синтаксис для отправки HTTP-запросов.
Из преимуществ:
- Удобный формат вывода (JSON, HTML).
- Автоматическая обработка ошибок.
- Легкость в отправке запросов с JSON-данными.
Debian, Ubuntu:
AlmaLinux, CentOS:
Fedora:
Пример использования:
Для отправки POST-запроса:
Инструмент командной строки, который упрощает взаимодействие с веб-API, предоставляя более человекочитаемый вывод по сравнению с curl. Он предоставляет удобный синтаксис для отправки HTTP-запросов.
Из преимуществ:
- Удобный формат вывода (JSON, HTML).
- Автоматическая обработка ошибок.
- Легкость в отправке запросов с JSON-данными.
Debian, Ubuntu:
sudo apt install httpieAlmaLinux, CentOS:
sudo yum install httpieFedora:
sudo dnf install httpieПример использования:
http GET https://example.comДля отправки POST-запроса:
http POST https://example.com key=valueСвободные лицензии
Выделяют две группы:
Взаимные лицензии — они обязуют пользователя распространять модифицированную программу на тех же условиях, что и исходную. К таким лицензиям относятся все виды
Разрешительные лицензии — содержат минимум пользовательских требований и разрешают создавать проприетарный софт на основе исходной программы. С другой стороны, разрешительные лицензии не позволяют автору исходного кода контролировать судьбу модифицированной версии ПО. К ним относятся:
Совместимость лицензий означает, что программы, распространяемые под этими лицензиями, могут быть объединены или код одной программы может быть использован в другой. Разрешительные лицензии в основном совместимы между собой, а вот версии
Выделяют две группы:
Взаимные лицензии — они обязуют пользователя распространять модифицированную программу на тех же условиях, что и исходную. К таким лицензиям относятся все виды
GPL, LGPL и AGPL.Разрешительные лицензии — содержат минимум пользовательских требований и разрешают создавать проприетарный софт на основе исходной программы. С другой стороны, разрешительные лицензии не позволяют автору исходного кода контролировать судьбу модифицированной версии ПО. К ним относятся:
BSD, MIT и Apache.Совместимость лицензий означает, что программы, распространяемые под этими лицензиями, могут быть объединены или код одной программы может быть использован в другой. Разрешительные лицензии в основном совместимы между собой, а вот версии
GPL — нет.Команда modinfo
Выводит информации о модуле: файл модуля, краткое описание, авторы, лицензия, параметры.
Если имя модуля не является именем файла, то будет выполнен поиск в каталоге /lib/modules/версия
Опции:
Выводит информации о модуле: файл модуля, краткое описание, авторы, лицензия, параметры.
modinfo <опция> <имя_модуля|имя_файла>Если имя модуля не является именем файла, то будет выполнен поиск в каталоге /lib/modules/версия
Опции:
-V либо --version — Вывести версию modinfo.-F либо --field — Вывести только значение этого поля, по одному в строке. -k — Предоставить информацию о другом ядре, а не о используемом в настоящее время. Эта возможность может потребоваться для извлечения информации из недавно установленного набора модулей.Процесс загрузки Linux
Как только ядро Linux получает контроль над системой, оно подготавливает свои области памяти и драйвера. Затем оно передает управление init, чьей задачей является дальнейшая подготовка системы и проверка того, что в конце процесса загрузки, все необходимые сервисы запущены и пользователь способен войти в систему.
Init делает это с помощью запуска демона udev, Когда udev запущен, все оставшиеся файловые системы, которые не были примонтированы, монтируются, и запускаются остальные сервисы.
Для систем, где все необходимые файлы и инструменты располагаются на той же самой файловой системе, приложение init может легко управлять дальнейшим процессом загрузки.
Но когда определены множественные файловые системы , этот процесс может стать немного более усложненным, но с давних пор решением для этой проблемы является использование "initrd" (initial root device).
Как только ядро Linux получает контроль над системой, оно подготавливает свои области памяти и драйвера. Затем оно передает управление init, чьей задачей является дальнейшая подготовка системы и проверка того, что в конце процесса загрузки, все необходимые сервисы запущены и пользователь способен войти в систему.
Init делает это с помощью запуска демона udev, Когда udev запущен, все оставшиеся файловые системы, которые не были примонтированы, монтируются, и запускаются остальные сервисы.
Для систем, где все необходимые файлы и инструменты располагаются на той же самой файловой системе, приложение init может легко управлять дальнейшим процессом загрузки.
Но когда определены множественные файловые системы , этот процесс может стать немного более усложненным, но с давних пор решением для этой проблемы является использование "initrd" (initial root device).
Команда pstree
Похожа на
В простейшей форме, когда
Чтобы отключить объединение идентичных веток, примените:
Если в качестве аргумента указано имя пользователя,
Похожа на
ps, но вместо перечисления запущенных процессов, она показывает их в виде дерева.В простейшей форме, когда
pstree вызывается без какой-либо опции или аргументов, она отображает иерархическую древовидную структуру всех запущенных процессов.Чтобы отключить объединение идентичных веток, примените:
pstree -cЕсли в качестве аргумента указано имя пользователя,
pstree отображает только процессы, принадлежащие этому пользователю:pstree usernamepstree также позволяет выделить процессы для лучшего визуального представления. Аргумент -h выделит текущий процесс и все его предки:pstree -hСмотрим общую информацию о жёстком диске
Для регулировки и просмотра параметров жёстких дисков с интерфейсом ATA существует утилита
Утилита может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.
Для просмотра общей информации о жёстком диске используется команда:
Для регулировки и просмотра параметров жёстких дисков с интерфейсом ATA существует утилита
hdparm.Утилита может установить такие параметры как объём кеш-памяти накопителя, спящий режим, управление питанием, управление акустикой и настройки DMA.
hdparm имеет очень серьёзный недостаток: утилита может привести к сбою компьютера и сделать данные на жёстком диске недоступными, после применения сочетания некоторых параметров.Для просмотра общей информации о жёстком диске используется команда:
hdparm -i /dev/sd<буква>Найти и заменить строку с помощью sed
Общая форма поиска и замены текста с помощью
где
Sed — это неинтерактивный строчный редактор. С помощью sed вы можете искать, находить и заменять, вставлять и удалять слова и строки.Общая форма поиска и замены текста с помощью
sed имеет следующий вид: sed -i 's/SEARCH_REGEX/REPLACEMENT/g' INPUTFILEгде
-i — опция, указывающая sed редактировать файлы на месте. s — заменяющая команда/ — Символ-разделительSEARCH_REGEX — обычная строка или регулярное выражение для поискаREPLACEMENT — строка заменыg — Флаг глобальной заменыINPUTFILE — имя файла, для которого вы хотите запустить команду