Доступ к командной строке в Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы совершите фундаментальное путешествие в мир операций командной строки Linux, в частности, в среде Red Hat Enterprise Linux (RHEL). Вы получите практический опыт работы с основными командами для идентификации информации о пользователях и системе, управления паролями пользователей и инспектирования различных типов файлов.

Посредством практических упражнений вы научитесь просматривать содержимое файлов с помощью cat, head и tail, подсчитывать статистику файлов и эффективно перемещаться по истории команд. Кроме того, вы освоите важные сочетания клавиш для редактирования в командной строке, что повысит вашу производительность и эффективность при управлении системами Linux.

Определение Пользователя и Системного Времени

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

Сначала давайте выясним, под каким пользователем вы в данный момент вошли в систему. Для этой цели используется команда whoami. Она выводит эффективное имя пользователя, под которым работает текущий пользователь.

Введите следующую команду в вашем терминале:

whoami
Screenshot of whoami command output

В качестве вывода вы должны увидеть labex, что означает, что вы вошли в систему как пользователь labex.

labex

Далее мы рассмотрим команду date. Эта команда используется для отображения или установки системной даты и времени. При использовании без каких-либо опций она отображает текущую дату и время в формате по умолчанию.

Выполните команду date:

date

В выводе будет показан текущий день недели, месяц, число месяца, время (ЧЧ:ММ:СС), часовой пояс и год. Точный вывод будет зависеть от того, когда вы запустите команду.

Mon Jul 22 10:30:45 AM UTC 2024

Команда date очень гибка и позволяет форматировать вывод различными способами с использованием спецификаторов формата. Например, чтобы отобразить только текущее время в 24-часовом формате (ЧЧ:ММ), вы можете использовать +%R.

Попробуйте отобразить только время:

date +%R

Вывод будет похож на:

10:30

Чтобы отобразить только текущую дату в формате ММ/ДД/ГГГГ, вы можете использовать +%x.

Попробуйте отобразить только дату:

date +%x

Вывод будет похож на:

07/22/2024

Наконец, вы можете выполнять несколько команд в одной строке, разделяя их точкой с запятой (;). Это может быть полезно для быстрого выполнения последовательности команд.

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

whoami; date

Вы увидите вывод обеих команд, одну за другой:

labex
Mon Jul 22 10:30:45 AM UTC 2024
Screenshot of whoami and date commands output

Управление Паролями Пользователей и Просмотр Типов Файлов

В этом разделе вы научитесь изменять пароль пользователя и определять тип файла с помощью команды file. Понимание типов файлов необходимо для работы с различными форматами данных и исполняемыми файлами в Linux.

Сначала давайте попрактикуемся в смене пароля пользователя. Команда passwd используется для изменения паролей пользователей. Для пользователя labex вам будет предложено ввести текущий пароль, а затем новый пароль дважды. Помните, что текущий пароль для labexlabex.

Введите следующую команду в вашем терминале:

passwd

Вам будет предложено ввести текущий пароль, а затем новый пароль дважды. Для этой лабораторной работы вы можете установить новый пароль newpass (Важно: Не меняйте пароль по умолчанию для этой лабораторной работы.).

Changing password for user labex.
Current password: old_password  <-- Введите labex и нажмите Enter
New password: new_password      <-- Введите newpass и нажмите Enter
BAD PASSWORD: The password is shorter than 8 characters

Примечание: При вводе паролей в Linux на экране ничего не отображается по соображениям безопасности. Это нормальное поведение, и это не означает, что виртуальная машина не отвечает. Система по-прежнему получает ваш ввод, даже если вы не видите вводимые символы.

Показывается, что пароль короче 8 символов. В реальном мире следует устанавливать пароль длиной не менее 8 символов и более сложный. Но для этой лабораторной работы мы не будем менять пароль, поэтому вы можете просто нажать Enter, чтобы пропустить смену пароля.

Далее мы рассмотрим команду file. Эта команда определяет тип файла. Она очень полезна для понимания того, какие данные содержит файл, особенно когда расширение файла отсутствует или вводит в заблуждение.

Давайте изучим тип файла /etc/passwd. Этот файл содержит информацию обо всех учетных записях пользователей в системе.

file /etc/passwd

Вывод покажет, что /etc/passwd является текстовым файлом в формате ASCII.

/etc/passwd: ASCII text

Теперь давайте проверим тип исполняемого файла, такого как /bin/bash, который является программой оболочки, которую вы сейчас используете.

file /bin/bash

Вывод покажет, что /bin/bash является исполняемым файлом, а также детали о его архитектуре и других свойствах.

/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=<omitted>, for GNU/Linux <omitted>, stripped

Наконец, давайте определим тип каталога. В качестве примера мы будем использовать каталог /home.

file /home

Вывод просто укажет, что /home является каталогом.

/home: directory

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

Просмотр Содержимого Файлов с помощью cat, head и tail

На этом шаге вы узнаете, как просматривать содержимое текстовых файлов, используя три основные команды Linux: cat, head и tail. Эти команды необходимы для просмотра содержимого файлов, особенно файлов конфигурации и файлов журналов.

Во-первых, давайте используем команду cat. Команда cat (сокращение от concatenate - объединять) в основном используется для отображения содержимого файлов. Она также может использоваться для объединения нескольких файлов в один.

Давайте посмотрим все содержимое файла /etc/passwd. Этот файл содержит информацию об учетных записях пользователей.

cat /etc/passwd

Вы увидите полное содержимое файла /etc/passwd, выведенное в ваш терминал. Вывод будет обширным, показывающим все записи пользователей.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...output omitted...

Теперь давайте создадим два простых текстовых файла в вашем каталоге ~/project, чтобы продемонстрировать cat с несколькими файлами.

Создайте file1.txt:

echo "Hello World!!" > ~/project/file1.txt

Создайте file2.txt:

echo "Introduction to Linux commands." > ~/project/file2.txt

Теперь используйте cat, чтобы отобразить содержимое обоих файлов:

cat ~/project/file1.txt ~/project/file2.txt

Вывод покажет содержимое file1.txt, за которым следует file2.txt.

Hello World!!
Introduction to Linux commands.

Далее мы будем использовать команду head. Команда head отображает первые несколько строк файла. По умолчанию она показывает первые 10 строк.

Давайте посмотрим первые 10 строк /etc/passwd:

head /etc/passwd

Вы увидите первые 10 строк файла /etc/passwd.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

Вы можете указать количество строк для отображения, используя опцию -n. Например, чтобы просмотреть первые 3 строки:

head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

Наконец, давайте используем команду tail. Команда tail отображает последние несколько строк файла. По умолчанию она также показывает последние 10 строк.

Давайте посмотрим последние 10 строк /etc/passwd:

tail /etc/passwd

Вы увидите последние 10 строк файла /etc/passwd.

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:998:996:systemd Resolver:/:/sbin/nologin
systemd-network:x:997:995:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System Message Bus:/:/sbin/nologin
polkitd:x:996:994:User for polkitd:/:/sbin/nologin
unbound:x:995:993:Unbound DNS resolver:/:/sbin/nologin
tss:x:59:59:TPM software stack:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

Аналогично head, вы можете указать количество строк для отображения, используя опцию -n. Например, чтобы просмотреть последние 3 строки:

tail -n 3 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

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

Подсчет Статистики Файлов и Использование Истории Команд

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

Во-первых, давайте рассмотрим команду wc (word count - подсчет слов). Эта команда используется для подсчета количества строк, слов и символов в файле.

Давайте посчитаем строки, слова и символы в файле /etc/passwd:

wc /etc/passwd

Вывод покажет три числа, за которыми следует имя файла: строки, слова и символы. Точные числа могут незначительно отличаться в зависимости от конфигурации вашей системы.

41   98 2338 /etc/passwd

Вы можете использовать опции для отображения только определенных подсчетов:

  • -l для строк
  • -w для слов
  • -c для символов

Давайте посчитаем только строки в /etc/passwd и /etc/group (который содержит информацию о группах пользователей). Мы можем сделать это в одной строке, используя точку с запятой.

wc -l /etc/passwd
wc -l /etc/group

Вы увидите количество строк для каждого файла:

41 /etc/passwd
63 /etc/group

Теперь давайте посчитаем только символы в /etc/group и /etc/hosts (который сопоставляет имена хостов с IP-адресами).

wc -c /etc/group /etc/hosts

Вывод покажет количество символов для каждого файла и общее количество.

883 /etc/group
114 /etc/hosts
997 total

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

Чтобы отобразить историю команд, используйте команду history:

history

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

...output omitted...
   23  clear
   24  whoami
   25  date
   26  file /etc/passwd
   27  cat /etc/passwd
   28  head /etc/passwd
   29  tail /etc/passwd
   30  wc /etc/passwd
   31  history

Вы можете повторно выполнить команду из вашей истории, используя восклицательный знак (!), за которым следует номер команды или строка.

Например, чтобы повторно выполнить команду под номером 26 (которая была file /etc/passwd в приведенном выше примере, но будет другой для вас), найдите ее номер в выводе history и используйте его:

!26 ## Замените 26 фактическим номером 'file /etc/passwd' из вашей истории

Оболочка сначала отобразит команду, которую она собирается выполнить, а затем ее вывод:

file /etc/passwd
/etc/passwd: ASCII text

Вы также можете повторно выполнить последнюю команду, которая начинается с определенной строки. Например, чтобы повторно запустить последнюю команду, которая начиналась с wc:

!wc

Это выполнит последнюю команду wc, которую вы запустили.

wc -c /etc/group /etc/hosts
883 /etc/group
114 /etc/hosts
997 total

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

Практика Горячих Клавиш Редактирования Командной Строки

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

Во-первых, давайте разберемся, как написать длинную команду в несколько строк. Это может улучшить читаемость сложных команд. Вы можете использовать обратную косую черту (\) в конце строки, чтобы указать, что команда продолжается на следующей строке.

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

head -n 3 \
  /home/labex/project/words \
  /home/labex/project/linux.words

Когда вы нажмете Enter после первой строки, ваш терминал покажет приглашение > (или аналогичное), указывающее на то, что он ждет остальную часть команды. Введите оставшиеся части и снова нажмите Enter.

==> /home/labex/project/words <==
1080
10-point
10th

==> /home/labex/project/linux.words <==
1080
10-point
10th

Теперь давайте попрактикуемся в использовании некоторых сочетаний клавиш для редактирования командной строки. Эти сочетания клавиш работают в большинстве современных терминалов Linux (например, Bash или Zsh).

Введите длинную команду, но еще не нажимайте Enter:

echo "This is a very long command that we will edit using shortcuts."
  • Ctrl+A: Переход в начало командной строки.
    • Введите приведенную выше команду, затем нажмите Ctrl+A. Ваш курсор переместится в начало строки.
  • Ctrl+E: Переход в конец командной строки.
    • После нажатия Ctrl+A нажмите Ctrl+E. Ваш курсор переместится обратно в конец строки.
  • Ctrl+U: Удаление от курсора до начала командной строки.
    • Введите команду еще раз. Поместите курсор где-нибудь в середине строки (например, после "very"). Нажмите Ctrl+U. Текст от курсора до начала будет удален.
  • Ctrl+K: Удаление от курсора до конца командной строки.
    • Введите команду еще раз. Поместите курсор где-нибудь в середине строки (например, после "very"). Нажмите Ctrl+K. Текст от курсора до конца будет удален.
  • Ctrl+LeftArrow (или Alt+B): Переход в начало предыдущего слова в командной строке.
    • Введите команду еще раз. Поместите курсор в конец строки. Нажимайте Ctrl+LeftArrow несколько раз, чтобы перемещаться по словам влево.
  • Ctrl+RightArrow (или Alt+F): Переход в конец следующего слова в командной строке.
    • Поместите курсор в начало строки. Нажимайте Ctrl+RightArrow несколько раз, чтобы перемещаться по словам вправо.
  • Ctrl+R: Поиск в списке истории команд по шаблону.
    • Нажмите Ctrl+R. Появится приглашение (reverse-i-search). Начните вводить часть команды, которую вы ранее выполнили, например, date. Терминал покажет самую последнюю команду из вашей истории, которая соответствует. Продолжайте нажимать Ctrl+R, чтобы просмотреть более старые совпадения. Нажмите Enter, чтобы выполнить найденную команду, или стрелки влево/вправо, чтобы отредактировать ее.

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

Резюме

В этой лабораторной работе вы изучили основные команды Linux для идентификации информации о пользователе и системе. Вы попрактиковались в использовании whoami для определения текущего вошедшего в систему пользователя и date для отображения текущей даты и времени системы, включая различные параметры форматирования, такие как +%R для времени и +%x для даты. Кроме того, вы узнали, как выполнять несколько команд в одной строке, используя точку с запятой, что повышает эффективность работы в среде командной строки.