Terminal commands module 6: text editors

Download file "TC 6.0 Text editors.pdf"


Terminal commands module 5: html

Download file "TC 5.0 HTML.pdf"


Terminal commands module 4: Wireless networks

Download file "TC 4.0 Wireless networks.pdf"


Terminal commands module 3: Networks and the internet

Download file "Terminal commands module 3: Networks and the internet.pdf"


Terminal Commands module 2: Terminal commands and your computer

Download file "Terminal Commands module 2: Terminal commands and your computer.pdf"


Terminal Commands module 1: Terminal commands and the internet

Download file "Terminal Commands module 1: Terminal commands and the internet.pdf"


Take control of the mac command line

If you are learning terminal on your mac, this ebook is excellent:
Download file "TCotheMacCommandLinewithTerminal-3.0.1.pdf"


Terminal notes

Module 1: Terminal first steps

Using terminal on the raspberry pi:

Start with ping:

ping sends a data packet to a machine on the internet, and tells you how long it takes to return, like sonar

try pinging Time listed will be in milliseconds, so 1000 ms means one second


Notice different ping times

Stopping stuff:

ctrl-c means cancel

ctrl-z means halt (stop everything, not gracefully)

Tracing around the internet:

traceroute (note hops and delays)

Evil stuff: ping flood attack:

ping flood, only use here as a test

sudo ping -f (notice that you have to use sudo, which means "superuser do" or treat me like computer god for this)

What's going on in your terminal:

who also whoami

last last command, also the up arrow

top lists all processes, useful with kill (see later)

history: shows recent commands like this, useful for retracing your steps or seeing who might have been in your machine:

1 ping

2 ping

3 traceroute

4 traceroute

5 ifconfig

6 ping

7 sudo ping -f

8 last

9 who

10 ping

11 history

12 ssh pi@

13 netstat

14 man netstat

15 man ping

16 history

navigation commands:

cd change directory, usually followed by a directory name, like "cd var/www/html/"

ls list directory, see also ls -l which lists all files in long form. Try also ls -lh *human long form"

ls -la lists even invisible files (the -a flag means "all") You can also hide files by adding . to the beginning

pwd print working directory, shows where you are in the file system (directory)

Try navigating to the desktop this way:

pwd (print working directory, "where am I")

ls (shows what is at this level)

cd or cd .. (cd to a directory, cd .. means one level up)

Here is where your desktop is: /home/pi/Desktop


cd /home/pi/Desktop

try ls and see what is there, should be nothing.

Creating a directory:

mkdir creates a directory

mkdir test

This should create a folder on your desktop called "test"

click on this to see a directory browser, go nuts


ls -la will show you permissions in the format drwx, for directory, read, write and execute

read is 1, write is 2, execute is 4, so all added up 1+2+4 =7

chmod change "mod" or permissions of file, 777 is everything, see drwx format below and the 421 rule

You may also find this under chmod u+x on a file, which means make the file or program executable

Manual pages:

man pages are manual pages, so "man ping" would give you manual pages on the ping command

less means look into a file (contrast with "more")

* means wild card, so if you want to see all files ending in jpg, you would say *.jpg

Secure shell login:

ssh means secure shell login, like ssh pi@

Mac specific commands:

fsck -yf after command-s startup (single user mode)

say command after ssh login

Module 2: wild cards, man pages, deleting files

This is how wild cards work:

Instead of typing out herobrine, you could type


just make sure that nothing else matches the h part.

Another example:

These files are in a folder called test:

malcolm mary tom

if you type

rm m*

it will delete mary and malcolm

if you type

rm mal*

it will delete only malcom

if you type

rm *

it will remove everything.

You can also use this to delete certain types of files (jpg, txt, mp4)

rm *.jpg

will remove every jpg file in the folder

Now you try it:

  1. open terminal
  2. navigate to your desktop (remember, it is called Desktop)
  3. create a folder using mkdir called test
  4. navigate into that folder
  5. create three text files using sudo nano, the first will be called malcolm, then mary, then tom
  6. read each one using less or more
  7. take a screenshot of this folder from the gui (graphical user interface), command-3 takes a screen shot, command-4 is a screenshot of only what you select.
  8. copy this screenshot into your weblog, so you can remember how you did this
  9. remove one file at a time using the rm command, take more screenshots

Ok, at this point, you can navigate around, login to remote computers, create and delete text files.

What's next?


Module 3: Internet

Your computer needs 4 things to be able to get onto the internet:

IP address, example

Subnet mask, example

Gateway/router, example

Domain name server (DNS), example

Here's what each one does:

IP address:

All traffic on the internet or local area network (LAN) is in the form of packets of information, like mail envelopes with a letter inside. Each letter you mail has two important things: the address you want it to go to, and the message inside the envelope.

TCP/IP is the format of these, which stands for Transmission control protocol and internet protocol.

The TCP part is the message, and the IP part is the envelope, with an IP address on it.

Check the IP address of your machine:

From the GUI: open system preferences, network

From the terminal: type ifconfig

Subnet mask:

Imagine you want to stay in one of two large 254 room hotels. One has long hallways, and very few floors, the other has many floors, but short hallways.

If you want to sleep, you don't want many people walking down the hall in front of your room. You want many floors with fewer rooms per floors.

This is what subnet masking does on a network. Each of the four segments can hold 254 addresses.

At home, you probably have a network that looks like this:





This means that the last zero can hold up to 254 addresses (from to

HPA has this sort of mask:

which means that

is the elab, which can have 254 x 254 addresses

It makes for a quieter network, also providing some security as others cannot see you easily.


This is the gateway for all of your traffic, usually the access point at your home. The technical difference between these words is that a router routes traffic between two networks of the same type (like ethernet), while a gateway is between different types of networks (like a cable modem or DSL gateway)

Domain name server:

This is the computer on your network or outside that translates names into numbers, like a digital phone book.

Try this in terminal:


  1. when you get the address, write it down
  2. open a browser
  3. go to
  4. now go to the numbers you wrote down.
  5. Try this with another name, either on campus or off

Ping and traceroute:

Imagine you want to find out if a machine is responding (you can block this by using "stealth mode")

In terminal ping one of the IP addresses in your class

ping an address out on the internet

what is the difference?

now try this:


It should give you a trace of the path your connection took.

Try this with other addresses on and off campus.


Say you want to find out the name of something, or the IP address from the name.

try this:


(you will get a funny > sign)




what do you get?

where is this machine?

Try again using as the server

The best use of this is to find out what OTHER people might call a machine.

We have several DNS servers on campus, the main one is at

Others to try:

you can get out by typing


or control-z (halt)

Module 4: web server and web pages (html)

Creating a web page, installing a web server:

On the raspberry pi, run the following commands:

sudo apt-get update (this updates your computer)

sudo apt-get install apache2 -y (this installs apache web server on your computer, answering yes to all prompts)

Go your browser and enter (which means "me" on the internet)

Now type ifconfig in your terminal and look for your internet address, which should start with 10.14.x.y

Look at this address using your browser

Editing web pages:

On the terminal, navigate to the following directory:

cd /var/www/html/

run the ls command, you should see a file called index.html

You can edit this, either by using the nano command (cooler) or a text editor (simpler)

sudo nano /var/www/html/index.html

This is a complex bit of html, so just look for something you recognize from the test and change it

nano is a text editor, so ctrl-o means overwrite, and ctrl-x means exit

If you are using a text editor, it might not let you save.

Back to permissions----

type chmod 777 /var/www/html

which makes everything in the html directory read and writable to everyone (including you)

Making a new web page:

Using either nano or a text editor, create a new page:

sudo nano /var/www/html/test.html

You'll notice this is blank.

Add the following to your new web page:






Wow, this is really easy



remember to overwrite (ctrl-o) and exit (ctrl-x)

Now go to your browser and enter

What do you see?


Raspberry Pi tutorials

lesson 3:

pwd print working directory

ls list

cd change directory

cd .. up one directory

Paths: what, where

other examples:

ls -la shows hidden files

ls / root folder

ls ~/ home folder

ls .. list folders up one level

/home/pi your home directory (as user called pi)

lesson 4:

sudo shutdown

sudo halt

power down

clear clear the terminal window

mkdir create a folder

example: mkdir yada

n.b. make sure not to use spaces, use underline instead

rmdir remove directory

example: rmdir yada

verify this with the file browser (top left menu)

create a folder, navigate there, then use nano

nano file editor

sudo nano filename.txt

creates a file, you type

when you are done, control-o means overwrite (save)

control-x means exit

to read the file:

cat filename.txt

(he says it means catalog. this is wrong, it stands for concatenate, a much more complex word)

also look into less and more commands

if you are ever stuck, you can enter:

man less (manual pages for the command less, or any command)


Welcome back!

Here are some notes about our first few weeks working together:

ISR plan 2020

We will be meeting on even days. Your weblogs will be due each class day at 6 PM HST. What will you write about? Progress, research, what you want to do next…

I have created raspberry pi units for each of you if you want to have these mailed to you. I can also set up an individual unit at the elab which you can reach by VPN.

I’ll be holding weekly office hours with each of you by zoom. I’ll send out info on how this works, but the time will usually be either 9 AM or 4 PM HST.

I’ll also expect an email check in during each class, due at 6 PM HST each day.

I’d like each of you to dream up an individual challenge plan. This could involve online videos, coding, some sort of online collaboration with your classmates or others on the planet.

First week: Each of you will create a 2 minute video about your project due by Monday, April 6, posted on youtube or on our server.

Second week: Create a wiki about your project on the server, including photos, diagrams and other material from your previous weblogs.

Class days:

Thursday 4.2

Monday 4.6

Wednesday 4.8

Friday 4.10

Tuesday 4.14

Thursday 4.16

Check in list: First week, by invitation Zoom call

  1. how are you doing
  2. what would you like to create or research
  3. what will you need for this: online or mailed to you
  4. vpn and other access to the network

Project ideas:

  • Raspberry pi: local or remote, learning unix, scratch, node-red or other sensor projects
  • Find a project at home and document it: broken espresso machine? curious about how your car works? Explore and document it with photos and/or video.
  • Love to learn about flight? Order a glider wherever you are and explain all the forces that make it fly, what is a stall, center of lift and cg
  • Want to fly the big planes? If you have access to a flight sim program, explain in a video step by step instructions and teach someone else how to fly in real time. If you are a pilot in training, explain how this process works
  • Mad about drones? Create a how-to on flying them, and if you are advanced, how to get a drone license.
  • Radio happy? I have access to online FCC licensing now, so you can take the test remotely. You could then talk anytime around the world using radios.
  • Satellites make you happy? Setup a tracking system for spy satellites at your location and take photos at dawn or dusk. Explain why these go so fast, orbital path, and why you only see them then.
  • Know all about welding? Create a wiki on how to weld with with the three systems: wire, stick and gas. Why is this different from soldering?
  • Silly about sensors? I can mail you a set of sensors and a raspberry pi or arduino to learn with.
  • CNC crazy? Create a wiki about how to use a CNC machine, and why we would want to learn this.

Resource links:

Top tech boy: totorials on arduino, python, 3D CAD, raspberry pi

Physics server for wiki and weblogs:

Physics server video and document uploads: login isr, use wifi password

Zoom instructions:

  1. go to
  2. signup (it’s free) using your hpa email address
  3. download the app to your computer or phone
  4. when you get an email invitation from me, click on the link and it should open zoom
  5. you can choose audio only or both audio and video
  6. we can also have a group chat, more on this soon

VPN instructions:

  1. I will email you an attachment that holds the configuration files if you are using a mac.
  2. Click on the attachment, it should install a VPN for you to use.
  3. If you want to use your raspberry pi or other machine, the vpn server is at, using L2TP protocols
  4. Login info will be given to you by email, account name is “vpn”

Who is where:



Will Yang-HI/China

Max W-DE

Max M-DE








Will S-Kauai





Raspberry Pi projects book v4

Download file "Projects_Book_v4.pdf"


Machine learning project

Written by Andrej Karpathy 3 years ago -- now Head of AI at Tesla

- Install OpenAI gym
  • pip install gym
- install Atari dependency for gym
  • pip install atari-py
- copy and paste this code, save as

Run it! Pong should pop up and play very badly for hours/days. Fun to watch!

Here's a video that shows the exact Pong program running: install atari-py

My instance just lost 4-20 in this last game....still learning!


bots and gadgets

Download file "bots end.pdf"


Raspberry Pi manual 2.0

Download file "raspberry pi 2 manual.pdf"


30 evil genius projects

Download file ""
Download file "30-arduino-projects-for-the-evil-genius-2010-simon-monk.pdf"

raspberry pi:
Download file "Raspberry_Pi_Projects_for_the_Evil_Genius.pdf"


Make: books

Getting started with sensors:
Download file ""
Make: Sensors:
Download file ""
Make: mind control robot
Download file ""
Make: bots and gadgets
Download file ""


LCD 1602 4 pin setup


Arduino programming-getting started

Download file "arduino coding one.pdf"


Freenove RFID kit for rPI

Download file ""


Programming Raspberry PI with Python

code examples
Download file ""