mod
parent
5eca6dd649
commit
ceadf1b19d
318
linux_usefull.md
318
linux_usefull.md
|
@ -1,84 +1,89 @@
|
||||||
## Linux useful
|
# Linux useful
|
||||||
|
|
||||||
###### top
|
- [Linux useful](#linux-useful)
|
||||||
[Текущая директория сервера в браузере по адресу `http://server_ip:8000/`](#tip001)
|
- [Текущая директория сервера в браузере по адресу `http://server_ip:8000/`](#текущая-директория-сервера-в-браузере-по-адресу-httpserver_ip8000)
|
||||||
[Запустить графическое приложение через ssh соединение `-Y`](#tip002)
|
- [Запустить графическое приложение через ssh соединение `-Y`](#запустить-графическое-приложение-через-ssh-соединение--y)
|
||||||
[Отобразить все группы пользователя](#tip003)
|
- [Отобразить все группы пользователя\*\*](#отобразить-все-группы-пользователя)
|
||||||
[SSH соединение через промежуточный хост](#tip004)
|
- [SSH соединение через промежуточный хост\*\*](#ssh-соединение-через-промежуточный-хост)
|
||||||
[SSH соединение без проверки подлинности ключа и его сохранения](#tip005)
|
- [SSH соединение без проверки подлинности ключа и его сохранения](#ssh-соединение-без-проверки-подлинности-ключа-и-его-сохранения)
|
||||||
[Изменить первичную группу пользователя в текщем сеансе](#tip006)
|
- [Изменить первичную группу пользователя в текщем сеансе](#изменить-первичную-группу-пользователя-в-текщем-сеансе)
|
||||||
[Сохранить man в pdf](#tip007)
|
- [Сохранить man в pdf](#сохранить-man-в-pdf)
|
||||||
[Прервать выполнение команды через 5 секунд](#tip008)
|
- [Прервать выполнение команды через 5 секунд](#прервать-выполнение-команды-через-5-секунд)
|
||||||
[Инфо об ОС](#tip009)
|
- [Инфо об ОС](#инфо-об-ос)
|
||||||
[Выполнить команду несколько раз в цикле](#tip010)
|
- [Выполнить команду несколько раз в цикле](#выполнить-команду-несколько-раз-в-цикле)
|
||||||
[Конвертировать изоражения heic в jpg](#tip011)
|
- [Конвертировать изоражения heic в jpg](#конвертировать-изоражения-heic-в-jpg)
|
||||||
[Конвертировать jpg в pdf](#tip012)
|
- [Конвертировать jpg в pdf](#конвертировать-jpg-в-pdf)
|
||||||
[получить UUID диска для монтирования](#tip013)
|
- [получить UUID диска для монтирования](#получить-uuid-диска-для-монтирования)
|
||||||
[Сброс пароля root](#tip014)
|
- [Сброс пароля root](#сброс-пароля-root)
|
||||||
[Проверить доступность диапазона хостов](#tip015)
|
- [Проверить доступность диапазона хостов](#проверить-доступность-диапазона-хостов)
|
||||||
[Конвертировать pdf в png](#tip016)
|
- [Конвертировать pdf в png](#конвертировать-pdf-в-png)
|
||||||
[Узнать загрузку процессора определённым процессом](#tip017)
|
- [Узнать загрузку процессора определённым процессом](#узнать-загрузку-процессора-определённым-процессом)
|
||||||
[Определить страну, город и др. детали по IP](#tip018)
|
- [Определить страну, город и др. детали по IP](#определить-страну-город-и-др-детали-по-ip)
|
||||||
|
- [Отобразить файл без комментариев и путых строк](#отобразить-файл-без-комментариев-и-путых-строк)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip001
|
## Текущая директория сервера в браузере по адресу `http://server_ip:8000/`
|
||||||
:large_blue_circle: **Текущая директория сервера в браузере по адресу `http://server_ip:8000/`**
|
|
||||||
```bash
|
```bash
|
||||||
python -m SimpleHTTPServer
|
python -m SimpleHTTPServer
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip002
|
## Запустить графическое приложение через ssh соединение `-Y`
|
||||||
:large_blue_circle: **Запустить графическое приложение через ssh соединение `-Y`**
|
|
||||||
*для текущей сессии*
|
*для текущей сессии*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ssh -Y pi@server_ip
|
ssh -Y pi@server_ip
|
||||||
```
|
```
|
||||||
|
|
||||||
*для всех подключений*
|
*для всех подключений*
|
||||||
|
|
||||||
`ForwardX11 yes` в файле `/etc/ssh/ssh_config`
|
`ForwardX11 yes` в файле `/etc/ssh/ssh_config`
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip003
|
## Отобразить все группы пользователя**
|
||||||
:large_blue_circle: **Отобразить все группы пользователя**
|
|
||||||
```bash
|
```bash
|
||||||
da2001@Metromint:~$ groups da2001
|
da2001@Metromint:~$ groups da2001
|
||||||
da2001 : da2001 adm cdrom sudo dip plugdev kvm lpadmin sambashare wireshark libvirt
|
da2001 : da2001 adm cdrom sudo dip plugdev kvm lpadmin sambashare wireshark libvirt
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip004
|
## SSH соединение через промежуточный хост**
|
||||||
:large_blue_circle: **SSH соединение через промежуточный хост**
|
|
||||||
```bash
|
```bash
|
||||||
ssh -t pi@192.168.89.2 ssh da2001@192.168.1.8
|
ssh -t pi@192.168.89.2 ssh da2001@192.168.1.8
|
||||||
```
|
```
|
||||||
|
|
||||||
*сначала будет запрошен пароль от 192.168.89.2, затем от 192.168.1.8*
|
*сначала будет запрошен пароль от 192.168.89.2, затем от 192.168.1.8*
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip005
|
## SSH соединение без проверки подлинности ключа и его сохранения
|
||||||
:large_blue_circle: **SSH соединение без проверки подлинности ключа и его сохранения**
|
|
||||||
```bash
|
```bash
|
||||||
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@192.168.2.1
|
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no admin@192.168.2.1
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip006
|
## Изменить первичную группу пользователя в текщем сеансе
|
||||||
:large_blue_circle: **Изменить первичную группу пользователя в текщем сеансе**
|
|
||||||
```bash
|
```bash
|
||||||
[lisa@server1 ~]$ groups
|
[lisa@server1 ~]$ groups
|
||||||
lisa account sales
|
lisa account sales
|
||||||
|
@ -90,14 +95,15 @@ sales lisa account
|
||||||
total 0
|
total 0
|
||||||
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
|
-rw-r--r--. 1 lisa sales 0 Feb 6 10:06 file1
|
||||||
```
|
```
|
||||||
|
|
||||||
*теперь все новые файлы будут принадлежать группе sales*
|
*теперь все новые файлы будут принадлежать группе sales*
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip007
|
## Сохранить man в pdf
|
||||||
:large_blue_circle: **Сохранить man в pdf**
|
|
||||||
```bash
|
```bash
|
||||||
man -t <программа> | ps2pdf - <filename>.pdf
|
man -t <программа> | ps2pdf - <filename>.pdf
|
||||||
```
|
```
|
||||||
|
@ -106,22 +112,22 @@ man -t <программа> | ps2pdf - <filename>.pdf
|
||||||
man -t tar | ps2pdf - tar_man.pdf
|
man -t tar | ps2pdf - tar_man.pdf
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip008
|
## Прервать выполнение команды через 5 секунд
|
||||||
:large_blue_circle: **Прервать выполнение команды через 5 секунд**
|
|
||||||
```bash
|
```bash
|
||||||
timeout 5s command
|
timeout 5s command
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip009
|
## Инфо об ОС
|
||||||
:large_blue_circle: **Инфо об ОС**
|
|
||||||
```bash
|
```bash
|
||||||
cat /etc/*release
|
cat /etc/*release
|
||||||
```
|
```
|
||||||
|
@ -162,12 +168,12 @@ da2001@Metromint:~$ neofetch
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip010
|
## Выполнить команду несколько раз в цикле
|
||||||
:large_blue_circle: **Выполнить команду несколько раз в цикле**
|
|
||||||
```bash
|
```bash
|
||||||
da2001@Metromint:~$ for i in {1..5}; do echo $i; done
|
da2001@Metromint:~$ for i in {1..5}; do echo $i; done
|
||||||
1
|
1
|
||||||
|
@ -175,75 +181,93 @@ da2001@Metromint:~$ for i in {1..5}; do echo $i; done
|
||||||
3
|
3
|
||||||
4
|
4
|
||||||
5
|
5
|
||||||
```
|
```
|
||||||
|
|
||||||
*выполнение скрипта с параметрами в цикле*
|
*выполнение скрипта с параметрами в цикле*
|
||||||
```bash
|
```bash
|
||||||
|
|
||||||
for i in {1..20}; do ./wlt_start.py -c config_m716.cfg; done
|
for i in {1..20}; do ./wlt_start.py -c config_m716.cfg; done
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip011
|
## Конвертировать изоражения heic в jpg
|
||||||
:large_blue_circle: **Конвертировать изоражения heic в jpg**
|
|
||||||
```bash
|
```bash
|
||||||
sudo apt-get install libheif-examples
|
sudo apt-get install libheif-examples
|
||||||
```
|
```
|
||||||
*для конвертации одного изображения*
|
|
||||||
```bash
|
*для конвертации одного изображения*
|
||||||
|
|
||||||
|
```bash
|
||||||
heif-convert IMG_1234.HEIC IMG_1234.jpg
|
heif-convert IMG_1234.HEIC IMG_1234.jpg
|
||||||
```
|
```
|
||||||
*для конвертации всех изображений в папке*
|
|
||||||
```bash
|
*для конвертации всех изображений в папке*
|
||||||
|
|
||||||
|
```bash
|
||||||
mkdir jpg
|
mkdir jpg
|
||||||
for file in *.heic; do heif-convert $file ./jpg/${file/%.heic/.jpg}; done
|
for file in *.heic; do heif-convert $file ./jpg/${file/%.heic/.jpg}; done
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip012
|
## Конвертировать jpg в pdf
|
||||||
:large_blue_circle: **Конвертировать jpg в pdf**
|
|
||||||
*необходим установленный ImageMagick*
|
*необходим установленный ImageMagick*
|
||||||
```bash
|
|
||||||
|
```bash
|
||||||
sudo apt install imagemagick
|
sudo apt install imagemagick
|
||||||
```
|
```
|
||||||
*для конвертации одного изображения*
|
|
||||||
```bash
|
*для конвертации одного изображения*
|
||||||
|
|
||||||
|
```bash
|
||||||
convert image.jpg out.pdf
|
convert image.jpg out.pdf
|
||||||
```
|
```
|
||||||
*для конвертации нескольких изображений*
|
|
||||||
```bash
|
*для конвертации нескольких изображений*
|
||||||
|
|
||||||
|
```bash
|
||||||
|
|
||||||
convert image1.jpg image2.jpg image3.jpg out.pdf
|
convert image1.jpg image2.jpg image3.jpg out.pdf
|
||||||
```
|
```
|
||||||
***если в процессе конвертации будет получено сообщение об ошибке***
|
|
||||||
```bash
|
***если в процессе конвертации будет получено сообщение об ошибке***
|
||||||
|
|
||||||
|
```bash
|
||||||
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
|
convert: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/408.
|
||||||
```
|
```
|
||||||
|
|
||||||
в файле `/etc/ImageMagick-7/policy.xml` необходимо изменить директиву доступа
|
в файле `/etc/ImageMagick-7/policy.xml` необходимо изменить директиву доступа
|
||||||
*название папки ImageMagick-7 может отличаться в зависимости от установленной версии*
|
*название папки ImageMagick-7 может отличаться в зависимости от установленной версии*
|
||||||
между тегами `<policymap>` и `</policymap>`
|
между тегами `<policymap>` и `</policymap>`
|
||||||
добавить/отредактировать
|
добавить/отредактировать
|
||||||
```bash
|
|
||||||
|
```bash
|
||||||
<policy domain="coder" rights="read | write" pattern="PDF" />
|
<policy domain="coder" rights="read | write" pattern="PDF" />
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip013
|
## получить UUID диска для монтирования
|
||||||
:large_blue_circle: **получить UUID диска для монтирования**
|
|
||||||
**Вариант 1**
|
**Вариант 1**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
lsblk -n -o uuid /dev/sda1
|
lsblk -n -o uuid /dev/sda1
|
||||||
```
|
```
|
||||||
|
|
||||||
-n - не выводить заголовки
|
-n - не выводить заголовки
|
||||||
-o - отображаемое поле
|
-o - отображаемое поле
|
||||||
*таким образом, для раздела с ФС ext4, запись в fstab можно добавить таким образом*
|
*таким образом, для раздела с ФС ext4, запись в fstab можно добавить таким образом*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mkdir /mntdir
|
mkdir /mntdir
|
||||||
|
|
||||||
|
@ -252,82 +276,103 @@ sudo bash -c 'echo "UUID=$UUID /mntdir ext4 defaults 0 0" >> /etc/fstab'
|
||||||
```
|
```
|
||||||
|
|
||||||
**Вариант 2**
|
**Вариант 2**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
[root@server1 ~]# blkid -o export /dev/sda2 | grep '^UUID'
|
[root@server1 ~]# blkid -o export /dev/sda2 | grep '^UUID'
|
||||||
UUID=d056212f-b1ea-4bc5-ba4e-99d036e5531e
|
UUID=d056212f-b1ea-4bc5-ba4e-99d036e5531e
|
||||||
```
|
```
|
||||||
|
|
||||||
*таким образом, можно перенаправить вывод в `/etc/fstab` и руками дополнить параметры монтирования*
|
*таким образом, можно перенаправить вывод в `/etc/fstab` и руками дополнить параметры монтирования*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
blkid -o export /dev/sda2 | grep '^UUID' >> /etc/fstab
|
blkid -o export /dev/sda2 | grep '^UUID' >> /etc/fstab
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
## Сброс пароля root
|
||||||
###### tip014
|
|
||||||
:large_blue_circle: **Сброс пароля root**
|
|
||||||
|
|
||||||
**CentOS/RedHat Linux**
|
**CentOS/RedHat Linux**
|
||||||
|
|
||||||
1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать `e`, чтобы попасть в настройку загрузки
|
1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать `e`, чтобы попасть в настройку загрузки
|
||||||
2. В строке загрузки ядра, которая начинается со слова `linux` в конец добавить `rd.break`, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
|
2. В строке загрузки ядра, которая начинается со слова `linux` в конец добавить `rd.break`, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
|
||||||
3. После появления приглашения консоли необходимо получить доступ к образу системы
|
3. После появления приглашения консоли необходимо получить доступ к образу системы
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mount -o remount,rw /sysroot
|
mount -o remount,rw /sysroot
|
||||||
```
|
```
|
||||||
4. Изменить корневой каталог
|
|
||||||
```bash
|
- Изменить корневой каталог
|
||||||
|
|
||||||
|
```bash
|
||||||
chroot /sysroot
|
chroot /sysroot
|
||||||
```
|
```
|
||||||
5. Теперь можно изменить пароль root
|
|
||||||
|
- Теперь можно изменить пароль root
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
passwd
|
passwd
|
||||||
```
|
```
|
||||||
будет предложено ввести новый пароль дважды.
|
|
||||||
6. Поскольку на ранней стадии загрузки SELinux еще не был активирован, тип контекста в `/etc/shadow` будет перепутан. Если сейчас перезагрузиться, никто не сможет войти в систему. Поэтому необходимо убедиться, что тип контекста установлен правильно. Для этого на этом этапе нужно загрузить политику SELinux с помощью команды
|
будет предложено ввести новый пароль дважды.
|
||||||
|
|
||||||
|
Поскольку на ранней стадии загрузки SELinux еще не был активирован, тип контекста в `/etc/shadow` будет перепутан. Если сейчас перезагрузиться, никто не сможет войти в систему. Поэтому необходимо убедиться, что тип контекста установлен правильно. Для этого на этом этапе нужно загрузить политику SELinux с помощью команды
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
load_policy -i
|
load_policy -i
|
||||||
```
|
```
|
||||||
7. Теперь нужно вручную установить правильный тип контекста в `/etc/shadow`.
|
|
||||||
|
- Теперь нужно вручную установить правильный тип контекста в `/etc/shadow`.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
chcon -t shadow_t /etc/shadow
|
chcon -t shadow_t /etc/shadow
|
||||||
```
|
```
|
||||||
**вместо 6,7 пунктов можно просто в корне создать файл `.autorelabel`**
|
|
||||||
|
**вместо 6,7 пунктов можно просто в корне создать файл `.autorelabel`**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
touch /.autorelabel
|
touch /.autorelabel
|
||||||
```
|
```
|
||||||
|
|
||||||
8. Всё, после перезагрузки, у root будет новый пароль.
|
Всё, после перезагрузки, у root будет новый пароль.
|
||||||
*для перезагрузки в данном режиме необходимо дважды ввести `reboot -f` или Ctrl+d*
|
*для перезагрузки в данном режиме необходимо дважды ввести `reboot -f` или Ctrl+d*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
reboot -f
|
reboot -f
|
||||||
```
|
```
|
||||||
|
|
||||||
**Debian**
|
**Debian**
|
||||||
|
|
||||||
1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать `e`, чтобы попасть в настройку загрузки
|
1. В самом начале загрузки системы, когда появляется меню GRUB, необходимо нажать `e`, чтобы попасть в настройку загрузки
|
||||||
2. В строке загрузки ядра, которая начинается со слова `linux` в конец добавить `rd.break`, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
|
2. В строке загрузки ядра, которая начинается со слова `linux` в конец добавить `rd.break`, затем нажать Ctrl+x, для применения сделанных настроек и загрузки системы (внесенные изменения действуют только в текущей сессии загрузки)
|
||||||
3. После появления приглашения консоли необходимо получить доступ к образу системы
|
3. После появления приглашения консоли необходимо получить доступ к образу системы
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
mount -o remount,rw /
|
mount -o remount,rw /
|
||||||
```
|
```
|
||||||
4. Теперь можно изменить пароль root
|
|
||||||
|
Теперь можно изменить пароль root
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
passwd
|
passwd
|
||||||
```
|
```
|
||||||
|
|
||||||
будет предложено ввести новый пароль дважды.
|
будет предложено ввести новый пароль дважды.
|
||||||
5. Всё, после перезагрузки, у root будет новый пароль.
|
Всё, после перезагрузки, у root будет новый пароль.
|
||||||
*для перезагрузки в данном режиме необходимо дважды ввести `reboot -f` или Ctrl+d*
|
*для перезагрузки в данном режиме необходимо дважды ввести `reboot -f` или Ctrl+d*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
reboot -f
|
reboot -f
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip015
|
## Проверить доступность диапазона хостов
|
||||||
:large_blue_circle: **Проверить доступность диапазона хостов**
|
|
||||||
```bash
|
```bash
|
||||||
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
|
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
|
||||||
```
|
```
|
||||||
|
@ -340,20 +385,23 @@ for i in {10..13}; do ping -c 2 192.168.1.$i > /dev/null && echo 192.168.1.$i -
|
||||||
192.168.1.13 - НЕ доступен
|
192.168.1.13 - НЕ доступен
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip016
|
## Конвертировать pdf в png
|
||||||
:large_blue_circle: **Конвертировать pdf в png**
|
|
||||||
```bash
|
```bash
|
||||||
pdftoppm input.pdf outputname -png
|
pdftoppm input.pdf outputname -png
|
||||||
```
|
```
|
||||||
|
|
||||||
*в результате каждая страница в PDF будет сохранена в формате outputname-01.png, где 01 будет номером страницы*
|
*в результате каждая страница в PDF будет сохранена в формате outputname-01.png, где 01 будет номером страницы*
|
||||||
**Конвертировать одну страницу или диапазон**
|
**Конвертировать одну страницу или диапазон**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pdftoppm input.pdf outputname -png -f {page} -singlefile
|
pdftoppm input.pdf outputname -png -f {page} -singlefile
|
||||||
```
|
```
|
||||||
|
|
||||||
*Измените `{page}` на номер страницы. Он проиндексирован как 1, поэтому `-f 1` будет первой страницей.*
|
*Измените `{page}` на номер страницы. Он проиндексирован как 1, поэтому `-f 1` будет первой страницей.*
|
||||||
|
|
||||||
*Если вы хотите работать с диапазоном страниц, вы также можете указать номер для флага `-l` (последняя страница), поэтому при использовании `-f 1 -l 30` будут указаны страницы от 1 до 30.*
|
*Если вы хотите работать с диапазоном страниц, вы также можете указать номер для флага `-l` (последняя страница), поэтому при использовании `-f 1 -l 30` будут указаны страницы от 1 до 30.*
|
||||||
|
@ -361,46 +409,54 @@ pdftoppm input.pdf outputname -png -f {page} -singlefile
|
||||||
**Указать разрешение преобразованного изображения**
|
**Указать разрешение преобразованного изображения**
|
||||||
*Разрешение по умолчанию для этой команды составляет 150 точек на дюйм.*
|
*Разрешение по умолчанию для этой команды составляет 150 точек на дюйм.*
|
||||||
|
|
||||||
*Чтобы увеличить разрешение преобразованного PDF-файла, добавьте параметры `-rx` {разрешение} и `-ry` {разрешение}.*
|
*Чтобы увеличить разрешение преобразованного PDF-файла, добавьте параметры `-rx` {разрешение} и `-ry` {разрешение}.*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pdftoppm input.pdf outputname -png -rx 300 -ry 300
|
pdftoppm input.pdf outputname -png -rx 300 -ry 300
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip017
|
## Узнать загрузку процессора определённым процессом
|
||||||
:large_blue_circle: **Узнать загрузку процессора определённым процессом**
|
|
||||||
**ps**
|
**ps**
|
||||||
*по имени процесса*
|
*по имени процесса*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ps -C iperf -o %cpu=
|
ps -C iperf -o %cpu=
|
||||||
```
|
```
|
||||||
|
|
||||||
*по номеру процесса*
|
*по номеру процесса*
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ps -p 23635 -o %cpu=
|
ps -p 23635 -o %cpu=
|
||||||
```
|
```
|
||||||
|
|
||||||
или
|
или
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
ps -p $(pgrep iperf) -o %cpu=
|
ps -p $(pgrep iperf) -o %cpu=
|
||||||
```
|
```
|
||||||
**top**
|
|
||||||
|
**top**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
top -b -n 2 -d 0.2 -p PID_ID | tail -1 | awk '{print $9}'
|
top -b -n 2 -d 0.2 -p PID_ID | tail -1 | awk '{print $9}'
|
||||||
```
|
```
|
||||||
**Нагрузить процессор для проверки**
|
|
||||||
|
**Нагрузить процессор для проверки**
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cat /dev/zero > /dev/null
|
cat /dev/zero > /dev/null
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
###### tip018
|
## Определить страну, город и др. детали по IP
|
||||||
|
|
||||||
:large_blue_circle: **Определить страну, город и др. детали по IP**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -s "https://ifconfig.co/json?ip=$1" | jq -r '.country, .city, .hostname, .asn_org'
|
curl -s "https://ifconfig.co/json?ip=$1" | jq -r '.country, .city, .hostname, .asn_org'
|
||||||
|
@ -414,4 +470,12 @@ getip() {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
[вверх](#top)
|
[вверх](#linux-useful)
|
||||||
|
|
||||||
|
## Отобразить файл без комментариев и путых строк
|
||||||
|
|
||||||
|
```bash
|
||||||
|
grep -vE '(^[[:space:]]*([#;!].*)?$)' file
|
||||||
|
```
|
||||||
|
|
||||||
|
[вверх](#linux-useful)
|
||||||
|
|
Loading…
Reference in New Issue