notes/linux_usefull.md

18 KiB
Raw Permalink Blame History

Linux useful


Текущая директория сервера в браузере по адресу http://server_ip:8000/

python -m SimpleHTTPServer  

вверх


Запустить графическое приложение через ssh соединение -Y

для текущей сессии

ssh -Y pi@server_ip  

для всех подключений

ForwardX11 yes в файле /etc/ssh/ssh_config

вверх


Отобразить все группы пользователя**

da2001@Metromint:~$ groups da2001  
da2001 : da2001 adm cdrom sudo dip plugdev kvm lpadmin sambashare wireshark libvirt  

вверх


SSH соединение через промежуточный хост**

ssh -t pi@192.168.89.2 ssh da2001@192.168.1.8  

сначала будет запрошен пароль от 192.168.89.2, затем от 192.168.1.8

вверх


SSH соединение без проверки подлинности ключа и его сохранения

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@192.168.2.1  

вверх


Изменить первичную группу пользователя в текщем сеансе

[lisa@server1 ~]$ groups  
lisa account sales  
[lisa@server1 ~]$ newgrp sales  
[lisa@server1 ~]$ groups  
sales lisa account  
[lisa@server1 ~]$ touch file1  
[lisa@server1 ~]$ ls -l  
total 0  
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1  

теперь все новые файлы будут принадлежать группе sales

вверх


Сохранить man в pdf

man -t <программа> | ps2pdf - <filename>.pdf  
man -t tar | ps2pdf - tar_man.pdf  

вверх


Прервать выполнение команды через 5 секунд

timeout 5s command  

вверх


Инфо об ОС

cat /etc/*release  
cat /etc/issue  
uname -a  
cat /etc/lsb-release  
da2001@Metromint:~$ neofetch   
             ...-:::::-...                 da2001@Metromint   
          .-MMMMMMMMMMMMMMM-.              ----------------   
      .-MMMM`..-:::::::-..`MMMM-.          OS: Linux Mint 20.1 x86_64   
    .:MMMM.:MMMMMMMMMMMMMMM:.MMMM:.        Host: VivoBook_ASUSLaptop X570DD_M570DD 1.0   
   -MMM-M---MMMMMMMMMMMMMMMMMMM.MMM-       Kernel: 5.8.0-59-generic   
 `:MMM:MM`  :MMMM:....::-...-MMMM:MMM:`    Uptime: 1 day, 1 hour, 41 mins   
 :MMM:MMM`  :MM:`  ``    ``  `:MMM:MMM:    Packages: 2750 (dpkg)   
.MMM.MMMM`  :MM.  -MM.  .MM-  `MMMM.MMM.   Shell: bash 5.0.17   
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM-MMM:   Resolution: 1920x1080   
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM:MMM:   DE: Cinnamon   
:MMM:MMMM`  :MM.  -MM-  .MM:  `MMMM-MMM:   WM: Mutter (Muffin)   
.MMM.MMMM`  :MM:--:MM:--:MM:  `MMMM.MMM.   WM Theme: Mint-Y-Dark (Mint-Y-Dark)   
 :MMM:MMM-  `-MMMMMMMMMMMM-`  -MMM-MMM:    Theme: Mint-Y-Darker [GTK2/3]   
  :MMM:MMM:`                `:MMM:MMM:     Icons: Papirus-Dark [GTK2/3]   
   .MMM.MMMM:--------------:MMMM.MMM.      Terminal: gnome-terminal   
     '-MMMM.-MMMMMMMMMMMMMMM-.MMMM-'       CPU: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx (8) @ 2.100GHz   
       '.-MMMM``--:::::--``MMMM-.'         GPU: NVIDIA GeForce GTX 1050 Mobile   
            '-MMMMMMMMMMMMM-'              GPU: AMD ATI 05:00.0 Picasso   
               ``-:::::-``                 Memory: 4924MiB / 5952MiB   
  

вверх


Выполнить команду несколько раз в цикле

da2001@Metromint:~$ for i in {1..5}; do echo $i; done  
1  
2  
3  
4  
5  

выполнение скрипта с параметрами в цикле


for i in {1..20}; do ./wlt_start.py -c config_m716.cfg; done  

вверх


Конвертировать изоражения heic в jpg

sudo apt-get install libheif-examples  

для конвертации одного изображения

heif-convert IMG_1234.HEIC IMG_1234.jpg  

для конвертации всех изображений в папке

mkdir jpg  
for file in *.heic; do heif-convert $file ./jpg/${file/%.heic/.jpg}; done  

вверх


Конвертировать jpg в pdf

необходим установленный ImageMagick

sudo apt install imagemagick  

для конвертации одного изображения

convert image.jpg out.pdf  

для конвертации нескольких изображений


convert image1.jpg image2.jpg image3.jpg out.pdf  

если в процессе конвертации будет получено сообщение об ошибке

convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.

в файле /etc/ImageMagick-7/policy.xml необходимо изменить директиву доступа
название папки ImageMagick-7 может отличаться в зависимости от установленной версии
между тегами <policymap> и </policymap>
добавить/отредактировать

<policy domain="coder" rights="read | write" pattern="PDF" />  

вверх


получить UUID диска для монтирования

Вариант 1

lsblk -n -o uuid /dev/sda1  

-n - не выводить заголовки
-o - отображаемое поле
таким образом, для раздела с ФС ext4, запись в fstab можно добавить таким образом

mkdir /mntdir  
  
UUID=`lsblk -n -o uuid /dev/sda1`  
sudo bash -c 'echo "UUID=$UUID /mntdir  ext4  defaults  0 0" >> /etc/fstab'

Вариант 2

[root@server1 ~]# blkid -o export /dev/sda2 | grep '^UUID'
UUID=d056212f-b1ea-4bc5-ba4e-99d036e5531e

таким образом, можно перенаправить вывод в /etc/fstab и руками дополнить параметры монтирования

blkid -o export /dev/sda2 | grep '^UUID' >> /etc/fstab

вверх


Сброс пароля root

CentOS/RedHat Linux

  1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать e, чтобы попасть в настройку загрузки
  2. В строке загрузки ядра, которая начинается со слова linux в конец добавить rd.break, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
  3. После появления приглашения консоли необходимо получить доступ к образу системы
mount -o remount,rw /sysroot  
  • Изменить корневой каталог
chroot /sysroot  
  • Теперь можно изменить пароль root
passwd  

будет предложено ввести новый пароль дважды.

Поскольку на ранней стадии загрузки SELinux еще не был активирован, тип контекста в /etc/shadow будет перепутан. Если сейчас перезагрузиться, никто не сможет войти в систему. Поэтому необходимо убедиться, что тип контекста установлен правильно. Для этого на этом этапе нужно загрузить политику SELinux с помощью команды

load_policy -i  
  • Теперь нужно вручную установить правильный тип контекста в /etc/shadow.
chcon -t shadow_t /etc/shadow  

вместо 6,7 пунктов можно просто в корне создать файл .autorelabel

touch /.autorelabel  

Всё, после перезагрузки, у root будет новый пароль.
для перезагрузки в данном режиме необходимо дважды ввести reboot -f или Ctrl+d

reboot -f  

Debian

  1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать e, чтобы попасть в настройку загрузки
  2. В строке загрузки ядра, которая начинается со слова linux в конец добавить rd.break, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
  3. После появления приглашения консоли необходимо получить доступ к образу системы
mount -o remount,rw /  

Теперь можно изменить пароль root

passwd  

будет предложено ввести новый пароль дважды.
Всё, после перезагрузки, у root будет новый пароль.
для перезагрузки в данном режиме необходимо дважды ввести reboot -f или Ctrl+d

reboot -f  

вверх


Проверить доступность диапазона хостов

for i in {10..13}; do ping -c 2 192.168.1.$i > /dev/null && echo 192.168.1.$i - доступен || echo 192.168.1.$i - НЕ доступен; done  
[da2001@co1 ~]$ for i in {10..13}; do ping -c 2 192.168.1.$i > /dev/null && echo 192.168.1.$i - доступен || echo 192.168.1.$i - НЕ доступен; done  
192.168.1.10 - доступен  
192.168.1.11 - доступен  
192.168.1.12 - доступен  
192.168.1.13 - НЕ доступен  

вверх


Конвертировать pdf в png

pdftoppm input.pdf outputname -png

в результате каждая страница в PDF будет сохранена в формате outputname-01.png, где 01 будет номером страницы
Конвертировать одну страницу или диапазон

pdftoppm input.pdf outputname -png -f {page} -singlefile

Измените {page} на номер страницы. Он проиндексирован как 1, поэтому -f 1 будет первой страницей.

Если вы хотите работать с диапазоном страниц, вы также можете указать номер для флага -l (последняя страница), поэтому при использовании -f 1 -l 30 будут указаны страницы от 1 до 30.

Указать разрешение преобразованного изображения
Разрешение по умолчанию для этой команды составляет 150 точек на дюйм.

Чтобы увеличить разрешение преобразованного PDF-файла, добавьте параметры -rx {разрешение} и -ry {разрешение}.

pdftoppm input.pdf outputname -png -rx 300 -ry 300

вверх


Узнать загрузку процессора определённым процессом

ps
по имени процесса

ps -C iperf -o %cpu=

по номеру процесса

ps -p 23635 -o %cpu=

или

ps -p $(pgrep iperf) -o %cpu=

top

top -b -n 2 -d 0.2 -p PID_ID | tail -1 | awk '{print $9}'

Нагрузить процессор для проверки

cat /dev/zero > /dev/null

вверх


Определить страну, город и др. детали по IP

curl -s "https://ifconfig.co/json?ip=$1" | jq -r '.country, .city, .hostname, .asn_org' 

или функция

getip() {
    curl -s "https://ifconfig.co/json?ip=$1" | jq -r '.country, .city, .hostname, .asn_org'
}

вверх

Отобразить файл без комментариев и путых строк

grep -vE '(^[[:space:]]*([#;!].*)?$)' file

вверх

Изменить консольный редактор по-умолчанию

which nano
/usr/bin/nano

export EDITOR=/usr/bin/nano

вверх

Перенос строк в nano

Для включения переноса строк в текщум редакторе необходимо нажать Esc + $.

обозначение Esc + $ означает нажатие и отпускание Esc, а затем нажатие $.

Тогда полная последовательность нажатий клавиш будет Esc, Shift+4

вверх

Генератор паролей

В качестве простого генератора паролей удобно использовать pwqgen. Он генерирует легкозапоминаемые пароли.

вверх

Импорт ssh ключа из Интернет

wget -qO- https://da2001.ru/ssh.pub >> ~/.ssh/authorized_keys

или

curl https://da2001.ru/ssh.pub >> ~/.ssh/authorized_keys

вверх