1 2 |
sed '1,/keyword/ d' < file # удалить до sed '/keyword/,$ d' < file # удалить после |
Архив рубрики: Linux
Установка snap пакетов без интернета
На такой же ОС с интернетом выяснить какие пакеты требуются для установки и скачать их. Например в Kubuntu20.04 для установки thincast-client:
1 2 3 |
snap download core snap download snapd snap download thincast-client |
Далее скопировать на ПК без интернета и установить:
1 2 3 4 |
snap ack core22_858.assert snap ack snapd_20092.assert snap ack thincast-client_292.assert snap install core22_858.assert snapd_20092.assert thincast-client_292.assert |
docker без sudo для всех
Можно добавлять в группу docker пользователей, либо:
1 |
sudo chmod o+rw /var/run/docker.sock |
Перезагрузка при подключении по XRDP
Перезагрузка со стандартных кнопок при подключении через XRDP
Создать файл /etc/polkit-1/localauthority/50-local.d/50-xrdp.pkla
1 2 3 4 5 6 7 8 9 |
[Enable reboot feature] Identity=unix-user:* Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions ResultAny=yes [Enable shutdown feature] Identity=unix-user:* Action=org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions ResultAny=yes |
Ubuntu не показывает экран, но подключается по ssh
Такое было в proxmox на ВМ с Ubuntu 16.04, но может быть в любом типе сборки
В настройках grub нужно заменить строку /etc/default/grub
1 |
GRUB_CMDLINE_LINUX_DEFAULT="text" |
sudo update-grub — обновить настройки grub
Возможно, нужно сделать set-default multi-user.target
Установка .deb приложений в Linux без интернета
Для установки например, mc, нужно создать такой же хост (интернет подключить только после установки), в котором ввести команды:
1 2 |
apt-get update apt-get install mc --download-only -y |
Скачанные для установки файлы нужно запаковать в архив и перенести на хост без интернета:
1 |
tar -czvf mc.tar.gz $(grep -iRl "mc" /var/lib/apt/lists) /var/cache/apt/archives/*.deb /etc/apt/sources.list |
Распаковка на хосте:
1 |
tar -xvf mc.tar.gz |
Добавление нового диска в ubuntu
lsblk — отобразить подключенные диски (dev/sdb)
fdisk /dev/sdb — Вход в создание разделов
Если больше 2Тб, командной «g» задаём gpt (либо пропуск)
Командой «n» создаём новый раздел
Командой «w» сохраняем изменение
mkfs.ext4 /dev/sdb1 — форматируем в ext4
mkdir /hdd2 — Создаём каталог для монтирования диска
mount /dev/sdb1 /hdd2 — Монтируем раздел в каталог /hdd2
blkid | grep sdb1 — узнать uuid диска
Для автомонтирования узнать uuid диска и добавить запись в /etc/fstab:
echo "UUID=$(blkid | grep sdb1 | awk -F '"' '{print $2}') /hdd2 ext4 rw 0 1" | sudo tee -a /etc/fstab
Начальная настройка Iptables
Создаём скрипт настроек nano /etc/init.d/netrules:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#!/bin/bash ### BEGIN INIT INFO # Provides: netrules # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: adds iptables rules ### END INIT INFO #Очистка основных и nat цепочек iptables -F iptables -t nat -F #разрешить исходящие и входящие с установленных соединений iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -P OUTPUT ACCEPT #разрешить входящие на 22 порт, localhost и icmp кроме ping iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -p icmp -j ACCEPT #Запретить всё остальное iptables -P INPUT DROP iptables -P FORWARD DROP |
Добавляем права на запуск
chmod +x /etc/init.d/netrules
Создаём службу для запуска скрипта при загрузке
nano /etc/systemd/system/netrules.service:
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=iptables rules Requires=network.target After=network.target [Service] Type=oneshot # Запустить 1 раз RemainAfterExit=True ExecStart=/etc/init.d/netrules # Путь к скрипту [Install] WantedBy=multi-user.target |
Включаем службу:
systemctl start netrules
systemctl enable firenetruleswall
Добавить место на диске в Linux
Диск в Linux заполнен, добавлен ещё 1 физический диск, либо расширен текущий.
1. vgdisplay — посмотреть имя группы дисков (ubuntu-vg)
Если добавлен диск, посмотреть имя диска и инициализировать:
1 2 |
lsblk pvcreate /dev/sdb |
Либо Если добавлен объём диска, увеличить размер текущего диска:
1 |
pvresize /dev/sda |
2. Независимо от способа увелчения размера, расширить группу дисков:
1 |
vgextend ubuntu-vg /dev/sdb |
3. Увеличить раздел в группе дисков:
1 2 |
lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv #на весь объём lvextend -L+50G /dev/ubuntu-vg/ubuntu-lv #+50Gb |
4. Увеличить файловую систему:
1 2 3 4 |
df -T #Узнать тип ФС resize2fs /dev/ubuntu-vg/ubuntu-lv #Для EXT xfs_growfs /dev/ubuntu-vg/ubuntu-lv #Для XFS resize_reiserfs /dev/ubuntu-vg/ubuntu-lv #Для Reiserfs |
Скрипт, который прочитает 2 файла и выдаст результат с переменными
Дан файл с переменными vars.txt:
1 2 |
VAR1="Hello" VAR2="World" |
Дан файл с использованием переменных data.txt:
1 2 3 |
Variable1 = $VAR1 Variable2 = $VAR2 Variable3 = $VAR2 |
Создать скрипт, который использует 2 файла и подставит значения:
1 2 3 |
Variable1 = Hello Variable2 = World Variable3 = World |
Файл с решением (result.sc):
1 2 3 4 5 6 |
!/bin/bash source vars.txt while read x do eval echo $x done < data.txt |