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

Тут можно читать онлайн Уильям Шоттс - Командная строка Linux. Полное руководство - бесплатно полную версию книги (целиком) без сокращений. Жанр: tbg-computers, издательство Питер, год 2016. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Командная строка Linux. Полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    Питер
  • Год:
    2016
  • ISBN:
    978-5-496-02303-0
  • Рейтинг:
    3.56/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

В книге материал излагается в тщательно выверенной последовательности, как в школе, где учитель руководит вами и направляет вас по правильному пути. Многие авторы грешат тем, что подают материал в «систематическом» порядке, имеющем определенный смысл для писателя, но способном вызывать путаницу у начинающих пользователей. Цель данной книги — познакомить вас с идеологией Unix, которая отличается от идеологии Windows.

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

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

Интервал:

Закладка:

Сделать

[me@linuxbox ~]$ echo $USER

me

Чтобы увидеть список доступных переменных, выполните следующую команду:

[me@linuxbox ~]$ printenv | less

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

[me@linuxbox ~]$ echo $SUER

[me@linuxbox ~]$

Подстановка команд

Подстановка команд позволяет использовать поток вывода команд в качестве аргументов других команд:

[me@linuxbox ~]$ echo $(ls)

Desktop Documents ls-output.txt Music Pictures Public Templates Videos

Один из моих любимых вариантов выглядит так:

[me@linuxbox ~]$ ls -l $(which cp)

-rwxr-xr-x 1 root root 71516 2012-12-05 08:58 /bin/cp

Здесь результат команды which cp передается как аргумент команде ls, благодаря чему мы получаем информацию о программе cp, не зная полного пути к ней. Подстановка команд не ограничивается такими простыми командами. Можно использовать целые конвейеры (здесь показана только часть вывода):

[me@linuxbox ~]$ file $(ls /usr/bin/* | grep zip)

/usr/bin/bunzip2: symbolic link to `bzip2'

/usr/bin/bzip2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV ), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

/usr/bin/bzip2recover: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

/usr/bin/funzip: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

/usr/bin/gpg-zip: Bourne shell script text executable

/usr/bin/gunzip: symbolic link to `../../bin/gunzip'

/usr/bin/gzip: symbolic link to `../../bin/gzip'

/usr/bin/mzip: symbolic link to `mtools'

В этом примере результаты конвейера превратились в список аргументов команды file.

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

[me@linuxbox ~]$ ls -l `which cp`

-rwxr-xr-x 1 root root 71516 2012-12-05 08:58 /bin/cp

Экранирование

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

[me@linuxbox ~]$ echo this is a test

this is a test

Или на эту:

[me@linuxbox ~]$ echo Итого $100.00

Итого 00.00

В первом примере механизм разбиения на слова удалил дополнительные пробелы из списка аргументов команды echo. Во втором — механизм подстановки параметров подставил пустую строку вместо $1, потому что не нашел такую переменную. Командная оболочка предоставляет механизм, который называется экранированием (quoting), для выборочного подавления нежелательной подстановки.

Двойные кавычки

Первый тип экранирования, который мы рассмотрим, — двойные кавычки. Если заключить текст в двойные кавычки, все специальные символы потеряют свое специальное значение и будут интерпретироваться как обычные символы. Исключение составляют: $ (знак доллара), \ (обратный слеш) и ` (обратный апостроф). То есть разбиение на слова, подстановка путей, подстановка тильды и подстановка фигурных скобок выполняться не будут, но подстановка параметров, подстановка значений арифметических выражений и подстановка команд все еще будут выполняться. Благодаря двойным кавычкам мы сможем обрабатывать имена файлов с пробелами. Представьте, что мы по ошибке создали файл с именем Два слова.txt. Если попытаться использовать это имя в командной строке, механизм разбиения слов будет интерпретировать его как два отдельных аргумента:

[me@linuxbox ~]$ ls -l Два слова.txt

ls: невозможно получить доступ к 'Два': Нет такого файла или каталога

ls: невозможно получить доступ к 'слова.txt': Нет такого файла или каталога

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

[me@linuxbox ~]$ ls -l "Два слова.txt"

-rw-rw-r-- 1 me me 18 2012-02-20 13:03 Два слова.txt

[me@linuxbox ~]$ mv "Два слова.txt" Два_слова.txt

Вот так! Теперь не нужно вводить эти противные двойные кавычки.

Запомните: подстановка параметров, подстановка значений арифметических выражений и подстановка команд все еще выполняются в двойных кавычках:

[me@linuxbox ~]$ echo "$USER $((2+2)) $(cal)"

me 4 February 2012

Su Mo Tu We Th Fr Sa

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

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

[me@linuxbox ~]$ echo this is a test

this is a test

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

[me@linuxbox ~]$ echo "this is a test"

this is a test

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

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

[me@linuxbox ~]$ echo $(cal)

February 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

[me@linuxbox ~]$ echo "$(cal)"

February 2012

Su Mo Tu We Th Fr Sa

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

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

Одиночные кавычки

Если вам требуется подавить все подстановки, используйте одиночные кавычки. Ниже для сравнения приводятся результаты неэкранированной команды и коман­ды, экранированной двойными и одиночными кавычками:

[me@linuxbox ~]$ echo text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

text /home/me/ls-output.txt a b foo 4 me

[me@linuxbox ~]$ echo "text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER"

text ~/*.txt {a,b} foo 4 me

[me@linuxbox ~]$ echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER'

text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

Как видите, каждый следующий уровень экранирования все больше и больше подавляет подстановку.

Экранирование символов

Иногда бывает необходимо экранировать только один символ. Для этого достаточно добавить перед символом обратный слеш, который в данном случае называется экранирующим символом (escape character). Часто этот прием используется в двойных кавычках, чтобы выборочно предотвратить подстановку.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x