A curated list of command line apps.
Inspired by the awesome list thing.
Table of Contents
- Entertainment
- Music
- Social Media
- Video
- Movies
- Games
- Books
- Development
- Text Editors
- Frontend Development
- Mobile Development
- Database
- Devops
- Docker
- Release
- Npm
- Boilerplate
- HTTP Server
- HTTP Client
- Productivity
- Time Tracking
- Note Taking and Lists
- Finance
- Presentations
- Calendars
- Utilities
- macOS
- Terminal Sharing Utilities
- Network Utilities
- Theming and Customization
- Shell Utilities
- System Interaction Utilities
- Markdown
- Security
- Math
- Weather
- Browser Replacement
- Internet Speedtest
- Command Line Learning
- Data Manipulation
- Processors
- JSON
- YAML
- Columns
- Text
- Files and Directories
- File Managers
- Deleting, Copying, and Renaming
- Files
- File Sync/Sharing
- Directory Listing
- Directory Navigation
- Search
- Version Control
- Git
- GitHub
- Emoji
- Images
- Gif Creation
- Image Conversion
- Screensavers
- Graphics
- Just for Fun
- Emoji
- Other Awesome Lists
- License
Entertainment
- newsboat — An extendable RSS feed reader for text terminals.
Music
- cmus — Small, fast and powerful console music player.
- Instant-Music-Downloader — Instant music downloader.
- itunes-remote — Control iTunes via CLI.
- pianobar — Pandora client.
- somafm-cli — Listen to SomaFM in your terminal.
- mpd — Music Player Daemon.
- ncmpcpp — mpd client.
- moc — Console audio player for Linux/UNIX.
- musikcube — Cross-platform, terminal-based music player, audio engine, metadata indexer, and server.
- beets — Music library manager and tagger.
- spotify-tui — Spotify client.
- swaglyrics-for-spotify — Spotify lyrics.
- dzr — deezer.com player.
- radio-active — Internet radio player with 40k+ stations.
- mpvc — Music player interfacing mpv.
Video
- youtube-dl — Download videos from YouTube.com and many other video sites.
- streamlink — Extract streams from various websites to a video player of your choosing.
- mps-youtube — Youtube player.
- mpv — Superior video player.
- editly — Declarative video editing.
- yt-dlp — A
youtube-dl
fork with additional features and fixes.
Movies
- moviemon — Everything about your movies.
- movie — Get movie info or compare movies.
Games
- Dwarf Fortress — Roguelike construction and management simulation.
- Cataclysm-DDA — Turn-based survival game set in a post-apocalyptic world.
- Pokete — Pokemon-like.
Books
- epr — epub reader.
- Bible.Js CLI — Bible.
- SpeedRead — Spritz-alike speedreader.
- medium-cli — Read medium.com stories.
Chat
- WeeChat — Fast, light and extensible chat client.
- irssi — IRC chat client.
- kirc — Tiny IRC client.
Development
- legit — Generate Open Source licences as files or file headers.
- mklicense — Create a custom LICENSE file painlessly with customized info.
- rebound — Fetch Stack Overflow results on compiler error.
- foy — Lightweight general purpose task runner/build tool.
- just — Modern
make
-like command runner. - bcal — Byte CALculator for storage conversions and calculations.
- bitwise — Base conversion and bit manipulation.
- cgasm — x86 assembly documentation.
- grex — Generate regular expressions from user-provided test cases.
- gdb-dashboard — Modular visual interface for GDB.
- iola — Socket client with REST API.
- add-gitignore — Interactively generate a .gitignore for your project based on your needs.
- is-up-cli — Check if a domain is up.
- reachable — Check if a domain is up.
- loadtest — Run load tests.
- diff2html-cli — Create pretty HTML from diffs.
Text Editors
- emacs — An extensible, customizable, free/libre text editor — and more.
- vim — Vim — the ubiquitous text editor.
- neovim — Modern vim.
- kakoune — Modal editor inspired by vim.
- micro — A simple and intuitive editor.
- o — Configuration-free text editor and IDE.
- helix — Modal editor inspired by kakoune.
Frontend Development
- caniuse-cmd — Search caniuse.com about browser support of features.
- strip-css-comments-cli — Strip comments from CSS.
- viewport-list-cli — Return a list of devices and their viewports.
- surge — Publish static websites for free.
Mobile Development
- mobicon-cli — Mobile app icon generator.
- mobisplash-cli — Mobile app splash screen generator.
- deviceframe — Put device frames around your mobile/web/progressive app screenshots.
Database
- mycli — MySQL client with autocompletion and syntax highlighting.
- pgcli — Postgres client with autocompletion and syntax highlighting.
- sqlline — Shell for issuing SQL via JDBC.
- iredis — Redis client with autocompletion and syntax highlighting.
- usql — Universal SQL client with autocompletion and syntax highlighting.
Devops
- htconvert — Convert .htaccess redirects to nginx.conf redirects.
- SAWS — Supercharged AWS CLI.
- s3cmd — Fully-Featured S3 client.
- pm2 — Production Process Manager for Node.js.
- ops — Unikernel compilation and orchestration tool.
- flog — A fake log generator for log formats such as apache-common, apache error and RFC3164 syslog.
- k9s — Manage Kubernetes Clusters.
- PingMe — Send messages/alerts to multiple messaging platforms & email.
- ipfs-deploy — Deploy static websites to IPFS.
- Discharge — Deploy static websites to Amazon S3.
- updatecli — A declarative dependency management tool.
Docker
- lstags — Synchronize images across registries.
- dockly — Interactively manage containers.
- lazydocker — Simple docker/docker-compose interface.
- docker-pushrm — Push a readme to container registries.
Release
- release-it — Automate releases for Git repositories and/or npm packages. Changelog generation, GitHub/GitLab releases, etc.
- clog — A conventional changelog for the rest of us.
- np — A better
npm publish
. - release — Generate changelogs with a single command.
- semantic-release — Fully automated version management and package publishing.
Npm
- npm-name-cli — Check whether a package name is available on npm.
- npm-user-cli — Get user info of a npm user.
- npm-home — Open the npm page of the package in the current directory.
- pkg-dir-cli — Find the root directory of a npm package.
- npm-check-updates — Find newer versions of package dependencies than what your package.json allows.
- updates — Flexible npm dependency update tool.
- wipe-modules — Remove
node_modules
of inactive projects.
Boilerplate
- yo — Scaffolding tool for running Yeoman generators.
- boilr — Create projects from boilerplate templates.
- cookiecutter — Create projects from templates.
- mevn-cli — Light speed setup for MEVN (Mongo Express Vue Node) Apps.
- scaffold-static — Scaffolding utility for vanilla JS.
HTTP Server
- serve — Serve static files (https, CORS, GZIP compression, etc).
- simplehttp — Easily serve a local directory over HTTP.
- shell2http — Shell script based HTTP server.
HTTP Client
- HTTPie — A user-friendly HTTP client.
- HTTP Prompt — Interactive HTTP client featuring autocomplete and syntax highlighting.
- ain — HTTP client with a simple format to organize API endpoints.
- curlie — A curl frontend with the ease of use of HTTPie.
Productivity
- doing — Keep track of what you’re doing and track what you’ve done.
- ffscreencast — A ffmpeg screencast with video overlay and multi monitor support.
- meetup-cli — Meetup.com client.
- NeoMutt — Email client.
- terjira — Jira client.
- ipt — Pivotal Tracker client.
- uber-cli — Uber client.
- Buku — Browser-independent bookmark manager.
- papis — Extensible document and bibliography manager.
- pubs — Scientific bibliography manager.
- fjira — Fuzzy finder and TUI application for Jira.
Time Tracking
- Timetrap — Simple timetracker.
- moro — Simple tool for tracking work hours.
- Timewarrior — Utility with simple stopwatch, calendar-based backfill and flexible reporting.
- Watson — Generate reports for clients and manage your time.
- utt — Simple time tracking tool.
- Bartib — Easy to use time tracking tool.
- arttime — Featureful timer with native desktop notifications and curated ASCII art.
Note Taking and Lists
- idea — A lightweight tool for keeping ideas in a safe place quick and easy.
- geeknote — Evernote client.
- Taskwarrior — Manage your TODO list.
- Terminal velocity — A fast note-taking app.
- eureka — Input and store your ideas.
- sncli — Simplenote client.
- td-cli — A TODO manager to organize and manage your TODO’s across multiple projects.
- taskbook — Tasks, boards & notes for the command-line habitat.
- dnote — A interactive, multi-device notebook.
- nb — A note‑taking, bookmarking, archiving, and knowledge base application.
- obs — Interact with your Obsidian vault.
Finance
See plaintextaccounting.org for a great overview of relevant tools.
- ledger — Powerful, double-entry accounting system.
- hledger — Robust, fast, intuitive plain text accounting tool with CLI, TUI and web interfaces.
- moeda — Foreign exchange rates and currency conversion.
- cash-cli — Convert Currency Rates.
- cointop — Track cryptocurrencies.
- ticker — Stock ticker.
Presentations
- WOPR — A simple markup language for creating rich terminal reports, presentations and infographics.
- decktape — PDF exporter for HTML presentations.
- mdp — A markdown presentation tool.
- sent — Simple plaintext presentation tool.
- slides — A markdown presentation tool.
Calendars
- calcurse — Calendar and scheduling.
- gcalcli — Google calendar client.
- khal — CalDAV ready CLI and TUI calendar.
- vdirsyncer — CalDAV sync.
- remind — A sophisticated calendar and alarm program.
- birthday — Know when a friend’s birthday is coming.
Utilities
- aria2 — HTTP, FTP, SFTP, BitTorrent and Metalink download utility.
- bitly-client — Bitly client.
- deadlink — Find dead links in files.
- crawley — Unix-way web crawler.
- kill-tabs — Kill all Chrome tabs.
- alex — Catch insensitive, inconsiderate writing.
- clevercli — Collection of ChatGPT powered utilities.
macOS
- open-pip-cli — Watch videos in picture-in-picture player.
- osx-wifi-cli — Manage wifi connections.
- active-win-cli — Get the title/id/etc of the active window.
- stronghold — Configure security settings from the terminal.
- dark-mode — Toggle dark mode.
Terminal Sharing Utilities
- gotty — Share your terminal as a web application.
- localtunnel — Expose your localhost to the world for easy testing and sharing.
- mosh — Remote SSH client that allows roaming with intermittent connectivity.
- ngrok — Secure introspectable tunnels to localhost.
- tmate — Instant terminal (tmux) sharing.
- warp — Secure and simple terminal sharing.
- OverTime — Time-overlap tables for remote teams.
Network Utilities
- get-port-cli — Get an available port.
- is-reachable-cli — Check if hostnames are reachable or not.
- acmetool — Automatic certificate acquisition for ACME (Let’s Encrypt).
- certificate-ripper — Extract server certificates.
- neoss — User-friendly and detailed socket statistics.
Theming and Customization
- splash-cli — Beautiful wallpapers from Unsplash.
- wallpaper-cli — Get or set the desktop wallpaper.
- themer — Generate personalized themes for your editor, terminal, wallpaper, Slack, and more.
- JackPaper — Set images from Unsplash as wallpaper.
- QuickWall — Directly set wallpapers from Unsplash.
- oh-my-posh — Prompt theme engine.
Shell Utilities
- has — Checks for the presence of various commands and their versions on the path.
- Ultimate Plumber — Write Linux pipes with live previews.
- fkill-cli — Simple cross-platform process killer.
- task-spooler — Queue jobs for linear execution.
- undollar — Strip the ‘$’ preceding copy-pasted terminal commands.
- pipe_exec — Run executables from stdin, pipes and ttys without creating a temporary file.
System Interaction Utilities
- fastfetch — System information tool.
- battery-level-cli — Get current battery level.
- brightness-cli — Change screen brightness (windows).
- yank — Yank terminal output to clipboard.
- screensaver — Start the screensaver.
- google-font-installer — Download and install Google Web Fonts on your local machine.
- glances — System monitoring tool.
- tiptop — System monitor.
- gzip-size-cli — Get the gzipped size of a file.
Markdown
- DocToc — Generates table of contents for markdown files.
- grip — Preview markdown files as GitHub would render them.
- mdv — Styled terminal markdown viewer.
- glow — Styled markdown rendering.
- gtree — Use markdown to generate directory trees and the directories itself.
Security
- pass — Password manager.
- gopass — Fully-featured password manager.
- xiringuito — SSH-based VPN.
- hasha-cli — Get the hash of text or stdin.
- ots — Share secrets with others via a one-time URL.
Math
- mdlt — Do quick math right from the command line.
- Qalculate — Calculate non-trivial math expressions. Unit conversions, symbolic calculations and more.
Weather
- wttr.in
- wego
- weather-cli
Browser Replacement
- s — Open a web search in your terminal.
- hget — Render websites in plain text from your terminal.
- mapscii — Terminal Map Viewer.
- nasa-cli — Download NASA Picture of the Day.
- getnews.tech — Fetch news headlines from various news outlets.
- trino — Translation of words and phrases.
- translate-shell — Google Translate interface.
Internet Speedtest
- speedtest-net — Test internet connection speed and ping using speedtest.net.
- speed-test —
speedtest-net
wrapper with different UI. - speedtest-cli — Test internet bandwidth using speedtest.net.
- bandwhich — Track bandwidth utilization by process.
Command Line Learning
- cmdchallenge — Presents small shell challenge with user submitted solutions.
- explainshell — Type a snippet to see the help text for each argument.
- howdoi — Instant coding answers.
- how2 — Node.js implementation of howdoi.
- The Fuck — Magnificent app which corrects your previous console command.
- tldr — Simplified and community-driven man pages.
- Wat — Instant, central, community-built docs.
- teachcode — Guide for the earliest lessons of coding.
- navi — Interactive cheatsheet tool.
- yai — AI powered terminal assistant.
Data Manipulation
- visidata — Spreadsheet multitool for data discovery and arrangement.
Processors
- jq — JSON processor.
- yq — YAML processor.
- dasel — JSON/YAML/TOML/XML processor (like jq/yq).
- yaml-cli — Query/update YAML.
- ramda-cli — Process data with functional pipelines.
- xq — XML and HTML beautifier and content extractor.
JSON
- jp — JSON parser.
- fx — Command-line JSON viewer.
- vj — Makes JSON human readable.
- underscore-cli — Utility-belt for hacking JSON and Javascript.
- strip-json-comments-cli — Strip comments from JSON.
- GROQ – JSON processor with queries and projections.
- gron — Make JSON greppable.
YAML
- dyff — YAML diff tool.
Columns
- parse-columns-cli — Parse text columns to JSON.
- q — Execution of SQL-like queries on CSV/TSV/tabular text file.
Text
- figlet — Creates large text out of ASCII characters.
- stegcloak — Hide secrets with invisible characters in plain text securely.
Files and Directories
File Managers
- ranger — A console file manager with VI key bindings.
- midnight-commander — A feature rich visual file manager.
- Vifm — VI influenced file manager.
- nnn — File browser and disk usage analyzer with excellent desktop integration.
- lf — Fast, extensively customizable file manager.
- clifm — The command line file manager.
- far2l — Orthodox file manager.
- yazi — Blazing fast file manager.
Deleting, Copying, and Renaming
- trash-cli — Move files and directories to the trash.
- empty-trash-cli — Empty the trash.
- del-cli — Delete files and folders.
- cpy-cli — Copies files.
- rename-cli — Rename files quickly.
- renameutils — Mass renaming in your editor.
- diskonaut — Disk space navigator.
Files
- chokidar-cli — CLI to watch file system changes.
- file-type-cli — Detect the file type of a file or stdin.
- bat — A cat clone with syntax highlighting.
- NCDu — A disk usage analyzer with an ncurses interface.
- unix-permissions — Swiss Army knife for Unix permissions.
- transmission-cli — Torrent client for your command line.
- webtorrent-cli – Streaming torrent client.
- entr — Run an arbitrary command when files change.
- organize-cli — Organize your files automatically.
- organize-rt — organize-cli in Rust with more customization.
- RecoverPy — Recover overwritten or deleted files.
File Sync/Sharing
- rclone — Sync files with various cloud providers.
- ffsend — Quick file share.
- share-cli — Share files with your local network.
- google-drive-upload — Upload/sync with Google Drive.
- gdrive-downloader — Download files/folders from Google Drive.
- portal — Send files between computers.
- shbin — Turn a Github repo into a pastebin.
- sharing — Send and receive files on your mobile device.
- ncp — Transfer files and folders, to and from NFS servers.
Directory Listing
- alder — Minimal
tree
with colors. - eza — Improved version of
ls
. - tre —
tree
with git awareness, editor aliasing, and more. - ll —
ls
with git status. - lsd —
ls
with many extra features.
Directory Navigation
- autojump — A cd command that learns — easily navigate directories from the command line.
- pm — The easy way to switch to your projects on the shell.
- z — z is the new j, yo.
- PathPicker — After parsing the output from a command, PathPicker presents you with a nice UI to select which files you’re interested in.
- fz — Seamless fuzzy tab completion for z.
- goto — Directory aliases for the shell with autocomplete.
- z.lua —
cd
command that learns your habits. - zoxide — Fast directory jumper in Rust.
- tere — A faster alternative to using cd and ls.
Search
- happyfinder — (another) Fuzzy file finder for the command line.
- find-up-cli — Find a file by walking up parent directories.
- ripgrep — A line-oriented search tool that recursively searches your current directory for a regex pattern.
- fzf — A general purpose command-line fuzzy finder, can be used with any list: files/directories, command history, processes, hostnames, bookmarks, git commits, etc.
- fselect — Find files with SQL-like queries.
- fd — A simple, fast and user-friendly alternative to
find
. - broot — Fuzzy finder similar to fzf, but with space usage visualization.
- rare — Real-time regex aggregation and analysis.
- skim — A general fuzzy finder written in rust, similar to fzf.
- ast-grep — A tool for code structural search, linting and rewriting.
Version Control
- SnowFS — A fast, scalable version control system for binaries.
Git
- git commander — Interactive git tool.
- git-stats — A local GitHub-like contributions calendar.
- dev-time — Get the current local time of a GitHub user.
- tig — Text-mode interface for git.
- grv — Text-mode interface for git with customisable vi bindings.
- git-standup — Recall what you did on the last working day.
- git-secret — Store your private data inside a git repository.
- gitlab-cli — Create GitLab merge requests.
- git-extras — Git utilities.
- gita — Manage multiple git repos side by side.
- readme-md-generator — Interactively generate README.md files.
- semantic-git-commit-cli — Ensure semantic commits messages.
- import-github-labels-cli — Sync labels between Github repos.
- git-all-branches — Improved
git branch -a
. - czg — Interactively generate standardized commit messages.
- shallow-backup — Git integrated backup tool.
- Lazygit — Simple TUI for git commands.
GitHub
- CLI GitHub — Fancy GitHub client.
- hub — Make git easier to use with GitHub.
- git-labelmaker — Edit GitHub labels.
Emoji
- gitmoji-cli — Use emoji in commit messages.
- gitmoji-changelog — Generate gitmoji changelogs.
Images
- SVGO — Optimize SVG files.
- carbon-now-cli — Generate beautiful images of your code.
- imgur-uploader-cli — Upload images to imgur.
- pageres-cli — Capture website screenshots.
Gif Creation
- gifgen — Simple high quality GIF encoding.
- gifsicle — Create, manipulate, and optimize GIF images and animations.
- ttygif — Convert terminal recordings to animated gifs.
- ttygif — ttyrec to gif.
- ttystudio — A terminal-to-gif recorder minus the headaches.
- asciinema — Terminal session recorder and companion app for asciinema.org.
- givegif — GIFs on the command line.
Image Conversion
- imagemagick — Gold standard for anything images.
- imgp — Blazing fast batch image resizer and rotator.
- korkut — Quick and simple image processing.
Screensavers
- cmatrix — Scrolling ‘Matrix’-like screen.
- pipes.sh — Random pipes that grow across the screen.
- YuleLog — Christmas Yule Log fireplace.
- cli-fireplace — Digital fireplace.
Graphics
- cli-mandelbrot — Traverse the Mandelbrot fractal.
- sparkly-cli — Generate sparklines ▁▂▃▅▂▇..
- pastel — Generate, analyze, convert and manipulate colors.
- lowcharts — Draw low-resolution graphs.
Just for Fun
- quote-cli — Get a random quote or the quote of the day in your CLI.
- fortune — Shows a random fortune.
- ponysay — Pony rewrite of cowsay.
- yosay — Like cowsay, but for yeoman.
- lolcat — Outputs text in rainbow colors.
- text-meme — Generate text memes.
- dankcli — Add text to meme image templates.
- ricksay — Quotes from Rick and Morty.
Emoji
- emoj — Find relevant emoji from text on the command-line.
- emoji-finder — Quickly find and copy emoji to the clipboard via the command-line.
- oji — Interactive text emoji maker.
Other Awesome Lists
- awesome-git-addons — Addons that extend git cli.
- awesome-shell – Command-line utilities and frameworks.
- terminals-are-sexy – Terminal frameworks, plugins & resources.
- awesome-zsh-plugins – ZSH frameworks, plugins, tutorials & themes.
- awesome-nodejs clis – Node.js modules and resources.
License
To the extent possible under law, Adam Garrett-Harris has waived all copyright and related or neighboring rights to this work.
Ещё совсем недавно, в эпоху первых персональных компьютеров на базе архитектуры IBM PC, громоздких ЭЛТ-мониторов и шумных дисководов, интерпретатор командной строки был ключевой составляющей едва ли не всех программных платформ того времени. С развитием графических сред востребованность этого инструмента среди рядовых пользователей практически сошла на нет, а сама консоль осталась уделом лишь администраторов вычислительных систем да IT-гиков, не понаслышке знающих обо всех её преимуществах. Мы сочли такое положение дел несправедливым и из почти трёхсот поддерживаемых CMD-интерпретатором Windows команд выбрали двадцать тех, что могут пригодиться всем пользователям ПК.
Для доступа к командной строке Windows достаточно щёлкнуть по кнопке «Пуск» правой клавишей мыши и выбрать соответствующий пункт меню либо воспользоваться комбинацией клавиш «Win+R»
⇡#Диагностика компьютера
Systeminfo. Позволяет получить подробную информацию о конфигурации компьютера и установленной на нём операционной системе, включая сведения об изготовителе ПК, процессоре, объёме оперативной памяти, сетевом адаптере, версии BIOS/UEFI, поддержке технологий виртуализации, дате инсталляции ОС и прочие данные.
Mdsched. Системный инструмент Memory Diagnostic Tool, позволяющий проверить оперативную память компьютера на наличие ошибок и сбоев в работе. Пригодится при поиске технических неисправностей ПК и причин возникновения критических ошибок Windows, сопровождающихся «синими экранами смерти» (Blue Screen of Death, BSoD).
Powercfg. Команда, благодаря которой можно из консоли просматривать и конфигурировать настройки управления питанием компьютера и не только. Например, ввод данной инструкции с ключом /energy выдаст отчёт об эффективности энергопотребления ПК и имеющихся проблемах с энергосбережением, с параметром /batteryreport — сведения об использовании батареи ноутбука и оставшейся ёмкости аккумулятора, а с опцией /requests — отобразит на экране приложения, системные процессы и драйверы, удерживающие ОС от перехода в сон или режим гибернации. Отличный инструмент для поиска и решения различных проблем с энергосбережением мобильного устройства.
Verifier. Диагностическое средство Driver Verifier, с помощью которого можно выявить конфликты в работе драйверов, а также получить сведения о неподписанных и требующих дополнительной проверки драйверах. Пригодится для поиска проблемных драйверов, которые часто служат причиной нестабильной работы Windows.
Msconfig. Системная утилита Microsoft System Configuration Utility, управляющая автозапуском приложений, загрузкой служб и исполняемых файлов Windows, а также различными настройками операционной системы. Позволяет запустить ОС в режиме диагностики с базовым набором драйверов и служб.
⇡#Восстановление системных файлов и данных
Sfc. Инструмент System File Checker для проверки целостности системных модулей, библиотек и ключевых компонентов Windows, а также их восстановления в случае обнаружения проблемных файлов.
Wbadmin. Позволяет выполнять резервное копирование и восстановление операционной системы, томов, файлов, папок и приложений из командной строки. Для создания резервных копий следует ввести в консоли wbadmin start backup, для запуска процедуры восстановления данных — wbadmin start recovery. Проще не бывает.
Recover. Восстанавливает данные с повреждённых носителей. Утилита выполняет посекторное копирование указанных файлов и извлекает сохранившиеся данные. При этом «битые» секторы игнорируются. Метод элементарный и при наличии незначительного числа сбойных секторов на диске вполне эффективный, особенно по части восстановления файлов с простой внутренней структурой (например, текстовых документов).
⇡#Работа с дисками
Fsutil. Консольный инструмент для просмотра сведений об используемых на диске ПК файловых системах, быстрой оценки занятого пространства на накопителе и выявления проблемных мест, создания жёстких ссылок на файлы, управления дисковыми квотами и решения прочих задач. К примеру, команда fsutil fsinfo volumeinfo c: отображает сведения о системном диске и задействованных томах, а fsutil volume allocationreport c: позволяет узнать, сколько места занимают служебные файлы и метаданные файловой системы NTFS, теневые копии (точки восстановления) Windows, сжатые, зашифрованные и разреженные файлы.
Chkdsk. Позволяет проводить диагностику файловой системы и устранять обнаруженные ошибки. Пригодится для восстановления работы компьютера после сбоев и внезапных перезагрузок, поиска повреждённых секторов, устранения проблем со структурой файловых систем FAT, FAT32 и NTFS.
Defrag. Утилита для дефрагментации жёстких дисков. Программа упорядочивает и объединяет фрагментированные данные, тем самым повышая эффективность работы HDD (для твердотельных накопителей SSD проблема фрагментации файлов неактуальна). Defrag позволяет оптимизировать как все данные на диске, так и только загрузочные файлы. Поддерживается работа с отдельными разделами, разным системным приоритетом и в фоновом режиме. Перед началом использования приложения рекомендуется провести оценку необходимости дефрагментации того или иного диска. Делается это с помощью ключа /a, запускающего анализ указанного тома.
Certutil. Программа командной строки, которая позволяет управлять службами сертификации Windows и не только. Рядовому пользователю certutil может пригодиться в качестве инструмента для кодирования и декодирования файлов с использованием стандарта Base64 (параметры /encode и /decode), расшифровки кодов ошибок Windows (ключ /error) и вычисления хешей (контрольных сумм) файлов (опция /hashfile). Последняя функция может быть использована для проверки целостности и подлинности файлов, например ISO-образов операционных систем или дистрибутивов программ.
Cipher. Предназначена для управления шифрованием данных на уровне файловой системы NTFS и защиты конфиденциальной информации от несанкционированного доступа. Интересная особенностью утилиты — активируемая ключом /w функция затирания следов удалённых файлов с целью исключения их последующего восстановления средствами специализированного ПО. Такая возможность может пригодиться, к примеру, для предпродажной подготовки ПК и гарантированной вычистки хранившихся на нём данных.
⇡#Управление системными процессами
Tasklist и taskkill. Команды для управления запущенными в системе процессами. Первая отображает список выполняющихся в данный момент приложений и служб, вторая — позволяет завершать их выполнение и нередко используется IT-специалистами при написании скриптов для автоматизации административных задач. Что касается домашних пользователей, то для них знание упомянутых инструкций тоже не будет лишним. Например, на случай непредвиденных сбоев графического интерфейса Windows, когда доступной остаётся только консоль. В таких ситуациях tasklist и taskkill помогут выгрузить из памяти ПК проблемные процессы.
Shutdown. Команда, позволяющая принудительно завершить все процессы для последующей перезагрузки ОС либо выключения компьютера. Поддерживает отложенное выключение/перезагрузку по таймеру, перевод ПК в режим гибернации и прочие функции, для ознакомления с полным списком которых следует использовать параметр /?.
⇡#Работа с сетью
Ping. Утилита для диагностики сетевого соединения с тем или иным сервером. Программа отправляет запросы указанному узлу сети, фиксирует поступающие ответы, временные задержки по маршруту и частоту потери пакетов. Руководствуясь данными сведениями, можно оценить загруженность канала передачи данных и качество связи с интернет-ресурсом. Также команда ping может использоваться для определения IP-адреса сайта по его доменному имени и мониторинга состояния удалённых хостов.
Tracert. Консольное приложение для трассировки маршрута до заданного сервера в интернете. Программа выполняет отправку тестового пакета указанному узлу сети и отображает информацию обо всех промежуточных маршрутизаторах, через которые прошёл пакет на пути к запрошенному ресурсу, а также время отклика каждого из них. Это позволяет оценить, насколько «длинный» путь прошёл пакет и на каком участке возникают наибольшие задержки, связанные с передачей данных. Tracert помогает определить проблемные участки сети и установить места потери или задержки пакетов.
Ipconfig. Выводит сведения о конфигурации используемых Windows сетевых адаптерах (в том числе виртуальных). Позволяет узнавать текущий IP-адрес компьютера, просматривать идентификаторы MAC сетевых устройств, а также очищать DNS-кеш. Последняя функция может быть полезна при некорректной работе службы доменных имён Windows и сбоях при доступе к веб-ресурсам.
Netstat. Служит для получения сведений обо всех активных сетевых соединениях, просмотра таблиц IP-маршрутизации и статистики по протоколам. С помощью команды netstat можно получить представление о том, какой установленный на компьютере софт проявляет излишнюю сетевую активность, какой порт использует определенный системный процесс, а также просмотреть расширенную информацию о сетевых интерфейсах.
⇡#Удаление вредоносного ПО
Mrt. Утилита Malicious Removal Tool для сканирования компьютера на предмет наличия наиболее распространённого зловредного ПО. Находит и удаляет угрозы, а также отменяет внесённые ими изменения. На выбор доступны три варианта проверки — быстрая, полная и выборочная. Поддерживается работа в фоновом режиме. Malicious Removal Tool регулярно обновляется через Windows Update и может использоваться в качестве дополнения к установленным в системе защитным решениям.
⇡#Заключение
Как ни крути, даже в современных реалиях перечисленные консольные утилиты — неплохое подспорье для повседневной работы за компьютером. И пусть многим из них уже не один десяток лет, они до сих пор не теряют своей актуальности и могут сослужить добрую службу всем пользователям Windows — даже тем, кто редко выходит за рамки графического интерфейса операционной системы. Готовы поспорить с данным утверждением или дополнить обзор ценными замечаниями? Оставляйте свои отзывы в комментариях ниже — мы вас слушаем очень внимательно.
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
Время на прочтение18 мин
Количество просмотров448K
Часто путают терминал и шелл. В тех же *nix есть шеллы (bash, csh, zsh, …) и терминалы (konsole/guake/yaquake/tilda и т.д. и т.п.) Для мира Windows общеизвестный терминал только один – стандартное консольное окошко, которое часто ошибочно называют «cmd.exe». И мало кто знает о существовании множества других эмуляторов терминала. Известных шеллов больше, их целых два: cmd.exe и powershell.exe. И хотя есть как минимум три порта bash (MinGW, CygWin, GIT) многие юниксоиды предпочитают ругать cmd.exe.
Меня не устраивал ни один из найденных альтернативных терминалов (как в 2009-м, когда я начал работу над ConEmu, так и сейчас). Казалось бы требований немного, вот основные:
- работа с консольными приложениями, использующими консольное API: например Far просто не запустится в mintty или PowerShell ISE;
- визуальные улучшения вроде табов (вкладок) и split-screen;
- быстрая и удобная работа с пометкой/копированием/вставкой текста;
- должен быть похож на терминал, а не на рождественскую игрушку с кучей графических свистелок и сопелок которые даже отключить нельзя;
- не должен зависеть от сторонних библиотек типа .Net, Qt, VC/GCC redist и прочих устанавливаемых пакетов, занимать по возможности мало места и не требовать инсталляции на новую машину;
- наконец, мне, как приверженцу Far Manager, хотелось интеграции с этим файловым менеджером — редакторы и вьюверы в табах, drag&drop файлов между Far и другими приложениями и т.п.
Отвечает ли этим требованиям ConEmu? Терминал (Free & OpenSource) пишется программистом «для себя» с учетом пожеланий других пользователей программы. В минимально-необходимой комплектации занимает около 2 мегабайт, что конечно больше нескольких килобайт, но все-таки пренебрежимо мало. Установки не требует, может быть портабельным если рядом с ConEmu.exe создать файлик ConEmu.xml. От сторонних библиотек не зависит.
Обзор возможностей
Рассказать «про все» в рамках одной статьи невозможно, поэтому здесь описаны только некоторые функции, на мой взгляд наиболее интересные большинству пользователей.
Наглядность. В табах могут отображается не только заголовки консолей, но и дополнительная информация вроде активного процесса, прогресса архивации, chkdsk, powershell, копирования в Far Manager. Например, не нужно переключаться в таб чтобы узнать закончилась ли компиляция проекта, запущенная в этом табе. В статусной строке можно настроить список отображаемых «колонок» вроде координат видимой области и курсора, PID активного процесса в консоли, статусов CAPS/NUM/SCRL, коэффициента прозрачности и др. Многие колонки кликабельны, например можно щелкнуть по «колонке» с прозрачностью для быстрого ее изменения.
Минималистичность. Интерфейс (самого терминала, а не окна настроек) содержит всего два дополнительных графических элемента — табы и статусная строка. Но и их можно отключить, если вы предпочитаете «чистую» консоль.
Портабельность. Настройки можно хранить в файле ConEmu.xml созданном в папке программы.
Работа с текстом. Поддерживаются два стиля пометки текста — обычный для текстовых редакторов и «прямоугольный» как в обычной консоли. Пометка и вставка текста удобна как с клавиатурой так и с мышкой.
Quake/Tilda. Поддержка режима игровых консолей. Терминал умеет «выезжать» при нажатии выбранной комбинации клавиш (по умолчанию Ctrl+~) и прятаться при потере фокуса или нажатии Esc.
Запуск любых приложений. Пользователь может настроить любое количество предопределенных задач (Task) для быстрого запуска в ConEmu или из списка переходов (jump list) панели задач Windows 7. Задача может запускать один или несколько процессов или шеллов (powershell, SDK, компиляция проектов и т.д.) Можно даже запускать простые GUI приложения вроде PuTTY, TaskManager, GVim.
Работа с цветом. Несколько предопределенных палитр (например Solarized, PowerShell, xterm, и др.), возможность настройки своих цветов консоли, поддержка управляющих кодов ANSI X3.64, 24-битный цвет при работе в Far Manager.
Интеграция. Умеет добавлять себя (и выбранные команды-шеллы) в контекстное меню Windows Explorer. Умеет перехватывать создание стандартного терминала Windows.
Гибкая настройка и управление. В диалоге Settings можно найти настройки на любой вкус и цвет. Практически любому действию можно назначить комбинацию клавиш, а простейший макро-язык позволяет выполнять нестандартные действия.
Немного истории
В начале был Zoin и его анонс Эмулятор консоли на форуме Far Manager. Не знаю, планировал ли автор развитие эмулятора, но в 2009-м году появилось несколько форков предлагающих разные улучшения: вертикальную прокрутку, табы для редакторов и вьюверов Far, отображение контекстного меню для файлов по правой кнопке и перетаскивание файлов между консольным Far и другими приложениями. Идея мне понравилась и, объединив все «патчи», я стал развивать эмулятор добавляя новые возможности и исправляя баги. На тот момент было несколько альтернатив (самые известные – Console2 из бесплатных и TakeCommand из платных), но ни одна у меня не прижилась. «Пользуюсь фаром 15 лет» поэтому в первую очередь нужна была оболочка для него.
Установка
ConEmu можно скачать с оф.сайта в двух вариантах: инсталлятор и 7z архив. Разницы между ними в общем-то никакой, просто инсталлятор умеет создавать ярлыки и позволяет отключить не нужные части продукта. Рекомендую пробовать последние Alpha-версии, т.к. с момента выхода последнего Stable прошло много времени, исправлено много багов, появилось много новых возможностей.
Для адептов bash на зеркале проекта есть специально подготовленные пакеты для MinGW. Их достаточно развернуть в папку MinGW чтобы в ConEmu сразу запускался «sh.exe –login –i».
Пользователям Far Manager: для полноценной работы в Far должны быть загружены плагины ConEmu. Убедитесь, что при использовании инсталлятора плагины устанавливаются в подпапку Plugins вашего каталога с Far.exe. Обратите внимание, что инсталлятор позволяет выбрать папку установки как для самого ConEmu так и для плагинов к Far.
Пользователям антивирусов: инсталлятор как и сам ConEmu троянов не содержит, как говорится, «исходники открыты».
При первом запуске программа спросит где вы предпочитаете хранить настройки — в файле ConEmu.xml или в реестре.
Теперь можно запускать ConEmu.exe или ConEmu64.exe (разница между 32-битной и 64-битной версией отсутствует).
По умолчанию ConEmu при старте запускает один таб с «предпочитаемым» шеллом:
- Far.exe (если найден рядом с ConEmu.exe);
- cmd.exe или tcc.exe (если установлен TakeCommand или TCC/LE);
- sh.exe (если ConEmu установлен в режиме «MinGW»).
Первый запуск
При первом запуске отображается диалог «Fast configuration», он содержит несколько основных опций влияющих на работу программы.
Install keyboard hooks. ConEmu умеет отбирать у системы определенные комбинации клавиш (когда в фокусе окно программы). Например Win+цифра можно переключаться на таб с определенным номером. Практически все комбинации клавиш с ConEmu настраиваются или отключаются (Win+Alt+K), но если вам вообще не нужен перехват комбинаций с модификатором Win – можете отключить флажок.
Inject ConEmuHk.dll. Для многих возможностей ConEmu требуется перехват определенных функций WinAPI. Библиотека ConEmuHk.dll (или ее 64-битная версия ConEmuHk64.dll) внедряется в запускаемые во вкладках ConEmu процессы и перехватывает функции через разделы импорта. К сожалению, перехватываемых функций становится все больше и соответственно увеличивается время перехвата. И хотя в цифрах это лишь миллисекунды, некоторые пользователи жалуются на замедление выполнения команд в ConEmu. Если вы из них – отключите этот флажок. В планах попробовать перейти на перехват в стиле detours, возможно это ускорит процесс.
Enable automatic updates. Думаю, в переводе не нуждается. Обновление выполняется тем же способом, что и при установке. То есть если вы установили ConEmu распаковкой 7z–архива, то для обновления потребуется архиватор (7–zip или WinRar).
Настройка
В принципе, ConEmu работает сразу и настройки не требует, но у любого пользователя/админа/программиста есть свои предпочтения и специфика работы.
Полный диалог настроек открывается либо с клавиатуры комбинацией Win+Alt+P либо вызовом из системного меню ConEmu пункта «Settings».
Можно заблудиться в куче вкладок и настроек, но все настройки сгруппированы по смыслу, а для неочевидных опций отображаются всплывающие подсказки при наведении курсора мышки. Наверное не стоит рассказывать в этой статье про каждую опцию, поэтому пробежимся только по основным и наиболее интересным.
Выбор шелла
Итак, скорее всего вам нужно будет настроить свой список шеллов, как запускаемых при старте, так и быстро доступных.
Идем на вкладку «Startup». Если нужно запускать только один шелл — все просто: выбираем «Command line» и вводим требуемое, например:
C:\MinGW\msys\1.0\bin\sh.exe --login -i
В принципе, в качестве шелла можно запускать любое консольное приложение или командный файл для cmd, python, и т.п. Можно даже запускать некоторые GUI приложения вроде PuTTY, notepad, gvim и т.п.
Если при старте нужно запустить сразу несколько шеллов — идем на вкладку «Tasks» (задачи) и начинается магия. Диалог настроек и так перегружен, поэтому задачи создаются «в текстовом виде».
>C:\MinGW\msys\1.0\bin\sh.exe --login -i
cmd /k set ConEmuHooks=OFF & "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" -new_console:sV -new_console:t:SDK & set ConEmuHooks=
cmd -new_console:s1TH
*powershell -new_console:s2TH -new_console:t:PowerShell
Называем его «Shells», возвращаемся на вкладку «Startup» и выбираем «Specified named task».
В итоге при старте ConEmu получаем 4 консоли в сетке 2×2 причем активной будет вкладка sh.exe, а powershell.exe запускается в режиме админа (после подтверждения UAC) и его вкладка получает фиксированное название «PowerShell».
Параметр «-new_console» специальный параметр, обрабатывающийся в ConEmu и вырезающийся из командной строки при запуске программы. О нем можно писать много и долго, а пока отошлю на сайт проекта.
Запуск новых консолей
Если отображается панель кнопок (toolbar) то кнопка [+] открывает диалог запуска новой консоли. Здесь можно указать любую программу с параметрами, выбрать строку запуска из истории или выбрать заранее созданную задачу. Здесь можно создать «split», запустив новую консоль на одном экране с текущей. «Run as administrator» запускает новую консоль в режиме администратора. Флажок «New window» запустит новый процесс ConEmu.exe с выбранной командой.
На панели кнопок у кнопки [+] есть «стрелка» для открытия меню. Это же меню можно открыть комбинацией Win+N. Здесь отображаются команды из истории и заранее созданные задачи. Правый щелчок мышкой по пункту с задачей открывает меню второго уровня со списком команд этой задачи – так можно посмотреть ее содержимое или запустить только одну из команд задачи.
Можно создать ярлык и запускать новую консоль в уже запущенной копии ConEmu. Например, создайте на рабочем столе ярлык для запуска Far Manager (считаем что Far и ConEmu установлены в папку C:\Far)
"C:\Far\ConEmu.exe" /single /cmd "C:\Far\Far.exe"
Запуск из списка переходов (Jump List) панели задач Windows 7. Отсюда удобно запускать наиболее употребительные задачи, например запуск компиляции ваших проектов.
Быстрый запуск по комбинации клавиш. Если ярлыков (хоткей можно задать в свойствах ярлыка) и задач (Win+N и цифра номера задачи) не хватает – можно создать макрос запуска любой команды. Откройте вкладку «Keys & Macro» диалога настройки (Win+Alt+K), выберите один из «Macro NN» и введите в поле «GUI Macro» что-то вроде:
shell("",@"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe")
Поддерживаются два синтаксиса строк: C-string где используются \r\n\t\a\e\"\\
, и Verbatim-string вроде @"app.exe ""C:\My Documents\File.txt"""
.
Из командной строки шелла, запущенного во вкладке ConEmu можно запустить новую вкладку с помощью специального параметра -new_console. Его опции позволяют запускать вкладки в режиме администратора, под другим пользователем, включать и отключать подтверждение закрытия после завершения команды, запускать вкладки «в фоне», разбить активную консоль вертикально или горизонтально (split-screen).
cmd /c dir /s c:\ -new_console:bc
или использовать cmd-файл, включенный в поставку ConEmu
csudo dism.exe /online /enable-feature /featurename:NetFX3 /All /Source:D:\sources\sxs /LimitAccess
В контекстном меню таба (правый клик на табе или Shift+правый клик в консоли) есть пункт «Duplicate root». Он создает копию шелла в новой вкладке. Например в текущей вкладке cmd вы запустили компиляцию проекта, при вызове «Duplicate root» будет создана новая вкладка с тем же текущим путем, что был до запуска компиляции, и с теми же переменными окружения.
Аналогично действуют комбинации клавиш Ctrl+Shift+O и Ctrl+Shift+E, но они создают копию шелла, разбивая активную консоль вертикально или горизонтально (split-screen).
Пометка, копирование и вставка текста
Настроек на вкладках «Mark & Paste» и «Controls» много. Расскажу об умолчаниях.
Поддерживается два типа пометки текста:
- Text selection — стандарт для текстовых редакторов;
- Block selection — прямоугольные блоки, как в обычной консоли.
Варианты для начала пометки в стиле «Text selection»: Shift+СтрелкаВлево, Shift+СтрелкаВправо или удерживая ЛевыйShift начните пометку мышкой (drag с зажатой левой кнопкой мышки).
Варианты для начала пометки в стиле «Block selection»: Shift+СтрелкаВверх, Shift+СтрелкаВниз или удерживая ЛевыйAlt начните пометку мышкой (drag с зажатой левой кнопкой мышки).
Примечание: при работе в Far Manager Shift+Стрелка обрабатываются в Far а не в ConEmu.
Копирование в буфер обмена помеченного блока с клавиатуры: Ctrl+C или Enter. Нажатие Esc отменяет пометку.
При пометке текста мышкой копирование выполняется сразу при отпускании левой кнопки мышки.
Вставка текста из буфера обмена
Ctrl+V вставляет только первую строку из буфера обмена. Почему только первую? Чаще всего в терминале запущен шелл и было бы обидно, если команда начнет выполняться до того как вы проведете ревизию того, что вставилось в консоль.
Shift+Ins и щелчок правой кнопки мышки вставляет все строки из буфера обмена.
Выбор и вставка путей к файлам и папкам
Комбинации Ctrl+Shift+D и Ctrl+Shift+F открывают стандартные Windows-диалоги выбора пути к папке или файлу и вставляют выбранный путь в консоль.
Бонус в командной строке
При щелчке левой кнопкой мышки в командной строке ConEmu пытается переместить курсор в позицию щелчка. А Ctrl+BackSpace удаляет слово слева от курсора.
Гиперссылки и ошибки компиляции
ConEmu умеет открывать гиперссылки в браузере по умолчанию (ShellExecute) а ссылки на ошибки компиляции в редакторе. Удерживая ЛевыйCtrl щелкните левой кнопкой мышки по гиперссылке www...
или по файлу с ошибкой test.c(50): error: ...
.
Шрифт
Вкладка «Main». Шрифт можно выбрать любой: моноширный или пропорциональный, растровый или векторный, с включенным сглаживанием или отключенным (Clear Type, Standard, None). Пропорциональный шрифт в консоли смотрится несколько странно, но если хочется – то можно отключить флажок «Monospace».
Хочется отметить также то, что ConEmu умеет использовать не только шрифты установленный в системе. Просто скопируйте желаемые файлы шрифтов (поддерживаются fon, ttf, otf, и моноширные bdf) в папку ConEmu и перезапустите программу. Новые шрифты появятся в списке доступных на вкладке настройки шрифтов «Main». Не стоит копировать слишком много шрифтов – их обработка может занять значительное время при старте программы. Регистрацию «локальных» шрифтов можно отключить на вкладке «Features» флажком «Auto register fonts».
Для отображения псевдографики (рамки в Far Manager и т.п.) можно настроить отдельный шрифт. В некоторых шрифтах используемых в качестве основного рамки получаются несимпатичными.
Иногда нужно быстро поменять размер шрифта. Это можно сделать не открывая окно настроек — удерживая клавишу Ctrl крутите колесико мышки.
Quake/Tilda
Вызов ConEmu в стиле игровых консолей доступен «из коробки». Открываем вкладку «Main» и включаем флажок «Quake style slide down». При желании там же включаем «Auto–hide on focus lose». Если рамка вообще не нужна – в поле «Frame width» поставьте «0» вместо «-1» («-1» — показывать рамку полностью). Здесь же можно настроить отступы поля консоли от краев окна ConEmu – включите «Center console in ConEmu workspace» и выберите количество пикселей в «Pad size».
Режим «поверх всех окон» можно включит на вкладке «Appearance» флажком «Always on top».
Показывать ли окно ConEmu на панели задач? Открываем вкладку «Task bar» и выбираем желаемые опции. По умолчанию в Quake режиме при минимизации (скрытии) окно скрывается в TSA (taskbar status area – область рядом с часиками), это опция «Auto minimize to TSA». А чтобы вообще не показывать иконку в панели задач – щелкните радиокнопку «Don’t show ConEmu window on Taskbar» и включите «Always show TSA icon» чтобы не потерять ConEmu.
Клавиша активации. Их может быть две (так все запущено на некоторых раскладках клавиатуры). Открываем вкладку «Keys & Macro» и в самом начале списка видим «Minimize/Restore» и «Minimize/Restore (alternative)». Можно выбрать любую комбинацию клавиш (по умолчанию это Ctrl+~), но имейте в виду, что эта комбинация регистрируется как глобальный хоткей в системе со всеми вытекающими. Например, некоторые комбинации могут быть уже зарезервированы системой или другими приложениями.
Клавиша скрытия. Та же что и клавиша активации, но дополнительно окно ConEmu можно скрывать просто клавишей Esc. Откройте вкладку «Task bar» и в группе «Minimize ConEmu by Esc» выберите опцию «Always». Там же есть флажок «Map Shift+Esc to Esc» чтобы можно было все-таки послать в консоль клавишу «Esc» если это необходимо.
Размер (высоту) окна можно менять. Наведите мышку на рамку (или на то место, где она должна быть), подождите пару секунд, и у окна появится обычная resizable рамка которую можно тянуть мышкой.
Панель задач Windows 7
Поддержка списка переходов (Jump List). После создания вашего списка задач на вкладке «Tasks» включите флажок «Add ConEmu tasks to taskbar» и нажмите кнопку «Update Now».
Отображение прогресса на панели задач.
Фоновая картинка
Если вам не нравится унылое черное окошко – фон можно заменить на картинку или сплошной цвет. Замена фона выполняется для выбранных индексов цветов – поле «Replace color indexes». По умолчанию в поле стоит «*» – автовыбор, но если, например, нужно заменять фон для темно-зеленого цвета (палитру можно посмотреть на вкладке «Colors») введите «#2» вместо «*». Фоновая картинка указывается в поле «Path» (bmp, jpg, png файлы), но в этом же поле можно указать и сплошной цвет, например «48 10 36» чтобы получить цвет фона терминала в Ubuntu. Если картинка слишком яркая – ее можно притушить слайдером «Darkening».
Еще одна возможность для пользователей Far Manager – установка цвета фона из плагинов Far. На Хабре уже была статья «Визуализация разных дисков в файловом менеджере или Не совсем консольный FAR». Описываемый там плагин устарел и не работает в текущих версиях ConEmu, но аналогичный функционал реализован плагином «ConEmu Background». Чтобы включить раскраску панелей откройте в Far Manager список «Plugins configuration» (Alt+Shift+F9 в панелях), выберите плагин «ConEmu Background» и включите флажок «Enable plugin».
Автообновление
ConEmu умеет обновляться автоматически, если он был установлен инсталлятором или развернут из 7z–архива. Для обновления 7z–архивом требуется установленный архиватор 7zip или WinRar. На владке «Update» можно выбрать параметры обновления: проверять при запуске или ежечасно; показывать диалог с сообщением о новой версии или только нотификацию в TSA; обновляться на последнюю или только на стабильную версию; настройка proxy–сервера; путь для хранения скачанных версий и т.д.
Цветовые палитры
На вкладке «Colors» можно выбрать одну из предопределенных цветовых схем (Solarized, Standard VGA, PowerShell, xterm, и др.) или настроить свою схему цветов. Настроенную схему можно сохранить: введите имя в поле «Schemes» и нажмите кнопку «Save».
Стандартной палитры в 16 цветов не всегда хватает, но в ConEmu есть две возможности расширения цветового пространства.
Extend foreground colors
За счет потери одного индекса цвета фона в ConEmu можно настроить дополнительно 16 цветов для текста. Например, для приглашения командной строки можно указать ярко-красный цвет фона, выбрать в выпадающем списке его индекс (#12) и настроить палитру цветов с индексами 16..31. После этого текст будет отображен цветами палитры 16..31, а цвет фона (ярко-красный) заменен на окружающий (скорее всего это будет черный).
Подробнее можно почитать здесь.
TrueColor
Унылая 16-цветная консольная палитра надоела разработчику плагина Colorer для редактора Far Manager и появился Colorer TrueMod. В результате консольный редактор засиял новыми красками, а информация о цветах стала храниться в SharedMemory в дополнение к собственно консоли. Кроме цветов появилась возможность использовать Bold/Italic/Underline шрифты для участков текста.
В Far 3.0 поддержка TrueColor стала нативной и настройку расширенных атрибутов (24бита на цвет и Bold/Italic/Underline) можно выполнить для любого элемента интерфейса. Кто говорил, что в фаре недостаточно цветов для подсветки групп файлов?
Опция может быть отключена на вкладке «Colors» флажком «TrueMod (24bit color) support». Ее отключение экономит некоторое количество мегабайт памяти.
ANSI X3.64
В *nix терминалах можно использовать Escape-последовательности и даже в DOS они были доступны со стандартным драйвером ANSI.SYS. В терминале Windows про них решили забыть, правда есть несколько программ позволяющих использовать ANSI в Windows, например ANSICON.
В ConEmu поддержка ANSI X3.64 встроена. Для этого должны быть включены флажки «Inject ConEmuHk» и «ANSI X3.64» на вкладке «Features». Полный список поддерживаемых в ConEmu ANSI кодов.
С помощью ANSI можно не только выводить цветной текст. Например в заголовке таба можно отображать текущую директорию в cmd.
Прозрачность окна ConEmu
При желании на вкладке «Transparency» можно настроить прозрачность окна ConEmu. Можно выбрать различные значения прозрачности для активного и неактивного окна. Например ConEmu может полностью «исчезнуть» с экрана при потере фокуса если слайдер прозрачности для неактивного окна передвинуть в крайнее левое положение.
Если вы не отключили статусную строку, то в ней может отображаться текущее значение прозрачности в процентах (список отображаемых «колонок» статусной строки тоже настраивается). При щелчке мышкой по колонке с прозрачностью всплывает меню в котором можно быстро изменить коэффициент прозрачности или отключить его.
Табы
При работе с несколькими консолями одновременно или при работе с редакторами и просмотрщиками в Far Manager (в Far должен быть загружен плагин ConEmu) табы сильно облегчают жизнь. Кроме того, в заголовке таба показывается прогресс операции в процентах (копирование, распаковка архивов, chkdsk, прогресс в PowerShell, и др.)
В табе отображается значок «Щит» если эта консоль запущена в режиме администратора.
Отображаемый текст можно настроить по шаблону, например можно в табе показывать имя и PID активного процесса, порядковый номер консоли, заголовок окна консоли, имя редактируемого или просматриваемого в Far Manager файла, признак наличия изменений в редакторе.
Если cmd.exe запущен в режиме администратора – в заголовке окна консоли он отображает префикс «Администратор:». ConEmu умеет отбрасывать эту избыточную информацию.
Если табы не нужны – их можно полностью отключить или включить автопоказ при появлении более одного таба.
Переключение между табами также настраивается по желанию. Стандартные комбинации Ctrl+Tab и Ctrl+Shift+Tab. Режим «Recent mode» включенный по умолчанию позволяет перебирать табы в порядке их активации. При включенном «Lazy tab switch» фактическое переключение таба произойдет при отпускании клавиши Ctrl. А до отпускания клавиши Ctrl табы можно переключать и стрелками Влево/Вправо.
Табы можно активировать по номеру консоли, который можно показывать в заголовке таба. По умолчанию предлагается комбинация Win+цифра (должны быть включены флажки «Install keyboard hooks» и «Win+Number – activate console» на вкладке «Controls»). То есть Win+1 активирует первую консоль, Win+2 – вторую и т.д. Если консолей открыто более 9 то нужно нажимать последовательно две цифры удерживая клавишу Win, например «Win+2,4» активирует 24-ю консоль (и кому их столько понадобится?). Если открыты редакторы/вьюверы в Far Manager то Win+цифра будет последовательно перебирать их (флажок «Host-Key+Number iterates Far windows»).
Вместо клавиши «Win» можно выбрать любую другую комбинацию клавиш-модификаторов, например Ctrl+Shift или Apps. Перейдите на вкладку «Keys & Macro» и прокрутите список клавиш до пункта «Activate console by number». Вы можете выбрать любые три клавиши-модификатора.
Статусная строка
По желанию отключается и настраивается. Доступно большое количество колонок вроде имени и PID активного процесса, координаты видимой области и курсора, ИД текущей раскладки клавиатуры, статусы CAPS/NUM/SCROLL, номер активной консоли, коэффициент прозрачности и т.д. По многим колонкам можно щелкать мышкой для их изменения.
ConEmu Here
На вкладке «Integration» можно настроить контекстное меню для Windows Explorer и установить ConEmu как терминал по умолчанию для запуска консольных приложений.
«ConEmu Here» и «ConEmu Inside». Вы можете создать неограниченное количество пунктов меню для запуска разных шеллов (cmd, powershell, bash, SDK и т.п.) Введите команду в поле «Command» дайте пункту меню соответствующее название в поле «Menu item», опционально укажите путь к иконке отображаемой в меню (не работает в WinXP) и нажмите кнопку «Register». Список ранее зарегистрированных пунктов отображается в выпадающем списке «Menu item».
Отличие «ConEmu Inside» от «ConEmu Here» в том, что терминал будет запущен как часть окна Windows Explorer (Inside).
ConEmu может использоваться как плагин и в других программах. Для этого укажите дескриптор окна в котором должен разместиться ConEmu и команду, которую он должен выполнить. Например:
ConEmu.exe /insidewnd 0x13A40 /cmd powershell.exe
Default terminal
ConEmu может подменять собой стандартный терминал Windows, запуск с ярлыка «Windows SDK Command Prompt», запуск «ipconfig /all» из диалога Win+R, запуск консольных приложений из TotalCmd, отладка консольных программ в Visual Studio – все может быть перехвачено и запущено в ConEmu.
Как это работает: на вкладке «Integration» нужно указать список процессов, в которые будет загружена библиотека ConEmuHk.dll (например «explorer.exe|devenv.exe|totalcmd.exe») и включить флажок «Force ConEmu as default terminal» а также, при желании, «Register on OS startup». В указанных процессах будут перехвачены функции CreateProcessA, CreateProcessW, WinExec для запуска консольного приложения в ConEmu.
IDE style
Выше уже было сказано про запуск любых команд из списка переходов. Например, для сборки ConEmu я сделал cmd-файл настраивающий окружение SDK и запускающий nmake или devenv.com.
Ключ «/single» в поле «Task parameters» указывает использовать один экземпляр ConEmu (запуск в новом табе). Ключ «-new_console:c» в тексте команды является аналогом «pause» в cmd, чтобы консоль не закрылась после завершения компиляции.
В случае ошибок компиляции (вывод компилятора сохраняется в файл Error.log) вызывается скрипт TypeBuildErrors.cmd "%~dp0Errors.log"
подсвечивающий строки с информацией об ошибках красным шрифтом, а предупреждения — синим. Исправив ошибки в редакторе Far Manager можно перезапустить компиляцию — Win+~ (хоткей по умолчанию для перезапуска таба).
App distinct
Здесь можно изменить некоторые опции в зависимости от процесса в консоли.
Например для PowerShell запущенном в режиме админа задать свою палитру.
Здесь же будет возможность задать свою фоновую картинку (просят давно, но пока не готово).
Keys & Macro
Здесь можно увидеть список всех комбинаций клавиш используемых в программе. Быстрый способ открыть эту вкладку – Win+Alt+K.
Также есть возможность задавать некоторое количество пользовательских действий через GuiMacro. Например назначить на Ctrl+D выход из текущего шелла: print("exit\n")
.
Far Manager
Интеграция с Far это тема для отдельной статьи. Важно, чтобы в Far был загружен плагин ConEmu (то есть в списке F11 из панелей был виден пункт «ConEmu»).
Краткий список возможностей.
- Drag&Drop файлов из панелей в другие приложения;
- щелчок правой кнопкой мышки помечает файлы, а длинный щелчок (удерживайте правую кнопку мышки >1 секунды) открывает графическое EMenu;
- панели можно двигать мышкой
- в плагине Unicode CharMap символы отображаются соответствующим шрифтом;
- файлы в панелях можно отображать в режиме Tile и Thumbnail;
- поддержка тачскринов, например прокрутка двумя пальцами, жест zoom, длинный тап по кейбару открывает меню (Alt/Shift/Ctrl/Fn).
Вкладка Debug
В основном вкладка для отлова багов. Но может быть интересна и пользователям.
Например, при выборе радиокнопки «Shell» ConEmu показывает запускаемые в консоли процессы и загружаемые dll-ки. Почти то же самое можно подсмотреть в ProcessMonitor, но здесь есть бонус — при компиляции проектов VC cl.exe и link.exe запускаются не с ключами а с параметром пакетным-файлом. ConEmu покажет содержимое этого файла.
Разное
Win+A или кнопка на тулбаре — заморозить консоль (поставить на паузу).
Щелчок правой кнопкой мышки по крестику в заголовке окна скрывает ConEmu в область уведомлений (Taskbar status area).
Полоса прокрутки по умолчанию скрыта и появляется при наведении мышки в правый край консоли. При работе в Far Manager колесо мышки обычно обрабатывается самим Far (прокрутка панелей, меню, и пр.), но при наведении курсора на полосу прокрутки — колесо прокручивает консоль.
Поиск текста — Apps+F или из меню «Edit» пункт «Find text». Искать умеем по всей консоли, но для этого консоль должна быть заморожена (Freeze console).
Можно показать «настоящую» консоль комбинацией Ctrl+Win+Alt+Space.
Заключение
Казалось бы от терминала нужно не много, но работа над ConEmu далека от завершения и в планах реализация многих возможностей. Например «бесконечный» буфер (сейчас ограничен 9999 строками «реальной» консоли), полноценная поддержка xterm 256 colors, горизонтальная прокрутка, сниппеты, оптимизация и т.д.
И, конечно, документация. Банально не хватает времени чтобы поддерживать актуальность wiki, некоторые страницы ожидают перевода, а многие возможности описаны только в WhatsNew.
Обновлено
Официальный сайт переехал по адресу http://conemu.github.io.
The Windows command line is one of the most powerful utilities on a Windows PC. With it, you can interact with the OS directly and do a lot of things not available in the graphical user interface (GUI).
In this article, I’ll show you 40 commands you can use on the Windows command line that can boost your confidence as a Windows user.
N.B.: You have to be careful while using the commands I’ll show you. This is because some commands can have a lasting negative or positive effect on your Windows PC until you reset it.
In addition, some of these commands require you to open the command prompt as an admin.
powershell start cmd -v runAs
– Run the Command Prompt as an Administrator
Entering this command opens another command prompt window as an administrator:
driverquery
– Lists All Installed Drivers
It is important to have access to all drivers because they often cause problems.
That’s what this command does – it shows you even the drivers you won’t find in the device manager.
chdir
or cd
– Changes the Current Working Directory to the Specified Directory
systeminfo
– Shows Your PC’s Details
If you want to see more detailed information about your system you won’t see in the GUI, this is the command for you.
set
– Shows your PC’s Environment Variables
prompt
– Changes the Default Text Shown before Entering Commands
By default, the command prompt shows the C drive path to your user account.
You can use the prompt
command to change that default text with the syntax prompt prompt_name $G
:
N.B: If you don’t append $G
to the command, you won’t get the greater than symbol in front of the text.
clip
– Copies an Item to the Clipboard
For example, dir | clip
copies all the content of the present working directory to the clipboard.
You can type clip /?
and hit ENTER
to see how to use it.
assoc
– Lists Programs and the Extensions They are Associated With
title
– Changes the Command Prompt Window Title Using the Format title window-title-name
fc
– Compares Two Similar Files
If you are a programmer or writer and you want to quickly see what differs between two files, you can enter this command and then the full path to the two files. For example fc “file-1-path” “file-2-path”
.
cipher
– Wipes Free Space and Encrypts Data
On a PC, deleted files remain accessible to you and other users. So, technically, they are not deleted under the hood.
You can use the cipher command to wipe the drive clean and encrypt such files.
netstat -an
– Shows Open Ports, their IP Addresses and States
ping
– Shows a Website IP Address, Lets you Know How Long it Takes to Transmit Data and a Get Response
color
– Changes the Text Color of the Command Prompt
Enter color attr
to see the colors you can change to:
Entering color 2
changes the color of the terminal to green:
for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear
– Shows All Wi-Fi Passwords
ipconfig
– Shows Information about PC IP Addresses and Connections
This command also has extensions such as ipconfig /release
, ipconfig /renew
, and ipconfig /flushdns
which you can use to troubleshoot issues with internet connections.
sfc
– System File Checker
This command scans your computer for corrupt files and repairs them. The extension of the command you can use to run a scan is /scannow
.
powercfg
– Controls Configurable Power Settings
You can use this command with its several extensions to show information about the power state of your PC.
You can enter powercfg help
to show those extensions.
For example, you can use powercfg /energy
to generate a battery health report.
The powercfg /energy
command will generate an HTML file containing the report. You can find the HTML file in C:\Windows\system32\energy-report.html
.
dir
– Lists Items in a Directory
del
– Deletes a File
attrib +h +s +r folder_name
– Hides a Folder
You can hide a folder right from the command line by typing in attrib +h +s +r folder_name
and then pressing ENTER
.
To show the folder again, execute the command – attrib -h -s -r folder_name
.
start website-address
– Logs on to a Website from the Command Line
tree
– Shows the Tree of the Current Directory or Specified Drive
ver
– Shows the Version of the OS
tasklist
– Shows Open Programs
You can do the same thing you do with the task manager with this command:
The next command shows you how to close an open task.
taskkill
– Terminates a Running Task
To kill a task, run taskkill /IM "task.exe" /F
. For example, taskkill /IM "chrome.exe" /F
:
date
– Shows and Changes the Current Date
time
– Shows and Changes the Current Time
vol
– Shows the Serial Number and Label Info of the Current Drive
dism
– Runs the Deployment Image Service Management Tool
CTRL + C
– Stops the Execution of a Command
-help
– Provides a Guide to other Commands
For example, powercfg -help
shows how to use the powercfg
command
echo
– Shows Custom Messages or Messages from a Script or File
You can also use the echo
command to create a file with this syntax echo file-content > filename.extension
.
mkdir
– Creates a Folder
rmdir
– Deletes a Folder
N.B.: The folder must be empty for this command to work.
more
– Shows More Information or the Content of a File
move
– Moves a File or Folder to a Specified Folder
ren
– Renames a File with the Syntax ren filename.extension new-name.extension
cls
– Clears the Command Line
In case you enter several commands and the command line gets clogged up, you can use cls
to clear all entries and their outputs.
exit
– Closes the Command Line
shutdown
– Shuts down, Restarts, Hibernates, Sleeps the Computer
You can shut down, restart, hibernate, and sleep your PC from the command line.
Enter shutdown
in the command line so you can see the extensions you can use to perform the actions. For example, shutdown /r will restart your computer.
Conclusion
This article showed you several “unknown-to-many” commands you can use to get access to hidden functionalities on your Windows PC.
Again, you should be careful while working with these commands because they can have a lasting effect on your OS.
If you find the commands helpful, share the article with your friends and family.
In case you know another useful command I did not list, tell me about it on Twitter. I will add it and mention you as the source.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started