CLI tool
jlevy/the-art-of-command-line avatar
jlevy/the-art-of-command-line

jlevy/the-art-of-command-line: one page, seventeen translations, no licence file

GitHub describes it as Master the command line, in one page. This article stays within the project description and details documented in the GitHub repository README.

162,544 stars14,827 forksUnknownLicense varies

At a glance

What is it?
A single page of command line notes, originally a Quora answer, now translated into seventeen languages and maintained by one person who is publicly looking for a co-author. The page is honest about being a routing table rather than a manual: it tells you to run man bash, to use cheat.sh, and to look the rest up yourself.
Who is it for?
It suits a developer who already shells out daily and wants one screen of pointers, and it does not suit anyone who needs a reference, a tutorial, or permission to republish. Read it, then read the man pages it names.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Probably not. The repository last received commits 27 months ago, on June 25, 2024.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

There is no licence file anywhere in the repository

The repository records no licence at all, and the top level confirms it. The entries are .gitignore, AUTHORS.md, CONTRIBUTING.md, cowsay.png, an admin/ directory, and eighteen README files. There is no LICENSE, no COPYING, and no licence line in the text. AUTHORS.md exists to credit the many authors and translators, and the page asks people to submit questions through a form and to contribute when they see an error. Consequence: an invitation to improve the work is not a grant to copy it, and a document with dozens of named contributors and no stated terms is the kind of thing that turns into a legal question the day someone pastes it into a company wiki. Treat it as read-only reference. If you need the content inside your own docs, ask, or write your own version from the man pages it points you at.

Translations are full copies, so they drift apart

The language line at the top links eighteen separate files: English plus Čeština, Deutsch, Ελληνικά, Español, Français, Indonesia, Italiano, 日本語, 한국어, polski, Português, Română, Русский, Slovenščina, Українська, 简体中文, and 繁體中文. Each is a complete document rather than a set of translated fragments, which is the only practical way to ship a Markdown page, and it is also why they diverge. Consequence: a correction or a new tip lands in one file, and the other seventeen keep whatever they had, with no build step and no tooling in the tree to reconcile them. Pick the English original as your reference and treat a translation as a convenience, then check the date on the page you read, because a stale translation can be confidently wrong about a flag or a tool that has since changed.

The page teaches you what to look up, not how to do it

The Meta section sets out the design and admits the trade. To keep this to one page, content is implicitly included by reference, and the expectation is that once you know the idea or the command you can look up the detail yourself. Two tools are offered for that lookup: Explainshell for a breakdown of what a command, its options, and its pipes are doing, and `curl cheat.sh/command` for a brief cheat sheet of common examples. Consequence: every tip in the guide costs a second round trip to become usable, and a reader on a locked down network or offline gets the idea without the recipe. Budget for that second lookup when you read the page, and treat the page itself as an index into documentation rather than as something you can follow top to bottom.

The scope is interactive Bash, with two sections for everyone else

The declared scope is narrow in a useful way. The guide is written for Linux, with the exception of the macOS only and Windows only sections, and many other items apply or can be installed on other Unices, on macOS, or even Cygwin. The focus is interactive Bash, though many tips carry over to other shells and to general Bash scripting. Consequence: the basics section tells you to type `man bash`, and the job control items, `&`, ctrl-z, ctrl-c, `jobs`, `fg`, `bg`, and `kill`, are Bash habits rather than portable ones, so a fish or zsh user has to translate them. On Windows the macOS only and Windows only sections are all you get from the author, and the rest is advice written for a machine you do not have.

The maintainer is advertising the need for a new co-author

The note under the title says the author is planning to revise the guide and looking for a new co-author to help expand it into something more comprehensive, adding that while it is very popular it could be broader and a bit deeper, and leaving a contact address for anyone willing to help. Consequence: this is a single maintainer with an open request for help and an admitted coverage gap, which is the opposite of a project with a review queue. The timeline agrees. The last push landed on 2024-06-25, the repository is not archived, and it publishes no releases, so there is no version to cite and no cadence to expect. Expect the page to stay exactly as useful, and exactly as incomplete, as it was on that date unless somebody answers the note.

Package installs are assumed rather than named

The guide includes tools that are not standard, on the condition that they matter enough to deserve a line, and it hands the installation problem back to you. The instruction is to use `apt`, `yum`, `dnf`, `pacman`, `pip`, or `brew` as appropriate, and the basics section repeats it with `apt-get`, `yum`, `dnf`, or `pacman` depending on distro, plus a note to make sure you have `pip` for Python based command line tools. Consequence: an entry can be one line long and still be unusable on your machine until you work out which package provides it, and the page does not map commands to packages, so a reader on a less common distribution ends up searching. The same applies to the third party tools further down, which is the cost of the one page constraint the Meta section is defending.

The first real lesson is how to read a man page

The documentation items in Basics are the most reusable part of the page. Read official documentation with `man`, and for the inquisitive `man man` lists the section numbers, where 1 is regular commands, 5 is files and conventions, and 8 is administration. Find pages with `apropos`. Some commands are not executables at all but Bash builtins, which you get help on with `help` and `help -d`, and `type command` tells you whether something is an executable, a builtin, or an alias. Consequence: a reader who has never opened a man page gets most of the value from these lines and least from the obscure ones, so this is where to start. It also explains the shape of the rest of the guide, which is a list of things worth typing `man` on.

The file management items teach you to read columns

Basics does not stop at listing commands, it asks you to understand their output. With `ls` and `ls -l`, the instruction is to learn what every column means, and for disk usage it offers `du -hs *`. It asks you to learn what an inode is, reachable through `ls -i` or `df -i`, and to learn the differences and advantages of hard versus soft links with `ln` and `ln -s`. For following a growing file it prefers `less +F` over `tail -f`. On search, it asks you to know regular expressions and the flags `-i`, `-o`, `-v`, `-A`, `-B`, and `-C` on `grep`. Consequence: this material rewards a reader who already reads output carefully and frustrates one who is collecting commands to paste, which is the intended trade for a page that promises breadth and brevity over completeness.

Editorial conclusion

It suits a developer who already shells out daily and wants one screen of pointers, and it does not suit anyone who needs a reference, a tutorial, or permission to republish. Read it, then read the man pages it names. The two things to check before you rely on it are the state of the file and the state of the translations: the last push was 2024-06-25 and there are no releases, so nothing has been revised in a long while, and the seventeen translated copies are full duplicates that nobody is merging back into the English original. And check the absence of a licence file before you paste any of it into internal documentation, because a repository with many credited authors and no stated terms is exactly the situation where copying quietly becomes a legal question later.

Frequently asked questions

What does The Art of Command Line actually cover?

It is a single page of notes and tips for the command line on Linux, with sections for Basics, Everyday use, Processing files and data, System debugging, One-liners, Obscure but useful, plus macOS only and Windows only sections. The stated goals are breadth, specificity, and brevity.

Is The Art of Command Line still being worked on?

The author says he is planning to revise it and looking for a new co-author to help expand it, noting it could be broader and deeper. The repository is not archived, but the last push landed on 2024-06-25 and there are no GitHub releases.

Can I use The Art of Command Line on macOS or Windows?

The guide is written for Linux, with dedicated macOS only and Windows only sections, and many other items are said to apply or be installable on other Unices, macOS, or Cygwin. The focus throughout is interactive Bash.

What licence covers The Art of Command Line?

The repository records no licence, and there is no licence file among the top level entries, which are AUTHORS.md, CONTRIBUTING.md, the README files in eighteen languages, admin/, and an image. AUTHORS.md credits the authors and translators, but no reuse terms are stated anywhere.

Official sources

  1. Official README
  2. Project repository