Как работать с командной строкой эффективно: 6 советов от разработчика Дейва Керра
Чем больше программист работает в командной строке, тем сложнее ему ориентироваться в тексте и командах. Мы перевели статью разработчика Дейва Керра и узнали, как с помощью сочетаний клавиш (шорткатов) упростить навигацию и поиск в командной строке.
Вы читаете обновленную и улучшенную версию нашей старой статьи
Навигация в командной строке
Предположим, что разработчик составляет простую команду, которая будет записывать цитату в текстовый файл:
> quote.txt
Между длинными блоками текста разработчик может перемещаться стрелками. Но это долго и неудобно. Есть более простой способ навигации — шорткаты:
- В начало или в конец: Ctrl + a , Ctrl + e
- Назад или вперед по словам: Alt + b , Alt + f
- Удалить слово или отменить действие: Ctrl + w , Ctrl + —
- Удалить следующее слово: Alt + d
- Удалить все до начала: Ctrl + u
- Удалить все до конца: Ctrl + k
Поиск в командной строке
Как только разработчик разбирается с базовой навигацией, ему важно освоить инструменты поиска.
Допустим, разработчик запускает три следующие команды:
Он может выполнять поиск вперед или назад с помощью Ctrl + r и Ctrl + s . Поиск будет вестись по текущей команде, а затем итеративно по предыдущим:
Также шорткаты можно использовать для поиска по истории команд вперед и назад:
Когда разработчик вводит текст, поиск проверяет историю его команд и выводит самые последние в начале. Вот те же самые команды, примененные к исходному примеру:
- Искать назад или вперед: Ctrl + r , Ctrl + s
- Выполнить команду: Enter
- Редактировать команду: ← или →
- Остановить поиск: Ctrl + g
Редактирование в командной строке
Обрабатывать очень длинную и сложную команду можно в редакторе кода. Но, опять же, переключаться между редактором и командной строкой не очень удобно.
Вот шорткат, который позволит редактировать команду прямо в командной строке: Ctrl + x , Ctrl + e
Очистка экрана в командной строке
Шорткат Ctrl + l очищает экран, не удаляя текущую команду. Это выглядит так:
Транспонирование
Транспонирование в командной строке меняет местами последние два слова в команде. Можно, конечно, их стереть и заново набрать, но на это уйдет больше времени, чем на использование сочетания клавиш.
Вызвать транспонирование можно с помощью шортката Alt + t . А сочетание клавиш Ctrl + t поменяет местами последние две буквы:
Библиотека для управления командной строкой в интерпретаторах
Чтобы вывести свою работу в командной строке на новый уровень, стоит изучить библиотеку GNU Readline. С ее помощью можно настроить все низкоуровневые детали работы любых интерпретаторов, которые используют Readline. Для этого есть конфигурационный файл .inputrc .
Шорткаты GNE Readline работают в любой командной строке, которая использует эту библиотеку. То есть все, о чем мы писали выше, применяется к:
На сайте Readline есть отличная шпаргалка по командам — рекомендуем ее изучить.
Советуем также посмотреть наше видео о работе в командной строке. Возможно, вы откроете для себя что-то новое.
Итог
Мы рассказали о нескольких классных шорткатах, которые упрощают работу с командной строкой. Вот небольшой схематический конспект статьи:
Изучите основы командной строки бесплатно! На Хекслете есть бесплатный курс по основам командной строки. Пройдите его, чтобы подробнее узнать о командах linux, навигации и поиске, а также научиться манипулировать файловой системой как профи.
Отмена действия в командной строке VIM
Командный режим vim позволяет использовать вставку из буфера. Бывает, пишешь строку замены %s/. и нечайно нажимаешь горячие клавиши для команды «вставить». После этого в командную строку валится огромное кол-во текста из буффера и команду замены приходится писать заново.
Как отменить это действие? Как вернуться на 1 шаг назад? Одним словом нужен «Ctrl+Z» для командной строки, извините за виндоподобную аналогию.
Хотя бы по какому слову искать, подскажите.
Как отменить следующую команду cmd?
Интересует способ отмены следующей команды в командной строке до её выполнения после текущей.
Например:
sfc /scannow *ввод*
sfc /scannow *ввод*
И во время выполнения первой команды sfc отменить выполнение второй по окончании выполнения первой.
- Вопрос задан более года назад
- 379 просмотров
8 комментариев
Простой 8 комментариев
Команда еще не начала выполняться, а вы уже хотите ее отменить?
Может вам нужно какое-то условное выполнение второй команды?
Например, эта конструкция выполнит command2 только в случае успешного выполнения command1 (код возврата command1 равен 0)
command1 && command2
Эта конструкция выполнит command2 только в случае не успешного выполнения command1 (код возврата command1 больше 0)
command1 || command2
Какие коды возврата у sfc я не в курсе и в документации этого нет. Можно выяснить опытным путем.
Либо просто запихнуть command2 в блок if в зависимости от каких-то условий.
Руками прервать выполнение командного файла можно с помощью Ctrl-Break или Ctrl-C
Если дадите больше информации по вашей задаче, может быть, будут другие советы.
Александр @0pt1muS Автор вопроса
res2001, я даже пример привёл, в котором указал момент ввода команды, и момент появления желания отменить вторую команду ДО начала её выполнения (ввода в кс) после выполнения первой уже выполняемой команды, независимо от результата её выполнения. Как мне ещё более доходчиво описать задачу?
Судя по всему работает только вариант со скриптом с pause после каждой команды.
я даже пример привёл, в котором указал момент ввода команды
Если вы вводите команды с клавиатуры, то просто не вводите вторую.
Если вы все же выполняете батник . ну поставьте паузу после каждой команды, если передумаете выполнять вторую на паузе нажмете Ctrl-Break
Александр @0pt1muS Автор вопроса
res2001, опять же, указал, что команда уже выполняется. Нужен способ очистить очередь выполняемых команд после текущей.
0pt1muS, Нет никакой очереди выполняемых команд, нечего очищать.
Команды по одной читаются из батника и выполняются.
Во время паузы можете отредактировать батник и закоментировать не нужную команду, если не нравится Ctrl-Break. В простых случаях это работает. Других способов повлиять на поток выполнения снаружи я не знаю.
Александр @0pt1muS Автор вопроса
res2001, ну про батник понятно, там же и таймер выполнения pause прописать можно, а вот что ввёл в командной строке во время выполнения текущей команды то отменить видать никак нельзя.
0pt1muS, pause не имеет никаких таймеров — она ждет до посинения нажатия any key. Таймер можно повесить на timeout.
что ввёл в командной строке во время выполнения текущей команды то отменить видать никак нельзя.
Можете прервать по Ctrl-C, но если команда что-то делала, например файлы копировала, то что она успела сделать так и останется, не откатится.
Как отменить запущенную команду в cmd?
Как отменить запущенную команду в cmd? Если вы находитесь в консоли своего компьютера, но неправильно или не вовремя выполнили команду, знайте, что вы можете отменить это выполнение.
Мы можем «удалить» выполнение команды очень простым способом. Комбинации клавиш будет достаточно, как в случае CTRL + C. Мы часто используем эту комбинацию для копирования элементов. Однако в консоли мы можем сделать это, чтобы остановить команду. Но это относится не только к нему, но и очень полезно, когда вы хотите остановить запущенное приложение.
Зачем останавливать или отменять команду, которую мы выполнили?
Часто мы можем столкнуться с командами, которые занимает больше времени, чем обычно при их выполнении, что означает, что когда мы работаем с определенной командой, но мы должны дождаться завершения действия, чтобы продолжить, рекомендуется иметь возможность отменить его.
Как мы сказали, да вы нажимаете CTRL + C, выполняемая команда все равно перестанет ее выполнять и это было бы легко отменено. Позволяет вам сосредоточиться на других командах или просто исправить команду, которую вы отменили.
Преимущества при отмене команд в консоли Windows
Возможно, как мы уже упоминали, запуск команды занимает больше времени, чем обычно. Именно поэтому, когда речь идет о закрытие процесса учений, мы увидим некоторые положительные моменты:
Хотите принять участие в розыгрыше портала PlayStation?
Trucoteca.com отмечает свое 25-летие
- Команда закроется
- Другая команда может быть записана для выполнения
- Долгий и трудоемкий процесс можно остановить
- Это позволит избежать траты времени на выполнение другой последующей команды.
- Не будет риска выполнить неправильную команду
- Можно будет останавливать приложения при их несвоевременном запуске
- Вы найдете действенный способ упростить работу
Это может вас заинтересовать: Как определить, какие приложения разряжают аккумулятор на DOOGEE S88 Plus?
Команды, работающие в консоли Windows
Когда вы обнаружите, что работаете над система компьютерных символов и вы знаете команды, которыми вы должны выполнять интересующие вас процессы, то вы будете знать, что важно уметь их выполнять в нужное для этого время.
В любом случае, как мы видели, мы можем рассчитывать на указание, которое поможет нам отменить и остановить последнюю команду, которую мы запустили. В случае, если эта команда не подходит. Ведь если вы хотите выполнять функцию повторения команд, то лучше избегать тех, с которыми процесс будет буксуть в определенное время.
Ярлыки и клавиши
С помощью клавиш нашей клавиатуры мы можем составлять комбинации, которые позволят нам получить доступ к ярлык функции или даже управлять определенными процессами. Вот почему примером этого является CTRL + C, как мы видели в этой статье.
Это не только поможет нам лучше управлять консолью Windows, но также позволит нам узнать больше об этих ярлыки, предоставляемые системой.
Вас также может заинтересовать этот похожий контент:
- Как отображать информацию постранично в CMD?
- Как отфильтровать вывод команды в CMD?
- Как скопировать вывод команды в CMD?