Как избежать случайного закрытия или перезагрузки в Linux?
Существует утилита под названием
Установка
Теперь попробуйте выключить или перезагрузить удаленную систему или VPS через SSH:
$ sudo poweroff
W: molly-guard: SSH session detected!
Please type in hostname of the machine to poweroff: ^C
Good thing I asked; I won't poweroff destroyer ...
Molly-guard запрашивает имя хоста
📲 Мы в MAX
👉 @sysadminof
Существует утилита под названием
molly-guard, которая используется для предотвращения системы Linux от случайного выключения или перезагрузки.Установка
# apt install molly-guardТеперь попробуйте выключить или перезагрузить удаленную систему или VPS через SSH:
$ sudo poweroff
W: molly-guard: SSH session detected!
Please type in hostname of the machine to poweroff: ^C
Good thing I asked; I won't poweroff destroyer ...
Molly-guard запрашивает имя хоста
📲 Мы в MAX
👉 @sysadminof
👍6🔥3❤1
Media is too big
VIEW IN TELEGRAM
Oh My Posh
Кастомизируем командную строку в PowerShell, Windows Terminal, чтобы воспользоваться всеми её преимуществами.
Сайт https://ohmyposh.dev/
Документация https://ohmyposh.dev/docs
📲 Мы в MAX
👉 @sysadminof
Кастомизируем командную строку в PowerShell, Windows Terminal, чтобы воспользоваться всеми её преимуществами.
Сайт https://ohmyposh.dev/
Документация https://ohmyposh.dev/docs
📲 Мы в MAX
👉 @sysadminof
❤2👍1🔥1
Горячие клавиши терминала Linux
Общие:
История команд:
Стрелки вверх и вниз - используются для перемещения вперед и назад по истории команд.
Перемещение курсора:
Редактирование:
📲 Мы в MAX
👉 @sysadminof
Общие:
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+_ - отменить последнее действие со строкой.📲 Мы в MAX
👉 @sysadminof
👍7🔥1
Меняем пароль пользователя Active Directory с помощью PowerShell
Для этого используйте команду Set-ADAccountPassword из модуля Active Directory для Windows PowerShell.
Перед использованием командлета Set-ADAccountPassword вы должны импортировать этот модуль в сеанс PowerShell:
Пароль в памяти компьютера желательно хранить в защищенной форме, поэтому вы можете попросить администратора указать пароль следующим образом:
Введите новый пароль в консоли PowerShell.
Лучше указать имя учетной записи AD в виде имени samAccountname. Например, чтобы изменить пароль для пользователя iodmin, запустите команду:
Вы можете установить новый пароль пользователя непосредственно внутри кода скрипта:
Если вы хотите, чтобы пользователь изменил пароль при следующем входе в систему, выполните команду:
Вы можете сбросить пароль для нескольких пользователей одновременно (предположим, что имена учетных записей хранятся в текстовом файле user_to_reset.txt).
Используйте этот скрипт:
📲 Мы в MAX
👉 @sysadminof
Для этого используйте команду Set-ADAccountPassword из модуля Active Directory для Windows PowerShell.
Перед использованием командлета Set-ADAccountPassword вы должны импортировать этот модуль в сеанс PowerShell:
Import-Module ActiveDirectoryПароль в памяти компьютера желательно хранить в защищенной форме, поэтому вы можете попросить администратора указать пароль следующим образом:
$newPass=Read-Host "Enter the new user password" -AsSecureStringВведите новый пароль в консоли PowerShell.
Лучше указать имя учетной записи AD в виде имени samAccountname. Например, чтобы изменить пароль для пользователя iodmin, запустите команду:
Set-ADAccountPassword iodmin -NewPassword $newPassВы можете установить новый пароль пользователя непосредственно внутри кода скрипта:
Set-ADAccountPassword iodmin–NewPassword (ConvertTo-SecureString -AsPlainText –String "St0ngPwd@d" -force)Если вы хотите, чтобы пользователь изменил пароль при следующем входе в систему, выполните команду:
Set-ADUser iodmin -ChangePasswordAtLogon $TrueВы можете сбросить пароль для нескольких пользователей одновременно (предположим, что имена учетных записей хранятся в текстовом файле user_to_reset.txt).
Используйте этот скрипт:
Get-Content C:\PS\user_to_reset.txt | Set-ADAccountPassword -NewPassword $newPass -Reset📲 Мы в MAX
👉 @sysadminof
👍6🔥1
Как скопировать структуру каталогов в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
Переходим туда
И используя xargs читаем из файла пути и создаем по ним структуру директорий
📲 Мы в MAX
👉 @sysadminof
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txtТеперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2Переходим туда
# cd /dir2И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt📲 Мы в MAX
👉 @sysadminof
👍8❤1🔥1😨1
Полезные команды Linux. Манипуляции с текстом
#
Вывести содержимое файла, нумеруя выводимые строки
#
Вывести только не четные строки файла
#
Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
Отобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
Отобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
Сравнить содержимое двух файлов
#
Заменить string1 на string2 в файле example.txt и вывести содержимое
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить пустые строки и комментарии из файла example.txt
#
Удалить первую строку из файла example.txt
#
Отобразить только строки содержащие string1
#
Удалить строку string1 из текста файла example.txt не изменяя всего остального
#
Удалить пустые символы в конце каждой строки файла example.txt
#
Вывести пятую строку
#
Вывести строки со второй по пятую
#
Заменить последовательность из любого количества нулей одним нулём
#
Вывести отсортированное содержимое двух файлов
#
Вывести отсортированное содержимое двух файлов исключая повторные значения
#
Вывести уникальные значения из отсортированного содержимого двух файлов
#
Вывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
Перевести символы нижнего регистра в верхний
📲 Мы в MAX
👉 @sysadminof
#
cat -n file1Вывести содержимое файла, нумеруя выводимые строки
#
cat example.txt | awk 'NR%2==1'Вывести только не четные строки файла
#
echo a b c | awk '{print $1,$3}'Вывести первую и третью колонки. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
echo a b c | awk '{print $1}'Вывести первую колонку содержимого файла. Разделение, по-умолчанию, по пробельным символам или символу табуляции
#
comm -3 file1 file2Сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах
#
comm -1 file1 file2Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file1
#
comm -2 file1 file2Сравнить содержимое двух файлов, не отображая строки принадлежащие файлу file2
#
grep [0-9] /var/log/messagesОтобрать и вывести строки содержащие цифровые символы из файла /var/log/messages
#
grep ^Aug /var/log/messagesОтобрать и вывести строки, начинающиеся с сочетания символов "Aug", из файла /var/log/messages
#
grep Aug /var/log/messagesОтобрать и вывести строки, содержащие сочетание символов "Aug" из файла /var/log/messages
#
grep Aug -R /var/log/*Отобрать и вывести строки, содержащие сочетание символов "Aug", из всех файлов, расположенных в директории /var/log и ниже
#
paste -d '+' file1 file2Объединить содержимое file1 и file2 в виде таблицы с разделителем "+"
#
paste file1 file2Объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m
#
sdiff file1 file2Сравнить содержимое двух файлов
#
sed 's/string1/string2/g' example.txtЗаменить string1 на string2 в файле example.txt и вывести содержимое
#
sed '/ *#/d; /^$/d' example.txtУдалить пустые строки и комментарии из файла example.txt
#
sed '/^$/d' example.txtУдалить пустые строки и комментарии из файла example.txt
#
sed -e '1d' exampe.txtУдалить первую строку из файла example.txt
#
sed -n '/string1/p'Отобразить только строки содержащие string1
#
sed -e 's/string//g' example.txtУдалить строку string1 из текста файла example.txt не изменяя всего остального
#
sed -e 's/ *$//' example.txtУдалить пустые символы в конце каждой строки файла example.txt
#
sed -n '5p;5q' example.txtВывести пятую строку
#
sed -n '2,5p' example.txtВывести строки со второй по пятую
#
sed -e 's/00*/0/g' example.txtЗаменить последовательность из любого количества нулей одним нулём
#
sort file1 file2Вывести отсортированное содержимое двух файлов
#
sort file1 file2 | uniqВывести отсортированное содержимое двух файлов исключая повторные значения
#
sort file1 file2 | uniq -uВывести уникальные значения из отсортированного содержимого двух файлов
#
sort file1 file2 | uniq -dВывести только повторяющиеся значения из отсортированного содержимого двух файлов
#
echo 'word' | tr '[:lower:]' '[:upper:]'Перевести символы нижнего регистра в верхний
📲 Мы в MAX
👉 @sysadminof
👍7🔥2
Шпаргалка по часто используемым командам systemctl
1. Посмотреть статус службы. Покажет статус службы на примере сети network
2. Запустить сервис. Запустит сервис баз данных на примере mysql
3. Остановить службу. Остановит сервис времени ntpd
4. Перезапустить службу. Перезапустит веб-сервер nginx
5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
8. Перезагрузить сервер. Перезагрузит локальный сервер
9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
а) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
📲 Мы в MAX
👉 @sysadminof
1. Посмотреть статус службы. Покажет статус службы на примере сети network
systemctl status network2. Запустить сервис. Запустит сервис баз данных на примере mysql
systemctl start mysql3. Остановить службу. Остановит сервис времени ntpd
systemctl stop ntpd4. Перезапустить службу. Перезапустит веб-сервер nginx
systemctl restart nginx5. Включить автозапуск службы. Разрешит автозапуск веб-сервера apache
systemctl enable apache6. Отключить автозапуск службы. Запретит автозапуск брандмауэра firewalld
systemctl disable firewalld7. Выполнить команду на удаленной системе. Остановит cron на компьютере с IP-адресом 192.168.0.15, подключившись под учетной записью root
systemctl --host [email protected] stop cron8. Перезагрузить сервер. Перезагрузит локальный сервер
systemctl reboot9. Проверка работы сервиса. Выполняется с помощью опции is-active. В данном примере мы проверим работу службы docker.
systemctl is-active dockerа) Если сервис запущен, мы увидим:
active
б) Если не запущен:
failed
... или:
inactive
в) Если такого сервиса нет в системе:
unknown
... или:
inactive
Если сервис не работает или его нет в системе, команда вернет код ошибки, таким образом конструкция:
systemctl is-active docker && docker run hello-world... приведет к выполнению команды docker run hello-world только в том случае, если сервис docker работает.
📲 Мы в MAX
👉 @sysadminof
👍7