Hi ha una habilitat que separa l'administrador que resol incidències del que les escala: no necessitar internet per saber què fa una ordre. Linux ve amb la seva pròpia documentació instal·lada, escrita per qui va desenvolupar cada eina, actualitzada amb la versió exacta que tens al davant i disponible encara que el servidor estigui aïllat en una xarxa sense sortida.
Aquesta última part no és un supòsit teòric. Un servidor de producció ben configurat sol estar darrere d'un tallafocs que no permet navegació. Un entorn bancari o sanitari pot ser en una xarxa completament separada. I quan hi ha una incidència greu, el primer que es talla és l'accés extern. Si el teu mètode de treball és «ho busco», en aquell moment et quedes sense mètode.
Aquesta lliçó t'ensenya el mètode alternatiu. En acabar-la sabràs llegir una pàgina de manual sencera —inclosa aquella notació amb claudàtors i barres que sembla jeroglífica—, buscar una ordre quan no en recordes el nom, i saber en quina de les cinc fonts de documentació diferents hi ha la resposta que necessites. És, probablement, la lliçó més rendible del mòdul.
Contingut
- Les cinc fonts de documentació d'un sistema Linux
man: el manual del sistema- Com es llegeix la notació del SYNOPSIS
- Les seccions del manual i per què existeixen
- Buscar al manual:
whatis,aproposiman -k - Navegar amb
lessdins deman --help: el resum ràpidinfo: la documentació extensa de GNUhelp: els builtins de Bash i per quèman cdno funciona- Documentació local a
/usr/share/doc tldricheat: el complement, no el substitut- Codis de sortida i
$?: saber si alguna cosa ha fallat - Estratègia de cerca quan no en saps ni el nom
- Les cinc fonts de documentació d'un sistema Linux
Abans d'entrar en detall, el mapa. A srv-tramontana conviuen cinc fonts diferents, i triar malament et fa perdre temps:
| Font | Ordre | Extensió | Quan és la correcta |
|---|---|---|---|
| Manual | man cmd |
Mitjana-llarga | La referència. La teva primera parada gairebé sempre |
| Ajuda breu | cmd --help |
Curta | Recordar una opció que ja coneixies |
| Info | info cmd |
Molt llarga | Eines GNU amb documentació de tipus llibre |
| Builtins | help cmd |
Mitjana | Ordres internes de Bash: cd, export, type... |
| Paquet | /usr/share/doc/ |
Variable | Exemples de configuració, changelogs, notes de la distribució |
I una sisena, opcional, que cal situar bé: tldr, que dona exemples pràctics però no és documentació oficial i no és exhaustiva.
La regla operativa: --help per recordar, man per entendre, info per aprofundir, /usr/share/doc per configurar.
man: el manual del sistema
man: el manual del sistemaman (de manual) mostra la pàgina de documentació oficial d'una ordre, un fitxer de configuració, una crida al sistema o un format de fitxer.
S'obre a pantalla completa en un paginador. Se'n surt amb q.
Les pàgines de manual segueixen una estructura estandarditzada des dels anys setanta. Conèixer-la et permet saltar directament al que busques en comptes de llegir de dalt a baix:
| Secció de la pàgina | Què conté | Quan la llegeixes |
|---|---|---|
| NAME | Nom i descripció en una línia | Per confirmar que és l'ordre que buscaves |
| SYNOPSIS | La sintaxi formal completa | El més dens i el més útil. Apartat 3 |
| DESCRIPTION | Què fa, en prosa | La primera vegada que fas servir l'ordre |
| OPTIONS | Cada opció, una a una | El 80 % de les teves consultes reals |
| EXIT STATUS | Què significa cada codi de sortida | En escriure scripts (Mòdul 4) |
| ENVIRONMENT | Variables que n'alteren el comportament | Quan l'ordre «es comporta estranyament» |
| FILES | Fitxers que llegeix o escriu | Buscant on és la seva configuració |
| EXAMPLES | Exemples d'ús | Quan existeix, és el primer que cal mirar |
| BUGS | Limitacions conegudes | Quan alguna cosa no funciona i no entens per què |
| SEE ALSO | Pàgines relacionades | Quan aquesta no era l'ordre que necessitaves |
Dos consells que canvien com es fa servir man:
- Comença per EXAMPLES si existeix. No totes les pàgines el tenen (les de GNU solen no tenir-lo), però quan hi és, resol el dubte en trenta segons.
- Acaba per SEE ALSO quan t'has equivocat d'ordre. És la llista d'eines relacionades escrita per qui millor coneix el domini.
Un exemple real de lectura selectiva. Necessites saber quins fitxers fa servir el servei SSH:
A dins, prems /FILES i Enter: saltes directament a la llista de fitxers, sense llegir les tres-centes línies anteriors. Tornarem a aquesta tècnica a l'apartat 6.
- Com es llegeix la notació del SYNOPSIS
El SYNOPSIS és la part que més gent es salta i la que més informació conté. Està escrit en una notació formal amb regles fixes:
| Notació | Significat | Exemple |
|---|---|---|
| Text en negreta | Escriu-ho literalment, tal qual | ls |
Text en cursiva o <MAJÚSCULES> |
Substitueix-ho pel teu valor | FILE → acces.log |
[alguna cosa] |
Opcional | [OPTION] |
alguna cosa... |
Es pot repetir | FILE... = un o diversos |
a|b |
O l'un o l'altre, excloents | -a|-b |
{a|b} |
Obligatori triar-ne un del grup | {start|stop} |
[-abc] |
Opcions curtes agrupables | [-alh] |
Vegem-ho aplicat. El SYNOPSIS de cp:
SYNOPSIS
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...Aquesta pàgina t'està dient tres coses que no apareixen escrites en prosa enlloc:
- Hi ha tres formes vàlides d'invocar
cp, no una. Cada línia és una forma completa. - A la primera,
SOURCEiDESTvan sense claudàtors: són obligatoris.cpsense arguments falla. - A la segona,
SOURCE...porta punts suspensius i l'últim argument s'anomenaDIRECTORY: pots copiar diversos fitxers de cop, però llavors el destí ha de ser un directori. Això explica un error que veuràs a la lliçó 02-04.
Un altre exemple, man 5 crontab enfront de man 1 crontab:
Aquí [-l | -r | -e] et diu que llistar, esborrar i editar són excloents: no pots demanar-ne dues alhora. Hi ha tota la lògica de l'ordre en una línia.
Exercici mental que t'hauries de fer sempre: abans de llegir OPTIONS, llegeix el SYNOPSIS i pregunta't quantes formes d'invocació hi ha i què és obligatori. Moltes vegades la resposta ja hi és.
- Les seccions del manual i per què existeixen
El manual està dividit en vuit seccions numerades. La raó és que un mateix nom pot referir-se a coses diferents: passwd és una ordre i un fitxer de configuració; printf és una ordre i una funció de C.
| Secció | Contingut | Exemple típic |
|---|---|---|
| 1 | Ordres d'usuari | man 1 ls, man 1 passwd |
| 2 | Crides al sistema (al nucli) | man 2 open, man 2 read |
| 3 | Funcions de biblioteca (C) | man 3 printf, man 3 malloc |
| 4 | Fitxers especials de /dev |
man 4 null, man 4 random |
| 5 | Formats de fitxer i configuració | man 5 passwd, man 5 fstab, man 5 crontab |
| 6 | Jocs | man 6 sl |
| 7 | Convencions i miscel·lània | man 7 hier, man 7 signal, man 7 regex |
| 8 | Ordres d'administració | man 8 mount, man 8 useradd, man 8 sshd |
Les tres que faràs servir constantment com a administrador són la 1 (ordres), la 5 (fitxers de configuració) i la 8 (eines de root).
Quan executes man passwd sense número, man et dona la primera secció on trobi aquesta pàgina, normalment la 1:
operador@srv-tramontana:~$ man passwd
PASSWD(1) User Commands PASSWD(1)
NAME
passwd - change user passwordPerò si el que vols és entendre el format del fitxer /etc/passwd, aquesta és una altra pàgina completament diferent:
operador@srv-tramontana:~$ man 5 passwd
PASSWD(5) File Formats and Conversions PASSWD(5)
NAME
passwd - the password file
DESCRIPTION
/etc/passwd contains a list of the system's accounts, giving
useful information like user ID, group ID, home directory,
shell...La capçalera et diu sempre en quina secció ets: PASSWD(1) enfront de PASSWD(5). Acostuma't a mirar aquest número: és la manera de saber si estàs llegint la pàgina correcta.
Per saber en quines seccions existeix una pàgina:
operador@srv-tramontana:~$ man -f passwd
passwd (1) - change user password
passwd (1ssl) - compute password hashes
passwd (5) - the password file
operador@srv-tramontana:~$ man -a passwdman -a te les mostra totes en seqüència: en sortir d'una amb q, pregunta si vols veure la següent.
Dues pàgines de la secció 7 que val la pena que coneguis ja:
man 7 hier # L'arbre de directoris complet: l'FHS del Mòdul 1, al sistema mateix
man 7 signal # Els senyals (útil a la lliçó 03-06)
- Buscar al manual:
whatis, apropos i man -k
whatis, apropos i man -kAquestes dues eines resolen les dues preguntes més freqüents.
«Què és aquesta ordre que acabo de veure en un script?» → whatis (equivalent a man -f), que mostra només la línia NAME:
operador@srv-tramontana:~$ whatis rsync
rsync (1) - a fast, versatile, remote (and local) file-copying tool
operador@srv-tramontana:~$ whatis tar cpio
tar (1) - an archiving utility
cpio (1) - copy files to and from archives«No sé com es diu l'ordre que necessito» → apropos (equivalent a man -k), que busca la paraula a les descripcions de totes les pàgines instal·lades:
operador@srv-tramontana:~$ apropos "disk space"
df (1) - report file system disk space usage
du (1) - estimate file space usage
ncdu (1) - NCurses Disk UsageEn tres segons, sense cercador, tens les tres eines que existeixen per al problema. Aquesta és la resposta a la crítica de «la CLI no és descobrible» de l'apartat 1 de la lliçó anterior: sí que ho és, però es descobreix amb apropos, no amb menús.
Quan la cerca retorna massa coses, s'afina:
operador@srv-tramontana:~$ apropos -s 8 network
ifconfig (8) - configure a network interface
ip (8) - show / manipulate routing, network devices...
netplan (8) - Ubuntu Network Configuration-s 8 restringeix a la secció d'administració. També pots limitar la cerca al nom en comptes de a la descripció:
-e força coincidència exacta, útil perquè apropos tar retornaria desenes de pàgines que contenen «tar» dins d'altres paraules.
Si apropos respon nothing appropriate, pot ser que la base de dades d'índexs no estigui generada. Es regenera amb:
operador@srv-tramontana:~$ sudo mandb
Purging old database entries in /usr/share/man...
0 old manual pages deleted
15 manual pages added
- Navegar amb
less dins de man
less dins de manman no dibuixa res per si mateix: envia el text a un paginador, que a Ubuntu és less. Les dreceres que aprenguis aquí valen també per veure fitxers i registres (lliçó 02-05), així que són doblement rendibles.
| Tecla | Acció |
|---|---|
Espai / f |
Avançar una pantalla |
b |
Retrocedir una pantalla |
Fletxes / j / k |
Línia a línia |
g |
Anar al principi del document |
G |
Anar al final |
50g |
Anar a la línia 50 |
/text |
Buscar cap endavant |
?text |
Buscar cap enrere |
n |
Coincidència següent |
N |
Coincidència anterior |
&text |
Mostrar només les línies que contenen el text |
h |
Ajuda del mateix less |
q |
Sortir |
El flux de treball real d'algú amb experiència no és llegir la pàgina: és entrar i buscar.
Suposa que vols saber què fa l'opció -h de du. En comptes de recórrer la pàgina:
A dins, escriu /-h i Enter. less salta a la primera aparició; amb n avances fins a la que és a la secció OPTIONS:
Truc molt útil: per buscar una opció concreta i evitar les desenes d'aparicions soltes d'aquella lletra, busca el patró amb espais:
El ^ significa «al principi de línia» i les pàgines de manual sagnen les opcions, així que això salta directament a la seva definició. (Aquell ^ és una expressió regular; el tema complet és de la lliçó 03-02, però aquest ús solt el pots adoptar ja.)
I un advertiment pràctic: si ets dins de man i no saps com sortir-ne, és q. És la pregunta més freqüent de tot el curs.
--help: el resum ràpid
--help: el resum ràpidGairebé totes les ordres accepten --help (o -h) i responen amb un resum al terminal mateix, sense paginador:
operador@srv-tramontana:~$ head --help
Usage: head [OPTION]... [FILE]...
Print the first 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.
Mandatory arguments to long options are mandatory for short options too.
-c, --bytes=[-]NUM print the first NUM bytes of each file
-n, --lines=[-]NUM print the first NUM lines instead of the first 10
-q, --quiet never print headers giving file names
-v, --verbose always print headers giving file names
--help display this help and exit
--version output version information and exitDiferències amb man:
--help |
man |
|
|---|---|---|
| Origen | És dins de l'executable | Fitxer a part, del paquet de documentació |
| Longitud | Una pantalla | Completa |
| Disponibilitat | Gairebé sempre | Pot faltar en contenidors minimalistes |
| Explicacions | Escarides | Amb context, exemples i matisos |
| Actualització | Sempre coincideix amb el binari | Molt rarament pot quedar desfasada |
Aquest últim punt té una conseqüència pràctica: en un contenidor Docker minimalista (Mòdul 7) no sol haver-hi pàgines de manual instal·lades, perquè s'eliminen per reduir la mida de la imatge. Allà --help és l'únic que tens.
Compte amb un detall: en algunes ordres, -h no significa «ajuda». A ls, du i df significa human-readable. Si dubtes, fes servir --help, que és inequívoc.
I un altre: quan la sortida de --help no cap a la pantalla, no la persegueixis cap amunt. Envia-la al paginador:
Aquell | és una canonada; s'explica a fons a la lliçó 03-04, però aquest ús el pots adoptar des d'avui.
info: la documentació extensa de GNU
info: la documentació extensa de GNUEl projecte GNU va decidir en el seu moment que les pàgines de manual eren massa limitades per documentar les seves eines i va crear el seu propi sistema: Texinfo, que es consulta amb info. Està organitzat en nodes enllaçats, com un llibre amb capítols navegables.
Conseqüència pràctica que cal conèixer: a les eines GNU (ls, cp, mv, tar, grep, sed...), la pàgina de manual és sovint un resum i la documentació real és a info. Moltes pàgines acaben amb una nota explícita:
Full documentation <https://www.gnu.org/software/coreutils/ls>
or available locally via: info '(coreutils) ls invocation'Navegació bàsica d'info:
| Tecla | Acció |
|---|---|
| Espai / Retrocés | Avançar / retrocedir |
n |
Node següent del mateix nivell |
p |
Node anterior |
u |
Pujar al node pare |
Enter sobre un * |
Entrar en aquell node |
l |
Tornar al node anterior visitat |
s |
Buscar |
q |
Sortir |
Quan val la pena info: quan man et dona l'opció però no el perquè. Per exemple, per entendre el comportament exacte de cp amb enllaços simbòlics, o els formats de date, info explica els casos límit que man només enumera.
Si info et resulta incòmode (li passa a molta gent per la navegació amb nodes), tens una sortida:
Així llegeixes el mateix contingut a less, amb les dreceres que ja coneixes.
help: els builtins de Bash i per què man cd no funciona
help: els builtins de Bash i per què man cd no funcionaProva això:
L'explicació és a la lliçó anterior: cd no és un programa, és una ordre interna de Bash. No hi ha cap paquet que l'instal·li, així que no hi ha cap pàgina de manual que el documenti. La seva documentació la proporciona el mateix Bash amb el builtin help:
operador@srv-tramontana:~$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
Change the current directory to DIR. The default DIR is the value of
the HOME shell variable.
...I la llista completa de builtins, que convé mirar un cop a la vida:
operador@srv-tramontana:~$ help
GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)
...
alias [-p] [name[=value] ... ] cd [-L|[-P [-e]] [-@]] [dir]
bg [job_spec ...] command [-pVv] command [arg ...]
...L'arbre de decisió complet:
flowchart TD
A["Necessito documentació de 'X'"] --> B{"type X"}
B -->|"és una ordre interna del shell"| C["help X"]
B -->|"és /ruta/al/programa"| D["man X"]
B -->|"és un àlies"| E["type -a X<br/>i documentar l'ordre real"]
D --> F{"Existeix la pàgina?"}
F -->|Sí| G["Llegir i buscar amb /"]
F -->|"No hi ha pàgina de manual"| H["X --help"]
G --> I{"Suficient?"}
I -->|No| J["info X<br/>/usr/share/doc/X/"]
I -->|Sí| K[Resolt]
Hi ha un cas intermedi que convé conèixer: man builtins mostra tots els builtins documentats en una sola pàgina, i man bash conté la documentació completa del shell. És una de les pàgines de manual més llargues del sistema (més de cinc mil línies), i per això mateix /paraula és imprescindible allà dins.
- Documentació local a
/usr/share/doc
/usr/share/docCada paquet instal·lat deixa documentació a /usr/share/doc/<paquet>/. És la font que més s'ignora i la que més vegades conté exactament el que necessites: fitxers de configuració d'exemple.
operador@srv-tramontana:~$ ls /usr/share/doc/openssh-server/
NEWS.Debian.gz README.Debian.gz changelog.Debian.gz copyright
examples/ faq.htmlQuè esperar en cada tipus de fitxer:
| Fitxer | Contingut |
|---|---|
README.Debian |
Com empaqueta Debian/Ubuntu aquesta eina: rutes i decisions pròpies de la distro |
NEWS.Debian |
Canvis importants que poden trencar la teva configuració en actualitzar |
changelog.Debian.gz |
Historial de versions del paquet |
examples/ |
Fitxers de configuració d'exemple, or pur |
copyright |
Llicència |
Molts estan comprimits en .gz. Es llegeixen sense descomprimir-los amb zless o zcat:
README.Debian és especialment valuós perquè documenta les diferències entre l'eina original i com l'empaqueta Ubuntu: rutes canviades, opcions per defecte diferents, integració amb systemd. Això no apareix a la documentació oficial del projecte i és la causa de la meitat de les confusions quan segueixes un tutorial escrit per a una altra distribució.
Quan arribis a configurar serveis al Mòdul 5 i al Mòdul 8, aquesta carpeta serà la teva primera parada abans que qualsevol tutorial.
tldr i cheat: el complement, no el substitut
tldr i cheat: el complement, no el substituttldr (de too long; didn't read) és una col·lecció comunitària d'exemples pràctics. On man tar et dona mil línies, tldr tar et dona les sis invocacions que es fan servir el 95 % de les vegades.
operador@srv-tramontana:~$ tldr tar
tar
Archiving utility.
- Create an archive from files:
tar cf target.tar file1 file2 file3
- Create a gzipped archive:
tar czf target.tar.gz file1 file2 file3
- Extract a (compressed) archive into the current directory:
tar xf source.tar[.gz|.bz2|.xz]
- List the contents of a tar file:
tar tvf source.tarÉs enormement útil, i cal ser conscient dels seus tres límits:
- No és exhaustiu. Mostra el que és comú, no el que necessites en un cas rar. I els casos rars són precisament les incidències.
- No és oficial. L'escriu la comunitat; pot estar desactualitzat respecte a la teva versió.
- Pot no estar instal·lat, i en un servidor de producció és probable que no ho estigui (i que no l'hi hagis d'instal·lar només per això).
Criteri professional: tldr per arrencar ràpid amb una eina que ja entens; man per decidir alguna cosa que va a producció. Si has d'executar una ordre destructiva o modificar la configuració d'un servei en marxa, la font és el manual.
- Codis de sortida i
$?: saber si alguna cosa ha fallat
$?: saber si alguna cosa ha fallatRecorda de l'apartat 9 de la lliçó anterior: tota ordre retorna un número en acabar. Ara ho mirarem directament, perquè és la informació que et diu si alguna cosa ha funcionat quan l'ordre no ha dit res.
operador@srv-tramontana:~$ ls /var/log/tramontana
acces.log errors.log
operador@srv-tramontana:~$ echo $?
0
operador@srv-tramontana:~$ ls /var/log/inexistent
ls: cannot access '/var/log/inexistent': No such file or directory
operador@srv-tramontana:~$ echo $?
2$? guarda el codi de l'última ordre executada. Convenció universal:
| Codi | Significat |
|---|---|
| 0 | Èxit |
| 1 | Error genèric |
| 2 | Ús incorrecte (opció invàlida, falten arguments) |
| 126 | El fitxer existeix però no és executable |
| 127 | Ordre no trobada |
| 128+N | Acabat pel senyal N (130 = interromput amb Ctrl+C) |
Cada ordre pot definir els seus, i aquí és on entra la secció EXIT STATUS del manual:
Buscant /EXIT STATUS:
EXIT STATUS
Normally the exit status is 0 if a line is selected, 1 if no lines
were selected, and 2 if an error occurred.Això significa que a grep, 1 no és una fallada: significa «no hi ha coincidències». Confondre «no ha trobat res» amb «s'ha trencat» és una font clàssica d'errors en scripts de monitoratge. I l'única manera de saber-ho és llegint aquesta secció del manual.
Compte amb un parany: $? es reescriu amb cada ordre, inclòs l'echo que el mostra.
operador@srv-tramontana:~$ ls /inexistent
ls: cannot access '/inexistent': No such file...
operador@srv-tramontana:~$ echo $?
2
operador@srv-tramontana:~$ echo $?
0El segon 0 és el codi de l'echo anterior, que va funcionar perfectament. Consulta $? immediatament, o desa'l en una variable (Mòdul 4).
- Estratègia de cerca quan no en saps ni el nom
Aquest és el procediment complet, ordenat, per quan t'enfrontes a un problema sense saber quina eina el resol:
- Descriu el problema en dues o tres paraules en anglès. «space», «compress», «rename», «monitor processes».
aproposamb aquestes paraules, acotant amb-s 1o-s 8.- De la llista,
whatissobre els candidats per descartar ràpid. mansobre el triat: llegeix NAME, SYNOPSIS i salta a EXAMPLES.- Si no era el correcte, SEE ALSO d'aquella pàgina sol contenir el que sí que ho és.
- Si l'ordre existeix però no la saps fer servir,
tldrper a una arrencada ràpida, i tornada al manual per als detalls. - Si és un fitxer de configuració,
man 5 <nom>i/usr/share/doc/<paquet>/examples/. - Si és una ordre que no té manual,
typeet dirà si és un builtin i llavorshelp.
Un recorregut complet. La Marta Vidal pregunta quant ocupa el directori de l'aplicació:
operador@srv-tramontana:~$ apropos -s 1 "file space"
du (1) - estimate file space usage
operador@srv-tramontana:~$ whatis du
du (1) - estimate file space usage
operador@srv-tramontana:~$ man duDins del manual, /summarize:
I /human:
Resultat, sense sortir del servidor i sense cercador:
Tres ordres i dues cerques dins d'una pàgina. Aquest és el mètode.
Errors Comuns i Consells
No saber sortir de man. És q. Si ets a info, també q. Si has entrat a vim per accident, és :q! (lliçó 02-05).
Llegir la pàgina sencera de dalt a baix. Les pàgines de manual són referència, no tutorials. Entra i busca amb /.
Ignorar el número de secció. Si man passwd et parla de canviar contrasenyes i tu buscaves el format del fitxer, no és que el manual estigui malament: et falta el 5.
Buscar a internet abans que a apropos. El cercador et donarà una resposta escrita per a una altra distribució, una altra versió i un altre any. man documenta exactament el binari que tens instal·lat.
Copiar una ordre d'un fòrum sense llegir-ne les opcions. Abans d'executar alguna cosa que no entens, passa-li les opcions per man. És literalment un minut, i és la diferència entre resoldre una incidència i provocar-ne una altra.
Consell: man -k és el teu cercador local. Acostuma't a provar-lo abans d'obrir el navegador. La primera setmana et semblarà més lent; a partir de la tercera aniràs més ràpid.
Consell: guarda el que aprens. Crea /home/operador/scripts/notes/ i escriu-hi les ordres que has hagut de buscar. La teva pròpia documentació, amb els teus casos, és més ràpida de consultar que qualsevol manual.
Consell: llegeix man 7 hier un cop. És l'FHS del Mòdul 1 explicat pel sistema mateix. Mitja hora ben invertida.
Consell: en un servidor sense pàgines de manual, comprova si estan desactivades abans de donar-les per perdudes. Algunes imatges les exclouen a la configuració d'instal·lació de paquets; com es recuperen és matèria de la lliçó 05-03.
Exercicis
Exercici 1: dominar el SYNOPSIS
Sense executar les ordres, només llegint-ne les pàgines de manual, respon:
mkdiraccepta crear diversos directoris en una sola ordre? Com ho saps pel SYNOPSIS?- Quantes formes diferents d'invocació té
ln? - A
man 1 tar, són-c,-xi-tcompatibles entre si?
Exercici 2: el dubte d'en Luis Ferrer
En Luis t'escriu: «Necessito quedar-me només amb les últimes 50 línies de /var/log/tramontana/acces.log i no me'n recordo, de l'ordre. A més vull veure-ho actualitzant-se en directe mentre provo l'aplicació. Me'l busques al Google?»
Restricció: srv-tramontana és en una xarxa sense sortida a internet. Resol-ho fent servir només documentació del sistema, i documenta el camí que has seguit (quines ordres de cerca has fet servir i en quin ordre).
Exercici 3: informe de documentació per a la Marta
La Marta Vidal vol saber què fa exactament la línia 0 3 * * * /home/operador/scripts/backup.sh que apareix a la configuració de tasques programades del servidor anterior, i si el format és fiable.
Fent servir només el manual del sistema, esbrina:
- En quina secció del manual està documentat el format d'aquell fitxer (no l'ordre).
- Què significa cadascun dels cinc camps.
- Quin codi de sortida retorna l'ordre
crontabsi el fitxer té un error de sintaxi.
Escriu la resposta com un paràgraf breu adreçat a la Marta, que no és tècnica.
Solucions
Solució 1
Sí que n'accepta diversos. La prova són els punts suspensius després de DIRECTORY: signifiquen «un o més». I com que DIRECTORY va sense claudàtors, almenys un és obligatori. Tota aquesta informació és en una sola línia, sense llegir ni una paraula de prosa.
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME
ln [OPTION]... TARGET
ln [OPTION]... TARGET... DIRECTORY
ln [OPTION]... -t DIRECTORY TARGET...Quatre formes. Fixa't en la segona: ln TARGET sense nom d'enllaç. Crea l'enllaç al directori actual amb el mateix nom que l'objectiu. És un detall que sorprèn i que només s'aprèn llegint el SYNOPSIS. El faràs servir a la lliçó 02-06.
Operation mode:
-c, --create create a new archive
-x, --extract, --get extract files from an archive
-t, --list list the contents of an archiveEstan agrupades sota l'epígraf «Operation mode» (mode d'operació), cosa que indica que se n'elegeix un i només un. La pàgina ho confirma més amunt:
No són compatibles. Intentar tar -cx dona un error del tipus «You may not specify more than one -Acdtrux option». La pista era a l'organització de la pàgina mateixa: quan un manual agrupa opcions sota un epígraf de «mode», solen ser excloents.
Solució 2
Camí seguit.
Primer, buscar al manual per concepte:
operador@srv-tramontana:~$ apropos -s 1 "last part of files"
tail (1) - output the last part of filesConfirmar que és el que sembla:
operador@srv-tramontana:~$ whatis tail head
tail (1) - output the last part of files
head (1) - output the first part of filesAnar al manual i buscar-hi dins com fixar el nombre de línies. Dins de man tail, /lines:
I per a la segona part, la de seguir el fitxer en directe, /follow:
-f, --follow[={name|descriptor}]
output appended data as the file grows
-F same as --follow=name --retryLes dues ordres que resolen la petició d'en Luis:
operador@srv-tramontana:~$ sudo tail -n 50 /var/log/tramontana/acces.log
2026-08-18 09:12:44 GET /cases 200 usuari=anon
...
2026-08-18 09:14:11 GET /cases 200 usuari=anon
operador@srv-tramontana:~$ sudo tail -f /var/log/tramontana/acces.logSe surt del mode seguiment amb Ctrl+C.
El matís que aporta la documentació i que no hauria donat una resposta ràpida de cercador: la diferència entre -f i -F. -f segueix el descriptor del fitxer; si logrotate rota el registre a mitjanit i en crea un de nou, tail -f es queda mirant el fitxer antic, ja reanomenat, i deixa de mostrar res sense avisar. -F segueix el nom, així que es reenganxa amb el fitxer nou.
Per seguir un registre de producció que rota, l'opció correcta és tail -F. Això és literalment a la pàgina de manual, i és exactament el tipus de detall que un tutorial de tres línies omet. Hi tornarem a la lliçó 02-05.
El que li contestes a en Luis no és l'ordre: és el mètode. apropos amb dues paraules en anglès, whatis per confirmar i /opció dins del manual. Trenta segons, sense internet.
Solució 3
1. Secció del manual. L'ordre crontab és a la secció 1, però el format del fitxer és a la 5:
operador@srv-tramontana:~$ man -f crontab
crontab (1) - maintain crontab files for individual users
crontab (5) - tables for driving cron
operador@srv-tramontana:~$ man 5 crontab2. Els cinc camps. Dins de la pàgina, buscant /field:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names)
day of week 0-7 (0 and 7 are Sunday, or names)Aplicat a 0 3 * * *: minut 0, hora 3, qualsevol dia del mes, qualsevol mes, qualsevol dia de la setmana. És a dir, tots els dies a les 3:00.
3. Codi de sortida davant d'un error de sintaxi. A man 1 crontab, buscant /EXIT:
EXIT STATUS
An exit status of 0 will be returned upon successful completion,
otherwise a non-zero value will be returned.I a la secció DIAGNOSTICS de la mateixa pàgina s'explica que un fitxer amb errors de sintaxi és rebutjat completament: crontab no instal·la una versió parcial. Aquest matís és l'important per a la Marta, i només apareix llegint la pàgina.
Informe per a la Marta:
Marta, la línia
0 3 * * * /home/operador/scripts/backup.shés una tasca programada del sistema. Els cinc primers valors són un rellotge: minut 0, hora 3, i els tres asteriscs signifiquen «qualsevol dia, qualsevol mes, qualsevol dia de la setmana». En conjunt: l'script de còpia de seguretat s'executa automàticament cada dia a les 3:00 de la matinada.Sobre la fiabilitat del format: és l'estàndard d'Unix, fa més de quaranta anys que s'utilitza i està documentat al sistema mateix. Quan s'instal·la una tasca, el programa valida la sintaxi i rebutja el fitxer sencer si hi ha un error, en comptes d'acceptar-lo a mitges. Això vol dir que una tasca mal escrita no s'instal·la, en comptes d'instal·lar-se i executar-se a una hora equivocada.
L'única excepció és que el format diu quan es llança l'script, no garanteix que l'script funcioni. Verificar que la còpia es fa correctament requereix revisar el seu registre d'execució, cosa que et proposo muntar quan tinguem el sistema de monitoratge en marxa.
Tota la informació d'aquest informe va sortir de dues pàgines de manual instal·lades al servidor mateix.
Conclusió
Ja no depens d'un cercador per treballar a Linux.
- Un sistema Linux porta cinc fonts de documentació:
manper entendre,--helpper recordar,infoper aprofundir,helpper als builtins i/usr/share/docper configurar. - Saps llegir una pàgina de manual saltant al que necessites: EXAMPLES primer quan existeix, FILES per localitzar configuració, EXIT STATUS abans d'escriure scripts i SEE ALSO quan t'has equivocat d'eina.
- Entens la notació del SYNOPSIS: claudàtors per al que és opcional, punts suspensius per al que és repetible, barres per al que és excloent, i diverses línies per a diverses formes d'invocació.
- Coneixes les vuit seccions, i en particular la diferència entre
man 1 passwdiman 5 passwd, que és el parany on cau tothom. - Pots buscar sense saber el nom amb
aproposi confirmar ambwhatis. - Et mous dins de
lessamb/,n,N,g,Giq, dreceres que reaprofitaràs per llegir fitxers i registres. - Saps per què
man cdno existeix i què fer llavors. - I saps llegir el codi de sortida amb
$?, i que un1no sempre significa error, com demostragrep.
Tens l'intèrpret i tens el manual. El que falta és el terreny. A la propera lliçó, Navegant pel Sistema de Fitxers, baixaràs a l'arbre que vas conèixer al Mòdul 1 però aquesta vegada per recórrer-lo: pwd i el directori de treball, cd en totes les seves formes incloses les que gairebé ningú no fa servir, ls esmicolat columna a columna, tree, stat amb les seves tres marques de temps, file per saber què és de debò un fitxer, i du/df per mirar quant ocupa /var/log/tramontana. Al final faràs un recorregut complet i documentat de l'arbre de Tramontana Reserves. I quan alguna cosa no et quadri, ja saps on mirar abans de preguntar.
Curs de Linux: De Principiant a Administrador de Sistemes
Mòdul 1: Introducció a Linux
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Primer Contacte amb el Sistema
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Obtenir Ajuda i Documentació del Sistema
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Enllaços Durs i Simbòlics
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades en la Línia de Comandes
- L'Entorn del Shell: Variables, Àlies i Historial
- Ús de Comodins i Expressions Regulars
- Cerca de Fitxers i Contingut: find, locate i grep
- Canonades i Redirecció
- Processament de Text: cut, sort, uniq, sed i awk
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting en Shell
- Introducció al Scripting en Shell
- Variables i Tipus de Dades
- Entrada, Sortida i Arguments d'un Script
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
- Scripts de Producció: Bones Pràctiques
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- sudo i Permisos Especials
- Gestió de Paquets
- Gestió de Discs
- systemd i la Gestió de Serveis
- Registres del Sistema: journald i syslog
- Monitoratge del Sistema i Optimització del Rendiment
- Còpies de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxes
- SSH i Accés Remot
- Tallafocs i Seguretat Perimetral
- Sistemes de Detecció d'Intrusions
- Gestió de Secrets i Certificats TLS
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- El Procés d'Arrencada i la Recuperació del Sistema
- Diagnòstic Avançat: strace, perf i eBPF
- Optimització del Nucli de Linux
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Alta Disponibilitat i Balanceig de Càrrega
