Базовые утилиты

Вводные команды

  • pwd - print working directory

[admin@centos8 ~]$ pwd
/home/admin
  • whoami

[admin@centos8 ~]$ whoami
admin
  • ls - отображает список директорий и файлов в текущем местоположении

    • ls -l (long) - показывает подробности

[admin@centos8 ~]$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos
[admin@centos8 ~]$ ls -l
total 0
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Desktop
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Documents
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Downloads
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Music
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Pictures
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Public
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Templates
drwxr-xr-x. 2 admin admin 6 Jan  7 12:39 Videos
  • ip address show

[admin@centos8 ~]$ ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:61:08:90 brd ff:ff:ff:ff:ff:ff
    inet 172.16.249.128/24 brd 172.16.249.255 scope global dynamic noprefixroute ens160
       valid_lft 1309sec preferred_lft 1309sec
    inet6 fe80::6235:5dcc:dfe0:2c4a/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:9e:76:44 brd ff:ff:ff:ff:ff:ff
  • free - покажет утилизацию памяти

    • free -m(megabytes)

admin@centos8 ~]$ free
              total        used        free      shared  buff/cache   available
Mem:        1846460     1192596      110776       16788      543088      476192
Swap:       2097148       10240     2086908

[admin@centos8 ~]$ free -m
              total        used        free      shared  buff/cache   available
Mem:           1803        1194          63          16         545         435
Swap:          2047          10        2037
  • df(disk free) - показывает утилизацию дисков

    • df -h(human readable)

[admin@centos8 ~]$ df
Filesystem          1K-blocks    Used Available Use% Mounted on
devtmpfs               905136       0    905136   0% /dev
tmpfs                  923228       0    923228   0% /dev/shm
tmpfs                  923228    9912    913316   2% /run
tmpfs                  923228       0    923228   0% /sys/fs/cgroup
/dev/mapper/cs-root  17811456 4880792  12930664  28% /
/dev/nvme0n1p1         999320  146508    784000  16% /boot
tmpfs                  184644    1180    183464   1% /run/user/42
tmpfs                  184644    6948    177696   4% /run/user/1000

[admin@centos8 ~]$ df -h
Filesystem           Size  Used Avail Use% Mounted on
devtmpfs             884M     0  884M   0% /dev
tmpfs                902M     0  902M   0% /dev/shm
tmpfs                902M  9.7M  892M   2% /run
tmpfs                902M     0  902M   0% /sys/fs/cgroup
/dev/mapper/cs-root   17G  4.7G   13G  28% /
/dev/nvme0n1p1       976M  144M  766M  16% /boot
tmpfs                181M  1.2M  180M   1% /run/user/42
tmpfs                181M  6.8M  174M   4% /run/user/1000
  • cat - показывает содержимое файлов

[admin@centos8 ~]$ ls /etc/hosts
/etc/hosts
  • findmnt - показывает все смонтированные файловые системы

[admin@centos8 ~]$ findmnt
TARGET                                SOURCE     FSTYPE    OPTIONS
/                                     /dev/mapper/cs-root
│                                                xfs       rw,relatime,seclabel,attr2,inode64,noquot
├─/sys                                sysfs      sysfs     rw,nosuid,nodev,noexec,relatime,seclabel
│ ├─/sys/kernel/security              securityfs securityf rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup                    tmpfs      tmpfs     ro,nosuid,nodev,noexec,seclabel,mode=755
│ │ ├─/sys/fs/cgroup/systemd          cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/memory           cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/blkio            cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/freezer          cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/cpuset           cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/cpu,cpuacct      cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/rdma             cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/devices          cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/perf_event       cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ ├─/sys/fs/cgroup/hugetlb          cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ │ └─/sys/fs/cgroup/pids             cgroup     cgroup    rw,nosuid,nodev,noexec,relatime,seclabel,
│ ├─/sys/fs/pstore                    pstore     pstore    rw,nosuid,nodev,noexec,relatime,seclabel
│ ├─/sys/fs/bpf                       bpf        bpf       rw,nosuid,nodev,noexec,relatime,mode=700
│ ├─/sys/fs/selinux                   selinuxfs  selinuxfs rw,relatime
│ ├─/sys/kernel/debug                 debugfs    debugfs   rw,relatime,seclabel
│ ├─/sys/kernel/config                configfs   configfs  rw,relatime
│ └─/sys/fs/fuse/connections          fusectl    fusectl   rw,relatime
├─/proc                               proc       proc      rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc          systemd-1  autofs    rw,relatime,fd=29,pgrp=1,timeout=0,minpro
├─/dev                                devtmpfs   devtmpfs  rw,nosuid,seclabel,size=905136k,nr_inodes
│ ├─/dev/shm                          tmpfs      tmpfs     rw,nosuid,nodev,seclabel
│ ├─/dev/pts                          devpts     devpts    rw,nosuid,noexec,relatime,seclabel,gid=5,
│ ├─/dev/mqueue                       mqueue     mqueue    rw,relatime,seclabel
│ └─/dev/hugepages                    hugetlbfs  hugetlbfs rw,relatime,seclabel,pagesize=2M
├─/run                                tmpfs      tmpfs     rw,nosuid,nodev,seclabel,mode=755
│ ├─/run/user/42                      tmpfs      tmpfs     rw,nosuid,nodev,relatime,seclabel,size=18
│ └─/run/user/1000                    tmpfs      tmpfs     rw,nosuid,nodev,relatime,seclabel,size=18
│   └─/run/user/1000/gvfs             gvfsd-fuse fuse.gvfs rw,nosuid,nodev,relatime,user_id=1000,gro
├─/boot                               /dev/nvme0n1p1
│                                                ext4      rw,relatime,seclabel
└─/var/lib/nfs/rpc_pipefs             sunrpc     rpc_pipef rw,relatime

Bash Shell

  • Оболочка по-умолчанию для взаимодействия с системой

  • Имеет ряд полезных команд и функций

    • использование табуляции дописывает команды автоматически при наличии совпадения с введенными символами

    • history - отображает список ранее введенных команд

      • ! <номер пункта> - повторит данную команду

      • !f - ввод последней команды, начинавшейся с "f"

      • Ctrl+R откроет reverse search, в котором по вводу можно также повторить команду

    • piping - использование знака "|" позволяет изменить вывод команды необходимым образом

      • | less - упрощенный вывод

      • | wc - word count - количество строк, слов и символов

    • redirection - перенаправление вывода команды

      • STDOUT - используется ">", например ls /home > /home/output.txt (при каждом следующем редиректе содержимое перезаписывается)

      • STDOUT - ">>" - дополняет содержимое файла при редиректе

      • STDERR - "2>" - редирект ошибок, возникаемых при вводе, их можно отправлять в /dev/null, то есть сбрасывать

    • environment variables - переменные, имеющиеся в системе

      • выводятся командой "env | less"

      • ввод переменной их этого списка позволяет быстро менять какой-либо параметр системы

    • alias - команда-псевдоним, назначаемая для группы команд

      • "alias h=history" позволит запускать команду "history" по вводу только "h"

    • script - последовательный запрограммированный ввод команд в оболочке

Иерархия файловых систем

  • Назначение директорий в Linux стандартизировано

  • Стандартом является FHS (Filesystem Hierarchy Standard), разработанный Linux Foundation

  • Стартовая точка система - корневая директория (root)

  • Различные устройства могут быть интегрированы в FHS посредством монтирования

  • man hier отобразит справку по иерархии системы

Использование man

  • man - (manual) - утилита для получения справочной информации по пользованию системой

  • man man отобразит главное окно утилиты

MAN(1)                                            Manual pager utils                                           MAN(1)

NAME
       man - an interface to the on-line reference manuals

SYNOPSIS
       man  [-C  file]  [-d]  [-D]  [--warnings[=warnings]] [-R encoding] [-L locale] [-m system[,...]] [-M path] [-S
       list] [-e extension] [-i|-I] [--regex|--wildcard] [--names-only] [-a]  [-u]  [--no-subpages]  [-P  pager]  [-r
       prompt] [-7] [-E encoding] [--no-hyphenation] [--no-justification] [-p string] [-t] [-T[device]] [-H[browser]]
       [-X[dpi]] [-Z] [[section] page[.section] ...] ...
       man -k [apropos options] regexp ...
       man -K [-w|-W] [-S list] [-i|-I] [--regex] [section] term ...
       man -f [whatis options] page ...
       man -l [-C file] [-d] [-D] [--warnings[=warnings]] [-R encoding] [-L locale] [-P pager] [-r prompt]  [-7]  [-E
       encoding] [-p string] [-t] [-T[device]] [-H[browser]] [-X[dpi]] [-Z] file ...
       man -w|-W [-C file] [-d] [-D] page ...
       man -c [-C file] [-d] [-D] page ...
       man [-?V]

DESCRIPTION
       man  is the system's manual pager.  Each page argument given to man is normally the name of a program, utility
       or function.  The manual page associated with each of these arguments is then found and displayed.  A section,
       if  provided,  will direct man to look only in that section of the manual.  The default action is to search in
       all of the available sections following a pre-defined order ("1 1p 8 2 3 3p 4 5 6 7 9 0p n l p o 1x 2x  3x  4x
       5x 6x 7x 8x" by default, unless overridden by the SECTION directive in /etc/man_db.conf), and to show only the
       first page found, even if page exists in several sections.
 Manual page man(1) line 1 (press h for help or q to quit)
  • /<текст для поиска> - поиск заданного текста в мануалах

       The table below shows the section numbers of the manual followed by the types of pages they contain.

       1   Executable programs or shell commands
       2   System calls (functions provided by the kernel)
       3   Library calls (functions within program libraries)
       4   Special files (usually found in /dev)
       5   File formats and conventions eg /etc/passwd
       6   Games
       7   Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
       8   System administration commands (usually only for root)
       9   Kernel routines [Non standard]

       A manual page consists of several sections.
  • Страницы мануала часто имеют примеры настройки команд

[admin@centos8 ~]$ man lvcreate

LVCREATE(8)                                    System Manager's Manual                                    LVCREATE(8)

NAME
       lvcreate - Create a logical volume

SYNOPSIS
       lvcreate option_args position_args
           [ option_args ]
           [ position_args ]

        -a|--activate y|n|ay
           --addtag Tag
           --alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit
        -A|--autobackup y|n
        -H|--cache
           --cachemetadataformat auto|1|2
  • Для справки характерны общие принципы, по которым формируется примеры ввода команд

    • [OPTION] - опциональная часть команды

    • ... - опции можно вводить последовательно

    • [FILE] - директория для выполнения

    • y|n - требуется подтверждение ввода

  • Разделы мануала:

    • Имя (NAME)

    • Синопсис (SYNOPSIS)

    • Описание (DESCRIPTION)

    • Использование (USAGE)

    • Примеры (EXAMPLES)

    • Прочее (SEE ALSO)

    • и другие в зависимости от функциональности описанной программы

  • Все страницы мануалов индексируются в mandb

    • man -k или apropos позволяет осуществить поиск по ключевому слову в mandb

    • вывод можно также отфильтровать grep

    • mandb автоматически строится по cron

    • вручную ребилд можно запустить через mandb

Vim

  • VisualIMproved

  • Редактор по-умолчанию в системе, используемый в том числе многими командами

  • Vim является улучшенной версией vi

  • Vim имеет два режима: command mode и input mode

  • При запуске программы предлагается командный режим

  • Для перехода к вводу необходимо ввести "a" или "i"

    • В левом нижнем углу появится обозначение режима INSERT

  • Выйти в командный режим необходимо через "Escape"

  • "o" запустит ввод с новой строки

  • ":wq!" - выйти из vim при нахождении в командном режиме

    • "!" обозначает, что выход без каких-либо подтверждений

    • ":q!" - выход без сохранения

  • "dd" - удаление строки

  • "d$" - удалит ввод после курсора

  • "yy" - копирование текущей строки

  • "p" - вставка из буфера

  • "v" - visual mode

    • "gg" - курсор в начало документа

    • "G" - курсор в конец документа

  • "u" - откатить изменения

  • "Ctrl-r" - перейти на шаг вперед

  • "/text" - поиск текста text

    • "?text" - поиск в направлении назад

  • "^" - переход в начало текущей строки

  • "$" - переход в конец текущей строки

  • ":%s/old/new/g" - замена текста "old" на "new" глобально (без "g" будет заменено только первое совпадение)

Глоббинг

  • Globbing - функционал шелла для подстановки имен файлов

  • Не являются регулярными выражениями

  • Мануалы находятся в man 7 glob

  • ls host* - найти файлы, которые начинаются с host

  • ls ?ost - найти файлы, которые заканчиваются на ost

  • ls [hm]ost - найти файлы, которые начинаются на h или m и имеют ost в названии

  • ls [!hm]ost - найти файлы, которые не начинаются на h или m

  • ls script[0-9][0-9] - найти файл, который заканчивается на две любые цифры

Cockpit

  • Является веб-сервисом для администрирования системы и мониторинга ресурсов

  • Первоначальная настройка осуществляется разрешением в systemctl сервиса

    • Требуется ввод пароля администратора

[admin@centos8 ~]$ systemctl enable --now cockpit.socket
Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /usr/lib/systemd/system/cockpit.socket.
  • Проверка статуса

[admin@centos8 ~]$ systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor preset: disabled)
   Active: active (listening) since Sun 2020-02-16 16:57:50 MSK; 2min 14s ago
     Docs: man:cockpit-ws(8)
   Listen: [::]:9090 (Stream)
  Process: 8382 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=exited, status=0/SUCCESS)
  Process: 8372 ExecStartPost=/usr/share/cockpit/motd/update-motd  localhost (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 11313)
   Memory: 1.8M
   CGroup: /system.slice/cockpit.socket

Feb 16 16:57:50 centos8 systemd[1]: Starting Cockpit Web Service Socket.
Feb 16 16:57:50 centos8 systemd[1]: Listening on Cockpit Web Service Socket.
  • Дальнейшая эксплуатация осуществляется в браузере по порту, указаному в статусе LISTEN

Last updated