Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 8 insertions
slides.md
| @@ -748,6 +748,14 @@ echo -e "did I miss your favorite tool?" | boxes -d girl -a c | |||
| 748 | 748 | ||
| 749 | 749 | --- | |
| 750 | 750 | ||
| 751 | + | ## Usefull online resources | |
| 752 | + | ||
| 753 | + | - [crontab guru - The quick and simple editor for cron schedule expressions](https://crontab.guru/) | |
| 754 | + | - [Shell Script Best Practices](https://sharats.me/posts/shell-script-best-practices/) | |
| 755 | + | - [Bash Beginner Series](https://linuxhandbook.com/tag/bash-beginner/) | |
| 756 | + | ||
| 757 | + | --- | |
| 758 | + | ||
| 751 | 759 | # Bonus: CLI murder mystery | |
| 752 | 760 | ||
| 753 | 761 | - 3.8k stars https://github.com/veltman/clmystery | |
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 40 insertions, 41 deletions
slides.md
| @@ -111,7 +111,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 111 | 111 | +--------------------+ | |
| 112 | 112 | ``` | |
| 113 | 113 | ||
| 114 | - | --- | |
| 114 | + | -- | |
| 115 | 115 | ||
| 116 | 116 | ## terminals and shells | |
| 117 | 117 | ||
| @@ -126,7 +126,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 126 | 126 | ||
| 127 | 127 | - **everything else** (f.ex. **`PS1`**, scripting language) | |
| 128 | 128 | ||
| 129 | - | --- | |
| 129 | + | -- | |
| 130 | 130 | ||
| 131 | 131 | ## terminal | |
| 132 | 132 | ||
| @@ -149,7 +149,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 149 | 149 | - fish | |
| 150 | 150 | - dash (embedded) | |
| 151 | 151 | ||
| 152 | - | --- | |
| 152 | + | -- | |
| 153 | 153 | ||
| 154 | 154 | ### shell / zsh | |
| 155 | 155 | ||
| @@ -159,7 +159,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 159 | 159 | - oh-my-zsh (151k stars) https://ohmyz.sh | |
| 160 | 160 | - category: shell | |
| 161 | 161 | ||
| 162 | - | --- | |
| 162 | + | -- | |
| 163 | 163 | ||
| 164 | 164 | ### shell / fish: The new kid on the block | |
| 165 | 165 | ||
| @@ -170,7 +170,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 170 | 170 | - oh-my-fish (8.8k stars) https://github.com/oh-my-fish/oh-my-fish | |
| 171 | 171 | - category: shell | |
| 172 | 172 | ||
| 173 | - | --- | |
| 173 | + | -- | |
| 174 | 174 | ||
| 175 | 175 | ### shell / bash | |
| 176 | 176 | ||
| @@ -195,7 +195,7 @@ Extra, nice-to-have information | |||
| 195 | 195 | - git status | |
| 196 | 196 | - environment infos (node / .NET / Java / Python / etc version) | |
| 197 | 197 | ||
| 198 | - | --- | |
| 198 | + | -- | |
| 199 | 199 | ||
| 200 | 200 | ### shell / PS1: liquidprompt | |
| 201 | 201 | ||
| @@ -208,7 +208,7 @@ simple prompt | |||
| 208 | 208 | - available for `zsh`, `bash`, etc | |
| 209 | 209 | - category: unix-porn | |
| 210 | 210 | ||
| 211 | - | --- | |
| 211 | + | -- | |
| 212 | 212 | ||
| 213 | 213 | ### shell / PS1: Powerline | |
| 214 | 214 | ||
| @@ -222,7 +222,7 @@ started as fancy statusline for vim … | |||
| 222 | 222 | - available for `zsh`, `bash`, etc | |
| 223 | 223 | - category: unix-porn | |
| 224 | 224 | ||
| 225 | - | --- | |
| 225 | + | -- | |
| 226 | 226 | ||
| 227 | 227 | ### shell / PS1: Starship | |
| 228 | 228 | ||
| @@ -240,7 +240,7 @@ the new kid on the block | |||
| 240 | 240 | ||
| 241 | 241 | # [Command-Line Operators and What They Do](https://www.makeuseof.com/linux-command-line-chaining-operators/) | |
| 242 | 242 | ||
| 243 | - | --- | |
| 243 | + | -- | |
| 244 | 244 | ||
| 245 | 245 | ## Ampersand Operator (&) | |
| 246 | 246 | ||
| @@ -252,7 +252,7 @@ $ sleep 5 & | |||
| 252 | 252 | - command is executed in the background | |
| 253 | 253 | - shell is freed | |
| 254 | 254 | ||
| 255 | - | --- | |
| 255 | + | -- | |
| 256 | 256 | ||
| 257 | 257 | ## Semicolon Operator (;) | |
| 258 | 258 | ||
| @@ -265,7 +265,7 @@ $ pwd; mkdir /tmp/test; cd /tmp/test; touch foo; readlink -f foo | |||
| 265 | 265 | - chaining execute commands in a defined, sequential order | |
| 266 | 266 | - independend from exit code | |
| 267 | 267 | ||
| 268 | - | --- | |
| 268 | + | -- | |
| 269 | 269 | ||
| 270 | 270 | ## OR Operator (||) | |
| 271 | 271 | ||
| @@ -276,7 +276,7 @@ $ false || uptime | |||
| 276 | 276 | ||
| 277 | 277 | - following command only executed if preceding command fails (exit 0) | |
| 278 | 278 | ||
| 279 | - | --- | |
| 279 | + | -- | |
| 280 | 280 | ||
| 281 | 281 | ## Pipe Operator (|) | |
| 282 | 282 | ||
| @@ -288,7 +288,7 @@ $ lspci | grep -E "(Network|Ethernet)" | |||
| 288 | 288 | ||
| 289 | 289 | - directs output of preceding command as input to succeeding command | |
| 290 | 290 | ||
| 291 | - | --- | |
| 291 | + | -- | |
| 292 | 292 | ||
| 293 | 293 | ## AND Operator (&&) | |
| 294 | 294 | ||
| @@ -303,7 +303,7 @@ $ pwd && mkdir -p /tmp/test && cd /tmp/test && touch foo && readlink -f foo | |||
| 303 | 303 | ||
| 304 | 304 | - following command only executed if preceding command was successfully executed (exit 1) | |
| 305 | 305 | ||
| 306 | - | --- | |
| 306 | + | -- | |
| 307 | 307 | ||
| 308 | 308 | ## NOT Operator (!) | |
| 309 | 309 | ||
| @@ -314,7 +314,7 @@ foo | |||
| 314 | 314 | ||
| 315 | 315 | - works similar to except statement in programming | |
| 316 | 316 | ||
| 317 | - | --- | |
| 317 | + | -- | |
| 318 | 318 | ||
| 319 | 319 | ## Precedence Operator ((..)) | |
| 320 | 320 | ||
| @@ -326,7 +326,7 @@ Did exit with false | |||
| 326 | 326 | - used for grouping and precedence of the execution sequence | |
| 327 | 327 | - inside parentheses, starts [subshell](https://tldp.org/LDP/abs/html/subshells.html#SUBSHELLSREF) | |
| 328 | 328 | ||
| 329 | - | --- | |
| 329 | + | -- | |
| 330 | 330 | ||
| 331 | 331 | ## Combination Operator ({..}) | |
| 332 | 332 | ||
| @@ -338,7 +338,7 @@ $ [ -f hello.txt ] && { echo "file exists" ; echo "hello"; } | |||
| 338 | 338 | ||
| 339 | 339 | - commands are run (or not run) as a whole | |
| 340 | 340 | ||
| 341 | - | --- | |
| 341 | + | -- | |
| 342 | 342 | ||
| 343 | 343 | ## Concatenation or the Escape Operator (\\) | |
| 344 | 344 | ||
| @@ -354,7 +354,7 @@ $ ls test\(1\).txt | |||
| 354 | 354 | - concatenate large commands over several lines | |
| 355 | 355 | - escape character when working with strings | |
| 356 | 356 | ||
| 357 | - | --- | |
| 357 | + | -- | |
| 358 | 358 | ||
| 359 | 359 | ## Redirection Operators (>, >>, <) | |
| 360 | 360 | ||
| @@ -372,7 +372,7 @@ blah | |||
| 372 | 372 | - redirect [stdout](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)) or [stdin](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)) | |
| 373 | 373 | - Use `2>` to handle [sterr](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)) | |
| 374 | 374 | ||
| 375 | - | --- | |
| 375 | + | -- | |
| 376 | 376 | ||
| 377 | 377 | ## References | |
| 378 | 378 | ||
| @@ -387,7 +387,7 @@ blah | |||
| 387 | 387 | # Tools | |
| 388 | 388 | ## You where waiting for | |
| 389 | 389 | ||
| 390 | - | --- | |
| 390 | + | -- | |
| 391 | 391 | ||
| 392 | 392 | ## tldr | |
| 393 | 393 | ||
| @@ -397,7 +397,7 @@ blah | |||
| 397 | 397 | - tldr: implemented in many languages (js, ruby, python, perl, haskell, etc) | |
| 398 | 398 | - Demo: `ln`, `tar`, `scp` | |
| 399 | 399 | ||
| 400 | - | --- | |
| 400 | + | -- | |
| 401 | 401 | ||
| 402 | 402 | ## McFly | |
| 403 | 403 | ||
| @@ -408,7 +408,7 @@ blah | |||
| 408 | 408 | > McFly replaces your default `Ctrl R` shell history search with an intelligent search engine that takes into account your working | |
| 409 | 409 | directory and the context of recently executed commands. McFly’s suggestions are prioritized in real time with a small neural network | |
| 410 | 410 | ||
| 411 | - | --- | |
| 411 | + | -- | |
| 412 | 412 | ||
| 413 | 413 | ## thefuck | |
| 414 | 414 | ||
| @@ -418,7 +418,7 @@ fix common typos / mistakes | |||
| 418 | 418 | - example: pushing a newly created git branch | |
| 419 | 419 | - category: productivity | |
| 420 | 420 | ||
| 421 | - | --- | |
| 421 | + | -- | |
| 422 | 422 | ||
| 423 | 423 | ### The GNU Midnight Commander | |
| 424 | 424 | ||
| @@ -426,7 +426,7 @@ fix common typos / mistakes | |||
| 426 | 426 | - text mode application, but it also includes mouse support | |
| 427 | 427 | - best [features](https://www.uibk.ac.at/th-physik/howto/mc.html) are its ability to FTP, view tar and zip files, and to poke into tar, ar, deb, zip, cpio, lha and rar for specific files | |
| 428 | 428 | ||
| 429 | - | --- | |
| 429 | + | -- | |
| 430 | 430 | ||
| 431 | 431 | ## bat | |
| 432 | 432 | ||
| @@ -437,7 +437,7 @@ _bat looks good on a dark background by default. However, if your terminal uses | |||
| 437 | 437 | ||
| 438 | 438 | - category: read / file display | |
| 439 | 439 | ||
| 440 | - | --- | |
| 440 | + | -- | |
| 441 | 441 | ||
| 442 | 442 | ## ripgrep | |
| 443 | 443 | ||
| @@ -450,7 +450,7 @@ very fast `grep` replacement <!-- (benchmarks on website) --> | |||
| 450 | 450 | ||
| 451 | 451 | - category: search | |
| 452 | 452 | ||
| 453 | - | --- | |
| 453 | + | -- | |
| 454 | 454 | ||
| 455 | 455 | ## ripgrep-all | |
| 456 | 456 | ||
| @@ -466,7 +466,7 @@ cd ~/Dropbox/Apps/Manning\ Books/ | |||
| 466 | 466 | rga Vladimir | |
| 467 | 467 | --> | |
| 468 | 468 | ||
| 469 | - | --- | |
| 469 | + | -- | |
| 470 | 470 | ||
| 471 | 471 | ## fzf | |
| 472 | 472 | ||
| @@ -497,7 +497,7 @@ search for "linux" | |||
| 497 | 497 | cat slides.md | fzf | |
| 498 | 498 | --> | |
| 499 | 499 | ||
| 500 | - | --- | |
| 500 | + | -- | |
| 501 | 501 | ||
| 502 | 502 | ## fd | |
| 503 | 503 | ||
| @@ -516,7 +516,7 @@ simple alternative to `find` | |||
| 516 | 516 | - TODO | |
| 517 | 517 | --> | |
| 518 | 518 | ||
| 519 | - | --- | |
| 519 | + | -- | |
| 520 | 520 | ||
| 521 | 521 | ## hyperfine | |
| 522 | 522 | ||
| @@ -543,7 +543,7 @@ sudo apt install -y /tmp/hyperfine.deb | |||
| 543 | 543 | --> | |
| 544 | 544 | - category: benchmarking | |
| 545 | 545 | ||
| 546 | - | --- | |
| 546 | + | -- | |
| 547 | 547 | ||
| 548 | 548 | ## progress | |
| 549 | 549 | ||
| @@ -565,8 +565,7 @@ unxz, lzma, unlzma, 7z, 7za, zcat, bzcat, lzcat, split, gpg, or wrong permission | |||
| 565 | 565 | - copy from `~/tmp/demo/origin/*` to `~/tmp/demo/destination/` using `cp`. | |
| 566 | 566 | - `watch progress` | |
| 567 | 567 | ||
| 568 | - | ||
| 569 | - | --- | |
| 568 | + | -- | |
| 570 | 569 | ||
| 571 | 570 | ## Ultimate Plumber (up) | |
| 572 | 571 | ||
| @@ -584,7 +583,7 @@ interactive REPL (read–eval–print loop) for shell piping | |||
| 584 | 583 | curl -Lso ~/bin/up "https://github.com/akavel/up/releases/latest/download/up" && chmod +x ~/bin/up | |
| 585 | 584 | --> | |
| 586 | 585 | ||
| 587 | - | --- | |
| 586 | + | -- | |
| 588 | 587 | ||
| 589 | 588 | ## lolcat | |
| 590 | 589 | ||
| @@ -593,7 +592,7 @@ Rainbows and unicorns | |||
| 593 | 592 | - 5.2k stars https://github.com/busyloop/lolcat | |
| 594 | 593 | - category: fun, unix porn | |
| 595 | 594 | ||
| 596 | - | --- | |
| 595 | + | -- | |
| 597 | 596 | ||
| 598 | 597 | ## ttyd | |
| 599 | 598 | ||
| @@ -620,7 +619,7 @@ Rainbows and unicorns | |||
| 620 | 619 | echo -e "ttyd\nshare your terminal over the web" | boxes -d nuke -a c | |
| 621 | 620 | --> | |
| 622 | 621 | ||
| 623 | - | --- | |
| 622 | + | -- | |
| 624 | 623 | ||
| 625 | 624 | ## sl | |
| 626 | 625 | ||
| @@ -631,7 +630,7 @@ typo `sl` (instead of `ls`) -> show steam locomotive | |||
| 631 | 630 | - category: fun, unix porn | |
| 632 | 631 | ||
| 633 | 632 | ||
| 634 | - | --- | |
| 633 | + | -- | |
| 635 | 634 | ||
| 636 | 635 | ## patat | |
| 637 | 636 | ||
| @@ -653,7 +652,7 @@ let foo = "bar"; | |||
| 653 | 652 | ||
| 654 | 653 | - category: presentation, slides, unix porn | |
| 655 | 654 | ||
| 656 | - | --- | |
| 655 | + | -- | |
| 657 | 656 | ||
| 658 | 657 | ## ls on steroids | |
| 659 | 658 | ||
| @@ -669,7 +668,7 @@ Required: font providing all symbols | |||
| 669 | 668 | ||
| 670 | 669 | - Example: NerdFonts https://github.com/ryanoasis/nerd-fonts | |
| 671 | 670 | ||
| 672 | - | --- | |
| 671 | + | -- | |
| 673 | 672 | ||
| 674 | 673 | ## ncdu | |
| 675 | 674 | ||
| @@ -683,7 +682,7 @@ Required: font providing all symbols | |||
| 683 | 682 | ||
| 684 | 683 | ## [the serial way](https://wiki.archlinux.org/title/working_with_the_serial_console#Making_Connections) | |
| 685 | 684 | ||
| 686 | - | --- | |
| 685 | + | -- | |
| 687 | 686 | ||
| 688 | 687 | ## terminal | |
| 689 | 688 | ||
| @@ -695,7 +694,7 @@ $ minicom -s -D /dev/ttyUSB0 | |||
| 695 | 694 | ||
| 696 | 695 | [More serial p0rn](https://vmandela.com/blog/2019/2019-05-28-serial-port-tools.html) | |
| 697 | 696 | ||
| 698 | - | --- | |
| 697 | + | -- | |
| 699 | 698 | ||
| 700 | 699 | ## grafical | |
| 701 | 700 | ||
| @@ -703,7 +702,7 @@ $ minicom -s -D /dev/ttyUSB0 | |||
| 703 | 702 | - moserial | |
| 704 | 703 | - PuTTY | |
| 705 | 704 | ||
| 706 | - | --- | |
| 705 | + | -- | |
| 707 | 706 | ||
| 708 | 707 | ## Windows | |
| 709 | 708 | ||
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 2 insertions, 2 deletions
slides.md
| @@ -85,7 +85,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 85 | 85 | ## Learn the basics | |
| 86 | 86 | ||
| 87 | 87 | - `emacs` and `vim` | |
| 88 | - | - learn navigation, copy & paste, (and how to exit :thumbsup:) | |
| 88 | + | - learn navigation, copy & paste, (and how to exit 👍) | |
| 89 | 89 | - pick one and become fluent | |
| 90 | 90 | ||
| 91 | 91 | - `cd`, `ls`, `cat`, `less`, `find`, `grep`, `sed`, `tail`, `awk`, `dd`, `rsync`, ... | |
| @@ -138,7 +138,7 @@ I've come up with a set of rules that describe our reactions to technologies: | |||
| 138 | 138 | ||
| 139 | 139 | - but think about enriching your output! | |
| 140 | 140 | ||
| 141 | - | - Emojis: :thumbsup: :ballot_box_with_check: :collision: :v: :poop: :speech_balloon: :zap: € ★ :star: | |
| 141 | + | - Emojis: 👍 ✅ 💥 ✌ 💩 💬 🌩 🌟 | |
| 142 | 142 | ||
| 143 | 143 | --- | |
| 144 | 144 | ||
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 1 insertion, 1 deletion
slides.md
| @@ -233,7 +233,7 @@ the new kid on the block | |||
| 233 | 233 | - cross-plattform, cross-shell | |
| 234 | 234 | - stylish | |
| 235 | 235 | - great defaults for many environments | |
| 236 | - | - easy to configure | |
| 236 | + | - easy to [configure](https://starship.rs/config/) | |
| 237 | 237 | - category: unix-porn | |
| 238 | 238 | ||
| 239 | 239 | --- | |
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 151 insertions
slides.md
| @@ -238,6 +238,157 @@ the new kid on the block | |||
| 238 | 238 | ||
| 239 | 239 | --- | |
| 240 | 240 | ||
| 241 | + | # [Command-Line Operators and What They Do](https://www.makeuseof.com/linux-command-line-chaining-operators/) | |
| 242 | + | ||
| 243 | + | --- | |
| 244 | + | ||
| 245 | + | ## Ampersand Operator (&) | |
| 246 | + | ||
| 247 | + | ```bash | |
| 248 | + | $ sleep 5 & | |
| 249 | + | [1] 301161 | |
| 250 | + | ``` | |
| 251 | + | ||
| 252 | + | - command is executed in the background | |
| 253 | + | - shell is freed | |
| 254 | + | ||
| 255 | + | --- | |
| 256 | + | ||
| 257 | + | ## Semicolon Operator (;) | |
| 258 | + | ||
| 259 | + | ```bash | |
| 260 | + | $ pwd; mkdir /tmp/test; cd /tmp/test; touch foo; readlink -f foo | |
| 261 | + | /tmp | |
| 262 | + | /tmp/test/foo | |
| 263 | + | ``` | |
| 264 | + | ||
| 265 | + | - chaining execute commands in a defined, sequential order | |
| 266 | + | - independend from exit code | |
| 267 | + | ||
| 268 | + | --- | |
| 269 | + | ||
| 270 | + | ## OR Operator (||) | |
| 271 | + | ||
| 272 | + | ```bash | |
| 273 | + | $ false || uptime | |
| 274 | + | 11:21:53 up 20 days, 2:30, 1 user, load average: 0,36, 0,35, 0,46 | |
| 275 | + | ``` | |
| 276 | + | ||
| 277 | + | - following command only executed if preceding command fails (exit 0) | |
| 278 | + | ||
| 279 | + | --- | |
| 280 | + | ||
| 281 | + | ## Pipe Operator (|) | |
| 282 | + | ||
| 283 | + | ```bash | |
| 284 | + | $ lspci | grep -E "(Network|Ethernet)" | |
| 285 | + | 00:14.3 Network controller: Intel Corporation Comet Lake PCH-LP CNVi WiFi | |
| 286 | + | 00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (10) I219-V | |
| 287 | + | ``` | |
| 288 | + | ||
| 289 | + | - directs output of preceding command as input to succeeding command | |
| 290 | + | ||
| 291 | + | --- | |
| 292 | + | ||
| 293 | + | ## AND Operator (&&) | |
| 294 | + | ||
| 295 | + | ```bash | |
| 296 | + | $ pwd && mkdir /tmp/test && cd /tmp/test && touch foo && readlink -f foo | |
| 297 | + | /tmp/test | |
| 298 | + | mkdir: cannot create directory '/tmp/test': File exists | |
| 299 | + | $ pwd && mkdir -p /tmp/test && cd /tmp/test && touch foo && readlink -f foo | |
| 300 | + | /tmp/test | |
| 301 | + | /tmp/test/foo | |
| 302 | + | ``` | |
| 303 | + | ||
| 304 | + | - following command only executed if preceding command was successfully executed (exit 1) | |
| 305 | + | ||
| 306 | + | --- | |
| 307 | + | ||
| 308 | + | ## NOT Operator (!) | |
| 309 | + | ||
| 310 | + | ```bash | |
| 311 | + | $ ls !(*.txt) | |
| 312 | + | foo | |
| 313 | + | ``` | |
| 314 | + | ||
| 315 | + | - works similar to except statement in programming | |
| 316 | + | ||
| 317 | + | --- | |
| 318 | + | ||
| 319 | + | ## Precedence Operator ((..)) | |
| 320 | + | ||
| 321 | + | ```bash | |
| 322 | + | $ (true && false) && (false || true) || echo "Did exit with false" | |
| 323 | + | Did exit with false | |
| 324 | + | ``` | |
| 325 | + | ||
| 326 | + | - used for grouping and precedence of the execution sequence | |
| 327 | + | - inside parentheses, starts [subshell](https://tldp.org/LDP/abs/html/subshells.html#SUBSHELLSREF) | |
| 328 | + | ||
| 329 | + | --- | |
| 330 | + | ||
| 331 | + | ## Combination Operator ({..}) | |
| 332 | + | ||
| 333 | + | ```bash | |
| 334 | + | $ [ -f hello.txt ] && echo "file exists" ; echo "hello" | |
| 335 | + | hello | |
| 336 | + | $ [ -f hello.txt ] && { echo "file exists" ; echo "hello"; } | |
| 337 | + | ``` | |
| 338 | + | ||
| 339 | + | - commands are run (or not run) as a whole | |
| 340 | + | ||
| 341 | + | --- | |
| 342 | + | ||
| 343 | + | ## Concatenation or the Escape Operator (\\) | |
| 344 | + | ||
| 345 | + | ```bash | |
| 346 | + | $ echo "Hello! from the\ | |
| 347 | + | > other side" | |
| 348 | + | Hello! from theother side | |
| 349 | + | $ touch test\(1\).txt | |
| 350 | + | $ ls test\(1\).txt | |
| 351 | + | 'test(1).txt' | |
| 352 | + | ``` | |
| 353 | + | ||
| 354 | + | - concatenate large commands over several lines | |
| 355 | + | - escape character when working with strings | |
| 356 | + | ||
| 357 | + | --- | |
| 358 | + | ||
| 359 | + | ## Redirection Operators (>, >>, <) | |
| 360 | + | ||
| 361 | + | ```bash | |
| 362 | + | $ echo "dsd" > test; echo "bssss" >> test; cat test | |
| 363 | + | dsd | |
| 364 | + | bssss | |
| 365 | + | $ sort < test | |
| 366 | + | bssss | |
| 367 | + | dsd | |
| 368 | + | $ echo "blah" > test; cat test | |
| 369 | + | blah | |
| 370 | + | ``` | |
| 371 | + | ||
| 372 | + | - redirect [stdout](https://en.wikipedia.org/wiki/Standard_streams#Standard_output_(stdout)) or [stdin](https://en.wikipedia.org/wiki/Standard_streams#Standard_input_(stdin)) | |
| 373 | + | - Use `2>` to handle [sterr](https://en.wikipedia.org/wiki/Standard_streams#Standard_error_(stderr)) | |
| 374 | + | ||
| 375 | + | --- | |
| 376 | + | ||
| 377 | + | ## References | |
| 378 | + | ||
| 379 | + | - [10 Linux Command-Line Operators and What They Do](https://www.makeuseof.com/linux-command-line-chaining-operators/) | |
| 380 | + | - [Chaining Commands in Linux](https://www.geeksforgeeks.org/chaining-commands-in-linux/) | |
| 381 | + | - [Basics on bash operators](https://lumian2015.github.io/MoreOnLinux/chapter1.html) | |
| 382 | + | - [10 Useful Chaining Operators in Linux with Practical Examples](https://www.tecmint.com/chaining-operators-in-linux-with-practical-examples/) | |
| 383 | + | - [6 Bash Shell Command Line Chaining Operators in Linux](https://www.thegeekdiary.com/6-bash-shell-command-line-chaining-operators-in-linux/) | |
| 384 | + | ||
| 385 | + | --- | |
| 386 | + | ||
| 387 | + | # Tools | |
| 388 | + | ## You where waiting for | |
| 389 | + | ||
| 390 | + | --- | |
| 391 | + | ||
| 241 | 392 | ## tldr | |
| 242 | 393 | ||
| 243 | 394 | - 41k stars https://tldr.sh/ | |
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 2 insertions
slides.md
| @@ -542,6 +542,8 @@ $ screen /dev/ttyUSB0 115200 | |||
| 542 | 542 | $ minicom -s -D /dev/ttyUSB0 | |
| 543 | 543 | ``` | |
| 544 | 544 | ||
| 545 | + | [More serial p0rn](https://vmandela.com/blog/2019/2019-05-28-serial-port-tools.html) | |
| 546 | + | ||
| 545 | 547 | --- | |
| 546 | 548 | ||
| 547 | 549 | ## grafical | |
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 32 insertions, 1 deletion
slides.md
| @@ -528,7 +528,38 @@ Required: font providing all symbols | |||
| 528 | 528 | ||
| 529 | 529 | --- | |
| 530 | 530 | ||
| 531 | - | # monitoring | |
| 531 | + | # Making Connections | |
| 532 | + | ||
| 533 | + | ## [the serial way](https://wiki.archlinux.org/title/working_with_the_serial_console#Making_Connections) | |
| 534 | + | ||
| 535 | + | --- | |
| 536 | + | ||
| 537 | + | ## terminal | |
| 538 | + | ||
| 539 | + | ``` | |
| 540 | + | $ picocom -b 115200 /dev/ttyUSB0 | |
| 541 | + | $ screen /dev/ttyUSB0 115200 | |
| 542 | + | $ minicom -s -D /dev/ttyUSB0 | |
| 543 | + | ``` | |
| 544 | + | ||
| 545 | + | --- | |
| 546 | + | ||
| 547 | + | ## grafical | |
| 548 | + | ||
| 549 | + | - cutecom | |
| 550 | + | - moserial | |
| 551 | + | - PuTTY | |
| 552 | + | ||
| 553 | + | --- | |
| 554 | + | ||
| 555 | + | ## Windows | |
| 556 | + | ||
| 557 | + | - [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) | |
| 558 | + | - [Terminalbpp](https://sites.google.com/site/terminalbpp/) | |
| 559 | + | ||
| 560 | + | --- | |
| 561 | + | ||
| 562 | + | ## monitoring | |
| 532 | 563 | ||
| 533 | 564 | - htop | |
| 534 | 565 | - apachetop | |
Jan Wagner revised this gist 3 years ago. Go to revision
1 file changed, 572 insertions
slides.md(file created)
| @@ -0,0 +1,572 @@ | |||
| 1 | + | <style type="text/css"> | |
| 2 | + | .reveal p { | |
| 3 | + | text-align: left; | |
| 4 | + | } | |
| 5 | + | .reveal ul { | |
| 6 | + | display: block; | |
| 7 | + | } | |
| 8 | + | .reveal ol { | |
| 9 | + | display: block; | |
| 10 | + | } | |
| 11 | + | </style> | |
| 12 | + | ||
| 13 | + | ```text | |
| 14 | + | __ __ _ _ _ | |
| 15 | + | | \/ | ___ __| | ___ _ __ _ __ | (_)_ __ _ ___ __ | |
| 16 | + | | |\/| |/ _ \ / _` |/ _ \ '__| '_ \ | | | '_ \| | | \ \/ / | |
| 17 | + | | | | | (_) | (_| | __/ | | | | | | | | | | | |_| |> < | |
| 18 | + | |_| |_|\___/ \__,_|\___|_| |_| |_| |_|_|_| |_|\__,_/_/\_\ | |
| 19 | + | ||
| 20 | + | _ _ _ _ | |
| 21 | + | ___| (_) | |_ ___ ___ | |___ | |
| 22 | + | / __| | | | __/ _ \ / _ \| / __| | |
| 23 | + | | (__| | | | || (_) | (_) | \__ \ | |
| 24 | + | \___|_|_| \__\___/ \___/|_|___/ | |
| 25 | + | ||
| 26 | + | ``` | |
| 27 | + | <!-- | |
| 28 | + | --- | |
| 29 | + | ||
| 30 | + | ## "modern" is relative... | |
| 31 | + | ||
| 32 | + | **Douglas Adams** | |
| 33 | + | ||
| 34 | + | I've come up with a set of rules that describe our reactions to technologies: | |
| 35 | + | ||
| 36 | + | > 1. Anything that is in the world **when you're born** is normal and ordinary and is just a natural part of the way the world works. | |
| 37 | + | > | |
| 38 | + | > 2. Anything that's invented **between when you're fifteen and thirty-five** is new and exciting and revolutionary and you can probably get a career in it. | |
| 39 | + | > | |
| 40 | + | > 3. Anything invented **after you're thirty-five** is against the natural order of things. | |
| 41 | + | --> | |
| 42 | + | ||
| 43 | + | --- | |
| 44 | + | ||
| 45 | + | ## Target audience | |
| 46 | + | ||
| 47 | + | - linux desktop CLI users | |
| 48 | + | - linux admins | |
| 49 | + | ||
| 50 | + | ```text | |
| 51 | + | __________________________________________ | |
| 52 | + | / This is the year of linux on the desktop \ | |
| 53 | + | | | | |
| 54 | + | | ...Windows10 has WSL ;-) | | |
| 55 | + | \ / | |
| 56 | + | ------------------------------------------ | |
| 57 | + | \ ^__^ | |
| 58 | + | \ (oo)\_______ | |
| 59 | + | (__)\ )\/\ | |
| 60 | + | ||----w | | |
| 61 | + | || || | |
| 62 | + | ``` | |
| 63 | + | ||
| 64 | + | --- | |
| 65 | + | ||
| 66 | + | ## Linux tooling philosophy | |
| 67 | + | ||
| 68 | + | - **do one thing (and only one thing!) well** | |
| 69 | + | ||
| 70 | + | - **chaining** | |
| 71 | + | ||
| 72 | + | - _sound familiar? (hint: functional programming...)_ | |
| 73 | + | ||
| 74 | + | --- | |
| 75 | + | ||
| 76 | + | ## Why? Improvements to... | |
| 77 | + | ||
| 78 | + | - **productivity** | |
| 79 | + | ||
| 80 | + | - **optics** | |
| 81 | + | - "unix porn" (`PS1`, `ls`, ...) | |
| 82 | + | ||
| 83 | + | --- | |
| 84 | + | ||
| 85 | + | ## Learn the basics | |
| 86 | + | ||
| 87 | + | - `emacs` and `vim` | |
| 88 | + | - learn navigation, copy & paste, (and how to exit :thumbsup:) | |
| 89 | + | - pick one and become fluent | |
| 90 | + | ||
| 91 | + | - `cd`, `ls`, `cat`, `less`, `find`, `grep`, `sed`, `tail`, `awk`, `dd`, `rsync`, ... | |
| 92 | + | - Combine using pipes ( `|` ) and redirection ( `>` ) | |
| 93 | + | ||
| 94 | + | --- | |
| 95 | + | ||
| 96 | + | ## terminals and shells | |
| 97 | + | ||
| 98 | + | ### What is the difference between **terminal** and **shell**? | |
| 99 | + | ||
| 100 | + | ```text | |
| 101 | + | +--------------------+ | |
| 102 | + | | "terminal" | | |
| 103 | + | +--------------------+ | |
| 104 | + | | | | |
| 105 | + | | +--------------+ | | |
| 106 | + | | | | | | |
| 107 | + | | | "shell" | | | |
| 108 | + | | | | | | |
| 109 | + | | +--------------+ | | |
| 110 | + | | | | |
| 111 | + | +--------------------+ | |
| 112 | + | ``` | |
| 113 | + | ||
| 114 | + | --- | |
| 115 | + | ||
| 116 | + | ## terminals and shells | |
| 117 | + | ||
| 118 | + | ### terminal | |
| 119 | + | ||
| 120 | + | - **colors** (16 or more), **fonts** (utf8, ligatures, ...) | |
| 121 | + | - **interactions** | |
| 122 | + | - keyboard shortcuts | |
| 123 | + | - mouse interaction (copy & paste, scrolling, selection, ...) | |
| 124 | + | ||
| 125 | + | ### shell | |
| 126 | + | ||
| 127 | + | - **everything else** (f.ex. **`PS1`**, scripting language) | |
| 128 | + | ||
| 129 | + | --- | |
| 130 | + | ||
| 131 | + | ## terminal | |
| 132 | + | ||
| 133 | + | ### What is the best terminal? | |
| 134 | + | ||
| 135 | + | - use your default | |
| 136 | + | ||
| 137 | + | ### Unicode, Emojis, Fonts, Image support (!) | |
| 138 | + | ||
| 139 | + | - but think about enriching your output! | |
| 140 | + | ||
| 141 | + | - Emojis: :thumbsup: :ballot_box_with_check: :collision: :v: :poop: :speech_balloon: :zap: € ★ :star: | |
| 142 | + | ||
| 143 | + | --- | |
| 144 | + | ||
| 145 | + | ## shell | |
| 146 | + | ||
| 147 | + | - bash | |
| 148 | + | - zsh | |
| 149 | + | - fish | |
| 150 | + | - dash (embedded) | |
| 151 | + | ||
| 152 | + | --- | |
| 153 | + | ||
| 154 | + | ### shell / zsh | |
| 155 | + | ||
| 156 | + | - https://www.zsh.org/ | |
| 157 | + | ||
| 158 | + | - package manager | |
| 159 | + | - oh-my-zsh (151k stars) https://ohmyz.sh | |
| 160 | + | - category: shell | |
| 161 | + | ||
| 162 | + | --- | |
| 163 | + | ||
| 164 | + | ### shell / fish: The new kid on the block | |
| 165 | + | ||
| 166 | + | - https://fishshell.com | |
| 167 | + | ||
| 168 | + | - package manager | |
| 169 | + | - fisher (6.1k stars) https://github.com/jorgebucaran/fisher | |
| 170 | + | - oh-my-fish (8.8k stars) https://github.com/oh-my-fish/oh-my-fish | |
| 171 | + | - category: shell | |
| 172 | + | ||
| 173 | + | --- | |
| 174 | + | ||
| 175 | + | ### shell / bash | |
| 176 | + | ||
| 177 | + | - https://www.gnu.org/software/bash/ | |
| 178 | + | ||
| 179 | + | - package manager | |
| 180 | + | - bash-it (13.2k stars) https://github.com/Bash-it/bash-it | |
| 181 | + | - oh-my-bash (3.5k stars) https://ohmybash.github.io | |
| 182 | + | - category: shell | |
| 183 | + | ||
| 184 | + | --- | |
| 185 | + | ||
| 186 | + | ### shell / PS1 | |
| 187 | + | ||
| 188 | + | PS1: alias for "prompt" | |
| 189 | + | - default: `username:/some/location$` | |
| 190 | + | - `$PWD` present working directory | |
| 191 | + | ||
| 192 | + | Extra, nice-to-have information | |
| 193 | + | - only show relevant parts (hide user/machine name on local machine) | |
| 194 | + | - compact location ( $PWD ) | |
| 195 | + | - git status | |
| 196 | + | - environment infos (node / .NET / Java / Python / etc version) | |
| 197 | + | ||
| 198 | + | --- | |
| 199 | + | ||
| 200 | + | ### shell / PS1: liquidprompt | |
| 201 | + | ||
| 202 | + | simple prompt | |
| 203 | + | ||
| 204 | + | - 4.2k stars https://github.com/nojhan/liquidprompt | |
| 205 | + | ||
| 206 | + | - shortens `$PWD` | |
| 207 | + | - adds git status | |
| 208 | + | - available for `zsh`, `bash`, etc | |
| 209 | + | - category: unix-porn | |
| 210 | + | ||
| 211 | + | --- | |
| 212 | + | ||
| 213 | + | ### shell / PS1: Powerline | |
| 214 | + | ||
| 215 | + | started as fancy statusline for vim … | |
| 216 | + | ||
| 217 | + | - 11k stars https://github.com/powerline/powerline | |
| 218 | + | ||
| 219 | + | - started as fancy statusline for `vim`... | |
| 220 | + | - shortens `$PWD` | |
| 221 | + | - adds git status | |
| 222 | + | - available for `zsh`, `bash`, etc | |
| 223 | + | - category: unix-porn | |
| 224 | + | ||
| 225 | + | --- | |
| 226 | + | ||
| 227 | + | ### shell / PS1: Starship | |
| 228 | + | ||
| 229 | + | the new kid on the block | |
| 230 | + | ||
| 231 | + | - 16k stars https://github.com/starship/starship | |
| 232 | + | ||
| 233 | + | - cross-plattform, cross-shell | |
| 234 | + | - stylish | |
| 235 | + | - great defaults for many environments | |
| 236 | + | - easy to configure | |
| 237 | + | - category: unix-porn | |
| 238 | + | ||
| 239 | + | --- | |
| 240 | + | ||
| 241 | + | ## tldr | |
| 242 | + | ||
| 243 | + | - 41k stars https://tldr.sh/ | |
| 244 | + | ||
| 245 | + | - man pages can be difficult | |
| 246 | + | - tldr: implemented in many languages (js, ruby, python, perl, haskell, etc) | |
| 247 | + | - Demo: `ln`, `tar`, `scp` | |
| 248 | + | ||
| 249 | + | --- | |
| 250 | + | ||
| 251 | + | ## McFly | |
| 252 | + | ||
| 253 | + | - 4.5 stars https://github.com/cantino/mcfly | |
| 254 | + | ||
| 255 | + | - category: history search | |
| 256 | + | ||
| 257 | + | > McFly replaces your default `Ctrl R` shell history search with an intelligent search engine that takes into account your working | |
| 258 | + | directory and the context of recently executed commands. McFly’s suggestions are prioritized in real time with a small neural network | |
| 259 | + | ||
| 260 | + | --- | |
| 261 | + | ||
| 262 | + | ## thefuck | |
| 263 | + | ||
| 264 | + | fix common typos / mistakes | |
| 265 | + | ||
| 266 | + | - 51k stars https://github.com/nvbn/thefuck | |
| 267 | + | - example: pushing a newly created git branch | |
| 268 | + | - category: productivity | |
| 269 | + | ||
| 270 | + | --- | |
| 271 | + | ||
| 272 | + | ### The GNU Midnight Commander | |
| 273 | + | ||
| 274 | + | [mc](http://midnight-commander.org/) is a visual shell much like a file manager, only with many more features | |
| 275 | + | - text mode application, but it also includes mouse support | |
| 276 | + | - best [features](https://www.uibk.ac.at/th-physik/howto/mc.html) are its ability to FTP, view tar and zip files, and to poke into tar, ar, deb, zip, cpio, lha and rar for specific files | |
| 277 | + | ||
| 278 | + | --- | |
| 279 | + | ||
| 280 | + | ## bat | |
| 281 | + | ||
| 282 | + | `cat` & `less` with syntax highlighting | |
| 283 | + | - 37.6k stars https://github.com/sharkdp/bat | |
| 284 | + | ||
| 285 | + | _bat looks good on a dark background by default. However, if your terminal uses a light background, some themes like GitHub or OneHalfLight will work better for you._ | |
| 286 | + | ||
| 287 | + | - category: read / file display | |
| 288 | + | ||
| 289 | + | --- | |
| 290 | + | ||
| 291 | + | ## ripgrep | |
| 292 | + | ||
| 293 | + | very fast `grep` replacement <!-- (benchmarks on website) --> | |
| 294 | + | - 33.7k stars https://github.com/BurntSushi/ripgrep | |
| 295 | + | - `ripgrep` recursively searches directories for a regex pattern | |
| 296 | + | - sensible defaults: respect `.gitignore`, ignores hidden files & folders | |
| 297 | + | - command: `rg` | |
| 298 | + | - use `rg hidden g '!.git' "your search"` to search all hidden folder except .git | |
| 299 | + | ||
| 300 | + | - category: search | |
| 301 | + | ||
| 302 | + | --- | |
| 303 | + | ||
| 304 | + | ## ripgrep-all | |
| 305 | + | ||
| 306 | + | ripgrep, but also search in PDFs, E-Books, Office documents, zip, tar.gz, sqlite (!), etc | |
| 307 | + | - 5k stars https://github.com/phiresky/ripgrep-all | |
| 308 | + | - command: `rga` | |
| 309 | + | - faster than `pdfgrep` (see website for a benchmark) | |
| 310 | + | - category: search | |
| 311 | + | - Demo: search in Manning books folder | |
| 312 | + | ||
| 313 | + | <!-- | |
| 314 | + | cd ~/Dropbox/Apps/Manning\ Books/ | |
| 315 | + | rga Vladimir | |
| 316 | + | --> | |
| 317 | + | ||
| 318 | + | --- | |
| 319 | + | ||
| 320 | + | ## fzf | |
| 321 | + | ||
| 322 | + | interactive fuzzy search | |
| 323 | + | - 47.5k stars https://github.com/junegunn/fzf | |
| 324 | + | - pipe any line based input to fzf: Example `find * -type f | fzf` | |
| 325 | + | - good integration with other tools | |
| 326 | + | - nice helper methods for | |
| 327 | + | - files & directories `cd **<TAB>` | |
| 328 | + | - kill `kill -9 <TAB>` | |
| 329 | + | - host names `ssh **<TAB>` | |
| 330 | + | - environment variables & aliases `unset **<TAB>`, `export **<TAB>`, `unalias **<TAB>` | |
| 331 | + | - category: search | |
| 332 | + | - Demos: | |
| 333 | + | - find files and select them | |
| 334 | + | - search a text file | |
| 335 | + | ||
| 336 | + | <!-- | |
| 337 | + | ||
| 338 | + | cd ~/exercism | |
| 339 | + | ## `fzf -m` multiselect | |
| 340 | + | ## select files with Shift+TAB | |
| 341 | + | ## search for "bob" | |
| 342 | + | find * -type f | fzf -m | |
| 343 | + | ||
| 344 | + | cd . | |
| 345 | + | search for "linux" | |
| 346 | + | cat slides.md | fzf | |
| 347 | + | --> | |
| 348 | + | ||
| 349 | + | --- | |
| 350 | + | ||
| 351 | + | ## fd | |
| 352 | + | ||
| 353 | + | - 24.9k stars https://github.com/sharkdp/fd | |
| 354 | + | ||
| 355 | + | simple alternative to `find` | |
| 356 | + | - "The command name is 50% shorter than `find`" | |
| 357 | + | - Convenient syntax `fd PATTERN` (instead of `find -iname '*PATTERN*'`) | |
| 358 | + | - Sensible defaults: `.gitignore`, ignore hidden files/folders | |
| 359 | + | - fast | |
| 360 | + | - category: search | |
| 361 | + | ||
| 362 | + | <!-- | |
| 363 | + | # Demo | |
| 364 | + | ||
| 365 | + | - TODO | |
| 366 | + | --> | |
| 367 | + | ||
| 368 | + | --- | |
| 369 | + | ||
| 370 | + | ## hyperfine | |
| 371 | + | ||
| 372 | + | benchmarking tool | |
| 373 | + | ||
| 374 | + | - 13.1k stars https://github.com/sharkdp/hyperfine | |
| 375 | + | ||
| 376 | + | ```bash | |
| 377 | + | # comparing `fd` with `find` | |
| 378 | + | ||
| 379 | + | # ubuntu uses `fdfind` by default | |
| 380 | + | hyperfine --warmup 3 'fdfind -HI '.*[0-9]\.jpg$'' 'find ~ -iregex '.*[0-9]\.jpg'' | |
| 381 | + | ||
| 382 | + | # arch | |
| 383 | + | hyperfine --warmup 3 'fd -HI '.*[0-9]\.jpg$' Documents/talks' 'find Documents/talks -iregex '.*[0-9]\.jpg$'' | |
| 384 | + | ||
| 385 | + | # unfair comparison: `fd` ignores hidden files and `.git` be default | |
| 386 | + | hyperfine --warmup 3 'fd '.*[0-9]\.jpg$' Documents/talks' 'find Documents/talks -iregex '.*[0-9]\.jpg$'' | |
| 387 | + | ``` | |
| 388 | + | <!-- | |
| 389 | + | HYPERFINE_VERSION=$(curl -s "https://api.github.com/repos/sharkdp/hyperfine/releases/latest" | grep -Po '"tag_name": "v\K[0-9.]+') | |
| 390 | + | curl -Lso /tmp/hyperfine.deb "https://github.com/sharkdp/hyperfine/releases/latest/download/hyperfine_${HYPERFINE_VERSION}_amd64.deb" | |
| 391 | + | sudo apt install -y /tmp/hyperfine.deb | |
| 392 | + | --> | |
| 393 | + | - category: benchmarking | |
| 394 | + | ||
| 395 | + | --- | |
| 396 | + | ||
| 397 | + | ## progress | |
| 398 | + | ||
| 399 | + | monitor any kind of "copy" | |
| 400 | + | ||
| 401 | + | - 5.8k stars https://github.com/Xfennec/progress | |
| 402 | + | - attach to any kind of copy | |
| 403 | + | - category: monitoring | |
| 404 | + | ||
| 405 | + | ```sh | |
| 406 | + | No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, | |
| 407 | + | sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, | |
| 408 | + | unxz, lzma, unlzma, 7z, 7za, zcat, bzcat, lzcat, split, gpg, or wrong permissions. | |
| 409 | + | ``` | |
| 410 | + | ||
| 411 | + | - Demo: | |
| 412 | + | - `~/tmp/demo/origin/` contains very large file | |
| 413 | + | - tmux split screen `~/tmp/demo/` | |
| 414 | + | - copy from `~/tmp/demo/origin/*` to `~/tmp/demo/destination/` using `cp`. | |
| 415 | + | - `watch progress` | |
| 416 | + | ||
| 417 | + | ||
| 418 | + | --- | |
| 419 | + | ||
| 420 | + | ## Ultimate Plumber (up) | |
| 421 | + | ||
| 422 | + | interactive REPL (read–eval–print loop) for shell piping | |
| 423 | + | ||
| 424 | + | - 7.8k stars https://github.com/akavel/up | |
| 425 | + | ||
| 426 | + | - interactive piping | |
| 427 | + | - instant live preview | |
| 428 | + | - category: search, file manipulation, interactive | |
| 429 | + | ||
| 430 | + | - Demo: images/up-demo.gif | |
| 431 | + | ||
| 432 | + | <!-- | |
| 433 | + | curl -Lso ~/bin/up "https://github.com/akavel/up/releases/latest/download/up" && chmod +x ~/bin/up | |
| 434 | + | --> | |
| 435 | + | ||
| 436 | + | --- | |
| 437 | + | ||
| 438 | + | ## lolcat | |
| 439 | + | ||
| 440 | + | Rainbows and unicorns | |
| 441 | + | ||
| 442 | + | - 5.2k stars https://github.com/busyloop/lolcat | |
| 443 | + | - category: fun, unix porn | |
| 444 | + | ||
| 445 | + | --- | |
| 446 | + | ||
| 447 | + | ## ttyd | |
| 448 | + | ||
| 449 | + | - 4.4 stars https://tsl0922.github.io/ttyd/ | |
| 450 | + | ||
| 451 | + | ```text | |
| 452 | + | _ ._ _ , _ ._ | |
| 453 | + | (_ ' ( ` )_ .__) | |
| 454 | + | ( ( ( ) `) ) _) | |
| 455 | + | (__ (_ (_ . _) _) ,__) | |
| 456 | + | `~~`\ ' . /`~~` | |
| 457 | + | ,::: ; ; :::, | |
| 458 | + | ':::::::::::::::' | |
| 459 | + | ______________/_ __ \_____________ | |
| 460 | + | | | | |
| 461 | + | | ttyd | | |
| 462 | + | | share your terminal over the web | | |
| 463 | + | |__________________________________| | |
| 464 | + | ``` | |
| 465 | + | ||
| 466 | + | - category: network, dangerous | |
| 467 | + | ||
| 468 | + | <!-- | |
| 469 | + | echo -e "ttyd\nshare your terminal over the web" | boxes -d nuke -a c | |
| 470 | + | --> | |
| 471 | + | ||
| 472 | + | --- | |
| 473 | + | ||
| 474 | + | ## sl | |
| 475 | + | ||
| 476 | + | typo `sl` (instead of `ls`) -> show steam locomotive | |
| 477 | + | ||
| 478 | + | - 2.5k stars https://github.com/mtoyoda/sl | |
| 479 | + | ||
| 480 | + | - category: fun, unix porn | |
| 481 | + | ||
| 482 | + | ||
| 483 | + | --- | |
| 484 | + | ||
| 485 | + | ## patat | |
| 486 | + | ||
| 487 | + | - 1.9k stars https://github.com/jaspervdj/patat | |
| 488 | + | ||
| 489 | + | - nerdy slides in your shell | |
| 490 | + | - runs in a terminal (similar to `revealJs` for the browser) | |
| 491 | + | - Pandoc syntax (f. ex. markdown) | |
| 492 | + | - syntax highlighting | |
| 493 | + | ||
| 494 | + | ```javascript | |
| 495 | + | let foo = "bar"; | |
| 496 | + | ``` | |
| 497 | + | <!-- | |
| 498 | + | - emojis: :thumbsup:, :white_check_mark:, :ballot_box_with_check:, :collision: | |
| 499 | + | --> | |
| 500 | + | - next slide: experimental image support in some terminals (same as for `ranger`) | |
| 501 | + | - `iterm2`, `urxvt`, `kitty` | |
| 502 | + | ||
| 503 | + | - category: presentation, slides, unix porn | |
| 504 | + | ||
| 505 | + | --- | |
| 506 | + | ||
| 507 | + | ## ls on steroids | |
| 508 | + | ||
| 509 | + | `ls` problem: sort by name and time at the same time... | |
| 510 | + | ||
| 511 | + | **Use colors!** | |
| 512 | + | ||
| 513 | + | - `colorls` ("the original" in ruby: https://github.com/athityakumar/colorls) | |
| 514 | + | - `lsd` (in rust: https://github.com/Peltoche/lsd) | |
| 515 | + | - `exa` (in rust: https://github.com/ogham/exa) | |
| 516 | + | ||
| 517 | + | Required: font providing all symbols | |
| 518 | + | ||
| 519 | + | - Example: NerdFonts https://github.com/ryanoasis/nerd-fonts | |
| 520 | + | ||
| 521 | + | --- | |
| 522 | + | ||
| 523 | + | ## ncdu | |
| 524 | + | ||
| 525 | + | - https://dev.yorhel.nl/ncdu | |
| 526 | + | ||
| 527 | + | - interactive `df` alternative | |
| 528 | + | ||
| 529 | + | --- | |
| 530 | + | ||
| 531 | + | # monitoring | |
| 532 | + | ||
| 533 | + | - htop | |
| 534 | + | - apachetop | |
| 535 | + | - ngxtop | |
| 536 | + | - mtp | |
| 537 | + | - pg_top | |
| 538 | + | - powertop | |
| 539 | + | - iotop | |
| 540 | + | - iftop | |
| 541 | + | - nethogs | |
| 542 | + | ||
| 543 | + | --- | |
| 544 | + | ||
| 545 | + | ## Some more tools | |
| 546 | + | ||
| 547 | + | - mosh (robust replacement for ssh) https://mosh.org/ | |
| 548 | + | - neofetch (fancy system info in the shell) 7.7k stars https://github.com/dylanaraps/neofetch | |
| 549 | + | - expect https://likegeeks.com/expect-command/ | |
| 550 | + | - jq (sed for json) https://stedolan.github.io/jq/ | |
| 551 | + | - httpie (cli http client) 45k stars https://httpie.org/ | |
| 552 | + | - http-prompt (cli http client) 7.6k stars http://http-prompt.com/ | |
| 553 | + | - pywal (color schemes for terminal) 3.4k stars https://github.com/dylanaraps/pywal | |
| 554 | + | - fish_config (web-based configuration tool for fish shell) https://fishshell.com/docs/current/commands.html#fish_config | |
| 555 | + | - xclip (cli to X clipboard) 403 stars https://github.com/astrand/xclip | |
| 556 | + | - apt-iselect (interactive ncurses package search for debian) https://www.rot13.org/~dpavlin/apt-iselect.html | |
| 557 | + | - gcalcli (google calender in the shell) 2k stars https://github.com/insanum/gcalcli | |
| 558 | + | - pastebinit (cli tool to send data to pastebin) 17 stars https://github.com/skorokithakis/pastebinit | |
| 559 | + | - MapSCII (ascii google maps in the terminal) https://github.com/rastapasta/mapscii | |
| 560 | + | - alwaysontop (always move prompt to top of screen) 160 stars https://github.com/swirepe/alwaysontop | |
| 561 | + | ||
| 562 | + | <!-- | |
| 563 | + | echo -e "did I miss your favorite tool?" | boxes -d girl -a c | |
| 564 | + | --> | |
| 565 | + | ||
| 566 | + | --- | |
| 567 | + | ||
| 568 | + | # Bonus: CLI murder mystery | |
| 569 | + | ||
| 570 | + | - 3.8k stars https://github.com/veltman/clmystery | |
| 571 | + | ||
| 572 | + | - CLI murder mystery | |