Системный администратор. Все для системного администратора: библиотека электронных книг, полезные статьи, мануалы.
Ctrl + n — то же самое, что и стрелка вниз.
Ctrl + p — то же самое, что и стрелка вверх.
Ctrl + r — поиск по предыдущим командам из истории команд (history). Продолжайте нажимать Ctrl + r, чтобы искать дальше. Ctrl + Shift + r — поиск в другую сторону.
Ctrl + s — остановить вывод в терминал.
Ctrl + q — восстановить вывод в терминал после Ctrl + s.
Ctrl + a — перейти к началу строки (аналог клавиши Home).
Ctrl + e — перейти к концу строки (аналог клавиши End).
Ctrl + d — если вы ввели что-то, то Ctrl + d удаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.
Ctrl + k — удалить весь текст от курсора до конца строки.
Ctrl + x + backspace — удалить весь текст от начала строки до курсора.
Ctrl + t — переставить символ до курсора на символ под курсором. Нажмите Esc + t для перестановки двух слов до курсора.
Ctrl + w — удалить слово до курсора; затем Ctrl + y, чтобы вставить его.
Ctrl + u — удалить строку перед курсором; Ctrl + y для вставки его.
Ctrl + _ — отменить ввод.
Ctrl + l — очищает окно терминала. То же самое, что и clear.
Ctrl + x + Ctrl + e — запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.
Изменить заглавные на строчные и наоборот
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы.
Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр.
Esc + c — заменить букву под курсором на заглавную.
Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!! — запуск последней команды.
sudo !! — запустить предыдущую команду с sudo.
Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb
$ echo 'bbb'
bbb
Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/
Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c
— запускает cat filename ещё раз.
Указание файлов по шаблону в Bash
/etc/pa*wd → /etc/passwd — символ * означает "несколько любых символов".
/b?n/?at → /bin/cat — символ ? означает "один любой символ".
ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз".
ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или".
Полезные переменные окружения Bash
Короткие переменные:
$0 — оболочка командной строки или путь до запускаемого файла.
$1, $2, $3, ... — аргументы запуска скрипта.
$# — число аргументов, переданных в скрипт из терминала.
$? — код завершения последней команды.
$- — текущие опции, установленные для оболочки.
$$ — идентификатор текущего процесса.
$! — идентификатор процесса, завершённого последним.
Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION — текущий менеджер дисплеев.
$EDITOR — редактор текста по умолчанию.
$LANG — используемый системой язык.
$PATH — список директорий, в которых будут искаться исполняемые файлы.
$PWD — текущая директория.
$SHELL — текущая оболочка командной строки.
$USER — имя текущего пользователя.
$HOSTNAME — имя текущего хоста (компьютера).
👉 @i_odminGet-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 41} |
ForEach-Object {
$flam = New-Object PSObject | Select-Object Date
if ($_.ReplacementStrings[4]) {
$flam.Date = $_.TimeGenerated
$flam
}
}
$StrData=[string]$flam.Date
$message = $StrData + " " + "Сервер: $env:computername" + " " + "Система перезагрузилась, завершив работу с ошибками. Возможные причины ошибки: система перестала отвечать на запросы, произошел критический сбой или неожиданно отключилось питание."
Мониторинг по событию 1074
$Events = Get-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 1074}
$FlamDat = New-Object System.Management.Automation.PSObject
$FlamDat | Add-Member NoteProperty Time ($null)
$FlamDat | Add-Member NoteProperty User ($null)
$FlamDat | Add-Member NoteProperty Action ($null)
$Events | %{
$FlamDat.Time = $_.TimeGenerated
$FlamDat.User = $_.ReplacementStrings[6]
$FlamDat.Action = $_.ReplacementStrings[4]
}
$StrFlamDat=[string]$FlamDat.Time
$message = $env:computername + " " + $StrFlamDat + " " + $FlamDat.Action + " " + $FlamDat.User
Мониторинг по событию 6008
$Events = Get-EventLog -LogName System -After (((Get-Date).addDays(-2)).date) -Before (Get-Date) | where {$_.EventId -eq 6008}
$FlamDat = New-Object System.Management.Automation.PSObject
$FlamDat | Add-Member NoteProperty Time ($null)
$FlamDat | Add-Member NoteProperty User ($null)
$FlamDat | Add-Member NoteProperty Action ($null)
$Events | %{
$FlamDat.Time = $_.TimeGenerated
$FlamDat.User = $_.ReplacementStrings[6]
$FlamDat.Action = $_.Message
}
$StrFlamDat=[string]$FlamDat.Time
$message = $env:computername + " " + $StrFlamDat + " " + $FlamDat.Action + " " + $FlamDat.User
👉 @i_odmin