Grammar of a command: Spaces are separators First, name of the program or command to be run ls, man, cd, etc. Most of these are programs Some, like cd, are shell builtins Then, arguments (also called parameters) General note on structure: commmand/program SPACE argument1 SPACE argument2 ... flags: A special argument starting with - Settings for that run of the program Generally not persistent Commands for you to try: who, w, top, ps Commands can be chained together with pipes Later... C note, with argc and argv How? Text editor, then compiler (which also links) Default name is a.out You could specify a different name Or use mv later Couple quick notes for being fast: tab auto completes names up arrow retrieves previous commands cd - changes to the previous directory ctrl+r does a search for previous commands Passwords on *nix, /etc/passwd why I can't find out your password john the ripper Permissions and chmod BASH and shells shell, terminal, these names Brief flowchart for a shell What if we just run "cat" and press enter? Let's learn a command: who Also w and last and finger (which doesn't work right anymore) Time for a walk: Some computers with names Name is often in the prompt uname -n Separate the computer in front of you from the one you are using Since you'll probably ask: X11 forwarding over SSH Remote desktop is another way to do this Interlude: Why don't I have to type a password all the time? Cryptographic authentication (is stronger, depending) Let's talk about networks! Enough for the moment, anyway Internet Protocol Addressing with IP Ports Standard ports A bit more about how things work protocols DHCP, briefly, and the MAC address DNS, and 8.8.8.8 Ruining the magic kingdom: Firewalls and NAT Some connections can only be initiated from one end Port forwarding (for NAT) A relay point on the outside - ssh can do this We talked about the file tree a bit yesterday But now a tour! Slash direction is opposite DOS/Windows Case matters! /tmp /etc /home /dev and /proc /root (and who is root?) /bin, /usr, /opt, /sbin, /sys, /lib, /lib64 /var and /var/log /usr/share/doc Special characters in filenames: Spaces / - (not special) . (not special) Linux does not require file extensions They are commonly omitted on regular text files ~ (your home directory, if it is first) cd with no parameters Let's learn another command: grep grep and files Finally: pipes (combining grep and who)