Linux 1: Введение

Linux (Линукс) – операционная система, которая является на сегодняшний день фактически единственной альтернативой Windows.

К сожалению, большинство пользователей (в том числе и я) уже очень сильно привыкли к Windows. Теперь воспринимать другие операционные системы очень сложно.

Linux 2: Немного теории

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

В основе всего лежит Ядро (Kernel) – это мозг операционной системы Linux. Оно управляет аппаратными средствами и позволяет им взаимодействовать с приложениями.

Полный дистрибутив (Distribution) Linux включает в себя ядро и несколько программных средств для файловых операций, управления учетными записями пользователей и управления пакетами программ. Различные дистрибутивы Linux могут быть основаны на разных версиях ядра.

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

Я начал знакомство с линуксом установив CentOS – это популярная бесплатная альтернатива Red Hat Enterprise Linux (RHEL).

Выглядит Linux как командная строка, но есть вариант установить графическую оболочку, которая сделает Linux похожим на винду. Это, конечно, поможет неопытному пользователю ориентироваться в устройстве примерно так же как в Windows, но я не смог выбрать какую из графических оболочек хотел бы видеть у себя. В итоге оставил командную строку.

Теперь о том, как там всё устроено:

В Linux всё, включая процессы, устройства и сетевые сокеты, представлено в виде файлов-объектов, и обычно с ними можно работать как с обычными файлами.

Юзер суперадмина называется “root”. Он может всё. Поэтому работать лучше не из под рута, а использовать sudo, когда это требуется. Если написать перед любой командой sudo, то она будет выполнена от имени рута, если вы, конечно, введёте правильный пароль.

Программы, запускаемые системой и работающие в фоновом режиме, называются демонами. Запускаются они во время загрузки системы.

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

Установка программ в Linux осуществляется абсолютно по-другому:

 

  • Установка из репозитория – специальная команда сама скачается и установится, если она, конечно, есть в репозитории; Если её там нет, то можно поискать другой репозиторий;
  • Установка из файла – если файлу дать права на исполнение, а потом запустить его, то он тоже может вам что-то установить. Этот способ уже опаснее, так как вы не знаете что именно там установится;
  • Компиляция – некоторые программы выложены в виде открытого кода, который нужно скачать и скомпилировать.

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

Также стоит знать, что на Линуксе не работают некоторые важные программы (фотошопы, автокады, многие игры), но для этого есть Wine. Это альтернативная реализация Windows API для запуска 16-, 32- и 64- битные приложений Microsoft Windows на UNIX-подобных системах.

Linux 3: Установка

Давайте теперь установим нашу первую ОС Linux.

Так как ставить Linux на свой домашний пк я ещё не готов, то для начала установлю на свой Windows 7 программу для виртуализации.

Мой выбор пал на бесплатный VirtualBox, а его подготовка описывается мной в другой статье.

Далее выбираем дистрибутив Линукса. Я, возможно, сделаю глупость, но я выбираю CentOS, образ которого качаем отсюда. Я выбрал минимальный, что бы меньше ждать. Если есть возможность – качайте DVD ISO, что бы не заморачиваться с репозиторием.

Далее монтируем образ и начинается установка Linux.

Первым делом нас просят указать язык. Я выбираю русский.

Далее перед нами основное окно настроек.

Время пока можно не трогать – его настроим позже.

Язык мы уже выбрали.

В настройках клавиатуры можно выбрать приоритет раскладки и сочетание клавиш для смены раскладки, но меня всё устраивает и так.

Далее рекомендуют настраивать “Сеть и имя узла”.

По умолчанию сеть отключена, для её включения необходимо нажать на переключатель, который находится в верхнем правом углу экрана. Если в вашей сети есть DHCP-сервер, то все сетевые настройки подхватятся из него, также из DNS определится имя хоста. Если же DHCP-сервера нет, то сеть опять перейдёт в состояние «Отключено», в таком случае все сетевые настройки необходимо будет вводить вручную.

Я нажал кнопку “Настроить” и в открывшейся вкладке «Ethernet» в поле Device выбрал второй пункт, где eth0 прописано вместе с MAC-адресом.

Во вкладке «Общий» разрешил «Автоматически подключаться к этой сети, когда она доступна».

После этого рекомендуют вернуться к настройке “Даты и времени” и включить “Сетевое время”. Я сделал это.

Так как я скачал образ “минимальной установки, то и устанавливать буду минимальную установку. Я всё равно ещё не решил для чего именно буду использовать эту ОС.

Если же вам интересно посмотреть на другие варианты, то можете скачать полный образ (DVD ISO) или, подключив сеть, нужно зайти в  “Источник установки” и выбрать “В сети”, после чего указать ссылку на основной репозиторий.

Честно говоря я понятия не имею что значит “ссылка на основной репозиторий”, но со второго раза я угадал что нужно туда подставить. В моём случае это ссылка mirror.logol.ru/centos/7/os/x86_64/

Как я получил её? Я зашёл на сайт https://www.centos.org/download/ нажал на DVD ISO, а потом исправил ссылку вот так:

репозиторий

Далее перейдём к настройке пункта “Расположение установки”:

Выбираем нужный жесткий диск и нажимаем “Я настрою разделы” в блоке “Разбиение”. Кликаю полюбившуюся нам кнопку “Готово”.

В новом окне по настройке разделов нажимаем “Создать их автоматически” и исправляем на своё усмотрение.

Настройка политики безопасности и kdump

Начиная с версии CentOS 7.2 у нас появился ещё один пункт настроек в инсталляторе. Появилась группа «Security», а в ней пункт «Security Policy». Сейчас там светится надпись «No profile selected». Нажмём на этот пункт. Для настройки «security policy» выбираем пункт «Standard System Security Profile» и нажимаем на кнопку «Select profile». Затем нажимаем на кнопку «Готово».

В графе “KDUMP” можно этот KDUMP отключить. Я отключил, так как мне это не нужно, а он собирался кушать 128 мб оперативки.

После всех этих настроек я, наконец-то, могу нажать кнопку “Начать установку”, но тут снова появляется окно, которое просит нас задать пароль для рута и создать другого пользователя.

Я сделал и то, и другое, но это можно настроить позже.

Теперь перейдём к первичной настройке нашего стенда.

Подключение к терминалу по SSH

Как правило, к серверу подключаются по SSH, а не напрямую работают на машине. У серверов, собственно говоря, обычно даже монитора нет, что бы работать напрямую.

Для подключения используется программа PuTTY.

Подключение к удалённому серверу

Открываете PuTTY и в “Host name” вписываете IP сервера. Порт обычно 22, если не был задан другой.

Далее вводим логин и пароль – всё просто.

Подключение к локальному серверу

Теоретически всё должно быть аналогично.

Открываете PuTTY, в “Host name” вписываете IP сервера. С портом всё аналогично: по-умолчанию 22.

Если вы не знаете IP своего локального сервера, то наберите в командной строке линукса ifconfig . Если это не помогло, выполняем yum install net-tools (команда для Centos). Такое бывает, если в установленной версии не оказалось нужного пакета. После этого пакет с ifconfig установится и будет работать.

Первоначальная настройка linux

Вот наконец-то мы установили выбранный дистрибутив и попали в командную строку.

Если вы купили или арендовали сервер с установленной операционной системой, то начинаем работать тоже отсюда.

Перед нами наконец-то командная строка, которая требует ввести имя пользователя и пароль.

SUDO

Самое первое, что вам предстоит – это узнать о том, что работать из под рута не принято.

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

Принцип работы таков, что перед каждой командой, которая требует прав рута, вам нужно писать sudo и вводить пароль.

В случае, когда мы сами разворачиваем виртуалку, то вам придётся самостоятельно создать этого пользователя:

  • adduser admin – создаём пользователя admin
  • passwd admin – задаём пароль для пользователя admin
  • yum install sudo – установка sudo
  • visudo – открываем sudo в стандартном текстовом редакторе
  • Ищем в тексте строку “root    ALL=(ALL)       ALL”
  • Добавляем следующей строкой “admin   ALL=(ALL)       ALL” (Для того, что бы начать вводить текст в выбранном месте нажмите i. Для сохранения результата нажмите Esc. Дажее нажмите Shift+W, потом, Shift+Q и когда увидите внизу двоеточие введите туда wq)

В случае с арендой сервера вам может сразу не выдаваться доступ к пользователю root.

Обновление ядра

Очень важно, что бы на сервере было обновлённое ядро. Команда:

sudo yum update

Обновлять ядро требуется время от времени. Помните об этом.

Текстовый редактор

Не люблю стандартный рекдактор и рекомендую установить что-нибудь другое. Множество админов любят “nano”, но мне по душе mcedit.

Этот редактор устанавливается вместе с Midnight Commander (MC):

sudo yum install mc 

Смена редактора файлов по умолчанию на встроенный в Midnight Commander редактор MCedit:

export EDITOR=mcedit

Проверить какой редактор сейчас:

echo $EDITOR

MC, кстати, удобный файловый менеджер, поддерживающий все основные операции с файлами: копирование, перемещение, архивация, изменение прав доступа, создание ссылок, каталогов и другие. Как раз для тех, кто пока не запомнил основные команды.

Locale

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

Для этого введите команду locale и если там английский, то его можно сменить для удобства. Команда для смены:

sudo localectl set-locale LANG=ru_RU.UTF8

Изменения вступят в силу после перезагрузки.

Iptables

iptables – это фаервол для линукса.

Разбираюсь с настройкой.

 

 

Клавиатурные сочетания
Ctrl+C – завершить текущую команду
Ctrl+Z – остановить текущую команду, продолжть с fg
на переднем плане или bg в фоне
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку
!! – повторить последнюю команду
Alt+Insert – вставить
exit – разлогиниться

Файловые команды
ls – список файлов и каталогов
ls -al – форматированный список со скрытыми
каталогами и файлами
cd dir – сменить директорию на dir
cd – сменить на домашний каталог
pwd – показать текущий каталог
mkdir dir – создать каталог dir
rm file – удалить file
rm -r dir – удалить каталог dir
rm -f file – удалить форсированно file
rm -rf dir – удалить форсированно каталог dir *
cp file1 file2 – скопировать file1 в file2
cp -r dir1 dir2 – скопировать dir1 в dir2; создаст
каталог dir2, если он не существует
mv file1 file2 – переименовать или переместить file1
в file2. если file2 существующий каталог – переместить
file1 в каталог file2
ln -s file link – создать символическую ссылку link к
файлу file
touch file – создать file
cat > file – направить стандартный ввод в file
more file – вывести содержимое file
head file – вывести первые 10 строк file
tail file – вывести последние 10 строк file
tail -f file – вывести содержимое file по мере роста,
начинает с последних 10 строк

Управление процессами
ps – вывести ваши текущие активные процессы
top – показать все запущенные процессы
kill pid – убить процесс с id pid
killall proc – убить все процессы с именем proc *
bg – список остановленных и фоновых задач;
продолжить выполнение остановленной задачи в фоне
fg – выносит на передний план последние задачи
fg n – вынести задачу n на передний план

Поиск
grep pattern files – искать pattern в files
grep -r pattern dir – искать рекурсивно pattern в dir
command | grep pattern – искать pattern в выводе
command
locate file – найти все файлы с именем file

Системная информация
date – вывести текущую дату и время
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о user
uname -a – показать информацию о ядре
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

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