2021 UPDATE
As @phuclv has mentioned in comments, I want to emphasize that there is a tool that actually works great on Windows 64 bit too! It’s called Micro and fortunately, it is quite feature-rich, regularly updated and alive.
To install it, you only need to download the latest version’s 64bit.zip file from here, and then unzip it somewhere and add its path to your PATH. No dependencies or external files are needed — just the binary and you’re done.
Quick Start:
- Just type
micro
to create and edit a new text file. - Type
micro <filename>
to start editing an already-made file. - To save:
ctrl + s
- To see a list of keybindings:
alt + g
- To quit:
ctrl + q
Some Exciting Features:
- Select text easily (using the shift key, or even using your mouse!), and then copy, cut, paste or delete the selected text using the same keybindings common in your operating system(e.g.
ctrl + c
for copy on Windows). - Supporting so many common keybindings, e.g.
ctrl + d
to duplicate a line, or activate multiple curser mode and etc. - Undo / Redo
- Syntax Highlighting (for more than 130 programming languages)
- Plugin System
- Typed Commands (instead of using keybindings)
- …
A tip on using Micro for VSCode users:
Since both VSCode and Micro try to support all common keybindings, you’ll probably have a lot of conflicting keybindings between them when using Micro inside the VSCode’s embedded CMD/PowerShell terminal. For instance, to quit Micro, you will have to use ctrl + q
while it is the VSCode’s keybinding for the «Quick Open View» command.
But no worries! Micro also supports «Typed Commands» which allow you to control the editor using commands instead of keybindings. So you can type commands and you’re fine to use Micro on VSCode as well. However, there’s still a tiny problem. To enable «command mode» on Micro, you have to use ctrl + e
, which is also a keybinding of VSCode for the «Go To File…» command. So you have to change the ctrl + e
keybinding either on VSCode or on Micro to get rid of this conflict and then you’re all set.
Personally, I preferred to change Micro’s ctrl + e
. Here are the steps from the documentation to change it to ctrl + w
(or whatever else non-conflicting keybinding of your own liking) on a Windows machine:
- Open
%userprofile%/.config/micro/bindings.json
with any editor. - Add this line to the end of the JSON:
"Ctrl-w": "CommandMode"
- Save.
Now to enter command mode, pressctrl + w
and type your commands (e.g.: quit, save, open, etc).
Содержание
- Полезные команды в консоли Windows
- Содержимое текущей папки — dir
- Открыть файл
- Перейти в другую папку — cd
- Создать папку — mkdir или md
- Удалить папку — rmdir или rd
- Показать дерево папок — tree
- Удаление файла — del или erase
- Переименование файла — ren или rename
- Команды одной строкой
- Справка по командам — help
- Как редактировать текстовые файлы в командной строке Windows?
- Изучите командную строку в терминале
- Создание файлов
- 13 инструментов для обработки текста в командной оболочке
- Содержание
- Обработка текста в командной оболочке
- paste
- Замена текста
- Реальные примеры
- Фильтрация CSV с помощью grep и awk
- Вывод адреса IPv4, связанного с сетевым интерфейсом
- Извлечение значения из файла конфигурации
- Извлечение IP-адресов из файла журнала
- Переименование функции в исходном файле
- Углубляемся: циклы for и xargs
- Резюме
- Что дальше
- Цикл довузовской подготовки кафедры ЭФУ
- СТРУКТУРА ПРАКТИКУМА
- ЗАДАНИЕ №1
- ЗАДАНИЕ №2
- ЗАДАНИЕ №3
- ЗАДАНИЕ №4
- ЗАДАНИЕ №5
- ВВЕДЕНИЕ
- 1. ОСНОВЫ КОМАНДНОЙ СТРОКИ MS WINDOWS
- 1. Начало работы с командной строкой
- 2. Структура файловой системы Windows
- 3. Работа с текстовыми файлами в Cmd.exe
- 4. Копирование и перемещение файлов и директорий
- 2. ЭФФЕКТИВНАЯ РАБОТА С КОМАНДНОЙ СТРОКОЙ
- 1. Полезные инструменты командной строки
- 2. Настройка параметров командной оболочки
- 3. Перенаправление ввода/вывода и конвейеры
- 3.ЧТО ДОЛЖЕН ЗНАТЬ НЕ ТОЛЬКО СИСАДМИН
- 1. Начало работы и внешний вид FAR
- 2. Основные операции FAR Manager
- 3. Дополнительные возможности FAR
- 1.3. Работа с текстовыми файлами в Cmd.exe
- Пуск > Все программы > Стандартные > Блокнот
- Start > All Programs > Accessories > Notepad
- Пример 1.18. Вывод текстового файла на экран
- Пример 1.19. Вывод текстового файла на экран
- TYPE [диск:][путь]имя_файла
- MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]
- Пример 1.20. Удаление файла (не обязательно текстового)
- DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена
- ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена
- Список команд Windows ( Windows CMD ) с описанием и примерами.
- Способы запуска командной строки
- Справочник по командам CMD Windows
- Прочие материалы по работе с командной строкой Windows:
Полезные команды в консоли Windows
Программистам часто приходится работать в консоли — например, чтобы запустить тестирование проекта, закоммитить новый код на Github или отредактировать документ в vim. Всё это происходит так часто, что все основные действия с файлами становится быстрее и привычнее выполнять в консоли. Рассказываем и показываем основные команды, которые помогут ускорить работу в терминале под ОС Windows.
Для начала нужно установить терминал или запустить командную строку, встроенную в Windows — для этого нажмите Win+R и введите cmd. Терминал часто встречается и прямо в редакторах кода, например, в Visual Studio Code.
Содержимое текущей папки — dir
Выводит список файлов и папок в текущей папке.
Открыть файл
Чтобы открыть файл в текущей папке, введите его полное имя с расширением. Например, blog.txt или setup.exe.
Перейти в другую папку — cd
Команда cd без аргументов выводит название текущей папки.
Перейти в папку внутри текущего каталога
Перейти на одну папку вверх
Перейти в папку на другом диске
Чтобы просто изменить диск, введите c: или d:
Создать папку — mkdir или md
Создаём пустую папку code внутри папки html :
Создаём несколько пустых вложенных папок — для этого записываем их через косую черту.
Удалить папку — rmdir или rd
При этом удалить можно только пустую папку. Если попытаться удалить папку, в которой что-то есть, увидим ошибку.
Показать дерево папок — tree
Если вы хотите посмотреть содержимое всего диска, введите tree в корне нужного диска. Получится красивая анимация, а если файлов много, то ещё и немного медитативная.
Удаление файла — del или erase
Команда для удаления одного или нескольких файлов.
Переименование файла — ren или rename
Последовательно вводим ren, старое и новое имя файла.
Команды одной строкой
Очистить консоль — cls
Информация о системе — systeminfo
Информация о сетевых настройках — ipconfig
Список запущенных процессов — tasklist
Справка по командам — help
Команда help без аргументов выводит список всех возможных команд. help вместе с именем команды выведет справку по этой команде.
В этой статье приведены не все команды и не все их возможности, но вы всегда можете воспользоваться командой help и узнать о том, что ещё может командная строка.
Консоль — важный инструмент веб-разработчика
Научитесь пользоваться всеми инструментами в HTML Academy, чтобы работать с кодом в большой компании.
Источник
Как редактировать текстовые файлы в командной строке Windows?
В Unix я бы просто использовал vi, но я не знаю, что это за команда в Windows. На самом деле я пытаюсь редактировать файлы через SSH с помощью Windows Server 2008.
Я не ручаюсь за его функциональность и устаревший графический интерфейс, но он установлен по умолчанию даже в Windows 7.
Изменить: За исключением 64-битных версий Windows.
Самое простое решение для всех версий Windows:
И никакого дополнительного программного обеспечения не требуется.
Самое простое решение для всех версий в Windows:
И никакого дополнительного программного обеспечения не требуется.
В командной строке Windows введите copy con , за которым следует имя целевого файла. ( copy con c: file.txt ).
Затем введите текст, который вы хотите поместить в файл.
В командной строке Windows введите copy con , а затем имя целевого файла. ( copy con c: file.txt ).
Затем введите текст, который вы хотите поместить в файл.
Верьте или нет, EDLIN.EXE все еще около по крайней мере в этой системе Vista.
Простите, я тихонько рыдаю про себя …
Хотите верьте, хотите нет, но EDLIN.EXE все еще находится рядом с по крайней мере в этой системе Vista.
Простите, я тихонько рыдаю про себя …
Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов в Nano.
Я также видел порты vi для Windows, хотя я использовал тот, который, похоже, делает окно командной строки таким маленьким, как это может быть, оставив только строку заголовка (что означает, что остальная часть окна также может быть невидимой, поскольку вы не можете видеть, что делаете). Однако версия Vim для Windows, похоже, работает довольно хорошо.
Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов в Nano.
Я также видел порты vi для Windows, хотя я использовал тот, который, похоже, делает окно командной строки таким маленьким, как это может быть, оставив только строку заголовка (что означает, что остальная часть окна также может быть невидимой, поскольку вы не можете видеть, что делаете). Однако версия Vim для Windows, похоже, работает довольно хорошо.
Если у вас установлен git для Windows, то, скорее всего, и nano, и vim доступны по адресу
Для запуска из командной строки (cmd.exe)
Для запуска в PowerShell
Они оба отлично работают даже по ssh.
Если у вас установлен git для Windows, то, скорее всего, nano и vim доступны по адресу
Для запуска из команды подсказка (cmd.exe)
Для запуска в PowerShell
Оба они отлично работают даже по ssh.
В Win10 просто включите подсистему linux, тогда у вас будет большая часть вещей Linux, таких как vim и nano :
В Win10 просто включите подсистему linux, тогда у вас будет большая часть Linux такие вещи, как vim и nano :
(Также может быть доступна версия Scoop, но я не проверял.)
(Также может быть доступна версия Scoop, но я не проверял.)
Изучите командную строку в терминале
Создание папок — это круто, но папка без содержимого так же полезна, как и пустая коробка!
Теперь, когда вы знакомы с созданием папок через командную строку, пришло время заполнить эти папки файлами..
Создание файлов
Как вы понимаете, разные Для курсов потребуются файлы разных типов внутри. Например, на уроке гуманитарных наук, таком как история искусства, может потребоваться конец курсовой работы. Скорее всего, это текстовый файл. 🎨 Может быть, на уроке биологии потребуются исследования и результаты этого семестра! Скорее всего, это электронная таблица. 🐢
Вы можете создавать все типы файлов из самой командной строки.
Это намного быстрее, чем создание файла по отдельности через различные приложения, такие как Microsoft Excel или текстовый редактор, и запустив «Сохранить как».
Touch — команда звучит довольно жутко, но вот что она делает:
указывает вашей системе искать определенный файл
Если файл еще не существует, ваша система создаст этот файл для вас.
команда будет выглядеть так:
Это так просто! Теперь, если вы снова посмотрите в Finder, вы увидите, что этот файл был создан внутри вашей папки «История искусства». В настоящее время он пуст, но вы можете открыть его в любое время из Терминала, чтобы редактировать содержимое, как обычно:
Теперь пора создать второй файл. Этот второй файл будет в папке «Биология». Это означает, что мы должны сменить каталоги на папку Biology!
На этом этапе вы вернетесь в каталог «Второй семестр».
Вот как выглядит вся серия команд:
Запустите команду open, чтобы открыть файл
Обратите внимание, что после запуска open research-sizes.csv файл открывается автоматически в Microsoft Excel. Терминал достаточно умен, чтобы знать, какое приложение должно открывать файлы какого типа. 👍
Файл открывается в правильном приложении автоматически!
Пример кода
В предыдущей главе вы видели, как создать базовую структуру папок для статического веб-сайта. Была папка CSS и папка для изображений.
Однако обе они пусты. Давайте добавим файл!
Выполните коснитесь плюс имя файла — index.html — для его создания:
Создание файла index.html
Я даже могу открыть HTML-файл в моем браузере, чтобы просмотреть содержимое моего файла:
Теперь вы понимаете, насколько универсальным и оптимизированным является создание файлов из командной строки. Это намного быстрее, чем создание файлов по отдельности с помощью различных приложений, таких как Word.
Вам просто нужно знать имя вашего файла и расширение вы хотите, и вы можете сэкономить много времени и полностью избежать процесса Сохранить как в разных приложениях.
В следующей главе вы увидите, как перемещать и копировать часть этого контента вы создали.
Источник
13 инструментов для обработки текста в командной оболочке
Содержание
Обработка текста в командной оболочке
Одна из причин, которые делают командную оболочку бесценным инструментом, — это большое количество команд обработки текста и возможность легко объединять их в конвейер, создавая сложные шаблоны обработки. Эти команды делают тривиальными многие задачи по анализу текста и данных, преобразованию данных между разными форматами, по фильтрации строк и т. д.
При работе с текстовыми данными главный принцип заключается в том, чтобы разбить любую сложную проблему на множество более мелких — и решить каждую из них с помощью специализированного инструмента.
Заставьте каждую программу хорошо выполнять одну функцию — «Основы философии Unix»
Примеры из этой главы на первый взгляд могут показаться немного надуманными, но это сделано специально. Каждый из инструментов разработан для решения одной небольшой задачи. Однако в сочетании они становятся чрезвычайно мощными.
Мы рассмотрим некоторые из наиболее распространенных и полезных команд обработки текста в командной оболочке и продемонстрируем реальные рабочие процессы, соединяющие их вместе. Я предлагаю взглянуть на маны этих команд, чтобы увидеть всю широту возможностей в вашем распоряжении.
Файл CSV с примерами доступен в онлайне. Можете скачать его для проверки материала.
Команда cat используется для составления списка из одного или нескольких файлов и отображения их содержимого на экране.
head выводит первые n строк в файле. Это может быть очень полезно для того, чтобы заглянуть в файл неизвестной структуры и формата, не заваливая всю консоль кучей текста.
По умолчанию отображается всё вышеперечисленное.
Например, можем найти все вхождения слова mutex в файле.
Рассмотрим некоторые опции grep и их поведение.
Например, следующая команда извлекает первый столбец из последних пяти строк нашего CSV-файла.
paste
paste объединяет вместе два разных файла в один многоколоночный файл.
uniq обнаруживает и отфильтровывает соседние одинаковые строки в указанном файле или входном потоке.
Поскольку uniq отфильтровывает только соседние строки, в наших данных могут ещё остаться дубликаты. Чтобы отфильтровать все одинаковые строки из файла, нужно сначала отсортировать его содержимое.
Примечание. uniq особенно полезен в сочетании с сортировкой, поскольку конвейер | sort | uniq позволяет удалить все дублирующиеся строки в файле или потоке.
awk — это чуть больше, чем просто инструмент обработки текста: на самом деле у него целый язык программирования. В чём awk действительно хорош — так это в разбиении файлов на столбцы, и делает это с особенным блеском, когда в файлах перемешаны пробелы и табы.
Как видим, столбцы разделены либо пробелами, либо табуляциями, и не всегда одинаковым количеством пробелов. cut здесь бесполезен, потому что работает только с одним символом-разделителем. Но awk легко разберётся с таким файлом.
Хотя awk способен на гораздо большее, выдача колонок составляет, наверное, 99% вариантов использования в моём личном случае.
tr расшифровывается как translate. Эта команда заменяет одни символы на другие. Она работает либо с символами, либо с классами символов, такими как строчные, печатные, пробелы, буквенно-цифровые и т. д.
[:space:] представляет все типы пробелов, от простого пробела до табуляции или символа новой строки.
Все символы, похожие на пробелы, переведены в запятую. Обратите внимание, что символ % в конце выдачи означает отсутствие завершающей новой строки. Действительно, этот символ тоже переведён в запятую.
[:lower:] представляет все строчные символы, а [:upper:] — все прописные. Таким образом, преобразование между ними становится тривиальным.
Команды редактора могут включать один или несколько адресов, функцию и параметры. Таким образом, команды выглядят следующим образом:
Хотя sed выполняет множество функций, мы рассмотрим только замену текста как один из самых распространённых вариантов использования.
Замена текста
Команда замены sed выглядит следующим образом:
Пример: замена первого экземпляра слова в каждой строке в файле:
Адрес говорит редактору, в какой строке или диапазоне строк выполнять подстановку.
Реальные примеры
Фильтрация CSV с помощью grep и awk
Вывод адреса IPv4, связанного с сетевым интерфейсом
Команда ifconfig выводит сведения по указанному сетевому интерфейсу. Например:
Извлечение значения из файла конфигурации
Извлечение IP-адресов из файла журнала
Следующий реальный код ищет в журнале БД сообщение Too many connections from (за ним следует IP-адрес) и отображает десять главных нарушителей.
Давайте разберем, что делает этот конвейер. Во-первых, как выглядит строка в журнале.
Команда sed ‘s@/@@’ удаляет начальный слэш.
Переименование функции в исходном файле
Углубляемся: циклы for и xargs
Затем можем использовать команду xargs для осуществления действий с каждой строки выходных данных (то есть всех файлов, содержащих строку bool_from_str ).
Затем выполняются следующие команды:
Эта команда затем исполнит
Примечание. Из синопсиса sed на ман-странице видно, что команда может принять несколько аргументов.
Эта команда выполнит
Резюме
Любую задачу, включающую текст, можно свести к конвейеру более мелких задач, каждая из которых выполняет простое действие и передаёт свои выходные данные в следующую задачу.
Например, если нам хочется узнать, сколько уникальных IP-адресов в файле журнала, и чтобы эти IP-адреса всегда появлялись в одном и том же столбце, то можно запустить следующую последовательность команд:
Примеры в этой статье были надуманными, но я предлагаю вам прочитать удивительную статью «Инструменты командной строки могут быть в 235 раз быстрее, чем ваш кластер Hadoop», чтобы получить представление о том, насколько полезны и мощны эти команды на самом деле и какие реальные проблемы они могут решить.
Что дальше
Если интересно поучаствовать в проекте, подписывайтесь на список рассылки!
Источник
Цикл довузовской подготовки кафедры ЭФУ
СТРУКТУРА ПРАКТИКУМА
ЗАДАНИЕ №1
ЗАДАНИЕ №2
ЗАДАНИЕ №3
ЗАДАНИЕ №4
ЗАДАНИЕ №5
ВВЕДЕНИЕ
1. ОСНОВЫ КОМАНДНОЙ СТРОКИ MS WINDOWS
1. Начало работы с командной строкой
2. Структура файловой системы Windows
3. Работа с текстовыми файлами в Cmd.exe
4. Копирование и перемещение файлов и директорий
2. ЭФФЕКТИВНАЯ РАБОТА С КОМАНДНОЙ СТРОКОЙ
1. Полезные инструменты командной строки
2. Настройка параметров командной оболочки
3. Перенаправление ввода/вывода и конвейеры
3.ЧТО ДОЛЖЕН ЗНАТЬ НЕ ТОЛЬКО СИСАДМИН
1. Начало работы и внешний вид FAR
2. Основные операции FAR Manager
3. Дополнительные возможности FAR
1.3. Работа с текстовыми файлами в Cmd.exe
После построения дерева каталогов (Рис. 1.5) перейдем к рассмотрению способов создания и редактирования простых текстовых файлов (Таблица 1.2).
Для пользователей Windows самым очевидным инструментом такой работы является приложение «Блокнот» (Notepad), запускаемое в русском варианте графического интерфейса Windows как:
Пуск > Все программы > Стандартные > Блокнот
или в англоязычном интерфейсе:
Start > All Programs > Accessories > Notepad
Для корректного отображения текста фалов, созданных в текстовом редакторе Notepad, необходимо установить для командной строки кодовую страницу 1251 (Для каждого национального алфавита используется своя, так называемая, кодовая страница. необходимая для корректного отображения национальных шрифтов) и выбрать для отображения текста один из True Type шрифтов: Consolas или Lucida Console (выбор шрифтов подробно рассмотрен в следующем параграфе – § 2.2 «Настройка параметров командной строки»). Для просмотра текущей кодовой страницы, в данный момент используемой командным интерпретатором и для ее изменения, служит команда CHCP (Пример 2.4).
Приложение «Блокнот» может быть запущено и из командной строки (Пример 1.18). В данном примере создается текстовый файл papa1.txt (Рис. 1.5) с использованием абсолютного пути, включающего имя директории и имя файла.
Пример 1.18. Вывод текстового файла на экран
После подтверждения запроса на создание файла и набора соответствующего текста (Рис. 1.6), необходимо сохранить и закрыть файла (Файл > Сохранить), после чего убедиться в существовании файла командами DIR или TREE.
Рис. 1.6. Текстовый файл в редакторе Notepad.
Для просмотра существующих текстовых файлов из командной строки применяются команды TYPE или MORE (Пример 1.19).
Пример 1.19. Вывод текстового файла на экран
При просмотре текстовых файлов, можно использовать абсолютные и относительные пути к ним из текущей директории. Если с помощью команды CD сделать текущей директорию, в которой находится просматриваемый файл, то команде TYPE или MORE достаточно указать в качестве параметра только имя файла.
Команда TYPE осуществляет вывод содержимого одного или нескольких текстовых файлов в формате:
TYPE [диск:][путь]имя_файла
Команда MORE выводит данные текстового файла по частям, размером в один экран. Наиболее простой форматы ее использования выглядит следующим образом:
MORE /E [/C] [/P] [/S] [/Tn] [+n] [файлы]
/E – Разрешение использования дополнительных возможностей.
/C – Очистка экрана перед выводом каждой страницы.
/P – Учет символов перевода страницы.
/S – Сжатие нескольких пустых строк в одну строку.
/Tn –Замена табуляции n пробелами (по умолчанию n = 8).
+n – Начало вывода первого файла со строки с номером n.
Для разделения имен в списке отображаемых файлов используются пробелы. Если включен режим использования дополнительных возможностей, то MORE будет работать как консольное приложение, в командной строке которого можно вводить следующие команды:
P n – Вывод следующих n строк.
S n – Пропуск следующих n строк.
F – Вывод следующего файла.
Q – Завершение работы.
= – Вывод номера строки.
? – Вывод строки подсказки.
– Вывод следующей страницы.
– Вывод следующей строки.
Помимо текстового редактора Notepad, являющегося неотъемлемой частью стандартного набора приложений Windows, командная строка позволяет создавать и редактировать текстовые файлы при помощи утилиты Edit – текстового редактора унаследованного еще от MS DOS. Меню (допускающее управление мышью) и команды (сочетания клавиш) этого редактора практически аналогичны Notepad – и в этом нет ничего удивительного, поскольку Notepad является прямым наследником Edit. В рамках данного лабораторного практикума использование этой весьма полезной утилиты осложняют проблемы с русификацией.
Для создания текстовых файлов непосредственно в командной строке можно использовать копирование текста (§ 1.4) со стандартной консоли (клавиатуры), а также перенаправление стандартного ввода/вывода команд в текстовый файл (§ 2.3).
Если в командной строке Windows набрать и подтвердить путь к текстовому файлу (с расширением «.txt»), то это приведет к открытию текстового файла в редакторе Notepad – поскольку txt-файлы, по умолчанию, ассоциированы с этим приложением Windows.
Удаление одного или нескольких файлов в командной строке Windows осуществляется равноценными по действию командами DEL и ERASE (Пример 1.20). Для реализации примера необходимо создать в Notepad текстовый файл (скажем, ERROR.TXT) и размесить его в своем рабочем каталоге (в примерах практикума – это каталог D:WINLAB).
Пример 1.20. Удаление файла (не обязательно текстового)
В общем случае команды DEL и ERASE имеют нижеследующий формат (далее по тексту формата: «имена» – список из одного или нескольких файлов или каталогов, если указан каталог, будут удалены все файлы в этом каталоге):
DEL [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена
ERASE [/P] [/F] [/S] [/Q] [/A[[:]атрибуты]] имена
/P – Запрос подтверждения перед удалением каждого файла.
/F – Принудительное удаление файлов, только для чтения.
/S – Удаление указанных файлов из всех подкаталогов.
/Q – Отключение запроса на подтверждение удаления файлов.
/A – Отбор файлов для удаления по атрибутам:
R – Файлы, доступные только для чтения;
S – Системные файлы; H – Скрытые файлы;
A – Файлы, готовые для архивирования;
I – Файлы с неиндексированным содержимым;
L – Точки повторной обработки;
Префикс «-» имеет значение НЕ.
При включении расширенной обработки команд DEL и ERASE результаты вывода для ключа /S принимают обратный характер, то есть выводятся только имена удаленных файлов, а не файлов, которые не удалось найти.
Источник
Список команд Windows ( Windows CMD ) с описанием и примерами.
Командная строка Windows является стандартным средством диагностики, настройки и управления компонентами операционной системы и прикладным программным обеспечением. В отличие от графической среды пользователя, командная строка является более гибким и универсальным инструментом, позволяющим решать многие задачи администрирования системы стандартными средствами Windows без установки дополнительного программного обеспечения.
Способы запуска командной строки
Ссылки на материалы по настройке командной строки и приемах работы с ней размещены в конце страницы.
Справочник по командам CMD Windows
Данная страница представляет собой самый полный документ в русскоязычном сегменте Интернет, содержащий список команд командной строки всех версий Windows. Наименования подавляющего большинства команд являются ссылками и ведут на страницы с подробным их описанием и примерами использования. В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.
На данной странице представлено описание не только внутренних команд CMD, но и стандартных утилит командной строки, входящих в состав конкретных версии операционной системы (ОС) семейства Windows. Некоторые из приведенных команд устарели, и больше не поддерживаются разработчиком или не имеют смысла в современных операционных системах, что отмечается в описании команды.
Список команд постоянно обновляется и включает в себя все новейшие команды, добавляемые в стандартную поставку при выходе новых версий или обновлений ОС Windows 10.
IPCONFIG просмотр и управление конфигурацией протокола IP
PING утилита проверки доступности узла
SHIFT сдвиг входных параметров для командного файла
Прочие материалы по работе с командной строкой Windows:
Источник
Если вы оказались без доступа к чему-либо кроме командной строки или Windows PowerShell и по какой-то причине вам требуется возможность создания или чтения текстовых файлов, это вполне реализуемо, причем более чем одним методом.
В этой инструкции подробно о работе с текстовыми файлами в командной строки или PowerShell (разумеется, можно и в Терминале Windows) — создание и сохранение текстовых файлов, их вывод и чтение в консоли.
Создание текстовых файлов в командной строке
Возможность создания текстовых файлов доступна как в командной строке (cmd.exe), так и в PowerShell. Начнем с первого варианта.
Во всех случаях учитывайте, что при использовании кириллицы потенциально возможны проблемы с кодировкой, а в некоторых случаях кодировка может отличаться при использовании разных команд.
Команда ECHO
Команда командной строки echo предназначена для вывода текстовых сообщений в окне консоли, например, при выполнении сценария в bat-файле, но может быть использована и для вывода текста в файл, благодаря возможности использования оператора «>» для перенаправления вывода из консоли в файл.
Пример команды:
echo Содержимое текстового файла > file.txt
В результате её выполнения в текущей рабочей папке командной строки будет создан файл с именем file.txt и содержимым «Содержимое текстового файла».
COPY CON
Команда copy с параметром con позволяет скопировать содержимое консоли в файл. Использование возможности будет состоять из следующих шагов:
- Введите команду
copy con имя_файла.txt
файл не будет создан, но после выполнения указанной команды у вас появится возможность набрать содержимое этого файла, которое по завершении процесса будет в него сохранено.
- Курсор переместится на строчку ниже, и вы сможете набирать текст так, как делаете это обычно, включая перенос строки.
- Для завершения набора и сохранения текстового файла нажмите сочетание клавиш Ctrl+Z, а затем — Enter. Это добавит отметку конца файла и сохранит его в текущей папке с указанным на 1-м шаге именем.
Создание текстового файла в PowerShell
PowerShell также имеет набор встроенных командлетов для сохранения текстовых данных в файл.
Out-File
Использование Out-File в PowerShell по своей функциональности сходно с оператором перенаправления вывода в командной строке. Вывод консоли перенаправляется в заданный файл.
Пример использования:
"Текстовая строка" | Out-File -FilePath .file.txt
В этом примере в текущей папке PowerShell будет создан файл с именем file.txt и содержимым «Текстовая строка».
New-Item
Создание нового текстового файла в PowerShell возможно с помощью командлета New-Item. Пример команды, в которой создается текстовый файл file.txt, содержащий «Текстовая строка» в текущем расположении:
New-Item -Path . -Name "file.txt" -ItemType "file" -Value "Текстовая строка"
Set-Content и Add-Content
Ещё два командлета PowerShell для работы с текстовыми файлами:
- Set-Content — перезаписывает содержимое файла
- Add-Content — добавляет содержимое в конце выбранного файла
Их использование можно увидеть на примере следующей команды:
Add-Content -Path .file.txt -Value "Ещё одна текстовая строка"
Вывод (чтение) текстового файла в командной строке и PowerShell
Теперь перейдем к способам просмотреть текстовые файлы в командной строке или PowerShell. Как и в предыдущем случае, учитывайте, что для файлов, содержащих кириллицу, возможны проблемы с отображением символов в правильной кодировке.
TYPE
Самый простой вариант — использование команды TYPE с указанием пути к файлу, который нужно отобразить в консоли, например:
type file.txt
MORE
Если файл объемный и содержит большое количество строк, используйте команду more, например:
more file.txt
Выполнив команду, вы увидите часть содержимого текста, которая помещается в окне консоли, далее вы можете использовать следующие клавиши:
- Enter — для отображения следующей строки файла.
- Пробел — для отображения следующих строк документа, которые поместятся в активное окно консоли.
- P — Показать следующие N строк. После нажатия этой клавиши с последующим указанием количества строк, будет выведено соответствующее количество строк текстового документа.
- S — пропустить следующие N строк, работает аналогично предыдущему варианту.
- Клавиша «=» — для отображения текущего номера строки.
- Q — для прекращения выполнения команды more.
Get-Content
Вывести содержимое текстового файла в PowerShell можно с помощью Get-Content с указанием пути к файлу, например:
Get-Content file.txt
Также вы можете выводить определенные строки файла, с помощью команд вида (вывод первых или последних 10 строк соответственно):
Get-Content file.txt | Select-Object -First 10 Get-Content file.txt | Select-Object -Last 10
Или присвоить содержимое файла переменной и вывести конкретную строку:
$file_text = Get-Content file.txt $file_text[2]
Помимо использования ручного ввода команд, вы можете использовать консольные текстовые редакторы — сторонние в версиях для Windows, такие как Vim, Nano, Kinesics Text Editor или даже старый встроенный edit.com (может отсутствовать в вашей версии системы и требовать патча NTVDMx64).
Здесь представлен фрагмент будущей книги «Основные инструменты и практики для начинающего разработчика программного обеспечения» Бальтазара Рубероля и Этьена Броду. Книга должна помочь образованию подрастающего поколения разработчиков. Она охватит такие темы, как освоение консоли, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git
, основы SQL, инструменты вроде Make
, jq
и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы. В настоящее время авторы упорно работают над этим проектом и приглашают всех поучаствовать в списке рассылки.
Содержание
- cat
- head
- tail
- wc
- grep
- cut
- paste
- sort
- uniq
- awk
- tr
- fold
- sed
- Реальные примеры
- Углубляемся: циклы for и xargs
- Итоги
- Что дальше
Обработка текста в командной оболочке
Одна из причин, которые делают командную оболочку бесценным инструментом, — это большое количество команд обработки текста и возможность легко объединять их в конвейер, создавая сложные шаблоны обработки. Эти команды делают тривиальными многие задачи по анализу текста и данных, преобразованию данных между разными форматами, по фильтрации строк и т. д.
При работе с текстовыми данными главный принцип заключается в том, чтобы разбить любую сложную проблему на множество более мелких — и решить каждую из них с помощью специализированного инструмента.
Заставьте каждую программу хорошо выполнять одну функцию — «Основы философии Unix»
Примеры из этой главы на первый взгляд могут показаться немного надуманными, но это сделано специально. Каждый из инструментов разработан для решения одной небольшой задачи. Однако в сочетании они становятся чрезвычайно мощными.
Мы рассмотрим некоторые из наиболее распространенных и полезных команд обработки текста в командной оболочке и продемонстрируем реальные рабочие процессы, соединяющие их вместе. Я предлагаю взглянуть на маны этих команд, чтобы увидеть всю широту возможностей в вашем распоряжении.
Файл CSV с примерами доступен в онлайне. Можете скачать его для проверки материала.
cat
Команда cat
используется для составления списка из одного или нескольких файлов и отображения их содержимого на экране.
$ cat Documents/readme
Thanks again for reading this book!
I hope you're following so far!
$ cat Documents/computers
Computers are not intelligent
They're just fast at making dumb things.
$ cat Documents/readme Documents/computers
Thanks again for reading this book!
I hope you are following so far!
Computers are not intelligent
They're just fast at making dumb things.
head
head
выводит первые n строк в файле. Это может быть очень полезно для того, чтобы заглянуть в файл неизвестной структуры и формата, не заваливая всю консоль кучей текста.
$ head -n 2 metadata.csv
metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name
mysql.galera.wsrep_cluster_size,gauge,,node,,The current number of nodes in the Galera cluster.,0,mysql,galera cluster size
Если -n
не указано, head
выводит первые десять строк указанного файла или входящего потока.
tail
tail
— аналог head
, только он выводит последние n строк в файле.
$ tail -n 1 metadata.csv
mysql.performance.queries,gauge,,query,second,The rate of queries.,0,mysql,queries
Если хотите вывести все строки, расположенном после n-й строки (включая её), можете использовать аргумент -n +n
.
$ tail -n +42 metadata.csv
mysql.replication.slaves_connected,gauge,,,,Number of slaves connected to a replication master.,0,mysql,slaves connected
mysql.performance.queries,gauge,,query,second,The rate of queries.,0,mysql,queries
В нашем файле 43 строки, поэтому tail -n +42
выводит только 42-ю и 43-ю строки из него.
Если параметр -n
не указан, tail
выведет последние десять строк в указанном файле или входном потоке.
tail -f
или tail --follow
отображают последние строки в файле и каждую новую строку по мере записи в файл. Это очень полезно для просмотра активности в реальном времени, например, что записывается в логи веб-сервера и т. д.
wc
wc
(word count) выводит количество символов (-c
), слов (-w
) или строк (-l
) в указанном файле или потоке.
$ wc -l metadata.csv
43 metadata.csv
$ wc -w metadata.csv
405 metadata.csv
$ wc -c metadata.csv
5094 metadata.csv
По умолчанию отображается всё вышеперечисленное.
$ wc metadata.csv
43 405 5094 metadata.csv
Если текстовые данные передаются по конвейеру или перенаправлены в stdin
, то отображается только счётчик.
$ cat metadata.csv | wc
43 405 5094
$ cat metadata.csv | wc -l
43
$ wc -w < metadata.csv
405
grep
grep
— это швейцарский нож фильтрации строк по заданному шаблону.
Например, можем найти все вхождения слова mutex в файле.
$ grep mutex metadata.csv
mysql.innodb.mutex_os_waits,gauge,,event,second,The rate of mutex OS waits.,0,mysql,mutex os waits
mysql.innodb.mutex_spin_rounds,gauge,,event,second,The rate of mutex spin rounds.,0,mysql,mutex spin rounds
mysql.innodb.mutex_spin_waits,gauge,,event,second,The rate of mutex spin waits.,0,mysql,mutex spin waits
grep
может обрабатывать либо файлы, указанные в качестве аргументов, либо поток текста, переданный на его stdin
. Таким образом, мы можем сцеплять несколько команд grep
для дальнейшей фильтрации текста. В следующем примере мы фильтруем строки в нашем файле metadata.csv
, чтобы найти строки, содержащие и mutex, и OS.
$ grep mutex metadata.csv | grep OS
mysql.innodb.mutex_os_waits,gauge,,event,second,The rate of mutex OS waits.,0,mysql,mutex os waits
Рассмотрим некоторые опции grep
и их поведение.
grep -v
выполняет инвертное сопоставление: фильтрует строки, которые не соответствуют шаблону аргументов.
$ grep -v gauge metadata.csv
metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name
grep -i
выполняет сопоставление без учёта регистра. В следующем примере grep -i os
находит как OS, так и os.
$ grep -i os metadata.csv
mysql.innodb.mutex_os_waits,gauge,,event,second,The rate of mutex OS waits.,0,mysql,mutex os waits
mysql.innodb.os_log_fsyncs,gauge,,write,second,The rate of fsync writes to the log file.,0,mysql,log fsyncs
grep -l
выводит список файлов, содержащих совпадение.
$ grep -l mysql metadata.csv
metadata.csv
Команда grep -c
подсчитывает, сколько раз найден образец.
$ grep -c select metadata.csv
3
grep -r
рекурсивно ищет файлы в текущем рабочем каталоге и всех его подкаталогах.
$ grep -r are ~/Documents
/home/br/Documents/computers:Computers are not intelligent
/home/br/Documents/readme:I hope you are following so far!
grep -w
показывает только совпадающие целиком слова.
$ grep follow ~/Documents/readme
I hope you are following so far!
$ grep -w follow ~/Documents/readme
$
cut
cut
извлекает часть файла (или, как обычно, входного потока). Команда определяет разделитель полей (который разделяет столбцы) с помощью опции -d
, а порядковые номера столбцов для извлечения с помощью опции -f
.
Например, следующая команда извлекает первый столбец из последних пяти строк нашего CSV-файла.
$ tail -n 5 metadata.csv | cut -d , -f 1
mysql.performance.user_time
mysql.replication.seconds_behind_master
mysql.replication.slave_running
mysql.replication.slaves_connected
mysql.performance.queries
Поскольку мы имеем дело с CSV, то столбцы разделяются запятой, а за извлечение первого столбца отвечает опция -f 1
.
Можно выбрать и первый, и второй столбцы, используя опцию -f 1,2
.
$ tail -n 5 metadata.csv | cut -d , -f 1,2
mysql.performance.user_time,gauge
mysql.replication.seconds_behind_master,gauge
mysql.replication.slave_running,gauge
mysql.replication.slaves_connected,gauge
mysql.performance.queries,gauge
paste
paste
объединяет вместе два разных файла в один многоколоночный файл.
$ cat ingredients
eggs
milk
butter
tomatoes
$ cat prices
1$
1.99$
1.50$
2$/kg
$ paste ingredients prices
eggs 1$
milk 1.99$
butter 1.50$
tomatoes 2$/kg
По умолчанию paste
использует разделитель табуляции, но его можно изменить с помощью параметра -d
.
$ paste ingredients prices -d:
eggs:1$
milk:1.99$
butter:1.50$
tomatoes:2$/kg
Ещё один распространённый способ использования paste
— объединение всех строк в потоке или файле с помощью заданного разделителя, используя комбинацию аргументов -s
и -d
.
$ paste -s -d, ingredients
eggs,milk,butter,tomatoes
Если в качестве входного файла указан параметр -
, то вместо него будет считываться stdin
.
$ cat ingredients | paste -s -d, -
eggs,milk,butter,tomatoes
sort
Команда sort
, собственно, сортирует данные (в указанном файле или входном потоке).
$ cat ingredients
eggs
milk
butter
tomatoes
salt
$ sort ingredients
butter
eggs
milk
salt
tomatoes
sort -r
выполняет обратную сортировку.
$ sort -r ingredients
tomatoes
salt
milk
eggs
butter
sort -n
сортирует поля по их арифметическому значению.
$ cat numbers
0
2
1
10
3
$ sort numbers
0
1
10
2
3
$ sort -n numbers
0
1
2
3
10
uniq
uniq
обнаруживает и отфильтровывает соседние одинаковые строки в указанном файле или входном потоке.
$ cat duplicates
and one
and one
and two
and one
and two
and one, two, three
$ uniq duplicates
and one
and two
and one
and two
and one, two, three
Поскольку uniq
отфильтровывает только соседние строки, в наших данных могут ещё остаться дубликаты. Чтобы отфильтровать все одинаковые строки из файла, нужно сначала отсортировать его содержимое.
$ sort duplicates | uniq
and one
and one, two, three
and two
uniq -c
в начале каждой строки вставляет количество её вхождений.
$ sort duplicates | uniq -c
3 and one
1 and one, two, three
2 and two
uniq -u
отображает только уникальные строки.
$ sort duplicates | uniq -u
and one, two, three
Примечание.
uniq
особенно полезен в сочетании с сортировкой, поскольку конвейер| sort | uniq
позволяет удалить все дублирующиеся строки в файле или потоке.
awk
awk
— это чуть больше, чем просто инструмент обработки текста: на самом деле у него целый язык программирования. В чём awk
действительно хорош — так это в разбиении файлов на столбцы, и делает это с особенным блеском, когда в файлах перемешаны пробелы и табы.
$ cat -t multi-columns
John Smith Doctor^ITardis
Sarah-James Smith^I Companion^ILondon
Rose Tyler Companion^ILondon
Примечание.
cat -t
отображает табы как^I
.
Как видим, столбцы разделены либо пробелами, либо табуляциями, и не всегда одинаковым количеством пробелов. cut
здесь бесполезен, потому что работает только с одним символом-разделителем. Но awk
легко разберётся с таким файлом.
awk '{ print $n }'
выводит n-й столбец в тексте.
$ cat multi-columns | awk '{ print $1 }'
John
Sarah-James
Rose
$ cat multi-columns | awk '{ print $3 }'
Doctor
Companion
Companion
$ cat multi-columns | awk '{ print $1,$2 }'
John Smith
Sarah-James Smith
Rose Tyler
Хотя awk
способен на гораздо большее, выдача колонок составляет, наверное, 99% вариантов использования в моём личном случае.
Примечание.
{ print $NF }
выводит последний столбец в строке.
tr
tr
расшифровывается как translate. Эта команда заменяет одни символы на другие. Она работает либо с символами, либо с классами символов, такими как строчные, печатные, пробелы, буквенно-цифровые и т. д.
На стандартных входных данных tr <char1> <char2>
заменяет все вхождения <char1> на <char2>.
$ echo "Computers are fast" | tr a A
computers Are fAst
tr
может переводить классы символов с помощью нотации [:class:]
. Полный список доступных классов описан на справочной странице tr
, но некоторые продемонстрируем здесь.
[:space:]
представляет все типы пробелов, от простого пробела до табуляции или символа новой строки.
$ echo "computers are fast" | tr '[:space:]' ','
computers,are,fast,%
Все символы, похожие на пробелы, переведены в запятую. Обратите внимание, что символ %
в конце выдачи означает отсутствие завершающей новой строки. Действительно, этот символ тоже переведён в запятую.
[:lower:]
представляет все строчные символы, а [:upper:]
— все прописные. Таким образом, преобразование между ними становится тривиальным.
$ echo "computers are fast" | tr '[:lower:]' '[:upper:]'
COMPUTERS ARE FAST
$ echo "COMPUTERS ARE FAST" | tr '[:upper:]' '[:lower:]'
computers are fast
tr -c SET1 SET2
преобразует любой символ, не входящий в набор SET1, в символы набора SET2. В следующем примере все символы, кроме указанных гласных, заменяются пробелами.
$ echo "computers are fast" | tr -c '[aeiouy]' ' '
o u e a e a
tr -d
удаляет указанные символы, а не заменяет их. Это эквивалент tr <char> ''
.
$ echo "Computers Are Fast" | tr -d '[:lower:]'
C A F
tr
также может заменить диапазоны символов, например, все буквы между a и e или все числа между 1 и 8, используя нотацию s-e
, где s
— начальный символ, а e
— конечный.
$ echo "computers are fast" | tr 'a-e' 'x'
xomputxrs xrx fxst
$ echo "5uch l337 5p34k" | tr '1-4' 'x'
5uch lxx7 5pxxk
Команда tr -s string1
сжимает все множественные вхождения символов в string1
в одно-единственное. Одним из наиболее полезных применений tr -s
является замена нескольких последовательных пробелов одним.
$ echo "Computers are fast" | tr -s ' '
Computers are fast
fold
Команда fold
сворачивает все входные строки до заданной ширины. Например, может быть полезно убедиться, что текст помещается на дисплеях небольшого размера. Так, fold -w n
укладывает строки по ширине n символов.
$ cat ~/Documents/readme | fold -w 16
Thanks again for
reading this bo
ok!
I hope you're fo
llowing so far!
Команда fold -s
будет разбивать строки только на символах пробела. Её можно объединить с предыдущей, чтобы ограничить строким заданным количеством символом.
Thanks again
for reading
this book!
I hope you're
following so
far!
sed
sed
— это неинтерактивный потоковый редактор, который используется для преобразования текста во входном потоке строка за строкой. В качестве входных данных используется или файл, или stdin
, а на выходе тоже или файл, или stdout
.
Команды редактора могут включать один или несколько адресов, функцию и параметры. Таким образом, команды выглядят следующим образом:
[address[,address]]function[arguments]
Хотя sed
выполняет множество функций, мы рассмотрим только замену текста как один из самых распространённых вариантов использования.
Замена текста
Команда замены sed
выглядит следующим образом:
s/PATTERN/REPLACEMENT/[options]
Пример: замена первого экземпляра слова в каждой строке в файле:
$ cat hello
hello hello
hello world!
hi
$ cat hello | sed 's/hello/Hey I just met you/'
Hey I just met you hello
Hey I just met you world
hi
Мы видим, что в первой строчке заменяется только первый экземпляр hello
. Чтобы заменить все вхождения hello
во всех строках, можно использовать опцию g
(означает global).
$ cat hello | sed 's/hello/Hey I just met you/g'
Hey I just met you Hey I just met you
Hey I just met you world
hi
sed
позволяет использовать любые разделители, кроме /
, что особенно улучшает читаемость, если в самих аргументах команды есть слэши.
$ cat hello | sed 's@hello@Hey I just met you@g'
Hey I just met you Hey I just met you
Hey I just met you world
hi
Адрес говорит редактору, в какой строке или диапазоне строк выполнять подстановку.
$ cat hello | sed '1s/hello/Hey I just met you/g'
Hey I just met you hello
hello world
hi
$ cat hello | sed '2s/hello/Hey I just met you/g'
hello hello
Hey I just met you world
hi
Адрес 1
указывает заменять hello
на Hey I just met you
в первой строке. Можем указать диапазон адресов в нотации <start>,<end>
, где <end>
может быть либо номером строки, либо $
, то есть последней строкой в файле.
$ cat hello | sed '1,2s/hello/Hey I just met you/g'
Hey I just met you Hey I just met you
Hey I just met you world
hi
$ cat hello | sed '2,3s/hello/Hey I just met you/g'
hello hello
Hey I just met you world
hi
$ cat hello | sed '2,$s/hello/Hey I just met you/g'
hello hello
Hey I just met you world
hi
По умолчанию sed
выдаёт результат в свой stdout
, но может отредактировать и оригинальный файл с опцией -i
.
$ sed -i '' 's/hello/Bonjour/' sed-data
$ cat sed-data
Bonjour hello
Bonjour world
hi
Примечание. В Linux достаточно только
-i
. Но в macOS поведение команды немного отличается, поэтому сразу после-i
нужно добавить''
.
Реальные примеры
Фильтрация CSV с помощью grep и awk
$ grep -w gauge metadata.csv | awk -F, '{ if ($4 == "query") { print $1, "per", $5 } }'
mysql.performance.com_delete per second
mysql.performance.com_delete_multi per second
mysql.performance.com_insert per second
mysql.performance.com_insert_select per second
mysql.performance.com_replace_select per second
mysql.performance.com_select per second
mysql.performance.com_update per second
mysql.performance.com_update_multi per second
mysql.performance.questions per second
mysql.performance.slow_queries per second
mysql.performance.queries per second
В этом примере grep
в файле metadata.csv
сначала фильтрует строки, содержащие слово gauge
, затем те, у которых query
в четвёртой колонке, и выводит название метрики (1-я колонка) с соответствующим значением per_unit_name
(5-я колонка).
Вывод адреса IPv4, связанного с сетевым интерфейсом
$ ifconfig en0 | grep inet | grep -v inet6 | awk '{ print $2 }'
192.168.0.38
Команда ifconfig <interface name>
выводит сведения по указанному сетевому интерфейсу. Например:
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 19:64:92:de:20:ba
inet6 fe80::8a3:a1cb:56ae:7c7c%en0 prefixlen 64 secured scopeid 0x7
inet 192.168.0.38 netmask 0xffffff00 broadcast 192.168.0.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
Затем запускаем grep
для inet
, что выдаст две строки соответствия.
$ ifconfig en0 | grep inet
inet6 fe80::8a3:a1cb:56ae:7c7c%en0 prefixlen 64 secured scopeid 0x7
inet 192.168.0.38 netmask 0xffffff00 broadcast 192.168.0.255
Затем с помощью grep -v
исключаем строку с ipv6
.
$ ifconfig en0 | grep inet | grep -v inet6
inet 192.168.0.38 netmask 0xffffff00 broadcast 192.168.0.255
Наконец, с помощью awk
запрашиваем второй столбец в этой строке: это IPv4-адрес, связанный с нашим сетевым интерфейсом en0
.
$ ifconfig en0 | grep inet | grep -v inet6 | awk '{ print $2 }'
192.168.0.38
Примечание. Мне предложили заменить
grep inet | grep -v inet6
такой надёжной командойawk
:$ ifconfig en0 | awk ' $1 == "inet" { print $2 }' 192.168.0.38
Она короче и конкретно нацелена на IPv4 с условием
$1 == "inet"
.
Извлечение значения из файла конфигурации
$ grep 'editor =' ~/.gitconfig | cut -d = -f2 | sed 's/ //g'
/usr/bin/vim
В файле конфигурации git текущего пользователя ищем значение editor =
, обрезаем знак =
, извлекаем второй столбец и удаляем все пробелы вокруг.
$ grep 'editor =' ~/.gitconfig
editor = /usr/bin/vim
$ grep 'editor =' ~/.gitconfig | cut -d'=' -f2
/usr/bin/vim
$ grep 'editor =' ~/.gitconfig | cut -d'=' -f2 | sed 's/ //'
/usr/bin/vim
Извлечение IP-адресов из файла журнала
Следующий реальный код ищет в журнале БД сообщение Too many connections from
(за ним следует IP-адрес) и отображает десять главных нарушителей.
$ grep 'Too many connections from' db.log |
awk '{ print $12 }' |
sed 's@/@@' |
sort |
uniq -c |
sort -rn |
head -n 10 |
awk '{ print $2 }'
10.11.112.108
10.11.111.70
10.11.97.57
10.11.109.72
10.11.116.156
10.11.100.221
10.11.96.242
10.11.81.68
10.11.99.112
10.11.107.120
Давайте разберем, что делает этот конвейер. Во-первых, как выглядит строка в журнале.
$ grep "Too many connections from" db.log | head -n 1
2020-01-01 08:02:37,617 [myid:1] - WARN [NIOServerCxn.Factory:1.2.3.4/1.2.3.4:2181:NIOServerCnxnFactory@193] - Too many connections from /10.11.112.108 - max is 60
Затем awk '{ print $12 }'
извлекает из строки IP-адрес.
$ grep "Too many connections from" db.log | awk '{ print $12 }'
/10.11.112.108
...
Команда sed 's@/@@'
удаляет начальный слэш.
$ grep "Too many connections from" db.log | awk '{ print $12 }' | sed 's@/@@'
10.11.112.108
...
Примечание. Как мы уже видели ранее, в
sed
можно использовать любой разделитель. Хотя обычно в качестве разделителя используется/
, здесь мы заменяем именно этот символ, что слегка ухудшит читаемость выражения подстановки.sed 's////'
sort | uniq -c
сортирует IP-адреса в лексикографическом порядке, а затем удаляет дубликаты, добавляя перед IP-адресами количество вхождений каждого.
$ grep 'Too many connections from' db.log |
awk '{ print $12 }' |
sed 's@/@@' |
sort |
uniq -c
1379 10.11.100.221
1213 10.11.103.168
1138 10.11.105.177
946 10.11.106.213
1211 10.11.106.4
1326 10.11.107.120
...
sort -rn | head -n 10
сортирует строки по количеству вхождений, численно и в обратном порядке, чтобы главные нарушители выводились в первую очередь, из которых отображаются 10 строк. Последняя команда awk { print $2 }
извлекает сами IP-адреса.
$ grep 'Too many connections from' db.log |
awk '{ print $12 }' |
sed 's@/@@' |
sort |
uniq -c |
sort -rn |
head -n 10 |
awk '{ print $2 }'
10.11.112.108
10.11.111.70
10.11.97.57
10.11.109.72
10.11.116.156
10.11.100.221
10.11.96.242
10.11.81.68
10.11.99.112
10.11.107.120
Переименование функции в исходном файле
Представим, что мы работаем над проектом и хотели бы переименовать недачно названную функцию (или класс, переменную и т. д.) в исходном файле. Можно сделать это с помощью команды sed -i
, которая выполняет замену прямо в оригинальном файле.
$ cat izk/utils.py
def bool_from_str(s):
if s.isdigit():
return int(s) == 1
return s.lower() in ['yes', 'true', 'y']
$ sed -i 's/def bool_from_str/def is_affirmative/' izk/utils.py
$ cat izk/utils.py
def is_affirmative(s):
if s.isdigit():
return int(s) == 1
return s.lower() in ['yes', 'true', 'y']
Примечание. На macOS вместо
sed -i
используйтеsed -i ''
.
Однако мы переименовали функцию только в оригинальном файле. Это сломает импорт bool_from_str
в любом другом файле, поскольку эта функция больше не определена. Нужно найти способ переименовать bool_from_str
повсюду в нашем проекте. Такого можно добиться с помощью команд grep
, sed
, а также циклов for
или с помощью xargs
.
Углубляемся: циклы for
и xargs
Чтобы заменить в нашем проекте все вхождения bool_from_str
, сначала нужно рекурсивно найти их с помощью grep -r
.
$ grep -r bool_from_str .
./tests/test_utils.py:from izk.utils import bool_from_str
./tests/test_utils.py:def test_bool_from_str(s, expected):
./tests/test_utils.py: assert bool_from_str(s) == expected
./izk/utils.py:def bool_from_str(s):
./izk/prompt.py:from .utils import bool_from_str
./izk/prompt.py: default = bool_from_str(os.environ[envvar])
Поскольку нас интересуют только файлы c совпадениями, также необходимо использовать опцию -l/--files-with-matches
:
-l, --files-with-matches
Only the names of files containing selected lines are written to standard out-
put. grep will only search a file until a match has been found, making
searches potentially less expensive. Pathnames are listed once per file
searched. If the standard input is searched, the string ``(standard input)''
is written.
$ grep -r --files-with-matches bool_from_str .
./tests/test_utils.py
./izk/utils.py
./izk/prompt.py
Затем можем использовать команду xargs
для осуществления действий с каждой строки выходных данных (то есть всех файлов, содержащих строку bool_from_str
).
$ grep -r --files-with-matches bool_from_str . |
xargs -n 1 sed -i 's/bool_from_str/is_affirmative/'
Опция -n 1
указывает, что каждая строка в выходных данных должна выполнить отдельную команду sed
.
Затем выполняются следующие команды:
$ sed -i 's/bool_from_str/is_affirmative/' ./tests/test_utils.py
$ sed -i 's/bool_from_str/is_affirmative/' ./izk/utils.py
$ sed -i 's/bool_from_str/is_affirmative/' ./izk/prompt.py
Если команда, которую вы вызываете с помощью xargs
(в нашем случае sed
), поддерживает несколько аргументов, то следует отбросить аргумент -n 1
для производительности.
grep -r --files-with-matches bool_from_str . | xargs sed -i 's/bool_from_str/is_affirmative/'
Эта команда затем исполнит
$ sed -i 's/bool_from_str/is_affirmative/' ./tests/test_utils.py ./izk/utils.py ./izk/prompt.py
Примечание. Из синопсиса
sed
на ман-странице видно, что команда может принять несколько аргументов.SYNOPSIS sed [-Ealn] command [file ...] sed [-Ealn] [-e command] [-f command_file] [-i extension] [file ...]
Действительно, как мы видели в предыдущей главе,
file ...
означает, что принимаются несколько аргументов, представляющих собой имена файлов.
Мы видим, что произведены замены для всех вхождений bool_from_str
.
$ grep -r is_affirmative .
./tests/test_utils.py:from izk.utils import is_affirmative
./tests/test_utils.py:def test_is_affirmative(s, expected):
./tests/test_utils.py: assert is_affirmative(s) == expected
./izk/utils.py:def is_affirmative(s):
./izk/prompt.py:from .utils import is_affirmative
./izk/prompt.py: default = is_affirmative(os.environ[envvar])
Как это часто бывает, существует несколько способов достижения одного и того же результата. Вместо xargs
мы могли бы использовать циклы for
, чтобы перебирать строки по списку и выполнять действие над каждым элементом. У этих циклов такой синтаксис:
for item in list; do
command $item
done
Если обернуть нашу команду grep
в $()
, то оболочка выполнит её в подоболочке, результат чего затем будет повторён в цикле for
.
$ for file in $(grep -r --files-with-matches bool_from_str .); do
sed -i 's/bool_from_str/is_affirmative/' $file
done
Эта команда выполнит
$ sed -i 's/bool_from_str/is_affirmative/' ./tests/test_utils.py
$ sed -i 's/bool_from_str/is_affirmative/' ./izk/utils.py
$ sed -i 's/bool_from_str/is_affirmative/' ./izk/prompt.py
Синтаксис циклов for
кажется мне более чётким, чем у xargs
, однако последняя может выполнять команды параллельно, используя параметры -P n
, где n
— максимальное количество параллельных команд, выполняемых одновременно, что может дать выигрыш в производительности.
Резюме
Все эти инструменты открывают целый мир возможностей, так как позволяют извлекать и преобразовывать данные, создавая целые конвейеры из команд, которые, возможно, никогда не предназначались для совместной работы. Каждая из них выполняет относительно небольшую функцию (сортировка sort
, объединение cat
, фильтры grep
, редактирование sed
, вырезание cut
и т. д.).
Любую задачу, включающую текст, можно свести к конвейеру более мелких задач, каждая из которых выполняет простое действие и передаёт свои выходные данные в следующую задачу.
Например, если нам хочется узнать, сколько уникальных IP-адресов в файле журнала, и чтобы эти IP-адреса всегда появлялись в одном и том же столбце, то можно запустить следующую последовательность команд:
grep
строк, которые соответствуют шаблону строк с IP-адресами- найти столбец с IP-адресом, извлечь его с помощью
awk
- отсортировать список IP-адресов с помощью
sort
- устранить смежные дубликаты с помощью
uniq
- подсчитать количество строк (то есть уникальных IP-адресов) с помощью
wc -l
Поскольку есть множество нативных и сторонних инструментов обработки текста, также много способов решить любую задачу.
Примеры в этой статье были надуманными, но я предлагаю вам прочитать удивительную статью «Инструменты командной строки могут быть в 235 раз быстрее, чем ваш кластер Hadoop», чтобы получить представление о том, насколько полезны и мощны эти команды на самом деле и какие реальные проблемы они могут решить.
Что дальше
- Подсчитайте количество файлов и каталогов, расположенных в вашем домашнем каталоге.
- Отобразите содержимое файла только прописными буквами.
- Подсчитайте, сколько раз встречалось каждое слово в файле.
- Подсчитайте количество гласных в файле. Отсортируйте результат от наиболее распространённой до наименее распространённой буквы.
Будущая книга «Основные инструменты и практики для начинающего разработчика программного обеспечения» (Essential Tools and Practices for the Aspiring Software Developer) Бальтазара Рубероля и Этьена Броду поможет создать продуктивную среду разработки и познакомиться с полезными инструментами и практиками, которые нужны для профессионального роста. Как уже было сказано, она охватит такие темы, как освоение терминала, настройка и эффективная работа в командной оболочке, управление версиями кода с помощью git
, основы SQL, инструменты вроде Make
, jq
и регулярные выражения, основы сетевого взаимодействия, а также лучшие практики разработки программного обеспечения и совместной работы.
Если интересно поучаствовать в проекте, подписывайтесь на список рассылки!
На чтение 15 мин. Просмотров 840 Опубликовано 28.01.2021
В Unix я бы просто использовал vi, но я не знаю, что это за команда в Windows. На самом деле я пытаюсь редактировать файлы через SSH с помощью Windows Server 2008.
edit filename
Я не ручаюсь за его функциональность и устаревший графический интерфейс, но он установлен по умолчанию даже в Windows 7.
Изменить: За исключением 64-битных версий Windows.
Самое простое решение для всех версий Windows:
C: > notepad somefile.txt
И никакого дополнительного программного обеспечения не требуется.
отредактировал 7 сентября ’18 в 16:51
Питер Мортенсен
11.3k2222 золотых знака6464 серебряных знака8686 бронзовых знаков
-
Красиво, но не через SSH – Casebash Sep 10 ’10 в 4:10
-
Ах. Правильно. В Windows нет встроенного редактора командной строки. Возможно, вам потребуется установить версию Gnu редактора, который вы хотите использовать. Поскольку вы уже установили сервер
ssh
, это не должно быть проблемой для вас. – BillP3rd, 10 сентября 2010 г., 16:27 -
Как сказал OP … «Я на самом деле пытаюсь редактировать файлы через ssh …» – daviewales 13 апр. ’14 в 3:16
-
бесполезный ответ, как для пользователей ssh, так и для тех, кто хочет редактировать файлы В окне cmd, а не за его пределами – vladkras 14 фев 2016 в 07:10
-
Это не будет работать в контейнере Docker, основанном на ‘windowsservercore’ – Питер Мортенсен 28 августа ’18 в 9 : 17
| показать 4 дополнительных комментария
Самое простое решение для всех версий в Windows:
C: > notepad somefile.txt
И никакого дополнительного программного обеспечения не требуется.
В командной строке Windows введите copy con , за которым следует имя целевого файла. ( copy con c: file.txt
).
Затем введите текст, который вы хотите поместить в файл.
Завершите и сохраните файл, нажав CTRL – Z , затем Enter или F6 , затем Enter .
Если вы хотите изменить текст в существующем файле, просто отобразите текст с помощью команды type
, за которым следует имя файла, а затем просто скопируйте и вставьте текст в команду copy con
.
отредактировал 28 августа 2018 в 9:31
Peter Mortensen
11.3k2222 золотых знака6464 серебряных знака8686 бронзовых знаков
ответил 03 декабря 2013 в 18:15
-
Жесткое ядро. Постарайтесь не делать опечаток, иначе вам придется начинать заново. Что ж, backspace действительно работает, если вы поймаете ошибку до того, как нажмете Enter. – Кевин Панко 03 дек. ’13 в 18:57
-
Кажется, не работает с psexec. Пытался отредактировать файл моих хостов с помощью
copy con hosts
, но ^ Z не сохраняет и ^ C не отменяет! Пришлось закрыть окно cmd, чтобы выйти. Файл остался без изменений. – Иэн Сэмюэл Маклин, старейшина, 27 мая 2014, 11:17 -
Примечание. F6 можно использовать вместо [Ctrl] – [Z] – MonoThreaded 13 сен 2014 в 09:58
-
В контейнере Docker на основе ‘windowsservercore’ (CMD) , Ctrl + C работал для завершающей последовательности клавиш. – Питер Мортенсен, 28 августа ’18 в 9:30
добавить комментарий |
В командной строке Windows введите copy con , а затем имя целевого файла. ( copy con c: file.txt
).
Затем введите текст, который вы хотите поместить в файл.
Завершите и сохраните файл, нажав CTRL – Z , затем Enter или F6 затем Enter .
Если вы хотите изменить текст в существующем файле, просто отобразите текст с помощью команды type
, за которой следует по имени файла, а затем просто скопируйте и вставьте текст в команду copy con
.
Если вы привыкли к vi и не хотите довольствоваться встроенным редактором, вы можете получить Vim для Windows . Он будет запускаться из командной оболочки. Или попробуйте WinVi.
отредактировано 15 сен ’18 в 23:34
Peter Mortensen
11.3k2222 золотых знака6464 серебряных знака8686 бронзовых знаков
ответил 10 сентября ’10 в 3:54
-
это должно быть отмечено как ответ, потому что
edit
был удалено из победы 10 – Люк, 14 июня ’18 в 18:36 -
Это намного лучше: он также работает внутри контейнера Windows Docker (проще всего получить «исполняемый файл консоли Win32», например vim81w32.zip – разархивируйте и скопируйте
vim.exe
везде, где он доступен в контейнере Docker). – Питер Мортенсен 15 сен. ’18 в 23:38
добавить комментарий |
Если вы привыкли к vi и не хотите соглашаться на встроенный редактор, вы можете получить Vim для Windows . Он будет запускаться из командной оболочки. Или попробуйте WinVi.
Верьте или нет, EDLIN.EXE
все еще около по крайней мере в этой системе Vista.
Простите, я тихонько рыдаю про себя …
ответил 10 сентября ’10 в 7:04
-
Он был окончательно удален в Windows 7 (по крайней мере, 64-битные версии ). – paradroid 10 сен. ’10 в 7:11
-
@ jason404: он все еще включен в 32-битную Windows 7. – Деннис Уильямсон, 10 сентября 2010 г., 15:08
-
edlin – это 16-разрядная программа, поэтому она недоступна в 64-разрядных версиях Windows. Однако я не удивлюсь, если кто-то здесь заявит, что он все еще присутствует в 32-разрядной версии Windows 10. – TSJNachos117, 12 мая 2015 г., 7:54
-
@ TSJNachos117 Это действительно в x86 Windows 10. – Брайан Дадди, 12 окт. : 19
-
Не удивлен все. – TSJNachos117, 30 янв. ’17 в 21:44
добавить комментарий |
Хотите верьте, хотите нет, но EDLIN.EXE
все еще находится рядом с
по крайней мере в этой системе Vista.
Простите, я тихонько рыдаю про себя …
Я не знаю о SSH или о чем-то (еще?), связанном с сервером , так что простите меня, если это “решение” бесполезно. Если вы хотите редактировать файлы в командной строке, вы можете получить версию Nano для Windows.
В качестве примечания, эти маленькие значки ^
внизу окна должны представлять кнопку Ctrl . Например, ^ X Exit
означает, что вы можете выйти из программы, используя Ctrl – X .
Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов в Nano.
Я также видел порты vi для Windows, хотя я использовал тот, который, похоже, делает окно командной строки таким маленьким, как это может быть, оставив только строку заголовка (что означает, что остальная часть окна также может быть невидимой, поскольку вы не можете видеть, что делаете). Однако версия Vim для Windows, похоже, работает довольно хорошо.
отредактировал 15 сентября ’18 в 23:41
Питер Мортенсен
11.3k2222 золотых знака6464 серебряных знака8686 бронзовых знаков
ответил 22 июля ’13 в 6:52
-
Перед поиском тех, кто работают, но бесполезные решения », – подумал я для Windows-порта Nano. Он использует cygwin.dll и не более того. Я пикетировал самую легкую версию, которую могу, с netcologne.dl.sourceforge.net/project/nano/nano/1.0.8/…. Спасибо. – m3nda 26 янв. ’17 в 16:46
-
Как отметил @gman, если у вас установлен git, значит, у вас уже есть
nano.exe
. Кроме того, довольно просто установить nano из командной строки с помощью chocolatey (chocolatey.org/install#individual). После установки chocolatey установите nano, набравchoco install nano
. – cowlinator 17 июл. ’20 в 17:01
добавить комментарий |
Я не знаю про SSH или что-то (еще?), связанное с сервером, так что простите меня, если это “решение” бесполезно . Если вы хотите редактировать файлы в командной строке, вы можете получить версию Nano для Windows..
В качестве примечания: эти маленькие знаки ^
внизу окна должны представлять кнопку Ctrl . Например, ^ X Exit
означает, что вы можете выйти из программы, используя Ctrl – X .
Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов в Nano.
Я также видел порты vi для Windows, хотя я использовал тот, который, похоже, делает окно командной строки таким маленьким, как это может быть, оставив только строку заголовка (что означает, что остальная часть окна также может быть невидимой, поскольку вы не можете видеть, что делаете). Однако версия Vim для Windows, похоже, работает довольно хорошо.
Если у вас установлен git для Windows, то, скорее всего, и nano, и vim доступны по адресу
C: Program Files Git usr bin nano .exeC: Program Files Git usr bin vim.exe
Для запуска из командной строки (cmd.exe)
"c: Program Files Git usr bin nano.exe"
Для запуска в PowerShell
& 'C: Program Files Git usr bin nano.exe'
Они оба отлично работают даже по ssh.
ответил 16 июня ‘ 20 в 8:25
-
Спасибо! Git imo – более разумная зависимость, которая, скорее всего, уже находится на сервере, в отличие от WSL или других сторонних текстовых редакторов. – Конафа 12 июл.2020, в 1:02
добавить комментарий |
Если у вас установлен git для Windows, то, скорее всего, nano и vim доступны по адресу
C: Program Files Git usr bin nano.exe C: Program Files Git usr bin vim.exe
Для запуска из команды подсказка (cmd.exe)
"c: Program Files Git usr bin nano.exe"
Для запуска в PowerShell
& 'C: Program Files Git usr bin nano.exe'
Оба они отлично работают даже по ssh.
ОБНОВЛЕНИЕ 2020:
В Win10 просто включите подсистему linux, тогда у вас будет большая часть вещей Linux, таких как vim
и nano
:
c:> bash $: nano ваш файл. txt
ответил 03 июля ’20 в 15:50
-
Подсистема linux? Это что, теперь в W10? – Томас Кимбер, 8 августа ’20 в 10:15
-
Хорошо, просто погуглил – хорошая идея, но установить весь дистрибутив Linux, чтобы включить редактор терминала? Это натянуто. Тем не менее, возможно, попробуем;) – Томас Кимбер 8 авг., 10:30
добавить комментарий |
ОБНОВЛЕНИЕ 2020:
В Win10 просто включите подсистему linux, тогда у вас будет большая часть Linux такие вещи, как vim
и nano
:
c:> bash $: nano yourfile.txt код>
Если на удаленном компьютере Подсистема Windows для Linux установлена, вы можете ввести bash
, чтобы следующие команды интерпретировались WSL. Отсюда вы можете ввести nano FILENAME
или vim FILENAME
или любой другой текстовый редактор Linux, который вы предпочитаете. Чтобы выйти из WSL и вернуться в обычную командную строку, введите exit
или logout
.
Это пригодилось, когда я получал доступ сервер Windows Jupyter Notebook и хотел отредактировать .gitattributes
, скрытый файл, который не отображается в графическом интерфейсе Jupyter. Этот ответ основан на приведенном выше комментарии SajanGohil.
ответил 26 мая ’20 в 15:57
Если на удаленном компьютере установлена подсистема Windows для Linux, вы можете ввести bash
, чтобы получить следующий команды, интерпретируемые WSL. Отсюда вы можете ввести nano FILENAME
или vim FILENAME
или любой другой текстовый редактор Linux, который вы предпочитаете. Чтобы выйти из WSL и вернуться в обычную командную строку, введите exit
или logout
.
Это пригодилось, когда я получал доступ сервер Windows Jupyter Notebook и хотел отредактировать .gitattributes
, скрытый файл, который не отображается в графическом интерфейсе Jupyter. Этот ответ основан на комментарии SajanGohil выше..
Используйте vim или nano .
Установите vim с помощью choco install vim
, используя шоколадный менеджер пакетов.
(Также может быть доступна версия Scoop, но я не проверял.)
Хотя nano также существует как choco , он очень устарел. Вместо этого установите этот файл nano. Однако при использовании через SSH управляющие символы nano немного сбиваются с толку, поэтому вы можете потерять некоторые, поскольку Windows использует собственный API для управления экранными символами, а не POSIX. Поэтому, хотя в настоящее время ведется большая работа по обеспечению совместимости с Win10 в будущем.
Затем вы можете запустить: nano -cg some.txt
, но курсор будет отображаются только в нужном месте, когда вы нажимаете CTRL-L
. (Вот почему vim предпочтительнее.)
отредактировано 31 мая ’20 в 07:24
ответил 16 мая ’20 в 21:35
-
Конечно, для этого требуется установка Chocolately – mic 26 мая ’20 в 15:38
-
Спасибо, микрофон, я добавил эту ссылку . – not2qubit 31 мая ’20 в 7:25
добавить комментарий |
Используйте vim или nano .
Установите vim с помощью choco install vim
, используя шоколадный менеджер пакетов.
(Также может быть доступна версия Scoop, но я не проверял.)
Хотя nano также существует как choco , он очень устарел. Вместо этого установите этот файл nano. Однако при использовании через SSH управляющие символы nano немного сбиваются с толку, поэтому вы можете потерять некоторые, поскольку Windows использует собственный API для управления экранными символами, а не POSIX. Поэтому, хотя в настоящее время ведется большая работа по обеспечению совместимости с Win10 в будущем.
Затем вы можете запустить: nano -cg some.txt
, но курсор будет отображаются только в нужном месте, когда вы нажимаете CTRL-L
. (Вот почему vim предпочтительнее.)
Изучите командную строку в терминале
Создание папок – это круто, но папка без содержимого так же полезна, как и пустая коробка!
Теперь, когда вы знакомы с созданием папок через командную строку, пришло время заполнить эти папки файлами..
Мы будем придерживаться формата предыдущей главы, то есть покажем один пример создания файлов без кода в них, а другой. с кодом . Таким образом, даже если вы еще не программист, вы сможете понять, почему папки и файлы также полезны для программистов!
Создание файлов
Не -пример кода
В предыдущей главе вы создали структуру папок для школьных курсовых работ . Эта папка называлась вторым семестром. В качестве небольшого упражнения в предыдущей главе вы также создали папки внутри папки второго семестра для каждого курса (история искусств, биология и т. Д.).
Как вы понимаете, разные Для курсов потребуются файлы разных типов внутри. Например, на уроке гуманитарных наук, таком как история искусства, может потребоваться конец курсовой работы. Скорее всего, это текстовый файл. 🎨 Может быть, на уроке биологии потребуются исследования и результаты этого семестра! Скорее всего, это электронная таблица. 🐢
Вы можете создавать все типы файлов из самой командной строки.
Это намного быстрее, чем создание файла по отдельности через различные приложения, такие как Microsoft Excel или текстовый редактор, и запустив «Сохранить как».
Давайте сначала поработаем с примером истории искусства. Если вы используете команду cd
для перехода в каталог «История искусства», вы можете затем использовать команду под названием touch
, чтобы создать файл для нашего конца. курсовой работы.
Touch – команда звучит довольно жутко, но вот что она делает:
-
указывает вашей системе искать определенный файл
-
Если файл еще не существует, ваша система создаст этот файл для вас.
В этом случае давайте создадим файл с именем term-paper.txt
.
команда будет выглядеть так:
touch term-paper.txt
Это так просто! Теперь, если вы снова посмотрите в Finder, вы увидите, что этот файл был создан внутри вашей папки «История искусства». В настоящее время он пуст, но вы можете открыть его в любое время из Терминала, чтобы редактировать содержимое, как обычно:
открыть курсовую работу .txt
Теперь пора создать второй файл. Этот второй файл будет в папке «Биология». Это означает, что мы должны сменить каталоги на папку Biology!
Вы можете применить на практике смену директорий для перехода на один уровень вверх. Две точки представляют родительский каталог каталога, в котором вы сейчас находитесь, поэтому вы можете cd ..
переместиться на один уровень вверх в структуре папок.
cd ..
На этом этапе вы вернетесь в каталог «Второй семестр».
Теперь вы можете ввести cd Biology
, чтобы перейти в каталог Biology.. Отсюда вы можете написать ту же сенсорную команду с именем файла, который вы хотите создать, и расширением файла.
touch research-sizes.csv
Вот как выглядит вся серия команд:
Обратите внимание, что после запуска open research-sizes.csv
файл открывается автоматически в Microsoft Excel. Терминал достаточно умен, чтобы знать, какое приложение должно открывать файлы какого типа. 👍
Пример кода
В предыдущей главе вы видели, как создать базовую структуру папок для статического веб-сайта. Была папка CSS и папка для изображений.
Однако обе они пусты. Давайте добавим файл!
Попав в каталог project
, вы создадите пустой HTML-файл . Этот файл обычно является основной страницей любого базового проекта кода. HTML-файлы – это то место, где будет находиться структура веб-страницы , и где вы определяете абзацы или заголовки, где вы хотите использовать элементы, такие как панели навигации, или как текст должен быть отформатирован.
Выполните коснитесь
плюс имя файла – index.html
– для его создания:
touch index.html
Теперь, набрав ls
, вы можете увидеть, что проект содержит папку CSS, папку для изображений, и файл с именем index.html
. Мы вернемся к этому файлу через секунду.
Давайте cd
в каталог css
и создадим здесь другой файл. Этот новый файл будет иметь другое расширение, чем другие, которые мы создали до сих пор: это не будет .txt или .csv. ни .html. Это будет .css, потому что он будет содержать код CSS!
cd css
touch main.css
Я даже могу открыть HTML-файл в моем браузере, чтобы просмотреть содержимое моего файла:
open index.html
Теперь вы понимаете, насколько универсальным и оптимизированным является создание файлов из командной строки. Это намного быстрее, чем создание файлов по отдельности с помощью различных приложений, таких как Word.
Вам просто нужно знать имя вашего файла и расширение вы хотите, и вы можете сэкономить много времени и полностью избежать процесса Сохранить как в разных приложениях.
В следующей главе вы увидите, как перемещать и копировать часть этого контента вы создали.
- #
Содержание
- Способ 1: Контекстное меню
- Способ 2: «Блокнот»
- Способ 3: «Командная строка»
- Способ 4: WordPad
- Способ 5: Сторонние текстовые редакторы
- Вопросы и ответы
Способ 1: Контекстное меню
Самым простым и быстрым методом создания текстового документа на компьютере или ноутбуке с ОС Windows 10 будет использование соответствующего пункта контекстного меню. Просто кликните правой кнопкой мышки (ПКМ) в пустом месте рабочего стола или папке, в которую хотите поместить файл, и перейдите последовательно по пунктам «Создать» — «Текстовый документ».
По желанию задайте имя новому файлу и откройте его двойным нажатием левой кнопки мышки (ЛКМ), после чего вы сможете начать ввод текста.
Примечание: Для того чтобы сохранить текстовый документ, воспользуйтесь клавишами «Ctrl+S» («Сохранить») или «Ctrl+Shift+S» («Сохранить как…») либо одноименными пунктами меню «Файл». При выборе варианта «Сохранить как…» дополнительно потребуется указать папку для сохранения текстового документа, задать его имя или оставить назначенное по умолчанию и подтвердить данное действие.
Читайте также: Сочетания клавиш для работы в ОС Виндовс 10
Способ 2: «Блокнот»
Так как стандартный текстовый документ создается во встроенном в операционную систему приложении «Блокнот», решить нашу задачу можно путем его запуска. Проще всего это сделать через поиск (клавиши «Win+S» или кнопка с изображением лупы на панели задач), введя соответствующий запрос в строку.
Альтернативный вариант: меню «Пуск» — папка «Стандартные – Windows» — «Блокнот».
Читайте также: Как открыть меню «Пуск» в Windows 10
В результате выполнения любого из предложенных выше действий будет открыто искомое приложение, с помощью которого вы сможете создать текстовый документ и сохранить его на компьютер.
Способ 3: «Командная строка»
Еще один вариант решения задачи из заголовка статьи заключается в использовании консоли, причем в данном случае она будет выступать в качестве полноценной альтернативы стандартному «Блокноту».
- Запустите «Командную строку» от имени администратора. Для этого можно воспользоваться соответствующим пунктом дополнительного меню, вызываемого нажатием «ПКМ» по меню «Пуск», или задействовать системный поиск.
Читайте также: Как открыть «Командную строку» в Виндовс 10 от имени администратора
- Введите указанную ниже команду и нажмите «Enter» для ее выполнения:
copy con c:lupmics.txt
Обратите внимание, что вместо «c:» следует указать путь расположения будущего документа, а вместо «lupmics» — его предпочитаемое название. Если оставить все без изменений, в корне системного диска C: будет создан текстовый файл с именем «lumpics».
- Пустая строка, которая появится в интерфейсе консоли под указанной командой, – это и будет «Блокнот», то есть все что от вас потребуется – начать вводить текст.
Обратите внимание! Данный метод создания текстового документа не поддерживает кириллицу — после сохранения вы получите файл с набором нечитаемых символов, как это показано на изображении ниже.
Читайте также: Что делать, если появились кракозябры вместо букв в ОС Виндовс 10
- Когда работа с текстовым документом будет завершена, нажмите клавиши «Ctrl+Z», а затем «Enter» для его сохранения.
- Появление строки «Скопировано файлов: 1» будет означать, что файл с заданным вами названием и созданным содержимым будет сохранен по пути, указанному на втором шаге текущей инструкции.
В этом вы сможете убедиться, перейдя к соответствующему расположению в «Проводнике»
и открыв его.
Читайте также: Как открыть «Проводник» в Windows 10
Способ 4: WordPad
Помимо «Блокнота» в ОС Windows, независимо от версии, есть еще один текстовый редактор, значительно более продвинутый функционально, но точно уступающий платному Microsoft Word. Речь идет о программе WordPad, с помощью которой также можно решить задачу из заголовка статьи.
- Запустите искомое приложение. Как и в предыдущих способах, проще всего это будет сделать через системный поиск (запрос
«WordPad»
). - В открывшемся редакторе начните вводить текст. Дополнительно можно использовать представленные на верхней панели средства форматирования и другие инструменты, но учтите, что большинство из них несовместимы со стандартным форматом *.txt.
- Завершив редактирование, вызовите меню «Файл», выберите пункт «Сохранить как», а затем «Обычный текстовый документ».
В появившемся системном «Проводнике» укажите папку для сохранения файла, задайте ему желаемое имя и подтвердите данное действие.
Способ 5: Сторонние текстовые редакторы
Если в вашем случае задача создания текстового документа подразумевает не только простой набор символов, но и их форматирование, оформление, добавление графических и мультимедийных элементов, создание таблиц, графиков и т. д., ни «Блокнота», ни даже WordPad для этого будет недостаточно. В отдельном разделе нашего сайта вы можете найти обзоры самых популярных, многофункциональных текстовых редакторов, как платных, так и бесплатных, выбрать для себя подходящий, скачать его, установить компьютер и начать использовать.
Подробнее: Текстовые редакторы для Виндовс
Еще статьи по данной теме:
Помогла ли Вам статья?
It just depends what editor you install. I like UltraEdit, but it’s not free for long-term use. Some people like XPad, which is apparently free. There is a program called «WinVI» which is a Windows editor similar to VI, of course. You just have to decide what type of editor you want. For that matter, you could use the XP EDIT program, just copy it to Win7 from an XP system. However, I’m not sure that there’s any advantage to using a text-based «DOS» style editor in Windows 7; it may look retro, but there’s not likely to be any upside to it.
I think if I had to recommend something DOS-like, I’d go with Emacs-for-Windows:
http://ftp.gnu.org/gnu/emacs/windows/
Whatever editor you want to use, put the installation folder into your PATH variable, which is found with Control Panel > System > Advanced System Settings > click on Environment Variables box. Select the PATH variable, and Edit, to add a colon at the end & then the path to the newly-installed program (i.e. «C:Program Files (X86)Editco»
This path change will then allow you to just type the program name, instead of the specific location, i.e.
instead of
C:Program Files (X86)EditcoMyeditor.exe filename.ext
you’d just type
Myeditor.exe filename.ext
It just depends what editor you install. I like UltraEdit, but it’s not free for long-term use. Some people like XPad, which is apparently free. There is a program called «WinVI» which is a Windows editor similar to VI, of course. You just have to decide what type of editor you want. For that matter, you could use the XP EDIT program, just copy it to Win7 from an XP system. However, I’m not sure that there’s any advantage to using a text-based «DOS» style editor in Windows 7; it may look retro, but there’s not likely to be any upside to it.
I think if I had to recommend something DOS-like, I’d go with Emacs-for-Windows:
http://ftp.gnu.org/gnu/emacs/windows/
Whatever editor you want to use, put the installation folder into your PATH variable, which is found with Control Panel > System > Advanced System Settings > click on Environment Variables box. Select the PATH variable, and Edit, to add a colon at the end & then the path to the newly-installed program (i.e. «C:Program Files (X86)Editco»
This path change will then allow you to just type the program name, instead of the specific location, i.e.
instead of
C:Program Files (X86)EditcoMyeditor.exe filename.ext
you’d just type
Myeditor.exe filename.ext
В Unix я бы просто использовал vi , но я не знаю, что это за команда в Windows. Я на самом деле пытаюсь редактировать файлы через SSH с Windows Server 2008.
Ответы:
edit filename
Я не буду ручаться за его функциональность и устаревший графический интерфейс, но он установлен по умолчанию даже в Windows 7.
Изменить: За исключением 64-разрядных версий Windows.
Самое простое решение для всех версий Windows:
C:> notepad somefile.txt
И никакого дополнительного программного обеспечения не требуется.
В командной строке Windows введите copy con и имя целевого файла. ( copy con c:file.txt
).
Затем введите текст, который вы хотите поместить в файл.
Завершите и сохраните файл, нажав CTRL— Zтогда Enterили F6потом Enter.
Если вы хотите изменить текст в существующем файле, просто отобразите текст, используя команду, type
после которой следует имя файла, а затем просто скопируйте и вставьте текст в copy con
команду.
Если вы привыкли к vi и не хотите соглашаться на встроенный редактор, вы можете получить Vim для Windows . Он будет работать из командной оболочки. Или попробуйте WinVi .
Хотите верьте, хотите нет, EDLIN.EXE
по <shudder>
крайней мере , все еще есть в этой системе Vista.
Извините, пока я тихо рыдаю про себя …
Я не знаю ни о SSH, ни о чем-либо (еще?) Связанном с сервером, так что извините, если это «решение» бесполезно. Если вы хотите редактировать файлы в командной строке, вы можете получить версию Nano для Windows .
В качестве примечания, эти маленькие ^
знаки внизу окна должны представлять Ctrlкнопку. Например, ^X Exit
означает, что вы можете выйти из программы, используя Ctrl— X.
Кроме того, Nano иногда добавляет дополнительные символы новой строки при сохранении файлов. Кажется, это какая-то ошибка с переносом слов Нано.
Я также видел порты vi для Windows, хотя я использовал тот, который просто делает окно командной строки настолько маленьким, насколько это возможно, оставляя только строку заголовка (что означает, что остальная часть окна также может быть невидимой , так как вы не можете видеть, что вы делаете). Тем не менее, версия Vim для Windows, кажется, работает довольно хорошо.