|
2 | 2 |
|
3 | 3 | Collection of resources for Linux command line, shell scripting (mostly `bash`) and a few on topics like Linux Kernel, distributions, applications, etc. |
4 | 4 |
|
| 5 | +## Installation and Documentation |
| 6 | + |
| 7 | +>A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that is based upon the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices (for example, OpenWrt) and personal computers (for example, Linux Mint) to powerful supercomputers (for example, Rocks Cluster Distribution) — [wikipedia](https://en.wikipedia.org/wiki/Linux_distribution) |
| 8 | +
|
| 9 | +* [/r/linux4noobs wiki](https://www.reddit.com/r/linux4noobs/wiki/distro_selection) — Linux distribution selection for noobs |
| 10 | +* [Compute Freely](https://computefreely.org/) — curated selection of Linux distributions ranging from the beginner-friendly to the super technical |
| 11 | +* Linux/Bash on Windows |
| 12 | + * [Git for Windows](https://git-scm.com/downloads) — provides a Bash emulation used to run Git from the command line |
| 13 | + * [Cygwin](https://www.cygwin.com/) — large collection of GNU and Open Source tools which provide functionality similar to a Linux distribution on Windows |
| 14 | + * [Linux Subsystem for Windows](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux) — compatibility layer for running Linux binary executables natively on Windows |
5 | 15 | * [Linux man pages](https://www.mankier.com/) — one of several websites that host man pages online |
6 | 16 | * [ArchWiki](https://wiki.archlinux.org/title/Table_of_contents) — comprehensive documentation for Arch Linux and other distributions |
| 17 | +* [Debian Reference](https://www.debian.org/doc/manuals/debian-reference/) — broad overview of the Debian system, covers many aspects of system administration through shell-command examples |
7 | 18 |
|
8 | 19 | ## CLI text tutorials |
9 | 20 |
|
10 | | -* [ryanstutorial](https://ryanstutorials.net/linuxtutorial/) |
11 | | -* [Bash Guide](https://mywiki.wooledge.org/BashGuide) |
12 | | -* [snipcademy](https://code.snipcademy.com/tutorials/linux-command-line) |
13 | | -* [linuxcommand](https://linuxcommand.org/lc3_learning_the_shell.php) |
14 | | -* [basics of linux commands](http://www.ee.surrey.ac.uk/Teaching/Unix/) |
15 | | -* [linux basics](https://miteshshah.github.io/linux/basics/) |
16 | | -* [learnenough](https://www.learnenough.com/command-line-tutorial/basics) |
| 21 | +* [Linux for Beginners](https://ryanstutorials.net/linuxtutorial/) — solid foundation in how to use the terminal, to get the computer to do useful work for you |
| 22 | +* [UNIX Tutorial for Beginners](http://www.ee.surrey.ac.uk/Teaching/Unix/) — eight simple tutorials which cover the basics of UNIX / Linux commands |
| 23 | +* [Linux Basics](https://miteshshah.github.io/linux/basics/) — cli basics, shell scripting, text processing, package management, etc |
| 24 | +* [Learn Enough Command Line to Be Dangerous](https://www.learnenough.com/command-line-tutorial/basics) — a tutorial introduction to the command line |
17 | 25 |
|
18 | 26 | ## CLI video and interactive courses |
19 | 27 |
|
20 | | -* [linuxjourney](https://linuxjourney.com/) |
| 28 | +* [Linux Journey](https://linuxjourney.com/) — cli basics, text manipulation, processes, packages, networking, etc |
21 | 29 | * [MIT: The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) — master the command-line, use a powerful text editor, use fancy features of version control systems, and much more |
22 | | -* [udacity](https://www.udacity.com/course/linux-command-line-basics--ud595) |
23 | | -* [edx](https://www.edx.org/course/introduction-to-linux) |
24 | | -* [memrise](https://www.memrise.com/course/50252/shell-fu/) |
25 | | -* [shortcutfoo](https://www.shortcutfoo.com/app/dojos/command-line) |
26 | | -* [youtube: command line basics](https://www.youtube.com/watch?v=bE9DyH43C2I&list=PLVqGqrTs4ZWOhcApSWYIX_rnPMZDAClJa) |
| 30 | +* [edx: Introduction to Linux](https://www.edx.org/course/introduction-to-linux) — cli basics, shell scripting, text manipulation, etc |
27 | 31 |
|
28 | 32 | ## Shell Scripting |
29 | 33 |
|
30 | | -* [Bash Guide](https://mywiki.wooledge.org/BashGuide) |
31 | | -* [ryanstutorial](https://ryanstutorials.net/bash-scripting-tutorial/) |
32 | | -* [bash handbook](https://github.com/denysdovhan/bash-handbook) |
33 | | -* [writing shell scripts](https://linuxcommand.org/lc3_writing_shell_scripts.php) |
34 | | -* [snipcademy](https://code.snipcademy.com/tutorials/shell-scripting) |
35 | | -* [learnshell](https://www.learnshell.org/) |
36 | | -* [bash shell scripting](https://en.wikibooks.org/wiki/Bash_Shell_Scripting) |
| 34 | +* [Bash Guide](https://mywiki.wooledge.org/BashGuide) — aspires to teach good practice techniques for using Bash, and writing simple scripts |
| 35 | +* [Bash Scripting Tutorial](https://ryanstutorials.net/bash-scripting-tutorial/) — solid foundation in how to write Bash scripts, to get the computer to do complex, repetitive tasks for you |
| 36 | +* [bash-handbook](https://github.com/denysdovhan/bash-handbook) — for those who want to learn Bash without diving in too deeply |
37 | 37 | * [Serious Shell Programming](https://freebsdfrau.gitbook.io/serious-shell-programming/) — focuses on POSIX-compliant Bourne Shell for portability |
38 | 38 |
|
39 | 39 | ### Scripting companion |
40 | 40 |
|
41 | 41 | * [shellcheck](https://www.shellcheck.net/) — linting tool to avoid common mistakes and improve your script |
42 | 42 | * Comprehensive lists on `mywiki.wooledge.org` website: |
43 | | - * [bash FAQ](https://mywiki.wooledge.org/BashFAQ) |
44 | | - * [bash Practices](https://mywiki.wooledge.org/BashGuide/Practices) |
45 | | - * [bash pitfalls](https://mywiki.wooledge.org/BashPitfalls) |
46 | | -* [Google shell style guide](https://google.github.io/styleguide/shell.xml) |
| 43 | + * [Bash FAQ](https://mywiki.wooledge.org/BashFAQ) |
| 44 | + * [Bash Practices](https://mywiki.wooledge.org/BashGuide/Practices) |
| 45 | + * [Bash Pitfalls](https://mywiki.wooledge.org/BashPitfalls) |
| 46 | +* [Google shell style guide](https://google.github.io/styleguide/shellguide.html) |
47 | 47 | * Reliability and robustness |
48 | 48 | * [safe ways to do things in bash](https://github.com/anordal/shellharden/blob/master/how_to_do_things_safely_in_bash.md) |
49 | 49 | * [better scripting](https://robertmuth.blogspot.in/2012/08/better-bash-scripting-in-15-minutes.html) |
50 | 50 | * [robust scripting](https://www.davidpashley.com/articles/writing-robust-shell-scripts/) |
51 | | -* [Bash reference cheatsheet](https://devmanual.gentoo.org/tools-reference/bash/index.html) — nicely formatted and explained well |
52 | | -* [Bash scripting cheatsheet](https://devhints.io/bash) |
53 | 51 |
|
54 | 52 | ## Books |
55 | 53 |
|
56 | | -* [Bash Guide](https://mywiki.wooledge.org/BashGuide) |
57 | | -* [The Linux Command Line](https://linuxcommand.org/tlcl.php) |
58 | | -* [wizardzines](https://wizardzines.com/) — [Bite Size Bash](https://wizardzines.com/zines/bite-size-bash/), [Bite Size Command Line](https://wizardzines.com/zines/bite-size-command-line/), [Bite Size Linux](https://wizardzines.com/zines/bite-size-linux/), [Bite Size Networking](https://wizardzines.com/zines/bite-size-networking/) |
59 | | -* [Linux Bible](https://www.wiley.com/en-us/Linux+Bible%2C+10th+Edition-p-9781119578895) |
60 | | -* [How Linux Works: What Every Superuser Should Know](https://nostarch.com/howlinuxworks3) |
61 | | -* [UNIX and Linux System Administration Handbook](https://www.oreilly.com/library/view/unix-and-linux/9780134278308/) |
62 | | -* [Linux kernel and its insides](https://0xax.gitbooks.io/linux-insides/content/index.html) |
| 54 | +* [The Linux Command Line](https://linuxcommand.org/tlcl.php) — basics of command line use and shell scripting, environment configuration, and more |
| 55 | +* [wizard zines](https://wizardzines.com/) — programming zines |
| 56 | + * [Bite Size Bash](https://wizardzines.com/zines/bite-size-bash/), [Bite Size Command Line](https://wizardzines.com/zines/bite-size-command-line/), [Bite Size Linux](https://wizardzines.com/zines/bite-size-linux/), [Bite Size Networking](https://wizardzines.com/zines/bite-size-networking/) |
| 57 | +* [Linux Bible](https://www.wiley.com/en-us/Linux+Bible%2C+10th+Edition-p-9781119578895) — basic operations, server management, administration, automated deployment, etc |
| 58 | +* [How Linux Works: What Every Superuser Should Know](https://nostarch.com/howlinuxworks3) — booting, device drivers, networking, development tools, effective shell scripts, etc |
| 59 | +* [UNIX and Linux System Administration Handbook](https://www.oreilly.com/library/view/unix-and-linux/9780134278308/) — definitive guide to installing, configuring and maintaining any Unix or Linux system |
| 60 | +* [Linux kernel and its insides](https://0xax.gitbooks.io/linux-insides/content/index.html) — kernel insides, and other low-level subject matter |
63 | 61 |
|
64 | 62 | ## Tips and Tricks |
65 | 63 |
|
66 | | -* [art of command line](https://github.com/jlevy/the-art-of-command-line) |
67 | | -* [command line tricks](https://stackoverflow.com/questions/68372/what-is-your-single-most-favorite-command-line-trick-using-bash) |
68 | | -* [explainshell](https://explainshell.com/) — write down a command-line to see the help text that matches each argument |
69 | | -* [commandlinefu](https://www.commandlinefu.com/commands/browse/sort-by-votes) — also explore different tags like awk, grep, sed, etc |
70 | | -* [tldr](https://tldr.sh/) — Simplified and community-driven man pages |
71 | | - |
72 | | -## Resources for specific commands |
| 64 | +* [The Art of Command Line](https://github.com/jlevy/the-art-of-command-line) — notes and tips on using the command-line, suitable for both beginners and experienced users |
| 65 | +* [stackoverflow: Command line tricks](https://stackoverflow.com/q/68372/4082052) |
| 66 | +* [commandlinefu](https://www.commandlinefu.com/commands/browse/sort-by-votes) — command-line gems, includes a handy search feature |
73 | 67 |
|
74 | | -* [Linux Commands In Structured Order](https://linoxide.com/guide/linux-command-shelf.html) |
75 | | -* [discussion on useful Linux commands](https://www.reddit.com/r/linuxadmin/comments/1x0ql2/whats_a_linux_command_you_wish_you_had_known/) |
76 | | -* [general purpose command line tools](http://www.compciv.org/unix-tools/) |
| 68 | +## Cheatsheets |
77 | 69 |
|
78 | | -### Text and File processing |
79 | | - |
80 | | -* [My example based tutorial for various cli text processing tools](https://github.com/learnbyexample/Command-line-text-processing) |
81 | | -* [All about replacing strings in file(s)](https://unix.stackexchange.com/questions/112023/how-can-i-replace-a-string-in-a-files) |
| 70 | +* [tldr](https://github.com/tldr-pages/tldr) — collection of community-maintained help pages for command-line tools |
| 71 | +* [explainshell](https://explainshell.com/) — write down a command-line to see the help text that matches each argument |
| 72 | +* [General purpose command-line tools](http://www.compciv.org/unix-tools/) — examples for most common usecases |
| 73 | +* [Bash reference cheatsheet](https://devmanual.gentoo.org/tools-reference/bash/index.html) — nicely formatted and explained well |
| 74 | +* [Bash scripting cheatsheet](https://devhints.io/bash) — quick reference to getting started with Bash scripting |
| 75 | + |
| 76 | +## Text processing |
| 77 | + |
| 78 | +* Books I've written (or currently working upon): |
| 79 | + * [GNU grep and ripgrep](https://github.com/learnbyexample/learn_gnugrep_ripgrep) |
| 80 | + * [GNU sed one-liners](https://github.com/learnbyexample/learn_gnused) |
| 81 | + * [GNU awk one-liners](https://github.com/learnbyexample/learn_gnuawk) |
| 82 | + * [Perl one-liners](https://github.com/learnbyexample/learn_perl_oneliners) |
| 83 | + * [Ruby one-liners](https://github.com/learnbyexample/learn_ruby_oneliners) |
| 84 | + * [Command line text processing with GNU Coreutils](https://github.com/learnbyexample/cli_text_processing_coreutils) — `head`, `tail`, `tr`, `sort`, `pr`, `paste`, `join`, etc |
| 85 | + * [Command line text processing with Rust tools](https://github.com/learnbyexample/cli_text_processing_rust) — `ripgrep`, `frawk`, `hck`, `huniq`, `zet`, etc |
| 86 | +* [unix.stackexchange: learning resources for grep, sed and awk](https://unix.stackexchange.com/q/2434/109046) |
82 | 87 | * [Data ops on the Linux command line](https://www.datafix.com.au/BASHing/) — analysing, archiving, auditing, cleaning, de-duplicating, etc |
83 | | -* [Text Processing Commands](https://tldp.org/LDP/abs/html/textproc.html) |
84 | | -* [ad-hoc data analysis](https://en.wikibooks.org/wiki/Ad_Hoc_Data_Analysis_From_The_Unix_Command_Line) |
85 | | -* grep |
86 | | - * [My book on GNU grep and ripgrep](https://learnbyexample.github.io/learn_gnugrep_ripgrep/) |
87 | | - * [alvinalexander](https://alvinalexander.com/unix/edu/examples/grep.shtml) |
88 | | - * [conqueringthecommandline](http://conqueringthecommandline.com/book/grep) |
89 | | - * [ripgrep](https://blog.burntsushi.net/ripgrep/) |
90 | | - * [ack/ag](http://conqueringthecommandline.com/book/ack_ag) |
91 | | -* sed |
92 | | - * [My book on GNU sed](https://learnbyexample.github.io/learn_gnused/) |
93 | | - * [gentle intro](https://code.snipcademy.com/tutorials/shell-scripting/sed/introduction) |
94 | | - * [grymoire](https://www.grymoire.com/Unix/Sed.html) — detailed tutorial, has details on differences between various `sed` versions as well |
95 | | - * [sed one liners explained](https://catonmat.net/sed-one-liners-explained-part-one) |
96 | | - * [Sed by Example Part 1](https://www.funtoo.org/Sed_by_Example,_Part_1), [Part 2](https://www.funtoo.org/Sed_by_Example,_Part_2), [Part 3](https://www.funtoo.org/Sed_by_Example,_Part_3) |
97 | | - * [Learning Linux Commands: sed](https://linuxconfig.org/learning-linux-commands-sed) |
98 | | -* awk |
99 | | - * [My book on GNU awk](https://learnbyexample.github.io/learn_gnuawk/) |
100 | | - * [gawk manual](https://www.gnu.org/software/gawk/manual/gawk.html#SEC_Contents) for complete reference, examples, extensions and more |
101 | | - * [gentle intro](https://code.snipcademy.com/tutorials/shell-scripting/awk/introduction) |
102 | | - * [grymoire](https://www.grymoire.com/Unix/Awk.html) — detailed tutorial, covers information about different `awk` versions as well |
103 | | - * [awk one liners explained](https://catonmat.net/awk-one-liners-explained-part-one) |
104 | | - * [Awk by Example Part 1](https://www.funtoo.org/Awk_by_Example,_Part_1), [Part 2](https://www.funtoo.org/Awk_by_Example,_Part_2), [Part 3](https://www.funtoo.org/Awk_by_Example,_Part_3) |
105 | | -* [My book on Perl one-liners](https://learnbyexample.github.io/learn_perl_oneliners/) |
106 | | -* [sort](https://www.skorks.com/2010/05/sort-files-like-a-master-with-the-linux-sort-command-bash/) |
107 | | -* find |
108 | | - * [alvinalexander](https://alvinalexander.com/unix/edu/examples/find.shtml) |
109 | | - * [conqueringthecommandline](http://conqueringthecommandline.com/book/find) |
110 | | - |
111 | | -### Miscellaneous |
| 88 | + |
| 89 | +## Miscellaneous |
112 | 90 |
|
113 | 91 | * [Unix and Linux Permissions Primer](https://danielmiessler.com/study/unixlinux_permissions/) |
114 | | -* [Linux Permissions Primer Part I](https://archive.is/2CSlT) — archive copy of catchlinux website |
115 | | -* [rsync](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps) |
116 | | -* [htop](https://peteris.rocks/blog/htop/) — detailed tutorial |
117 | | -* [crontab examples](https://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/) |
| 92 | +* [How To Use Rsync to Sync Local and Remote Directories](https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories) |
| 93 | +* [htop explained](https://peteris.rocks/blog/htop/) — explanation of everything you can see in htop/top on Linux |
| 94 | +* [cron](https://en.wikipedia.org/wiki/Cron) — job scheduler on Unix-like operating systems |
118 | 95 |
|
119 | 96 | ## Further Reading |
120 | 97 |
|
121 | | -* [Unix as IDE](https://sanctum.geek.nz/arabesque/series/unix-as-ide/) |
122 | | -* [command line Q&A](https://unix.stackexchange.com/questions/tagged/command-line?sort=votes&pageSize=15) |
123 | | -* [learn-anything: linux](https://learn-anything.xyz/operating-systems/unix/linux) |
124 | | -* [awesome linux resources](https://github.com/itech001/awesome-linux-resources) |
125 | | -* [awesome shell resources](https://github.com/alebcay/awesome-shell) and [awesome bash](https://github.com/awesome-lists/awesome-bash) |
126 | | -* [bash hackers wiki](https://wiki.bash-hackers.org/start) |
127 | | -* [stronger shell](https://m.odul.us/blog/2015/8/12/stronger-shell) — learnings from Matt Bowen and list of resources |
128 | | -* [bash env variables](https://www.tricksofthetrades.net/2015/06/14/notes-bash-env-variables/) |
129 | | -* Guide to choosing your Linux Distribution, list of applications, etc: |
130 | | - * [awesome-linux](https://github.com/aleksandar-todorovic/awesome-linux#distributions) |
131 | | - * [computefreely](https://computefreely.org/) |
132 | | -* Application lists — for audio, video, graphics & design, development, games etc |
133 | | - * [Arch wiki](https://wiki.archlinux.org/index.php/List_of_applications) |
134 | | - * [alternativeto](https://alternativeto.net/) |
135 | | - * [GNU packages](https://www.gnu.org/manual/manual.html) |
136 | | -* Linux/Bash on Windows |
137 | | - * [git-bash](https://gitforwindows.org/) |
138 | | - * [cygwin](https://www.cygwin.com/) |
139 | | - * [Linux Subsystem for Windows](https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux) |
| 98 | +* [Unix as IDE](https://blog.sanctum.geek.nz/series/unix-as-ide/) |
| 99 | +* [unix.stackexchange: command-line Q&A sorted by votes](https://unix.stackexchange.com/questions/tagged/command-line?sort=votes&pageSize=15) |
| 100 | +* Resource lists |
| 101 | + * [learn-anything: Linux](https://learn-anything.xyz/operating-systems/unix/linux) |
| 102 | + * [Awesome Linux resources](https://github.com/itech001/awesome-linux-resources) |
| 103 | + * [Awesome Shell resources](https://github.com/alebcay/awesome-shell) |
| 104 | + * [Awesome Bash](https://github.com/awesome-lists/awesome-bash) |
| 105 | +* Application lists for audio, video, graphics & design, development, games etc |
| 106 | + * [Arch wiki](https://wiki.archlinux.org/title/List_of_applications) — general list of applications sorted by category, as a reference for those looking for packages |
| 107 | + * [AlternativeTo](https://alternativeto.net/) — crowdsourced software recommendations |
| 108 | + * [GNU packages](https://www.gnu.org/manual/manual.html) — find a tool based on categories |
140 | 109 |
|
141 | 110 | ## Forums |
142 | 111 |
|
143 | 112 | Read instructions provided by respective forums before asking a question. Try solving it yourself before asking — searching online, manual, ask a colleague, etc. |
144 | 113 |
|
145 | | -* [unix stackexchange](https://unix.stackexchange.com/) |
146 | | -* [commandline](https://www.reddit.com/r/commandline) |
| 114 | +* [unix.stackexchange](https://unix.stackexchange.com/) |
| 115 | +* [/r/commandline](https://www.reddit.com/r/commandline) |
147 | 116 | * [/r/bash](https://www.reddit.com/r/bash) |
148 | 117 | * [/r/linux4noobs](https://www.reddit.com/r/linux4noobs) |
149 | 118 | * [/r/linuxquestions](https://www.reddit.com/r/linuxquestions) |
150 | 119 | * [/r/linux](https://www.reddit.com/r/linux) — general linux discussion |
151 | | -* [askubuntu](https://askubuntu.com/questions/tagged/command-line?sort=votes&pageSize=15) — ubuntu specific as well as general linux topics |
| 120 | +* [askubuntu](https://askubuntu.com/questions/tagged/command-line?sort=votes&pageSize=15) — Ubuntu and general Linux topics |
152 | 121 | * [TuxURLs](https://tuxurls.com/) — Linux news aggregator |
153 | | - |
0 commit comments