Linux – Telegram
Linux
7.56K subscribers
577 photos
35 videos
12 files
1.45K links
Новости и информация из мира Linux

По всем вопросам @evgenycarter
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Совет дня по Linux

Редактирование файлов прямо из less

Во время просмотра файла в пейджере less можно нажать клавишу v. Это откроет текущий файл в редакторе, который указан в переменной окружения EDITOR.

После сохранения изменений и выхода из редактора вы увидите обновлённый файл в less.
👍192🔥1
👋 Привет, админы!

Если не ошибаюсь, осенью 21 года в одном из наших дата-центров после планового обновления клиентских машин начали массово падать сеансы RDP - пользователи жаловались, что после ввода пароля сессия сразу же разрывается. Оказалось, во время апдейта поставился неполностью совместимый патч безопасности, который конфликтовал с включённым на компьютерах аудиторией учетных политик.

🔥 Чтобы быстро отследить все последние установленные обновления на целевой группе машин и при необходимости откатить проблемный патч, я использовал вот такой PowerShell-скрипт:


# Получаем список компьютеров из текстового файла
$computers = Get-Content -Path "C:\Scripts\computers.txt"

# Словарь для хранения списка установленных обновлений
$updateReport = @()

foreach ($computer in $computers) {
try {
# Получаем установленные обновления за последние 7 дней
$recentUpdates = Get-HotFix -ComputerName $computer |
Where-Object { $_.InstalledOn -ge (Get-Date).AddDays(-7) }

foreach ($upd in $recentUpdates) {
$updateReport += [PSCustomObject]@{
Computer = $computer
KBArticle = $upd.HotFixID
InstalledOn = $upd.InstalledOn
}
}
}
catch {
Write-Warning "Не удалось получить обновления с сервера $computer: $_"
}
}

# Сохраняем отчёт в CSV
$csvPath = "C:\Scripts\RecentUpdatesReport.csv"
$updateReport | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8

Write-Host "Отчет сохранен в $csvPath"


С помощью этого отчёта мы быстро определили, что именно на всех проблемных ПК установился KB5005565. Чтобы откатить его удалённо, использовал команду:


Invoke-Command -ComputerName (Get-Content "C:\Scripts\computers.txt") -ScriptBlock {
wusa /uninstall /kb:5005565 /quiet /norestart
}


После перезапуска машин RDP-сессии вернулись в норму. Плюс я добавил правило на WSUS, чтобы этот конкретный патч не раздавался снова до выяснения причины конфликта.

👉 @win_sysadmin
👍12👎4🔥42
Совет дня по Linux

Расширение скобок {} — одна из самых недооценённых, но мощных возможностей оболочек Linux. Оно позволяет удобно и быстро генерировать произвольные строки или числовые последовательности без ручного ввода.

Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок {}, разделённых двумя точками .. . Например:

$ echo {1..5}
1 2 3 4 5

Это выведет числа от 1 до 5.

Также работает с буквами:

$ echo {a..e}
a b c d e


Примеры практического применения расширения скобок:

Создание файлов с последовательными именами:

$ touch report-{1..12}.txt

Использование диапазонов в циклах:

$ for i in {1..10}; do ...; done

Создание нескольких каталогов за один вызов:

$ mkdir backup-{1..4}

Перемещение группы файлов:

$ mv data-{1..5}.txt /path/to/destination/


В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
👍244😁2
В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?

В bash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:

1. VAR="VALUE":
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.
- Например, если вы запустите новую команду или скрипт из текущей оболочки, VAR не будет доступна в этом дочернем процессе.

2. export VAR="VALUE":
- Команда export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.
- То есть, VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.

Для примера


# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR' # Ничего не выведет, так как VAR не экспортирована

# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR' # Выведет "Hello", так как VAR экспортирована


Таким образом, export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.
👍215👎2
Краткий совет по Linux

Хотите повторно использовать последний аргумент из предыдущей команды?

Используйте !$, это сэкономит время и нажатия клавиш.
👍24🔥164
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux

В терминале сочетание Alt + . – это небольшой, но очень мощный шорткат для повышения продуктивности. Оно вставляет последний аргумент предыдущей команды в текущую позицию курсора.

Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать Alt + . несколько раз подряд, можно перебирать аргументы из более ранних команд в истории, двигаясь назад.

Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
👍357
Шпаргалка по Linux
🔥16👍10👎21
This media is not supported in your browser
VIEW IN TELEGRAM
Когда пытаешься выйти из VIM 😂
😁32🤯3