nuttige links |
inhoudstafel: snelkoppelingen |
linux mint's download pagina: http://www.linuxmint.com/download.php linux.org beginners cursus: http://www.linux.org/lessons/beginner/toc.html why linux mint might be a better beginners linux than ubuntu: http://lifehacker.com/5469575/why-linux-mint-might-be-a-better-beginners-linux-than-ubuntu |
grafisch scherm:
alfanummerieke login:
als je <CTRL><ALT><F1> tegelijk intikt krijg je een alfanummeriek scherm:
Debian Gnu/Linux 4.0 andromeda tty5 cassandra login: jan Password: ######## Linux andromeda 2.6.16-5-686 #1 SMP Tue Dec 18 21:24:20 UTC 2007 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. You have new mail. Last login: Tue Nov 18 14:40:56 2008 jan@cassandra ~ $ _ |
Een linux computer heeft standaard 1 grafisch scherm, en 6 zogenaamde alfanummerieke schermen of terminals. Een terminal wordt ook wel tty genoemd. (dat komt van teletypewriter). Je wisselt van scherm met de onderstaande toetsencombinaties.
Druk de volgende 3 toetsen gelijktijdig in op je toetsenbord:
<CTRL><ALT><F1> |
Met deze toetsencombinatie ga je naar terminal 1 (tty1). Witte karakters op een zwarte achtergrond; 25 tekstregels van 80 karakters. |
<CTRL><ALT><F2> |
ga naar terminal 2 (tty2) |
<CTRL><ALT><F3> |
ga naar terminal 3 (tty3) |
<CTRL><ALT><F4> |
ga naar terminal 4 (tty4) |
<CTRL><ALT><F5> |
ga naar terminal 5 (tty5) |
<CTRL><ALT><F6> |
ga naar terminal 6 (tty6) |
<CTRL><ALT><F7> |
ga naar je grafisch scherm |
Als je <CTRL><ALT><F1> t.e.m. <F6> intikt kun je gebruik maken van zes alfanummerieke terminals.
In je grafische omgeving heb je ook de mogelijkheid verschillende terminals op te starten. Die vind je meestal onder het hoofdmenu in accessories, in sommige distributies onder system, en bij nog andere door rechts te klikken ergens op je desktop.
In een linux terminal staat meestal een $ (dollarteken) en een knipperende cursor. Dit noemen we de command prompt:
$ vertegenwoordigt de prompt van een gewone gebruiker
# dit is de root prompt. Met deze prompt heb je systeembeheerdersrechten
dikwijls heeft de prompt de volgende vorm:
jan@cassandra:~$
jan is de gebruikersnaam
cassandra is de naam van zijn computer
tussen de : en de $ staat het path van de huidige directory
~ staat voor de home-directory van de huidige gebruiker
Als je op een terminal werkt heb je altijd een huidige directory. In deze directory (een folder op het systeem) voer je dan commando's uit. De home directory van een gebruiker is de plaats waar een gebruiker zelf operaties kan en mag uitvoeren. Zij of hij heeft er schrijfrechten. Het is een aanknopingspunt van je Desktop, en andere subdirectories als Documents en ... wat je zelf maar wil. Je maakt die subdirectories zelf als je ze nodig hebt. Als je software gebruikt op linux, maken veel van die toepassingen zelf directories aan in jouw home om daar jouw persoonlijke settings te bewaren.
De volgende benamingen zijn ongeveer gelijkwaardig:
command |
opdracht |
directory |
folder (map) |
file |
bestand |
opdrachtprompt |
command prompt |
In linux zijn er gewone gebruikers en is er een root gebruiker.
De root gebruiker is de administrator van het systeem en heeft alle rechten.
Je logt bijna altijd in als gewone gebruiker, zeker in grafische modus.
sudo
Om gedurende 1 opdracht administrator te worden laat je je commando voorafgaan door sudo. Je user paswoord wordt dan gevraagd.
voorbeeld:
jan@cassandra ~ $ sudo fdisk -l
[sudo] password for jan: ########
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xae6cae6c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 858 6891853+ b W95 FAT32
/dev/sda2 859 3897 24410767+ 83 Linux
/dev/sda3 3898 6936 24410767+ 83 Linux
! |
In de meeste voorbeelden in deze cursus is de tekst in vetjes, die tekst die je zelf moet intikken; de cursieve tekst is de tekst die op scherm verschijnt (command output). |
passwd
Om je paswoord aan te passen gebruik je het commando passwd.
Je huidige paswoord wordt gevraagd, daarna twee keer je nieuwe paswoord:
jan@cassandra ~ $ passwd
Changing password for jan.
(current) UNIX password: ########
Enter new UNIX password: #####
Retype new UNIX password: #####
passwd: password updated successfully
ALLEEN in UBUNTU of MINT: sommige gebruikers vergeten in ubuntu of linux mint de root account aan te maken, of ze klikken te vlug, of ze vergeten welk paswoord ze ingaven. (In de meeste versies van ubuntu wordt de root account niet voorzien van een paswoord. In de recentere versies van mint wordt er een root account aangemaakt met hetzelfde paswoord als de eerste gebruiker). In dat geval (en alleen bij ubuntu based distributies) kan je van de root account als volgt het paswoord resetten in je terminal:
jan@cassandra ~ $ sudo passwd
[sudo] password for jan: ########
Enter new UNIX password: #####
Retype new UNIX password: #####
passwd: password updated successfully
Het eerste paswoord wordt gevraagd door sudo, en is dat van de gebruiker die reeds is ingelogd; hierna wordt 2 keer het paswoord gevraagd van de root gebruiker. Zodra dit is gebeurd, kun je het su commando gebruiken om root gebruiker te worden.
PAS OP: indien je reeds eerder het commando sudo hebt gebruikt in de huidige terminal, wordt het sudo paswoord niet meer gevraagd.
Linux is hoofdlettergevoelig. Dit betekent dat de gebruiker Wilfried een ander gebruiker is dan wilFried; het commando LS bestaat niet en de directory DEZE is niet gelijk aan de directory dEZe.
In sommige besturingssystemen heeft de . een speciale betekenis in een filenaam. In Linux is dat niet het geval. De punt is een gewoon karakter en kan overal voorkomen, één of meerdere keren. Er zijn geen suffixen of extenties in Linux. Ze kunnen wel gebruikt worden voor gebruiksgemak maar zijn niet noodzakelijk. Een mp3 bestand kan gewoon Coldplay256 heten. Een executable freedroid.
Het systeem is zelf in staat te zien wat voor type een file is.
Executable files hebben geen speciale extensie maar een permission x van executable. Die permissions kun je op scherm brengen met ls -l
jan@cassandra ~ $ ls -l /bin/ls
-rwxr-xr-x 1 root root 92376 2008-04-04 08:42 /bin/ls
Als je als gebruiker vergeten bent wat voor type bestand je voor je neus hebt, kun je gebruik maken van het commando file.
jan@cassandra ~ $ file /bin/ping
/bin/ping: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped
Om een bestand aan te maken en er een tekstinhoud in te plaatsen werk je met een editor
pico is zo een eenvoudige editor (maar er bestaat ook nano, mcedit, vim, ...)
Om een bestand aan te maken met pico tik je pico in gevolgd door de naam van het nieuwe bestand. Om een bestaand bestand aan te passen tik je pico in gevolgd door de naam van dat bestand.
Je kan ook gewoon pico zonder meer intikken en tijdens het saven een filenaam meegeven.
jan@cassandra ~ $ pico testfile
GNU nano 2.0.7 File: testfile Dit is mijn test file ... bla bla bla [ New File ] ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text^T To Spell |
Sommige commando's gaan op de loop en duren langer dan je dacht. Commando's onderbreken kun je meestal met CTRL-C
Met cat, more of less kun je de inhoud van een file op scherm brengen zonder hiervoor pico te gebruiken:
cat
jan@cassandra ~ $ cat testfile
dit is mijn testfile
bla bla bla
en nog wat!
more
jan@cassandra ~ $ more testfile2
1 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
2 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
3 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
4 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
5 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
6 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
7 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
8 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
9 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
10 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
11 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
12 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
13 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
14 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
15 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
16 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
17 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
18 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
19 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
20 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
21 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
22 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
--More--(27%)
Bij more kun je naar beneden scrollen met spacebar of enter.
less
jan@cassandra ~ $ less testfile
27 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
28 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
29 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
30 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
31 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
32 Dit is een tekstregel met genoeg karakters om een stuk van de pagina te vullen
:
Bij less kun je ook naar boven scrollen met de pijltjestoetsen, pgdn en pgup.
Druk q om less te verlaten.
cd
Met cd (change directory) kun je doorheen de directorystructuur wandelen:
cd gevolgd door enter brengt je altijd naar je eigen home-directory:
jan@cassandra ~/bin $ cd
jan@cassandra ~ $
Om vanuit je home naar de directory Documents te gaan tik je:
jan@cassandra ~ $ cd Documents
jan@cassandra ~/Documents $
Maar dat is alleen maar zo als Documents bestaat. In hetvolgende voorbeeld maken we een tikfout:
jan@cassandra ~ $ cd Documens
bash: cd: Documens: No such file or directory
jan@cassandra ~ $
cd gevolgd door .. brengt je één nivo hoger in de directory hierarchie. We gaan naar de parent directory. (let op: 1 spatie tussen cd en de twee punten, geen spatie tussen de twee punten)
jan@cassandra ~ $ cd ..
jan@cassandra /home $
Let op voor de directory /home. Dit is niet je home-directory, maar de overkoepelende directory van alle home-directories van alle gebruikers! Als we in een oefening vragen om te werken in je home-directory, begin dan gewoon met
cd <enter>.
Twee niveaus hoger (van /home/jan naar / ):
jan@cassandra ~ $ cd ../..
jan@cassandra / $
De huidige directory heet . Dat is misschien een beetje raar, en wat kun je daar dan mee doen? :-) Als je je in een bepaalde directory bevindt, bijvoorbeeld testdirectory, kun je de . gebruiken om te verwijzen naar de huidige directory in een kopieeropdracht:
jan@cassandra:~/testdirectory $ cp ../testfile .
zal de file testfile verplaatsen van de parent directory naar je huidige directory.
mkdir
Met mkdir (make dir) kun je zelf directories aanmaken:
jan@cassandra ~ $ mkdir testdirectory
jan@cassandra ~ $ ls
bin Documents Desktop kubus testdirectory testje
jan@cassandra ~ $ cd testdirectory
jan@cassandra:~/testdirectory $
rmdir
Met rmdir (remove dir) kun je lege directories verwijderen:
jan@cassandra ~ $ rmdir testdirectory
jan@cassandra ~ $ ls
bin Documents Desktop kubus testje
touch
Met het commando touch kun je lege files aanmaken. Je kan touch ook gebruiken om de modification date van een file aan te passen.
jan@cassandra ~ $ touch testfile
jan@cassandra ~ $ ls
bin Documents Desktop kubus testfile testje
cp
Om files te copieren gebruik je het commando cp (copy).
jan@cassandra ~ $ cp testfile testfile2
jan@cassandra ~ $ ls
bin Documents Desktop kubus testfile testfile2 testje
jan@cassandra ~ $ cp testfile2 Documents
jan@cassandra ~ $ ls Documents
testfile2
Je hebt nu drie testfiles met dezelfde inhoud: 2 staan in je home-directory, de derde staat in Documents.
mv
Om de naam van een file te wijzigen gebruik je mv (move). Om een file te verplaatsen naar een andere directory gebruik je eveneens mv. Om een volledige directory te verplaatsen met alles (eventueel ook subdirectories) erin gebruik je ook mv.
We herbenoemen testfile2:
jan@cassandra ~ $ mv testfile2 testfile-b
jan@cassandra ~ $ ls
bin Documents Desktop kubus testfile testfile-b testje
Nu verplaatsen we testfile-b naar Documents:
jan@cassandra ~ $ mv testfile-b
jan@cassandra ~ $ ls Documents
testfile-b testfile2
rm
Om bestanden te verwijderen gebruik je het commando rm (remove).
jan@cassandra ~ $ rm testfile
jan@cassandra ~ $ ls
bin Documents Desktop kubus testfile-b testje
Om niet lege directories te verwijderen gebruik je rm -r (remove recursively). We verwijderen nu Documents en alle files erin.
jan@cassandra ~ $ rm -r Documents
jan@cassandra ~ $ ls
bin Desktop kubus testfile-b testje
pwd
Met pwd (print working directory) kun je zien wat je huidige directory is. Dat kun je meestal ook zien aan de shell prompt, maar niet iedere shell prompt is even informatief.
jan@cassandra ~ $ pwd
/home/jan
whoami
Als je een paar keer su gedaan hebt, of als je werkt op een andere machine via ssh, is het niet altijd duidelijk met welke identiteit je aan het werken bent. Het commando whoami
jan@cassandra ~ $ whoami
jan
who
Er is een verschil tussen whoami en who. who brengt iedereen op scherm die is ingelogd. su gebruikers zijn niet echt ingelogd en verschijnen dus niet op scherm.
jan@cassandra ~ $ who
jan tty7 2010-08-07 11:45 (:0)
jan pts/0 2010-08-07 11:50 (:0.0)
jan@cassandra ~ $ su
Password: ########
cassandra jan # whoami
root
cassandra jan # who
jan tty7 2010-08-07 11:45 (:0)
jan pts/0 2010-08-07 11:50 (:0.0)
cassandra jan # exit
jan@cassandra ~ $
shutdown
Om je systeem te herstarten zijn er veel methoden, maar dit is snel:
jan@cassandra ~ $ sudo init 6
(nog sneller is CTRL + ALT + DEL )
en om het systeem te stoppen
jan@cassandra ~ $ sudo init 0
(aan/uit knop kort indrukken veroorzaakt dikwijls ook een shutdown)
In een path worden directories van mekaar gescheiden door de / (slash)
Alle bestanden bevinden zich op een linux machine ergens in een directory. Dat kan bijvoorbeeld je home-directory zijn. Indien je aan het werken bent op een linux terminal, bevindt je terminal zich in een bepaalde directory. We noemen deze vaak de huidige directory of de working directory. Daarnet hadden we gezien dat we de huidige directory op scherm kunnen brengen met pwd.
Veronderstel dat er een file genaamd copyrc.tar.gz bestaat die zich bevindt in de subdirectory backups van de home directory van jan.
Het absolute path naar copyrc.tar.gz is dan /home/jan/backups
Het commando pwd geeft altijd de absolute path naar je huidige directory.
Als jij je op dat ogenblik bevindt in de subdirectory Desktop van de home directory van jan (/home/jan/Desktop),
dan is het relatieve path naar copyrc.tar.gz gelijk aan ../backups
Bevind ik mij in een terminalvenster in de home directory van jan dan is mijn relatief path naar copyrc.tar.gz simpelweg gelijk aan backups.
Je home directory wordt dikwijls afgekort tot ~ (tilde)
Je huidige directory wordt aangegeven met . (de punt)
Je parent directory wordt aangegeven met ..
Vanuit de directory Desktop in het hogere voorbeeld is het relatieve path naar /home/karl gelijk aan ../../karl
Er zijn twee wildcard tekens.
de belangrijkste is de * (asterisk)
Waar je de wildcard * plaatst wordt deze opgevuld door om het even wat met om het even welke lengte, ook lengte nul.
Indien er een directory oefening2 bestaat, zal het volgende commando alle bestanden in de huidige directory copieren naar de directory oefening2:
jan@cassandra ~ $ cp * oefening2
Het volgende commando brengt alle files en directories uit /etc op scherm die beginnen met de letter a:
jan@cassandra ~ $ ls -d /etc/a*
drwxr-xr-x 3 root root 4096 2010-04-27 12:28 /etc/acpi
-rw-r--r-- 1 root root 2981 2010-04-27 12:03 /etc/adduser.conf
drwxr-xr-x 2 root root 4096 2010-05-23 23:21 /etc/akonadi
drwxr-xr-x 2 root root 12288 2010-07-30 11:49 /etc/alternatives
-rw-r--r-- 1 root root 395 2010-03-05 03:31 /etc/anacrontab
drwxr-xr-x 7 root root 4096 2010-05-25 21:09 /etc/apache2
drwxr-xr-x 6 root root 4096 2010-04-27 12:13 /etc/apm
drwxr-xr-x 3 root root 4096 2010-05-02 19:41 /etc/apparmor
drwxr-xr-x 5 root root 4096 2010-07-07 23:37 /etc/apparmor.d
drwxr-xr-x 4 root root 4096 2010-05-24 10:26 /etc/apport
drwxr-xr-x 6 root root 4096 2010-05-23 22:37 /etc/apt
-rw-r----- 1 root daemon 144 2010-03-05 03:42 /etc/at.deny
drwxr-xr-x 3 root root 4096 2010-04-27 12:29 /etc/avahi
Het volgende commando verplaatst alle files uit de home directory die beginnen met coldplay en eindigen op mp3 naar de directory Music.
jan@cassandra ~ $ mv ~/coldplay*mp3 ~/Music
De tweede wildcard is ? (vraagteken)
Het vraagteken vervangt telkens 1 en slechts 1 karakter.
Het volgende commando brengt alle files en directories uit /etc op scherm met exact 8 karakters en die beginnen met de letter s:
jan@cassandra ~ $ ls -ld /etc/s???????
-rw-r--r-- 1 root root 3663 2009-11-10 19:54 /etc/screenrc
drwxr-xr-x 4 root root 4096 2010-07-10 23:54 /etc/security
-rw-r--r-- 1 root root 18832 2009-12-03 17:11 /etc/services
drwxr-xr-x 2 root root 4096 2010-04-27 12:03 /etc/sysctl.d
Met de nodige opties kun je het gedrag of het output-formaat van een commando aanpassen. We hebben reeds rm -r en ls -l vermeld, maar er zijn er nog een paar belangrijke:
rm -r |
verwijdert recursief files en directories |
rm -v |
verbose: brengt op scherm welke acties werden ondernomen |
ls -l |
geeft een zogenaamde longlist van een directory met vermelding van permissions, eigenaar, groep, grootte, modification date en natuurlijk ook de filenaam |
ls -a |
geeft eveneens hidden files weer |
ls -R |
geeft eveneens de inhoud van alle subdirectories weer |
mv -v |
brengt op scherm welke acties werden ondernomen |
cp -r |
copieert inclusief alle subdirectories |
cp -p |
bewaart alle file eigenschappen |
cp -v |
brengt op scherm welke acties werden ondernomen |
De belangrijkste bron van hulpinformatie zijn de man-pages. Je kan hulp opvragen over ongeveer elk mogelijk commando door man SPATIE <commando> in te tikken.
voorbeeld:
jan@cassandra ~ $ man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alpha‐
betically if none of -cftuvSUX nor --sort.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
.......... continued
Je kan man verlaten door q in te tikken.
Het commando info werkt ongeveer op dezelfde manier als man maar bevat soms meer, soms minder informatie. We kunnen ook de meeste commando's intikken voorzien van de long option --help:
jan@cassandra ~ $ mv --help
Usage: mv [OPTION]... [-T] SOURCE DEST
or: mv [OPTION]... SOURCE... DIRECTORY
or: mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
Mandatory arguments to long options are mandatory for short options too.
--backup[=CONTROL] make a backup of each existing destination file
-b like --backup but does not accept an argument
-f, --force do not prompt before overwriting
-i, --interactive prompt before overwrite
--strip-trailing-slashes remove any trailing slashes from each SOURCE
argument
-S, --suffix=SUFFIX override the usual backup suffix
-t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY
-T, --no-target-directory treat DEST as a normal file
-u, --update move only when the SOURCE file is newer
than the destination file or when the
destination file is missing
-v, --verbose explain what is being done
--help display this help and exit
--version output version information and exit
The backup suffix is `~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable. Here are the values:
none, off never make backups (even if --backup is given)
numbered, t make numbered backups
existing, nil numbered if numbered backups exist, simple otherwise
simple, never always make simple backups
Report bugs to <bug-coreutils@gnu.org>.
Als we een ls -l commando intikken, komt er vaak veel te veel informatie op ons scherm. Doe dit maar eens:
jan@cassandra ~ $ ls -l /etc
In veel gevallen biedt de grafische terminal de mogelijkheid om terug te scrollen, maar dit werkt slechts voor 500 tekstregels. Bovendien hebben we niet altijd de beschikking over een gnome-terminal of een xterm, maar werken we op servers dikwijls op een headless machine (geen grafisch environment). Gelukkig kunnen we dan de OUTPUT van ls -l PIPEN met | naar de INPUT van less. | is de vertikale streep die je op belgische toetsenborden vindt door <ALTGR>+<1> in te tikken.
jan@cassandra ~ $ ls -l /etc | less
De output van ls -l is de catalog van etc. Die gebruiken we als ware het een tekstfile als input voor less. Dat doen we allemaal met het 'pipe'-teken |
We kunnen door het hogere commando omhoog en omlaag scrollen in de directory listing, en zoekfuncties gebruiken die standaard in less aanwezig zijn.
Een andere veel gebruikte pipe is de volgende:
jan@cassandra ~ $ ps -A | grep <processname>
ps -A geeft alle processen weer die draaien op je computer.
grep zoekt in een file alle regels op die de zoekstring bevatten.
Het volgende voorbeeld geeft de processen weer, met hun PID's (process identifiers) waar de string 'gnome' in voorkomt:
jan@cassandra ~ $ ps -A | grep gnome
6478 ? 00:00:00 gnome-keyring-d
6597 ? 00:00:00 gnome-settings-
6741 ? 00:00:01 gnome-panel
6752 ? 00:00:01 gnome-screensav
6798 ? 00:00:32 gnome-do
6805 ? 00:00:00 gnome-power-man
7519 ? 00:00:00 gnome-terminal
7521 ? 00:00:00 gnome-pty-helpe
Redirection is het verplaatsen van de output van een commando naar een file of een device. Dit is o.a. nuttig indien er logfiles moeten worden aangemaakt en bewaard. Later kan je dan met zoekopdrachten deze logs bekijken.
cassandra jan # tcpdump -i eth0 > dumpfile
tcpdump brengt alle netwerkpakketten op scherm. Door de redirect komt dit terecht in een bestand. Je kan dat bestand later napluizen om te kijken waar bepaalde protocollen vandaan komen (vb.: # grep arp dumpfile haalt alle arp-pakketten uit de dump)
Een andere mogelijkheid is het redirecten van info naar een andere terminal of naar een printer. Maar meestal heb je daar root rechten voor nodig.
Het volgende voorbeeld stuurt de configuratiefile /etc/vsftpd van de ftp server naar de printer, als je dat tenminste mag:
jan@cassandra ~ $ cat /etc/vsftpd > /dev/lp
Als je het volgende commando ingeeft zal cat de standaardinput (toetsenbord) doorsturen naar het bestand testfile. Je kan het commando beëindigen met CTRL-D (EOF end of file karakter).
jan@cassandra ~ $ cat > testfile
De redirection > wist altijd het originele bestand.
Informatie toevoegen aan een reeds bestaande file, kun je met >>
Test dit maar eens uit:
jan@cassandra ~ $ ls -l / >> ~/catalog_rootdir
jan@cassandra ~ $ ls -l / >> ~/catalog_rootdir
jan@cassandra ~ $ cat ~/catalog_rootdir
Tenslotte kun je ook een tekstbestand gebruiken als input voor een commando. Dit wordt vaak gebruikt in scripts om bestanden te lezen, en uitzonderlijk in dit dikwijls geciteerde maar door mij nooit gebruikte voorbeeld:
jan@cassandra ~ $ mail karl@telenet.com < my_preformatted_mail