\[ \let\oldlor\lor \renewcommand{\lor}{\; \oldlor \;} \let\oldland\land \renewcommand{\land}{\; \oldland \;} \renewcommand{\set}[1]{\{\, #1 \,\}} \renewcommand{\given}{\,\mid\,} \renewcommand{\abs}[1]{\lvert #1 \rvert} \renewcommand{\divs}{\!\;\mid\;\!} \renewcommand{\ndivs}{\!\;\nmid\;\!} \renewcommand{\betw}[3][1]{#1 \leq #2 \leq #3} \renewcommand{\mod}[1]{\ (\mathrm{mod}\ #1)} \renewcommand{\floor}[1]{\left \lfloor #1 \right \rfloor} \renewcommand{\ceil}[1]{\left \lceil #1 \right \rceil} \renewcommand{\t}[1]{\texttt{#1}} \renewcommand{\fori}[2][i]{\text{for } #1 = 0, 1, \dots, #2} \renewcommand{\x}[1]{\text{#1}} \renewcommand\concat{\mathbin{+\mkern-10mu+}} \DeclareMathOperator*{\CONCAT}{\concat} \DeclareMathOperator*{\SCC}{\|} \]

Shell Scripting and CLI

Learn about scripting with Batch, PowerShell, and Bash.

Learning the command-line interface is an integral part of becoming a competent and well-rounded developer. As programmers, it behooves us to be versatile. Whether we are coming onto a preexisting project, sending source code to someone on the Internet, or reading an answer on StackOverflow, it is our responsibility to be able to extract meaning from code, whatever language it is in. Code is, just an abstraction after all; a tool to get something done.

I think new developers are often surprised when they learn most everything is just kinda' more-or-less tied together with shell scripts. Even if you are leaning heavily on Azure or Amazon Web Services, invariably your deployment process, environment provisioning, data migrations, integration pipelines, and much more may end up hinging on a couple short shell scripts. You will certainly see a lot of Bash and PowerShell, depending on whether your primary workstation is setup for Windows or Linux development.

Title Description Tags
Change file permissions with chmod Change file permissions with chmod
Compress and extract using tar Compress and extract using tar
Introduction to Bash Introduction to Bash commands and scripting concepts
Introduction to DOS Batch Introduction to CMD.exe commands and Batch programming
Working man's Bash tools Working man's Bash tools