LXF106:Терминал-разговорник
(→''mv'' и ''cp'') |
(→Посмторим...) |
||
(не показана 1 промежуточная версия 1 участника) | |||
Строка 216: | Строка 216: | ||
содержимое. Если файл текстовый, то это можно сделать прямо в терминале, вводя нужные команды. Если вам нужно вывести только первые 10 строк файла (чтобы, например, убедиться, что вы нашли именно то, что хотели), используйте ''head''. | содержимое. Если файл текстовый, то это можно сделать прямо в терминале, вводя нужные команды. Если вам нужно вывести только первые 10 строк файла (чтобы, например, убедиться, что вы нашли именно то, что хотели), используйте ''head''. | ||
− | Перейдите в каталог, где хранится нужный файл, а затем | + | Перейдите в каталог, где хранится нужный файл, а затем наберите ''head'' и имя файла. Для просмотра первых 10 строк файла '''Text.txt''' |
− | + | ||
напишите: | напишите: | ||
Строка 237: | Строка 236: | ||
cat Text.txt | cat Text.txt | ||
− | Она действительно выводит | + | Она действительно выводит всё содержимое файла ''Text.txt'', но увидеть вы сможете только то, что помещается на экране. Начало файла |
− | + | пронесётся со свистом у вас перед глазами, поэтому, чтобы посмотреть | |
его, придется использовать полосу прокрутки. Альтернативный вариант – применить команду ''less'': | его, придется использовать полосу прокрутки. Альтернативный вариант – применить команду ''less'': | ||
less Text.txt | less Text.txt | ||
− | В этом случае, для перехода между страницами файла используются клавиша '''Page Down''', а перемещение по строкам можно осуществлять при помощи клавиш-стрелок. В отличие от ''head'' и ''tail, less'' не возвращает вас в строку ввода терминала до тех пор, пока вы не | + | В этом случае, для перехода между страницами файла используются клавиша '''Page Down''', а перемещение по строкам можно осуществлять при помощи клавиш-стрелок. В отличие от ''head'' и ''tail, less'' не возвращает вас в строку ввода терминала до тех пор, пока вы не нажмёте |
клавишу '''Q''' для выхода. | клавишу '''Q''' для выхода. | ||
Строка 271: | Строка 270: | ||
Если архив защищен паролем, то в строке ввода появится приглашение ввести его. | Если архив защищен паролем, то в строке ввода появится приглашение ввести его. | ||
− | === | + | ===Посмотрим...=== |
Находясь за рубежом, вы неизбежно сталкиваетесь с незнакомыми вам словами. Чтобы понять их значение, вы ищите их в словаре, а | Находясь за рубежом, вы неизбежно сталкиваетесь с незнакомыми вам словами. Чтобы понять их значение, вы ищите их в словаре, а | ||
− | как же быть с командами Linux? Бывает, что необходимо выяснить, какое действие выполняет та или иная утилита и как | + | как же быть с командами Linux? Бывает, что необходимо выяснить, какое действие выполняет та или иная утилита и как её применить. К |
счастью, есть несколько способов найти информацию о разных командах. | счастью, есть несколько способов найти информацию о разных командах. | ||
− | Местным аналогом поиска слова в англо-русском разговорнике является использование команды ''man''. | + | Местным аналогом поиска слова в англо-русском разговорнике является использование команды ''man''. Её название образовано |
сокращением английского слова manual (справочник), а сама команда выводит информацию о нужной утилите и несколько примеров | сокращением английского слова manual (справочник), а сама команда выводит информацию о нужной утилите и несколько примеров | ||
− | + | её использования. Чтобы получить информацию о команде ''mkdir'', введите: | |
man mkdir | man mkdir | ||
− | Вы увидите страницу с информацией об использовании команды ''mkdir'' и | + | Вы увидите страницу с информацией об использовании команды ''mkdir'' и её опциях. Для перемещения по странице используются клавиши со стрелками, для выхода – клавиша '''Q'''. |
''man''-страницы отличаются друг от друга по качеству материала, поскольку информация | ''man''-страницы отличаются друг от друга по качеству материала, поскольку информация | ||
− | для каждой команды предоставляется непосредственно | + | для каждой команды предоставляется непосредственно её автором. Некоторые страницы |
содержат более подробную информацию, другие – менее. Если вы хотите получить более | содержат более подробную информацию, другие – менее. Если вы хотите получить более | ||
подробные сведения, используйте команду ''info''. ''Info''-страницы разбиты на отдельные разделы. Перемещаться назад и вперед между | подробные сведения, используйте команду ''info''. ''Info''-страницы разбиты на отдельные разделы. Перемещаться назад и вперед между |
Текущая версия на 14:26, 28 октября 2010
|
|
|
Содержание |
[править] Ду ю спик команд лайн?
- Для тех, кто не силен в этом языке, использование командной строки будет сродни путешествию за рубеж. Если вы не желаете испытывать затруднений в общении, полистайте разговорник Джо Касселза.
Не все пользователи Linux являются закоренелыми компьютерщиками. Некоторым из нас, конечно, нужно знать внутреннюю механику ПК; другим же достаточно просто ее использовать. Всегда будет существовать определенное число людей, занимающих промежуточное положение, но есть одна вещь, совершенно четко отделяющая компьютерщиков от продвинутых пользователей — это интерфейс командной строки (CLI). Ветераны Linux клянутся, что он — единственный способ сделать все правильно, хотя большая часть из нас избегает его, как чумы.
Новички боятся командной строки из-за смеси ее вычурного синтаксиса и необходимости аккуратно набирать команды с клавиатуры. У других работа в терминале ассоциируется с суровой «гиканутостью». Но, согласитесь, иметь пару иностранных фраз в запасе не помешает. Это не то же самое, что изучить язык, но, когда будет необходимость, вы сможете найти дорогу на пляж, в бар и ресторан.
Тот же метод можно применить и к командной строке. Иногда бывает полезно отойти от использования графического интерфейса и сделать самостоятельно всю грязную работу, и для этого вы не должны быть дипломированным техническим гуру. Подобно тому, как при путешествии за границу вам может пригодиться всего несколько ключевых фраз, так и здесь вам потребуется лишь пара-тройка основных команд и их комбинации.
[править] Смена каталога: cd
Большинство графических оболочек так или иначе содержат файловый менеджер (например, Nautilus в Gnome и Konqueror в KDE), и большинство пользователей знакомы с каталогами, которые представлены в них папками, где можно хранить файлы или другие папки. С помощью файлового менеджера можно просматривать содержимое каталогов, но, бывает, вам нужно выполнить какие-то действия внутри него. Зачастую, наиболее эффективное решение для данной задачи – командная строка. Попасть внутрь любого каталога можно командой cd. Например, переход в папку с видео происходит так:
cd /home/username/Videos
Здесь предполагается, что папка Videos находится в вашем домашнем каталоге. Замените username вашим именем пользователя. Переход в папку Music аналогичен:
cd /home/username/Music
а набрав
cd /etc/mplayer
вы перейдете в каталог настроек программы mplayer.
[править] Команды быстрого вызова
Вместе с командой cd можно использовать различные сокращения. Например, символ ~ эквивалентен пути к вашему домашнему каталогу. Значит, чтобы «вернуться домой», достаточно просто набрать:
cd ~
а чтобы перейти в Videos, следует написать:
cd ~/Videos
После успешной смены каталога вы увидите имя текущей директории в приглашении терминала. Для перехода к предыдущему каталогу [аналогично кнопке Назад в файловом менеджере, – прим.ред.] служит cd -. Это полезно, когда вам необходимо быстро перемещаться по директориям туда и обратно.
[править] Создание папки: mkdir
Для создания новой папки используется команда mkdir. Например:
mkdir New
Для того, чтобы создать новую папку внутри уже существующей, сначала перейдите внутрь неё при помощи cd. Так, чтобы создать папку New2 внутри New, необходимо проделать следующее:
cd New mkdir New2
Если вы хотите создать дерево каталогов, состоящее из нескольких вложенных друг в друга папок, то переходы вовнутрь и вызовы mkdir – весьма кропотливое и длительное занятие. В GUI их не избежать, а в терминале вы сможете обойтись всего одной строкой, если воспользуетесь командой mkdir с опцией -p. Для создания папки folder1 внутри папки folder2, которая, в свою очередь, находится внутри folder3, наберите:
mkdir -p folder3/folder2/folder1
[править] Где я? pwd
При постоянной смене каталогов и создании новых папок достаточно легко заблудиться. Неплохая профилактика – время от времени спрашивать себя: «Где я нахожусь?» Задать этот вопрос системе можно при помощи команды pwd. Введите ее в терминале, и Linux сообщит вам полный путь до рабочего каталога, в котором вы находитесь в данный момент.
[править] mv и cp
Вот вы и научились перемещаться по каталогам; а как же копировать и перемещать папки и файлы? В GUI было бы достаточно открыть папку-источник и папку-назначение и перетащить файл или папку из одного места в другое. Это очень простое действие, но открытие папки-источника и папки-назначения может занять некоторое время, особенно если у них большой уровень вложенности. Тогда проще сделать это в командной строке.
Копирование и перемещение – очень похожие операции. В обоих случаях вам необходимо знать местоположение и имя копируемого или перемещаемого источника и местоположение и имя объекта-приёмника. В случае перемещения исходный файл удаляется, в случае копирования – сохраняется. Команда копирования называется cp, а перемещения – mv. Используются они одинаково: после команды последовательно указывается исходный, а затем – конечный объект.
Чтобы скопировать файл text.txt внутри одного и того же каталога, выполните:
cp text.txt text1.txt
Так как копия файла создаётся в той же самой директории, необходимо указать ей имя, отличное от исходного (у нас – text1.txt). Это совершенно необязательно, если копия файла создается в другой папке. Допустим, что text.txt находится в домашнем каталоге, а его нужно скопировать в Documents. Тогда команда будет такой:
cp text.txt ~/Documents/text.txt
Чтобы переместить, а не скопировать файл, используйте mv:
mv text.txt ~/Documents/text.txt
Если необходимо скопировать или переместить какой-то файл из каталога, не являющегося текущим, нужно всего лишь указать полный путь к источнику. То есть, чтобы скопировать файл text.txt из папки Documents в Music (в каком бы каталоге вы ни находились), нужно написать:
cp ~/Documents/text.txt ~/Music/text.txt
Для перемещения файла замените cp на mv.
[править] Шаблоны
По правде сказать, копирование и перемещение файлов один за другим таким способом – та ещё задачка, но процесс можно значительно ускорить, если использовать шаблоны. Например, переместить все JPEG-изображения из домашнего каталога в папку Pictures можно так:
mv ~/*.jpg ~/Pictures
Другой полезный спецсимвол – точка (.) – обозначает текущий рабочий каталог. Чтобы перенести все mp3-файлы из папки Music туда, где вы находитесь, наберите:
mv ~/Music/*.mp3 .
Команду mv можно использовать и для переименования файлов: по сути, вы перемещаете файл из папки-источника в нее же, но под другим именем:
mv text.txt words.txt
[править] Что здесь? ls
Команда ls позволяет в любой момент посмотреть содержимое папки. Самое простое: вы набираете ls (сокращение от анг. list – список), нажимаете Enter и получаете список имен всех файлов и папок, находящихся в текущем каталоге.
Однако вы не ограничены им – можно указать любую другую папку, набрав ее относительный или абсолютный путь. Например, чтобы увидеть содержимое директории Pictures в вашем домашнем каталоге, используйте:
ls Pictures
Если же вы обретаетесь не у себя дома, измените команду так:
ls ~/Pictures
[править] И снова шаблоны
Использование шаблонов позволяет получить список файлов определенного типа. Так, команда
ls ~/Pictures/*.png
выводит список всех PNG-файлов в папке с изображениями.
Опция -R позволяет получить список всех файлов нужной папки вместе с содержимым всех вложенных в нее каталогов [т.е. рекурсивно, отсюда и R, – прим. ред.]. Например:
ls ~/Pictures -R
В результате вы получите отдельные списки файлов для каждого подкаталога в Pictures. Если есть необходимость получить список скрытых файлов, используйте -a. Команда
ls ~ -a
отображает все файлы и папки, включая скрытые, находящиеся в вашем домашнем каталоге.
[править] Опция -X
Графические программы сортируют файлы и папки по имени, типу, времени модификации и так далее. Вы можете сделать это и в терминале, передав ls подходящие опции. Чтобы отсортировать список по типу, наберите:
ls -X
В результате вы получите список файлов в текущем каталоге, отсортированный по расширению: сначала все вложенные папки, а затем файлы с расширениями в алфавитно-цифровом порядке. Для сортировки по времени и дате используйте опцию -t, а по размеру – опцию -S. Можно использовать несколько опций одновременно, но в этом случае важно помнить, что некоторые из них отменяют действие предыдущих. Например, по команде ls -t -a вы получите список содержимого текущей папки, отсортированный по дате с учетом скрытых файлов. А по команде ls -S -X список будет отсортирован только по типу, а не по размеру и расширению.
[править] Где файл? locate и grep
Для поиска файлов можно использовать несколько команд. Первая из них, locate привлекает заранее созданную базу данных имен. Она возвращает список всех файлов, совпадающих по имени с запросом, и полные пути до них. Например, команда:
locate text
возвращает список всех файлов, содержащих в имени строку ‘text’. По умолчанию поиск происходит с учетом регистра, поэтому файлы с именем Text.txt не будут отображаться. Однако, опция -i' делает процесс регистронезависимым. Если, как в приведенном примере, результатов поиска окажется очень много, можно ограничить возвращаемый командой список, чтобы им было проще управлять. Это делается при помощи опции -n, за которой следует количество возвращаемых записей. Команда
locate -n 5 text
вернет список из пяти первых результатов поиска строки ‘text’ в именах файлов или путях.
[править] Grep
Иногда требуется производить поиск не по имени файла, а по его содержимому. Это можно сделать при помощи команды grep. Для того, чтобы найти строку ‘Hello’ в файле Text.txt, используйте следующую запись:
grep Hello Text.txt
Команда возвращает строку файла, содержащую слово ‘Hello’. Команда Grep чувствительна к регистру, поэтому она не возвращает запись со строкой ‘hello’. Если вам необходимо найти по вашему запросу все файлы, содержащие строку ‘Hello’, то используйте шаблон:
grep Hello *
После этой команды происходит поиск строки ‘Hello’ во всех файлах [текущего каталога – прим. ред.]. Результат будет состоять из списка имен файлов и записей в них, содержащих искомое словосочетание. Если вы ищете строку, содержащую пробелы, заключите ее в одинарные кавычки. Например, для поиска строки ‘Linux Format’ во всех файлах каталога, используйте:
grep ‘Linux Format’ *
Для того, чтобы при поиске не учитывался регистр, используйте опцию -i. Если поиск должен проходить и внутри вложенных папок, то его можно сделать рекурсивным при помощи опции -R. Строка
grep -i ‘linux format’ *
приводит к поиску всех файлов текущего каталога, содержащих строку ‘linux format’ без учета регистра. Помните, что рекурсивный поиск и поиск без учета регистра увеличивает количество возвращаемых результатов и время работы команды. Если вы хотите быстро найти чо-то, то запрос должен быть максимально точным.
[править] Просмотр: head, tail и cat
Найдя нужный вам файл, вы, возможно, захотите посмотреть его содержимое. Если файл текстовый, то это можно сделать прямо в терминале, вводя нужные команды. Если вам нужно вывести только первые 10 строк файла (чтобы, например, убедиться, что вы нашли именно то, что хотели), используйте head.
Перейдите в каталог, где хранится нужный файл, а затем наберите head и имя файла. Для просмотра первых 10 строк файла Text.txt напишите:
head Text.txt
Для изменения числа строк используется опция -n, например:
head -n 7 Text.txt
Команда возвращает первые семь строк файла Text.txt.
Если вы хотите посмотреть последние строки файла, используйте команду tail вместо head, например, так:
tail -n 5 Text.txt
В результате будет выведено 5 последних строк файла Text.txt. Эта команда полезна для быстрой проверки последних записей файлов журнала после совершения каких-либо операций. Для просмотра всего содержимого файла предназначена команда cat:
cat Text.txt
Она действительно выводит всё содержимое файла Text.txt, но увидеть вы сможете только то, что помещается на экране. Начало файла пронесётся со свистом у вас перед глазами, поэтому, чтобы посмотреть его, придется использовать полосу прокрутки. Альтернативный вариант – применить команду less:
less Text.txt
В этом случае, для перехода между страницами файла используются клавиша Page Down, а перемещение по строкам можно осуществлять при помощи клавиш-стрелок. В отличие от head и tail, less не возвращает вас в строку ввода терминала до тех пор, пока вы не нажмёте клавишу Q для выхода.
[править] Создание архивов: zip
Большие файлы можно сжать и добавить в архив при помощи команды zip. Сжать файл image.tif в архив с именем image.zip можно так:
zip image.zip image.tif
В уже созданный архив image.zip можно добавлять другие файлы. Так, для добавления файлов image2.tif и image3.tif наберите следующее:
zip image.zip image2.tif image3.tif
[править] Шифрование
Если вы хотите зашифровать и защитить паролем ваш zip-архив, используйте опцию -e. Например для уже рассмотренного выше примера введите:
zip -e image.zip image.tif
После нажатия клавиши Enter в строке ввода появится приглашение ввести пароль, а затем – подтвердить его (он будет нужен также при извлечении данных из архива). Для распаковки архивов введите в команду unzip.
unzip image.zip
Если архив защищен паролем, то в строке ввода появится приглашение ввести его.
[править] Посмотрим...
Находясь за рубежом, вы неизбежно сталкиваетесь с незнакомыми вам словами. Чтобы понять их значение, вы ищите их в словаре, а как же быть с командами Linux? Бывает, что необходимо выяснить, какое действие выполняет та или иная утилита и как её применить. К счастью, есть несколько способов найти информацию о разных командах.
Местным аналогом поиска слова в англо-русском разговорнике является использование команды man. Её название образовано сокращением английского слова manual (справочник), а сама команда выводит информацию о нужной утилите и несколько примеров её использования. Чтобы получить информацию о команде mkdir, введите:
man mkdir
Вы увидите страницу с информацией об использовании команды mkdir и её опциях. Для перемещения по странице используются клавиши со стрелками, для выхода – клавиша Q.
man-страницы отличаются друг от друга по качеству материала, поскольку информация для каждой команды предоставляется непосредственно её автором. Некоторые страницы содержат более подробную информацию, другие – менее. Если вы хотите получить более подробные сведения, используйте команду info. Info-страницы разбиты на отдельные разделы. Перемещаться назад и вперед между разделами можно при помощи клавиш Page Down и Page Up. Для выхода из руководства нажимайте клавишу Q, а для получения информации о навигации по страницам справочника нажмите ?. В этом случае вы получите полный список опций и команд, связанных с использованием info. Постарайтесь запомнить команды навигации, поскольку некоторые страницы справочника могут быть достаточно сложными. Удачи!
[править] Путешествие продолжается...
Как и с любым другим языком, лучший способ освоить общение в командной строке – это использовать ее постоянно и учиться на своих собственных ошибках. Сначала вас расстроит ваша неспособность к разговору, но настанет день, когда вы, проснувшись, обнаружите, что приобрели новые навыки, и с ними ваша жизнь стала лучше.
Но будьте осторожны – начав однажды, вам может так понравится, что остановиться будет трудно. Представьте, что вам звонят и приглашают на шаBash. А вы начнете с шуток о командной строке, затем перейдете к разговору о каналах, процессах и pstree, а закончите обсуждением ps -fu. Прелестно. LXF