Команды терминала
Brian_Kernighan_Dennis_Ritchie-«Язык программирования Си»
UNIX_Системное программирование
Команды терминала
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
История команд:
![](https://www.google.com/images/icons/product/drive-32.png)
Удаление и вставка фрагментов команд:
Команды перемещения по командной строке:
Инкрементальный(пошаговый) поиск:
После нажатия комбинации клавиш 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 Дополнение наиболее подходящим окончанием
META-Tab Дополнение на основе фраз из истории команд (поскольку роль модифи-катора META часто исполняет клавиша ALT, а комбинация ALT-Tab обычно используется графической средой для вызова этой команды рекоменду-ется использовать последовательность нажатий Esc, Tab).
Дополнение с помощью 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
Имя команды ls
Ключ/модификатор -a(-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 выведет информацию только по указанным файлам.
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 Направляет стандартный поток вывода в указанный файл (режим присоединения, например дописать файл)
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>, если задана команда, но не задан шаблон, обрабатываются все строки, если задан только шаблон, соответствующие строки выводятся без обра-ботки.
Системные команды
last -10 - показать последние 10 входов
uname - сведения о системе, без ключа - ядро, -а вся информация
id - uid=100(user) gid=10(staff)
whoami - имя, под которым вы залогинены
reboot - перезагрузка системы
poweroff - выключение компьютера
reset,clear - очищает окно терминала (Ctr+l)
sync - очищает буферы файловой системы.
passwd - сменить свой пароль, а суперпользователю - поменять пароль любого пользователя
users - отобразить список пользователей, вошедших в систему. (w, who)
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
Управление процессами
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:
![](https://www.google.com/images/icons/product/drive-32.png)
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:
-t требует выдавать информацию только о сокетах TCP.
-l требует выдавать информацию только о прослушиваемых сокетах.
-n требует не выполнять обратный поиск по IP.
-p требует выдавать PID и имя программы, которой принадлежит сокет (требуются права root).
$ ~ 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
Dpkg -- менеджер пакетов Debian
5.4. Работа с пакетами при помощи dpkg
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, возможность была добавлена в
/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