Команда Ls в командной строке Windows

Обновлено: 21.11.2024

Все поддерживаемые версии Windows и Windows Server имеют встроенный набор консольных команд Win32. В этом наборе документации описываются команды Windows, которые можно использовать для автоматизации задач с помощью сценариев или средств создания сценариев.

Оболочки командной строки

В Windows есть две оболочки командной строки: командная оболочка и PowerShell. Каждая оболочка представляет собой программу, которая обеспечивает прямую связь между вами и операционной системой или приложением, предоставляя среду для автоматизации ИТ-операций.

Командная оболочка была первой встроенной в Windows оболочкой для автоматизации рутинных задач, таких как управление учетными записями пользователей или ночное резервное копирование, с помощью пакетных (.bat) файлов. С помощью Windows Script Host вы можете запускать более сложные сценарии в командной оболочке. Дополнительные сведения см. в разделе cscript или wscript. С помощью сценариев можно выполнять операции более эффективно, чем с помощью пользовательского интерфейса. Скрипты принимают все команды, доступные в командной строке.

PowerShell был разработан для расширения возможностей командной оболочки для запуска команд PowerShell, называемых командлетами. Командлеты похожи на команды Windows, но предоставляют более расширяемый язык сценариев. В PowerShell можно выполнять как команды Windows, так и командлеты PowerShell, но командная оболочка может выполнять только команды Windows, а не командлеты PowerShell.

Для наиболее надежной и современной автоматизации Windows мы рекомендуем использовать PowerShell вместо Windows Commands или Windows Script Host для автоматизации Windows.

Справочные сведения о кодах выхода и кодах ошибок для команд Windows можно найти в статьях о кодах ошибок системы отладки, которые могут быть полезны для понимания возникающих ошибок.

Вы также можете загрузить и установить PowerShell Core, версию PowerShell с открытым исходным кодом.

Автоматическое завершение файла командной оболочки и имени каталога

Вы можете настроить командную оболочку для автоматического заполнения имен файлов и каталогов на компьютере или в сеансе пользователя при нажатии указанного управляющего символа. По умолчанию этот управляющий символ настроен как клавиша табуляции для имен файлов и каталогов, хотя они могут быть разными. Чтобы изменить этот управляющий символ, запустите regedit.exe и перейдите к любому из разделов реестра и записей ниже, в зависимости от того, хотите ли вы изменить значение только для текущего пользователя или для всех пользователей компьютера.

Неправильное редактирование реестра может серьезно повредить вашу систему. Прежде чем вносить следующие изменения в реестр, необходимо создать резервную копию всех ценных данных на компьютере.

Установите эти значения равными управляющему символу, который вы хотите использовать. См. коды виртуальных ключей для полного списка. Чтобы отключить определенный символ завершения в реестре, используйте значение пробела (0x20), так как это недопустимый управляющий символ. Тип значения для этой записи реестра — REG_DWORD, и его можно указать в виде шестнадцатеричного или десятичного значения.

Вы также можете включить или отключить завершение имен файлов и каталогов для каждого экземпляра командной оболочки, запустив cmd.exe с параметром и переключателем /F:ON или /F:OFF . Если завершение имени включено с помощью параметра и переключателя /F:ON, используются два управляющих символа: Ctrl-D для завершения имени каталога и Ctrl-F для завершения имени файла. Пользовательские настройки имеют приоритет над настройками компьютера, а параметры командной строки имеют приоритет над настройками реестра.

Справочник по командной строке от А до Я

Чтобы найти информацию о конкретной команде, в следующем меню от A до Z выберите букву, с которой начинается команда, а затем выберите имя команды.

У меня Windows 7, она устарела, и я немного повозился с ней. Когда я нахожусь в cmd, я обнаруживаю, что ls работает так же, как и ожидалось в Linux. Так что сделайте несколько других команд, таких как mv и rm . Это не проблема сама по себе, но я хотел бы знать, откуда они берутся. Насколько я знаю, Windows не поддерживает их автоматически. Вероятно, я сам их когда-то добавил. Можно ли как-нибудь попытаться понять, почему они работают?

Относительно текущего тега [windows-7]. Вики тега «windows» говорит: «Для вопросов, не относящихся к одной версии Microsoft Windows. В противном случае используйте более конкретный тег, например [windows-7] или [windows-10]».

3 ответа 3

В cmd вы можете использовать команду where, чтобы найти местоположение исполняемого файла:

Это похоже на команду Unix, которая и как она не сообщает о внутренних командах и псевдонимах. Он также имеет дополнительные параметры, не в которых .

Если это одна из импортированных вами команд Unix, вы можете использовать ее саму.

Ответ, который я получаю на это, C:\Program Files (x86)\GnuWin32\bin\ls.exe Так что я предполагаю, что это то, откуда исходит материал. Спасибо

Возможно, вы установили репозиторий Git. Это может быть из вашего C:\Program Files\Git\usr\bin\ls.exe

Первоначальный автор уже подтвердил, что источником в их случае является
C:\Program Files (x86)\GnuWin32\bin\ls.exe .

Но, как предположил Shanmugam, причина, по которой команды unix запускаются в командной строке Windows, cmd , может заключаться в том, что у вас установлен GitBash.

Если да, то при запуске ls из командной строки вероятным источником является
C:\Program Files\Git\usr\bin\ls.exe .

При установке GitBash путь C:\Program Files\Git\usr\bin по умолчанию не добавляется в переменную среды PATH. Таким образом, вы можете сделать это самостоятельно, как показано ниже.
Нажмите клавишу Win на клавиатуре, а затем вставьте или введите envi . Нажмите «Изменить системные переменные среды». Нажмите кнопку внизу справа под названием Environment Variables. . Во фрейме Системные переменные прокрутите вниз и дважды щелкните ПУТЬ, как показано на рисунке ниже.

Откроется новое окно. Нажмите кнопку «Создать», а затем вставьте или введите
C:\Program Files\Git\usr\bin . Нажмите на себя (трижды нажмите OK ).

Обратите внимание, что вам необходимо закрыть и перезапустить cmd.exe (окно терминала), чтобы изменения вступили в силу.
Эмуляции команд Unix в C:\Program Files\Git\usr\bin теперь должны работать из любой точки командной строки.

Дочитав до этого места, скорее всего, вы также захотите установить Clink.

ls для Windows 10 переносит команду Linux 'ls' в командную строку Windows 10. Зачем директор, если можно ls?

Доступно

Описание

ls для Windows 10 переносит команду Linux 'ls' в командную строку Windows 10. Зачем директор, если можно ls?

Скриншоты

Люди также любят

Свободный терминал

Предварительный просмотр PowerShell

Предварительный просмотр терминала Windows

Termius – SSH-клиент

Галерея элементов управления WinUI 3

Отладчик TCP/UDP

Игрушки для разработчиков

Студия XAML

openSUSE Leap 15.2

SUSE Linux Enterprise Server 15 SP1

Что нового в этой версии

Это первоначальный выпуск с базовыми функциями вывода списка файлов. Держись. Аргументы командной строки скоро появятся!

Возможности

  • список файлов в текущем каталоге
  • интегрируется с командной строкой Windows

Дополнительная информация

Опубликовано

Разработано

Дата выпуска

Приблизительный размер

Возрастной рейтинг

Категория

Это приложение может

Установка

Поддерживаемый язык

Дополнительные условия

Предупреждения о припадках

Сообщить об этом продукте

Сообщить об этом приложении в Microsoft
Спасибо, что сообщили о проблеме. Наша команда рассмотрит его и при необходимости примет меры.
Войдите, чтобы сообщить об этом приложении в Microsoft

Системные требования

Минимум
Ваше устройство должно соответствовать всем минимальным требованиям для открытия этого продукта
OS Xbox, Windows 10 версии 17134.0 или выше< /td>
Архитектура ARM, x64, x86
Клавиатура Встроенная клавиатура
Рекомендуется
Ваше устройство должно соответствовать этим требованиям для оптимальной работы
ОС Xbox, Windows 10 версии 17134.0 или выше
Архитектура ARM, x64, x86
Клавиатура Встроенная клавиатура

Перевести на английский

Перевести на русский

Вы совершаете покупки в Microsoft Store на: США – английский

Вы ищете Microsoft Store в: Россия - Русский?

Зарегистрируйте меня

Будьте в курсе специальных предложений, последних продуктов, событий и многого другого в Microsoft Store. Доступно для жителей США.

Нажимая кнопку «Зарегистрироваться», я соглашаюсь с тем, что мне нужна информация, советы и предложения о Microsoft Store и других продуктах и ​​услугах Microsoft. Заявление о конфиденциальности

При работе с файловыми системами Windows и Linux необходимо учитывать ряд соображений. В этом руководстве мы описали некоторые из них, в том числе несколько примеров поддержки совместимости для комбинирования команд Windows и Linux.

Хранение файлов и производительность в файловых системах

Мы не рекомендуем работать с вашими файлами в разных операционных системах, если у вас нет для этого особой причины. Для максимальной производительности храните файлы в файловой системе WSL, если вы работаете в командной строке Linux (Ubuntu, OpenSUSE и т. д.). Если вы работаете в командной строке Windows (PowerShell, командная строка), храните файлы в файловой системе Windows.

Например, при хранении файлов проекта WSL:

  • Используйте корневой каталог файловой системы Linux: \\wsl$\Ubuntu\home\\Project
  • Не корневой каталог файловой системы Windows: /mnt/c/Users/ /Project$ или C:\Users\\Project

Когда вы видите /mnt/ в пути к файлу командной строки WSL, это означает, что вы работаете с подключенного диска. Таким образом, файловая система Windows C:/диск ( C:\Users\ \Project ) будет выглядеть так при монтировании в командной строке WSL: /mnt/c/Users/ /Project$ . Файлы проекта можно хранить на смонтированном диске, но ваша производительность улучшится, если вы сохраните их непосредственно на диске \\wsl$.

Просмотр текущего каталога в проводнике Windows

Вы можете просмотреть каталог, в котором хранятся ваши файлы, открыв проводник Windows из командной строки, используя:

В качестве альтернативы вы также можете использовать команду: powershell.exe /c start . Не забудьте добавить точку в конце команды, чтобы открыть текущий каталог.

Чтобы просмотреть все доступные дистрибутивы Linux и их корневые файловые системы в проводнике Windows, введите в адресной строке: \\wsl$

Чувствительность к регистру в именах файлов и каталогов

Чувствительность к регистру определяет, обрабатываются ли прописные (FOO.txt) и строчные (foo.txt) буквы как разные (с учетом регистра) или эквивалентные (без учета регистра) в имени файла или каталоге. Файловые системы Windows и Linux обрабатывают чувствительность к регистру по-разному: Windows нечувствительна к регистру, а Linux чувствительна к регистру. Узнайте больше о том, как настроить чувствительность к регистру, особенно при монтировании дисков с помощью WSL, в статье с инструкциями по настройке чувствительности к регистру.

Взаимодействие между командами Windows и Linux

Инструменты и команды Windows и Linux взаимозаменяемы с WSL.

  • Запуск инструментов Windows (например, notepad.exe) из командной строки Linux (например, Ubuntu).
  • Запуск инструментов Linux (например, grep) из командной строки Windows (например, PowerShell).
  • Совместно использовать переменные среды между Linux и Windows. (сборка 17063+)

Запуск инструментов Linux из командной строки Windows

Запускайте двоичные файлы Linux из командной строки Windows (CMD) или PowerShell с помощью wsl (или wsl.exe ).

Двоичные файлы вызываются следующим образом:

  • Используйте тот же рабочий каталог, что и текущая командная строка CMD или PowerShell.
  • Запуск от имени пользователя WSL по умолчанию.
  • Имейте те же права администратора Windows, что и вызывающий процесс и терминал.

Команда Linux, следующая за wsl (или wsl.exe ), обрабатывается как любая команда, выполняемая в WSL. Такие вещи, как sudo, конвейер и перенаправление файлов, работают.

Пример использования sudo для обновления дистрибутива Linux по умолчанию:

После выполнения этой команды будет указано имя пользователя вашего дистрибутива Linux по умолчанию, и вас попросят ввести пароль. После правильного ввода пароля ваш дистрибутив загрузит обновления.

Совмещение команд Linux и Windows

Вот несколько примеров сочетания команд Linux и Windows с помощью PowerShell.

Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell findstr для фильтрации результатов по словам, содержащим "git", объедините команды:

Чтобы использовать команду PowerShell dir для вывода списка файлов и команду Linux grep для фильтрации результатов по словам, содержащим "git", объедините команды:

Чтобы использовать команду Linux ls -la для вывода списка файлов и команду PowerShell > out.txt для печати этого списка в текстовый файл с именем "out.txt", объедините команды:

Команды, переданные в wsl.exe, перенаправляются в процесс WSL без изменений. Пути к файлам должны быть указаны в формате WSL.

Чтобы использовать команду Linux ls -la для вывода списка файлов в пути файловой системы /proc/cpuinfo Linux с помощью PowerShell:

Чтобы использовать команду Linux ls -la для вывода списка файлов в пути файловой системы Windows C:\Program Files с помощью PowerShell:

Запуск инструментов Windows из Linux

WSL может запускать инструменты Windows непосредственно из командной строки WSL с помощью [имя-инструмента].exe . Например, notepad.exe .

Приложения, запускаемые таким образом, имеют следующие свойства:

  • Сохраните рабочий каталог в качестве командной строки WSL (по большей части — исключения описаны ниже).
  • Имейте те же права доступа, что и процесс WSL.
  • Запуск от имени активного пользователя Windows.
  • Отображается в диспетчере задач Windows так, как будто выполняется непосредственно из командной строки CMD.

Исполняемые файлы Windows, запущенные в WSL, обрабатываются так же, как и исходные исполняемые файлы Linux: передача по конвейеру, перенаправление и даже фоновая обработка работают должным образом.

Чтобы запустить инструмент Windows ipconfig.exe , используйте инструмент Linux grep для фильтрации результатов "IPv4" и используйте инструмент Linux cut для удаления полей столбца, из дистрибутива Linux (например, Ubuntu) введите:< /p>

Давайте рассмотрим пример сочетания команд Windows и Linux. Откройте дистрибутив Linux (например, Ubuntu) и создайте текстовый файл: touch foo.txt. Теперь используйте команду Linux ls -la, чтобы вывести список прямых файлов и сведения об их создании, а также инструмент Windows PowerShell findstr.exe для фильтрации результатов, чтобы в результатах отображался только ваш файл foo.txt:

Инструменты Windows должны включать расширение файла, соответствовать регистру файла и быть исполняемым. Неисполняемые файлы, включая пакетные сценарии. Собственные команды CMD, такие как dir, можно запускать с помощью команды cmd.exe /C.

Например, выведите список содержимого каталога C:\ файловой системы Windows, введя:

Параметры передаются в двоичный файл Windows без изменений. Например, следующая команда откроет C:\temp\foo.txt в notepad.exe:

Это также будет работать:

Обмен переменными среды между Windows и WSL с помощью WSLENV

WSL и Windows совместно используют специальную переменную среды WSLENV , созданную для объединения дистрибутивов Windows и Linux, работающих на WSL.

Свойства переменной WSLENV:

  • Он является общим; он существует как в среде Windows, так и в среде WSL.
  • Это список переменных среды для совместного использования Windows и WSL.
  • Он может форматировать переменные среды, чтобы они хорошо работали в Windows и WSL.
  • Он может помочь в обмене данными между WSL и Win32.

До версии 17063 единственной переменной среды Windows, к которой WSL мог получить доступ, была PATH (поэтому вы могли запускать исполняемые файлы Win32 из-под WSL). Начиная с версии 17063, WSLENV начинает поддерживаться. WSLENV чувствителен к регистру.

флаги WSLENV

В WSLENV доступны четыре флага, влияющие на преобразование переменной среды.

  • /p — преобразует путь между путями в стиле WSL/Linux и путями Win32.
  • /l — указывает, что переменная среды представляет собой список путей.
  • /u — указывает, что эту переменную среды следует включать только при запуске WSL из Win32.
  • /w — указывает, что эту переменную среды следует включать только при запуске Win32 из WSL.

Флаги можно комбинировать по мере необходимости.

Узнайте больше о WSLENV, включая ответы на часто задаваемые вопросы и примеры установки значения WSLENV для конкатенации других предопределенных переменных среды, каждая из которых имеет косую черту, за которой следуют флаги, чтобы указать, как значение должно быть преобразовано, и передача переменных с сценарий. В этой статье также приведен пример настройки среды разработки с языком программирования Go, настроенного для совместного использования GOPATH между WSL и Win32.

Отключить совместимость

Пользователи могут отключить возможность запуска инструментов Windows для одного сеанса WSL, выполнив следующую команду от имени пользователя root:

Чтобы повторно включить двоичные файлы Windows, выйдите из всех сеансов WSL и повторно запустите bash.exe или выполните следующую команду от имени пользователя root:

Отключение взаимодействия не будет сохраняться между сеансами WSL — взаимодействие будет снова включено при запуске нового сеанса.

Читайте также: