Основы командной строки для Java-программиста (ч. 6)
Введение
В прошлой статье мы рассмотрели тему оформления (форматирования) кода в классе, сопроводив ее множеством примеров, которыми можно руководствоваться при написании программ.
В этой публикации мы погрузимся еще глубже в кроличью нору, изучив базовый набор команд, используемый при каждодневной работе в консоли. В основном это будут утилиты для взаимодействия с файловой системой (ФС): создать, удалить, переименовать, переместить файл (папку), перейти из одной папки в другую и т. д.
Напомним, что консоль (терминал, командная строка) — программа, которая позволяет пользоваться возможностями операционной системы (ОС) не в графическом режиме (UI), а в текстовом, с помощью вводимых с клавиатуры команд.
Умение работать в командной строке поможет:
- избавиться от страха перед этим инструментом
- использовать возможности ОС в ситуациях, когда отсутствует UI
- выполнять ряд действий намного быстрее, чем через UI
- повысить уровень экспертности
1. Вывод информации об ОС
2. Перемещение по ФС
Для перемещения по ФС существует команда cd. Ознакомьтесь с ее возможностями с помощью справки cd /?:
Обращайтесь к справочной информации всегда, когда забываете, как пользоваться той или иной командой, или используете ее впервые.
С помощью cd перейдем в качестве примера на диск C:\, а затем обратно в папку StartJava (к файлам MyFirstApp.java и MyFirstApp.class), созданную ранее.
Чтобы перейти с одного диска в корень другого, достаточно написать, например, C:\ (без cd). А вот, чтобы перейти в какую-то конкретную папку на другом диске, необходимо воспользоваться специальным параметром cd /D D:\Java\StartJava:
Если указываемый путь до папки (файла) содержит пробелы, то его нужно с двух сторон обрамить кавычками (для последних версий Windows это требование уже не актуально). Например, cd /D "C:\Program Files\java"
При наборе пути, чтобы не писать его полностью (или когда вы его не помните), используйте клавишу Tab. Она обеспечит автодополнение имен.
Если требуется перейти из текущей папки в родительскую (на уровень вверх), то чтобы не писать до нее полный путь, например, D:\Java, можно использовать две точки .. Это что-то вроде ссылки на родительскую папку.
Кроме двух точек есть и одна точка. Она указывает на текущую папку.
Запись cd .. аналогична cd D:\Java\
3. Отображение содержимого папок
Для вызова справки по ls существует другой параметр ls --help (/? используется только для Windows-команд). Отобразим содержимое папки StartJava:
Параметр -a (сокр. от all) отображает не только доступные файлы, но и скрытые, а также ссылки на текущую папку (одна точка) и родительскую (две точки). То, что . и .. являются папками, свидетельствует наличие у них /
Удобным способом отображения только необходимых файлов, является использование маски (шаблона) с помощью символа *:
Запись *.java означает, что нам неважно имя файла, главное чтобы он имел расширение java.
4. Перемещение файлов
В демонстрируемом примере, кроме mv используются и другие команды, которые мы уже прошли. Попробуйте самостоятельно понять, какие выполняются шаги и для чего.
5. Удаление файлов
Удалим для примера MyFirstApp.class. При этом в начале перейдем в папку StartJava.
Обратная косая черта с точкой у .\StartJava\ означает, что из текущей папки мы переходим в StartJava. При этом указывать . и оба \ необязательно. Запись cd StartJava также прекрасно будет работать.
Для удаления MyFirstApp.class из родительской папки, мы использовали .. , а также параметр -i, который отвечает за подтверждение удаления вводом пользователя yes (y) или no (n).
6. Копирование файлов
7. Вывод содержимого файла
Чтобы в Windows русский текст отобразился корректно, нужно поменять кодовую страницу c DOS (866) на Unicode (65001) с помощью chcp:
8. Удаление папки
Параметр -r позволяет рекурсивно удалять папки со всем их содержимым.
9. Создание папки
Без папки StartJava нам никак нельзя, т. к. в ней должен храниться весь наш код. Возродим ее из пепла, используя команду mkdir (md), а заодно создадим внутри нее еще одну папку под названием source.
Пишем в терминале команду mkdir StartJava\source, жмем Enter:
Обе папки успешно созданы.
10. Переименование файлов
Вводим ren, а затем старое (при этом нужно указать путь до файла) и новое имя файла:
Папка успешно переименовалась.
11. Создание текстового файла
12. Запись текста в файл
Запишем в about.txt какой-нибудь текст (при этом кодовая страница должна быть 65001), а затем прочитаем его из файла и выведем в консоль:
Команда echo отвечает за вывод информации в консоль. Но если ее использовать с символом >, то текст из консоли или результат работы любой команды, будет сохранен в текстовый файл.
13. Вывод структуры файлов и папок
Команда dir (ls) отображает содержимое одной конкретной папки. Но если нам нужно отобразить содержимое всех вложенных папок, то для этих целей есть команда tree:
Параметр /F позволяет отображать не только папки, но и файлы.
Чтобы понять, на что по-настоящему способна эта команда, перейдите на диск C:\ и запустите tree. Вас ждет незабываемый водопад информации.
14. Цепочка команд
И напоследок попробуем выполнить множественные действия, записав разные команды в цепочку. Попробуйте самостоятельно понять, какие были выполнены шаги:
Как видим, все команды отработали без ошибок. При этом они отделены друг от друга логическим оператором &. Он означает, что команда справа от него не выполнится, если предыдущая команда завершится неудачно.
И еще раз воспользуемся tree:
15. Прочие мелкие команды
systeminfo — выводит информацию о вашей платформе (ОС + железо)
help — выводит список команд для Windows
exit — закрывает командную строку
Заключение
Мы рассмотрели самые ходовые и популярные команды на каждый день. Данная статья лишь приоткрывает завесу возможностей, которые может дать терминал в умелых руках. Вам же остается не останавливаться в познании этого инструмента и постепенно, самостоятельно углубляться во все его тонкости.
Автор: Чимаев Максим
Друзья, если вам понравилась статья, и вы изучаете Java, то приглашаем вас на курс для начинающих с нуля StartJava. Под руководством ментора Максима вы сможете с самых азов освоить язык Java. Курс очень насыщенный и постоянно развивается. Более сотни положительных отзывов.
Контакты: