Skip to content

Instantly share code, notes, and snippets.

@AmilcarArmmand
Last active March 26, 2025 18:28
Show Gist options
  • Save AmilcarArmmand/373495dcb4a609baf7fd1034830eedc4 to your computer and use it in GitHub Desktop.
Save AmilcarArmmand/373495dcb4a609baf7fd1034830eedc4 to your computer and use it in GitHub Desktop.
Ideas to build community and expand our knowledge base and resources

Projects and proposals

  • 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)

Topics and Learning Objectives in video lectures

  • 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

Linux and Shell – Basic bash commands 1

  • 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

Linux & Shell – Basics 2

  • 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

Linux & Shell – part 3

  • 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

System Engineering – Security

  • 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

System Engineering – Webstack Debugging

  • 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

Debugging, program inspection, terminal app

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment