Как работать в centos

Обновлено: 04.07.2024

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

Системная информация

показать мануал для command:

показать информацию о ядре:

информация о памяти:

показать инф. о использовании дисков в GB:

вывести размер текущего каталога:

использование памяти и swap:

информация версия ОС:

информация о дистрибутиве:

показать текущий аптайм:

показать пользователей онлайн:

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

Дата и время

показать текущую дату и время:

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

установить дату и время, где MM – месяц, DD – день, hh – час, mm – минуты:

вывести календарь на текущий месяц:

Процессы

вывести ваши текущие активные процессы:

найти и вывести информацию о процессе process:

показать все запущенные процессы:

список остановленных и фоновых задач:

убить процесс с id pid:

убить все процессы с именем process:

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

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

Работа с пакетами

вывести список установленных пакетов:

обновить все пакеты:

установить пакет package_name:

удалить пакет package_name:

Файлы и папки

скачать файл по адресу url:

создать символическую ссылку link к файлу file:

список файлов и каталогов:

форматированный список со скрытыми каталогами и файлами:

сменить на домашний каталог:

сменить директорию на dir:

показать текущий каталог:

удалить каталог dir:

удалить file без подтверждения:

удалить каталог dir без подтверждения:

скопировать file1 в file2:

скопировать dir1 в dir2:

скопировать dir1 в dir2 с сохранением всех прав доступа:

переименовать file1 в file2, если file2 каталог, то переместить file1 в каталог file2:

создать директорию dir:

создать древо директорий /home/user/dir:

установка прав 777 на dir:

установка прав 777 на dir и все подкаталоги рекурсивно:

задать владельца apache с группы apache для директории dir:

image

Сразу скажу я не специалист по Linux, начал изучать Linux только потому что аренда серверов под Windows в разы дороже, то есть как ни крути Linux это просто выгодно, а еще как оказалось в некоторых моментах и попроще чем Windows.

Статья написана как полное руководство по одному из возможных вариантов настройки веб сервера на CentOS от начала и до конца, со всеми подводными камнями, на устранение которых человеку не знакомому с Linux, может понадобиться много времени. Сервер предполагается на Apache+PHP+Postgres, кому нужна MySQL без труда смогут найти руководство в интернете, Postgres все таки менее популярен, а поэтому чуть посложнее. Кроме возможной пользы для других, планирую и сам пользоваться своим руководством чтобы вспомнить моменты которые напрягли при настройки CentOS и быстро разворачивать сервера на CentOS по мере необходимости, поэтому любые и советы и дополнения приветствуются!

Почему CentOS ?, тут тоже все просто так как я не работал ни с одной версией Linux, выбирал лучшую из доступных под мои требования, а требования простые раз это сервер, то нужна максимальная стабильность ну и бесплатность, а CentOS это операционная система корпоративного класса созданная на основе платной Red Hat Linux и в отличии от Fedora без всяких экспериментов только проверенные и надежные технологии от Red Hat.

Несмотря на заявленную стабильность, советую начинать изучение CentOS на локальном компе в виртуальной машине, и в качестве виртуальной машины советую Virtual Box, потому что в любимой мной VMware Workstation, CentOS умудрилась вызвать зависание всей VMware, которое я за много лет пользования VMware вообще никогда не видел и еще CentOS почему то не ставиться на VMware Workstation 9 в минимальной конфигурации, а именно в этой конфигурации (то есть просто доступ к командной строке, без всяких графических оболочек) в идеале использовать CentOS на удаленном сервере, так же с VMware возникли проблемы с установкой 64-битной версии CentOS 6.4. Конечно я уверен что все эти проблемы с VMware решаемы, но как то не хотелось разбираться еще и в этом, когда изучение самой ОС намного интереснее, просто имейте ввиду при прочих равных лучше начать изучение в Virtual Box.

Итак начнем:
Для начала советую ставить CentOS с графическим интерефейсом, дистрибутив легко отличить по самому большому размеру, основную работу все равно придется делать в окне терминала, но привычный вид рабочего стола поможет легче пережить шок от того что можно работать и без графики.
После установки CentOS и создания пользователя например Test, входить в систему нужно под пользователем root, а пароль вводить от пользователя Test, root это администратор системы и только под ним можно сделать все то что нужно для настройки нашего сервака, странная логика но это нужно знать.

Postgres
Теперь с установкой Postgres сделаем немного посложнее. В официальном репозитории CentOS, находиться старая версия Postgres 8.3, по опыту работы с postgres скажу что у меня с ней были проблемы, поэтому советую ставить более новую версию.
Оригинальное руководство на английском тут

После чего можно пробовать подключатся к базе данных из установленного не в CentOS, pgAdmin. Можно конечно поставить pgAdmin и в саму CentOS, но я думаю это лишнее, тем более для этого обязательно нужен графический интерфейс.

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

SFTP
SFTP более безопасный аналог FTP, я о нем узнал недавно но во всех нужных мне прогах его поддержка уже давно есть
Так что если вам не нужен именно FTP, советую сразу настроить передачу файлов на сервер по SFTP

Обратите внимание как примерно должна выглядеть запись о пользователе в /etc/passwd
sftpuser:x:500:500::/var/www/html:/bin/bash

в конце должна стоять запись /bin/bash
это запись говорит о том какой шелл будет доступен для sftpuser

Так же не забудьте разблокировать 22 порт в фаерволе если он заблокирован

По поводу доступа к графическому интерфейсу на удаленном сервере(на своей локальной виртуалке такой доступ не нужен) могу просто посоветовать использовать xrdp, по информации в интеренете этот доступ наиболее стабильный и быстрый, мне установили по требованию на мой хостинг и я не стал разбираться с установкой, потому что для настройки сервера вполне хватает обычной консоли которую можно получить в программе PuTTY. Я даже удивился как может быть удобна консоль советую просто попробовать, для сервака самое то, доступ к рабочему столу обычно тормозит и это раздражает, но даже если бы все было как на локальном компьютере я бы тоже использовал консоль. Графика очень полезна для начального изучения что и как, но когда быстро надо настроить сервак консоль просто лучше.

Сразу после установки любого дистрибутива Linux рекомендуется провести обновление системы.
В операционной системе CentOS, которая так же представляет собой один из дистрибутивов Linux, обновление выполняется командой

sudo yum update

Однако, сразу же после установки, результат выполнения этой команды неверный.

Обновление CentOS

В подсказке мы видим что для выполнения этой команды необходимы привилегии администратора, или как нередко говорят, необходимы root-права.

Выполнить любую команду с привилегиями администратора можно дописав в начало sudo

Обновление CentOS с привилегиями администратора

Затем вводим пароль пользователя обладающего root-привилегиями.

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

Ошибка обновления CentOS

Выясним в чем причина. Для начала проверим настройки сетевых интерфейсов. Это можно сделать с помощью команды

Проверка ip-адреса в CentOS

Выполнив ее мы видим что интерфейс с названием ens160 есть, однако, ip-адрес ему не присвоен.

Но мы точно знаем что ip-адрес должен быть присвоен интерфейсу DHCP-сервером. Проверим конфигурацию сетевого адаптера.

Для этого будем использовать встроенный в CentOS редактор vi. Файл конфигурации сетевого интерфейса называется ifcfg-ens160 и располагается в папке /etc/sysconfig/network-scripts/. Открываем его командой

Содержимое файла появится на экране

Конфигурация сетевого интерфейса

Для нас представляет интерес последняя строка ONBOOT=no. Она говорит о том что интерфейс будет неактивным после загрузки. исправив no на yes мы включим сетевой интерфейс.

Для внесения изменений в редакторе vi нужно нажать клавишу Insert на клавиатуре. Но мы увидим предупреждение системы говорящее что мы пытаемся изменить файл, который доступен только для чтения.

Файл только для чтения

Редактировать файлы сетевых интерфейсов необходимо с правами администратора, поэтому выходим из режима редактирования (клавиша Esc), нажимаем клавишу двоеточие, затем клавишу q и Enter, и снова открываем файл конфигурации сетевого адаптера, но уже с правами суперпользователя

sudo vi /etc/sysconfig/network-scripts/ifcfg-ens160

нажимаем клавишу Insert на клавиатуре, заменяем ONBOOT=no на ONBOOT=yes, нажимаем Esc, двоеточие, w, q и Enter;

Успешное сохранения настроек конфигурации сети

и теперь необходимо перезапустить сетевую службу командой

лучше сразу выполним ее с root-правами

sudo /etc/init.d/network restart

Перезапуск сети в CentOS

Выполнив команду ip a убедимся в том, что сетевой интерфейс получил адрес

Конфигурация сетевого интерфейса

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

Настройки прокси сервера изменяются в файле /etc/yum.conf, отредактируем его

sudo vi /etc/yum.conf

Нажимаем Insertm, добавляем три строчки

Настройка прокси сервера в CentOS

Выходим из режима редактирования (клавиша Esc), нажимаем двоеточие, w, q и Enter.

И вот теперь если все сделано как нужно можем обновить систему

sudo yum update

Обновление CentOS

В какой то момент система попросит подтвердить установку пакетов, отвечаем y то есть yes.

Подтверждение обновления CentOS

После загрузки всех обновлений мы получаем самую новую версию операционной системы

Установим более удобный текстовый редактор nano и файловый менеджер midnight commander.

CentOS от англ. Community ENTerprise Operating System — дистрибутив Linux, основанный на коммерческом Red Hat Enterprise Linux компании Red Hat и совместимый с ним.

Согласно жизненному циклу Red Hat Enterprise Linux (RHEL) , CentOS 5, 6 и 7 будут поддерживаться «до 10 лет», поскольку они основаны на RHEL.

Ранее версия CentOS 4 поддерживалась семь лет.

Red Hat Enterprise Linux состоит из свободного ПО с открытым кодом, но доступен в виде дисков с бинарными пакетами только для платных подписчиков.

Как требуется в лицензии GPL и других, Red Hat предоставляет все исходные коды.

Разработчики CentOS используют данный исходный код для создания окончательного продукта, очень близкого к Red Hat Enterprise Linux и доступного для загрузки.

Установка CentOS

Сайт загрузки образов CentOS 7 изображение с сайта www.andreyolegovich.ru

Зеркало для загрузки CentOS 7

Изучить как записать образ на USB карту вы можете в статье UltraISO

Подробнее про установку CentOS читайте в статье «Установка CentOS»

Изучить установку CentOS 7 на VirtualBox вы можете в статье «Установка CentOS на VirtualBox»

После установки

Рекомендую выполнить следующее

sudo yum -y update
yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel
yum groupinstall -y "Development Tools"

Если нужно включать интерфейс при загрузке:

Узнать версию

Узнать версию установленной Centos можно командой

CentOS Linux release 7.9.2009 (Core)

Или (начиная с 6-й версии)

CentOS Linux release 7.9.2009 (Core)

Начиная с CentOS 6 можно пользоваться

rpm -q centos-release

Если установить пакет redhat-lsb

\LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.9.2009 (Core) Release: 7.9.2009 Codename: Core You have new mail in /var/spool/mail/andrei [andrei@demoad

]$ lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.9.2009 (Core) Release: 7.9.2009 Codename: Core

Если достаточно только главной версии, можно использовать

Установка программ

Для начала неплохо обновить пакетный менеджер. В CentOS он называется yum

Для тихой установки используйте флаг -y

yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel

yum groupinstall -y "Development Tools"

Для установки графической оболочки используйте команду

yum groupinstall -y "X Window System" "MATE Desktop"

Добавить пользователя в группу sudo

У всех пользователей из группы wheel есть возможность выполнять команду sudo поэтому нужно стать root.

И из-под root добавить пользователя в группу wheel командой

usermod -aG wheel andrei

Снова стать пользователем можно выполнив

Настройка сети

Установка wget

sudo yum install wget

Установка Go

После скачивания проверьте, что контрольная сумма совпадает с записанной на сайте

Совпадает со значением на сайте - посмотрите на нижнюю строку

Установка образа через сеть VirtualBox изображение с сайта www.andreyolegovich.ru

sudo tar -C /usr/local -xzf go1.15.5.linux-386.tar.gz

Добавьте путь до go в PATH

Создайте рабочую директорию

Проверьте установился ли Go

Если получили что-то подобное

go version go1.15.5 linux/386

Если получили ошибку

-bash: /usr/local/go/bin/go: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Попробуйте установить glibc.i686

sudo yum install glibc.i686

Установка X

Установка и настройка X сервера ассмотрены в отдельной статье - «X Window System в CentOS»

Полезные команды

Перемещение между X и реальным терминалом (physical terminal) осуществляется нажатием правого CTRL + F2 - чтобы перейти в консоль

Правый CTRL + F1 - чтобы перейти в иксы

Чтобы узнать называние своей консоли выполните

Чтобы узнать кто подключён к системе выполните

andrei tty1 2020-11-19 11:03 (:0) andrei pts/0 2020-11-19 11:45 (:0) andrei tty2 2020-11-19 11:42 andrei pts/1 2020-11-19 11:48 (192.168.56.1)

tty1 и tty2 это реальные терминалы

В Linux всё является файлами и tty терминалы не исключение.

Или аналогичную команду

crw--w----. 1 andrei tty 136, 1 Nov 19 12:43 /dev/pts/1

Первый символ - это тип файла.

Доступно семь типов файлов: обычные, директории, символьные, блоки, сокеты, именованые каналы, символьные ссылки

- : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link

Тип c означает character. То есть этот файл может принимать и показывать символы

drwxr-xr-x. 118 root root 8192 Nov 19 11:02 /etc

Видно, что тип файла d. То есть directory

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─centos-root 253:0 0 6.2G 0 lvm / └─centos-swap 253:1 0 820M 0 lvm [SWAP] sr0 11:0 1 57.7M 0 rom /run/media/andrei/VBox_GAs_6.1.10

brw-rw----. 1 root disk 8, 0 Nov 19 11:02 /dev/sda brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Можно убедитсья, что тип файлов b. То есть block

? означает что должен быть один любой символ.

brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

[12] означает что должен быть либо символ 1 либо символ 2

brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2

Когда вы хотите узнать версию системы вы можете выполнить

ls -l /etc/system-release

lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

Тип файла l означает link то есть это не настоящий файл, а ссылка

ls -l /etc/system-release /etc/centos-release /etc/redhat-release

-rw-r--r--. 1 root root 37 Oct 23 17:53 /etc/centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/redhat-release -> centos-release lrwxrwxrwx. 1 root root 14 Nov 17 13:44 /etc/system-release -> centos-release

Если бы вы пользовались redhat то настоящим был бы redhat-release

Ещё один способ получить информацию о версии - выполнить lsb_release -d где -d означает description

Description: CentOS Linux release 7.9.2009 (Core)

Узнать где находится файл lsb_release можно командой which lsb_release. Чтобы сразу получить дополнительную информацию выполните

ls -lF $(which lsb_release)

-rwxr-xr-x. 1 root root 15929 Mar 27 2015 /usr/bin/lsb_release*

Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл исполняемый.

Чтобы узнать откуда взялся файл можно воспользоваться командой rpm с опциями q (query) и f (file)

rpm -qf $(which lsb_release)

Чтобы скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)

interactive означает, что если файл с таким имененм существует, вас спросят прежде чем затирать его

cp -i /etc/hosts .
cp -i /etc/hosts .

cp: overwrite ‘./hosts’?

Чтобы создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой mkdir с опцией p (parent)

mkdir -p sites/heiheiru
ls -l sites

total 0
drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru

Чтобы создать одновременно несколько файлов с именами идущими по порядку выполните touch с <>

touch files/file
ls -l files

-rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file5

Чтобы скопировать директорию files в директорию sites со всем содержимым выполните

cp -R files sites
ls -l sites/files/

total 0 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file5

Директория files была скопирована в директорию sites, то есть теперь у sites есть поддиректория files.

Если у вас установлен модуль tree вы можете наглядно изучить вложенность. Если нет - выполните сперва sudo yum install tree

sites └── files ├── file1 ├── file2 ├── file3 ├── file4 └── file5 1 directory, 5 files

Создать ссылку можно командой ln, символьную ссылку ln -s

Очистить терминал можно нажав CTRL + l

Изучить детали своего SSH подключения можно командой

192.168.56.1 52350 192.168.56.101 22

Сперва идут IP и порт клиента, затем IP и порт сервера

Чтобы изучить содержимое длинного тестового файла выполните

Поиск

Найти и сразу скопировать в текущую директорию

Найти в текущей директории

Удалить из текущей директории

Найти все ссылки

find /etc -type l

Найти все ссылки только на верхнем уровне вложенности

find /etc -maxdepth 1 -type l

Filesystem Size Used Avail Use% Mounted on /dev/sda1 1014M 194M 821M 20% /boot

Найти обычные файлы определённого размера

find /boot -size +20000k -type f

find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img

find /boot -size +10000k -type f

find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img

То же самое плюс показать размер файлов

find /boot -size +10000k -type f -exec du -h <> \;

find: ‘/boot/efi/EFI/centos’: Permission denied find: ‘/boot/grub2’: Permission denied 60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img 21M /boot/initramfs-3.10.0-1160.el7.x86_64.img 13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img 21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img 14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img

Изменить пароль пользователя

Чтобы в CentOS изменить пароль пользователя выполните команду passwd

]$ sudo passwd andrei

[sudo] password for andrei:
Changing password for user andrei.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

locale

Чтобы в CentOS узнать текущую locale

System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us

Список доступных локалей

aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER aa_ER.utf8 aa_ER.utf8@saaho aa_ER@saaho aa_ET aa_ET.utf8 af_ZA af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ

Выбрать только английский

localectl list-locales | grep en_US

en_US en_US.iso88591 en_US.iso885915 en_US.utf8

Список системных переменных, связанных с локалью доступен по команде

LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=en_US.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL=

Подробная информация по каждой переменной может быть получена с помощью флагов -c -k

locale -c -k LC_TIME

LC_TIME abday="Sun;Mon;Tue;Wed;Thu;Fri;Sat" day="Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday" abmon="Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec" mon="January;February;March;April;May;June;July;August;September;October;November;December" am_pm="AM;PM" d_t_fmt="%a %d %b %Y %r %Z" d_fmt="%m/%d/%Y" t_fmt="%r" t_fmt_ampm="%I:%M:%S %p" era= era_year="" era_d_fmt="" alt_digits= era_d_t_fmt="" era_t_fmt="" time-era-num-entries=0 time-era-entries="S" week-ndays=7 week-1stday=19971130 week-1stweek=7 first_weekday=1 first_workday=2 cal_direction=1 timezone="" date_fmt="%a %b %e %H:%M:%S %Z %Y" time-codeset="UTF-8"

locale -c -k LC_CTYPE

LC_CTYPE ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum";"combining";"combining_level3" ctype-map-names="toupper";"tolower";"totitle" ctype-width=16 ctype-mb-cur-max=6 charmap="UTF-8" ctype-class-offset=72 ctype-map-offset=86 ctype-indigits_mb-len=1 ctype-indigits0_mb="0" ctype-indigits1_mb="1" ctype-indigits2_mb="2" ctype-indigits3_mb="3" ctype-indigits4_mb="4" ctype-indigits5_mb="5" ctype-indigits6_mb="6" ctype-indigits7_mb="7" ctype-indigits8_mb="8" ctype-indigits9_mb="9" ctype-indigits_wc-len=1 ctype-outdigit0_mb="0" ctype-outdigit1_mb="1" ctype-outdigit2_mb="2" ctype-outdigit3_mb="3" ctype-outdigit4_mb="4" ctype-outdigit5_mb="5" ctype-outdigit6_mb="6" ctype-outdigit7_mb="7" ctype-outdigit8_mb="8" ctype-outdigit9_mb="9" ctype-outdigit0_wc=48 ctype-outdigit1_wc=49 ctype-outdigit2_wc=50 ctype-outdigit3_wc=51 ctype-outdigit4_wc=52 ctype-outdigit5_wc=53 ctype-outdigit6_wc=54 ctype-outdigit7_wc=55 ctype-outdigit8_wc=56 ctype-outdigit9_wc=57 ctype-translit-tab-size=4554 ctype-translit-default-missing-len=1 ctype-translit-ignore-len=0 ctype-translit-ignore="" map-to-nonascii=0

Список доступных локалей

Изменить locale

Предположим, что нужно поменять локаль на en_us.iso88591

Откройте locale.conf и найдите строку LANG

Замените UTF-8 на iso88591

Альтернативный способ с использованием sed - выполните команду

Чтобы проверить изменения выполните

System Locale: LANG=en_US.iso88591 VC Keymap: us X11 Layout: us

Чтобы изменить системную переменную, например, LC_CTYPE выполните

И внесите в конец файла следующий код

LC_CTYPE="en_US.iso88591" export LC_CTYPE

locale -c -k LC_CTYPE

LC_CTYPE ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum";"combining";"combining_level3" ctype-map-names="toupper";"tolower";"totitle" ctype-width=16 ctype-mb-cur-max=1 charmap="ISO-8859-1"

date

05.02.2021

directory

CentOS, Linux

comments

комментариев 5

В этой статье мы рассмотрим чистую установку с нуля и в базовую настройку сервера CentOS 8 в минимальной конфигурации.

Что нового в CentOS 8?

Рассмотрим наиболее крупные изменения в релизе CentOS 8:

  • Используется ядро Linux kernel 4.18.
  • Переход с пакетного менеджера yum на dnf. В данный момент yum существует как алиас к dnf.
  • Выполнено разделение основного репозитория на 2 — это BaseOS и AppStream. Сделано это для того, чтобы у пользователя появилась возможность устанавливать разные версии пакетов на сервер. BaseOS работает как и раньше.
  • Обновилось все ПО, в том числе и ядро. В базовом репозитории теперь устанавливается php версии 7.2 (наконец-то).
  • Замена iptables на nftables. Лично я пока еще со вторым не работал напрямую, поэтому не могу сказать, хорошо это или плохо. Единственный момент, если нужно будет переносить какие-то проекты на новую ОС, придется разбираться с правилами, так как есть сервера с чистым iptables.
  • network-skripts не используются по умолчанию для настройки сети, теперь управления сетью возложено на Network Manager.
  • По умолчанию устаналивается веб-интерфейс управления сервером cockpit (удобно для новичков).
  • Для управления контейнерами используется podman (вместо docker и mobdy).
  • Новая версия стека TCP/IP 4.16 с улучшенной производительностью и поддержкой алгоритмов контроля BBR и NV.
  • Новые версии дситрибутивов:

Установка CentOS 8 с помощью ISO-образа

В рекомендуемых требования указано, что для установки CentOS 8 необходимо минимум 10 Гб места на диске и 512 Мб RAM на одно ядро процессора

Перезапустив виртуальную машину с примонтированным образом, я вошел в VNC-консоль. Первым шагом, вам будет предложено выбрать дальнейшие действия. Так как вы выполняем установку, нам интересен первый пункт меню:

Выбрав его, у вас запустится процесс установки:

запуск установки centos 8

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

И когда черный экран сменится на интерактивный с логотипом CentOS, пора брать в руки мышь и клавиатуру.

язык установки centos 8

параметры установки centos 8

Для запуска установки, обязательно настроить только один пункт “Installation Destination”, там вы указываете разбивку диска, но я предпочитаю так же, сразу настроить сеть и дату со временем.

выбор часового пояса в centos

В зависимости от вашего часового пояса, вы устанавливаете свои параметры, для меня это Москва.

Чтобы настроить сеть, переходим в пункт “Network & Host Name”

настройка сети при установке centos 8

В поле “Host Name” указываем имя сервера и для конфигурации сетевых интерфейсов нажимаем “Configure”

автоматически подключать сеть

В главной вкладке, нужно отметить галочкой “Automatically connect to this network when it is available”, это нужно для того, чтобы сетевой интерфейс поднимался автоматически.

Перейдите во вкладку “IPv4 Settings” (либо IPv6 если вы используете данный протокол) настройте IP-адрес, маску подсети и шлюз:

задать статический ip адрес при установке centos 8

Для ввода конкретного IP, нужно выбрать метод “Manual” и нажать кнопку “Add”, после чего у вас появится возможность ввести нужные данные. Сохранив все, мы вернемся к начальному окну настроек сети

сеть в centos подключена

Как можно увидеть на скриншоте, IP адрес добавился и сетевой интерфейс уже поднят (состояние Connected).

Следующим шагом мы перейдем к разбивке диска:

настройка диска при установке centos 8

Для примера установки я воспользовался автоматической разбивкой от разработчиков CentOS. Если вы хотите разбить диск по-своему, нужно выбрать пункт “Custom”.

Если контроллер вашего сервера не поддерживает аппаратный RAID, в этом пункте меню вы можете собрать программный RAID из дисков сервера на базе mdadm .

Так как на моей виртуальной машине, ранее была установлена ОС, система установки увидела это. Я удалил разделы предыдущей операционной системы в последующих открывающихся меню:

очистка разделов на диске при установке centos 8

reclaim disk space

Удалить разделы можно кнопкой “Delete all”, после чего потребуется нажать кнопку “Reclaim space”, чтобы размер дискового пространства стал актуальным.

Список пакетов для установки выбирается в пункте Software Selection. Если вы планируете использовать CentOS 8 в качестве сервера, достаточно выбрать Minimal Install, а из добавлений Standard и Guest Agents (если вы ставите гостевую ОС в виртуальной машине).

После вышеописанных действий, можно запускать установку кнопкой “Begin Installation”

начать установку centos 8

В процессе уже самой распаковки и установки необходимых компонентов, вам потребуется указать пароль для root-пользователя и можно создать дополнительного пользователя, но это не обязательный пункт.

задать пароль root и создать новаых пользователей при установке centos 8

Нажмите на кнопку “Root Password”, введите и повторите пароль и нажмите “Done”, чтобы вернуться к установке:

пароль root

перезагрузка сервера после устаноовки centos 8

На этом установка CentOS 8 завершена.

Базовая настройка CentOS 8 после установки

Базовая настройка CentOS 8 практически не отличается от настройки CentOS, я делаю базовые настройки одинаковые на всех серверах.

CentOS 8: Установка обновлений и инструментов администратора

Как уже отмечалось ранее, в CentOS 8 на замену yum, пришел dnf.

Dnf – это следующее поколение приложения YUM, менеджер пакетов для дистрибутивов Linux на основе RPM-пакетов. Ранее dnf использовался в дистрибутивах Fedora, а теперь и в CentOS 8.

Первое действие, которое я выполняю на вновь установленном сервере, это обновление системы:

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

Если у вас обнаружатся обновления, обязательно их установите.

Следующим шагом, подключим репозиторий EPEL и установим необходимые утилиты для удобного администарирования сервера:

dnf install epel-release -y
dnf install mc wget screen nano net-tools bind-utils curl lsof vim -y

Мне для комфортного администрирования хватает этого набора утилит, вы можете установить свои привычные утилиты.

Автоматическое обновление системы я не включаю, так как всегда устанавливаю необходимые обновления вручную. Если вы хотите настроить автоматическое обновление, установите пакет dnf-automatic:

dnf install -y dnf-automatic

Чтобы проверить активные задания на обновления системы введите:

systemctl list-timers *dnf-*

Отключение SELinux

На начальном этапе я всегда отключаю SELinux (для применения изменения нужно перезагрузить сервер):

Отключение SELinux налету, можно выполнить командой:

Настройка сети в CentOS 8

Так как сеть я настроил на этапе установки системы, настройка ее в данный момент не требуется (подробная статья по настройке сети в CentOS). Хочу лишь сказать, что в CentOS 8, сеть управляется только через Network Manager и утилиту nmcl. Network-scripts по умолчанию не поддерживаются. Если честно, в своей работе я всегда отключал NM и не использовал, для меня это не удобный инструмент, теперь придется разбираться и с ним.

Проверка статуса сети:

Установка и смена hostname

Если вы не задали корректный hostname сервера при установке или просто хотите изменить, это можно выполнить несколькими способами. Измените его в файле /etc/hostname или поменяйте с помощью команды:

hostnamectl set-hostname нужный_хостнейм

Настройка firewalld в CentOS 8

Настройка времени и часового пояса (time-zone)

Чтобы посмотреть текущее время и time-zone, нужно ввести команду date:

Мы указали time-zone при установке самой системы, поэтому у нас время по Москве. Чтобы поменять time-zone, нужно воспользоваться соответствующей командой:

timedatectl set-timezone Europe/Moscow

Где вместо Europe/Moscow вы можете указать свой вариант, например:

Настройка истории команда в bash_history

Для удобного просмотра истории, я всегда добавляю пару строк в .bashrc, чтобы в последствии можно было легко ориентироваться в отчетах.

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

То есть мы видим, что выполнялось на сервере, но не видим время и точную дату, для меня это критично, так как доступ к серверам могут иметь несколько специалистов. Поэтому приведем history к приятному виду:

Откроем файл /root/.bashrc и добавим в него нужные строки:
nano /root/.bashrc

Теперь при проверке history, мы видим точное время выполнения той или иной команды:

Cockpit: Веб-интерфейс управления сервером в CentOS 8

Как мы уже упоминали, в CentOS 8 предустановлен веб-интерфейс управления сервером cockpit. Он также управляется через systemctl. Вы можете запустить его и добавить в автозгрузку:

По–умолчанию веб сервер Cockpit слушает на порту 9090. Добавьте этот порт в разрешенные:

Cockpit - веб интерфейс управления сервером centos 8

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

На этом моя типовая настройка CentOS сервера закончена, далее я выполняю настройки согласно технического задания по различным проектам и обычно они отличаются.

Читайте также: