Make your linux learning experience painless with tldr-pages!
If you've been learning linux for a little while, you'll probably have encountered man pages. They are the complete documentation of all the tools, commands(, and kernel functions) available on the system you're currently on (read them online here!). If you have encountered them, you'll also know that they usually are somewhat... verbose.
Enter stage left: tldr-pages!
tldr-pages is an ongoing effort to create a repository of simplified man pages, that document the most common usages of a command. How about this, for the tar
command?
# tar
> Archiving utility.
> Often combined with a compression method, such as gzip or bzip.
- Create an archive from files:
`tar cf {{target.tar}} {{file1 file2 file3}}`
- Create a gzipped archive:
`tar czf {{target.tar.gz}} {{file1 file2 file3}}`
- Extract an archive in a target folder:
`tar xf {{source.tar}} -C {{folder}}`
- Extract a gzipped archive in the current directory:
`tar xzf {{source.tar.gz}}`
- Extract a bzipped archive in the current directory:
`tar xjf {{source.tar.bz2}}`
- Create a compressed archive, using archive suffix to determine the compression program:
`tar caf {{target.tar.xz}} {{file1 file2 file3}}`
- List the contents of a tar file:
`tar tvf {{source.tar}}`
...or this for git reset
?
# git reset
> Undo commits or unstage changes, by resetting the current git HEAD to the specified state.
> If a path is passed, it works as "unstage"; if a commit hash or branch is passed, it works as "uncommit".
- Unstage everything:
`git reset`
- Unstage specific file(s):
`git reset {{path/to/file(s)}}`
- Unstage portions of a file:
`git reset -p {{path/to/file}}`
- Undo the last commit, keeping its changes (and any further uncommitted changes) in the filesystem:
`git reset HEAD~`
- Undo the last two commits, adding their changes to the index, i.e. staged for commit:
`git reset --soft HEAD~2`
- Discard any uncommitted changes, staged or not (for only unstaged changes, use `git checkout`):
`git reset --hard`
- Reset the repository to a given commit, discarding committed, staged and uncommitted changes since then:
`git reset --hard {{commit}}`
For those learning linux and the terminal, I think it's an invaluable tool. It helps you out by showing you how to perform common tasks. As you get more experienced though, it becomes useful in another way: showing you how to do those things that you don't do often enough to remember off the top of your head.
I'm probably a bit biased, since I've been contributing to the project for a while (and the nice folks over there recently promoted me to the rank of maintainer :D), so you should check it out for yourself! There's even an online client that you can use without installing anything :-) Once you're ready to install a client directly in your terminal, there's an extensive list of clients documented on the repository wiki, with one available for every environment and platform.
If you encounter a command that hasn't been documented yet, then they've also made it easy to contribute a page yourself.
I think the idea is rather cool, actually - as you've probably guessed by now! Let me know what you think of it in the comments.