De meest gebruikelijke commando's hebben allemaal maar 2 letters. Type ls om te kijken welke bestanden er in een directory staan, cd om van directory te veranderen, rm om een bestand te verwijderen, cp om iets te kopieren en mv om iets te verplaatsen of hernoemen, ln om een link te maken, du om bijv. te kijken hoe groot een directory is en df om te kijken hoeveel ruimte er in gebruik is op de gemounte partities.
Om te zien welke opties je achter deze commando's kunt zetten, moet je
--help
achter het commando zetten. Je ziet dan 2 rijen met mogelijke opties.
De linker kolom bevat een enkele letters met 1 liggend streepje ervoor, de rechter kolom
bevat woorden met 2 liggende streepjes ervoor. Beide opties doen hetzelfde. De ene is
korter, maar bij de andere is het makkelijker om te zien wat het doen. Dit idee kom je
bij veel GNU-software tegen. De korte versie is volgens de POSIX-standaard, de lange
versie is toegevoegd bij de GNU-software.
Veel gebruikte opties voor ls zijn: -l
voor meer informatie en
-a
voor het bekijken van verborgen bestanden en directories. Alle bestanden
en directories die beginnen met een punt zijn in Linux verborgen. En laten nou
toevallig alle configutiebestanden en directories met configuratiebestanden met een
punt beginnen. Daardoor zie je normaal gesproken niet, wat wel zo overzichtelijk is!
Een andere zeer handige optie is --color=auto
om een verschil te kunnen
zien tussen een normaal bestand, directory, symlink etc. Als er nog niet voor is
gezorgd dat die optie standaard is, zet dan onderin /etc/bashrc de regel
alias ls="ls--color=auto"
.
Met ls -lR krijg je een compleet overzicht van alle bestanden in de
huidige en alle subdirectories. De output van dit bestand zie je vaak in de vorm van
een tekstbestand op FTP-servers.
Bestandsnamen worden gewoon als strings, een reeks karakters, gezien. Er kan wel een punt in de naam worden gezet, maar wat erachter komt is geen extentie zoals bij DOS en Windows. Je kunt zonder problemen meerdere punten in een bestandsnaam zetten. Spaties in de bestandsnaam zijn ook toegestaan. Een bestandsnaam kan maximaal 256 tekens lang zijn. Meer dan je nodig zult hebben dus. Doordat bestandsnamen als strings worden gezien is het niet nodig om ls *.* te gebruiken om alles te zien te krijgen. Het zal zelf niet het gewenste effect opleveren. Dan worden nl. alleen die bestanden getoond waar een punt in de naam voorkomt. Met ls * worden alle bestanden in de huidige en 1 directory ''dieper'' getoond. Het *-teken geeft een reeks tekens met willekeurige lengte aan. Naast * bestaat er ook ?, wat staat voor één enkel karakter. De tekens * en ? worden wildcards genoemd. Met ls a* worden alle bestanden getoond waarvan de naam begint met een a.
Om een directory terug te gaan moet je cd .. gebruiken en niet cd..! Dus een spatie tussen cd en de puntjes. Bij RedHat en Mandrake is echter een alias gemaakt zodat cd.. ook werkt. Dat is waarschijnlijk gedaan voor mensen die DOS gewend zijn, maar vind ik niet zo goed. Zo leren ''newbees'' het fout aan! Je kunt snel teruggaan naar je home directory met cd ~. Alleen maar cd intikken heeft hetzelde effect. Ook in andere commando's kun je het pad naar je home directory vervangen door een thilde. Met cd - ga je naar de laatst bezochte directory terug. Wil je zien in welke directory je nu zit, tik je pwd (print working directory).
Bij rm kun je de optie -f
gebruiken als je geforceerd bestanden wilt
verwijderen (je hoeft dan geen bevestiging te geven) en -r
om directories
compleet (recursief) te verwijderen. Deze 2 kun je combineren tot rm -rf
dirnaam om een complete directory weg te halen zonder enige bevestiging. Je
hoeft dus niet 2 aparte streepjes te gebruiken (dus -r -f
is niet nodig).
Met cp -r vanlocatie naarlocatie kun je een hele directory kopiëren.
Met mv (move) kun je zelfs hele directories verplaatsen naar waar je maar wil. Het is dus veel krachtiger dan ren en move onder DOS. Je kunt er alles mee wat je ook onder Windows kan.
Een symlink kun je maken met ln -s vanlocatie naarlocatie.
Je hebt dan een softlink gemaakt. Wordt deze symlink benadert, dan wordt de data uit
het bestand waar hij naartoe wijst benadert. Je kunt ook een symlink naar een
directory maken. Je moet een symlink zien als een doorverwijzer naar een ander
bestand (of directory). Zonder de optie -s
wordt een hard link aangemaakt. Door
een hard link naar een bestand aan te maken zijn er 2 bestandsnamen gekoppeld
aan dezelfde data.
Delete je een bestand waarvan meerdere hard links bestaan, dan blijft de data benaderbaar
via de andere bestandsnaam of -namen. Pas als alle bestanden die naar dezelfde data
verwijzen zijn verwijdert, is de data gedelete. Delete je een symlink, dan is de data
nog benaderbaar door het bestand waar de symlink naar verwees. Delete je het
bestand waar een symlink naar verwijst, dan wijst de symlink naar iets dat niet
meer bestaat. In het overzicht van ls -l kun je zien waar een symlink naar
toe verwijst. Gebruik je ls -l symlinknaam en deze symlink verwijst
naar een directory, dan zul je een overzicht krijgen van de bestanden in de
directory waar naar verwezen wordt. Wil je alleen zien naar welke diretory de
symlink wijst, dan moet je de optie -d
gebruiken bij ls, dus
ls -ld symlinknaam.
Met du directorynaam wordt van alle subdirectories de grootte gegeven.
Met de optie -s
krijg je het totaal te zien. Met de optie -h
is het formaat
human readable, d.w.z. in kB, MB of GB aangegeven.
Met df krijg je een overzicht van alle gemounte partities en hoeveel
ruimte er gebruikt c.q. vrij is. Ook hier bestaat de optie -h
. Dit
commando is ook erg handig om bij te houden wat er aan de hand is als je iets
aan je partities wilt veranderen. Samen met mount kun je goede
informatie over gemounte partities krijgen.
Achter de commando's als cp en mv kun je meerdere bestandsnamen zetten: mv file1 file2 tmp om file1 en file2 beide naar de directory tmp te verplaatsen. Je kunt hierbij uiteraard ook wildcards gebruiken: mv *.ext tmp.
Als een bestandsnaam spaties of tekens zoals een ( bevat, zul je
aanhalingstekens om de naam moeten zetten. Je kunt ook direct vóór de
spatie(s) het \
-teken neerzetten. Begint de bestandsnaam met een
-
-teken, dan zul je het moeten weghalen met rm --
-file of rm ./-file.
Doe je dat niet, dan wordt -file gezien als een optie.
Wildcard (* en ?) worden niet door de programma ls, mv, cp en mv begrepen, maar worden door de shell verwerkt. Die vult in plaats van een uitdrukking met een wildcard erin alle mogelijke bestandsnamen die daaraan voldoen in en geeft dat zooitje door aan het programma. Naast wildcards kan de shell (bash in ieder geval wel) ook enkele simpele regular expressions begrijpen:
[str] elk karakter in de string str [a-b] elk karakter tussen a en b
Voorbeelden:
ls a[abc] toont de bestanden aa, ab en ac indien ze bestaan ls a[0-9] toont de bestanden a0, a1 tot en met a9 indien ze bestaan
Zoals je misschien al wel door had, wordt in Linux een / gebruikt waar in DOS
een \
gebruikt wordt.