LXF171:Интерфейс командной строки вашего Raspberry Pi
|
|
|
Raspberry Pi: Освоим команды
Бен Эверард показывает, как освоить интерфейс командной строки вашего Raspberry Pi и высвободить всю его мощь, даже не прикасаясь к мыши.
Как вы, несомненно, уже обнаружили, у Raspbian имеется графический интерфейс, подобный интерфейсу Windows или Mac OS X. В нем вы можете выполнять большую часть своих повседневных задач. Здесь есть менеджер файлов, web-браузер, текстовый редактор и куча других полезных приложений. Однако иногда вам нужен интерфейс, который был бы немного мощнее, и вот тут-то и выходит на сцену Command Line Interface (CLI). Также он известен под названием Terminal [терминал] или Shell [оболочка].
Это чисто текстовый интерфейс, где вы печатаете команды и получаете ответ на них. Не будем вас обманывать: сначала он кажется несколько запутанным. Но переживать не стоит: как только вы начнете практиковаться, он будет становиться все более понятным, и время, потраченное на его изучение, с лихвой окупится в будущем.
Первым делом надо открыть терминал. Щелкните по LXTerminal на рабочем столе Raspbian.
Тут появится строка примерно такого вида:
pi@raspberrypi ~ $
Это подсказка командной строки. Когда вы ее видите, вы понимаете, что система готова принимать команды.
Введите pwd и нажмите на кнопку Enter. Вы должны увидеть
/home/pi
Если вы изменили свое имя пользователя, то строка будет другой. Кажущаяся тайнописью команда pwd означает Print Working Directory, и система просто выводит директорию, где вы в настоящий момент находитесь. Когда вы запускаете терминал, он перейдет в вашу домашнюю директорию (в разделе Raspbian Storage вы найдете больше информации о том, что означает /home/).
Теперь мы знаем, где мы находимся; следующим логическим шагом будет перемещение по директориям. Это делается с помощью команды cd (change directory). Попробуйте ввести:
cd ..
pwd
Вы должны увидеть, что система вернула /home. Это потому, что мы дали команду изменить директорию (cd) на ‘..’, а две точки всегда указывают на родительскую директорию. Чтобы вернуться назад в домашнюю директорию, можно ввести cd pi. Есть еще один способ сделать это. Знак ~ (тильда) всегда указывает на домашнюю директорию, поэтому где бы вы ни находились в файловой системе, вы можете ввести cd ~ — и попадете к себе «домой».
Теперь наберите ls и нажмите на Enter. Выведется список всех файлов из текущей директории. Одно из огромных преимуществ команд в том, что мы можем сказать им, как именно они должны себя вести. Это делается с помощью флагов — они идут после команды и начинаются с ‘-’. Например, если нужно перечислить все файлы в текущей директории (включая скрытые файлы, которые в системах, основанных на Unix, начинаются с ‘.’), используется флаг -a. Поэтому в терминале введите ls -a.
На сей раз вы должны увидеть больше файлов. Еще один флаг для ls — это -l. Он дает нам больше информации о каждом файле. Попробуйте его, введя ls -l . Вы даже можете комбинировать флаги, как, например, в ls -al.
Учимся выбирать команды
Сейчас вы, вероятно, размышляете о том, откуда вам знать, каким командами и какими флагами надо воспользоваться для решения определенной задачи.. Здесь есть хорошая новость и плохая новость. Хорошая новость в том, что выяснить, какие флаги имеются для команды, обычно не проблема. Большинство из них поддерживают флаги -h или --help, которые дадут вам информацию о флагах, принимаемых командой, и их применении. Например, запустив ls --help, вы увидите длинный список флагов и того, что они делают, в том числе:
-a, --all не игнорировать записи, начинающиеся с .
…
-l использовать формат длинного списка
Второй способ получить информацию по команде — набрать man. Это сокращение от manual [руководство]. Он использует один аргумент, то есть слово после команды, перед которым нет дефиса. Затем он отображает информацию по команде, введенной в качестве аргумента. Чтобы посмотреть man по ls, введите man ls. Можете перемещаться по страницам с помощью клавиш со стрелками или клавиш Page Up и Page Down, чтобы прокручивать их быстрее. Чтобы найти в справочнике man слово или фразу, введите /, а затем нужную фразу. Например, /-l найдет все совпадения для -l. Можете использовать клавишу N и Shift+N, чтобы перемещаться вперед и назад по вхождениям -l.
По мере знакомства с большим количеством команд было бы полезно заглядывать в help и в man, чтобы узнать, что они делают. Конечно, вы всегда можете получить информацию по команде в Google, если сочтете текстовую подсказку немного неудобной, однако если вы останетесь в терминале, это поможет вам лучше его освоить.
Как же мне узнать?..
Помните, мы сказали, что есть хорошая новость и плохая новость? Что ж, плохая новость в том, что не зная, как называется нужная команда, найти ее будет весьма хитро. Одной из удобных функций является поиск по ключевому слову man. Он осуществляется с помощью флага -k.
Чтобы найти в вашей системе все программы, относящиеся к ‘browser’, запустите man -k browser. Вы увидите, что в списке будут перечислены не только программы командной строки, но и графические программы. Это потому, что между ними на самом деле нет разницы. Можно запускать окна из терминала и даже управлять ими.
Если у вас есть Iceweasel (ребрендинговая версия Firefox) на вашем Pi (по умолчанию она там не установлена), вы можете открыть TuxRadar.com в новой вкладке в открытом окне Iceweasel с помощью команды iceweasel --new-tab www.tuxradar.com.
Теперь мы быстренько познакомим вас с несколькими полезными командами. rm удаляет (ReMoves) файл. mkdir создает новую директорию. cp копирует файл из одного места в другое. Ему нужно два аргумента: исходный файл и новый файл. cat выводит содержание одного или более текстовых файлов. Он может принять сколько угодно аргументов, каждый для одного текстового файла, и передать их содержимое в терминал.
less — более дружественный способ просмотра текстовых файлов. Он позволяет прокручивать файл вверх-вниз с помощью клавиш со стрелками. Чтобы выйти из программы и вернуться в командную строку, нажмите на Q. Мы будем использовать все эти команды в примерах ниже, так что задерживаться на них не будем.
find — полезная команда для поиска файлов на вашем компьютере. Вы используете ее в формате find <где искать> <флаги>. Например, чтобы найти все файлы на вашем компьютере, которые были изменены за день до этого, запустите
find / -mtime 1
На стр. 59 вы найдете более подробную информацию о том, что это значит, и о разных флагах, которые можно использовать.
Больше мощи
Вы можете подумать: «Все это отлично делается через графический интерфейс, и мне незачем запоминать всякие мутные команды и флаги». И вы будете правы — но лишь потому, что мы пока не познакомили вас с более мощными функциями. Первая из них — шаблоны. Это символы, которые вы можете вставлять и которые соответствуют другим символам. Звучит довольно непонятно, но мы попытаемся пояснить это на примерах.
Во-первых, мы создадим новую директорию, переместимся в нее и создадим несколько пустых файлов (мы используем команду touch, которая создает пустой файл с именем каждого аргумента). Подсказка — вы можете использовать автозаполнение (см. врезку вверху), чтобы не набирать постоянно длинные названия, как, например, во второй строке.
mkdir wildcards
cd wildcards
touch one two three four
touch one.txt two.txt three.txt four.txt
Затем запустим ls, чтобы увидеть, какие файлы есть в новой директории. Вы должны увидеть восемь.
Первый шаблон, который мы будем использовать — *. Он соответствует любой строке от нуля до большего количества символов. В простейшем случае он соответствует любому файлу в директории. Попробуйте запустить:
ls *
Пока это не особо удобно, но мы можем поставить его среди других символов. Как вы думаете, чему будет соответствовать *.txt? Подумайте, а потом запустите:
ls *.txt
чтобы проверить правильность ваших выводов. Как насчет one*? Снова запустите
ls one*
чтобы увидеть, правы ли вы. Шаблоны можно использовать с любой программой командной строки. Особенно они удобны для сортировки файлов. Чтобы скопировать все текстовые файлы в новую директорию, запустите
mkdir text-files
cp *.txt text-files
Затем проверим, правильно ли это сделано, командой
ls text-files/
Шаблон: ?
Второй шаблон, который мы рассмотрим, это ?. Он соответствует любому одиночному символу. Как вы думаете, чему будет соответствовать
ls ???
Попробуйте догадаться, а затем запустите команду, чтобы проверить правильность своей догадки.
Мы также можем сами создавать шаблоны, соответствующие символам, которые нам нужны. [abc] будет соответствовать маленьким буквам А, В и С. Как вы думаете, чему будет соответствовать ls [ot]*? Теперь попробуйте запустить
ls [!ot]*
Что нового внес восклицательный знак? Он должен был вернуть все, что не начинается с маленьких букв О или Т.
Все команды, которые рассмотрели, выводили отображение результата в терминал. По большей части нам именно это и надо, но иногда полезно сделать с ним что-то другое. В Linux можно сделать две других вещи: отправить результат в файл или в другую программу.
Чтобы отправить его в файл, используйте символ >, за которым следует имя файла. Запустите
ls > files
cat files
и вы должны увидеть, что создан новый файл под названием files, и в нем содержится результат команды ls.
Вторая опция, возможность отправить результат в другую программу, являет собой еще одну действительно мощную функцию командной строки Linux, поскольку она позволяет соединить несколько команд в цепочку, сделав из них одну супер-команду.
Есть множество команд, работающих с текстом и предназначенных для работы таким способом. Они не относятся к теме нашего урока, но если вы будете продолжать использовать командную строку, вы обязательно с ними столкнетесь и начнете понимать, как их можно соединить вместе.
Рассмотрим очень простой пример. Если вы запустите find / (но пока что не делайте этого!), вам выведется список всех файлов системы.
У вас получится длиннейший список из файловых имен, которые будут быстро бежать по экрану. Однако вместо того, чтобы выводить его на экран, мы можем отправить его в другую команду, которая сделает результат более удобным для чтения. Мы можем использовать для этого команду less, которую рассматривали ранее. Запустите:
find / | less
Идем дальше
Мы смогли коснуться только основ использования командной строки, но для начала вам этого должно хватить, и будем надеяться, что вы увидите, насколько мощен интерфейс командной строки, когда начнете его понимать.
Если вы хотите узнать больше (а это следует сделать!), вам в помощь есть множество ресурсов, как в печатном виде, так и онлайн. Очень хорошим стартовым пунктом станет www.linuxcommand.org. Их книгу (The Linux Command Line) можно приобрести в книжных магазинах, или найти бесплатно онлайн (www.linuxcommand.org/lc3_learning_the_shell.php).