Уильям Шоттс - Командная строка Linux. Полное руководство
Название: | Командная строка Linux. Полное руководство | |
Автор: | Уильям Шоттс | |
Жанр: | Учебники и самоучители по компьютеру, Linux | |
Изадано в серии: | Для профессионалов | |
Издательство: | Питер | |
Год издания: | 2017 | |
ISBN: | 9785496023030 | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Командная строка Linux. Полное руководство"
Уильям Шотте знакомит вас с истинной философией Linux. Вы уже знакомы с Linux, и настала пора нырнуть поглубже и познакомиться с возможнос тями командной строки. Командная строка всегда с вами, от первого знакомства до написания полноценных программ в Bash — самой популярной оболочке Linux. Познакомьтесь с основами навигации по файловой системе, настройки среды, последовательностями команд, поиском по шаблону и многим другим. Прочитав эту книгу, вы легко научитесь создавать и удалять файлы, каталоги и символьные ссылки; администрировать систему, включая сетевое оборудование, установку пакетов и управление процессами; редактировать файлы; писать скрипты для автоматизации общих или рутинных задач; выполнять любые работы с текстовыми файлами. Преодолев начальный страх перед оболочкой Linux, вы поймете, что командная строка — это естественный, логичный и простой способ общения с компьютером. И не забывайте протирать пыль с мышки. 12+
Читаем онлайн "Командная строка Linux. Полное руководство". [Страница - 158]
выполняется соответствующая операция, если нет — выводится сообщение с информацией о правилах пользования программой и сценарий завершается с признаком ошибки.
Более сложное приложение
431
Обратите внимание, как обрабатывается параметр -f. Обнаружив этот параметр,
программа выполняет команду shift, которая сдвинет аргумент параметра -f
с именем файла в позиционный параметр $1.
Далее следует код, реализующий интерактивный режим:
# интерактивный режим
if [[ -n $interactive ]]; then
while true; do
read -p "Enter name of output file: " filename
if [[ -e $filename ]]; then
read -p "'$filename' exists. Overwrite? [y/n/q] > "
case $REPLY in
Y|y)
break
;;
Q|q)
echo "Program terminated."
exit
;;
*)
continue
;;
esac
elif [[ -z $filename ]]; then
continue
else
break
fi
done
fi
Если переменная interactive содержит непустое значение, начинается бесконечный цикл, который предлагает ввести имя файла и затем обрабатывает ситуацию,
если введенное имя соответствует существующему файлу. Если указанный файл
уже существует, пользователю на выбор предлагается три варианта: затереть существующий файл, выбрать другое имя или завершить программу. Если пользователь предпочтет затереть существующий файл, выполняется команда break
и цикл прерывается. Обратите внимание, что инструкция case различает только
вариант перезаписи существующего файла и завершения программы. Любой другой ответ пользователя будет приводить к переходу в начало цикла с повторным
предложением ввести имя файла.
Для поддержки вывода в файл сначала необходимо имеющийся код вывода страницы преобразовать в функцию. Необходимость такого решения станет понятна
чуть позже:
write_html_page () {
cat &2
exit 1
fi
else
write_html_page
fi
Код, обслуживающий логику параметра -f, находится в конце листинга, приведенного выше. Он проверяет, определено ли имя файла и затем — доступность
для записи файла с указанным именем. Для этого выполняется команда touch
с последующей проверкой, что файл является обычным файлом. Эти две проверки позволяют обработать ситуацию неправильно указанного пути (в этом случае
touch потерпит неудачу) и убедиться, что существующий файл является обычным
файлом.
Как видите, функция write_html_page вызывается, чтобы сгенерировать фактическое содержимое страницы, которое затем либо выводится в стандартный вывод (если переменная filename содержит пустое значение), либо перенаправляется
в указанный файл.
Заключительное замечание
С помощью дополнительных позиционных параметров мы можем теперь писать
довольно функциональные сценарии. Позиционные параметры помогают создавать очень полезные функции командной оболочки для выполнения повседневных задач, которые можно поместить в файл .bashrc.
Заключительное замечание
433
Наша программа sys_info_page выросла и усложнилась. Ниже приводится полный листинг программы с выделенными последними изменениями:
#!/bin/bash
# sys_info_page: программа вывода страницы с информацией о системе
PROGNAME=$(basename $0)
TITLE="System Information Report For $HOSTNAME"
CURRENT_TIME=$(date +"%x %r %Z")
TIME_STAMP="Generated $CURRENT_TIME, by $USER"
report_uptime () {
cat --">
Книги схожие с «Командная строка Linux. Полное руководство» по жанру, серии, автору или названию:
Е. М. Кудрявцев - Компас-3D V7. Наиболее полное руководство Жанр: САПР Год издания: 2005 |
Гас Хаваджа - Kali Linux: библия пентестера Жанр: Хакерство Год издания: 2023 Серия: Для профессионалов |
Шива Парасрам, Алекс Замм, Теди Хериянто и др. - Kali Linux. Тестирование на проникновение и безопасность Жанр: Linux Год издания: 2020 Серия: Для профессионалов |
Другие книги из серии «Для профессионалов»:
Дейв Тейлор, Брендон Перри - Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание Жанр: Интернет Год издания: 2017 Серия: Для профессионалов |
Кристофер Негус, Франсуа Каэн - Ubuntu и Debian Linux для продвинутых: более 1000 неэаменимых команд Жанр: Linux Год издания: 2011 Серия: Для профессионалов |
Дэвид Гринхол, Джош Скин, Эндрю Бэйли - Kotlin. Программирование для профессионалов Жанр: Kotlin Год издания: 2023 Серия: Для профессионалов |
Харви Дейтел, Пол Дейтел - Python: Искусственный интеллект, большие данные и облачные вычисления Жанр: Python Год издания: 2020 Серия: Для профессионалов |