Linux Intro in DM500

Material for the first hour

  • pwd: print stien til den nuværende mappe (“print working directory”). Hvor står vi henne i vores filsystem?

  • ls: list de elementer (mapper, filer) der er i den nuværende mappe.

  • cd: navigér rundt i filsystemet. Prøv at find hen til din mappe med Java-programmer fra DM550.

  • cp: lav en kopi af en fil eller mappe. Prøv at lav en kopi af DM550 mappen, som du kan rode rundt i med resten af kommandoerne.

  • touch: lav en fil.

  • rm: fjern en fil (eller mappe).

  • mkdir: lav en ny mappe

  • rmdir: fjern en tom mappe.

  • mv: flyt/omdøb en fil eller mappe.

  • man: læs dokumentation for de forskellige kommandoer.

  • grep: sørg efter ting i filer. Prøv at køre grep -n public SomeClass.java med en af dine Java-filer i stedet for SomeClass.java.

  • find: find filer eller mapper i dit filsystem. Prøv at køre find . -iname "*.java" i din DM550-mappe.

  • wc: tæl antal tegn, ord og linjer i filer.

Material from the second hour

Additional material:

Examples Commands

How do I find out what a command does (e.g., ls)?:

man ls

How many lines of code in a file?:

wc -l code.java

Where did I put my Java code?:

find . -iname "*.java"

How many Java files do I have?:

find . -iname "*.java" | wc -l

How many lines of code in each file?:

find . -iname "*.java" | xargs wc -l

in sorted order?:

find . -iname "*.java" | xargs wc -l | sort -n

and without the total count:

find . -iname "*.java" | xargs wc -l | sort -n | head -n -1

or maybe just the total:

find . -iname "*.java" | xargs wc -l | sort -n | tail -n 1

Search for a string in all files:

grep -Rn "^class "

How many matches?:

grep -Rn "^class " | wc -l

Download a webpage, and just print the raw HTML to the terminal:

wget -O - http://dr.dk

Find all lines in the page with links:

wget -O - http://dr.dk | grep http

Extract just the link from the line:

wget -O - http://dr.dk | grep http | sed "s/^.*http/http/" | sed "s/\".*//" | sed "s/\?.*//"

Sort the links, and filter out duplicates:

wget -O - http://dr.dk | grep http | sed "s/^.*http/http/" | sed "s/\".*//" | sed "s/\?.*//" | sort | uniq

Filter out those linking to the same domain:

wget -O - http://dr.dk | grep http | sed "s/^.*http/http/" | sed "s/\".*//" | sed "s/\?.*//" | sort | uniq | grep -v "www.dr.dk"

Someone in my group changed something in a file, but what?:

diff -u original.java changed.java