Командная строка Linux [Полное руководство]
У. Шоттс Рекомендовано Linux Foundation
2016
Переводчик А. Макарова
Технический редактор Н. Суслова
Литературный редактор А. Пасечник
Художники С. Заматевская, С. Маликова
Корректоры С. Беляева, Н. Викторова
Верстка Л. Соловьева
У. Шоттс
Командная строка Linux. Полное руководство. — СПб.: Питер, 2016.
ISBN 978-5-496-02303-0
© ООО Издательство "Питер", 2016
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Карин
Благодарности
Я хочу поблагодарить всех, кто помог появиться на свет этой книге.
В первую очередь тех, кто вдохновил меня: Дженни Уотсон (Jenny Watson), рецензента издательства Wiley Publishing, — она первая предложила написать книгу о языке сценариев командной оболочки. Несмотря на то что издательство Wiley не приняло мое предложение, именно это обстоятельство можно назвать причиной появления на прилавках книжных магазинов этой книги. Я благодарен Джону Двораку (John C. Dvorak), известному колумнисту и большому эрудиту, — в эпизоде своего видеоподкаста «Cranky Geeks» он дал великолепный посыл творческому процессу: «Черт! Пишите по 200 слов в день в течение года, и получите роман». Следуя его совету, я писал по одной странице в день до тех пор, пока не получил книгу. Не могу не упомянуть и Дмитрия Попова (Dmitri Popov), написавшего статью в журнале «Free Software Magazine» под названием «Creating a book template with Writer», — именно она вдохновила меня использовать OpenOffice.org Writer для набора текста. Результат получился изумительным.
Далее, спасибо добровольцам, которые помогли выпустить оригинал, свободно распространяемую версию этой книги (доступна на LinuxCommand.org): Марк Полески (Mark Polesky) выполнил большую редакторскую работу и проверил текст книги. Джесси Беккер (Jesse Becker), Томаш Хщонович (Tomasz Chrzczonowicz), Майкл Левин (Michael Levin) и Спенс Майнер (Spence Miner) также проверили отдельные фрагменты книги и представили свои рецензии. Карен М. Шоттс (Karen M. Shotts) много часов посвятила правке моей оригинальной рукописи.
Кроме того, спасибо добрым людям из No Starch Press, которые серьезно потрудились над созданием коммерческой версии книги: Серене Янг (Serena Yang), управляющей производством; Киту Фанчеру (Keith Fancher), моему редактору; и остальным сотрудникам No Starch Press.
И наконец, спасибо читателям LinuxCommand.org, приславшим мне так много добрых писем. Их поддержка помогла поверить, что я действительно чего-то стою!
Введение
Я хочу поведать вам историю. Нет, не о том, как в 1991-м Линус Торвальдс создал первую версию ядра Linux. Эту историю вы прочитаете в других книгах о Linux. Я не стану рассказывать вам, как несколькими годами ранее Ричард Столлман начал проект GNU по созданию свободной Unix-подобной операционной системы. И эту апокрифическую историю можно узнать из других книг о Linux. Но я хочу рассказать, как можно вернуть управление своим компьютером.
В конце 1970-х, когда я, будучи студентом колледжа, только начинал заниматься компьютерами, еще продолжалась IT-революция. Появление микропроцессора сделало возможным приобретение компьютеров простыми людьми, такими как вы или я. Сегодня многим трудно представить себе мир, в котором компьютеры (огромные вычислительные машины) принадлежали только крупным компаниям и правительствам, а обычным людям они были недоступны.
Современный мир сильно изменился. Компьютеры повсюду, от крошечных наручных часов до гигантских вычислительных центров, разбросанных по всему миру. Вдобавок к вездесущим компьютерам у нас появились и сети, связывающие их друг с другом, и, благодаря всему этому, для нас начался новый век небывалых личных возможностей и творческой свободы. Но обратили ли вы внимание, что за последние два десятилетия стало происходить кое-что еще? Одна гигантская корпорация захватила контроль над большинством компьютеров в мире и стала решать за вас, что можно и что нельзя делать с ним. Множество людей по всему миру противостоят этому. Они борются за сохранение контроля над своими компьютерами, создавая собственное программное обеспечение. Они строят Linux.
Сейчас принято употреблять термин «свобода» в отношении Linux, но я не думаю, что большинство знает, что в действительности подразумевается под свободой. Свобода — это возможность самому решать, что будет делать ваш компьютер, и единственный путь к достижению этой свободы — знание того, что он делает. Свобода — это компьютер без секретов, в котором все можно узнать, если только не лениться.
Зачем нужна командная строка?
Обращали ли вы внимание, что в фильмах, когда «суперхакер» — парень, способный за 30 секунд взломать суперзащищенную военную систему, — садится за компьютер, он никогда не берется за мышь? Создатели фильмов инстинктивно понимают, что мы, будучи людьми, можем сделать за компьютером что-то действительно стоящее, только вводя команды с клавиатуры.
Большинство современных пользователей компьютеров знакомы только с графическим интерфейсом (Graphical User Interface, GUI) и верят производителям и экспертам, что интерфейс командной строки (Command Line Interface, CLI) — это раннее средневековье. Открою тайну: интерфейс командной строки — удобный и выразительный способ общения с компьютером, во многом напоминающий способ письменного общения между людьми. Как однажды было подмечено, «графический пользовательский интерфейс делает простые задачи еще проще, а интерфейс командной строки делает сложные задачи выполнимыми», — это высказывание остается истинным и по сей день.
Поскольку операционная система Linux создавалась на основе семейства операционных систем Unix, она унаследовала богатое разнообразие инструментов командной строки Unix. ОС Unix заняла ведущее положение в начале 1980-х (хотя появилась на десяток лет раньше), еще до повсеместного распространения графического интерфейса, и, соответственно, широко использовала интерфейс командной строки. Фактически одной из основных причин, по которой первопроходцы Linux выбрали эту ОС, а не, скажем, Windows NT, была мощная поддержка интерфейса командной строки, который «делает сложные задачи выполнимыми».
О чем эта книга
Эта книга представляет обширный обзор «жизни» в командной строке Linux. В отличие от других книг, посвященных одной программе, такой как командный интерпретатор bash, в этой книге я попытаюсь рассказать, как поладить с интерфейсом командной строки в более широком аспекте. Как он работает? Что можно сделать с его помощью? Как лучше его использовать?
Эта книга не об администрировании системы Linux. Даже при том, что любое серьезное обсуждение командной строки неизменно ведет к обсуждению тем администрирования системы, эта книга затрагивает лишь узкий круг задач, имеющих отношение к администрированию. Но она готовит читателя к дополнительным исследованиям, закладывая основы знаний, необходимых для использования командной строки как основного инструмента для решения любых серьезных задач системного администрирования.
Эта книга исключительно о Linux. Многие книги пытаются расширить свою целевую аудиторию, включая в обсуждение другие платформы, такие как Unix и Mac OS X. По этой причине в них обсуждаются лишь общие темы. Эта книга, напротив, посвящена только современным дистрибутивам Linux. И хотя девяносто пять процентов сведений будут полезны пользователями других Unix-подобных систем, основной целевой аудиторией этой книги являются пользователи командной строки современных версий Linux.
Кому адресована эта книга
Эта книга адресована новым пользователям Linux, мигрирующим с других платформ. Весьма вероятно, что вы — «опытный пользователь» определенной версии Microsoft Windows. Возможно, руководитель дал вам задание освоить администрирование Linux-сервера или, может быть, вы обычный пользователь, уставший от нескончаемых проблем безопасности и решивший попробовать Linux. Кем бы вы ни были, здесь вас ждет радушный прием.
Однако следует отметить, что в освоении Linux нет простых путей. Изучение командной строки — непростая задача, требующая определенных усилий. Не то чтобы это чересчур сложно, скорее очень многообразно. Обычная система Linux содержит тысячи программ, которые можно использовать в командной строке. Поэтому имейте в виду, что желание изучить командную строку должно быть осознанным и целенаправленным.
С другой стороны, изучение командной строки Linux чрезвычайно полезно. Если вы считаете себя опытным пользователем, подождите немного, и вы узнаете, что такое действительно опытный пользователь. Кроме того, в отличие от других навыков работы с компьютером, умение работать в командной строке еще долго будет оставаться полезным. Навыки, приобретенные сегодня, останутся полезными и через 10 лет. Командная строка выдержала испытание временем. Если у вас нет опыта программирования — не волнуйтесь, мы поможем в его приобретении.