Найти лучший терминал для Windows может быть непросто, учитывая все доступные варианты.
Лучший терминал для Windows
1. Терминал Windows
Терминал Windows встроен в Windows 11 и 10.
Единственным недостатком является то, что он совместим только с ними. Если вы используете более старую версию Windows, изучите другие варианты ниже.
Протестировав это приложение, я пришел к выводу, что оно современное, быстрое и работает без проблем во время всех моих тестов.
Что выделяло его из толпы, так это поддержка множества приложений командной строки. К ним относятся PowerShell, командная строка и даже Azure Cloud Shell.
В программном обеспечении есть функция, которую я не ожидал: возможности настройки. Вы можете открыть настройки, нажав следующую комбинацию клавиш внутри терминала: Ctrl+,.
Windows Terminal позволяет создавать цветовые схемы и даже сочетания клавиш.
Эти функции гарантируют, что вы сможете получить индивидуальный опыт, а также значительно улучшают функциональность.
- Совершенно бесплатно с ОС Windows
- Он имеет интерфейс с вкладками, который упрощает любой процесс.
- Можно добавить пользовательские сочетания клавиш.
- Его можно настроить с помощью пользовательских тем.
- Предлагает полную поддержку использования стилуса.
- Поддерживает WSL, SSH, PowerShell, командную строку и Azure Cloud Shell.
- Рендеринг текста с ускорением на графическом процессоре
- Он не поддерживается на платформах, отличных от Windows 10 и 11.
2. FireCMD
После тестирования FireCMD могу сказать, что попробовать стоит, если вы ищете компетентный терминал для Windows.
Это приложение удивило меня своими функциями, включая автозаполнение команд, полную поддержку HTML и CSS и даже поддержку Unicode.
Выделялась функция автозаполнения, предлагающая пользователям возможность сократить время, затрачиваемое на написание команд.
Как и в случае с терминалом Windows, FireCMD позволяет открывать несколько вкладок в одном окне.
С помощью этого программного обеспечения вы можете открывать несколько приложений командной строки или консоли, при этом влияние на систему незначительно.
- Удивительно полезное автозаполнение для любой команды
- Позволяет пользователям создавать до 500 псевдонимов.
- Доступна бесплатная пробная версия
- Этот терминал не бесплатен
- Иногда несколько вкладок могут привести к замедлению работы вашего компьютера.
3. МобаXTerm
MobaXterm обладает фантастическим набором функций и возможностей поддержки.
Это приложение полностью поддерживает сеансы SSH, Telnet, RDP, VNC, XDMCP, FTP, SFTP и последовательные сеансы. Это делает его одним из самых универсальных терминальных приложений.
Что еще больше выделяло его из толпы, так это его SFTP-браузер. Этот удобный маленький инструмент появляется на левой боковой панели всякий раз, когда вы входите на удаленный SSH-сервер.
Вы можете быстро перемещаться по базе данных и более эффективно исследовать набор данных.
Менеджер туннелей SSH также упрощает процесс, позволяя с легкостью выполнять переадресацию портов.
- Высокоскоростная обработка команд
- Быстро и легко скачать и использовать приложение
- Включает поддержку SSH, Telnet и т. д.
- Легко управлять SSH-соединениями и загружать файлы.
- Пользовательский интерфейс может быть немного старомодным
- Некоторые пользователи сообщали о проблемах при закрытии соединения.
4. Терминал ZOC
ZOC Terminal — еще один претендент на звание лучшего терминала для Windows.
Это профессиональное программное обеспечение для эмуляции терминала отлично работает как на Windows, так и на macOS.
Помимо своей универсальности, ZOC содержит различные функции, которые делают его надежным при подключении к хостам и мэйнфреймам через Secure Shell, Telnet и другие.
Его хорошо продуманный и удобный интерфейс выделяет его из толпы.
Кроме того, вы можете настроить свой опыт.
Этот терминал также предлагает мощный язык сценариев и автоматически запускает действия на основе полученного или напечатанного текста.
- Его можно настроить различными способами
- Включает разнообразные и мощные возможности сценариев.
- Позволяет создавать вкладки для большей эффективности.
- Это программное обеспечение не является бесплатным
- Дизайн интерфейса может подойти не всем
5. Командование
Cmder убедил меня, что это отличный портативный терминал для Windows.
Этот легкий терминал для Windows действует как эмулятор консоли, обеспечивая среду, подобную Unix.
Это может быть чрезвычайно полезно для людей, привыкших к среде Unix, и предлагает отличные возможности.
Вы можете переносить псевдонимы, настройки или историю куда угодно.
Эта функция делает Cmder идеальным для USB-накопителей или других носителей данных, включая облако.
Несмотря на то, что оно не предлагает тот же набор возможностей, что и ранее упомянутое программное обеспечение, оно все равно остается отличным выбором.
- Создан на основе эмулятора консоли ConEmu.
- Его можно использовать как портативный терминал.
- Включает встроенный раскрывающийся список в стиле Quake.
- Полная совместимость с приложениями командной строки.
- Его сложнее настроить, чем предыдущие варианты программного обеспечения.
- Большое количество вариантов может затруднить поиск того, что вам нужно.
- Программное обеспечение не является бесплатным
6. ConEmu
После тестирования программного обеспечения ConEmu я пришел к выводу, что это продвинутая консоль, способная запускать любую оболочку, которую вы захотите.
Отличительной чертой этой страны является ее способность к глубокой интеграции.
Несмотря на то, что оно не такое мощное, как отдельное приложение, оно отлично подходит для использования с Far Manager.
Тот факт, что ConEmu полностью поддерживает Cygwin и MSYS, делает его ценным дополнением к вашему стеку программного обеспечения.
Как и другие варианты, ConEmu имеет открытый исходный код и может использоваться на портативных устройствах хранения данных.
Это означает, что вы можете сохранить его на USB-устройстве и взять с собой, куда бы вы ни пошли.
- Предлагает полную поддержку Cygwin и MSYS.
- построить с большим количеством опций
- Его можно использовать на портативном хранилище.
- С открытым исходным кодом
- Это может быть сложно использовать, особенно новичкам
- Он не поддерживает WSL изначально.
- У него нет структуры вкладок.
7. PuTTy
Putty — это бесплатный эмулятор терминала с открытым исходным кодом и множеством возможностей.
Это приложение поддерживает несколько сетевых протоколов, включая SCP, SSH, Telnet, rlogin и соединения через необработанные сокеты.
Что выделялось во время моего тестирования, так это его способность полностью контролировать ключи шифрования SSH и версии протокола.
Это упрощает процесс использования любого терминала и обеспечивает более быстрые результаты.
- Полностью поддерживает SSH, Telnet и последовательные соединения.
- Его можно открыть и он реагирует очень быстро.
- Поддерживает режим щелчка правой кнопкой мыши для вставки команд.
- Бесплатный и с открытым исходным кодом
- Сертификаты необходимо преобразовать в формат PuTTY для аутентификации.
- Может отключаться между сеансами
8. Термиус
Termius — еще одно превосходное терминальное приложение для Windows, предлагающее отличную поддержку SSH. Это гарантирует, что вы сможете легко управлять несколькими командами DevOps и инженерами.
Одним из элементов, который выделил его среди многих протестированных мной приложений, является его способность экономить время.
Это программное обеспечение было разработано с учетом серверов UNIX и Linux.
Он предлагает кроссплатформенную поддержку для еще более эффективного использования и может запускаться несколько раз одновременно.
- Идеально подходит для управления серверами UNIX и Linux.
- Предоставляет удаленные услуги
- Предлагает кроссплатформенную поддержку
- Поддержка нескольких сеансов
- Слишком дорого по сравнению с другими приложениями
- На старых устройствах может работать медленно
9. Мятный
Mintty — еще один отличный вариант, если вы ищете терминал Windows. Он действует как эмулятор терминала и обеспечивает полную поддержку эмуляции Xterm.
Mintty гарантирует, что ее комплексная поддержка кодировки символов поможет вашей работе.
Хоть он и не такой сложный, как другие варианты в списке, он все равно меня впечатлил.
Это произошло благодаря полной поддержке 256 цветов и True-Color.
Удобный интерфейс также идеально характеризует это приложение.
- Поддержка Cygwin и MSYS.
- при условии
- Полностью поддерживает несколько сеансов
- Отличная поддержка прокрутки в терминальных приложениях.
- Поддержка нескольких вкладок не включена.
- Ограниченная совместимость с Windows
- Иногда может глючить
10. Терминал Git Bash
Git Bash Terminal также предоставляет вам командную строку в стиле Unix для Windows.
Это подойдет вам, если вы привыкли к среде Unix.
Он может автоматизировать ручные задачи с помощью созданных вами сценариев.
Несмотря на то, что он не так компетентен, как другие варианты, он все равно предоставляет пользователям подходящий терминал.
Кроме того, вы можете использовать хорошо известный процесс перетаскивания для извлечения URL-адресов из папок.
- Идеально совместим со всеми командами UNIX.
- Он позволяет перетаскивать папки для извлечения URL-адресов.
- Некоторым пользователям интерфейс может показаться запутанным.
Как я выбрал лучший терминал для Windows
- I выбрали программное обеспечение с упрощенным процессом установки.
- Я убедился, что интерфейс был удобным и настраиваемым.
- Работоспособность программы я протестировал выполнение различных команд внутри терминалов.
- Я проверил, если приложение может обрабатывать большие объемы данных или интенсивные задачи без сбоев системы и зависаний.
- Я обратил внимание на совместимость приложений с различными оболочками и инструментами командной строки.
Software | Установка | Интерфейс | Функциональность системы | Перфоманс | Совместимость |
---|---|---|---|---|---|
Терминал Windows | Быстро и просто | 5/5 | Универсальные возможности терминала | 5/5 | Совместимость с различными системами |
FireCMD | Просто и удобно | 5/5 | Многофункциональная командная строка | 4/5 | Совместим с Windows |
MobaXterm | Быстрый процесс установки | 4/5 | Комплексный набор инструментов | 5/5 | Кроссплатформенная совместимость |
Терминал ZOC | Простая установка | 3/5 | Обширные сценарии и автоматизация | 4/5 | Мультиплатформенная совместимость |
Командование | Простота монтажа | 2/5 | Улучшенный эмулятор консоли. | 3/5 | Совместим с Windows |
ConEmu | Быстрая и простая настройка | 3/5 | Интерфейс с вкладками, обширные возможности | 3/5 | Совместим с Windows |
шпатлевка | Просто и понятно | 2/5 | Стандартный функционал терминала | 2/5 | Кроссплатформенная совместимость |
конечная станция | Быстрый процесс установки | 5/5 | Акцент на современных функциях | 4/5 | Кроссплатформенная совместимость |
Мятный | Быстро и просто | 2/5 | Быстрый и эффективный терминал | 3/5 | Совместим с Windows |
Терминал Git Bash | Включено в установку Git | 2/5 | Функциональность командной строки Git | 4/5 | Совместимость с Windows и Git. |
Вы также можете быть заинтересованы в:
Как использовать лучший терминал для Windows
- Щелкните правой кнопкой мыши Начало , а затем выбрать Терминал (администратор) из списка.
- Примите Контроль учетных записей сообщение, нажав Да.
- Нажмите стрелка рядом со знаком + для настройки и настройки терминала.
- Чтобы получить доступ к конфигурации приложения, щелкните ту же стрелку, что и выше, и выберите Настройки.
- Нажмите Ctrl + Shift + P чтобы открыть командную палитру.
Теперь вы гораздо ближе к поиску лучшего терминала для Windows! Мне интересно, какой вариант вы выбрали из списка, поэтому не стесняйтесь поделиться этой информацией в комментариях ниже.
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Редактирование файлов
Основы командной строки
Для редактирования файлов в командной строке используют редакторы Nano, Vim и Emacs. В этом уроке мы обсудим два редактора из этого списка.
В большинстве случаев в системе установлен только Vim, поэтому важно владеть базовыми навыками обращения с ним. Эти редакторы запускаются прямо в терминале, хотя Vim и Emacs имеют режим, в котором они запускаются как отдельные приложения.
Nano
Nano — очень простенький текстовый редактор, похожий на Блокнот в Windows, хотя по возможностям он богаче и даже способен подсвечивать содержимое файлов:
nano .bashrc
После запуска редактора внизу открывается панель с подсказками, какие горячие клавиши доступны для использования. Символ ^
означает клавишу Ctrl.
Например, нажав Ctrl + x, вы можете выйти из редактора. При выходе нужно уточнить, хотите ли вы сохранить изменения:
- Сохранить — y (yes)
- Не сохранять — n (no)
В принципе, больше ничего интересного про Nano сказать нельзя. Это обычный редактор, который подходит для несложных изменений в файлах, но им совсем неудобно пользоваться для работы над проектами с множеством файлов и сложным кодом.
Vim
Совсем другое дело — это Vim (сокращение от Vi Improved). Это свободный текстовый редактор, созданный на основе более старого vi (visual editor).
Это редактор, который имеет уникальную модель работы:
vim .bashrc
Ключевое отличие Vim от остальных редакторов — наличие режимов. В обычных редакторах мы открываем файл и сразу можем приступать к редактированию. В отличие от них, Vim запускается в режиме COMMAND — это режим команд, при котором нажатие на любую клавишу воспринимается как сигнал к какому-то действию.
Всего у Vim есть четыре основных режима работы:
- Командный режим — это режим по умолчанию. В нем можно перемещаться по файлу, вносить изменения с помощью комбинаций клавиш, удалять и искать текст
- Режим вставки — это режим ввода текста с клавиатуры. Здесь все работает так, как вы привыкли это делать в обычных редакторах
- Визуальный режим — выделение произвольных участков текста
- Режим командной строки — собственная командная строка для редактора текста, из которой можно выполнять множество разнообразных команд
Vim по праву считается редактором с самым высоким порогом входа, и разработчики даже шутят на эту тему:
Конечно, в этой шутке есть доля правды. Но чем дольше вы будете осваивать программирование, тем чаще вы будете встречать опытных и известных разработчиков, которые полностью работают на Vim. Не последнюю роль в этом играют расширения.
Посмотрев на Vim без плагинов, сложно поверить, что благодаря расширениям он может стать очень навороченным:
Подробнее о том, почему так происходит и что особенного в Vim, написано в нашем руководстве. Крайне рекомендуем к прочтению.
Говорят, что самое сложное в Vim — это выйти, поэтому подготовимся заранее. Обсудим, как выйти из Vim:
- Убедитесь, что вы находитесь в командном режиме. На всякий случай нажмите Esc или комбинацию Ctrl + [
- Затем наберите
:
(символ “двоеточие”) — эта команда переведет вас в режим командной строки - В конце введите
q!
и нажмите Enter
Так вы выйдете из Vim без сохранения изменений. Если набрать :wq
, то перед выходом сохранятся все изменения. Если вы хотите просто сохраниться без выхода, то наберите :w
.
Кстати, большая часть Хекслета сделана именно в Vim, включая код самой платформы, некоторые текстовые курсы и эту строчку.
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
130 курсов, 2000+ часов теории
1000 практических заданий в браузере
360 000 студентов
Наши выпускники работают в компаниях:
Что такое bat-файл
Bat-файл – это текстовый файл, который содержит в себе набор команд для выполнения в командной строке. Такие файлы используются при работе с ОС Windows и обозначаются расширением .bat. Название bat-файла происходит от английского “batch file” – пакетный файл, продвинутые пользователи часто используют название “батник”.
Bat-файлы используются для автоматизации задач и выполнения ряда команд, без применения ввода данных в командную строку.
Зачем нужны bat-файлы:
- Автоматизация задач. Например, для повторяющихся типов действий: копирование, переименование файлов, создание резервных копий. Благодаря bat-файлам, можно запустить серию команд одним нажатием кнопки, что экономит время и не требует необходимость вводить однотипные команды вручную.
- Выполнение скриптов. Bat-файлы используют для выполнения скрипта на командном языке, например, CMD или PowerShell. Это позволяет создавать и запускать скрипты для выполнения сложных задач без необходимости запуска каждой команды по отдельности.
- Конфигурация системы. Bat-файлы могут использоваться для настройки и конфигурации операционной системы Windows, например, чтобы изменять системные переменные, устанавливать параметры безопасности, настраивать сетевые подключения.
Если вы ищите надежный выделенный сервер с операционной системой Windows, предлагаем воспользоваться услугой Windows VDS/VPS от RU-CENTER.
Как создать bat-файл
Для создания bat-файла понадобится устройство с ОС Windows и любой текстовый редактор. Следуйте инструкции:
- Откройте текстовый редактор, например, Блокнот или Visual Studio Code.
- Создайте в нем пустой файл.
- Запишите команду в том виде, как бы вы вводите ее в командную строку (каждую новую команду указывайте на отдельной строке).
- Добавьте любую необходимую логику или условные операторы, например, if-else или циклы, чтобы определить, какие команды будут выполняться в зависимости от определенных условий.
- Сохраните файл с расширением .bat. Для этого выберите Сохранить как и укажите тип файла Все файлы, добавьте расширение .bat в конце имени файла (например, myscript.bat).
- Создания bat-файла завершено.
Запуск bat-файла
Есть несколько способов запустить bat-файл:
- Найдите bat-файл с помощью Проводника и дважды щелкните на него. Это запустит файл. Команды в нем будут автоматически выполнены в командной строке.
- Из командной строки. Откройте командную строку, перейдите в директорию, где находится bat-файл, и введите имя файла. Кликните Enter, чтобы запустить bat-файл.
- С помощью ярлыка на рабочем столе. Щелкните правой кнопкой мыши на bat-файле, выберите Отправить, затем выберите Рабочий стол (создать ярлык). После создания ярлыка переместите его на рабочий стол и дважды щелкните на нем для запуска.
- Через Планировщик заданий. Можно настроить запуск bat-файла в определенное время или при определенных событиях с помощью Планировщика заданий. Для этого откройте Планировщик, создайте новое задание и укажите путь к bat-файлу в разделе Действие.
Независимо от способа запуска bat-файла, команды в файле будут выполнены последовательно в командной строке, в том же окне или в новом, в зависимости от настроек и команд в самом файле.
Синтаксис написания bat-файла
При написании bat-файла необходимо учитывать следующие правила:
- Комментарии в bat-файлах начинаются с символа REM (от английского remark – замечание) или :: (двойные двоеточия) и используются для пояснения кода.
- Команды в bat-файле записываются на отдельных строках и выполняются последовательно, начиная с верхней строки.
- При использовании переменных для хранения значений в bat-файле, их имена должны начинаться с символа %, и значения переменных устанавливаются с помощью оператора SET, например:
- В bat-файле можно использовать условные операторы, такие как IF и FOR, для выполнения команд в зависимости от определенных условий.
- С помощью оператора FOR можно создавать циклы для выполнения команд несколько раз или по списку значений.
Настройка планировщика заданий (периодический запуск)
Чтобы настроить запуск bat-файла в заданное время используйте планировщик задач Windows:
- Откройте Планировщик, нажав Win + R, введите taskschd.msc и нажмите Enter.
- Нажмите на Создать задачу в правой части окна.
- Во вкладке Основные введите имя задачи и описание (необязательно), нажмите Далее.
- Во вкладке Действия нажмите на Создать, в выпадающем меню выберите Запуск программы.
- В строке Программа/скрипт укажите путь к bat-файлу, который вы хотите запускать. Кликните на кнопку Обзор, чтобы найти bat-файл на компьютере.
- Настройте остальные параметры по вашему усмотрению: вы можете указать условия запуска, триггеры, параметры задачи и т.д.
- Когда все настройки сделаны, нажмите ОК, чтобы сохранить задачу.
Теперь ваш bat-файл будет запускаться автоматически в заданное время или по указанным условиям заданным в планировщике задач.
Основные команды при написании
Приведем несколько основных команд, которые можно использовать при написании bat-файла:
- echo – для вывода текста или переменных в командную строку или в файл.
- set – для определения или изменения значения переменной.
- if – для выполнения команд в зависимости от определенных условий.
- for – для создания циклов и повторного выполнения команд.
- call – для вызова другого bat-файла из текущего.
- pause – для остановки выполнения скрипта и ожидания, пока пользователь не нажмет клавишу.
- rem – для добавления комментариев в скрипт. Комментарии игнорируются интерпретатором bat-файлов.
- cd – для перехода в другой каталог.
- del – для удаления файлов.
- copy – для копирования файлов.
Переменные
При написании bat-файла также применяют переменные, которые используются для хранения и управления значениями данных. Они позволяют создавать гибкие скрипты, облегчают автоматизацию повторяющихся задач и упрощают изменение значений в различных частях скрипта.
Чтобы использовать переменные в bat-файлах, следует сначала задать ее с помощью команды set. Значение переменной указывается с помощью символа %.
В bat-файлах можно использовать несколько типов переменных:
- Строковые переменные:
- Числовые переменные:
set /a NUMBER=5
- Параметры командной строки:
- Системные переменные:
- Временные переменные:
Примеры bat-файлов
- Пример bat-файла, выводящего “Hello, World!”:
- Пример bat-файла, запрашивающего у пользователя имя и выводящего приветствие:
set /p name=Введите ваше имя:
- Пример bat-файла, выполняющего математические операции:
set /a num1=5
set /a num2=2
set /a sum=%num1% + %num2%
set /a product=%num1% * %num2%
- Пример bat-файла, выполняющего цикл для перебора файлов в каталоге:
for %%i in (*.txt) do (
- Пример bat-файла, проверяющего наличие файла и выполняющего определенные действия:
if exist myfile.txt (
) else (
Заключение
Bat-файлы весьма гибкие и простые в использовании. Они позволяют выполнять различные задачи, такие как копирование и перемещение файлов, создание и удаление папок, запуск программ и многое другое.
С помощью bat-файлов можно экономить время и упрощать выполнение повторяющихся задач. При их правильном использовании можно значительно повысить эффективность и продуктивность работы пользователя.
Три наблюдения о командной строке и путях в файловой системе
Наблюдение № 1
Первое наблюдение будет как раз о шаблонах, но не мышления, а о шаблонах имён файлов и различиях в их трактовке командными интерпретаторами DOS/Windows и Unix/Linux.
Допустим, в дереве файловой системы есть такая ветвь:
…\folder\
…\folder\file1.txt
…\folder\subfolder\
…\folder\subfolder\file2.txt
Для эксперимента в Windows её можно создать командами:
> MKDIR folder\subfolder
> ECHO 1 > folder\file1.txt
> ECHO 2 > folder\subfolder\file2.txt
а в Linux – командами:
$ mkdir -p folder/subfolder
$ echo 1 > folder/file1.txt
$ echo 2 > folder/subfolder/file2.txt
Предположим, возникла необходимость просмотреть содержимое каталога folder, для чего в Windows была набрана команда:
> DIR /B folder\*
Ключ /B требует отображать только имена файлов, без дополнительных сведений о дате, типе и тому подобных деталях.
Вот, что эта команда выведет:
file1.txt
subfolder
То, что требовалось и ожидалось. Теперь выполним аналогичную команду в командной оболочке BASH под Linux:
$ ls -1 folder/*
Ключ -1 (цифра «один», а не строчная латинская буква «эль») требует осуществлять вывод в одну колонку, но дело не в этом, а в самом содержимом этого вывода:
folder/file1.txt
folder/subfolder:
file2.txt
Ладно бы ещё только имена файлов и каталогов предварялись родительским folder — с этим ещё можно мириться. Но зачем команда отобразила содержимое подкаталога folder/subfolder?
Оказывается, командные оболочки Windows (COMMAND.COM и CMD.EXE) и Linux (SH и BASH, в других оболочках дело может обстоять иначе) по-разному обрабатывают параметры командной строки, которые содержат подстановочные символы * и ?. Windows поступает просто — передаёт параметры командам/программам в том виде, в каком они записаны в командной строке. Раз написано folder/*, то команда DIR и получит folder/*, а дальше сама попробует понять, чего от неё хотят. Раз *, значит надо показать все элементы каталога folder. Всё просто и логично.
В Linux всё сложнее. Командная оболочка сначала анализирует параметры командной строки и, если в них нет подстановочных символов или параметры заключены в кавычки, то поступает как Windows. Если же параметры содержат подстановочные символы и в кавычки не заключены, то командная оболочка сама проверяет соответствие содержимого каталога указанному шаблону и заменяет параметр с шаблоном на список параметров с подходящими именами файлов. В приведенном примере после такой обработки командная строка
$ ls -l folder/*
$ ls -l folder/file1.txt folder/subfolder
Программа ls выводит информацию о своих параметрах, причём если это каталог, то по умолчанию отображает его содержимое. Между прочим, Windows ведёт себя схожим образом, если в команде DIR указать несколько параметров:
> DIR /B folder\file1.txt folder\subfolder
file1.txt
file2.txt
Особенность обработки шаблонов путей к файлам при использовании команды ls может вызвать раздражение, но не приводит к непоправимым последствиям. В ином же контексте может произойти более неприятная история.
Причина различий теперь ясна, но как в Linux получить список содержимого каталога без разворачивания содержимого подкаталогов? Можно просто указать имя каталога, без маски:
$ ls -1 folder
file1.txt
subfolder
Отлично, но как быть, если к именам элементов каталога (файлам и подкаталогам) всё-таки надо применить маску, например, «*.abc»? Идея заключить параметр командной строки в кавычки “folder/*” не работает: программа ls (в Linux это внешняя утилита, а не внутренняя команда оболочки, как DIR в Windows) ожидает, что шаблон будет обработан командной оболочкой, и просто сообщает об отсутствии в каталоге folder элемента с именем “*”. Так что остаётся воспользоваться специальным ключом -d программы ls:
$ ls -1d folder/*
folder/file1.txt
folder/subfolder
Бытует мнение, что вариант работы командных оболочек Linux более прогрессивный, чем Windows. Ведь оболочка берёт на себя «общую» часть работы по разбору путей к файлам, в результате чего упрощается код программ и стандартизируется их поведение. Это действительно так, пока шаблону удовлетворяют несколько файлов. Но что, если таких файлов 100500? Командная оболочка попытается единовременно создать командную строку, в которой перечислены пути ко всем этим файлам. Обычно это заканчивается нехваткой памяти для командной строки. В то время, как подход, принятый в Windows, позволяет программе спокойно перебирать все файлы по одному.
Наблюдение № 2
Второе наблюдение связано с именованием каталогов в Linux. Имя subfolder может означать как файл, так и каталог. Несмотря на то, что в Linux почти все сущности являются файлами, различия иногда бывают важны. Допустим, требуется создать копию файла file1.txt в подкаталоге subfolder. Это можно сделать такой командой:
$ cp folder/file1.txt folder/subfolder
Она работает, и всё вроде бы прекрасно. Но предположим, что в путь назначения вкралась опечатка: вместо subfolder набрано sunfolder. Что произойдёт в этом случае? Операция завершится успешно, но содержимое файла file1.txt будет записано в файл folder/sunfolder. Это, очевидно, не то, что ожидалось. Как можно избежать такой неприятности?
Один из вариантов — для указания целевого каталога использовать автодополнение по клавише Tab. Но в этом случае надо быть особенно внимательным, если в каталоге folder есть другие элементы с именами, похожими на subfolder. Автоматика может выбрать не ту цель, которая была запланирована, и промах будет не менее досадным.
Чтобы подчеркнуть в команде, что в качестве целевого элемента ожидается именно каталог, а не файл, достаточно его имя завершить наклонной чертой:
$ cp folder/file1.txt folder/subfolder/
В таком варианте опечатка уже не пройдёт незамеченной:
$ cp folder/file1.txt folder/sunfolder/
cp: cannot create regular file 'folder/sunfolder': Not a directory
Таким образом, если ведущая наклонная черта в пути к файлу говорит о том, что путь начинается от корня файловой системы, то заключительная наклонная черта подчёркивает, что путь ведёт не к файлу, а к каталогу.
Наблюдение № 3
Третье наблюдение касается «особых каталогов». Все знают, что родительский каталог обозначается двумя точками: «..». Многим известно, что одной точкой «.» обозначается текущий каталог. Но если на каталоги верхнего уровня приходится ссылаться регулярно, то польза от ссылки на текущий каталог не столь очевидна: он ведь и так должен подразумеваться по умолчанию.
Теоретически должен, но на практике не всегда так происходит. Например, в текущем каталоге лежит файл moria.deb, который надо установить. Следующая команда с этой задачей не справится:
$ sudo apt install moria.deb
...
E: Unable to locate package moria.deb
E: Couldn't find any package by glob 'moria.deb'
E: Couldn't find any package by regex 'moria.deb'
Можно возразить, что для работы с локальными пакетами следует использовать программу dpkg, а не apt, которая задумывалась для работы с пакетами в репозиториях и ожидает в командной строке название пакета, а не имя файла. Но, с другой стороны, небольшое изменение командной строки позволяет раскрыть и программе apt глаза и на локальные файлы:
$ sudo apt install ./moria.deb
В отличие от dpkg, такой вариант автоматически подхватит из репозиториев недостающие зависимости, если такие вдруг обнаружатся в ходе установки.
Ещё одна польза от «точки» обнаруживается, когда надо выполнить копирование содержимого каталога, в котором есть скрытые файлы или подкаталоги (в Linux таковыми являются файлы, первым символом в имени которых идёт точка). Примером может служить файловая система дистрибутивов Ubuntu, в корне которой которой присутствует каталог .disk со служебной информацией. Если образ дистрибутивного носителя примонтирован в точке /mnt/ISO, то следующая команда копирования разместит в целевом каталоге ~/ubuntu копии всех файлов и каталогов, кроме скрытого:
$ cp -a /mnt/ISO/* ~/ubuntu/
А скрытый каталог потребуется переписать явным образом:
$ cp -a /mnt/ISO/.disk ~/ubuntu/
Но можно воспользоваться «точкой» и выполнить всю необходимую работу одной командой:
$ cp -a /mnt/ISO/. ~/ubuntu/
Этот вариант выполнит полное копирование, включая скрытый каталог.
Приведенные в статье наблюдения лишний раз доказывают общеизвестный факт о том, что мелочей в формальных языках общения с компьютером не бывает. И от точки может зависеть результат операции, как от запятой — судьба человека.
Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером
Командная строка
Основы командной строки
Для работы с командной строкой понадобятся две вещи: терминал и командная оболочка. В этом уроке вы узнаете, как они работают и чем отличаются друг от друга.
Терминал
Терминалом называют программу, которая эмулирует поведение железного терминала, состоящего из клавиатуры и монитора. В простейшем случае — это просто окошко с командной строкой внутри:
Хороший терминал все же не ограничивается одним окном, а позволяет открывать новые терминалы в табах — по такому же принципу, как работают вкладки в браузере.
Некоторые терминалы позволяют делать сплиты, то есть разделять окно на части. Этот довольно удобный механизм есть, например, в :
Хорошие терминалы также умеют восстанавливать завершенную сессию, создавать профили под разные задачи и многое другое.
Командная оболочка
Командная оболочка — программа, через которую пользователь или администратор управляет операционной системой и установленными программами, используя командную строку. У этого понятия множество синонимов — shell, командный интерпретатор и командный процессор.
Оболочка — это лишь средство для выполнения определенных задач, а не сама задача. Этим она отличается от многих других программ.
Внутри терминала пользователь передает системе строки:
Каждая строка — это команда, которую система должна выполнить. После ввода команды обязательно нажать Enter, только в этом случае команда отправится на исполнение. После нажатия Enter отредактировать команду уже нельзя.
Оболочка запускается внутри терминала и приглашает ко вводу команд:
~█
Рассмотрим фрагмент кода подробнее. Мы видим:
- Символ
$
— он используется как разделитель - Слева от
$
— настраиваемое сообщение для вывода, обычно это текущая директория - Справа от
$
— команда, которую вводит пользователь
Все примеры в дальнейшем будут демонстрироваться без этого сообщения и символа. Рассмотрим для примера команду date
, которая выводит текущую дату:
Sun Aug 26 14:02:59 CEST 2018
█
█
Командная оболочка позволяет запускать на выполнение установленные программы. Но это далеко не все, на что она способна. Для комфортной работы полезно иметь:
- Автоматическое завершение имен программ и файлов
- Историю введенных команд
- Возможность перемещаться по файловой системе
- Удобные горячие клавиши
- Поддержку скриптов
Далее в курсе мы раскроем многие из этих аспектов.
Командные оболочки и терминалы бывают разные, хотя по умолчанию в большинстве операционных систем стоит .
Отдельно скажем, что командная оболочка и терминал — не одно и то же. Терминал — это программа, которая запускает командную оболочку внутри себя:
Как вы увидите далее, командная оболочка — это полноценная среда программирования. Многие команды являются стандартными конструкциями любого языка программирования: переменными, циклами или условиями. Кроме того, некоторые команды являются программами, а некоторые — нет. В ближайших уроках для простоты мы будем говорить слово «команда», но потом объясним разницу.
Командную оболочку нередко называют реплом от английского REPL (Read-Eval-Print-Loop). Это сокращение отражает способ взаимодействия командной оболочки с пользователем:
- Read — оболочка ждет ввода команды от пользователя
- Eval — исполняет введенную команду
- Print — выводит результат
- Loop — возвращаемся к первому пункту
Этот процесс называется интерактивной сессией: после загрузки командная оболочка ждет ввода команды, исполняет ее, выводит результат и снова ждет ввода команды. Так происходит до тех пор, пока не будет дана команда на выход из терминала или выключение компьютера.
REPL — широко распространенный способ взаимодействия с пользователем. В следующих курсах вы увидите, что он есть и у баз данных, и у языков программирования.
Чтобы вам было удобнее выполнять задания к урокам, в среде Хекслета сразу запущено два терминала. Терминалы доступны в нижних вкладках под именами Terminal 1 и Terminal 2.
Во время изучения и экспериментов достаточно легко допустить ошибки. Всегда внимательно читайте вывод, в случае паники переоткройте терминал. Это позволит начать все с чистого листа.
Самостоятельная работа
Чтобы научиться работать в командной строке, нужно как можно больше практиковаться в терминале на вашем компьютере.
Сначала нужно установить терминал. Установка зависит от вашей операционной системы:
Если вы работаете с ОС Windows, вам потребуется использовать
Далее убедитесь, что внутри терминала можно запустить bash-сессию. Откройте терминал и введите такой текст:
/bin/bash # Это вывод команды, которую вы ввели выше
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
130 курсов, 2000+ часов теории
1000 практических заданий в браузере
360 000 студентов
Наши выпускники работают в компаниях: