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

Уильям Шоттс - Командная строка Linux. Полное руководство

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

Название:
Командная строка Linux. Полное руководство
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
6 октябрь 2019
Количество просмотров:
260
Читать онлайн
Уильям Шоттс - Командная строка Linux. Полное руководство

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

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

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

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

[ [email protected] ~]$ foo=file.txt.zip

[ [email protected] ~]$ echo ${foo#*.}

txt.zip

[ [email protected] ~]$ echo ${foo##*.}

zip

Следующие две формы:

${параметр%шаблон}

${параметр%%шаблон}

действуют так же, как формы # и ##, представленные выше, но удаляют текст с конца строки, содержащейся в параметре.

[ [email protected] ~]$ foo=file.txt.zip

[ [email protected] ~]$ echo ${foo%.*}

file.txt

[ [email protected] ~]$ echo ${foo%%.*}

file

Следующие формы:

${параметр/шаблон/строка}

${параметр//шаблон/строка}

${параметр/#шаблон/строка}

${параметр/%шаблон/строка}

выполняют поиск с заменой в содержимом указанного параметра. Если в параметре будет найдено совпадение с шаблоном, который может содержать групповые символы, это совпадение будет заменено содержимым указанной строки. Первая форма заменит только первое совпадение с шаблоном. Форма // заменит все найденные совпадения. Форма /# выполняет замену, только если совпадение с шаблоном найдено в самом начале строки, а форма /% выполняет замену, только если совпадение найдено в конце строки. Часть /строка можно опустить, и тогда совпавший фрагмент будет удален.

[ [email protected] ~]$ foo=JPG.JPG

[ [email protected] ~]$ echo ${foo/JPG/jpg}

jpg.JPG

[ [email protected] ~]$ echo ${foo//JPG/jpg}

jpg.jpg

[ [email protected] ~]$ echo ${foo/#JPG/jpg}

jpg.JPG

[ [email protected] ~]$ echo ${foo/%JPG/jpg}

JPG.jpg

Механизм подстановки параметров — ценный инструмент. Его возможности для работы со строками можно использовать вместо других широко используемых команд, таких как sed и cut. Применение механизма подстановки способствует увеличению производительности сценария за счет отсутствия необходимости выполнять внешние программы. Например, изменим программу longest-word из предыдущей главы, задействовав подстановку параметра ${#j} взамен подстановки команды $(echo $j | wc -c), которая к тому же выполняется в под­оболочке:

#!/bin/bash

# longest-word3 : поиск самой длинной строки в файле

for i; do

if [[ -r $i ]]; then

max_word=

max_len=

for j in $(strings $i); do

len=${#j}

if (( len > max_len )); then

max_len=$len

max_word=$j

fi

done

echo "$i: '$max_word' ($max_len characters)"

fi

shift

done

Далее, сравним эффективность двух версий с помощью команды time:

[ [email protected] ~]$ time longest-word2 dirlist-usr-bin.txt

dirlist-usr-bin.txt: 'scrollkeeper-get-extended-content-list' (38 characters)

real 0m3.618s

user 0m1.544s

sys 0m1.768s

[ [email protected] ~]$ time longest-word3 dirlist-usr-bin.txt

dirlist-usr-bin.txt: 'scrollkeeper-get-extended-content-list' (38 characters)

real 0m0.060s

user 0m0.056s

sys 0m0.008s

Первоначальной версии потребовалось 3,618 секунды, чтобы просканировать текстовый файл, тогда как новой версии, использующей механизм подстановки параметров, понадобилось всего 0,06 секунды — весьма существенное улучшение.

Вычисление и подстановка арифметических выражений


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

$((выражение))

где выражение — это любое допустимое арифметическое выражение.

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

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

Основание системы счисления


В главе 9 мы познакомились с восьмеричными (в системе счисления с основанием 8) и шестнадцатеричными (в системе счисления с основанием 16) числами. В арифметических выражениях командная оболочка позволяет использовать целочисленные константы в системах счисления с любым основанием. В табл. 34.1 показаны формы записи чисел с указанием основания системы счисления.

Таблица 34.1. Определение основания системы счисления

Форма записи

Описание

Число

По умолчанию числа без упоминания системы счисления интер­претируются как десятичные числа (в системе счисления с основанием 10)

0число

В арифметических выражениях числа, начинающиеся с нуля, интерпретируются как восьмеричные (в системе счисления с основанием 8)

0xчисло

Форма записи шестнадцатеричных чисел

основание#число

Число в системе счисления с указанным основанием


Несколько примеров:

[ [email protected] ~]$ echo $((0xff))

255

[ [email protected] ~]$ echo $((2#11111111))

255

В этих примерах выводится значение шестнадцатеричного числа ff (наибольшее двухзначное число) и наибольшее восьмизначное двоичное число (в системе счисления с основанием 2).

Унарные операторы


Оболочка поддерживает два унарных оператора, + и -, используемых для обозначения положительных и отрицательных чисел соответственно.

Простая арифметика


В табл. 34.2 перечислены обычные арифметические операторы.

Таблица 34.2. Арифметические операторы

Оператор

Описание

+

Сложение

-

Вычитание

*

Умножение

/

Целочисленное деление

**

Степень числа

%

Деление по модулю (остаток от целочисленного деления)


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

Поскольку оболочка поддерживает только арифметические операции с целыми числами, результатом деления всегда будет целое число:

[ [email protected] ~]$ echo $(( 5 / 2 ))

2

Это обстоятельство увеличивает важность операции определения остатка от деления:

[ [email protected] ~]$ echo $(( 5 % 2 ))

1

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

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

#!/bin/bash

# modulo : демонстрация оператора деления по модулю

for ((i = 0; i <= 20; i = i + 1)); do

remainder=$((i % 5))

if (( remainder == 0 )); then

printf "<%d> " $i

else

printf "%d " $i

fi

done

printf "n"

Запустив этот сценарий, вы получите следующий результат:

[ [email protected] ~]$ modulo

<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>

Присваивание


Хотя на данном этапе это не очевидно, тем не менее арифметические выражения могут выполнять операцию присваивания. Мы уже выполняли присваивание много раз, хотя и в других контекстах. Каждый раз, передавая переменной число, мы выполняем присваивание. То же самое можно делать в арифметических выражениях:

[ [email protected] ~]$ foo=

[ [email protected] ~]$ echo $foo

[ [email protected] ~]$ if (( foo = 5 ));then echo "It is true."; fi

It is true.

[ [email protected] ~]$ echo $foo

5

В примере выше мы сначала присвоили переменной foo пустое значение и проверили, что она действительно получила пустое значение. Далее выполнили коман­ду if с составной командой (( foo = 5 )). Эта команда имеет два интересных аспекта: (1) она присваивает значение 5 переменной foo и (2) оценивает ее значение как истинное, потому что присваивание прошло успешно.

ПРИМЕЧАНИЕ

Важно запомнить значение оператора = в примере выше. Одиночный знак = выполняет присваивание: выражение foo = 5 говорит: «Сделать значение переменной foo равным 5». Двойной знак == определяет эквивалентность: выражение foo == 5 говорит: «Переменная foo равна 5?» Это обстоятельство может вызывать путаницу, потому что команда test интерпретирует одиночный знак = как оператор сравнения строк. Это еще одна причина предпочесть более современные составные команды [[ ]] и (( )) вместо test.

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

Таблица 34.3. Операторы присваивания

Форма записи

Описание

параметр = значение

Простое присваивание. Присваивает указанное значение указанному параметру

параметр += значение

Присваивание со сложением. Эквивалентно выражению параметр = параметр + значение

параметр -= значение

Присваивание с вычитанием. Эквивалентно выражению параметр = параметр - значение

параметр *= значение

Присваивание с умножением. Эквивалентно выражению параметр = параметр ? значение

параметр /= значение

Присваивание с целочисленным делением. Эквивалентно выражению параметр = параметр ? значение

параметр %= значение

Присваивание с делением по модулю. Эквивалентно выражению параметр = параметр % значение


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

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


Командная строка Linux. Полное руководство отзывы

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

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