{"id":40398,"date":"2017-09-08T04:48:54","date_gmt":"2017-09-08T11:48:54","guid":{"rendered":"http:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/"},"modified":"2017-09-08T04:48:54","modified_gmt":"2017-09-08T11:48:54","slug":"command-line-usability-a-terminal-users-thought-process","status":"publish","type":"post","link":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/","title":{"rendered":"Command-line usability: A terminal user\u2019s thought process"},"content":{"rendered":"<p>I\u2019ve been thinking about the usability of command-line terminals a lot recently.<\/p>\n<p>(I originally posted this <a href=\"https:\/\/design.canonical.com\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/\">on our company\u00a0blog<\/a>).<\/p>\n<p>Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask <a href=\"https:\/\/ux.stackexchange.com\/questions\/101990\/why-are-terminal-consoles-still-used\">why the terminal exists<\/a>, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has little to offer the Command-Line Interface (CLI), because the habits of terminal users are too inherent or instinctive to be defined and optimised by usability experts.<\/p>\n<p>As an experienced terminal user with a keen interest in usability, I disagree that usability has little to offer the CLI experience. I believe that the experience can be improved through the application of usability principles just as much as for more graphical domains.<\/p>\n<h3>Steps to learn a new CLI\u00a0tool<\/h3>\n<p>To help demystify the command-line experience, I\u2019m going to lay out some of the patterns of thinking and behaviour that define my use of the\u00a0CLI.<\/p>\n<p>New CLI tools I\u2019ve learned recently include <a href=\"https:\/\/snapcraft.io\/docs\/core\/usage\">snap<\/a>, <a href=\"https:\/\/kubernetes.io\/docs\/user-guide\/kubectl-overview\/\">kubectl<\/a> and <a href=\"https:\/\/nghttp2.org\/\">nghttp2<\/a>, and I\u2019ve also <a href=\"https:\/\/github.com\/canonical-webteam\/practices\/blob\/master\/local-development\/the-run-script.md\">dabbled<\/a> in writing command-line tools\u00a0myself.<\/p>\n<p>Below I\u2019ll map out an example of the steps I might go through when discovering a new command-line tool, as a basis for exploring how these tools could be optimised for CLI\u00a0users.<\/p>\n<ol>\n<li>Install the tool<br \/>&#8211; First, I might try apt install {tool} (or brew install {tool} on a mac)<br \/>&#8211; If that fails, I\u2019ll probably search the internet for \u201cInstall {tool}\u201d and hope to find the official documentation<\/li>\n<li>Check it is installed, and if <a href=\"https:\/\/www.howtogeek.com\/195207\/use-tab-completion-to-type-commands-faster-on-any-operating-system\/\">tab-complete<\/a> works<br \/>&#8211; Type the first few characters of the command name (sna for snap) followed by <tab> <tab>, to see if the command name auto-completes, signifying that the system is aware of its existence<br \/>&#8211; Hit space, and then <tab> <tab> again, to see if it shows me a list of available sub-commands, indicating that tab completion is set up correctly for the\u00a0tool<\/li>\n<li>Try my first command<br \/>&#8211; I\u2019m probably following some documentation at this point, which will be telling me the first command to run (e.g. snap install {something}), so I\u2019ll try that out and expect prompt succinct feedback to show me that it\u2019s working<br \/>&#8211; For basic tools, this may complete my initial interaction with the tool. For more complex tools like kubectl or git I may continue playing with\u00a0it<\/li>\n<li>Try to do something more complex<br \/>&#8211; Now I\u2019m likely no longer following a tutorial, instead I\u2019m experimenting on my own, trying to discover more about the tool<br \/>&#8211; If what I want to do seems complex, I\u2019ll straight away search the internet for how to do it<br \/>&#8211; If it seems more simple, I\u2019ll start looking for a list of subcommands to achieve my goal<br \/>&#8211; I start with {tool} <tab> <tab> to see if it gives me a list of subcommands, in case it will be obvious what to do next from that list<br \/>&#8211; If that fails I\u2019ll try, in order, {tool} <enter>, {tool} -h, {tool} &#8211;help, {tool} help or {tool} \/? <br \/>&#8211; If none of those work then I\u2019ll try man {tool}, looking for a Unix manual entry<br \/>&#8211; If that fails then I\u2019ll fall back to searching the internet\u00a0again<\/li>\n<\/ol>\n<h3>UX recommendations<\/h3>\n<p>Considering my own experience of CLI tools, I am reasonably confident the following recommendations make good general practice guidelines:<\/p>\n<ul>\n<li>Always implement a &#8211;help option on the main command and all subcommands, and if appropriate print out some help when no options are provided ({tool}\u00a0<enter>)<\/li>\n<li>Provide both short- (e.g. -h) and long- (e.g. &#8211;help) form options, and make them guessable<\/li>\n<li>Carefully consider the naming of all subcommands and options, use familiar words where possible (e.g. help, clean,\u00a0create)<\/li>\n<li>Be consistent with your naming?\u2014?have a clear philosophy behind your use of subcommands vs options, verbs vs nouns\u00a0etc.<\/li>\n<li>Provide helpful, readable output at all times?\u2014?especially when there\u2019s an error (npm I\u2019m looking at\u00a0you)<\/li>\n<li>Use long-form options in documentation, to make commands more self-explanatory<\/li>\n<li>Make the tool easy to install with common software management systems (<a href=\"https:\/\/www.ubuntu.com\/snappy\">snap<\/a>, <a href=\"https:\/\/wiki.debian.org\/Apt\">apt<\/a>, <a href=\"https:\/\/brew.sh\/\">Homebrew<\/a>, or sometimes <a href=\"https:\/\/www.npmjs.com\/\">NPM<\/a> or\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/Pip_(package_manager)\">pip<\/a>)<\/li>\n<li>Provide <a href=\"https:\/\/www.howtogeek.com\/195207\/use-tab-completion-to-type-commands-faster-on-any-operating-system\/\">tab-completion<\/a>. If it can\u2019t be installed with the tool, make it easy to install and document how to set it up in your installation guide<\/li>\n<li>Command outputs should use the appropriate <a href=\"https:\/\/en.wikipedia.org\/wiki\/Standard_streams\">output streams (STDOUT and STDERR)<\/a> and should be as user-friendly and succinct as possible, and ideally make use of <a href=\"https:\/\/unix.stackexchange.com\/questions\/148\/colorizing-your-terminal-and-shell-environment\">terminal\u00a0colours<\/a><\/li>\n<\/ul>\n<p>Some of these recommendations are easier to implement than others. Ideally every command should consider their subcommands and options carefully, and implement &#8211;help. But writing <a href=\"https:\/\/askubuntu.com\/questions\/68175\/how-to-create-script-with-auto-complete\">auto-complete scripts<\/a> is a significant undertaking.<\/p>\n<p>Similarly, <a href=\"https:\/\/snapcraft.io\/docs\/build-snaps\/your-first-snap\">packaging your tool as a snap<\/a> is significantly easier than, for example, adding software to the <a href=\"https:\/\/help.ubuntu.com\/stable\/ubuntu-help\/addremove-sources.html\">official Ubuntu software\u00a0sources<\/a>.<\/p>\n<p>Although I believe all of the above to be good general advice, I would very much welcome research to highlight the relative importance of addressing each\u00a0concern.<\/p>\n<h3>Outstanding questions<\/h3>\n<p>There are a number of further questions for which the answers don\u2019t seem obvious to me, but I\u2019d love to somehow find out the\u00a0answers:<\/p>\n<ul>\n<li>Once users have learned the short-form options (e.g. -h) do they ever use the long-form (e.g.\u00a0&#8211;help)?<\/li>\n<li>Do users prefer subcommands (mytool create {something}) or options (mytool &#8211;create {something})?<\/li>\n<li>For multi-level commands, do users prefer {tool} {object} {verb} (e.g. git remote add {remote_name}), or {tool} {verb} {object} (e.g. kubectl get pod {pod_name}), or perhaps {tool} {verb}-{object} (e.g. juju remove-application {app_name})?<\/li>\n<li>What patterns exist for formatting command output? What\u2019s the optimal length for users to read, and what types of formatting do users find easiest to understand?<\/li>\n<\/ul>\n<p>If you know of either authoritative recommendations or existing research on these topics, please let me know in the comments\u00a0below.<\/p>\n<p>I\u2019ll try to write a more in-depth follow-up to this post when I\u2019ve explored a bit further on some of these\u00a0topics.<\/p>\n<p><em>Originally published at <\/em><a href=\"https:\/\/design.canonical.com\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/\"><em>design.canonical.com<\/em><\/a><em>.<\/em><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medium.com\/_\/stat?event=post.clientViewed&#038;referrerSource=full_rss&#038;postId=161bc0bdae0e\" width=\"1\" height=\"1\"><\/p>\n<p class=\"wpematico_credit\"><small>Powered by <a href=\"http:\/\/www.wpematico.com\" target=\"_blank\">WPeMatico<\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I\u2019ve been thinking about the usability of command-line terminals a lot recently. (I originally posted this on our company\u00a0blog). Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience&#8230;<a class=\"moretag\" href=\"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/\"> Read the full article&#8230;<\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[15],"tags":[],"class_list":["post-40398","post","type-post","status-publish","format-standard","hentry","category-general-info"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Guest Contribution\"\/>\n\t<meta name=\"keywords\" content=\"general info\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Design for Immersive Technologies | User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies\" \/>\n\t\t<meta property=\"og:description\" content=\"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2017-09-08T11:48:54+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2017-09-08T11:48:54+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#article\",\"name\":\"Command-line usability: A terminal user\\u2019s thought process | Design for Immersive Technologies\",\"headline\":\"Command-line usability: A terminal user\\u2019s thought process\",\"author\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/medium.com\\\/_\\\/stat?event=post.clientViewed&referrerSource=full_rss&postId=161bc0bdae0e\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#articleImage\"},\"datePublished\":\"2017-09-08T04:48:54-07:00\",\"dateModified\":\"2017-09-08T04:48:54-07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#webpage\"},\"articleSection\":\"General Info\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.taterboy.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/general-info\\\/#listItem\",\"name\":\"General Info\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/general-info\\\/#listItem\",\"position\":2,\"name\":\"General Info\",\"item\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/general-info\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#listItem\",\"name\":\"Command-line usability: A terminal user\\u2019s thought process\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#listItem\",\"position\":3,\"name\":\"Command-line usability: A terminal user\\u2019s thought process\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/general-info\\\/#listItem\",\"name\":\"General Info\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\",\"name\":\"Design for Immersive Technologies\",\"description\":\"User Experience for Games, Virtual Reality (VR) and Augmented\\\/Mixed Reality (AR\\\/MR)\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/\",\"name\":\"Guest Contribution\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2aad73eb0f48c67b141e9fc978a0e498969791ed623346e361d02d19775b0bb?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Guest Contribution\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#webpage\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/\",\"name\":\"Command-line usability: A terminal user\\u2019s thought process | Design for Immersive Technologies\",\"description\":\"I\\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\\u2019ve also had it suggested to me that the discipline of User Experience (UX) has\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2017\\\/09\\\/command-line-usability-a-terminal-users-thought-process\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"datePublished\":\"2017-09-08T04:48:54-07:00\",\"dateModified\":\"2017-09-08T04:48:54-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/\",\"name\":\"Design for Immersive Technologies\",\"description\":\"User Experience for Games, Virtual Reality (VR) and Augmented\\\/Mixed Reality (AR\\\/MR)\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies","description":"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has","canonical_url":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/","robots":"max-image-preview:large","keywords":"general info","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#article","name":"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies","headline":"Command-line usability: A terminal user\u2019s thought process","author":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"publisher":{"@id":"https:\/\/www.taterboy.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/medium.com\/_\/stat?event=post.clientViewed&referrerSource=full_rss&postId=161bc0bdae0e","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#articleImage"},"datePublished":"2017-09-08T04:48:54-07:00","dateModified":"2017-09-08T04:48:54-07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#webpage"},"isPartOf":{"@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#webpage"},"articleSection":"General Info"},{"@type":"BreadcrumbList","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.taterboy.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/general-info\/#listItem","name":"General Info"}},{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/general-info\/#listItem","position":2,"name":"General Info","item":"https:\/\/www.taterboy.com\/blog\/category\/general-info\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#listItem","name":"Command-line usability: A terminal user\u2019s thought process"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#listItem","position":3,"name":"Command-line usability: A terminal user\u2019s thought process","previousItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/general-info\/#listItem","name":"General Info"}}]},{"@type":"Organization","@id":"https:\/\/www.taterboy.com\/blog\/#organization","name":"Design for Immersive Technologies","description":"User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","url":"https:\/\/www.taterboy.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author","url":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/","name":"Guest Contribution","image":{"@type":"ImageObject","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d2aad73eb0f48c67b141e9fc978a0e498969791ed623346e361d02d19775b0bb?s=96&d=mm&r=g","width":96,"height":96,"caption":"Guest Contribution"}},{"@type":"WebPage","@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#webpage","url":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/","name":"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies","description":"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.taterboy.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/#breadcrumblist"},"author":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"creator":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"datePublished":"2017-09-08T04:48:54-07:00","dateModified":"2017-09-08T04:48:54-07:00"},{"@type":"WebSite","@id":"https:\/\/www.taterboy.com\/blog\/#website","url":"https:\/\/www.taterboy.com\/blog\/","name":"Design for Immersive Technologies","description":"User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.taterboy.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Design for Immersive Technologies | User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","og:type":"article","og:title":"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies","og:description":"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has","og:url":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/","article:published_time":"2017-09-08T11:48:54+00:00","article:modified_time":"2017-09-08T11:48:54+00:00","twitter:card":"summary","twitter:title":"Command-line usability: A terminal user\u2019s thought process | Design for Immersive Technologies","twitter:description":"I\u2019ve been thinking about the usability of command-line terminals a lot recently.(I originally posted this on our company blog).Command-line interfaces remain mystifying to many people. Usability hobbyists seem as inclined to ask why the terminal exists, as how to optimise it. I\u2019ve also had it suggested to me that the discipline of User Experience (UX) has"},"aioseo_meta_data":{"post_id":"40398","title":null,"description":null,"keywords":null,"keyphrases":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_custom_image_width":null,"og_custom_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"created":"2021-02-08 07:08:34","updated":"2026-08-30 22:33:04","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"twitter_image_url":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.taterboy.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.taterboy.com\/blog\/category\/general-info\/\" title=\"General Info\">General Info<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCommand-line usability: A terminal user\u2019s thought process\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.taterboy.com\/blog"},{"label":"General Info","link":"https:\/\/www.taterboy.com\/blog\/category\/general-info\/"},{"label":"Command-line usability: A terminal user\u2019s thought process","link":"https:\/\/www.taterboy.com\/blog\/2017\/09\/command-line-usability-a-terminal-users-thought-process\/"}],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8wzr5-avA","jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts\/40398","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/comments?post=40398"}],"version-history":[{"count":0,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts\/40398\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/media?parent=40398"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/categories?post=40398"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/tags?post=40398"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}