Как уменьшить боль в командной строке


38

Я хочу научиться лучше использовать командную строку в Windows, чтобы иметь больше контроля над тем, что я делаю, и просто для обучения. Главное раздражение, которое у меня есть сейчас, - это все, что я печатаю. Если я хочу выполнить операцию с файлом с большим путем, я сижу там, набирая его, по крайней мере, в течение минуты, и если я совершаю ошибку, мне нужно нажать клавишу со стрелкой вверх, пролистать всю вещь и найти что я сделал не так Есть ли инструменты, чтобы сделать это проще?


Мне бы хотелось, чтобы в командной строке Windows была опция "-o vi", которую использует bash. Это делает вещи очень быстро (если вы знаете немного vi, конечно)
OscarRyz

2
Завершение вкладки! Любой приличный терминал будет иметь его (и если нет, я бы поставил под сомнение возможности терминала, на котором вы сидите).
new123456

Особенно, если вы учитесь, изучайте PowerShell. Для старых пердунов изучение нового трюка может быть трудным. Но для новичков полезно получить этот совет пораньше, чтобы направить свою учебную энергию по наилучшему пути с самого начала.
music2myear

Ответы:


33

Если вы намереваетесь использовать командную строку только под Windows, вы можете использовать Windows PowerShell , поскольку она проще в использовании, чем исходная командная строка, и копирует некоторые действия из * nix-подобных терминалов. (Он также предоставляет гораздо больше функциональных возможностей, но сначала, по крайней мере для меня, это «более простая командная оболочка»).

изображение powershell

Изменить: Изменен рисунок для более "дружественного".


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

3
Да, в этом случае, возможно, это не совсем адаптировано. Мне, как я знал терминалы * nix раньше, мне помог этот PowerShell, так как он также предоставляет много псевдонимов (ярлыков) для обычных команд * nix. Обычно «ls» работает как «dir». В целом, это также более согласованно для «завершения табуляции», по моему мнению, по сравнению с оригинальной оболочкой, что облегчает навигацию.
Gnoupi

1
PowerShell действительно - путь. Как давний пользователь cmd.exe я могу вам сказать, что он действительно ограничен. Как только вы захотите сделать что-нибудь умное, вам в конечном итоге понадобится VBScript или что-то подобное, так что вам придется изучить это. У каждой команды есть свой синтаксис, и они редко похожи, поэтому вам нужно изучить каждую из них, и вы не сможете легко угадать. PowerShell намного мощнее и согласованнее, поэтому вы можете применить то, чему научились, из одной команды в другую.
serialhobbyist

Кроме того, некоторые команды PoSh имеют псевдонимы, которые аналогичны командам cmd, чтобы упростить переход. Например, dir работает (с псевдонимом Get-ChildItem). Но в PowerShell вы также можете управлять реестром и другими вещами.
serialhobbyist

1
Кроме того, PowerShell имеет намного лучше (IMO) текст справки. Кто-нибудь когда-нибудь говорил вам читать cmdpages?
Hello71

45

Вы можете использовать Tabключ для автозаполнения имен файлов. Хотя имейте в виду, что вы должны сначала набрать достаточно имени файла, чтобы однозначно идентифицировать его, иначе вам придется перетасовать неправильные совпадения. Например, у вас есть папка с этими файлами, и это ваш текущий каталог, с которым вы сидите cmd:

,
..
Su.exe
Sup.txt
SuperUser.COM

если вы хотите выполнить автозаполнение SuperUser.COM, вам нужно будет набрать и supeнажать Tab, так как ни один из других файлов не начинается с этих 4 символов. Обратите внимание, что если вы набрали, suа затем нажали Tab, вы можете нажать еще Tabдва раза, чтобы перейти к SuperUser.COM, или вы можете набрать, ShiftTabчтобы вернуться назад по списку и попасть туда.

Еще одна хитрость: если у вас есть файл в окне проводника, вы можете перетащить его в cmdокно, и он напечатает для вас имя.


2
Это прекрасно работает, спасибо, но когда я перелистываю файлы, я иногда пропускаю свои, есть ли способ вернуться назад?

14
Да, shift-tab :)
Джон Т

2
Бонус факт: shift+ <any key that cycles through tabs/windows>это всегда эквивалентно реверс , например alt-tab-> alt-shift-tab.
glenneroo

27

Вот еще несколько советов и приемов использования командной строки, в том числе:

«... перетащите и удалите файлы или папки из окна проводника в командную строку; при этом путь в кавычках будет вставлен, как если бы вы его вставили вручную ...»

Это еще один способ уменьшить количество операций печати, связанных с длинными путями к файлам.


3
Теперь это полезно. Я вообще этого не знал.
EvilChookie

1
Уже было это в моем первоначальном ответе: P
Джон T

Это не работает в Windows Vista или Server 2008, но снова работает в Windows 7 и Windows Server 2008 R2. См. Superuser.com/questions/27347/what-is-conhost-exe/28897#28897 для нескольких деталей.
Рувим


21

Вот полный список действий функциональных клавиш:

F1 retypes the previous command one character at a time
F2 brings up a dialog and asks “Enter the char to copy up to:”
F3 retypes the last command in full
F4 brings up a dialog and asks “Enter char to delete up to:”
F5 as for F3
F6 Print EOF character (Ctrl+Z)
F7 brings up a dialog of all the recent command history
F8 brings up each of the most recent commands, one at a time
F9 brings up a dialog and asks “Enter command number:”

2
Кто-нибудь получил F4 на работу? Диалог появляется, но не удаляется.
Чарльз Битти

15

Нажатие F7 выведет список последних выполненных команд.

cd \ чтобы вернуться в c:каталог.


2
Хм, не знал этого.
Gnoupi

ПРОХЛАДНЫЙ! (это все, что я должен сказать, но ответ должен быть длиной 15 символов ...)
Traveling Tech Guy

Я использую командную строку все время, и я не знал, что F7 один - очень удобно!
Джастин

8

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

(Инструменты - Параметры папки - Типы файлов - Папка - Дополнительно - Новый - cmd)

Затем, когда вы выберете cmd, щелкнув правой кнопкой мыши по этой папке, в открывшемся окне команд будет текущий каталог, в котором вы щелкнули.

альтернативный текст


1
для пользователей XP, MS Power Toys для XP обеспечит это для вас , а также: microsoft.com/windowsxp/Downloads/powertoys/Xppowertoys.mspx
АКФ

Я знал, что есть разные виджеты, которые делают это для вас, но мне всегда нравится самостоятельная конфигурация, которая заменит виджет. Спасибо за эту информацию.
music2myear

7

Если Windows PowerShell слишком перегружен, есть также несколько сменных оболочек cmd:

И многое другое можно найти через Google.


+1 для cygwin: использование этого набора инструментов означает, что выученные трюки переносимы для установок Linux и, в определенной степени, других ОС (BSD, MacOS, ...), где присутствуют те же или аналогичные инструменты и оболочки типа bash-a. Хотя, если PowerShell является подавляющим, Cygwin, вероятно, тоже.
Дэвид Спиллетт

+1 за Консоль, которая не является заменой оболочки, но является лучшим терминалом для существующих оболочек.
wfaulk

+1 за Cygwin, но эмулятор ужасен. В таком случае предложил бы Terminator + Cygwin.
Jamesh

Я большой поклонник TCC (с 4DOS, примерно в 1989 году); Я предпочитаю это PowerShell. И теперь, когда TCC / LE является бесплатным, я могу отправлять .BTM-скрипты в комплекте с установкой TCC :-) Обратите внимание, что PowerCMD и Console - это не командные процессоры замены, а терминалы замены. Лично я использую Консоль с несколькими вкладками, каждая из которых содержит сеанс TCC (или Cmd, или Cygwin).
billdehaan

andlinux.org andLinux гораздо удобнее в использовании, чем Cygwin.

7

При использовании командной строки я постоянно использую стрелку вверх (и стрелку вниз) для прокрутки недавно использованных команд. Особенно, когда я ввел длинную команду и хочу только отредактировать некоторую ее часть, не вводя ее повторно.

Краткий пример, если вы:

c:\>ping 192.168.1.1

А затем хотите пропинговать другой подобный адрес, вы можете просто нажать стрелку вверх. Команда появляется в приглашении с курсором в конце. Это позволяет с легкостью вернуться на одну позицию назад и изменить адрес на 192.168.1.2 или что-то подобное.


4

Я предлагаю вам использовать командную строку.

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


9
Да, он хочет, но он хотел бы знать, что он может сделать с этим, я думаю. Потому что «перебор» доступных команд может занять некоторое время.
Gnoupi

Я узнал командную строку, написав амбициозный пакетный сценарий развертывания системы. Я пытался включить каждую функцию, которая могла придумать, которая принесла бы пользу желаемой задаче, просто продолжала задавать вопросы на форумах и других, которых я знал, пока это не сработало. 1500 строк и много хорошего опыта, который я до сих пор использую.
music2myear

@ music2myear тебе 28 лет, ты достаточно взрослый. Где вы были, что вы не изучали DOS в свое время?
Бароп

Мой папа купил наш первый компьютер, когда мне было 10. DOS 4, наверное, и Win 3.1. Меня интересовало только рисование приложений и в какие игры можно играть. Только в 98 году у меня появился собственный компьютер для изучения техники. И только после того, как у этой системы начались проблемы, и мне пришлось самому ее устранять, я действительно увлекся технологиями и компьютерами. В 2003 году я получил работу по поддержке ИТ и создал пакетный скрипт, о котором я упоминал ранее. Я был только поздний стартер по меркам гика.
music2myear

4

Включить режим быстрого редактирования, чтобы:

  • Скопируйте текст: выберите текст + ENTER
  • Вставьте код, нажав правую кнопку мыши.

введите описание изображения здесь

Я также изменяю шрифт и макет на что-то более приятное, чем битовая карта по умолчанию.

введите описание изображения здесь

Наконец, добавьте больше строк и столбцов в окне редактирования и больше строк в буфер.

введите описание изображения здесь

Скриншоты на испанском, но они точно в том же месте на английском


1
Изменение ширины окна консоли - это первое, что я делаю на новом компьютере.
Джастин

+1 Высота по умолчанию так же бесполезна.
glenneroo

2

Обязательно возьмите копию Cygwin и добавьте ее папку \ bin в переменную PATH. Это как удобная командная строка!

Но на самом деле, единственный способ привыкнуть к этому - привыкнуть к нему, так что используйте его!


Мне трудно жить с окнами без приглашения bash
jweede

1

Если вы используете XP (не знаете о Vista), вы можете скачать Powertoy, который добавляет пункт меню «Открыть окно команд здесь» в контекстное меню папки проводника.

Что-то еще, что я нашел полезным, состоит в том, чтобы прекратить использовать пути Windows по умолчанию для всего. Их слишком сложно запомнить, и пробелы могут стать проблемой. Использование чего-то более похожего на структуру каталогов linux может сэкономить время. Мои каталоги выглядят примерно так (в качестве примеров):

 - C:\usr\bin\firefox 
 - C:\usr\bin\7zip
 - C:\usr\bin\dropbox

 - C:\usr\lang\cpp\gcc
 - C:\usr\lang\cpp\lib\qt_4_5_0
 - C:\usr\lang\python\py25

 - C:\usr\home\wrksp\cpp
 - C:\usr\home\doc
 - C:\usr\home\wrksp\svn

Намного легче запомнить.


5
Vista (по крайней мере Ultimate Edition) имеет это по умолчанию, но скрыто от обычного пользователя. Просто удерживайте нажатой клавишу Shift, а затем щелкните правой кнопкой мыши папку в правой панели Explorer, и вы должны увидеть «Open Command Window Here».
GAThrawn

@ GAThrawn, у меня Vista Home Premium, и я подтверждаю, что я тоже видел эту функцию.
Шивасубраманян

Является ли "C: \ usr \ bin \ 7zip" намного быстрее, чем "c: \ Program Files \ 7zip"? Что касается нажатий клавиш .. c: \ prog <tab> \ 7zip против c: \ usr \ bin \ 7zip, может быть, к программным файлам быстрее добраться?
Бароп

1

Лично я думаю, что если вы хотите научиться использовать командную строку и не находите ее радостной, вам, вероятно, не нужно использовать командную строку.

Как только вам нужно нажать CLI, вы найдете его полезным и даже приятным. Если вы пытаетесь выполнять с ним свои повседневные задачи, то вы бьетесь головой о стену.

Когда вы ознакомитесь с командной строкой, вы можете перенести свои повседневные задачи туда только потому, что это проще, чем всегда тянуться к мышке :)


Это точно. Необходимость порождает знакомство.
Дж. Полфер

1

Используйте переменные среды.

Например, вместо ввода c: \ documents and settings \ username вы можете просто использовать% userprofile%. Чтобы получить список стандартных переменных среды, введите SET и нажмите Enter в командной строке.

Кроме того, ознакомьтесь с командами, которые вам доступны - мне нравятся два сайта для них: www.ss64.com и www.robvanderwoude.com

Вы также можете изучить пакетный скриптинг - с его помощью вы можете автоматизировать часто используемые задачи.


1
  • Чтобы вставить в командное окно с помощью клавиатуры, нажмите alt-space, e, p.
  • Чтобы повторить последнюю команду, начинающуюся с буквы «d» (например, это может быть любой символ), нажмите d, а затем F8.

Последний совет может показаться неясным, но когда вы проводите много времени в консоли, это может быть намного быстрее и проще, чем нажатие стрелки вверх или F8 несколько раз.


1

В этой теме есть несколько замечательных советов!

На мой взгляд, публикация замен CMD скорее «не по теме». Но, похоже, все в порядке, поэтому я могу добавить ColorConsole в список.

Интерфейс с вкладками , меню « Любимые команды» , « Копировать / вырезать и вставить», а также экспорт HTML - очень полезные функции, которые я больше не хочу пропустить.

ps: попробуйте это в ветке "Должны быть аддоны Firefox": Ребята, получите Opera, в ней есть встроенные плюсы! :)



0

Я согласен с предложением использовать powershell. Кроме того, я нахожу невероятно полезным настраивать функции и псевдонимы, чтобы сводить общие задачи к меньшему количеству набираемых букв.

Например, чтобы запустить ссылку http, я настроил это в своем профиле powershell:

function browse-url { param($url="http://www.google.com/"); (new-object -com shell.application).ShellExecute($url); }
set-alias -name "browse" -value "browse-url"

и тогда я просто набираю, browseчтобы открыть Google, или browse http://....чтобы открыть конкретную ссылку

Другой пример для вывода списка файлов или каталогов:

function lsa { param($path="."); Get-ChildItem -Force $path }
set-alias -name "la" -value "lsa"
set-alias -name "ll" -value "lsa"
function lsd { param($path="."); lsa $path | ? { $_.PSIsContainer } }
function lsf { param($path="."); lsa $path | ? { !$_.PSIsContainer } }
function lat { param($path="."); lsa $path | sort -property lastwritetime -descending }
function latr { param($path="."); lsa $path | sort -property lastwritetime }
function fi { param($pat,$root="."); gci -r $root | ? {$_.Name -match $pat} | % { $_.FullName } }

А потом пользуюсь lsa чтобы показать все элементы в каталоге, в том числе скрытые элементы. Используйте laили llкак еще более короткие псевдонимы.

Я использую lsdсписок только папок, lsfсписок только файлов, latсписок по времени последней записи и latrсписок по времени в обратном направлении.
fiбыл установлен как простая замена команды unix find, просто рекурсивно ищите имя файла.


0

Установите Windows Explorer вместо Xplorer2 . Он включает в себя инструмент командной строки, который позволяет использовать все функции командной строки, в том числе с помощью графического интерфейса Windows, такие как использование мыши, щелчок правой кнопкой мыши для функций копирования и вставки и т. Д. Посмотрите на снимок экрана ниже.

Скриншот командной строки

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.