- Workshops on foundational info not taught in standard classes
- Create a environment of peer learning in the CS Department through the CS Club and Discord channel for outreach
- BASH (Bourne Again SHell) (bash,zsh,fsh, etc)
.bashrc
,.profile
,.zshrc
, etc setup- Tools and managers (zplug)
-
Virtual machines and containers
- How to create and customize virtual machines
- (VirtualBox, VMWareFusion, Vagrant)
- Containers
-
Shell and scripting
-
Command-line environment
- aliases and functions
- shells and frameworks
- terminal emulators and multiplexers
- command line utilities
- Git setup and operations from the command line
-
Data wrangling
- Regular expressions (regex)
- grep
- sed
- awk
- xargs
-
Editors
- How to utilize, customize, and navigate emacs and vi, both powerful text editors.
-
Version control
- The basics of source code management and its best practices.
-
Dotfiles
-
Learning to customize tools
-
Machine specific customizations
-
File navigation, creation, deletion, and modification
- cd
- ls
- pwd
- less
- file
- ln
- cp
- mv
- rm
- mkdir
- type
- which
- help
- man
-
How to define a Shell, terminal, and filesystem
- Common shortcut commands
-
Linux file permissions
- chmod
- sudo
- su
- chown
- chgrp
- id
- groups
- whoami
- adduser
- useradd
- addgroup
-
How to use redirections and filters
- echo
- cat
- head
- tail
- find
- wc
- sort
- uniq
- grep
- tr
- rev
- cut
- passwd (5) (i.e. man 5 passwd)
-
How to use variables and expansions
- printenv
- set
- unset
- export
- alias
- unalias
.
(shortcut for source command)- source
- printf
-
Shell arithmetic
-
Different ways to use processes and signals
- How to create SSH keys
- How to use while, until and for loops
- How to use if, else, elif, and case statements
- How to use the cut command
- What are file and other comparison operators, and how to use them
- What is a PID - ps - pgrep - pkill - kill - exit - trap
- What is a process
- How to find a process PID
- How to kill a process
- What is a signal
- How to create and use an SSH RSA key pair
- Different types of servers and their functions
- How to set up and customize firewalls
- SSL certificates
- How to figure out what is going on and fix it manually
- How to read logs to deduce problems within a system
- netstat
- ping
- ifconfig
- telnet
- nc
- cut
-
GDB/LLDB – Supports many C-like languages
-
PDB – Python debugger
-
tmux
-
Organize our own workgroups and training sessions to learn skills that are a part of computing ecosystem literacy not taught in traditional CS classes.
- Use The Linux Command Line book from No Starch Press
- Use the videos and notes from the MIT missing semester series.