Het is heel belangrijk te weten voor welk systeem we zitten.
Indien we zelf een linux machine hebben geïnstalleerd en geconfigureerd, is dat waarschijnlijk niet zo moeilijk. Wel is het belangrijk dat we zelf onze installatie en configuratie van de machine documenteren. Een linux machine kan zeer fijnmazig geconfigureerd worden. Maanden later weten we waarschijnlijk niet meer in detail wat we allemaal hebben aangepast. Zo'n 'dagboek' hoort thuis op het systeem zelf, maar een kopie ervan is ergens anders ook nodig, zodat we bij uitval en rampspoed, toch nog kunnen terugvinden hoe de machine en de software geconfigureerd waren.
Het gebeurt ook wel dat we de opdracht krijgen om een systeem over te nemen van een andere systeembeheerder. Indien we voor een machine plaatsnemen, die door iemand anders werd opgezet, is het hoger vermelde 'dagboek' uitermate belangrijk. Maar helaas, ontbreekt dit soms. Soms is elk contact met een vorig systeembeheerder moeilijk of zelfs onmogelijk, en het gebeurt zelden ook dat gene opzettelijk verkeerdelijke informatie heeft achtergelaten. In dat geval moeten we ons zelf documenteren.
De gehele verdere cursus dient onder andere dit doel. Voor elk onderdeel in systeembeheer (filesystem, netwerk, services, ...) zijn er legio 'tools' om te beheren en te ondervragen. We beginnen hier dan ook met de absolute basis: kernelversie, distributie en versie, eenvoudige hardware en diskconfig.
kernelversie:
Met het commando uname komen we al een heel eind.
Er zijn de volgende opties:
$ uname --help
-a, --all print all information, in the following order,
except omit -p and -i if unknown:
-s, --kernel-name print the kernel name
-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type or "unknown"
-i, --hardware-platform print the hardware platform or "unknown"
-o, --operating-system print the operating system
--help display this help and exit
--version output version information and exit
We ondervragen nu één voor één deze opties:
$ uname -s Linux |
$ uname -v #1 SMP Wed May 12 18:03:14 UTC 2010 |
$ uname -i unknown |
$ uname -n newholland1 |
$ uname -m x86_64 |
$ uname -o GNU/Linux |
$ uname -r 2.6.26-2-amd64 |
$ uname -p unknown |
Bijna elk linux commando luistert naar de optie --help. Er wordt dan een korte gebruiksaanwijzing op scherm gebracht, met alle beschikbare opties.
voorbeeld:
$ gzip --help
Usage: gzip [OPTION]... [FILE]...
Compress or uncompress FILEs (by default, compress FILES in-place).
Mandatory arguments to long options are mandatory for short options too.
-c, --stdout write on standard output, keep original files
-d, --decompress decompress
-f, --force force overwrite of output file and compress links
-h, --help give this help
-l, --list list compressed file contents
-L, --license display software license
-n, --no-name do not save or restore the original name and time
-N, --name save or restore the original name and time stamp
-q, --quiet suppress all warnings
-r, --recursive operate recursively on directories
-S, --suffix=SUF use suffix SUF on compressed files
-t, --test test compressed file integrity
-v, --verbose verbose mode
-V, --version display version number
-1, --fast compress faster
-9, --best compress better
--rsyncable Make rsync-friendly archive
With no FILE, or when FILE is -, read standard input.
help intikken aan de prompt geeft een beknopte beschrijving van bash built-in commands.
voorbeeld:
$ help
GNU bash, versie 4.1.5(1)-release (i486-pc-linux-gnu)
Hieronder staan alle interne shell-opdrachten opgesomd. Typ 'help' om dit
overzicht opnieuw te zien. Typ 'help naam' voor meer informatie over de
opdracht met die naam. Typ 'info bash' voor gedetailleerde informatie over
de gehele shell. En gebruik 'man -k ...' of 'info ...' voor meer informatie
over andere opdrachten.
(Een sterretje (*) naast een naam betekent dat de functie uitgeschakeld is.)
job_spec [&] history [-c] [-d offset] [n] or hist>
(( expression )) if COMMANDS; then COMMANDS; [ elif C>
. filename [arguments] jobs [-lnprs] [jobspec ...] or jobs >
: kill [-s sigspec | -n signum | -sigs>
[ arg... ] let arg [arg ...]
[[ expression ]] local [option] name[=value] ...
alias [-p] [name[=value] ... ] logout [n]
bg [job_spec ...] mapfile [-n count] [-O origin] [-s c>
bind [-lpvsPVS] [-m keymap] [-f filen> popd [-n] [+N | -N]
break [n] printf [-v var] format [arguments]
builtin [shell-builtin [arg ...]] pushd [-n] [+N | -N | dir]
caller [expr] pwd [-LP]
case WORD in [PATTERN [| PATTERN]...)> read [-ers] [-a array] [-d delim] [->
cd [-L|-P] [dir] readarray [-n count] [-O origin] [-s>
command [-pVv] command [arg ...] readonly [-af] [name[=value] ...] or>
compgen [-abcdefgjksuv] [-o option] > return [n]
complete [-abcdefgjksuv] [-pr] [-DE] > select NAME [in WORDS ... ;] do COMM>
compopt [-o|+o option] [-DE] [name ..> set [--abefhkmnptuvxBCHP] [-o option>
continue [n] shift [n]
coproc [NAME] command [redirections] shopt [-pqsu] [-o] [optname ...]
declare [-aAfFilrtux] [-p] [name[=val> source filename [arguments]
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [jobspec ...] test [expr]
echo [-neE] [arg ...] time [-p] pipeline
enable [-a] [-dnps] [-f filename] [na> times
eval [arg ...] trap [-lp] [[arg] signal_spec ...]
exec [-cl] [-a name] [command [argume> true
exit [n] type [-afptP] name [name ...]
export [-fn] [name[=value] ...] or ex> typeset [-aAfFilrtux] [-p] name[=val>
false ulimit [-SHacdefilmnpqrstuvx] [limit>
fc [-e ename] [-lnr] [first] [last] o> umask [-p] [-S] [mode]
fg [job_spec] unalias [-a] name [name ...]
for NAME [in WORDS ... ] ; do COMMAND> unset [-f] [-v] [name ...]
for (( exp1; exp2; exp3 )); do COMMAN> until COMMANDS; do COMMANDS; done
function name { COMMANDS ; } or name > variables - Names and meanings of so>
getopts optstring name [arg] wait [id]
hash [-lr] [-p pathname] [-dt] [name > while COMMANDS; do COMMANDS; done
help [-dms] [pattern ...] { COMMANDS ; }
help <built-in-commando> geeft meer informatie over dat specifieke bash-built-in commando:
voorbeelden:
$ help cd
cd: cd [-L|-P] [dir]
De huidige map wijzigen.
Wijzigt de huidige map naar de gegeven MAP. Als geen MAP gegeven is,
dan wordt de waarde van de variabele HOME gebruikt.
De variabele CDPATH definieert de mappen waarin naar MAP gezocht wordt.
De mapnamen in CDPATH worden gescheiden door dubbele punten (:); een
lege mapnaam is hetzelfde als de huidige map (.). Als MAP begint met
een slash (/), dan wordt CDPATH niet gebruikt.
Als de gegeven map niet wordt gevonden, en shell-optie 'cdable_vars'
is ingeschakeld, dan wordt het gegeven woord als een variabelenaam
begrepen, en als die variabele een naam bevat, dan gaat 'cd' naar de
map met die naam.
Opties:
-L symbolische koppelingen volgen (standaard)
-P de fysieke mappenstructuur gebruiken;
symbolische koppelingen worden eerst "vertaald"
De afsluitwaarde is 0 als de gewenste map ingesteld kon worden, anders 1.
$ help alias
alias: alias [-p] [name[=value] ... ]
Aliassen definiëren of tonen.
Zonder argumenten, of met optie '-p', toont 'alias' op standaarduitvoer
de huidige lijst van aliassen in de vorm: alias NAAM='VERVANGING'.
Met argumenten, wordt er een alias gedefinieerd voor elke NAAM waarvoor
een VERVANGING gegeven is. Als de VERVANGING eindigt op een spatie, dan
wordt bij aliasexpansie ook van het nakomende woord gecontroleerd of het
een alias is.
De afsluitwaarde is 0, tenzij er een NAAM zonder VERVANGING gegeven is.
Voor nog meer informatie over deze built-in commands en over bash zelf kun je
"man bash" intikken.
Section |
The human readable name |
1 1M 2 3 4 5 6 7 8 9 0 n o l x |
User commands that may be started by everyone. System administration commands and daemons System calls, that is, functions provided by the kernel. Subroutines, that is, library functions. Devices, that is, special files in the /dev directory. File format descriptions, e.g. /etc/passwd. Games, self-explanatory. Miscellaneous, e.g. macro packages, conventions. System administration tools that only root can execute. Another(Linux specific) place for kernel routine docs. C-library header files New docs, that may be moved to a more appropriate section. Old documentation, that may be kept for a grace period. Local documentation referring to this particular system. X-window system |
Op het eerste zicht lijken info-pagina's verassend veel op man-pagina's.
info ping geeft bijna hetzelfde resultaat als man ping.
Maar als je de info opvraagt van het commando ls komen de verschillen tevoorschijn.
$ info ls
File: coreutils.info, Node: ls invocation, Next: dir invocation, Up: Directory listing
10.1 `ls': List directory contents
==================================
The `ls' program lists information about files (of any type, including
directories). Options and file arguments can be intermixed
arbitrarily, as usual.
For non-option command-line arguments that are directories, by
default `ls' lists the contents of directories, not recursively, and
omitting files with names beginning with `.'. For other non-option
arguments, by default `ls' lists just the file name. If no non-option
argument is specified, `ls' operates on the current directory, acting
as if it had been invoked with a single argument of `.'.
By default, the output is sorted alphabetically, according to the
locale settings in effect.(1) If standard output is a terminal, the
output is in columns (sorted vertically) and control characters are
De info over ls blijkt te komen uit een veel groter document: coreutils.info, en daar kun je dan verder in bladeren, ook als je het commando ls al voorbij bent.
Probeer zelf eens te navigeren door coreutils. Gebruik hiertoe de toetsen zoals hieronder aangegeven:
pijltjestoetsen, pgup, pgdn, home, end om te navigeren space = volgende pagina (pgup) backspace = vorige pagina (pgdn) n = next section p = previous section t = top van huidige info document u = up (een niveau hoger in de info hiërarchie) q = quit info als je cursor staat op een asterisk aan het begin van een regel, kun je met <enter> naar dat item doorlinken. |
autosprintf bashdb bc coreutils cpio cvsclient cvs dc |
ed find gdbm gettext gnupg1 grep grub ipc |
menu mjpeg-howto mtools nano rluserman screen sed spd-say |
speech-dispatcher ssip time vcdimager vcd-info vcdxrip wget |
Er is nog veel meer informatie te vinden op je linuxcomputer. Individuele pakketten installeren soms nog meer dan een binary en wat info en/of man pagina's.
In de directory /usr/share/doc/<pakketnaam> vinden we dan extra informatie terug. In de meeste gevallen zijn het niet meer dan changelogs (met informatie over wat er veranderd is t.o.v. vroegere versies) of README's en copyright files. Maar het is niet uitzonderlijk een mini-website terug te vinden met informatie, tekstfiles, pdf's of voorbeeld configfiles.
Debian en debian based distro's geven een overzicht van nuttige documenten in de directory /usr/share/doc-base. Elke file in die directory bevat een beschrijvende header, een documentformaattype en de documenten zelf.
voorbeeld1:
$ cat /usr/share/doc-base/cups
Document: cups
Title: CUPS Documentation
Author: Easy Software Products
Abstract: This documentation covers the use and administration of a CUPS
printing system, and the programming interface for the libcups API.
Section: System/Hardware
Format: HTML
Index: /usr/share/doc/cups/online-docs/index.html
Files: /usr/share/doc/cups/online-docs/*.html
Wat betekent dat als je je browser richt op
file:///usr/share/doc/cups/online-docs/index.html
je doorheen een volledige documentatie website kunt surfen.
voorbeeld2:
$ cat /usr/share/doc-base/mc-faq
Document: mc-faq
Title: Midnight Commander FAQ
Author: Janne Kukonlehto <janne@gnome.org>
Abstract: Midnight Commander Frequently Asked Questions and the Answers
Section: File Management
Format: text
Files: /usr/share/doc/mc/FAQ.gz
Hier kun je de frequently asked questions van midnight commander inkijken, met het commando
$ gzip -dc /usr/share/doc/mc/FAQ.gz | less
voorbeeld3:
In RedHat based distro's is er meestal geen doc-base. Als je de DNS-server bind installeert, krijg je wel een volledige voorbeeldconfiguratie:
$ ls -R /usr/share/doc/bind-9.3.6/
/usr/share/doc/bind-9.3.6/:
arm CHANGES COPYRIGHT misc README README.DBUS sample
/usr/share/doc/bind-9.3.6/arm:
Bv9ARM-book.xml Bv9ARM.ch03.html Bv9ARM.ch06.html Bv9ARM.ch09.html latex-fixup.pl README-SGML
Bv9ARM.ch01.html Bv9ARM.ch04.html Bv9ARM.ch07.html Bv9ARM.html Makefile
Bv9ARM.ch02.html Bv9ARM.ch05.html Bv9ARM.ch08.html Bv9ARM.pdf Makefile.in
/usr/share/doc/bind-9.3.6/misc:
dnssec ipv6 Makefile.in migration-4to9 options.edns roadmap sort-options.pl
format-options.pl Makefile migration options rfc-compliance sdb
/usr/share/doc/bind-9.3.6/sample:
etc var
/usr/share/doc/bind-9.3.6/sample/etc:
named.conf named.rfc1912.zones named.root.hints rndc.conf
/usr/share/doc/bind-9.3.6/sample/var:
named
/usr/share/doc/bind-9.3.6/sample/var/named:
data localhost.zone my.internal.zone.db named.ip6.local named.root slaves
localdomain.zone my.external.zone.db named.broadcast named.local named.zero
/usr/share/doc/bind-9.3.6/sample/var/named/data:
/usr/share/doc/bind-9.3.6/sample/var/named/slaves:
my.ddns.internal.zone.db my.slave.internal.zone.db
man-pagina's bevatten meer dan alleen commando-manuals. In section5 vinden we vooral manuals over configuratiebestanden.
Voor sommige van die manuals is het noodzakelijk het secienummer te gebruiken bij het opvragen van de manual. Ik denk hierbij aan de manual over de passwd-file, niet te verwarren met de manual over het passwd-commando.
voorbeeld:
$ man 5 passwd
PASSWD(5) File Formats and Conversions PASSWD(5) NAME passwd - the password file DESCRIPTION /etc/passwd contains one line for each user account, with seven fields delimited by colons (“:”). These fields are: · login name · optional encrypted password · numerical user ID · numerical group ID · user name or comment field · user home directory · optional user command interpreter The encrypted password field may be blank, in which case no password is required to authenticate as the specified login name. However, some applications which read the /etc/passwd file may decide not to permit any access at all if the password field is blank. If the password field is a lower-case “x”, then the encrypted password is actually stored in the shadow(5) file instead; there must be a corresponding line in the /etc/shadow file, or else the user account is invalid. If the password field is any other string, then it will be treated as an encrypted password, as specified by crypt(3). The comment field is used by various system utilities, such as finger(1). The home directory field provides the name of the initial working directory. The login program uses this information to set the value of the $HOME environmental variable. The command interpreter field provides the name of the users command language interpreter, or the name of the initial program to execute. The login program uses this information to set the value of the $SHELL environmental variable. If this field is empty, it defaults to the value /bin/sh. FILES /etc/passwd User account information. /etc/shadow optional encrypted password file /etc/passwd- Backup file for /etc/passwd. Note that this file is used by the tools of the shadow toolsuite, but not by all user and password management tools. SEE ALSO crypt(3), getent(1), getpwnam(3), login(1), passwd(1), pwck(8), pwconv(8), pwunconv(8), shadow(5), su(1), sulogin(8). File Formats and Conversions 01/26/2010 PASSWD(5) |
Informatie over je eigen server vind je niet op het internet, wel alle manuals, info pagina's, doc files en nog veel meer.
http://manpages.debian.net/cgi-bin/man.cgi
http://linux.die.net/man/
http://www.manpagez.com/
Om bij te blijven kun je sites volgen als
http://linuxtoday.com
Homepages van services als vsftpd, apache2, php5 of samba bevatten een schat aan informatie.
http://www.apache.org/
http://vsftpd.beasts.org/
http://www.samba.org/
http://www.samba.org/samba/docs/man/Samba-Guide/
http://www.squid-cache.org/
...
Er zijn linux specifieke websites zoals:
http://www.linux.org/
http://www.tldp.org
Websites van distributies vind je terug in het menu van linux800.be, selected links ..
Sites met talloze voorbeelden:
http://www.howtoforge.com
http://www.thegeekstuff.com
http://www.linuxhomenetworking.com/
http://cb.vu/unixtoolbox.xhtml
Wikipedia is ook een gigantische bron van informatie, met een honderden linux/unix .. artikels:
http://en.wikipedia.org/wiki/List_of_Unix_utilities
Google is er natuurlijk ook:
Deze search engine van google is specifiek op linux gericht:
http://www.google.com/linux
Op de gewone google.com, google je gewoon het key-word, al dan niet omgeven door aanhalingstekens, om honderden hits te vinden.
Het woord example, naast je key-word doet soms ook wonderen.
google search: vsftpd example |