Это четвертая статья в нашей серии о переходе на Linux. Если вы пропустили предыдущие статьи, мы рассмотрели их в Linux для новых пользователей, файлов и файловых систем и графических сред. Linux повсюду. Он используется для запуска большинства интернет-сервисов, таких как веб-серверы, серверы электронной почты и другие. Он также используется в вашем мобильном телефоне, вашей консоли и многом другом. Таким образом, вам может быть интересно попробовать Linux и узнать больше о том, как это работает.
В Linux командная строка очень полезна. В настольных системах Linux, хотя командная строка не является обязательной, вы часто увидите, что у людей окно командной строки открывается вместе с другими окнами приложений. На интернет-серверах, а когда Linux работает на устройстве, командная строка часто является единственным способом непосредственного взаимодействия с системой. Итак, хорошо знать, по крайней мере, некоторые основы командной строки.
В командной строке (часто называемой оболочкой в Linux) все делается путем ввода команд. Вы можете перечислить файлы, перемещать файлы, отображать содержимое файлов, редактировать файлы и т. д., Даже отображать веб-страницы, все из командной строки.
Навигация
В командной строке есть концепция текущего рабочего каталога (Примечание: папка и каталог являются синонимами, а в Linux их обычно называют каталогами). Многие команды будут выглядеть в этом каталоге по умолчанию, если не указан другой путь к каталогу. Например, при вводе ls в список файлов будут перечислены файлы в этом рабочем каталоге. Например:
$ ls Desktop Documents Downloads Music Pictures README.txt Videos
Команда ls Documents вместо этого будет списком файлов в каталоге Documents:
$ ls Documents report.txt todo.txt AndreyEx.pdf
Вы можете отобразить текущий рабочий каталог, набрав pwd. Например:
$ pwd /home/student
Вы можете изменить текущий каталог, введя cd, а затем каталог, в который хотите перейти. Например:
$ pwd /home/student $ cd Downloads $ pwd /home/student/Downloads
Путь к каталогу – это список каталогов, разделенных символом / (косой чертой). Каталоги в пути имеет предполагаемую иерархию, например, если путь /home/student, ожидает там каталог с именем home в верхнем каталоге, и каталог с именем student, в этом каталоге home.
Пути каталогов являются абсолютными или относительными. Абсолютные пути каталога начинаются с символа /.
Относительные пути начинаются с. (точка) или .. (точка точка). На пути, a. (точка) означает текущий каталог, а .. (точка точка) означает один каталог вверх от текущего. Например, ls ../Documents означает просмотр в каталоге до одного из текущего и отображение содержимого каталога с именем Documents :
$ pwd /home/student $ ls Desktop Documents Downloads Music Pictures README.txt Videos $ cd Downloads $ pwd /home/student/Downloads $ ls ../Documents report.txt todo.txt AndreyEx.pdf
Когда вы сначала открываете окно командной строки в системе Linux, ваш текущий рабочий каталог устанавливается в ваш домашний каталог, как правило: /home/<здесь ваше имя для входа>. Ваш домашний каталог предназначен для входа в систему, где вы можете хранить свои собственные файлы.
Переменная среды $HOME расширяется до пути к каталогу в ваш домашний каталог. Например:
$ echo $HOME /home/student
Поиск
Иногда мы забываем, где находится файл, или мы забыли имя файла, который мы ищем. В командной строке Linux есть несколько команд, которые вы можете использовать, чтобы помочь вам находить файлы и искать содержимое файлов.
Первая команда – find. Вы можете использовать find для поиска файлов и каталогов по имени или другому атрибуту. Например, если мы забыли, где я сохранил файл todo.txt, мы можем запустить следующее:
$ find $HOME -name todo.txt /home/student/Documents/todo.txt
Программа find имеет множество функций и возможностей. Простая форма команды:
find <dкаталог для поиска> -name <имя файла>
Если в приведенном выше примере имеется более одного файла с именем todo.txt, он покажет нам все места, где он нашел файл под этим именем. Команда find имеет множество опций для поиска по типу (файл, каталог или другое), по дате, новее, чем по дате, по размеру и т. д. Вы можете ввести:
man find
для получения справки о том, как использовать команду find.
Вы также можете использовать команду grep для поиска внутри файлов для определенного содержимого. Например:
grep "09/02/2018" todo.txt
покажет мне все строки, в которых есть дата 2 сентября 2018 года.
Получить помощь
В Linux много команд, и здесь было бы слишком сложно описать их все. Итак, следующий лучший шаг, чтобы показать, как получить помощь по командам.
Команда apropos помогает вам находить команды, которые выполняют определенные действия. Возможно, вы хотите узнать все команды, которые работают с каталогами или получить список открытых файлов, но вы не знаете, какую команду запускать. Итак, вы можете попробовать:
apropos directory
предоставит список команд и будет содержать слово «directory» в тексте справки. Или вы можете сделать:
apropos "список открытых файлов"
который покажет одну команду lsof, которую вы можете использовать для отображения открытых файлов.
Если вы знаете команду, которую вам нужно использовать, но не знаете, какие параметры использовать, чтобы заставить ее вести себя так, как вы хотите, вы можете использовать команду man, которая не подходит для руководства. Вы бы использовали man <command>, например:
man ls
Вы можете попробовать man ls самостоятельно. Он предоставит несколько страниц информации.
Команда man объясняет все параметры и параметры, которые вы можете дать команде, и часто даже дает пример.
Многие команды часто также имеют опцию помощи (например, ls –help ), которая даст информацию о том, как использовать команду. Страницы руководства обычно более детализированы, а опция –help полезна для быстрого поиска.
Сценарии
Одна из лучших вещей в командной строке Linux заключается в том, что команды, которые набираются, могут быть написаны сценарием и запускаться снова и снова. Команды могут быть помещены как отдельные строки в файл. Вы можете поместить #!/Bin/sh в качестве первой строки в файле, за которой следуют команды. Затем, как только файл будет помечен как исполняемый, вы можете запустить скрипт, как если бы это была его собственная команда. Например,
--- contents of get_todays_todos.sh --- #!/bin/sh todays_date=`date +"%m/%d/%y"` grep $todays_date $HOME/todos.txt
Скрипты помогают автоматизировать определенные задачи в наборе повторяемых шагов. Сценарии также могут быть очень сложными, если необходимо, с циклами, условными операторами, подпрограммами и т. д. Здесь нет места для подробностей, но вы можете найти более подробную информацию о скриптах Linux bash в Интернете.
Знакомы с командной строкой Windows?
Если вы знакомы с программой Windows CMD или PowerShell, команды ввода в командной строке должны быть знакомы. Однако в Linux несколько вещей работают по-разному, и если вы не понимаете этих различий, это может сбивать с толку.
Во-первых, в Linux переменная среды PATH работает не так, как в Windows. В Windows текущий каталог считается первым каталогом на пути, хотя он не указан в списке каталогов в PATH. Под Linux текущая директория не считается находящейся на пути, и она явно не помещается на путь. Ввод в переменной среды PATH считается угрозой безопасности в Linux. В Linux, чтобы запустить программу в текущем каталоге, вам нужно префикс ее ./ (это относительный путь файла из текущего каталога). Это вызывает множество пользователей CMD. Например:
./my_program
скорее, чем
my_program
Кроме того, в Windows пути разделяются символом a; (точка с запятой) в переменной среды PATH. В Linux, в PATH, каталоги разделяются символом: (двоеточие). Также в Linux каталоги в одном пути разделяются символом / (косой чертой), в то время как под каталогами Windows по одному пути разделяются символом \ (обратная косая черта). Таким образом, типичная переменная среды PATH в Windows может выглядеть так:
PATH="C:\Program Files;C:\Program Files\Firefox;" while on Linux it might look like: PATH="/usr/bin:/opt/mozilla/firefox"
Также обратите внимание, что переменные окружения расширяются с помощью $ на Linux, поэтому $ PATH расширяется до содержимого переменной среды PATH, тогда как в Windows вам необходимо заключить переменную в процентные символы (например,% PATH%).
В Linux параметры обычно передаются программам, использующим символ – (тире) перед опцией, тогда как под опциями Windows передаются предыдущие параметры с символом / (косой чертой). Итак, под Linux вы бы сделали:
a_prog -h
скорее, чем
a_prog /h
В Linux расширения файлов обычно ничего не означают. Например, переименование myscript в myscript.bat не делает его исполняемым. Вместо того чтобы сделать исполняемый файл, необходимо установить флаг разрешения исполняемого файла. В следующий раз права доступа к файлам будут рассмотрены более подробно.
Под Linux, когда имена файлов и каталогов начинаются с. (точка), они скрыты. Так, например, если вам предлагается отредактировать файл, .bashrc, и вы не видите его в своем домашнем каталоге, это, вероятно, действительно так и есть. Это просто скрыто. В командной строке вы можете использовать опцию -a в команде ls для просмотра скрытых файлов. Например:
ls -a
В Linux общие команды также отличаются от обычных команд командной строки Windows. В следующей таблице показано сопоставление общих элементов, используемых в CMD, и альтернатива, используемая в Linux.