My-library.info
Все категории

Командная строка Linux - Шоттс Уильям

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Командная строка Linux - Шоттс Уильям. Жанр: Интернет год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Командная строка Linux
Дата добавления:
17 сентябрь 2020
Количество просмотров:
109
Читать онлайн
Командная строка Linux - Шоттс Уильям

Командная строка Linux - Шоттс Уильям краткое содержание

Командная строка Linux - Шоттс Уильям - описание и краткое содержание, автор Шоттс Уильям, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info

Книга Уильяма Шоттса "Командная строка Linux: Полное руководство" представляет обширный обзор «жизни» в командной строке Linux. В отличие от других книг, посвященных одной программе, такой как командный интерпретатор bash, в этой книге автор попытается рассказать, как поладить с интерфейсом командной строки в более широком аспекте. Как он работает? Что можно сделать с его помощью? Как лучше его использовать? Эта книга не об администрировании системы Linux. Эта книга исключительно о Linux. В книге материал излагается в тщательно выверенной последовательности, как в школе, где учитель руководит вами и направляет вас по правильному пути. Многие авторы грешат тем, что подают материал в «систематическом» порядке, имеющем определенный смысл для писателя, но способном вызывать путаницу у начинающих пользователей. Цель данной книги — познакомить вас с идеологией Unix, которая отличается от идеологии Windows.

Командная строка Linux читать онлайн бесплатно

Командная строка Linux - читать книгу онлайн бесплатно, автор Шоттс Уильям

                                        ;;

                                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 <<- _EOF_

        <HTML>

                <HEAD>

                        <TITLE>$TITLE</TITLE>

                </HEAD>

                <BODY>

                        <H1>$TITLE</H1>

                        <P>$TIME_STAMP</P>

                        $(report_uptime)

                        $(report_disk_space)

                        $(report_home_space)

                </BODY>

        </HTML>

        _EOF_

        return

}

# вывод страницы html

if [[ -n $filename ]]; then

        if touch $filename && [[ -f $filename ]]; then

                write_html_page > $filename

        else

                echo "$PROGNAME: Cannot write file '$filename'" >&2

                exit 1

        fi

else

        write_html_page

fi

Код, обслуживающий логику параметра -f, находится в конце листинга, приведенного выше. Он проверяет, определено ли имя файла и затем — доступность для записи файла с указанным именем. Для этого выполняется команда touch с последующей проверкой, что файл является обычным файлом. Эти две проверки позволяют обработать ситуацию неправильно указанного пути (в этом случае touch потерпит неудачу) и убедиться, что существующий файл является обычным файлом.

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

Заключительное замечание

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

Наша программа 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 <<- _EOF_

                <H2>System Uptime</H2>

                <PRE>$(uptime)</PRE>

                _EOF_

        return

}

report_disk_space () {

        cat <<- _EOF_

        <H2>Disk Space Utilization</H2>

        <PRE>$(df -h)</PRE>

        _EOF_

        return

}

report_home_space () {

        if [[ $(id -u) -eq 0 ]]; then

                cat <<- _EOF_

                        <H2>Home Space Utilization (All Users)</H2>

                        <PRE>$(du -sh /home/*)</PRE>

                        _EOF_

        else

                cat <<- _EOF_

                        <H2>Home Space Utilization ($USER)</H2>

                        <PRE>$(du -sh $HOME)</PRE>

                        _EOF_

        fi

        return

}

usage () {

        echo "$PROGNAME: usage: $PROGNAME [-f file | -i]"

        return

}

write_html_page () {

        cat <<- _EOF_

        <HTML>

                <HEAD>

                        <TITLE>$TITLE</TITLE>

                </HEAD>

                <BODY>

                        <H1>$TITLE</H1>

                        <P>$TIME_STAMP</P>

                        $(report_uptime)

                        $(report_disk_space)

                        $(report_home_space)

                </BODY>

        </HTML>

        _EOF_

         return

}

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

interactive=

filename=

while [[ -n $1 ]]; do

        case $1 in

                -f | --file)            shift

                                        filename=$1

                                        ;;

                -i | --interactive)     interactive=1

                                        ;;

                -h | --help)            usage

                                        exit

                                        ;;

                *)                      usage >&2

                                        exit 1

                                        ;;

        esac

        shift

done

# интерактивный режим

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

                fi

        done

fi

# вывод страницы html

if [[ -n $filename ]]; then

        if touch $filename && [[ -f $filename ]]; then


Шоттс Уильям читать все книги автора по порядку

Шоттс Уильям - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


Командная строка Linux отзывы

Отзывы читателей о книге Командная строка Linux, автор: Шоттс Уильям. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.