Введение
В этой лабораторной работе вы совершите фундаментальное путешествие в мир операций командной строки Linux, в частности, в среде Red Hat Enterprise Linux (RHEL). Вы получите практический опыт работы с основными командами для идентификации информации о пользователях и системе, управления паролями пользователей и инспектирования различных типов файлов.
Посредством практических упражнений вы научитесь просматривать содержимое файлов с помощью cat, head и tail, подсчитывать статистику файлов и эффективно перемещаться по истории команд. Кроме того, вы освоите важные сочетания клавиш для редактирования в командной строке, что повысит вашу производительность и эффективность при управлении системами Linux.
Определение Пользователя и Системного Времени
В этом разделе вы узнаете, как определить текущего пользователя, вошедшего в систему, и как отобразить текущую дату и время системы с помощью базовых команд Linux. Понимание этих фундаментальных команд имеет решающее значение для навигации и управления любой средой Linux.
Сначала давайте выясним, под каким пользователем вы в данный момент вошли в систему. Для этой цели используется команда whoami. Она выводит эффективное имя пользователя, под которым работает текущий пользователь.
Введите следующую команду в вашем терминале:
whoami

В качестве вывода вы должны увидеть 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

Управление Паролями Пользователей и Просмотр Типов Файлов
В этом разделе вы научитесь изменять пароль пользователя и определять тип файла с помощью команды file. Понимание типов файлов необходимо для работы с различными форматами данных и исполняемыми файлами в Linux.
Сначала давайте попрактикуемся в смене пароля пользователя. Команда passwd используется для изменения паролей пользователей. Для пользователя labex вам будет предложено ввести текущий пароль, а затем новый пароль дважды. Помните, что текущий пароль для labex — labex.
Введите следующую команду в вашем терминале:
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. Текст от курсора до начала будет удален.
- Введите команду еще раз. Поместите курсор где-нибудь в середине строки (например, после "very"). Нажмите
- Ctrl+K: Удаление от курсора до конца командной строки.
- Введите команду еще раз. Поместите курсор где-нибудь в середине строки (например, после "very"). Нажмите
Ctrl+K. Текст от курсора до конца будет удален.
- Введите команду еще раз. Поместите курсор где-нибудь в середине строки (например, после "very"). Нажмите
- 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 для даты. Кроме того, вы узнали, как выполнять несколько команд в одной строке, используя точку с запятой, что повышает эффективность работы в среде командной строки.



