Yep, I ran a short "introduction to the command line" course for the devs in my team. Afterwards, I noticed that their usage of the vscode terminal was much higher, and folks were more comfortable exploring on their own.
Quick outline of the course, in case anyone wants a starting point:
* Introduction
Quick history of Unix
* When you log in
Difference between login and interactive shells
System shell files vs user shell files
.zshenv for environment variables like PATH, EDITOR, and PAGER
.zprofile for login shells, we don't use it
.zshrc for interactive shells
Your login files are scripts, and can have anything in them
* Moving Around
** Where am I?
pwd = "print working directory"
stored in variable $PWD
Confusingly, also called current working directory, so you may see CWD or cwd mentioned
** What is here?
ls
ls -al
ls -alt
. prefix to filenames makes them hidden
. is also the current directory!
.. means the parent directory
file tells you what something is
cat displays a file
code opens it in vscode
** Finding my way around
cd
cd -
dirs | sed -e $'s/ /\\\n/g'
** Getting Help From The Man
man 1 zshbuiltins
manpage sections
** PATH
echo $PATH | sed -e $'s/:/\\\n/g'
zshenv PATH setting
which tells you what will be run
** Environment Variables
env | sort
EDITOR variable
** History
ctrl-r vs up arrow
** Permissions
Making something executable
** Prompts
zsh promptinit
zsh prompt -l
** Pipes and Redirection
Iterate to show how pipes work
cat ~/.zshrc | grep PATH
ls -al > ~/.tmp/ls-output.txt
** Commands
*** BSD vs GNU commands
BSD are supplied by Apple, and Apple often uses old versions
GNU are installed via homebrew, and match those commands available in Linux
Quick outline of the course, in case anyone wants a starting point: