Удаление определенного набора символов из файла
Для различных символьных преобразований можно воспользоваться командой
Например:
Удалить все нечисловые символы из файла:
Удалить все символы кроме буквенных:
Для различных символьных преобразований можно воспользоваться командой
tr.Например:
Удалить все нечисловые символы из файла:
tr -cd '0-9' < input.txt > output.txtУдалить все символы кроме буквенных:
tr -cd 'A-z' < input.txt > output.txtВывод строк определенного диапазона
Если вам нужно вывести из файла сроки, начиная с i-ой и до j-ой строчки, то можно воспользоваться командой
Например, вывести строки с 10-ой по 20-ую:
Если вам нужно вывести из файла сроки, начиная с i-ой и до j-ой строчки, то можно воспользоваться командой
sed:sed -n ‘i,jp' file.txtНапример, вывести строки с 10-ой по 20-ую:
sed -n '10,20p' file.txtКалькулятор командной строки
Команда
Арифметика с плавающей точкой:
Шестнадцатеричные вычисления:
Двоичные вычисления:
Команда
bc в Linux означает «базовый калькулятор». Выполняет арифметические вычисления, как базовые, так и более сложные, используя различные числовые системы счисления Арифметика с плавающей точкой:
echo "scale=2; 5.5 * 2.3" | bcШестнадцатеричные вычисления:
echo "ibase=16; A + 1" | bcДвоичные вычисления:
echo "ibase=2; obase=10; 1010 + 110" | bcИзвлечение диапазона символов из каждой строки
Чтобы извлечь определенный диапазон символов из каждой строки, можно воспользоваться командой
Например, извлечь символы с 5-й по 10-ю позицию каждой строки, можно с помощью:
Чтобы извлечь определенный диапазон символов из каждой строки, можно воспользоваться командой
cut.Например, извлечь символы с 5-й по 10-ю позицию каждой строки, можно с помощью:
cut -c5-10 file.txtДействия, которые могут привести к проблемам при неправильном использовании root user
Пользователь root имеет определенные привилегии и контроль, которых нет у обычных пользователей. Однако с большой властью приходит и большая ответственность. Вот из-за чего могут произойти проблемы:
Ошибки в командах: они могут иметь серьезные последствия, включая потерю данных, повреждение системы или случайное удаление важных файлов.
Внесение непроверенных изменений в системные файлы, конфиги или установки ПО: это может привести к нестабильности системы, сбоям или сбоям в работе.
Изменение или удаление системных файлов или пользовательских данных без надлежащего резервного копирования: это может привести к безвозвратной потере данных.
Неправильные конфигурации брандмауэра или настройки сети: они могут подвергнуть систему угрозам безопасности или несанкционированному доступу.
Пользователь root имеет определенные привилегии и контроль, которых нет у обычных пользователей. Однако с большой властью приходит и большая ответственность. Вот из-за чего могут произойти проблемы:
Ошибки в командах: они могут иметь серьезные последствия, включая потерю данных, повреждение системы или случайное удаление важных файлов.
Внесение непроверенных изменений в системные файлы, конфиги или установки ПО: это может привести к нестабильности системы, сбоям или сбоям в работе.
Изменение или удаление системных файлов или пользовательских данных без надлежащего резервного копирования: это может привести к безвозвратной потере данных.
Неправильные конфигурации брандмауэра или настройки сети: они могут подвергнуть систему угрозам безопасности или несанкционированному доступу.
Зависимость от root
Зависимость от пользователя root — это выполнения повседневных задач под root. Хотя он имеет много преимуществ, это может привести к различным проблемам. Вот некоторые проблемы, которые могут возникнуть из-за частого использования root:
⁃ Риски безопасности. Когда пользователи часто входят в систему как root, существует более высокий риск нарушений безопасности.
⁃ Ограниченное развитие навыков пользователей. Если пользователи полагаются исключительно на привилегии root, они могут не развить надлежащие навыки и знания Linux, необходимые для безопасного администрирования системы.
⁃ Случайные изменения системы. Частое использование привилегий root увеличивает вероятность непреднамеренных изменений системы, таких как изменение критических файлов или неправильная настройка важных параметров.
⁃ Отсутствие подотчетности: когда несколько пользователей используют корневую учетную запись или имеют доступ к ее учетным данным, становится сложно отследить, какой пользователь выполнил определенные действия. Отсутствие подотчетности усложняет устранение неполадок и аудит.
Зависимость от пользователя root — это выполнения повседневных задач под root. Хотя он имеет много преимуществ, это может привести к различным проблемам. Вот некоторые проблемы, которые могут возникнуть из-за частого использования root:
⁃ Риски безопасности. Когда пользователи часто входят в систему как root, существует более высокий риск нарушений безопасности.
⁃ Ограниченное развитие навыков пользователей. Если пользователи полагаются исключительно на привилегии root, они могут не развить надлежащие навыки и знания Linux, необходимые для безопасного администрирования системы.
⁃ Случайные изменения системы. Частое использование привилегий root увеличивает вероятность непреднамеренных изменений системы, таких как изменение критических файлов или неправильная настройка важных параметров.
⁃ Отсутствие подотчетности: когда несколько пользователей используют корневую учетную запись или имеют доступ к ее учетным данным, становится сложно отследить, какой пользователь выполнил определенные действия. Отсутствие подотчетности усложняет устранение неполадок и аудит.
Рекомендации, чтобы сохранить целостность и избежать повреждения системы
Иногда по невнимательности или частом использовании root user у нас могут возникнуть проблемы, чтобы их избежать, можно воспользоваться следующими рекомендациями:
⁃ Используйте обычных пользователей, а root только при необходимости для задач системного администрирования. Выполняйте повседневные задачи, используя обычные учетные записи пользователей с ограниченными привилегиями.
⁃ Используйте sudo для выполнения определенных команд с повышенными привилегиями. Это обеспечивает лучший контроль над тем, какие команды выполняются с правами root.
⁃ Регулярное резервное копирование важных данных и конфигураций системы для предотвращения потери данных в случае аварий.
⁃ Регулярно проверяйте и отслеживайте системные журналы, события безопасности и действия пользователей для обнаружения любых необычных или несанкционированных действий.
Иногда по невнимательности или частом использовании root user у нас могут возникнуть проблемы, чтобы их избежать, можно воспользоваться следующими рекомендациями:
⁃ Используйте обычных пользователей, а root только при необходимости для задач системного администрирования. Выполняйте повседневные задачи, используя обычные учетные записи пользователей с ограниченными привилегиями.
⁃ Используйте sudo для выполнения определенных команд с повышенными привилегиями. Это обеспечивает лучший контроль над тем, какие команды выполняются с правами root.
⁃ Регулярное резервное копирование важных данных и конфигураций системы для предотвращения потери данных в случае аварий.
⁃ Регулярно проверяйте и отслеживайте системные журналы, события безопасности и действия пользователей для обнаружения любых необычных или несанкционированных действий.
Привилегированные порты
Привилегированные порты — сетевые порты, номера которых находятся в диапазоне от 0 до 1023. Они так называются, поскольку только процессы, выполняемые с правами root user могут быть привязаны к ним. Обычным пользователям запрещено привязываться к таким портам.
Их концепция основана на безопасности и контроле доступа. Резервируя эти меньшие номера портов для процессов с привилегиями root, операционная система гарантирует, что только авторизованные и доверенные приложения могут прослушивать эти порты, которые обычно связаны с важными сетевыми службами.
Если вы хотите проверить, открыт или закрыт удаленный порт, вы можете использовать команду nmap:
Привилегированные порты — сетевые порты, номера которых находятся в диапазоне от 0 до 1023. Они так называются, поскольку только процессы, выполняемые с правами root user могут быть привязаны к ним. Обычным пользователям запрещено привязываться к таким портам.
Их концепция основана на безопасности и контроле доступа. Резервируя эти меньшие номера портов для процессов с привилегиями root, операционная система гарантирует, что только авторизованные и доверенные приложения могут прослушивать эти порты, которые обычно связаны с важными сетевыми службами.
Если вы хотите проверить, открыт или закрыт удаленный порт, вы можете использовать команду nmap:
nmap -p <port_number> <host_or_ip>Ключевые моменты о привилегированных портах
1. Диапазон привилегированных портов — от 0 до 1023. Эти номера хорошо известны и стандартизированы.
2. Концепция привилегированных портов восходит к зарождению Unix, когда определенные порты были зарезервированы для таких известных сервисов, как HTTP (порт 80), FTP (порт 21), Telnet (порт 23) и т. д.
3. Привилегированные порты доступны только корневым процессам, чтобы предотвратить получение непривилегированными пользователями или вредоносным программным обеспечением контроля над критически важными сетевыми службами.
4. Вместо запуска целых служб от имени пользователя root современные методы системного администрирования рекомендуют использовать такие инструменты, как sudo. Кроме того, многие сетевые демоны внедрили методы «разделения привилегий», чтобы минимизировать риск уязвимостей.
5. Некоторые современные подходы, такие как использование обратных прокси-серверов или балансировщиков нагрузки, могут позволить непривилегированным процессам перенаправлять трафик с порта с большим номером на привилегированный.
6. Попытка привязать процесс без полномочий root к привилегированному порту приведет к ошибке «Отказано в доступе», что защищает безопасность системы.
1. Диапазон привилегированных портов — от 0 до 1023. Эти номера хорошо известны и стандартизированы.
2. Концепция привилегированных портов восходит к зарождению Unix, когда определенные порты были зарезервированы для таких известных сервисов, как HTTP (порт 80), FTP (порт 21), Telnet (порт 23) и т. д.
3. Привилегированные порты доступны только корневым процессам, чтобы предотвратить получение непривилегированными пользователями или вредоносным программным обеспечением контроля над критически важными сетевыми службами.
4. Вместо запуска целых служб от имени пользователя root современные методы системного администрирования рекомендуют использовать такие инструменты, как sudo. Кроме того, многие сетевые демоны внедрили методы «разделения привилегий», чтобы минимизировать риск уязвимостей.
5. Некоторые современные подходы, такие как использование обратных прокси-серверов или балансировщиков нагрузки, могут позволить непривилегированным процессам перенаправлять трафик с порта с большим номером на привилегированный.
6. Попытка привязать процесс без полномочий root к привилегированному порту приведет к ошибке «Отказано в доступе», что защищает безопасность системы.
Поиск файлов по владельцу
Команда
Найти файлы, принадлежащие пользователю Josh:
Найти файлы, принадлежащие текущему вошедшему пользователю:
Найти файлы, принадлежащие группе developers:
Найти файлы, принадлежащие пользователю с UID 1001:
Команда
find в сочетании с флагом -user помогает искать файлы по имени владельцаНайти файлы, принадлежащие пользователю Josh:
find /path/to/search -type f -user JoshНайти файлы, принадлежащие текущему вошедшему пользователю:
find /path/to/search -type f -user $USERНайти файлы, принадлежащие группе developers:
find /path/to/search -type f -group developersНайти файлы, принадлежащие пользователю с UID 1001:
find /path/to/search -type f -uid 1001Исключение папки из поиска с помощью команды find
Один из подходов к исключению папки из поиска предполагает использование комбинации флагов -path, -prune и логического ИЛИ:
Важно, что путь должен оканчиваться на *, затем идёт -prune и только потом -o.
Один из подходов к исключению папки из поиска предполагает использование комбинации флагов -path, -prune и логического ИЛИ:
find . -path «./path/to/folder/*» -prune -o -name SEARCH_NAMEВажно, что путь должен оканчиваться на *, затем идёт -prune и только потом -o.
Время доступа (atime)
Atime обновляется каждый раз, когда файл открывается, читается или копируется. Даже простой просмотр содержимого файла обновляет его время.
Например, с помощью atime можно вывести список всех файлов, к которым не было доступа в течение как минимум 7 дней:
Также можете использовать -atime -7 для поиска файлов, к которым обращались в течение последних 7 дней.
Atime — временная метка файлов, которая указывает, когда в последний раз к содержимому файла обращался (читал) какой-либо процесс. Atime обновляется каждый раз, когда файл открывается, читается или копируется. Даже простой просмотр содержимого файла обновляет его время.
Например, с помощью atime можно вывести список всех файлов, к которым не было доступа в течение как минимум 7 дней:
find /path/to/search -type f -atime +7Также можете использовать -atime -7 для поиска файлов, к которым обращались в течение последних 7 дней.
Время модификации (mtime)
Mtime обновляется при изменении содержимого файла, например, во время редактирования, перезаписи или добавления.
Например, с помощью mtime можно найти все файлы, претерпевшие изменения за последние 3 дня:
Mtime — временная метка файлов, которая представляет собой последний раз, когда содержимое файла было изменено или записано.Mtime обновляется при изменении содержимого файла, например, во время редактирования, перезаписи или добавления.
Например, с помощью mtime можно найти все файлы, претерпевшие изменения за последние 3 дня:
find /path/to/search -type f -mtime -3Время изменения (ctime)
Метаданные: права доступа к файлам, право собственности и временные метки.
Изменения ctime происходят при изменении атрибутов файла, например при изменении разрешений или переименовании файла. Важно отметить, что на время ctime влияют не только действия пользователя, но и системные действия, такие как резервное копирование.
Например, с помощью ctime можно найти все файлы, созданные 5 и более дней назад:
Ctime — временная метка файла, представляющая собой последний раз, когда метаданные файла были изменены. Метаданные: права доступа к файлам, право собственности и временные метки.
Изменения ctime происходят при изменении атрибутов файла, например при изменении разрешений или переименовании файла. Важно отметить, что на время ctime влияют не только действия пользователя, но и системные действия, такие как резервное копирование.
Например, с помощью ctime можно найти все файлы, созданные 5 и более дней назад:
find /path/to/search -type f -ctime +5Управление выполнения команд с помощью anacron
1. Создание anacron job
Anacron jobs определяются в файле /etc/anacrontab. Для каждого задания указывается период (в днях), по истечении которого задание должно быть выполнено.
Пример базовой записи:
Чтобы вручную запустить anacron и выполнить запланированные задачи, используйте следующую команду:
Вы можете проверить, когда anacron job выполнялось в последний раз, проверив временную метку в соответствующем файле временных меток. Эти файлы обычно хранятся в
anacron — это утилита в Linux, которая помогает выполнять запланированные задачи, даже если ваша система не всегда включена. 1. Создание anacron job
Anacron jobs определяются в файле /etc/anacrontab. Для каждого задания указывается период (в днях), по истечении которого задание должно быть выполнено.
Пример базовой записи:
# /etc/anacrontab
# syntax: period delay job-identifier command
7 1 anacron_daily /bin/sh /path/to/your/noscript.sh
2. Запуск Чтобы вручную запустить anacron и выполнить запланированные задачи, используйте следующую команду:
anacron -s
3. Проверка последнего выполненияВы можете проверить, когда anacron job выполнялось в последний раз, проверив временную метку в соответствующем файле временных меток. Эти файлы обычно хранятся в
/var/spool/anacron/ и имеют те же имена, что и идентификаторы заданий в файле anacrontab.Синхронизация и передача файлов и каталогов с помощью rsync
Примеры использования:
Скопировать файл из одного каталога в другой локально:
Скопировать весь каталог и его содержимое в другую папку:
Скопировать файлы или каталоги на удаленный сервер с помощью SSH:
rsync — инструмент командной строки, который обычно используется в целях резервного копирования.Примеры использования:
Скопировать файл из одного каталога в другой локально:
rsync /path/to/source/file /path/to/destination/Скопировать весь каталог и его содержимое в другую папку:
rsync -av /path/to/source/directory/ /path/to/destination/
Скопировать файлы или каталоги на удаленный сервер с помощью SSH:
rsync -av /path/to/local/source user@remote:/path/to/remote/destinationИзменение или преобразование изображений
Команда
изменить размер изображений до определенной ширины и высоты:
повернуть изображения на указанный угол (по часовой стрелке):
преобразовать изображения в чб:
добавить текст к изображениям с указанным шрифтом, размером и цветом:
Команда
mogrify предназначена для модификации изображений. Будьте осторожны при использовании, так как команда может перезаписать исходные изображения.изменить размер изображений до определенной ширины и высоты:
mogrify -resize 800x600 image1.jpg image2.png
повернуть изображения на указанный угол (по часовой стрелке):
mogrify -rotate 90 image1.jpg image2.png
преобразовать изображения в чб:
mogrify -type Grayscale image1.jpg image2.pngдобавить текст к изображениям с указанным шрифтом, размером и цветом:
mogrify -pointsize 24 -draw "text 100,100 'Hello, World!'" image1.jpg image2.pngНаложения одного изображения на другое в терминале
Команда
Чтобы наложить изображение на другое:
overlay.png — изображение, которое вы хотите наложить.
base.jpg — изображение, на которое вы хотите наложить другое изображение.
output.jpg — выходное изображение.
Также можно наложить изображение с прозрачностью:
Команда
composite используется для объединения двух или более изображений путем наложения одного изображения на другое.Чтобы наложить изображение на другое:
composite overlay.png base.jpg output.jpg
overlay.png — изображение, которое вы хотите наложить.
base.jpg — изображение, на которое вы хотите наложить другое изображение.
output.jpg — выходное изображение.
Также можно наложить изображение с прозрачностью:
composite -blend 50% overlay.png base.jpg output.jpgСоздание коллажей в терминале
Команда
Создать базовую мозаичную компоновку изображений:
Можно также добавить границы вокруг каждого изображения:
Команда
montage используется для создания составного изображения путем расположения нескольких изображений в виде сетки или мозаики.Создать базовую мозаичную компоновку изображений:
montage image1.jpg image2.png image3.jpg -mode concatenate -tile 2x2 output.jpg
Можно также добавить границы вокруг каждого изображения:
montage image1.jpg image2.png -mode concatenate -tile 2x1 -border 10 output.jpgСоздание анимации и гивок
Команда
Отобразить последовательность изображений в виде анимации:
Контроль задержки (в миллисекундах) между кадрами:
Зациклить анимацию определенное количество раз (используйте 0 для бесконечного цикла):
Команда
animate — универсальный инструмент для создания простых анимаций, анимированных GIF-файлов и многого другого.Отобразить последовательность изображений в виде анимации:
animate frame1.jpg frame2.png frame3.jpg
Контроль задержки (в миллисекундах) между кадрами:
animate -delay 100 frame1.jpg frame2.png frame3.jpg
Зациклить анимацию определенное количество раз (используйте 0 для бесконечного цикла):
animate -loop 3 frame1.jpg frame2.png frame3.jpgСравнение двух изображений
Команда
Сравнить два изображения и создать разностное изображение:
Команда
compare используется для сравнения двух изображений для обнаружения различий между изображениями, который может быть полезен для контроля качества, тестирования и анализа изображений.Сравнить два изображения и создать разностное изображение:
compare image1.jpg image2.png difference.png