Редактирование текстовых файлов в Red Hat Enterprise Linux

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

Введение

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

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

Перенаправление стандартного вывода в файлы

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

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

  • 0: Стандартный ввод (stdin) - Обычно с клавиатуры.
  • 1: Стандартный вывод (stdout) - Обычно на экран терминала.
  • 2: Стандартный вывод ошибок (stderr) - Обычно на экран терминала для сообщений об ошибках.

В этом разделе мы сосредоточимся на перенаправлении stdout.

Перезапись файла с помощью >

Оператор > перенаправляет стандартный вывод команды в указанный файл. Если файл не существует, он будет создан. Если файл уже существует, его содержимое будет перезаписано.

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

  1. Сначала убедитесь, что вы находитесь в каталоге project вашей домашней директории.

    cd ~/project
    [labex@host project]$
  2. Теперь используйте команду date и перенаправьте ее вывод в новый файл с именем current_datetime.txt.

    date > current_datetime.txt

    Эта команда выполнит date, но вместо вывода даты в ваш терминал, она сохранит ее в current_datetime.txt.

  3. Проверьте содержимое файла с помощью команды cat.

    cat current_datetime.txt
    Mon Day XX HH:MM:SS AM/PM TimeZone YYYY

    Вывод покажет текущую дату и время, аналогично приведенному выше примеру.

  4. Теперь давайте попробуем перенаправить вывод echo в тот же файл. Это перезапишет предыдущее содержимое.

    echo "This is a new line of text." > current_datetime.txt
  5. Снова проверьте содержимое файла.

    cat current_datetime.txt
    This is a new line of text.

    Как видите, исходная дата и время были заменены новой строкой текста.

Добавление в файл с помощью >>

Оператор >> перенаправляет стандартный вывод команды в указанный файл, добавляя новое содержимое в конец файла. Если файл не существует, он будет создан.

Давайте добавим больше содержимого в наш файл current_datetime.txt.

  1. Добавьте еще одну строку текста в current_datetime.txt.

    echo "This line is appended." >> current_datetime.txt
  2. Просмотрите содержимое файла.

    cat current_datetime.txt
    This is a new line of text.
    This line is appended.

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

  3. Давайте снова добавим текущую дату и время.

    date >> current_datetime.txt
  4. Проверьте содержимое файла еще раз.

    cat current_datetime.txt
    This is a new line of text.
    This line is appended.
    Mon Day XX HH:MM:SS AM/PM TimeZone YYYY

    Дата и время теперь находятся в конце файла.

Перенаправление вывода других команд

Вы можете перенаправить вывод практически любой команды. Давайте попробуем перенаправить вывод ls и wc.

  1. Перенаправьте вывод ls -l (формат длинного списка) в файл с именем file_list.txt.

    ls -l > file_list.txt
  2. Проверьте содержимое file_list.txt.

    cat file_list.txt
    total 4
    -rw-r--r-- 1 labex labex 80 Jun  4 07:04 current_datetime.txt
    -rw-r--r-- 1 labex labex  0 Jun  4 07:04 file_list.txt

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

  3. Теперь давайте посчитаем количество строк в file_list.txt с помощью wc -l и перенаправим этот подсчет в другой файл, line_count.txt.

    wc -l file_list.txt > line_count.txt
  4. Просмотрите содержимое line_count.txt.

    cat line_count.txt
    3 file_list.txt

    Вывод показывает, что file_list.txt содержит 3 строки (включая строку total и две записи файлов).

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

Перенаправление стандартного потока ошибок и объединение потоков

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

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

Перенаправление стандартного вывода ошибок в файл

Иногда команды выдают сообщения об ошибках, которые вы хотите захватить отдельно от их стандартного вывода.

  1. Убедитесь, что вы находитесь в каталоге ~/project.

    cd ~/project
    [labex@host project]$
  2. Давайте попробуем вывести список содержимого несуществующего каталога. Это сгенерирует сообщение об ошибке.

    ls non_existent_directory
    ls: cannot access 'non_existent_directory': No such file or directory

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

  3. Теперь давайте перенаправим это сообщение об ошибке в файл с именем errors.log.

    ls non_existent_directory 2> errors.log

    На этот раз вы не увидите сообщение об ошибке в своем терминале.

  4. Проверьте содержимое errors.log.

    cat errors.log
    ls: cannot access 'non_existent_directory': No such file or directory

    Сообщение об ошибке теперь сохранено в файле.

Отбрасывание стандартного вывода ошибок

Часто вам может понадобиться запустить команду, которая выдает шумные сообщения об ошибках, которые вам не важны. В таких случаях вы можете перенаправить stderr в /dev/null. /dev/null - это специальный файл устройства, который отбрасывает все данные, записанные в него.

  1. Попробуйте команду ls с несуществующим каталогом снова, но на этот раз отбросьте ошибку.

    ls non_existent_directory 2> /dev/null

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

Объединение стандартного вывода и стандартного вывода ошибок

Существуют ситуации, когда вы хотите захватить и stdout, и stderr в один и тот же файл. Это можно сделать несколькими способами.

Метод 1: > file 2>&1

Этот метод перенаправляет stdout в файл, а затем перенаправляет stderr в то же место, что и stdout. Порядок 2>&1 важен: это означает «перенаправить дескриптор файла 2 (stderr) в то же место, что и дескриптор файла 1 (stdout)».

  1. Давайте создадим команду, которая выдает как стандартный вывод, так и стандартный вывод ошибок. Мы будем использовать find для поиска файла в каталоге, где у нас есть разрешения, и в каталоге, где у нас их нет.

    find ~/project /root -name "current_datetime.txt" > combined_output.log 2>&1

    Здесь find ~/project -name "current_datetime.txt" выдаст stdout (если найдено), а find /root -name "current_datetime.txt", вероятно, выдаст stderr из-за проблем с разрешениями.

  2. Проверьте файл combined_output.log.

    cat combined_output.log
    /home/labex/project/current_datetime.txt
    find: ‘/root’: Permission denied

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

Метод 2: &> file (специфично для Bash)

Bash предоставляет сокращенный способ объединения stdout и stderr в файл: &>. Это эквивалентно > file 2>&1.

  1. Давайте попробуем ту же команду find, используя сокращение &>.

    find ~/project /root -name "file_list.txt" &> combined_output_shorthand.log
  2. Проверьте содержимое combined_output_shorthand.log.

    cat combined_output_shorthand.log
    /home/labex/project/file_list.txt
    find: ‘/root’: Permission denied

    Результат такой же, как и в предыдущем методе, демонстрируя удобство &>.

Добавление объединенных потоков

Как и в случае с stdout, вы можете добавлять объединенные stdout и stderr в файл, используя >> file 2>&1 или &>> file.

  1. Добавьте больше вывода и ошибок в combined_output.log.

    find ~/project /root -name "line_count.txt" >> combined_output.log 2>&1
  2. Просмотрите обновленный combined_output.log.

    cat combined_output.log
    /home/labex/project/current_datetime.txt
    find: ‘/root’: Permission denied
    /home/labex/project/line_count.txt
    find: ‘/root’: Permission denied

    Новый вывод и ошибки добавлены к существующему содержимому.

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

Построение и понимание конвейеров команд

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

Оператор конвейера | (вертикальная черта) используется для соединения команд в конвейере. Он перенаправляет стандартный вывод (stdout) команды слева на стандартный ввод (stdin) команды справа.

Основные конвейеры

Давайте начнем с простого примера, чтобы понять, как работают конвейеры.

  1. Убедитесь, что вы находитесь в каталоге ~/project.

    cd ~/project
    [labex@host project]$
  2. Сначала давайте перечислим файлы в текущем каталоге.

    ls
    combined_output.log
    combined_output_shorthand.log
    current_datetime.txt
    errors.log
    file_list.txt
    line_count.txt
  3. Теперь давайте передадим вывод ls в команду wc -l, которая подсчитывает количество строк, которые она получает.

    ls | wc -l
    6

    Команда ls выводит список файлов, а ее вывод (каждое имя файла в новой строке) подается в качестве ввода в wc -l, которая затем подсчитывает эти строки, эффективно сообщая вам, сколько файлов/каталогов находится в текущем местоположении.

  4. Давайте попробуем еще один распространенный вариант использования: передача ls -l в less для постраничного вывода. Это полезно, когда команда выдает слишком много вывода, чтобы поместиться на одном экране.

    ls -l /usr/bin | less
    total 200000
    -rwxr-xr-x 1 root root 12345 Jan XX HH:MM [filename]
    ... (press 'q' to quit less) ...

    Команда ls -l /usr/bin выводит список всех файлов в /usr/bin с подробной информацией. Этот вывод затем отправляется в less, позволяя вам прокручивать его страницу за страницей. Нажмите q, чтобы выйти из less.

Фильтрация вывода с помощью grep

Команда grep часто используется в конвейерах для фильтрации строк, соответствующих определенному шаблону.

  1. Давайте перечислим все процессы, запущенные в системе, используя ps aux, а затем отфильтруем процессы, связанные с bash.

    ps aux | grep bash
    labex     1234  0.0  0.1  12345  6789 ?        Ss   HH:MM   0:00 /usr/bin/bash
    labex     5678  0.0  0.0   9876  5432 pts/0    S+   HH:MM   0:00 grep bash

    Команда ps aux выводит список всех запущенных процессов. Ее вывод передается в grep bash, который затем отображает только строки, содержащие слово «bash». Вы можете увидеть две строки: одну для вашей текущей оболочки bash и одну для самой команды grep.

  2. Чтобы исключить команду grep из вывода, вы можете использовать grep -v (инвертировать соответствие) или уточнить свой шаблон. Давайте попробуем grep -v grep.

    ps aux | grep bash | grep -v grep
    labex     1234  0.0  0.1  12345  6789 ?        Ss   HH:MM   0:00 /usr/bin/bash

    Теперь отображается только фактический процесс bash.

Использование sort и uniq

sort используется для сортировки строк текста, а uniq используется для сообщения или пропуска повторяющихся строк. Они часто используются вместе.

  1. Давайте создадим файл с некоторыми несортированными, повторяющимися словами.

    echo -e "apple\nbanana\napple\norange\nbanana" > fruits.txt
  2. Просмотрите содержимое fruits.txt.

    cat fruits.txt
    apple
    banana
    apple
    orange
    banana
  3. Теперь давайте отсортируем строки в fruits.txt.

    cat fruits.txt | sort
    apple
    apple
    banana
    banana
    orange
  4. Чтобы получить только уникальные отсортированные слова, передайте вывод sort в uniq.

    cat fruits.txt | sort | uniq
    apple
    banana
    orange

    Этот конвейер сначала сортирует строки, затем uniq удаляет повторяющиеся смежные строки.

Команда tee

Команда tee особенная в конвейерах. Она читает стандартный ввод, записывает его в стандартный вывод и одновременно записывает его в один или несколько файлов. Это как «T»-образное соединение в трубе, позволяющее данным течь в двух направлениях.

  1. Давайте перечислим файлы и сохраним вывод в ls_output.txt, а также отобразим его на экране.

    ls -l | tee ls_output.txt
    total 24
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM combined_output.log
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM combined_output_shorthand.log
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM current_datetime.txt
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM errors.log
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM file_list.txt
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM fruits.txt
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM line_count.txt
    -rw-r--r-- 1 labex labex 0 Jan XX HH:MM ls_output.txt

    Вы увидите вывод ls -l в своем терминале, и будет создан файл с именем ls_output.txt с тем же содержимым.

  2. Проверьте содержимое ls_output.txt.

    cat ls_output.txt
    total 24
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM combined_output.log
    ... (same as above) ...
  3. Вы также можете использовать tee -a, чтобы добавить вывод в файл.

    echo "--- End of list ---" | tee -a ls_output.txt
    --- End of list ---

    Строка "--- End of list ---" печатается в терминале и добавляется в ls_output.txt.

  4. Проверьте обновленный ls_output.txt.

    cat ls_output.txt
    total 24
    ... (previous ls -l output) ...
    --- End of list ---

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

Редактирование текстовых файлов с основами Vim

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

Vim - это модальный редактор, то есть у него разные режимы для разных задач:

  • Normal Mode (Command Mode): Это режим по умолчанию при открытии Vim. В этом режиме нажатия клавиш интерпретируются как команды (например, перемещение курсора, удаление текста, копирование текста).
  • Insert Mode: В этом режиме все, что вы печатаете, вставляется в файл. Вы входите в Insert Mode из Normal Mode, нажимая i (вставить в курсор), a (добавить после курсора), o (открыть новую строку ниже) и т. д. Чтобы вернуться в Normal Mode, нажмите Esc.
  • Visual Mode: Этот режим позволяет вам выбирать блоки текста для таких операций, как копирование, вырезание или удаление. Вы входите в Visual Mode из Normal Mode, нажимая v (посимвольно), Shift+V (построчно) или Ctrl+V (поблочно). Нажмите Esc, чтобы вернуться в Normal Mode.
  • Command-Line Mode (Ex Mode): Этот режим используется для выполнения команд, которые обычно начинаются с двоеточия (:), таких как сохранение (:w), выход (:q) или поиск (/). Вы входите в этот режим из Normal Mode, нажав :.

Открытие и базовая навигация

  1. Убедитесь, что вы находитесь в каталоге ~/project.

    cd ~/project
    [labex@host project]$
  2. Откройте новый файл с именем my_document.txt с помощью vim.

    vim my_document.txt

    Ваш терминал теперь отобразит интерфейс Vim. Вы находитесь в Normal Mode.

  3. В Normal Mode вы можете перемещаться, используя клавиши со стрелками или h (влево), j (вниз), k (вверх), l (вправо). Поскольку файл пуст, пока нечего особо перемещать.

Insert Mode: Добавление текста

  1. Чтобы начать печатать, вам нужно войти в Insert Mode. Нажмите i (для вставки).
    Внизу слева вашего терминала должно появиться -- INSERT --, указывающее, что вы находитесь в Insert Mode.

  2. Введите следующие строки:

    This is the first line.
    This is the second line.
    This is the third line.
  3. Чтобы выйти из Insert Mode и вернуться в Normal Mode, нажмите клавишу Esc.
    Индикатор -- INSERT -- должен исчезнуть.

Сохранение и выход

  1. В Normal Mode, чтобы сохранить файл, введите :w и нажмите Enter.

    :w

    Внизу вы должны увидеть my_document.txt [New] 3L, 60B written, подтверждающее сохранение.

  2. Чтобы выйти из Vim, введите :q и нажмите Enter.

    :q

    Вы вернетесь к приглашению оболочки.

  3. Проверьте содержимое my_document.txt с помощью cat.

    cat my_document.txt
    This is the first line.
    This is the second line.
    This is the third line.

Редактирование существующих файлов

  1. Откройте my_document.txt снова.

    vim my_document.txt
  2. В Normal Mode переместите курсор в начало второй строки (используя j или клавиши со стрелками).

  3. Нажмите Shift+V, чтобы войти в Visual Line Mode. Вся вторая строка будет выделена.

  4. Нажмите y, чтобы «yank» (скопировать) выбранную строку.

  5. Переместите курсор в конец третьей строки (используя j или клавиши со стрелками).

  6. Нажмите p, чтобы «put» (вставить) скопированную строку под текущей строкой.
    Вторая строка теперь снова появится в качестве четвертой строки.

  7. Теперь давайте удалим строку. Переместите курсор на четвертую строку (ту, которую вы только что вставили).

  8. Нажмите dd (двойное d), чтобы удалить всю строку.

  9. Чтобы отменить последнее изменение, нажмите u. Удаленная строка появится снова.

  10. Чтобы сохранить и выйти одной командой, введите :wq и нажмите Enter.

    :wq
  11. Снова проверьте содержимое my_document.txt.

    cat my_document.txt
    This is the first line.
    This is the second line.
    This is the third line.
    This is the second line.

    Теперь в файле должно быть четыре строки, со второй строкой, дублированной.

Отмена изменений

Иногда вы вносите изменения и решаете, что не хотите их сохранять.

  1. Откройте my_document.txt снова.

    vim my_document.txt
  2. Войдите в Insert Mode, нажав i.

  3. Добавьте новую строку в конце:

    This line should not be saved.
  4. Нажмите Esc, чтобы вернуться в Normal Mode.

  5. Попробуйте выйти, используя :q.

    :q

    Vim предупредит вас: E37: No write since last change (add ! to override). Это означает, что у вас есть несохраненные изменения.

  6. Чтобы выйти без сохранения, введите :q! и нажмите Enter.

    :q!

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

  7. Проверьте содержимое my_document.txt.

    cat my_document.txt
    This is the first line.
    This is the second line.
    This is the third line.
    This is the second line.

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

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

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

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

Переменные оболочки

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

  1. Убедитесь, что вы находитесь в каталоге ~/project.

    cd ~/project
    [labex@host project]$
  2. Установка локальной переменной: Давайте создадим простую переменную с именем MY_MESSAGE.

    MY_MESSAGE="Hello, LabEx!"

    Обратите внимание, что вокруг знака = нет пробелов.

  3. Доступ к переменной: Чтобы получить доступ к значению переменной, вы добавляете перед ее именем знак $.

    echo $MY_MESSAGE
    Hello, LabEx!
  4. Разворачивание переменной с фигурными скобками: Иногда вам нужно четко разграничить имя переменной, особенно когда за ним следуют другие символы. Используйте фигурные скобки {} для этого.

    echo "The message is: ${MY_MESSAGE}."
    The message is: Hello, LabEx!.

    Если вы опустите скобки, оболочка может интерпретировать MY_MESSAGE. как имя переменной, которой не существует.

  5. Вывод списка всех установленных переменных: Вы можете использовать команду set, чтобы вывести список всех текущих переменных и функций оболочки. Этот вывод может быть очень длинным, поэтому его часто передают в less.

    set | less
    BASH=/usr/bin/bash
    BASHOPTS=checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:progcomp:promptvars:sourcepath
    ... (press 'q' to quit less) ...

    Нажмите q, чтобы выйти из less.

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

    unset MY_MESSAGE
  7. Убедитесь, что переменная больше не установлена.

    echo $MY_MESSAGE

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

Переменные среды

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

  1. Установка переменной среды: Используйте команду export, чтобы сделать переменную переменной среды.

    export EDITOR=vim

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

  2. Вывод списка переменных среды: Используйте команду env, чтобы вывести список только переменных среды.

    env | grep EDITOR
    EDITOR=vim
  3. Отмена экспорта переменной: Вы можете отменить экспорт переменной, не удаляя ее, используя export -n. Это снова делает ее локальной переменной.

    export -n EDITOR
  4. Убедитесь, что это больше не переменная среды.

    env | grep EDITOR

    Вы не должны видеть никакого вывода. Однако это все еще локальная переменная:

    echo $EDITOR
    vim
  5. Чтобы полностью удалить ее, используйте unset.

    unset EDITOR

Псевдонимы оболочки

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

  1. Создание псевдонима: Давайте создадим псевдоним для ls -l, чтобы сделать его короче.

    alias ll='ls -l'

    Обратите внимание на одинарные кавычки вокруг команды, чтобы убедиться, что она обрабатывается как одна строка.

  2. Использование псевдонима: Теперь вы можете просто ввести ll вместо ls -l.

    ll
    total 24
    -rw-r--r-- 1 labex labex 123 Jan XX HH:MM combined_output.log
    ... (output of ls -l) ...
  3. Вывод списка псевдонимов: Используйте команду alias без каких-либо аргументов, чтобы увидеть все определенные псевдонимы.

    alias
    alias ll='ls -l'

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

  4. Создание более сложного псевдонима: Вы также можете создавать псевдонимы для команд с аргументами или нескольких команд.

    alias myip='ip a | grep "inet " | grep -v "127.0.0.1" | awk "{print \$2}" | cut -d/ -f1'

    Здесь myip покажет ваш основной IP-адрес. Обратите внимание на \$2, чтобы экранировать знак $, чтобы он передавался в awk, а не интерпретировался оболочкой при определении псевдонима.

  5. Протестируйте псевдоним myip.

    myip
    172.17.0.2

    (Ваш IP-адрес может отличаться)

  6. Удаление псевдонима: Чтобы удалить псевдоним, используйте команду unalias.

    unalias ll
  7. Убедитесь, что псевдоним удален.

    alias
    alias myip='ip a | grep "inet " | grep -v "127.0.0.1" | awk "{print \$2}" | cut -d/ -f1'

    ll больше не должен быть в списке.

Переменные и псевдонимы оболочки являются временными и будут потеряны при закрытии сеанса терминала. Чтобы сделать их постоянными, вам нужно добавить их в файлы конфигурации вашей оболочки (например, ~/.bashrc или ~/.profile), что будет рассмотрено в более продвинутых темах.

Резюме

В этой лабораторной работе вы изучили основные навыки работы с командной строкой Linux, необходимые для управления текстовыми файлами и средой оболочки. Вы начали с освоения перенаправления вывода, в частности, используя > для перезаписи файлов и >> для добавления содержимого, что позволяет вам захватывать результаты команд для ведения журналов или дальнейшей обработки. Вы также изучили перенаправление стандартной ошибки (2>) и объединение стандартного вывода и ошибки (&>) для эффективного управления всем выводом команд.

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