мелкие полезные команды

Инструменты для управления и диагностики системы

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 14 окт 2016, 22:21

Команда mount - общеизвестная, в общем...
Но есть специфические случаи монтирования, и к ним соответствующие опции команды.
Вот здесь есть варианты для таких случаев - mount:

- Монтирование Windows FAT разделов с русскими именами файлов (с перекодировкой!):

Код: Выделить всё

# mount -t vfat -o codepage=866,iocharset=utf8 /dev/sda1 /mnt/sda1
- Монтирование NTFS дисков/разделов:

Код: Выделить всё

# mount -t ntfs -o noatime,users,rw,fmask=111,dmask=000,locale=ru_RU.UTF-8 /dev/sda1 /mnt/win_xp 
- Монтирование ISO образов CD/DVD дисков:

Код: Выделить всё

# mount -o loop -t iso9660 file.iso /mnt/iso
- Монтирование сетевых дисков NFS:

Код: Выделить всё

# mount 172.22.2.1:/mnt/iso/ /mnt/iso/
- Монтирование сетевых дисков SMB:

Код: Выделить всё

# mount -t smbfs -o username=user,password=pass //server/dir /mnt/localdir/
# mount -t cifs -o username=user,password=pass //server/dir /mnt/localdir/
- Монтирование FTP серверов:

Код: Выделить всё

# curlftpfs -v -o iocharset=UTF-8 ftp://user:password@ftp.domain.ru/ /mnt/ftp
- Создания синонима каталога в дереве файловой системы:

Код: Выделить всё

# mount --bind /mnt/cdrom/Files /var/ftp/cdrom
Детали и больше случаев см. по ссылке.

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 07 мар 2017, 19:43

Статья о некоторых полезных приёмах выполнения команд-утилит: Самые полезные приёмы работы в командной строке Linux
вчера в 14:24
Использование column для форматирования вывода в колонки:

Код: Выделить всё

[olej@dell ~]$ mount | grep /dev | column -t
devtmpfs   on  /dev                    type  devtmpfs   (rw,nosuid,size=4069152k,nr_inodes=1017288,mode=755)
tmpfs      on  /dev/shm                type  tmpfs      (rw,nosuid,nodev)
devpts     on  /dev/pts                type  devpts     (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
cgroup     on  /sys/fs/cgroup/devices  type  cgroup     (rw,nosuid,nodev,noexec,relatime,devices)
/dev/sda5  on  /                       type  btrfs      (rw,relatime,space_cache,subvolid=257,subvol=/root)
mqueue     on  /dev/mqueue             type  mqueue     (rw,relatime)
hugetlbfs  on  /dev/hugepages          type  hugetlbfs  (rw,relatime)
/dev/sda3  on  /boot                   type  ext4       (rw,relatime,data=ordered)

Код: Выделить всё

[olej@dell ~]$ cat /etc/passwd | grep ^s | column -t -s:
sync               x  5     0     sync                          /sbin                    /bin/sync
shutdown           x  6     0     shutdown                      /sbin                    /sbin/shutdown
systemd-timesync   x  999   998   systemd Time Synchronization  /                        /sbin/nologin
systemd-network    x  998   997   systemd Network Management    /                        /sbin/nologin
systemd-resolve    x  997   996   systemd Resolver              /                        /sbin/nologin
systemd-bus-proxy  x  996   995   systemd Bus Proxy             /                        /sbin/nologin
setroubleshoot     x  989   983                                 /var/lib/setroubleshoot  /sbin/nologin
sshd               x  74    74    Privilege-separated SSH       /var/empty/sshd          /sbin/nologin
saslauth           x  985   76    Saslauthd user                /run/saslauthd           /sbin/nologin
shellinabox        x  983   973   Shellinabox                   /var/lib/shellinabox     /sbin/nologin
stupid             x  1001  1001                                /home/stupid             /bin/bash

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 07 мар 2017, 19:50

Olej писал(а):Статья о некоторых полезных приёмах выполнения команд-утилит: Самые полезные приёмы работы в командной строке Linux
Для того, чтобы вернуться к предыдущей директории, просто наберите cd –

Код: Выделить всё

[olej@dell 2017_WORK]$ cd -
/home/olej
Но иногда вы можете получить так:

Код: Выделить всё

[olej@dell ~]$ cd -
bash: cd: переменная OLDPWD не установлена
А вот в предыдущем случа:

Код: Выделить всё

[olej@dell ~]$ echo $OLDPWD
/home/olej/2017_WORK

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 07 мар 2017, 19:58

Olej писал(а):Статья о некоторых полезных приёмах выполнения команд-утилит: Самые полезные приёмы работы в командной строке Linux
А вот – пример вышеописанной команды для замены строчных букв в файле с текстом на прописные:

Код: Выделить всё

$ cat myfile | tr a-z A-Z > output.txt

Код: Выделить всё

[olej@dell ~]$ echo 'Test String' | tr a-z A-Z 
TEST STRING
Но не увлекайтесь!
Утилита tr не так уж и умна:

Код: Выделить всё

[olej@dell ~]$ echo 'Тестовая Строка'
Тестовая Строка

[olej@dell ~]$ echo 'Тестовая Строка' | tr а-я А-Я 
���������������� ������������

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 07 мар 2017, 20:08

Olej писал(а):Статья о некоторых полезных приёмах выполнения команд-утилит: Самые полезные приёмы работы в командной строке Linux
Автоматическое формирование списка аргументов для команд: xargs
Утилита xargs, пожалуй, достойна звания одной из самых полезных возможностей командной строки Linux. Её можно использовать для передачи вывода некоей команды в качестве аргумента для другой. Например, вот как можно выполнить поиск .png-файлов и сжать их, или сделать с ними что-нибудь ещё:

Код: Выделить всё

find. -name *.png -type f -print | xargs tar -cvzf images.tar.gz
Или, возможно, у вас имеется файл со списком URL, и вы хотите загрузить ресурсы по этим адресам, или ещё как-то их обработать:

Код: Выделить всё

cat urls.txt | xargs wget
Тут надо учитывать, что вывод первой команды передаётся в качестве аргумента в конце команды xargs. Если при конструировании второй команды надо явно указать место, куда должны попасть выходные данные первой, достаточно воспользоваться парой фигурных скобок, {} и параметром –i для замены аргумента в нужном месте:

Код: Выделить всё

ls /etc/*.conf | xargs -i cp {} /home/likegeeks/Desktop/out

Аватара пользователя
Lepton
Писатель
Сообщения: 73
Зарегистрирован: 18 окт 2011, 20:26
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Lepton » 08 мар 2017, 12:36

Olej писал(а): Но не увлекайтесь!
Утилита tr не так уж и умна:

Код: Выделить всё

[olej@dell ~]$ echo 'Тестовая Строка'
Тестовая Строка

[olej@dell ~]$ echo 'Тестовая Строка' | tr а-я А-Я 
���������������� ������������
однако можно вписать используемые символы национальных локалей напрямую

Код: Выделить всё

~$ echo 'Тестовая Строка' | tr абвгдежзийклмнопрстуфхцчшщьыъэюя АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
ТЕСТОВАЯ СТРОКА

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 05 авг 2017, 11:42

Посмотреть идентификацию пользователя в системе - id.
Нужна сильно, например, при добавлении пользователя в группу командой usermod ... вот так (и -a и -G - обязательны!)
(понадобилось намедни ... как добавить - помню, как проверить, посмотреть - не вспомню :-? )

Код: Выделить всё

olej@nvidia /usr/lib $ sudo usermod -aG vboxusers olej
[sudo] пароль для olej: 

Код: Выделить всё

olej@nvidia /usr/lib $ id olej
uid=1000(olej) gid=1000(olej) группы=1000(olej),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),130(sambashare),132(vboxusers)
Но изменения (дополнения) группы пользователю в DE/GUI будет только после нового логина! (перезагружать систему не обязательно).

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 16 дек 2018, 12:16

Понадобилось в динамике смотреть нагрузку от длительной компиляции ... на слабом ARM процессоре, по SSH через VPN (за пару-тройку тысяч километров ;-) ):

Код: Выделить всё

linaro@linaro-alip:~$ time sudo pip3 install dlib
Collecting dlib
  Using cached https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz
Building wheels for collected packages: dlib
  Running setup.py bdist_wheel for dlib ... -
...
Этого хватит на пару часов :lol:
Но нужно контролировать + имитация активности ... так чтобы VPN соединение не закрылось ;-)

Код: Выделить всё

[olej@dell ~]$ watch -n30 -d uptime
...
Every 30.0s: uptime                                   linaro-alip: Sun Dec 16 09:20:49 2018

 09:20:53 up 2 days, 16:43,  7 users,  load average: 8.42, 7.14, 8.14

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 13 мар 2019, 13:44

Число процессоров (ядер) в системе - nproc:

Код: Выделить всё

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/OrgDoc/time.report.01$ nproc
2
Для этого есть ещё несколько способов:

Код: Выделить всё

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/OrgDoc/time.report.01$ lscpu
Архитектура:         x86_64
CPU op-mode(s):      32-bit, 64-bit
Порядок байт:        Little Endian
Address sizes:       39 bits physical, 48 bits virtual
CPU(s):              2
On-line CPU(s) list: 0,1
Thread(s) per core:  1
Ядер на сокет:       2
Сокетов:             1
NUMA node(s):        1
ID прроизводителя:   GenuineIntel
Семейство ЦПУ:       6
Модель:              60
Имя модели:          Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
Степпинг:            3
CPU MHz:             2360.364
CPU max MHz:         2800,0000
CPU min MHz:         800,0000
BogoMIPS:            5586.95
Виртуализация:       VT-x
L1d cache:           32K
L1i cache:           32K
L2 cache:            256K
L3 cache:            2048K
NUMA node0 CPU(s):   0,1
Флаги:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt xsave rdrand lahf_lm abm cpuid_fault epb invpcid_single pti tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust erms invpcid xsaveopt dtherm arat pln pts

Код: Выделить всё

olej@ACER:~/2019_WORK/own.WORK/AplitSoft/OrgDoc/time.report.01$ cat /proc/cpuinfo | grep 'model name'
model name	: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz
model name	: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz

Аватара пользователя
Olej
Писатель
Сообщения: 17564
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: мелкие полезные команды

Непрочитанное сообщение Olej » 26 июн 2021, 19:34

Число процессоров - чтобы не мудрить с grep для lscpu и cat /proc/cpuinfo :

Код: Выделить всё

olej@ACER:~$ nproc
2

Ответить

Вернуться в «Системные утилиты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость