3 ms·
Thanks, but most of that would be way over the top for my "newbies". However, You must be the third or fourth person today to suggest that I add a TOC - so tha
by snori74 6y ago
Thanks, but most of that would be way over the top for my "newbies".
However, You must be the third or fourth person today to suggest that I add a TOC - so that is something I think I'll need to look at!
- westurner 6y agoMaybe most useful as resources for further study. Looks like Day 20 covers shell scripting. A few things worth mentioning: You can write tests for shell scripts and write TAP (Test Anything Protocol) -formatted output: https://testanything.org/producers.html#shell https://testanything.org/producers.html#shell Quoting in shell scripts is something to be really careful about: > This and this do different things: # prints a newline echo $(echo "-e a\nb") # prints "-e a\nb" echo "$(echo "-e a\nb")" Shellcheck can identify some of those types of (security) bugs/errors/vulns in shell scripts: https://www.shellcheck.net/ https://www.shellcheck.net/ LearnXinYminutes has a good bash reference: https://learnxinyminutes.com/docs/bash/ https://learnxinyminutes.com/docs/bash/ And an okay Ansible reference, which (like Ops School) we should contribute to: https://learnxinyminutes.com/docs/ansible/ https://learnxinyminutes.com/docs/ansible/ Why do so many pros avoid maintaining shell scripts and writing one-off commands that they'll never remember to run again later? ... It may be helpful to format these as Jupyter notebooks with input and output cells. - Ctrl-Shift-Minus splits a cell at the cursor - M and Y toggle a cell between Markdown and code If you don't want to prefix every code cell line with a '!' so that the ipykernel Jupyter python kernel (the default kernel) executes the line with $SHELL, you can instead install and select bash_kernel; though users attempting to run the notebooks interactively would then need to also have bash_kernel installed: https://github.com/takluyver/bash_kernel https://github.com/takluyver/bash_kernel You can save a notebook .ipynb to any of a number of Markdown and non-Markdown formats https://jupytext.readthedocs.io/en/latest/formats.html#markdown-formats https://jupytext.readthedocs.io/en/latest/formats.html#markd... ; unfortunately jupytext only auto-saves to md without output cell content for now: https://github.com/mwouts/jupytext/issues/220 https://github.com/mwouts/jupytext/issues/220 You can make reveal.js slides (that do include outputs) from a notebook: https://gist.github.com/mwouts/04a6dfa571bda5cc59fa1429d130998f https://gist.github.com/mwouts/04a6dfa571bda5cc59fa1429d1309... With nbconvert, you can manually save an .ipynb Jupyter notebook as Markdown which includes the cell outputs w/ File > "Download as / Export Notebook as" > "Export notebook to Markdown" or with the CLI: https://nbconvert.readthedocs.io/en/latest/usage.html#convert-markdown https://nbconvert.readthedocs.io/en/latest/usage.html#conver... jupyter convert --to markdown jupyter convert --help With Jupyter Book, you can build an [interactive] book as HTML and/or PDF from multiple Jupyter notebooks as e.g. Markdown documents https://jupyterbook.org/intro.html https://jupyterbook.org/intro.html : jupyter-book build mybook/ ... From https://westurner.github.io/tools/#bash https://westurner.github.io/tools/#bash : type bash bash --help help help help type apropos bash info bash man bash man man info info From https://news.ycombinator.com/item?id=22980353 https://news.ycombinator.com/item?id=22980353 ; this is how dotfiles work: info bash -n "Bash Startup Files" > https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html https://www.gnu.org/software/bash/manual/html_node/Bash-Star... ... Re: dotfiles, losing commands that should've been logged to HISTFILE when running multiple bash sessions and why I wrote usrlog.sh: https://westurner.github.io/hnlog/#comment-20671184 https://westurner.github.io/hnlog/#comment-20671184 (Ctrl-F for: "dotfiles", "usrlog.sh", "inputrc") https://dotfiles.github.io/ https://dotfiles.github.io/ https://github.com/webpro/awesome-dotfiles https://github.com/webpro/awesome-dotfiles ... awesome-sysadmin > resources: https://github.com/kahun/awesome-sysadmin#resources https://github.com/kahun/awesome-sysadmin#resources