Команды терминала

Brian W. Kernighan, Rob Pike

Brian_Kernighan_Dennis_Ritchie-«Язык программирования Си»

UNIX_Системное программирование

The UNIX TimeSharing System

Команды терминала

commandlinefu.com         ----->>> !!!!!!!!!

https://www.lifewire.com/linux-terminal-commands-rock-your-world    <<<-------

Обзор основных команд системы UNIX

Another Ten One-Liners from CommandLineFu Explained

Перечень наиболее часто используемых команд:

man -  https://linux.die.net/man/       

           http://citforum.ru/manpages на Русском

           https://wiki.archlinux.org/index.php/Man_page

sudo apt-get install mandoc

Установите пакет mandoc. Чтобы конвертировать страницу, для примера, free(1), наберите:

$ gunzip -c /usr/share/man/man1/free.1.gz | mandoc -Thtml -Ostyle=style.css 1> free.html


Используя ps2pdf:

$ man -t cat | ps2pdf - cat.pdf

История команд:

 Удаление и вставка фрагментов команд:

Команды перемещения по командной строке:

 Инкрементальный(пошаговый) поиск:

После нажатия комбинации клавиш CTRL-r обычное приглашение к вводу команд исчезает и появляется индикатор режима инкрементального поиска: 

(reverse-i-search)`': _ 

В этом режиме можно вводить символ за символом любую часть команды из истории, и в процессе ввода постоянно видеть наиболее позднюю из совпадающих команд. Например, если происходит поиск команды, содержащей подстроку «web», то после нажатия CTRL-r вводим сначала букву «w»: 

 (reverse-i-search) 'w': cd tmp/work 

увидев, что поиск не дал нужного результата, и уточняем поиск, вводя следующую букву, «e»:

(reverse-i-search) 'we': ./update-web.sh 

Теперь видно, что найденная команда уже содержит фрагмент «web» и для ее нахождения было достаточно ввести лишь два символа.

Если же найденная команда оказалась не той, что искали, можно использовать CTRL-r для перехода на более ранние команды, также содержащие строку поиска. Продолжая предыдущий пример, повторно нажимаем CTRL-r. При этом будет найдена другая, более ранняя команда, например: 

(reverse-i-search) 'we': cd work/web/homepage/ 

Теперь можно выйти из режима поиска несколькими способами. Чтобы перейти на найденную команду в истории, достаточно нажать Esc или комбинацию клавиш CTRL-j. Чтобы отменить поиск и вернуться в исходное состояние, можно нажать CTRL-g. И наконец, нажатие Enter приведет к немедленному исполнению найденной команды.

Автодополнение:


Дополнение с помощью Tab может работать по-разному в зависимости  от использования  контекста. Возможности автоматического дополнения в командной строке:

Использование клавиши TAB, конечно облегчит жизнь, особенно если использовать с пакетом:  bash-completion

https://habr.com/ru/post/71525/

https://spin.atomicobject.com/bash-programmable-completion/

https://tuzz.tech/blog/how-bash-completion-works   <-------------- 

Дополнение с помощью META-Tab всегда ищет дополнения в истории команд, выбирая фразы, начинающиеся с символов, стоящих перед текущей позицией курсора. Если однозначного варианта не найдено, независимо от типа дополнения дописывается только часть, совпадающая во всех вариантах, и, в зависимости от конфигурации оболочки, может быть выведен список подходящих дополнений. Если список вариантов не выводится автоматически, его обычно можно вывести повторным нажатием Tab или META-Tab.

                                                             Метасимволы оболочки

    Строки, заключенные в кавычки, могут содержать разделители строк:

$ echo 'heloo

> vcvcvc

> xbxbb

> xnxnxn'

heloo

vcvcvc

xbxbb

xnxnxn

Структура/семантика команд UNIX

Общий способ использования команд выглядит следующим образом:

<имя команды> <ключи/модификаторы..> <аргументы/параметры...>

Формат ключей

Ключи без параметров:

-a

-a -l

(во многих слчаях бъединяются в одну группу) или -al или -la

Ключи с параметрами:

-i fxp0

-ni fxp0

-nifxp0

Длинные ключи:

--prefix=/usr/local

--exclude /usr/ports

Примеры использования команды ls:

ls -a

ls -al

ls -l /bin

Исключения

Нередко команды имеют формат указания ключей и аргументов, отличающийся от стандартного:

find /usr/share -name '*html'

ps ax

tar xf archive.tgz


Короткий параметр - длинный параметр

один дефис -- короткий параметр (он же ключ), 

два дефиса -- полный параметр (обычно пишется когда хотят указать параметр словом (целиком)

cp -i                           интерактивный режим копирования

cp --interactive         то же самое, но легче запомнить поскольку по "человечески"

$ ls --help

Usage: ls [OPTION]... [FILE]...

List information about the FILEs (the current directory by default).

Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

Обязательные аргументы для длинных опций обязательны и для коротких опций.

  -a,  --all                       не скрывать файлы начинающиеся с . (то есть скрытые)

  -A, --almost-all            не выдавать подразумеваемые . и ..

        --author                 с помощью -l выведите автора каждого файла

  -b,  --escape                печатать экранирование в C-style для неграфических символов

Команды и утилиты

В общем случае, команда — это указание интерфейсу командной строки, командному интерпретатору. Интерпретатор команд может входить в состав операционной системы иди распространяться отдельно.

Утилита — вспомогательная программа в составе общего программного обеспечения для выполнения специализированных типовых задач, связанных с работой оборудования и операционной системы. Утилиты могут входить в состав операционных систем, идти в комплекте со специализированным оборудованием или распространяться отдельно.

Разницу между командами и утилитами однозначно можно определить при помощи команды type и отделить на встроенные (builtin) команды конкретного интерпретатора и утилиты для которых будет выведен путь до исполняемого файла соответствующе программы:

$ type route

route is /sbin/route

$ type cd

cd is a shell builtin

$ type ip            $ type -a ip            $ which -a ip

ip is /sbin/ip        ip is /sbin/ip            /sbin/ip

                      ip is /bin/ip             /bin/ip

Соответственно разница в семантике команд и утилит может быть существенной, и собственно команд, то есть команд конкретного интерпретатора в сравнении с утилитами (командами) не очень много.  Однако жесткого разграничения терминов "команда" и "утилита" нет, поскольку утилита "хорошая утилита" может включать в себя команды, самый простой пример утилита route:

В целом так:          route [-n] команда [-net | -host] куда через_что [netmask]

Подробнее так:     route [опции] команда [destination] [netmask] [gw [x.x.x.x]][metric] [interface]

...и в поле команда:  обычно либо add (добавить маршрут) либо del (удалить маршрут) 

так же:  print, change, replace — заменить маршрут другим..

mount - монтирование-подключение файловых систем и устройств к единой файловой системе Пример:

1.выяснить как называется : # lsblk

NAME      MAJ:MIN    RM    SIZE          RO    TYPE    MOUNTPOINT

sda       8:0        0     14,2G         0     disk

+-sda1    8:1        0      5,6G         0     part       /

+-sda2    8:2        0     972,7M        0     part       [SWAP]

L-sda3    8:3        0      7,7G         0     part      /home

sr0       11:0       1      61,7M        0      rom

2.монтировать:

# mount /dev/sr0 /mnt

mount: /dev/sr0 is write-protected, mounting read-only

3.# mount --help

*** Точка монтирования -  каталог в уже существующем и известном системе дереве каталогов, который будет теперь служить корневым каталогом для подключаемой файловой системы (после монтирования если каталог не был пустым его содержимое станет не доступным до размонтирования, поэтому предпочтительно сначала создать каталог-точку монтирования)

PS: Что касается съемных носителей типа "Flash-disk" все это давно не актуально поскольку существует udev, но принцип монтирования естественно не изменился.

*** udev — управление устройствами, преемник devfs, hotplug и HAL, основная задача — обслуживание файлов устройств  в каталоге /dev и обработка всех действий, выполняемых в пространстве пользователя при добавлении/отключении внешних устройств, включая загрузку firmware

 Solaris:                             https://docs.oracle.com/cd/E19253-01

                                          ZFS - introduction      # zfs list

 Размонтировать :           https://docs.oracle.com/cd/E19253-01

 Убить:                              https://docs.oracle.com/cd/E19253-01       # zfs destroy tank/home/tabriz

  Cheat sheet:                   http://dreamcatcher.ru

BSD

Выяснить как звать:  # ls  /dev/da* (#dmesg | more )

Смонтировать:            # mount_msdosfs /dev/da0s1 /mnt

Размонтировать:        # umount /mnt

Поскольку устройство USB видится как SCSI, команда camcontrol может быть использована для вывода списка устройств хранения USB

#camcontrol devlist

<ST9100824A 3.06>                                        at scbus0 target 0 lun 0 (pass0,ada0)

<TSSTcorp CD/DVDW TS-L632D ac00>   at scbus0 target 1 lun 0 (cd0,pass1)

<JetFlash Transcend 2GB 8.07>                   at scbus2 target 0 lun 0 (da0,pass2)

точка

.    - обозначает текущий каталог

..   - обозначают родительский каталог  

Всякий раз, когда создается новый каталог, в нем автоматически создаются две записи:   . (точка) и .. (точка-точка). Записи «точка» соответствует текущий каталог, а записи «точка-точка» — родительский. В корневом каталоге запись «точка-точка» представляет тот же каталог, что и «точка». например:    

cd ..  подняться в родительский каталог, 

cd../..  подняться на два уровняаналогично: ls .. и  ls ..  ../..


Точка используется также для того ,что бы перечитать файл, в этом случае это синоним команды "source" например:

Вы внесли изменения в ".profile", то для переноса этих изменений в среду необходимо выполнить этот файл. Для этого можно выйти и заново войти в систему, а можно воспользоваться  командой source "." без выхода из системы, т.е., смысл тот же.

$ . .profile

Команда представленная в виде одной точки (синоним source), считывает и выполняет строки сценариев. При условии, что файл сценария в  первой  строке содержит директиву, которая указывает на абсолютное местоположение оболочки: #!/bin/bash

Например:

[@solaris]~ # . count_lines /etc/group

Number of lines in file  /etc/group

      23 /etc/group

Хотя:

[@solaris]~ # echo ${PATH:?}

/usr/sbin:/usr/bin:/hd/bin:/usr/ccs/bin:/opt/sfw/bin:/opt/csw/bin

...то есть домашней директории нет (как и прав на исполнение).

[@solaris]~ # count_lines /etc/group

bash: count_lines: command not found

[@solaris]~ #

или так при том, что предоставлены права: chmod +x:

[@solaris]~ # ./count_lines_1 /etc/group

I can read the file  /etc/group

http://linux.bolden.ru/komanda-tochka-linux/

https://www.linuxcenter.ru/lib/books/kostromin/     <----source

source -  В общем случае при запуске скрипта запускается новый процесс. Для того, чтобы выполнить скрипт внутри текущей сессии bash, необходимо использовать команду source, синонимом которой является просто точка ".". Скрипт оболочки служит просто аргументом этой команды. Ее формат:

    source filename [arguments] или  . filename [arguments]

Эта команда читает и выполняет команды из файла с именем filename в текущем окружении и возвращает статус, определяемый последней командой из файла filename. Если filename не содержит слэша, то пути, перечисленные в переменной PATH, используются для поиска файла с именем filename. Этот файл не обязан быть исполняемым. Если в каталогах, перечисленных в PATH, нужный файл не найден, его поиск производится в текущем каталоге.

pwd (print working directory) – отобразить путь текущего каталога

cd – перейти в указанный каталог, Если вы случайно сменили директорию, можно вернуться в последнюю набрав: cd -

LS: вывод информации об одном или нескольких файлах.

ls [ключи] [Список_файлов]

Утилита ls выводит информацию об одном или нескольких файлах. Если не используется ключ, изменяющий порядок вывода, информационный список выводится в алфавитном порядке имен файлов.

ls – отобразить список файлов каталога, 

ключ -l (long) покажет дополнительные сведения о файлах, 

-i иноды файов, 

-l символьные ссылки, 

-s размер файла в блоках, 

-t сортировать по времени изменения, 

-x сортировать по расширению в алфавитном порядке, 

-F добавлять индикатор при просмотре файлов ('/' - директория, '@' - ссылка),   

-m вывести список файлов через запятую, 

-lh показывать размер файлов по человечески, 

-1 / показывать по файлу на строку                

-C список в несколько колонок. Вверху выводится "total" или "итого", то есть кол-во блоков дискового пространства (512 или 1024 B), количество ссылок будет показано после прав доступа, после пользователя покажет количество символов содержащихся в файле, 

-d каталог лучше применять в сочетании ls -ld

Параметры могут быть сгруппированы:

ls -lt выдает те же данные,что и ls -l, но отсортированные по времени, начиная с самого нового. Параметр u предоставляет информацию о том, когда файлы использовались: 

ls -lut выдает расширенный список, отсортированный в порядке времени использования, начиная с последнего.

Параметр r изменяет порядок вывода на обратный, так что ls -lrt выводит файлы в порядке, обратном времени их последнего изменения. Можно также после команды указать имена файлов, тогда ls выведет информацию только по указанным файлам.

Ls(1).man

mv (move) — перемещение или переименование файлов          

mv [опции]  источник  назначение

(точнее: переименование файла без создания его копии). Если в  аргументах заданы имена двух файлов, то имя первого файла будет изменено на имя второго.

mv  [file1  file_1] - переименовывает файл  file1 на file_1

Если последний аргумент является именем существующего каталога, то mv перемещает все заданные файлы в этот каталог.

mv  [file  ./dir/]  - перемещает 'file' в 'dir/file' относительно текущего каталога

Если последний аргумент не является каталогом и задано более чем два файла, то будет выдано сообщение об ошибке.

mv (или cp) [file1 file2 ... dir] - перемещение/копирование нескольких файлов

Ключи:

–f  - не запрашивать подтверждения операций.

–i  - выводить запрос на подтверждение операции, когда существует файл, в который происходит переименование или перемещение.

––  - завершает список ключей. Применяется для использования с файлами, имена которых начинаются на –.   mv(1).man

 $ ln [опции] [файл_источник] [файл_ссылки]

опции :

    -d - разрешить создавать жесткие ссылки для директорий суперпользователю;

    -f - удалять существующие ссылки;

    -i - спрашивать нужно ли удалять существующие ссылки;

    -P - создать жесткую ссылку;

    -r - создать символическую ссылку с относительным путем к файлу;

        Путь к файлу от корневого каталога — абсолютный путь

        Путь к файлу от текущего каталога — относительный путь

    -s - создать символическую ссылку.

ln -s source softlink       (https://losst.ru/simvolicheskie - ссылки)

source <------ путь

softlink <------ имя ссылки

 ls -li   проверить

fstab       # cat /etc/fstab

http://help.ubuntu.ru/wiki/fstab

https://tokmakov.msk.ru/blog/item/749

https://wiki.archlinux.org/index.php/Fstab   <-----ARCH

https://wiki.debian.org/ru/fstab                    <-----Debian

https://www.freebsd.org/doc/ru                   <-----BSD

https://www.digitalocean.com                     <------ Добавление файла подкачки

fstab, текстовой файл в директории /etc, состоит из набора определений файловых систем. Каждая файловая система занимает свою строку. в случае systend эти определения динамически преобразуются в "юниты монтирования systemd" во время загрузки системы. При этом производится автоматическое разрешение зависимостей: службы, которые зависят от конкретной файловой системы, запускаются только после ее монтирования, а удаленные файловые системы вроде NFS или Samba, в свою очередь, монтируются только после того,будет установлено сетевое подключение. Таким образом, и локальные, и удаленные файловые системы, указанные в /etc/fstab, будут правильно смонтированы без дополнительной настройки. По умолчанию, при монтировании также производится запуск проверки файловой системы программой fsck (в случае ArchLinux).

Определение файловой системы

Конкретное место расположения файловой системы может быть определено различными способами. В файле /etc/fstab можно указать имя файла устройства, его метку или UUID (в том числе GPT-метку и GPT-UUID для дисков GPT). Определение по UUID является наиболее предпочтительным способом. lsblk  blkid :

По именам устройств

Запустите lsblk -f, чтобы отобразить список разделов. Укажите имена устройств с префиксом /dev/.

По меткам

Запустите lsblk -f, чтобы отобразить список разделов. Укажите метки из столбца LABEL с префиксом LABEL=:

По UUID

Запустите lsblk -f, чтобы отобразить список разделов. Укажите идентификаторы из столбца UUID с префиксом UUID=:

По меткам GPT

Запустите blkid чтобы отобразить список разделов. Укажите значения PARTLABEL без кавычек:

По UUID GPT

Запустите blkid чтобы отобразить список разделов. Укажите значения PARTUUID без кавычек:

lsblk и blkid безусловно "богатые" утилиты, однако начинать заниматься статическим монтированием надо с fdisk которая позволяет модифицировать таблицу разделов жестких дисков формата MSDOS. Для модификации таблиц разделов жестких дисков формата GPT используется утилита gdisk.

Синтаксис:

$ fdisk опции устройство

Опции fdisk:

-B, --protect-boot - не стирать первые 512 байт диска чтобы не повредить загрузочную запись;

-L, --color - настройка цветного вывода, возможные значения auto, never или always;

-l, --list - вывести все разделы на выбранных устройствах или если устройств не задано, то на всех устройствах;

-o, --output - указывает какие поля данных надо показывать в выводе программы, доступные поля рассмотрим ниже;

-u, --units - настраивает формат вывода размера разделов, доступные значения: cylinders, sectors, по умолчанию используется sectors;

-w, --wipe - режим стирания файловой системы или RAID с диска, возможные значения auto, never или always по умолчанию используется auto;

-W, --wipe-partition - режим стирания файловой системы или RAID из только что созданного раздела. Возможные значения аналогичны предыдущей опции;

-h, --help - показать справку по утилите;

-v, --version - опция выводит версию утилиты.

Команды fdisk:

a - включение или выключения флага boot для раздела;

d - удалить раздел;

F - показать свободное место;

l - вывести список известных типов разделов;

n - создать новый раздел;

p - вывести таблицу разделов;

t - изменение типа раздела;

i - вывести информацию о разделе;

I и O - записать или загрузить разметку в файл сценария sfdisk;

w - записать новую таблицу разделов на диск;

q - выйти без сохранения;

g - создать пустую таблицу разделов GPT;

o - создать пустую таблицу разделов MBR

Первым делом посмотрим что у нас имеется:

$ sudo fdisk -l 

Disk /dev/sda: 698.64 GiB, 750156374016 bytes, 1465149168 sectors

Disk model: WDC WD7500BPVT-7

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disklabel type: dos

Disk identifier: 0x00a30100


Device     Boot      Start        End    Sectors   Size Id Type

/dev/sda1               63      80324      80262  39.2M de Dell Utility

/dev/sda2  *         81920   25767935   25686016  12.2G  7 HPFS/NTFS/exFAT

/dev/sda3         25767952  413336384  387568433 184.8G  7 HPFS/NTFS/exFAT

/dev/sda4        413337598 1465147391 1051809794 501.5G  f W95 Ext'd (LBA)

/dev/sda5       1115516928 1380087807  264570880 126.2G 83 Linux

/dev/sda6       1380089856 1460828159   80738304  38.5G 83 Linux

/dev/sda7       1460830208 1465147391    4317184   2.1G 82 Linux swap / Solaris

/dev/sda8        803962880 1115504639  311541760 148.6G 83 Linux

/dev/sda9        413337600  803960831  390623232 186.3G 83 Linux

Чтобы разметить диск надо указать путь до диска например разметим флешку, вставив и запустив еще раз $ sudo fdisk -l добавится следующая запись:

Disk /dev/sdb: 1.88 GiB, 2019557376 bytes, 3944448 sectors

Disk model: Transcend 2GB   

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0xd1c15b8c


Device     Boot Start     End Sectors  Size Id Type

/dev/sdb1  *     2048 3944447 3942400  1.9G  7 HPFS/NTFS/exFAT


$ sudo fdisk /dev/sdb 

Добро пожаловать в fdisk (util-linux 2.39.2).

Изменения останутся только в памяти, пока вы не решите их записать.

Будьте осторожны перед использованием команды записи.


Этот диск в настоящее время используется — переразметка, вероятно, плохая идея.

Рекомендуется размонтировать все файловые системы и отключить все файлы подкачки. разделы на этом диске.

PS: Плохая или хорошая идея это не его дело, мы занимаемся этим в чисто пзнавательных целях.


Нажимем m:

Справка:


DOS (MBR)

a toggle a bootable flag

b edit nested BSD disklabel

c переключить флаг совместимости с DOS


 Общие

d удалить раздел

F list free unpartitioned space

l список известных типов разделов

n добавить новый раздел

p показать таблицу разделов

t изменить тип раздела

v проверить таблицу разделов

i print information about a partition


 Разное

m показать это меню

u изменить единицы отображения/ввода

x дополнительные функции (только для экспертов)


 Script

I load disk layout from sfdisk script file

O dump disk layout to sfdisk script file


 Сохранить и выйти

w сохранить таблицу на диск и выйти

q выйти без сохранения изменений


 Создать новую метку

g создать новую пустую таблицу разделов GPT

G создать новую пустую таблицу разделов SGI (IRIX)

o создать новую пустую таблицу разделов DOS

s создать новую пустую таблицу разделов Sun


Создаем простой раздел используя все дисковое пространство, то есть нажимаем n и Enter 


All space for primary partitions is in use.

Нас спросят о разделе, нажимаем p


Command (m for help):p

Disk /dev/sdb: 1.88 GiB, 2019557376 bytes, 3944448 sectors

Disk model: Transcend 2GB   

Units: sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disklabel type: dos

Disk identifier: 0xd1c15b8c


Device     Boot Start     End Sectors  Size Id Type

/dev/sdb1  *     2048 3944447 3942400  1.9G  7 HPFS/NTFS/exFAT


Command (m for help): w   #Запишем на диск


Таблица разделов была изменена.

Синхронизация дисков.

$

В результате в системе создано устройство  /dev/sdb1, флешка у меня отформатирована, отформатируем еще раз, возмлжные варианты: <mkfs.bfs>  <mkfs.btrfs>  <mkfs.cramfs>  <mkfs.ext2>  <mkfs.ext3>  <mkfs.ext4>  <mkfs.ext4dev>  <mkfs.fat>  <mkfs.minix>  <mkfs.msdos>  <mkfs.ntfs>  <mkfs.vfat>  <mkfs.xfs>

Форматируем при помощи команды: sudo mkfs.ext4 /dev/sdb1

Монтирование

Монтирование осуществляется при помощи все той-же команды mount, размонтирование при помощи umount но не unmount, состоит из двух шагов первый создание точки монтирования с определением прав:

sudo mkdir /mnt/1

sudo chmod -R 660 /mnt/1

И монтированием как таковым:

sudo mount /dev/sdb1 /mnt/1

Секрет в том что примонтировать он примонтирует, но только для текущей сессии, поэтому нам не обойтись без fstab.

Поэтому далее открываем fstab и дописывае в конец файла строку: /dev/sdb1 /mnt/1 ext4 defaults 0 0  или так:

# echo '/dev/sdb1 /mnt/1 ext4 defaults 0 0' >> /etc/fstab | tail -n1 /etc/fstab 

/dev/sdb1 /mnt/1 ext4 defaults 0 0

или так:

# echo '/dev/sdb1 /mnt/1 ext4 defaults 0 0' | tee -a /etc/fstab

# /dev/sdb1 /mnt/1 ext4 defaults 0 0

Далее можно перезагрузить систему или выпонить mount -a, которая смонтирует все что прописано в fstab и в случае ошибки сообщит.

Монтируем по UUID

Без сомнения наиболее правильный способ, поскльку однозначно определяет объект монтирования.

Что мы хотим смонтировать?

# blkid 

/dev/sda2: LABEL="RECOVERY" BLOCK_SIZE="512" UUID="28A6A902A6A8D19C" TYPE="ntfs" PARTUUID="00a30100-02"

/dev/sda9: LABEL="Cbpp" UUID="f2fe6dde-134f-4910-892a-2dc9abdec593" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00a30100-09"

/dev/sda10: LABEL="Share_Cbpp" UUID="65b3bea6-104d-484d-b246-49483e095830" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00a30100-0a"

/dev/sda7: UUID="ceb12bc2-6e0a-45b7-9fea-bce5f3b04466" TYPE="swap" PARTUUID="00a30100-07"

/dev/sda5: LABEL="Share" UUID="d20fb705-c5b8-4f13-810f-5ab149d3f094" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00a30100-05"

/dev/sda3: BLOCK_SIZE="512" UUID="4430289F30289A46" TYPE="ntfs" PARTUUID="00a30100-03"

/dev/sda1: SEC_TYPE="msdos" LABEL_FATBOOT="DellUtility" UUID="5450-4444" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="00a30100-01"

/dev/sda8: LABEL="Proxmox" UUID="6d9cdf70-7e6f-44c8-8608-902654c881a7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00a30100-08"

/dev/sda6: LABEL="Kali" UUID="43809e6f-d97b-414e-b1f7-1c20c07ae9ea" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00a30100-06"

А хотим мы примонтировать sda10: LABEL="Share_Cbpp" UUID="65b3bea6-104d-484d-b246-49483e095830" BLOCK_SIZE="4096" TYPE="ext4" в каталог /Data

первое создаем каталог или "точку монтирования" и определяем ему права:

# mkdir /Data

# chmod -R 660 /Data

Второе дописываем в fstab следующую строку с "UUID - universally unique identifier":

# echo 'UUID=65b3bea6-104d-484d-b246-49483e095830  /Data  ext4  defaults 0  0' | tee -a /etc/fstab 

UUID=65b3bea6-104d-484d-b246-49483e095830  /Data  ext4  defaults 0  0

# PS: Утилита tee используется с ключем -а (дописать, без ключа перепишет и это не надо забывать)

Далее выполняем mount -a:

# mount -a

mount: (hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload' to reload.

# которая рекомендует нам перезапустить systemd, что и делаем

# systemctl daemon-reload 

# df -h   #проверяем

Filesystem      Size  Used Avail Use% Mounted on

udev            1.9G     0  1.9G   0% /dev

tmpfs           379M  1.7M  378M   1% /run

/dev/sda6        38G   33G  3.3G  91% /

tmpfs           1.9G   71M  1.8G   4% /dev/shm

tmpfs           5.0M  8.0K  5.0M   1% /run/lock

/dev/sda5       124G  103G   16G  88% /mnt/Share

tmpfs           379M  192K  379M   1% /run/user/1000

/dev/sda10       77G   24K   73G   1% /Data

# ..... OK

Самым простым способом убедиться что все в порядке это открыть примонтированный диск (например он был пустым) и увитеть папку

lost+found

$ cd /Data

$ ls

lost+found/

$ sudo ls -l lost+found

total 0

Зачем она нужна?, данную директорию использует утилита fsck, предназначенная для проверки файловой системы. Если утилита fsck в ходе проверки находит данные в файловой системе, которые повреждены или не имеют имени («осиротевшие»), то такие файлы помещаются в директорию lost+found.

PS: Перед всеми "экспериментами" не забываем делать так: # cp /etc/fstab /etc/fstab.bak

mount --help


  -a, --all монтировать все файловые системы, упомянутые в fstab

  -c, --no-canonicalize не канонизировать пути

  -f, --fake пробный прогон; пропустить системный вызов mount(2)

  -F, --fork разветвляется для каждого устройства (используйте с -a)

  -T, --fstab <путь> альтернативный файл к /etc/fstab

  -i, --internal-only не вызывать помощники mount.<type>

  -l, --show-labels показать также метки файловой системы

  -n, --no-mtab не писать в /etc/mtab

  -o, --options <список> список параметров монтирования, разделенных запятыми

  -O, --test-opts <список> ограничить набор файловых систем (используйте с -a)

  -r, --read-only монтировать файловую систему только для чтения (то же, что и -o ro)

  -t, --types <список> ограничить набор типов файловых систем

      --source <src> явно указывает источник (путь, метку, uuid)

      --target <цель> явно указывает точку монтирования

  -v, --verbose сказать, что делается

  -w, --rw, --read-write монтировать файловую систему для чтения и записи (по умолчанию)


  -h, --help отобразить эту справку и выйти

  -V, --version вывести информацию о версии и выйти


Источник:

  -L, --label <метка> синоним LABEL=<метка>

  -U, --uuid <uuid> синоним UUID=<uuid>

  LABEL=<label> указывает устройство по метке файловой системы.

  UUID=<uuid> указывает UUID устройства по файловой системе

  PARTLABEL=<label> указывает устройство по метке раздела

  PARTUUID=<uuid> указывает UUID устройства по разделу

  <device> указывает устройство по пути

  Точка монтирования <directory> для монтирования привязки (см. --bind/rbind)

  <file> обычный файл для настройки Loopdev


Операции:

  -B, --bind монтировать поддерево в другом месте (то же самое, что и -obind)

  -M, --move переместить поддерево в другое место

  -R, --rbind монтировать поддерево и все подмонтировать где-то еще

  

  --make-shared пометить поддерево как общее

  --make-slave пометить поддерево как подчиненное

  --make-private пометить поддерево как частное

  --make-unbindable пометить поддерево как несвязываемое

  --make-rshared рекурсивно помечает все поддерево как общее

  --make-rslave рекурсивно помечает все поддерево как подчиненное

  --make-rprivate рекурсивно помечает все поддерево как частное

  --make-runbindable рекурсивно помечает все поддерево как непривязываемое

umount

Процесс состоит из двух действий, собственно: umount /mnt/Share(точка монтирования),  и удаление точки монтирования из файловой системы; rmdir /mnt/Share, во избежании недоразумений рекомендуется проверить при помощи lsoft нет ли работающих процессов в этом разделе

$ sudo df 

Filesystem     1K-blocks      Used Available Use% Mounted on

udev             1895208         0   1895208   0% /dev

tmpfs             388048      1668    386380   1% /run

/dev/sda6       39556672  34052348   3469484  91% /

tmpfs            1940228     66336   1873892   4% /dev/shm

tmpfs               5120         8      5112   1% /run/lock

/dev/sda5      129623092 107013400  15979036  88% /mnt/Share

/dev/sda10      79780948        24  75682572   1% /Data

tmpfs             388044       200    387844   1% /run/user/1000

$ sudo umount /mnt/Share                         

$ sudo rmdir /mnt/Share 

$ cd /mnt

$ ls

$ ......Удалите запись в fstab

$ sudo mount -a

$ ......OK

lspci - утилита Unix, которая печатает в стандартный вывод детальную информацию о всех PCI шинах и устройствах на них.

lsblk - выведет информацию обо всех или указанных блочных устройствах 

lsblk -o name,size

lsusb - является утилита для вывода информации о всех USB buses в системе и всех устройств, подключенных к ним.

dmesg - (display message или driver message) — команда, используемая в UNIX‐подобных операционных системах для вывода буфера сообщений ядра в стандартный поток вывода stdout (по умолчанию на экран), вывод длинный, по этому через more или less: dmesg | less.

https://neverendingsecurity/ LSBLK     <---------- физическая информация


mv – перемещение файлов/каталогов

mkdir – Создаёт каталог(и), если он ещё не существует.

mkdir [ ключи ]… каталог…

(Аргументы, обязательные для длинных ключей, обязательны и для коротких.)

 -m, --mode=режим   установить код доступа (как в chmod)

 -p, --parents      не выдавать ошибок если существует, создавать

                           родительские каталоги, если необходимо

 -v, --verbose      печатать сообщение о каждом созданном каталоге

 -Z, --context=CTX  установить контекст безопасности SELinux для каждого создаваемого каталога равным CTX

Команда whodo выводит дату, время и имя системы. Для каждого пользователя, вошедшего в систему, выводятся имя устройства, идентификатор пользователя (UID), время входа в систему, а также список активных процессов, связанных с идентификатором пользователя (UID). Список включает имя устройства, PID, минуты и секунды используемого CPU и имя процесса.

root@solaris:~# whodo   (для BSD и Solaris)

20    solaris

pts/1             user    9:40

      ?           2238    0:00 sshd

    pts/1         2239    0:00 bash

    pts/1         2243    0:00 su

    pts/1         2244    0:00 bash

    pts/1         2260    0:00 whodo

      ?           639     0:00 sshd

      ?           2234    0:00 sshd

cp – копирование файлов/каталогов

--attributes-only - не копировать содержимое файла, а только флаги доступа и владельца;

-f, --force - перезаписывать существующие файлы;

-i, --interactive - спрашивать, нужно ли перезаписывать существующие файлы;

-L - копировать не символические ссылки, а то, на что они указывают;

-n - не перезаписывать существующие файлы;

-P - не следовать символическим ссылкам;

-r - копировать папку Linux рекурсивно;

-s - не выполнять копирование файлов в Linux, а создавать символические ссылки;

-u - скопировать файл, только если он был изменён;

-x - не выходить за пределы этой файловой системы;

-p - сохранять владельца, временные метки и флаги доступа при копировании;

-t - считать файл-приемник директорией и копировать файл-источник в эту директорию

cp  -R ~/папка ~/Документы/

После выполнения этой команды копирования ~/папка будет скопирована в папку ~/Документы. Главное, не забывайте поставить слэш в конце выражения или использовать опцию -t. Иначе папка ~/документы будет перезаписана.

rm – удалить файлы/каталоги, с ключом -R удаляет и все вложенные каталоги

rmdir – удаление пустого каталога chmod – (change mode) изменение права доступа к файлам, директориям, символическим ссылкам

chmod +x [файл]      ––>сделать файл исполняемым         Права 

chown  – (change owner) сменить владельца файла или каталога

find – найти файл

touch – изменить временные отметки файла. Удобно использовать для создания пустых файлов 

              touch [myfile] создаст пустой файл myfile, 

              Параметры:

              - t МВДДччмм  Создание файла, содержащего штамп даты (месяц, день, час,                      минута).

who – список пользователей работающих в системе в данный момент, просто w

finger – выводит список пользователей, вошедших в систему, включая, полное имя пользователя (из поля Information его входа /etc/password), порт TTY, день недели, время входа в систему, а также имя удаленной системы, если пользователь загрузился удаленно.

root@solaris:~# finger

Login       Name               TTY         Idle    When    Where

user     igor                  pts/1            Wed    09:40  192.168.1.201

root@solaris:~#

http://bulfamily.narod.ru/solaris

uptime - показывает текущее время, продолжительность сеанса , количество пользователей и загруженность процессора.

history - показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем  сеансе. Если в списке историии их довольно много, то увидите последние.

uname - ключи: -a вся информация, -s имя ядра, -n имя машины в сети

tail - утилита, выводящая несколько (по умолчанию 10) последних строк из файла, ключ -n <кол-во строк> (или просто -<кол-во строк>), ключ -f следит за файлом: новые строки (добавляемые в конец файла другим процессом) автоматически выводятся на экран в реальном времени. Это актуально для слежения за журналами: tail -f /var/log/messages

head - tail наоборот, выводит первые строки из файла(по умолчанию 10), соответственно не умеет работать с ключом -f, пример: head -<n> <filename>

diff <ключ> <объект1> <объект2> - сравнить файлы или каталоги

diff3 <file1> <file2> <file3> - сравнение трех файлов

           q — печатать только сообщения об отличии, i — игнорировать регистр, u — вывод в обобщенном  формате, c — вывод в контекстном формате

cmp <file1> <file2> - побайтное сравнение файлов

sort - сортировка строк по целой строке, по полям, по числовым значениям

­t - разделитель полей, r - по убыванию, k - номер поля для сортировки, n -числовой порядок сортировки

Пример:  head /etc/passwd | sort ­r ­t: ­k3 ­n

uniq - удаление повторяющихся строк из потока

­с - подсчитать количество вхождений, d - вывести только повторяющиеся строки, u - только уникальные строки, i - игнорировать регистр, f<n> ­- пропустить n полей до определения уникальности

Пример:   cat f1.txt f2.txt | sort | uniq

comm - построчно сравнивает два файла


Disk

df (disk free) – выводит на экран информацию о свободном дисковом пространстве, -T - инф. о смонтированных

du (disc usage – использование диска)– выводит на экран информацию о занятом дисковом пространстве, занимаемыми файлами каталога,  с ключом -а выводит все файлы каталога построчно, то есть каталоги "раскроет", удобно использовать совместно с grep при поиске файла; 

du -a | grep [.......]. Слева покажет кол-во занимаемых  блоков (512-1024B) для каждого файла, последней строкой выведет кол-во блоков занимаемыми всеми файлами каталога.

di (disk information) $ sudo apt install di

user@debian:~$ di /

Filesystem         Mount               Size     Used    Avail %Used  fs Type

/dev/sda1               /                    26,6G     6,2G    19,0G   29%  ext4   

ncdu  - Это гуманно! $ sudo apt install ncdu

$ ~ du -s

1301832 .

$ ~ du -sc

1301832 .

1301832 итого

$ ~ du -shc

1,3G    .

1,3G    итого

$ ~ du -s AUR/

206936  AUR/

$ ~

$ du -h --max-depth=1

Параметр --max-depth=1 указывает du суммировать статистику об использовании дискового пространства для директориев, находящихся в текущем директории на глубине 1, т.е. всех директориев текущего директория. Аргумент -h делает итог статистики удобным для чтения, он выводит "5MB" вместо "5242880 (bytes)". Если необходимо подсчитывать в текущей директории размер поддирректориев и размеры файлов, то можно записать короче:  $ du -sh *          $ du -sh .*

freefree – выводит на экран информацию о использовании памяти.  (free -mt)                    

$ free

          total        used         free        shared     buff/cache  available

Mem:      1017864      370280       84680       62592      562904      414096

Swap:     0            0             0

$


$ cat /proc/meminfo

MemTotal:        8018612 kB

MemFree:         2752084 kB

MemAvailable:    4468664 kB

Buffers:          222628 kB

Cached:          1888652 kB

SwapCached:            0 kB

Active:           951492 kB

Inactive:        3660344 kB

Active(anon):       2148 kB

...........................

id – выводит детальную информацию о пользователе.(ID пользователя и номера ID группы для пользователя, вошедшего в систему)

mzone@solaris:~$ id

uid=101(mzone) gid=10(staff)

mzone@solaris:~$ exit

root@solaris:~# id

uid=0(root) gid=0(root)

root@solaris:~#

which — позволяет определить месторасположение любой программы, например which pwd .....

$ ~ which cat

/usr/bin/cat

$ ~

getent  полезная утилита позволяющая получать элементы из административных баз данных:

getent services

getent passwd

getent group

getent hosts

getent auth_attr  и  getent prof_attr , +(| more), в Solaris

....и тд

-----------------------------------------

В любой unix системе, по умолчанию открыто три файла:

stdin     ( стандартный поток ввода - клавиатура )         дескриптор        Ø

stdout  ( стандартный поток вывода - экран )                 дескриптор         1

stderr   ( стандартный поток вывода ошибок )                дескриптор         2

дескрипторы 0, 1 и 2, соответственно.

Операторы перенаправления позволяют передать вывод из файла, сценария, команды или блока команд на ввод другого файла, сценария, команды. 

Например:

$ test.sh > outfile             перенаправление вывода сценария stdout(1) в файл outfile

$ command &> outfile    перенаправление выводов stdout(1) и stderr(2) команды в файл outfile

$ command > outfile 2>&1   перенаправление выводов stdout(1) и stderr(2) команды в файл outfile

$ command >&2              перенаправление вывода stdout(1) команды в поток stderr(2)

$ test.sh >> outfile           перенаправление вывода сценария stdout в файл, в режиме добавления в конец файла

$ &>outfile                       перенаправление stdout(1) и stderr(2) в файл "outfile ".

Символ & предваряет номер дескриптора; например, 2>&1 — перенаправление дескриптора 2 (stderr) в дескриптор 1 (stdout).

Символ &  после символа (>) - тут нужен для того, чтобы пояснить bash, что вы имеете в виду не файл с именем 1, а именно файл с дескриптором 1 символ "больше, чем (>)" не должен быть отделен пробелами от номера дескриптора файла. Если он будет отделен, мы снова укажем на вывод в файл

Во время перенаправления стандартного потока вывода ошибок следует указывать дескриптор файла (2).   Для потоков ввода (Ø) и вывода (1) делать это не обязательно.   [2> /dev/null]   

command 2>&1 | less     способ изучить процесс процесс порождающий много ошибок

set  - выведет на экран переменные текущей оболочки и их значения 

env - выведет переменные окружения и их значения (т.е. те, которые будут переданы всем дочерним процессам)

read - читает одну строку из стандартного входного потока и записывает ее содержимое в указанные переменные

crle - (configure runtime linking environment, the crle utility provides for the creation and display of a runtime linking configuration file) с помощью утилиты можно изменить "пути поиска", без аргументов покажет стандартные пути поиска по умолчанию :

root@zone3:~# crle                   https://docs.oracle.com   

Default configuration file (/var/ld/ld.config) not found

    Platform:   32-bit LSB 80386

    Default Library Path:       /lib:/usr/lib  (system default)

    Trusted Directories:        /lib/secure:/usr/lib/secure  (system default)

    https://blogs.oracle.com/changing-search-paths-with-crle

-----------------------------------------

dpkg-reconfigure tzdata -настройка пакета tzdata, т.е часового пояса для системы.

!! - подстановка последнего аргумента последней команды, аналогично <Esc><dot>

Если вы набрали команду без sudo, а потом оказалось, что она необходима, то: sudo !!

kill [pid]       pkill [процесс]

mtr [hostname]   -   traceroute + ping  (my traceroute - single network diagnostic tool)

df - disk free

-------------------------------------- 

> myfile - создать файл нулевой длинны (в BSD не создаст, или не во всяком BSD)

cat ("concatenate" (конкатенация)) - на все случаи жизни Названные в аргументах файлы или файл выводятся на терминал вместе  (отсюда имя cat – catenate – соединять), один за другим, без каких.либо разделителей.Catenate – синоним слова concatenate (связывать,соединять).

cat > file1 - создать file1

cat file1 file2 > file3  - последовательная печать file1 file2 в file3

cat textfile | more - передать вывод файла <textfile> утилите more (например) или pg, less

cat textfile1 textfile2 textfile3 - отобразить несколько файлов

cat textfile1 textfile2 textfile3 >> bigfile - перенаправит вывод в другой файл (bigfile), одновременно создав его

Отображение символов управляющих клавиш

$ ~ cat -v

^[OP  ^[OQ  ^[OR  ^[OS  ^[[15~  ^[[17~  ^[[18~  ^[[19~  ^[[20~  ^[[21~  ^C

F1    F2    F3    F4    F5      F6      F7      F8      F9      F10     Ctl+C

$ ~

tac – вывести содержимое файла в обратном порядке

cut – выводит заданные символы, байты или поля из файла, -b байты, -c символы, -f поля, -d символ разделитель полей

nl – нумерация строк, для нумерации непустых строк: nl [file] ,всех строк:nl -ba [file]

Символ > означает «поместить вывод в указанный файл вместо терминала». Если такой файл не существовал, он будет создан, а если существовал, то перезаписан. На терминал ничего не выводится. Символ >> обозначает такое же действие, как и >, с той лишь разницей, что он «дописывает в конец». 

Аналогично символ < показывает, что входные данные программа должна брать не с терминала, а из файла, указанного в качестве аргумента. (пробелы с любой стороны от > или < не обязательны) Просто создать пустой файл с именем file: $ > file

 <         input redirection     Cтандартный входной поток получает данные из  указанного  файла(например)

<<       input from a here document      Получает данные из стандартного потока ввода до тех пор, пока   не  встретится разделитель “документ здесь”

>    output creation      Направляет стандартный поток вывода в новый файл

>> output append        Направляет стандартный поток вывода в указанный файл       (режим присоединения, например дописать файл)

 >, &>, >&, >>, <    Перенаправление ввода/вывода               .......тут

Потоковый редактор sed

http://citforum.ru/operating_systems/SED-Неинтерактивный редактор

https://www.opennet.ru/docs/RUS/SED <> AWK

https://www.opennet.ru/base/dev/sed_scripts

Потоковые редакторы — фильтры, которые неинтерактивно редактируют проходящий через них поток текста. Потоковые редакторы обладают развитыми языками программирования, которые позволяют создавать сложны сценарии обработки текста, применяющие различные предопре-делённые текстовые преобразования к последовательному потоку текстовых данных.  Примеры: 

ps | sed 1d - удалить первую строку в потоке

ps ­A | sed '/httpd/d' - удалить все строки, содержащие httpd

sed 's/string1/string2/g' example.txt - Заменить string1 на string2 в файле example.txt и вывести содержимое

sed '/ *#/d; /^$/d' example.txt - Удалить пустые строки и комментарии из файла example.txt

sed '/^$/d' example.txt - Удалить пустые строки и комментарии из файла example.txt

sed -n '/string1/p' - Отобразить только строки содержащие string1

sed -n '5p;5q' example.txt - Вывести пятую строку

sed -n '2,5p' example.txt - Вывести строки со второй по пятую

sed -e 's/00*/0/g' example.txt - Заменить последовательность из любого количества нулей одним 

......и тд.

 Часто используемые команды(ключи) языка sed:

d - удаление; p - вывод строки; s - замена подстроки; i - вставка строки; a - добавление строки; с - изменение всей строки на заданную; q - выход без дальнейшей обработки строк;

y - команда транслитерации символ в символ; = - команда печати номера строки.

Примеры:

 sed /daemon/q /etc/passwd

 sed s/bash/?????????/  /etc/passwd

Пример: 

вывести только те группы из /etc/groups, членом которых является пользователь root, причем заменить все : на _

sed -n /root/p /etc/group

sed -n /root/s/:/_/gp /etc/group  : -n подавляет вывод не нужных строк, s/:/_  заменяет, gp печать строк

ps | sed '/bash/a ##############' ­ добавить после найденной строки заданную

ps | sed -­f sed.scr - использовать для обработки файл сценария

supersed - расширение sed, позволяет использовать регулярные выражения Perl

Потоковый редактор awk (gawk)

AWK — интерпретируемый скриптовый C-подобный язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам (регулярным выражениям). Исполь-зуется в bash (SH) скриптах.

http://citforum.ru/operating_systems/articles/SED_AWK

http://www.lissyara.su/doc/programming/awk/

http://www.gnu.org/software/gawk/gawk.html

Общий вид сценария awk: /шаблон/ {команды}

сценарий обработки можно считывать из файла awk ­f <file>, если задана команда, но не задан шаблон, обрабатываются все строки, если задан только шаблон, соответствующие строки выводятся без обра-ботки.


Примеры:

awk '/bash/' /etc/passwd

awk ­F: '/bash/{print $1,$3}' /etc/passwd — вывести только 1 и 3­е поля

awk ­F: '$3>500{print $1,$3}' /etc/passwd

awk имеет встроенные переменные и позволяет пользователю задавать свои:

awk ­F: '$3>500{print NR,$1,$3}' /etc/passwd — NR хранит номер строки

Системные команды

last -10 - показать последние 10 входов

uname - сведения о системе, без ключа - ядро, вся информация

id - uid=100(user) gid=10(staff)

whoami - имя, под которым вы залогинены

reboot - перезагрузка системы

poweroff - выключение компьютера

reset,clear - очищает окно терминала (Ctr+l)

sync - очищает буферы файловой системы.

passwd - сменить свой пароль, а суперпользователю - поменять пароль любого пользователя

users - отобразить список пользователей, вошедших в систему. (wwho)

hwclock - встроенные часы Вашего компьютера.Для изменения даты и времени и синхронизации с системными часами, необходимы привелегии root.

nice - позволяет отобразить или настроить приоритет задачи.

crontab - обеспечивает возможность выполнения определённых задач по расписанию. (crontab -e)

tzselect - запуск утилиты, которая позволяет выбрать часовой пояс.

yum - менеджер пакетов в дистрибутивах Fedora, RedHat и т.п.

dpkg - менеджер пакетов в дистрибутивах Debian, Ubuntu и т.п.

apt-get - менеджер пакетов в дистрибутивах на основе Debian (Ubuntu, Mint и т.п.)

loginctl  - богатая утилита, покажет то о чем и не догодаешся: 

$ loginctl --help

hardware:

System Management BIOS (SMBIOS) — определяет структуру данных, которую програмно можно будет извлечь ( например информацию о биосе, мат плате, оперативной памяти)

DMI (Desktop Management Interface) — по факту это API (реализованные функции для работы с данными сохраненными SMBIOS),

dmidecode — программа которая использует API DMI

----------------------------------

#Получить информацию о материнской плате

dmidecode -t2

#Получить общую информацию о возможной установке оперативной памяти на данную систему

dmidecode -t 16

#Получить детальную информацию о каждом слоте

demidecode -t 17

#Получить информацию о BIOS

dmidecode —type 0,13

#Читать мануал  man 8 dmidecode

 НОВЫЕ КОМАНДЫ APT - Advanced Packaging Tool

 Основные команды:

list –список пакетов  (--installed   --upgradable  --all-versions)

search –поиск пакетов по имени

policy <package_name> –покажет версию и ее детали

show –показать подробную информацию о пакете

update –обновить списки доступных пакетов

install –установить пакет

remove –удалить пакет   (apt purge)

upgrade –установить доступные новые версии пакетов

full-upgrade –полное обновление системы

edit-sources –редактировать файл источников программного обеспечения

Более подробная информация: man apt. 

$ hostnamectl    <----- имя

Static hostname: KaliLinux

       Icon name: computer-laptop

         Chassis: laptop

      Machine ID: 867cf8f7f24645f49481e5e0e53b37df

         Boot ID: c8f8ee127a5e4d9fbba0e37514205bee

Operating System: Kali GNU/Linux Rolling          

          Kernel: Linux 5.14.0-kali2-amd64

    Architecture: x86-64

 Hardware Vendor: Dell Inc.

  Hardware Model: Inspiron 5520

SWAP

Узнать есть ли swap:

$ sudo swapon --show 

NAME      TYPE SIZE   USED PRIO

/swapfile file 2.5G 110.3M   -2

или free:

$ free -h 

           total        used        free      shared  buff/cache   available

Mem:       3.7Gi       2.7Gi       600Mi       247Mi      950Mi       1.0Gi

Swap:      2.5Gi       277Mi       2.2Gi

https://www.8host.com 

Управление процессами

ps - отобразить список текущих активных процессов

pstree - дерево

top, htop - отображение списка текущих процессов и интерактивное управление ими. 

vmstat - выдаёт сведения о процессах, памяти и загруженности центрального процессора. 

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

$ ps axo rss,comm,pid \

| awk '{ proc_list[$2]++; proc_list[$2 "," 1] += $1; } \

END { for (proc in proc_list) { printf("%d\t%s\n", \

proc_list[proc "," 1],proc); }}' | sort -n | tail -n 10 | sort -rn \

| awk '{$1/=1024;printf "%.0fMB\t",$1}{print $2}'

3452MB chromium

258MB gnome-shell

123MB mariadbd

112MB Xorg

102MB dockerd

85MB apache2

...............

ps -auxf | sort -nr -k 4 | head -10   -   10 процессов, потребляющих наибольшее количество памяти

lsof - отобразить список открытых файлов процесса или пользователя

strace - отобразить список системных вызовов

last - отобразить историю перезагрузок и регистраций пользователей в системе   (last -5 пять последних)

kill – послать сигнал процессу, завершение работы процесса.  kill [№][pid]   pkill [№][процесс] 

killall – завершение работы всех процессов, имена которых заданы

....в случае SystemD  ---->>> SystemD


Вывод первых десяти работающих процессов, отсортированных по объему используемой памяти

$ ps aux | sort -nk +4 | tail

***Выше приведенный пример, не самый лучший способ изображения первых десяти процессов, которые потребляют максимум памяти, но он работает, предыдущий лучше. Берется результат ps aux, который сортируется (sort) по 4-му столбцу, а затем используется tail, выдающий последние десять строк, в которых показаны процессы с наибольшим потреблением памяти.

nohup — UNIX-утилита, запускающая указанную команду с игнорированием сигналов потери связи (SIGHUP). Таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь выйдет из системы. Если стандартным выводом (stdout) команды является терминал, то он и стандартный вывод ошибок (stderr) перенаправляются с добавлением в файл «nohup.out» в текущем каталоге; если это невозможно сделать, то перенаправление происходит в файл «$HOME/nohup.out». Если и это невозможно сделать, то команда не запускается совсем. При создании файлов «nohup.out» или «$HOME/nohup.out» команда nohup устанавливает им атрибуты доступа только для владельца этих файлов (группа и остальные пользователи не имеют прав доступа к этим файлам). Если же эти файлы уже существуют, то их права доступа не изменяются.

nohup не переводит автоматически команду в фоновый режим; пользователь должен сделать это явным образом, завершив командную строку символом «&».

$ cat `which nohup`

trap "" 1 15

if test t 2>&1

then

echo "Sending output to 'nohup.out'"

exec nice 5 $* >>nohup.out 2>&1

else

exec nice 5 $* 2>&1

fi

fuser Команда fuser – позволяет определить, какой процесс использует файл, каталог или сокет.

Отсоеденить процесс от текущей оболочки


$ ping -i1 www.google.com &> /dev/null & disown

Великолепная утилита disown

или:

$ nohup ping -i1 www.google.com &

PS: Вернуть процесс из фона не выйдет, но можно убить

Сетевые команды

Чудная утилита lsoft:

lsof - информации о том, какие файлы используются теми или иными процессами

https://handynotes.ru/unix-utility-lsof.html  <-------

https://habr.com/ru/company/ruvds/

$ sudo kill $(sudo lsof -t -i:3080)  <------ убить процесс на 3080 - м порту

$ lsof -i :5228  <------ кто использует порт

COMMAND  PID  USER  FD  TYPE   DEVICE  SIZE/OFF  NODE  NAME

chromium 329030 xxx  213u  IPv4 15841890   TCPLinux:51628->l (ESTABLISHED)

$ man lsof:

netstat -an|grep udp | wc -l - показать кол-во сетевых соединений

ifconfig – конфигурация сетевых интерфейсов

ip  ip addr {link|addr...} - просмотр или изменение параметров конфигурации протокола IP

route - таблица маршрутизации

ifup / ifdown - включить /выключить сетевой интерфейс

netstat - отобразить состояние сетевых соединений

arp, ping, nslookup, traceroute..и тд. - команды сетевой диагностики.

ping host – пропинговать host и вывести результат

whois domain – получить информацию whois для domain

dig domain – получить DNS информацию domain

dig -x host – реверсивно искать host

wget file – скачать file ( wget https://ftp.postgresql.org/pub/binary/v11.0/....)

wget -c file – продолжить остановленную закачку

mtr – объединяем traceroute и ping                 

$ mtr google.com

Команда mtr, которая лучше известна как команда "Matt’s Traceroute" ("Трассировка Мэтта" ) объединяет в себе как команду трассировки traceroute, так и команду пингования ping.

После каждой успешной прокладки трассы она посылает пинг запрос на найденную машину, результатом будут выходные данные обоих команд traceroute и ping, которые помогут лучше оценить качество связи. Если будет определено, что пакет прошел по альтернативному маршруту, то команда покажет и это, а сохраняемые данные будут по умолчанию изменены с тем, чтобы вы в режиме реального времени знали, что происходит.

Для беспроводного соединения существует удобная утилита iw, кроме всего остального....

$ sudo apt install iw

$ iw dev

phy#0

Interface wlp8s0

ifindex 3

wdev 0x1

addr 68:5d:43:eb:05:0a

ssid ROSCOM

type managed

channel 11 (2462 MHz), width: 20 MHz, center1: 2462 MHz

txpower 16.00 dBm

$ iw dev | grep ssid 

ssid ROSCOM

$ iw dev wlp8s0 link

Connected to ca:04:15:8c:9b:78 (on wlp8s0)

SSID: ROSTELECOM

freq: 2462

....... и т.д

Ну и arp конечно, как чаще всего употребляемая

# arp [параметры] [IP-адрес] [MAC-адрес]

Как и  netstat -nr:

$ netstat -nr

Kernel IP routing table

Destination     Gateway         Genmask    

0.0.0.0         192.168.1.1     0.0.0.0 ....

172.16.22.0     0.0.0.0         255.255.255.0 ....

192.168.1.0     0.0.0.0         255.255.255.0 ...

192.168.228.0   0.0.0.0         255.255.255.0 ...

Каждый маршрут отмечен своим флагом. Флаги в выводе netstat обозначают состояние и тип маршрута:

• U – up – маршрут активен и действует;

• G – gateway – маршрут лежит к шлюзу;

• H – host – маршрут к хосту (компьютеру), а не к сети;

• S – static – маршрут добавлен статически (обычно – вручную);

• D – dynamic – маршрут добавлен динамически, посредством протокола маршрутизации.

Утилита SS

ss --help

ss -l    Показать все открытые сетевые порты        (https://zalinux.ru/  https://habr.com/ru)

ss -a  Список слушающих и не слушающих портов

ss -l   Список прослушивающих сокетов

ss -t  Список всех TCP соединений

ss -lt Список всех слушающих TCP соединения

ss -ua Список всех UDP соединений

ss -lu Список всех слушающих UDP соединений

ss -p  Отображение у сокетов PID

ss -s   Показать сводную статистику

ss -4

ss -6  Показать сокеты IPv4 и IPv6

ss -at '( dport = :22 or sport = :22 )'  Фильтр соединений по номеру порта

ss -n  Вывод номеров портов в числовом формате

ss -lntu Поиск открытых портов на Linux

Порой полезно сделать тест скорости:

$ sudo apt install speedtest-cli

$ speedtest-cli

Retrieving speedtest.net configuration...

Testing from Rostelecom (179.69.156.169)...

Retrieving speedtest.net server list...

Selecting best server based on ping...

Hosted by INETCOM LLC (Moscow) [633.57 km]: 38.803 ms

Testing download speed.............................................

Download: 13.47 Mbit/s

Testing upload speed.............................................

Upload: 10.73 Mbit/s


$ speedtest-cli | egrep 'Download:|Upload:'; date

Download: 16.64 Mbit/s

Upload: 10.77 Mbit/s

Fri Oct 20 09:56:45 PM MSK 2023


$ speedtest-cli | egrep 'Download:|Upload:'; date; iw dev | grep ssid 

Download: 12.66 Mbit/s

Upload: 11.54 Mbit/s

Fri Oct 20 11:42:52 PM MSK 2023

ssid ROSTELECOM


$ { speedtest-cli | egrep 'Download:|Upload:'; date; iw dev | grep ssid; } >> speedtest 

$ cat speedtest 

или так:

$ { speedtest-cli | egrep 'Download:|Upload:'; date; iw dev | grep ssid; } | tee -a speedtest

find

https://sites.google.com/site/kfgnb0101/home/Doc/unix-shell-scripting-tutorial/komanda-find

https://ru.wikipedia.org/wiki/Find

find <каталог,путь> -name  <имя файла>

Какая программа какой порт TCP слушает

# netstat -tlnp                                         

Netstat является стандартной утилитой, с помощью которой можно получить информацию о сетевой подсистеме Linux. В данной конкретной команде эта утилита вызывается с аргументами -tlnp:

$ ~ sudo netstat -tlnp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      396/sshd

tcp6       0      0 :::22                   :::*                    LISTEN      396/sshd

$ ~

Hot keys

Ctrl+C – завершить текущую команду (SIGINT)

Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне  (SIGTSTP)

Ctrl+S – останавливает вывод на экран

Ctrl+Q – продолжает вывод после остановки

Ctrl+D – разлогиниться, тоже самое, что и exit

Ctrl+W – удалить одно слово в текущей строке

Ctrl+U – удалить строку

Ctrl+l – очистить экран

Ctrl+Shift+T – В терминале открыть вкладку

!! – повторить последнюю команду

!№ - повтор команды по номеру события(fc -l)

Tab x 2 - 

cd -   – вернуться на предыдущую дирректорию

which – показывает полный путь к исполняемому файлу команды.

........................... и тд

Timeout

Created Sunday 08 October 2023


Команда timeout - выполнить команду в течение заданного времени.

 Синтаксис: $ timeout <time-limit-interval> <command>

 

Например: $ sudo timeout 2 journalctl -f | tail -n10 | fold -w125

 Выведет последние 10 строк системного журнала с заданным форматированием.


 Например: $ sudo timeout 10 dmesg -w

 Выведет отчет буфера ядра за последние 10с


 Доступные суффиксы:

“m” в течение нескольких минут,

“h” Часы

“d” в течение нескольких дней.

По умолчанию суффикс "s". который можно не указывать, иногда есть смысл в  использовании более богатой утилиты: timelimit

Контроль изменения файлов

$ watch -d -n 1 'df; ls -FlAt /path'

Эта одностроковая команда следит за изменениями файлов в директории /path. Здесь используется команда watch, которая периодически вызывает заданную команду. Флаг -d указывает команде watch отображать различия, которые произошли между вызовами команды (так что вы видите, какие файлы добавляются или удаляются в директории /path). Флаг -n 1 указывает, что команду следует повторять каждую секунду.

Команда, которая исполняется, df; ls -FlAt /path, представляет собой в действительности две команды, выполняемые последовательно одна за другой. 

Команда df выдает данные о том, сколько используется дискового пространства.

Команда ls -FlAt выдает список файлов в директории /path. 

Аргумент -F указывает ls сортировать файлы, а добавление */=>@| к именам файла, требует показывать, являются ли файлы исполняемыми (*), директориями (/), сокетами (=), файлами типа doors (>) (doors - механизм межпроцессного взаимодействия в операционных системах Unix; он представляет собой разновидность функционального вызова - прим.пер.), символическиеми ссылками (@) или именованными конвейерами (|). 

Аргумент -l указывает выдавать список всех файлов

Аргумент -A - скрывать директории . и .., 

Аргумент -t — сортировать по времени создания/изменения файлов.

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

На самом деле выдаваемый результат будет выглядеть лучше, если вы к df добавите аргумент -h, результат будет более удобочитаем. Вы также можете добавить аргументы команды watch, задав для нее -dn1. Вот окончательный вариант:

$ watch -dn1 'df -h; ls -FlAt /path'

Еще замечание: -d в системе BSD означает –differences.

Запуск сервера SMTP

python -m smtpd -n -c DebuggingServer localhost:1025

Эта одностроковая команда запускает сервер SMTP на порту 1025. Здесь используется стандартная библиотека smtpd для языка Python (задается при помощи -m smtpd) и передаются три аргумента: -n, -c DebuggingServer и localhost:1025.

Аргумент -n указывает Python-у не устанавливать для setuid (позволяет изменять пользователя) значение "nobody" — код будет работать под вашим пользователем.

Аргумент -c DebuggingServer указывает Python-у использовать класс DebuggingServer в качестве реализации SMTP, которая печатает каждое получаемое сообщение в выходной поток stdout.

Аргумент localhost:1025 указывает Python-у запускать SMTP сервер как locahost на порту1025.

Однако, если вы захотите запустить сервер на стандартном порту 25, вам нужно будет использовать команду sudo, поскольку только пользователь с правами root может запускать сервисы на портах 1 — 1024. Они также известны как привилегированные порты.

sudo python -m smtpd -n -c DebuggingServer localhost:25

Дистанционное монтирование директория с помощью SSH

$ sshfs name@server:/path/to/folder /path/to/mount/point

Это правда, что вы можете через SSH смонтировать удаленный директорий локально! Однако, вам нужно сначала следующие две программы:

FUSE, которая позволяет реализовывать файловые системы в программах, работающих в пользовательском пространстве, и

sshfs клиент sshfs, который использует FUSE и sftp (безопасный ftp — идет в комплекте с OpenSSH, и уже есть в вашей системе) для доступа к удаленному хосту.

И это все, теперь вы можете использовать sshfs для монтирования удаленных директориев через SSH.

Для того, чтобы размонтировать, используйте fusermount:

fusermount -u /path/to/mount/point

dpkg apt apt-get aptitude

Created Thursday 19 October 2023


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

Debian_ru_dpkg

Dpkg -- менеджер пакетов Debian

5.4. Работа с пакетами при помощи dpkg 

Команда dpkg в Linux


dpkg Debian Packages менеджер пакетов среднего или скорее центрального уровня для Debian является основой системы управления пакетами в Debian. Умеет много чего хорошего, но не умеет главного,  автоматически загружать и устанавливать пакеты или их зависимости, но может устанавливать, удалять и создавать пакеты. В догонку существует Dpkg-deb — инструмент для работы с архивом пакетов Debian упаковывает, распаковывает и предоставляет информацию об этих архивах.

 

apt Аdvanced package tool, совмещает функциональность apt-get и apt-cache, это расширенный интерфейс пакетного менеджера Debian, предоставленный утилитой apt-get.

Аpt как и apt-get непосредственно не работают с .deb пакетами в отличии от dpkg которая для того и предназначена, но рабтают с архивами репозиториев содержащими эти пакеты, которые мы перечислили в /etc/apt/sources.list

PS: хотя $ sudo apt install ./package.deb установит таки пакет полученный нами не из apt, возможность была добавлена в 

apt 1.1


/etc/apt/sources.list

https://repogen.simplylinux.ch/  <------ UBUNTU

http://debgen.simplylinux.ch/     <------ DEBIAN


$ man apt-get 8


apt-get update Обновить информацию о пакетах, содержащихся в репозиториях.

apt-get install foo Установить пакет foo. Скачивание, установка и настройка происходят автоматически. Если для настройки пакета foo нужны дополнительные сведения, будет показан запрос к пользователю.

apt-get upgrade Обновление пакетов, для которых в репозитории доступны новые версии.

apt-get -y dist-upgrade Обновление пакетов, требующих разрешения зависимостей (установка дополнительных или удаление конфликтующих пакетов).

apt-get remove foo Удаление пакета foo из системы.

apt-get purge foo Удаление пакета foo и очистка системы от его конфигурационных файлов. Файлы настроек в домашних каталогах пользователей удалены не будут.

apt-get clean Clean очищает локальный репозиторий , удаляет все, кроме файла блокировки, из /var/cache/apt/archives/ и /var/cache/apt/archives/partial/. 

apt-get autoclean функция autoclean также очищает локальный репозиторий полученных файлов пакетов. Разница в том, что он удаляет только файлы пакетов, которые больше нельзя загрузить и которые по большей части бесполезны. Это позволяет поддерживать кеш в течение длительного периода.

apt-get autoremove   используется для удаления пакетов, которые были автоматически установлены для удовлетворения зависимостей какого-либо пакета и которые больше не нужны очистка системы от ненужных пакетов. Факт, что пакет более не нужен, определяется следующим образом: если пакет был установлен не сам по себе, а как зависимость для другого пакета, который впоследствии был удалён, значит этот пакет тоже уже не нужен в системе.

apt-get source foo Получение исходных текстов пакета foo.

apt-get build-dep foo Получение зависимостей для сборки пакета foo.

sudo apt-get -f install (или длинный параметр --fix-broken) apt-get с опцией fix используется для устранения сбоев в базе пакетов вызванных нарушенными зависимостями см: man apt-get

apt-cache Позволяет выполнить запросы к кешу apt

search   Поиск пакета по части названия или описания. Поддерживает регулярные выражения.

show   Информация о пакете: версия, размер, описание и т. п.

depends   Зависимости указанного пакета.

rdepends   Обратные зависимости пакета.

apt-key служит для добавления ключей от репозиториев в систему.

add   Добавление ключа в базу доверенных ключей.

del   Удаление ключа из доверенных.

PS: если не полениться и посмотреть $ man apt то можно заметить что теже команды apt-get можно выполнять при помощи apt


aptitude — то же менеджер пакетов для систем Debian, он предоставляет интерфейс к инфраструктуре управления пакетами apt, то есть на деле умеет автоматически  ставить зависимости, представляет собой текстовый интерфейс на основе библиотеки curses, по умолчанию не устанавливается, если надо придется выполнить: $ sudo apt install aptitude


PS: Пакетный менеджер основа и отличительная черта каждого дистрибютива Linux, структура Debian Packages многоуровневая, что вполне естественно, по причине большого количества задач на него возлагаемого, потому вопрос чем отличается apt-get от apt, если нам надо скачать и установить пакет, вопрос чисто риторический, то есть по сути ни чем, apt конечно предпочтительней поскольку писать меньше.

Команды терминала Debian

login - запрос от пользователя имени и пароля (запрос от системы к пользователю) для входа в систему( по умолчанию, при наборе пароля, он не отображается).

logout - выход из текущего сеанса оболочки. Сtrl D, exit 

bc - калькулятор http://rus-linux.net 

$ echo "scale=4;(321-123)/123" | bc -l  (scale - кол-во знаков после запятой)

$ echo "obase=16;ibase=10;123" | bc     (преобразование из десятичного в шестнадцатиричный)

$ expr 3 + 5

$ expr 5 \* 3 (экранировать)

startx - команда для запуска графического интерфейса X Window shutdown - останавливает систему и предотвращает повреждение файловой системы при этом, но,используется только при работе в консольном режиме.При работе в режиме X Window, используйте с аргументами....))).

halt(poweroff) - быстрое и корректное выключение системы.

reboot - корректное выключение с последущей загрузкой.Перезагрузка.

vmstat - выдаёт сведения о процессах, памяти и загруженности центрального процессора.

su - вход в сеанс администратора, но прийдётся ввести пароль.Для выхода из этого сеанса наберите exit и нажмите ENTER.

apropos - поиск строки в заголовках и названиях документации ( дополнительно вводится слово для поиска). Выдаёт список всего найденного.

cal - форматированный календарь на текущий месяц ( добавить y и будет календарь на весь текущий год, указав год...календарь на указанный год ).

date - отображает текущие дату и время, по системным часам ядра.

oclock - простые часы, которые висят на рабочем столе (ение информации о пользователе, имя которого указано в команде.

hostname - команда отображает идентификатор данного узла сети ( его имя). root может изменить имя узла на новое.

hwclock - встроенные часы Вашего компьютера.Для изменения даты и времени и синхронизации с системными часами, необходимы привелегии root.

pwd (print working directory) - отображает полный путь к текущему каталогу.

tzselect - запуск утилиты, которая позволяет выбрать часовой пояс.

uname - выводит информацию об используемой операционной системе (при вводе дополнительных параметров команды , выдаёт довольно много информации).

uptime - показывает текущее время, продолжительность сеанса , количество пользователей и загруженность процессора.

users - отображает краткий список пользователей работающих в системе в данный момент.

w - подробная информация о всех пользователях, работающих в данный момент и также простой, вход в систему и др.Если нужен один пользователь, то указать имя в параметре.

whatis - поиск по базе данных страниц руководства и отображение краткого описания.

who - список пользователей работающих в системе в данный момент.

whereiz - находит файлы, страницы справочного руководства для указанной команды.

which - показывает полный путь к исполняемому файлу команды.         

whoami - показывает текущий идентификатор пользователя, работающего в данном терминале.

write - отправляет сообщение другому пользователю, находящемуся в системе, путём копирования строк с терминала отправителя на терминал получателя.

wall - отправляет сообщение на терминал каждого пользователя находящегося в системе в данный момент.

history - показывает пронумерованный список команд, которые Вы выполняли в этом и предыдущем сеансе. Если в списке историии их довольно много, то увидите последние.

jobs - выводит список всех выполняемых и приостановленных задач.

kill - завершить процесс (необходимо указать какой).

killall - позволят управлять процессами используя их имена или имена файлов, а не идентификаторы как в kill. Завершаются все указанные процессы.

kernelversion - показывает основную и дополнительную версии ядра.

nice - позволяет отобразить или настроить приоритет задачи.

ps - выводит список всех работающих процессов.

pstree - показывает иерархию процессов системы, что хорошо показывает их взаимозависимость.

renice - задаёт приоритет для указанной задачи

times - показывает полное время выполнения процессов для всей системы и данного пользователя.

script - позволяет записывать весь вывод с терминала в файл.Что бы остановить запись нажмите Ctrl+d.Если имя файла не указано то записывается в typescript.

top - запускает программу , которая позволяет управлять процессами.И ещё много дополнительной, полезной информации.

cd - смена текущего каталога.По умолчанию переходит в домашний каталог текущего пользователя (если без параметров).

dir - отображает файлы в текущем каталоге в алфавитном порядке и с учётом регистра.

file - показывает тип содержимого указанного файла(текст, выполняемый, данные).

find - поиск файлов в текущем каталоге.Если указать путь, можно искать везде.

free - отображает информацию об оперативной памяти, подкачки, кэше,свободная памать, общая и т.д.

ls - показывает все файлы в текущем каталоге в алфавитном порядке.Аналогична dir.

last - показывает список пользователей, которые заходили в систему с момента создания файла /var/log/wtmp.

lastlog - проверяет историю входа в систему зарегистрированных пользователей.Форматирует и выводит на печать файл /var/log/lastlog.

logger - посылает запрос демону syslogd с просьбой поместить сообщение в системный журнал.

lpr - отправляет документ на печать демону печати.

chmod - изменяет режим доступа к файлу.Символьный или числовой формат.

chown - смена владельца указанного файла.Требуется доступ root.

chage - применяется для изменения срока действия учетной записи.Для администрирования.

chfn - изменяет сведения о пользователе в файле /etc/passwd из которого берёт информацию команда finger .

chgrp - команда для администратора,для изменения группы владельцев файла.

clear - очищает экран терминала (если это возможно).  (Ctrl+l)

crontab - обеспечивает возможность выполнения определённых задач по расписанию. Чаще используется администратором, хотя свои задачи могут быть и у пользователей.

head - утилита выводит первые десять строк файла.Можно и несколько файлов

ispell - запуск интерактивной утилиты для проверки орфографии в указанном файле.

id - отображает действующие значения идентификаторов пользователя и группы для текущего пользователя.

ifconfig - отображает состояние текущей конфигурации сети или настраивает сетевой интерфейс.

less - отображает содержимое указанного файла на экране и позволяет удобно просмотреть.

nl - команда нумерует строки в указанном файле.

paste - обьединяет соответствующие строки файлов в колонки.При желании можно обьединить несколько файлов.

pdf2ps - преобразует файл формата PDF в Post Script.Результат записывает на диск.

pdftotext - преобразует файл из формата PDF в текст и записывает результат на диск.

pr -подготавливает текст к печати, осуществляя форматирование с разбиением на страницы.Можно подготовить несколько файлов.

sort - команда позволяет отсортировать строки файла в алфавитном порядке.

split - разбивает файл на части.

zcat;zmore - выводит содержимое файла сжатого gzip на экран без распаковки.

zcmp - сравнивает сжатые gzip два файла без распаковки.

zdiff - сравнивает сжатые gzip два файла без распаковки.

zegrep;zfgrep;zgrep - осуществляют поиск указанной строки, выражения в файле сжатом gzip, без распаковки.

aumix - запускает в интерактивном режиме утилиту, которая управляет различными настройками звуковой карты.

cdda2wav - утилита предназначена для записи звуковых дорожек с аудиокомпакт диска в файлы формата WAV.Если имя файла не указано, то запись идёт в файл audio.wav в текущем каталоге.

cdlabelgen - команда предназначена для подготовки обложек к коробкам компакт дисков. Результат в файле формата Post Script.Требуется наличие интерпретатора языка Perl не ниже 5.003 версии.

cdp - запуск проигрывателя аудиокомпакт дисков в текстовом режиме.

cdparanoia - считывает звуковые дорожки с аудиокомпактов и записывает в файлы WAV,AIFF,RAW.

combine - обьединяет два и более графических файла в один.Огромное количество спецэффектов.Является частью пакета Image Magick и можно взять http://www.imagemagick.org

convert - преобразует указанный входной графический файл, в выходной.Распознаёт множество форматов. Скачать так же как и предидущую

identify - определяет формат и характеристики графического файла и проверяет целостность и наличие ошибок.

mogrify - преобразует графический файл и перезаписывает исходный.

montage преобразование нескольких файлов в обьединённое изображение.Скачать http://www.imagemagick.org

mpg123 - воспроизводит на основном устройстве воспроизведения аудио файл в формате MP3. Вписывается имя файла или его адрес в Интернет.Чтобы остановить воспроизведение Ctrl+c.Что бы остановить и выйти из программы Ctrl+c нажать дважды.

play - воспроизводит звуковой файл с указанным именем.Автоматически распознаёт тип файла. Позволяет добавлять различные звуковые эффекты к воспроизводимым файлам.

playmidi - воспроизводит зуковые файлы в формате MIDI.

rec - записывает входной сигнал с микрофона или других входов в звуковой файл. Тип файла следует указать с помощью параметра (type).Есть возможность добавить звуковые эффекты.

sox - преобразует сэмплы из формата входного сигнала, на выходной с добавлением эффектов.

emacs - запуск текстового редактора Emacs.




joe - простой в использовании редактор работающий в текстовом режиме.

pico - простой и удобный в использовании текстовый редактор.Удобен для редактирования конфигурационных и простых файлов.

vi - запуск классического текстового редактора VI для UNIX систем.

dmesg - выводит на экран сообщения ядра, включая отображаемые при запуске и потом. Что бы удобней читать, вводите dmesg|less.

groupadd - создание группы пользователей с указанным именем.

groupdel - удаляет группу с указанным именем.

groupmod - изменяет параметры группы с указанным именем.

mkpasswd - создаёт высококачественный пароль, состоящий по умолчанию из девяти символов и содержащий по крайней мере буквы в разном регистре и цифры.

passwd - позволяет пользователю с указанным именем изменять пароль своей учётной записи. root может изменить пароль любого пользователя.

pwgen - создаёт высококачественный пароль,который хорошо запоминается.Длинна пароля указывается числом. Если этой утилиты нет, скачать http://metalab.unc.edu/pub/Linux/system/security

quota - показывает текущую статистику использования диска и текущие ограничения для пользователя или группы с указанным именем.

quotacheck - исследует файловую систему на предмет использования дискового пространства.

quotaon - включает и отключает ограничения на использование дискового пространства.

rpm - запускает менеджер пакетов, утилиту,позволяющую устанавливать , проверять и обновлять пакеты с расширением rpm.

rpmfind - поиск нужного пакета в базе пакетов RPM через ИНТЕРНЕТ.Последняя версия утилиты http://www.rpm.org

tmpwatch - удаление всех файлов в указанном каталоге, если к ним не осуществлялся доступ в течении последних n часов.Очищает временные каталоги.

useradd - создание нового пользователя с указанным именем.

userdel - удаляет пользователя с указанным именем.

usermod - изменяет параметры пользователя с указанным именем.

fetchmail - утилита получения почты.Роботает в фоновом режиме.Скачивает почту с указанного сервера. Если её нет, скачать можно http://www.freshmeat.net

ftp - устанавливает соединение с указанным узлом и позволяет скачивать или закачивать файлы.

lynx - запуск консольного WEBброузера.

mail - утилита редактирования и просмотра электронной почты.Отправка и получение писем.

netstat - вывод информации о сетевой подсистеме.Очень много настроек и параметров.

ping - отправка на указанный адрес пакетов для проверки возможности соединения с этим узлом.

telnet - открывает окно терминала на удалённом узле и запускает интерактивный сеанс.

wvdial - программа подключается к ИНТЕРНЕТ по протоколу PPP с использованием параметров, хранящихся в файле /etc/wvdial.conf

wvdialconf - осуществляет поиск модема, определяет порт, к которому он подключен, его строку инициализации и максимальную скорость передачи данных.Эта информация автоматически записывается в файл (смотри выше).Требуется доступ root.

ar - средство архивирования, предназначено для создания и распаковки архива.

arch - отображает данные об архитектуре центрального процессора.

at - ставит задания в очередь для последующего выполнения в указанное время.

atq - показывает список заданий которые поставлены в очередь на выполнение.

enscript - преобразует указанный текстовый файл в формат Post Script.Вывод может быть направлен на печать или записан в файл.

fmt - данная утилита производит форматирование каждой строки в указанном файле таким образом, что все строки имеют одинаковую ширину.

zip - архивирует и сжимает файлы.

zipnote - позволяет вывести и отредактировать комментарии к файлам из архива ZIP.

zforce - добавляет расширение .gz ко всем файлам в рабочем каталоге, или к указанному файлу, которые были сжаты, но не имеют расширения.Т.е. предотвращает повторное сжатие.

uuencode - кодирует двоичный файл для передачи по ASC11сетям.

uudecode - декодирует выше названный файл.

autorun - автоматически распознаёт все доступные приводы CDROM в системе, монтирует их при вставке диска и может запускать отдельные приложения (например проигрыватель).Для использования, необходимо добавить параметры в файл привода.

badblocks - проверить указанное устройство на наличие повреждённых секторов (указать устройство).

eject - извлекает носитель из указанного устройства.Если устройство смонтировано то команда производит размонтирование перед извлечением носителя.

e2fsck - проверяет и при необходимости восстанавливает повреждённый том файловой системы (ext2,ext3).

echo - выводит строку текста на стандартное устройство вывода.

fdformat - форматирование гибкого диска.Дополнительно вводится имя устройства и необходимый вид форматирования.

fg - переводит процесс выполняемый в фоновом режиме в приоритетный режим.

fsck - проверяет и восстанавливает файловую систему.

mount - монтирование файловой системы.

umount - отмонтирование файловой системы (в обоих командах необходимо указать, что именно).

rdev - при вызове без параметров выводит информацию о текущей файловой системе.

rename - переименовывает файлы.Очень удобно, когда много файлов.

resize - изменяет размер окна виртуального терминала в графическом окружении.

restore - восстанавливает файлы заархивированные с помощью команды dump.

runlevel - отображает текущий и предыдущий уровни выполнения.

shred - выполняет безопасное удаление файла предварительно перезаписав его содержимое на другой диск.

sleep - приостанавливает начало выполнения процесса на заданное количество секунд.

usleep - приостанавливает на микросекунды.

sync - очищает буферы файловой системы.

cmp - производит быстрое сравнение двух указанных файлов.Если они идентичны, то никакие сообщения не выводятся.

column - форматирует входной текст из указанного файла в список из пяти колонок.

diff - сравнивает два указанных текстовых файла.Каждое отличие выводится в контексте. Позволяет сравнивать каталоги.

diff3 - сравнивает три указанных файла и выводит результаты.

unzip - распаковывает и извлекает файлы из архивов , созданных утилитами ZIP

csplit - разбивает файл на несколько частей.Надо задать метод разбивки (строки и т.д.).

cp - копирует один файл в другой, или несколько файлов в каталог.

dd - копирование файла с одновременным выполнением различных, дополнительных преобразований.

dc - калькулятор.

debugfs - применяется для восстановления файловой системы (ext2,ext3) если недостаточно команды fsck.

df - показывает количество используемого и свободного дискового пространства для всех подключенных разделов файловой системы.

du - показывает количество блоков диска, занятых каждым из файлов каталога.

mc - запускает программу Midnight Commander

mkdir - создание указанного каталога.

man - справочное руководство.

mcat - копирует необработанные данные на дискету.

MSDOS

mcopy - использует отформатированную дискету MSDOS для копирования файлов в Линукс и из Линукс без предварительного подключения дискеты к файловой системе.

mdel - удаляет файл на отформатированной дискете MSDOS.

mdir - отображает содержимое каталога на дискете MSDOS.

mdu - показывает дисковое пространство занятое каталогом MSDOS.

mesg - контролирует доступ к Вашему терминалу, что бы коллеги не могли засыпать Вас сообщениями с помощью команды write

mformat - создаёт на дискете файловую систему MSDOS.

mkbootdisk - применяется в некоторых дистрибутивах, для создания загрузочной дискеты, содержащей всё необходимое для аварийной загрузки.

mktemp - создаёт уникальное имя файла для временной работы.

mlabel - создаёт метку тома на MSDOS на отформатированной дискете.

mmd - создаёт подкаталог MSDOS на отформатированной дискете.

mmount - подключает к файловой системе отформатированное устройство MSDOS.

mmove - перемещает или переименовывает файл на дискете MSDOS.

MORE

more - средство постраничного просмотра текстового файла.

mv - переименовывает или перемещает файлы или каталоги.

rm - удаление указанного файла.Можно и много удалить.

rmdir - удаление указанного пустого каталога.

safedelete - удалиние указанного файла в каталог safedelete,где он хранится некоторое время перед необратимым удалением.

stat - отображение всей доступной информации об указанном файле.

touch - изменяет время последнего доступа или изменения файла на текущее время.

undelete - восстанавливает файлы удалённые командой safedelete.

wc - показывает число строк, слов и символов в файле.

С помощью команды wc вы можете подсчитать число строк, слов и символов в указанном файле. Если указано более одного файла в командной строке, то программа wc осуществляет подсчет строк, слов и символов в каждом файле и затем выдает общее число. Вы можете с помощью ключей указать либо подсчет только строк, или только слов, или символов.

    wc имя-файла

Чтобы подсчитать число строк, слов и символов в нескольких файлах, используйте следующий формат

    wc файл1 файл2

Чтобы получить только число строк, или число слов, или число символов, выберите один из соответствующих форматов командной строки:

        wc -l файл (число строк)

wc -w файл (число слов)

wc -c файл (число символов)

 

COMPRESS & UNCOMPRESS

bunzip2 - распаковывает указанный файл на 30%быстрей чем gzip.

bzip2 - сжимает указанный файл по ускоренному алгоритму.

bzip2recover - делает попытку восстановить данные из повреждённого файла сжатого bzip2.

compress - сжимает указанный файл по другому алгоритму.

uncompress - распаковывает файл сжатый предыдущей командой.


ПРИМЕРЫ ДАННЫХ КОМАНД:

Добавление роутинга для VPN модема. Модем рассположен по адресу 192.168.10.200, а сеть доступна через сетевую карту eth0.

Код:

route add -host 10.0.21.1 gw 192.168.10.200 dev eth0

Роутинг на сеть 192.168.76-77.0-255 через роутер 192.168.10.101

Код:

route add -net 192.168.76.0 gw 192.168.10.101 netmask 255.255.254.0 dev eth0

Получение списка расшаренных папок на удаленном компьютере.

Код:

smbclient -N -L 192.168.8.129

Монтирование удаленной папки для работы с ней, как с обычным каталогом

Код:

mount -t smbfs -o iocharset=UTF8,codepage=cp866,guest,ro //192.168.8.129/Films /home/mebius/smb

Информация о таблице разбиения диска /dev/hda

Код:

fdisk -l /dev/hda

Создание пустого файла нужного размера (нужно для многих эмуляторов или работы с файлом, как с отдельной файловой системой)

Код:

dd of=hd.img bs=1024 seek=1000000 count=0

Монтирование в папку ISO образа. Любая программа после этого будет видеть эту папку, как содержимое привода. Можете смонтировать образ DVD фильма и смотреть, не мучая оптический привод.

Код:

mount -o loop /home/mebius/video/dvd.iso /home/mebius/cd

Автоматическая скачка файла по SMB/Windows Network сети. Будет работать с докачкой и при обрыве не придется начинать сначала.

Код:

smbget -r -n -u Guest 'smb://192.168.0.125/films (f)/films/Чужие из бездны (Aliens of the deep).avi' -o aliens_of_the_deep.avi

Отключение компьютера через 90 минут

Код:

shutdown -h +90

Создание ISO образа диска. Его можно потом записать снова на диск или пользоваться образом как полноценным приводом.

Код:

readcd dev=/dev/hdc f=dvd.iso

Создание ISO образа для его последующей записи.

Код:

mkisofs -allow-lowercase -iso-level 3 -l -o /home/mebius/video/dvd.iso /mnt/windows_d/video/dvd1/

Запись образа на болванку

Код:

growisofs -dvd-compat -Z /dev/hdd=/home/mebius/video/dvd.iso

Сканирование диапазона IP-адресов по порту 139 (Netbios aka шаринг папок в сети Microsoft). Покажет все доступные компьютеры не взирая на всякий маразм типа рабочих групп.

Код:

nmap -p 139 192.168.10-11.1-255

*****************************************************************

cat > file – направить стандартный ввод в file

more file – вывести содержимое file

head file – вывести первые 10 строк file

tail file – вывести последние 10 строк file

tail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк

kill pid – убить процесс с id pid

killall proc – убить все процессы с именем proc *

ps – вывести ваши текущие активные процессы

top – показать все запущенные процессы

bg – список остановленных и фоновых задач;продолжить выполнение остановленной задачи в фоне

fg – выносит на передний план последние задачи

fg n – вынести задачу n на передний план

chmod octal file – сменить права file на octal,

раздельно для пользователя, группы и для всех добавлением:

● 4 – чтение (r)

● 2 – запись (w)

● 1 – исполнение (x)

Примеры:

chmod 777 – чтение, запись, исполнение для всех

chmod 755 – rwx для владельца, rx для группы и

остальных.

ssh user@host – подключится к host как user

ssh -p port user@host – подключится к host на порт port как user

ssh-copy-id user@host – добавить ваш ключ на host для user чтобы включить логин без пароля и по ключам

grep pattern files – искать pattern в files

grep -r pattern dir – искать рекурсивно pattern в dir

command | grep pattern – искать pattern в выводе

command locate file – найти все файлы с именем file

whoami – имя, под которым вы залогинены

finger user – показать информацию о user

cat /proc/cpuinfo – информация ЦПУ

cat /proc/meminfo – информация о памяти

man command – показать мануал для command

df – показать инф. о использовании дисков

du – вывести “вес” текущего каталога

free – использование памяти и swap

whereis app – возможное расположение программы app

which app – какая app будет запущена по умолчанию

Архивация

tar cf file.tar files – создать tar-архив с именем file.tar содержащий files

tar xf file.tar – распаковать file.tar

tar czf file.tar.gz files – создать архив tar с сжатием Gzip

tar xzf file.tar.gz – распаковать tar с Gzip

tar cjf file.tar.bz2 – создать архив tar с сжатием Bzip2

tar xjf file.tar.bz2 – распаковать tar с Bzip2

gzip file – сжать file и переименовать в file.gz

gzip -d file.gz – разжать file.gz в file

------------------------------------------------

xz - это файловый формат сжатия данных с помощью алгоритма LZMA. Чтобы использовать , надо установить xz-utils.

Установка:        sudo apt-get install xz-utils

Распаковка:      tar -xpJf archive.tar.xz

------------------------------------------------

 Сеть

ping host – пропинговать host и вывести результат

whois domain – получить информацию whois для domain

dig domain – получить DNS информацию domain

dig -x host – реверсивно искать host

wget file – скачать file

wget -c file – продолжить остановленную закачку

Установка пакетов

Установка из исходников:

./configure

make

make install

dpkg -i pkg.deb – установить пакет (Debian)

rpm -Uvh pkg.rpm – установить пакет (RPM)

Команды FreeBSD

http://mediaunix.com/komandy-freebsd/           http://lib.ru/unixhelp/unixbeg.txt

Прервать выполняющуюся команду: Ctrl-c , Выйти из shell: exit      Ctl-d

Показать документацию к команде ls. Вместо ls можно подставить любую другую команду: man ls

Описание структур каталогов: man hier

Показать текущую дату и время: date

Показать продолжительность того, сколько времени включена система: uptime

Показать кто есть: w

Показать последние 10 входов: last -10

Показать директорию, в которой сейчас находимся: pwd

Перейти в директорию /usr/local/etc/: cd /usr/local/etc/

Вместо /usr/local/etc/ можно указать любую другую директорию, в которую есть доступ.

Перейти в каталог на один уровень вверх: cd ..

Перейти в свою домашнюю директорию: cd ~

Перейти в корневую директорию: cd /

Узнать размер папки: du -hsx /путь/до/папки

Показать: ls, ls -l, ls -a, ls -l filename, ls -ld directory

Создать директорию newdir в папке tmp: mkdir /tmp/newdir/; mkdir -p /tmp/newdir/subdir/

Удалить директорию /tmp/newdir/ . Вместо /tmp/newdir/ можете указать нужную вам папку:

rmdir /tmp/newdir/

Удалить не пустую директорию newdir. Вместо «newdir» у вас может быть другая папка:

rm -rd /tmp/newdir/

История команд: 

history | awk ‘{a[$2]++}END{for(i in a){print a[i] » » i}}’ | sort -rn | head

Количество активных соединений tcp: 

netstat -an|grep tcp | wc -l

Количество активных соединений udp: 

netstat -an|grep udp | wc -l

Прочитать несколько байт файла и определить тип файла: file filename

Пример 1: file /etc/rc.conf

/etc/rc.conf: ASCII English text

Пример 2: file /bin/cp

/bin/cp: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), for FreeBSD 7.1, dynamically linked (uses shared libs), FreeBSD-style, stripped

Вывести на экран содержимое файла filename: less filename

space(пробел) = следующая страница, b = предыдущая страница,

q = выйти, / = искать далее, ? = искать в предыдущем, n = повторить поиск.

Вывести на экран содержимое файла filename. -M = показывать название файла: less -Mi filename

Показать количество строк в файле filename: wc -l filename

Показать первые 5 строк файла filename (количество строк можно указать самостоятельно):

head -5 filename

Показать последние 5 строк файла filename (количество строк можно указать самостоятельно):

tail -5 filename

Показать последние 10 строк файла, подождать и показать новые линии по мере их добавления (^ C для выхода). Особенно полезно для лог-файлов: tail -f filename

Создать файл filename, если он не существует или обновить время создания, если такой файл имеется:

touch filename

Удалить файл filename: rm filename

Копировать файл filename и присвоить ему новое имя — newname: cp filename newname

Копировать файл или файлы в директорию /tmp/ ,название файлов и директорию укажите самостоятельно: cp file1 file2 … /tmp/

Копировать директорию /tmp/ в директорию /home/ ,название директорий укажите самостоятельно:

cp -R /tmp/ /home/

Перенести файл oldname в туже директорию, где он находится, но под другим названием — newname. Проще говоря, переименовать файл oldname в newname: mv oldname newname

Перенести файл или файлы в директорию /tmp/ , название файлов и директорию укажите самостоятельно: mv file1 file2 … /tmp/

Сделать жёсткую ссылку newname на файл filename: ln filename newname

Найти все файлы в директории /etc/ , или в любой другой указанной вами директории (/etc/ -для примера): find /etc/ -type f

Найти все файлы в директории /etc/, начинающиеся с rc. Вместо /etc/ и rc укажите свои данные:

find /etc/ -type f -name ‘rc*’

Читать сжатый текстовый файл, без распаковки его на диск: gzip -dc filename.gz | less

bzip2 -dc filename.bz2 | less

Показать содержимое сжатого архива: 

tar -tzf filename.tgz или .tar.gz;  tar -tjf filename.tbz2 или .tar.bz2

Извлечь содержимое архива filename.tgz в директорию /tmp/: tar -xvzf filename.tgz -C /tmp/

Извлечь содержимое архива filename.tbz2 в директорию /tmp/: tar -xvjf filename.tbz2 -C /tmp/

Извлечь содержимое архива filename.tgz в текущую директорию: tar -xvzf filename.tgz

Извлечь содержимое архива filename.tbz2 в текущую директорию: tar -xvjf filename.tbz2

Показать все процессы: ps auxw


Показать все процессы «sshd»: ps auxw | grep sshd

Постоянно показывать наиболее активные процессы (q — выход): 

top

Отправить сигнал для остановки процесса, идентификатором которого является его pid: 

kill pid

или kill -TERM pid

Послать сигнал всем процессам, чье имя «httpd»: 

killall httpd

Искать команду cp в PATH и показать, где она была найдена: which cp

Показать 20 последних введённых команд: history 20

Показать все переменные окружения: printenv

Показать одну переменную окружения ‘PATH’:  printenv PATH или echo $PATH

Переменные среды можно установить в ~/.profile для sh, ~/.bash_profile для bash, или ~/.cshrc для csh

Показать текущие uid, gid и дополнительные groups: id

Показать текущее имя пользователя: whoami

Стать root’ом (пользователь должен быть в группе «wheel»): su

Изменить uid на username: su username

Показать все учётные записи (выводится содержимое файла /etc/passwd, где они перечислены):

cat /etc/passwd

Показать все группы (выводится содержимое файла /etc/group, где они перечислены): 

cat /etc/group

Создать пользователя username;

 -m = создать домашную директорию: pw useradd username -m

Изменить свой пароль: passwd

Изменить пароль пользователя username (имеет право только root): passwd username

Добавить пользователя username в группу «wheel» (или отредактируйте /etc/group):

pw usermod username -G wheel

Удалить пользователя username; -r = удалить домашнюю директорию: pw userdel username -r

Показать все учётные записи с зашифрованными паролями: cat /etc/master.passwd

Показать при монтированные файловые системы: mount

Показать используемое и свободное место на всех при монтированных файловых системах (-h = для большей читабельности для людей, -m = если надо узнать размер в Мб):

df; df -h; df -m

Список процессов с открытыми файлами: fstat

Показать файловую таблицу: cat /etc/fstab

Показать слайсы устройства ad0: fdisk /dev/ad0

Показать статистику дисковых операций ввода/вывода каждые 2 секунды: iostat 2 gstat -I 2s

Показать список установленных пакетов: pkg_info

Показать подробное описание пакета «zip» (вместо zip укажите любой установленный у вас пакет):

pkg_info zip\*


Показать список файлов, включенных в пакет «zip»: pkg_info -L zip\*

Установить пакет foo-1.2.3.tbz: pkg_add foo-1.2.3.tbz

Установить пакет foo из FTP сервера, используемого по умолчанию: pkg_add -r foo

Установить пакет foo из альтернативного FTP сервера:

PACKAGEROOT=»ftp://ftp.freebsd. org» pkg_add -r foo

Удалить пакет foo-1.2.3: pkg_delete foo-1.2.3

Выполнять после установки пакетов, для повторного сканирования PATH. (Необходимо только если используете csh): 

rehash

Показать загруженные модули: kldstat

Загрузить модуль: kldload название_модуля

Выгрузить модуль: kldunload название_модуля

Показать все сетевые интерфейсы: ifconfig -a

Показать таблицу маршрутизации: netstat -r -n

Добавить статический маршрут по умолчанию: route add default 192.168.0.254

Отправить ping пакеты на адрес 1.2.3.4, проверка доступности хоста (^C для выхода): ping 1.2.3.4

Отправка пакетов до адреса 1.2.3.4 и отображение промежуточных найденных маршрутизаторов:

traceroute -n 1.2.3.4

Показать все пакеты, переданные и принятые на интерфейсе em0: tcpdump -i em0 -n -s1500 -X

Показать только заголовки tcp пакетов in/out на 80 порт:  tcpdump -i em0 -n tcp port 80

Открыть TCP соединение на порт 80 хоста с адресом 1.2.3.4: telnet 1.2.3.4 80

Инициализация настроек сетевых интерфейсов в /etc/rc.conf: /etc/rc.d/netif start

Инициализация настроек статических маршрутов из /etc/rc.conf: /etc/rc.d/routing start

Настройка интерфейса с пометкой «DHCP» в /etc/rc.conf: /etc/rc.d/dhclient start

Показать активные сетевые подключения: netstat -finet -n

Показать процессы слушающие на IPv4 sockets: sockstat -4 -l

Перезагрузить ОС:reboot

Выключить ПК, немедленно shutdown -p now; poweroff

Узнать погоду из консоли (должен быть установлен curl, Вместо Moscow напишите свой город):

curl -s «http://www.google.com/ig/api?weather=Moscow» | sed ‘s|.*.*|\1|’

Узнать количество установленной физической памяти: cat /var/run/dmesg.boot | grep «real memory»

Узнать переменные окружения (PATH) в языке csh (по умолчанию во FreeBSD): setenv | grep PATH

Перегрузить сеть (сетевое подключение по ssh сохранится)  /etc/rc.d/netif restart

Остановить сетевую карту: ifconfig network-interface down

здесь network-interface — это интерфейс сетевой карты, который можно посмотреть командой ifconfig

Аналогично запуск сетевой карты: ifconfig network-interface up

Получить список поднятых сетевых интерфейсов: ifconfig -u

Получить список выключенных сетевых интерфейсов: ifconfig -d

Посмотреть размер директории: du -h

Перезапустить ipfw: /etc/rc.d/ipfw restart

Информация об установленном CPU: sysctl -a | egrep -i ‘hw.machine|hw.model|hw.ncpu’

Узнать все IP-адреса сайта: host -t a google.com

Создать дамп базы mysql: mysqldump -u Логин АдминаБД -pПароль АдминаБД -B Имя БД > /путь/куда/сохранить/дамп/базы/Имя Базы.sql

Настроить дату и время на freebsd: date yymmddhhss

где: yy -сокращённо год (две последние цифры); mm -месяц; dd -день; hh -час; ss -минуты

Синхронизировать дату и время с сервером: ntpdate pool.ntp.org