CentOS
Введение
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
Скачать образ можно на сайте www.centos.org
Зеркало для загрузки 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»
Если нужно включать интерфейс при загрузке:
sudo sed -i s / ONBOOT=no / ONBOOT=yes / /etc/sysconfig/network-scripts/ifcfg-enp0s3
Узнать версию
Узнать версию установленной 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
Скачать Golang можно с сайта golang.org
После скачивания проверьте, что контрольная сумма совпадает с записанной на сайте
Совпадает со значением на сайте — посмотрите на нижнюю строку
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 это реальные терминалы
pts/0 это псевдо терминал (pseudo terminal) запущенный в исках на локально машине
pts/1 это псевдо терминал на удалённой машине с IP 192.168.56.1 с которого я подключился по ssh
В 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
/etc/centos-release — это настоящий (regular) файл а остальные — ссылки на него.
Если бы вы пользовались 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 <1..5>
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 /usr/share/doc -name ‘*.pdf’
Найти и сразу скопировать в текущую директорию
find /usr/share/doc -name ‘*.pdf’ -exec cp <> . \;
Найти в текущей директории
Удалить из текущей директории
find -name ‘*.pdf’ -delete
Найти все ссылки
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
Чтобы в CentOS изменить locale можно либо откредактирвоать файл locale.conf в /etc/ либо применить команду localect (начиная с CentOS 7)
Предположим, что нужно поменять локаль на en_us.iso88591
Откройте locale.conf и найдите строку LANG
sudo vi /etc/locale.conf
Замените UTF-8 на iso88591
Альтернативный способ с использованием sed — выполните команду
sudo sed -i s/LANG=\»en_US\.UTF-8\»/LANG=\»en_US\.iso88591\»/ /etc/locale.conf
Чтобы проверить изменения выполните
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″
Источник