Tens srv-tramontana arrencat i un cursor parpellejant després d'operador@srv-tramontana:~$. Sense icones, sense finestres, sense menús. Per a algú que ve de Windows o macOS, aquella pantalla pot resultar intimidadora: sembla que l'ordinador espera que sàpigues alguna cosa que ningú no t'ha dit.

Aquesta lliçó desactiva aquesta sensació. Entendràs què és exactament el que estàs mirant: què ha passat en iniciar sessió, què significa cada caràcter del prompt, quina diferència hi ha entre una consola, un terminal i una TTY, i per què el shell és el programa més important de la teva jornada. Després faràs el reconeixement inicial de srv-tramontana: comprovar quina versió corre, quanta memòria té i quant disc queda, que és literalment el primer que fa un administrador en rebre una màquina nova.

Un aclariment sobre l'enfocament: les ordres que veuràs aquí són per mirar, no per dominar. L'objectiu és que sàpigues què estàs veient i que t'hi moguis amb soltesa. El maneig seriós de la línia d'ordres comença al Mòdul 2.

Contingut

  1. Què passa en iniciar sessió
  2. El prompt, caràcter a caràcter
  3. Consola, terminal, TTY i emulador de terminal
  4. Què és el shell i per què Bash
  5. Entorn gràfic enfront de només text
  6. Anatomia d'una ordre
  7. Reconeixement inicial de srv-tramontana
  8. Dreceres de teclat de supervivència
  9. Usuari normal, root i el primer contacte amb sudo
  10. Apagar, reiniciar i tancar sessió correctament

  1. Què passa en iniciar sessió

Quan després de l'arrencada apareix això:

Ubuntu 24.04.1 LTS srv-tramontana tty1

srv-tramontana login:

no és una pantalla decorativa. Hi ha una cadena de programes treballant:

  1. systemd, el procés número 1, ha arrencat tots els serveis del sistema i ha llançat un programa anomenat getty a cada terminal virtual.
  2. getty és qui mostra aquell missatge i espera un nom d'usuari. La seva feina és preparar el terminal i recollir qui vol entrar.
  3. Quan escrius operador, getty cedeix el control a login, que demana la contrasenya, la xifra i la compara amb el hash emmagatzemat a /etc/shadow.
  4. Si coincideix, login estableix la teva identitat (usuari, grups, variables d'entorn), et situa al teu directori personal /home/operador i executa el teu shell, que a Ubuntu és Bash.
  5. Bash llegeix els seus fitxers de configuració (/etc/profile, ~/.bashrc) i mostra el prompt.

Aquest és el moment en què el sistema passa a estar a la teva disposició. I hi ha un detall important que s'aprecia millor amb la lliçó 01-01 fresca: a partir d'aquí, tot el que facis serà un procés fill del teu shell.

Abans del prompt veuràs el missatge del dia (MOTD), que a Ubuntu Server conté informació útil:

Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-41-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

  System information as of Mon Aug 18 09:12:04 UTC 2026

  System load:  0.08              Processes:             112
  Usage of /:   28.4% of 22.51GB  Users logged in:       0
  Memory usage: 12%               IPv4 address for enp0s3: 10.0.2.15
  Swap usage:   0%

0 updates can be applied immediately.

Last login: Mon Aug 18 08:55:31 2026 from 192.168.56.1

Val la pena llegir-lo en lloc d'ignorar-lo, perquè et dona un tauler de control gratuït: càrrega del sistema, ocupació de disc, ús de memòria, adreça IP, actualitzacions pendents i —molt important des del punt de vista de seguretat— quan i des d'on es va iniciar sessió l'última vegada. Si aquella línia Last login mostra una data o una IP que no reconeixes, tens un motiu seriós per investigar.

  1. El prompt, caràcter a caràcter

El prompt és la línia que el shell mostra per indicar que està llest. A Ubuntu té aquesta forma:

operador@srv-tramontana:~$

Desglossament:

Part Significat
operador L'usuari amb el qual has iniciat sessió
@ Separador, es llegeix "a"
srv-tramontana El hostname: el nom de la màquina
: Separador
~ El directori actual. La titlla és una abreviatura del teu directori personal, aquí /home/operador
$ Indica que ets un usuari normal. Si fossis root seria #

Els tres primers elements són una resposta permanent a les tres preguntes que més problemes causen quan s'ignoren: qui soc, en quina màquina soc i on soc.

La distinció entre $ i # no és cosmètica: és un senyal de perill. Si al teu prompt apareix #, tens poder absolut sobre la màquina i cap ordre no et demanarà confirmació.

operador@srv-tramontana:~$        ← usuari normal, al seu directori personal
operador@srv-tramontana:/etc$     ← usuari normal, dins de /etc
root@srv-tramontana:/#            ← ROOT, a l'arrel. Màxima precaució
operador@portatil-alumne:~$       ← una altra màquina diferent

Aquest últim cas il·lustra per què el hostname al prompt és tan valuós: quan tinguis diverses terminals obertes contra màquines diferents, és l'única cosa que t'impedeix executar en producció el que creies estar executant en proves. És un error clàssic i car.

El prompt és configurable mitjançant la variable PS1, i al Mòdul 3 aprendràs a personalitzar-lo (molta gent hi afegeix colors, la branca de Git o l'hora).

  1. Consola, terminal, TTY i emulador de terminal

Quatre paraules que sonen a sinònims i no ho són. La confusió ve del fet que totes tenen origen en maquinari que ja no existeix.

Terme Origen històric Què significa avui
Terminal Aparell físic amb teclat i pantalla connectat a un ordinador central Qualsevol interfície de text per interactuar amb el sistema
TTY Teletypewriter, teletip: màquina d'escriure electromecànica Nom que Linux dona a cada dispositiu de terminal (/dev/tty1)
Consola El terminal físic principal, connectat directament a l'ordinador La pantalla i el teclat directes de la màquina, sense xarxa pel mig
Emulador de terminal — Programa que simula un terminal dins d'un entorn gràfic
Shell — El programa que interpreta les teves ordres. No és el terminal

La distinció entre les dues últimes files és la que més costa i la que més aclareix les coses:

  • El terminal és el continent: la finestra o pantalla on escrius i llegeixes.
  • El shell és el contingut: el programa que llegeix el que escrius, ho interpreta i executa programes.

Pots canviar de terminal mantenint el mateix shell (Bash), o canviar de shell (a Zsh, per exemple) mantenint el mateix terminal. Són peces independents que es combinen.

flowchart LR
    U["Tu"] -->|tecles| T["Terminal<br/>(GNOME Terminal, PuTTY,<br/>consola física, sessió SSH)"]
    T -->|text| S["Shell<br/>(Bash)"]
    S -->|executa| P["Programes<br/>(ls, apt, nano...)"]
    P -->|syscalls| K["Nucli Linux"]
    K -.->|sortida| P
    P -.->|text| S
    S -.->|text| T
    T -.->|píxels| U

Els terminals virtuals

Encara que srv-tramontana no tingui escriptori, Linux t'ofereix sis terminals virtuals independents a la consola física. Hi canvies amb:

  • Ctrl+Alt+F1 a Ctrl+Alt+F6 (a Ubuntu Server, F1 sol ser el primer).
  • En una VM de VirtualBox, la combinació és Host+F1..F6 (la tecla amfitrió és Ctrl dret per defecte), perquè VirtualBox intercepta Ctrl+Alt.

Cadascun és una sessió completa i independent: pots tenir l'operador treballant a tty1 i un altre usuari a tty2 simultàniament.

Prova-ho ara. Canvia a un altre terminal, inicia sessió i executa:

tty

Sortida:

/dev/tty2

Aquest és el fitxer de dispositiu que representa el teu terminal actual. Coherent amb «tot és un fitxer»: el teu terminal és un fitxer a /dev, i aquesta idea la desenvoluparàs a la lliçó següent.

Si et connectes per SSH i executes el mateix:

tty
/dev/pts/0

pts significa pseudo-terminal slave: un terminal que no correspon a maquinari físic sinó a una connexió, típicament SSH o una finestra d'emulador gràfic. És la manera que té el sistema de dir-te «això no és la consola de la màquina, és una sessió remota».

Consell pràctic de debò útil: els terminals virtuals són el teu salvavides. Si un programa bloqueja el teu terminal actual i Ctrl+C no respon, canvia a un altre tty, inicia sessió i soluciona-ho des d'allà sense reiniciar la màquina. La gestió de processos que caldrà per a això és la lliçó 03-06.

  1. Què és el shell i per què Bash

El shell (literalment closca, perquè embolcalla el nucli) és el programa que:

  1. Mostra el prompt i espera.
  2. Llegeix la línia que escrius.
  3. La interpreta: separa l'ordre dels seus arguments, expandeix comodins i variables, resol canonades i redireccions.
  4. Demana al nucli que executi el programa corresponent.
  5. Espera que acabi i torna a mostrar el prompt.

És alhora una interfície interactiva i un llenguatge de programació complet, amb variables, condicionals, bucles i funcions. Aquesta dualitat és el que fa tan potent Linux: qualsevol cosa que facis a mà al terminal es pot convertir en un script sense canviar d'eina. És la base del Mòdul 4.

Shells disponibles

Shell Nom Notes
sh Bourne shell L'original (1977). Avui és un enllaç a un altre shell en mode compatible
bash Bourne Again SHell L'estàndard a Linux. El que farem servir
dash Debian Almquist shell Molt ràpid i lleuger; a Ubuntu és el /bin/sh dels scripts del sistema
zsh Z shell Bash millorat. És el shell per defecte a macOS des del 2019
fish Friendly Interactive Shell Molt còmode, però no és compatible amb POSIX

Pots veure quin fas servir:

echo $SHELL
/bin/bash

echo imprimeix el que li donis, i $SHELL és una variable d'entorn que conté la ruta del teu shell d'inici de sessió. Les variables d'entorn són el tema de la lliçó 03-01.

I els shells instal·lats al sistema:

cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/usr/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/usr/bin/dash

Per què Bash en aquest curs, amb raons concretes:

  • És el shell per defecte a Ubuntu, Debian, RHEL, Fedora i gairebé qualsevol distribució que et trobis.
  • És el que assumeix el 95 % de la documentació, els tutorials i les respostes que trobaràs.
  • És compatible amb POSIX, així que el que aprenguis funciona també a macOS, a Alpine dins d'un contenidor i en qualsevol Unix.
  • En un servidor aliè, en una imatge mínima o en una situació d'emergència, Bash o alguna cosa compatible sempre hi és. Zsh i fish, no.

Res no t'impedeix fer servir Zsh al teu portàtil per comoditat. Però aprèn Bash primer: és l'idioma comú.

  1. Entorn gràfic enfront de només text

srv-tramontana no té escriptori. Convé entendre què és el que no té i per què és deliberat.

A Linux, la interfície gràfica no forma part del sistema: és un conjunt de programes que s'instal·len o no.

Capa Què fa Exemples
Servidor gràfic Dibuixa a la pantalla i gestiona teclat i ratolí X11 (Xorg), Wayland
Gestor de finestres Vores, moure, redimensionar, minimitzar Mutter, KWin, i3
Entorn d'escriptori El conjunt complet: escriptori, tauler, aplicacions GNOME, KDE Plasma, XFCE, Cinnamon
Gestor de sessions La pantalla gràfica d'inici de sessió GDM, SDDM

Sobre X11 i Wayland, el mínim que has de saber:

  • X11 (Xorg) és de 1984 i ha estat l'estàndard durant dècades. La seva arquitectura és client-servidor i transparent en xarxa: pots executar una aplicació a srv-tramontana i veure'n la finestra al teu portàtil (ssh -X). Potent, però amb un disseny antiquat i problemes de seguretat coneguts: qualsevol aplicació pot llegir el que teclegen les altres.
  • Wayland és el substitut modern. Més simple, més segur i amb millor rendiment. És el predeterminat a Ubuntu Desktop 24.04. El seu aïllament entre aplicacions trenca algunes eines antigues, encara que cada vegada menys.

Per què un servidor no porta escriptori

Motiu Explicació
Recursos GNOME consumeix 1,5-2 GB de RAM. Ubuntu Server arrenca amb ~200 MB. Aquesta diferència és memòria per a l'aplicació
Superfície d'atac Cada paquet instal·lat pot tenir vulnerabilitats. Menys programari, menys risc
Manteniment Menys paquets per actualitzar i menys reinicis
No hi ha ningú mirant El servidor és en un armari sense monitor. S'administra per SSH
Automatització Una interfície gràfica no es pot programar amb scripts. Una ordre, sí
Tot es fa per text Qualsevol tasca d'administració té equivalent en línia d'ordres; el contrari no és cert

L'últim punt és el que convenç els escèptics. Instal·lar un escriptori en un servidor de producció es considera mala pràctica al sector, no per purisme, sinó perquè cadascun d'aquests motius es paga en diners, en incidents o en hores.

  1. Anatomia d'una ordre

Totes les ordres segueixen la mateixa estructura:

ordre [opcions] [arguments]
  • Ordre: el programa que s'ha d'executar (ls, date, free).
  • Opcions (o flags, o modificadors): modifiquen el comportament. Comencen per guionet.
  • Arguments: sobre què actua l'ordre (un fitxer, un directori, un text).

Els claudàtors indiquen que són opcionals: moltes ordres funcionen soles.

Opcions curtes i llargues

Tipus Format Exemple Notes
Curta Un guionet, una lletra ls -l Es poden agrupar: -l -a -h = -lah
Llarga Dos guionets, una paraula ls --all Més llegible; imprescindible en scripts
Amb valor Curta o llarga amb dada -n 5 o --lines=5 El valor pot anar enganxat o separat

Un exemple desgranat completament:

ls -lh /var/log
total 1.3M
-rw-r--r--  1 root      root       32K Aug 18 09:12 alternatives.log
drwxr-x---  2 root      adm       4.0K Aug 18 06:25 apt
-rw-r-----  1 syslog    adm       142K Aug 18 09:14 auth.log
-rw-rw-r--  1 root      utmp       98K Aug 18 09:12 lastlog
-rw-r-----  1 syslog    adm       311K Aug 18 09:15 syslog

Anàlisi peça a peça:

  • ls : l'ordre, llista el contingut d'un directori.
  • -lh : dues opcions curtes agrupades. -l (long) mostra el format detallat amb permisos, propietari, mida i data; -h (human-readable) expressa les mides en K, M o G en lloc de bytes solts.
  • /var/log : l'argument, el directori que volem llistar.

I sobre la sortida, sense entrar en detall (els permisos són la lliçó 02-07): la primera lletra de cada línia indica el tipus de fitxer. La d d'apt significa directori; el - dels altres, fitxer regular. Veuràs la resta de lletres a la lliçó següent.

Consells sobre la sintaxi

  • Linux distingeix majúscules de minúscules, sempre. ls, LS i Ls no són el mateix, i Fitxer.txt i fitxer.txt són dos fitxers diferents. Això sorprèn qui ve de Windows i és font d'errors constants al principi.
  • Els espais separen elements. Si un nom de fitxer conté espais, cal posar-lo entre cometes: cat "el meu fitxer.txt".
  • -- marca el final de les opcions, útil quan un argument comença per guionet.

  1. Reconeixement inicial de srv-tramontana

Això és el que fa un administrador en rebre una màquina nova, i el que hauries de fer sempre abans d'instal·lar res: saber què tens al davant.

Qui soc i on soc

whoami
operador

Retorna l'usuari efectiu. Sembla trivial, però quan portes mitja hora saltant entre sudo, sessions SSH i màquines, és la primera pregunta a respondre davant de qualsevol dubte.

hostname
srv-tramontana

El nom de la màquina. La seva versió ampliada dona més context:

hostnamectl
 Static hostname: srv-tramontana
       Icon name: computer-vm
         Chassis: vm
      Machine ID: 4f8a3d21c9b7460e8a1f2d3c5e6b7a89
         Boot ID: 91c7e4d3a5b2483fa7e8d9c0b1a2f3e4
  Virtualization: oracle
Operating System: Ubuntu 24.04.1 LTS
          Kernel: Linux 6.8.0-41-generic
    Architecture: x86-64

Aquí hi ha informació valuosa en tres línies: Chassis: vm i Virtualization: oracle confirmen que ets en una màquina virtual de VirtualBox (útil quan administres màquines que no vas muntar tu), Operating System dona la versió exacta i Architecture l'arquitectura del processador.

Quin sistema és

uname -a
Linux srv-tramontana 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 2 20:41:06 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux

uname significa Unix name i -a és all. Camp per camp:

Valor Què és
Linux Nom del nucli
srv-tramontana Hostname
6.8.0-41-generic Versió del nucli (ja la saps llegir de la lliçó 01-02)
#41-Ubuntu SMP PREEMPT_DYNAMIC Compilació d'Ubuntu. SMP = suport multiprocessador
Fri Aug 2 ... Data de compilació del nucli
x86_64 Arquitectura: 64 bits d'Intel/AMD. En un Mac amb Apple Silicon hi veuries aarch64
GNU/Linux El sistema operatiu, amb el nom complet que vam discutir a 01-02

Per a la versió de la distribució, que és diferent de la del nucli:

lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble

Retén la diferència: el nucli és 6.8; la distribució és 24.04. Són dues numeracions independents i confondre-les porta a buscar documentació equivocada.

Quant fa que està encès i com va de càrrega

uptime
 09:18:42 up 2 days,  4:31,  1 user,  load average: 0.08, 0.12, 0.09

Lectura:

  • 09:18:42 : hora actual del sistema.
  • up 2 days, 4:31 : fa 2 dies i 4 hores i mitja que està encès.
  • 1 user : hi ha una sessió oberta.
  • load average: 0.08, 0.12, 0.09 : la càrrega mitjana en els últims 1, 5 i 15 minuts.

La càrrega mitjana mereix una explicació perquè es malinterpreta constantment: no és un percentatge. És el nombre mitjà de processos que estan fent servir la CPU o esperant per fer-la servir. La referència és el nombre de nuclis:

  • En una màquina de 2 nuclis, una càrrega de 2.00 significa ús ple; per sota hi ha folgança i per sobre hi ha processos esperant.
  • Una càrrega de 0.08 en 2 nuclis, com la de l'exemple, és un sistema pràcticament ociós.
  • Els tres valors junts indiquen la tendència: si el primer és molt més gran que el tercer, la càrrega està pujant ara mateix.

Això s'aprofundeix a la lliçó 05-07.

Quanta memòria hi ha

free -h
               total        used        free      shared  buff/cache   available
Mem:           3.8Gi       412Mi       2.6Gi       1.0Mi       892Mi       3.2Gi
Swap:          4.0Gi          0B       4.0Gi

-h és de nou human-readable. Columna per columna:

Columna Significat
total Memòria física total: 3,8 GB
used Realment en ús per processos: 412 MB
free Completament sense fer servir: 2,6 GB
buff/cache Usada pel nucli com a memòria cau de disc: 892 MB
available La xifra que importa: 3,2 GB disponibles per a programes nous

Aquí hi ha el malentès més estès sobre Linux, i convé resoldre'l ja: la columna free no indica quanta memòria et queda. Linux fa servir agressivament la RAM lliure com a memòria cau de disc, perquè tenir memòria sense fer servir és malgastar-la. Aquella memòria cau s'allibera a l'instant si un programa la necessita.

La columna correcta és available. Un servidor amb free a 100 MB i available a 3 GB està perfectament sa. Existeix fins i tot un web dedicat a explicar-ho (linuxatemyram.com), de tan freqüent que és la confusió.

La línia Swap amb 0B usats és un bon senyal: no ha calgut recórrer al disc.

Quant disc queda

df -h
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           389M  1.3M  388M   1% /run
/dev/sda2        23G  6.4G   15G  30% /
tmpfs           1.9G     0  1.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/sda1       1.1G  6.4M  1.1G   1% /boot/efi
tmpfs           389M   12K  389M   1% /run/user/1000

df és disk free. El que és rellevant:

  • /dev/sda2 muntat a /: la partició arrel, 23 GB dels quals se'n fan servir 6,4 GB (30 %). Aquesta és la línia que cal vigilar.
  • /dev/sda1 muntat a /boot/efi: la partició d'arrencada UEFI que vas crear en instal·lar.
  • Les línies tmpfs són sistemes de fitxers que viuen a la memòria RAM, no al disc: s'esborren en reiniciar. Són normals, i veure-les allà il·lustra un altre cop el principi que tot es presenta com a fitxers.
  • La columna Use% és la que cal vigilar en un servidor. Per damunt del 80 % convé actuar; al 100 %, com vam veure a la lliçó anterior, el sistema deixa de funcionar correctament.

I per saber la data i l'hora, que importa més del que sembla perquè afecta tots els registres:

date
Mon Aug 18 09:19:33 UTC 2026

Fixa't en UTC: per defecte els servidors se solen configurar en temps universal, no en hora local. És deliberat: evita ambigüitats amb els canvis d'horari estacional quan compares registres de diverses màquines.

Informe de reconeixement

Amb aquestes dades ja pots respondre a la Marta si et pregunta en quin estat és el servidor:

Aspecte Valor a srv-tramontana
Sistema Ubuntu 24.04.1 LTS (noble)
Nucli 6.8.0-41-generic, x86_64
Tipus Màquina virtual (VirtualBox)
Memòria 3,8 GB totals, 3,2 GB disponibles
Swap 4 GB, sense fer servir
Disc arrel 23 GB, 30 % ocupat, 15 GB lliures
Càrrega 0,08 — sistema ociós
Temps encès 2 dies
Actualitzacions 0 pendents

Conclusió del reconeixement: hi ha marge de sobres per instal·lar Tramontana Reserves. I ara tens una foto de referència: quan d'aquí a tres mesos el servidor vagi lent, podràs comparar amb aquests números en lloc d'opinar.

  1. Dreceres de teclat de supervivència

Aquestes cinc dreceres separen algú que pateix al terminal d'algú que s'hi mou amb soltesa. Practica-les fins que et surtin sense pensar.

Drecera Què fa Per què és imprescindible
Tab Autocompleta ordres i rutes Menys teclejar i zero errors tipogràfics
Tab Tab Mostra totes les opcions possibles Descobreixes què existeix sense sortir del terminal
↑ / ↓ Recorre l'historial d'ordres No repeteixes el que ja vas escriure
Ctrl+C Interromp el programa en execució El teu botó de pànic
Ctrl+D Fi d'entrada; tanca la sessió Sortir correctament
Ctrl+L Neteja la pantalla Ordre mental. Equival a clear

Tab: la drecera més rendible

Escriu hostna i prem Tab:

hostna<Tab>

Bash completa fins on no hi ha ambigüitat:

hostnamectl

Si hi ha diverses possibilitats, prem Tab dues vegades per veure-les:

host<Tab><Tab>
host        hostid      hostname    hostnamectl

Funciona igual amb rutes de fitxer:

ls /var/lo<Tab>
ls /var/log/

El seu valor no és la comoditat: és la verificació. Si escrius una ruta i Tab no la completa, aquella ruta no existeix. Te n'assabentes abans d'executar l'ordre, no després. Un administrador experimentat fa servir Tab constantment per aquesta raó.

Ctrl+C i Ctrl+D: no són el mateix

Es confonen sovint i fan coses diferents:

  • Ctrl+C envia el senyal SIGINT al programa en execució, demanant-li que acabi. És el que fas servir quan una ordre s'ha quedat penjada o s'està eternitzant.
  • Ctrl+D envia el caràcter de fi de fitxer (EOF). No mata res: indica «no hi ha més entrada». Si el prems al prompt sense res escrit, el shell interpreta que has acabat i tanca la sessió.

Prova el primer. Executa una ordre que no acaba sola:

ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=115 time=14.2 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=115 time=13.8 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms

El ^C de la sortida és la marca visual que has premut Ctrl+C. ping s'atura i mostra un resum. (ping comprova connectivitat de xarxa; és la lliçó 03-08.)

Hi ha moltes més dreceres —Ctrl+A, Ctrl+E, Ctrl+R, Ctrl+W— que veuràs a la lliçó 03-01 en estudiar l'entorn del shell. Amb aquestes cinc en tens de sobres per ara.

  1. Usuari normal, root i el primer contacte amb sudo

A Linux hi ha una separació estricta entre dos tipus de compte.

Usuari normal root
UID 1000 o superior 0
Prompt $ #
Pot modificar Només allò seu Absolutament tot
Instal·lar programari No Sí
Esborrar el sistema No Sí, sense preguntar

root (també anomenat superusuari) és el compte amb UID 0, i el seu poder és total i literal. El nucli no li aplica comprovacions de permisos. Pot esborrar qualsevol fitxer, matar qualsevol procés i destruir el sistema amb una ordre mal escrita. No hi ha paperera de reciclatge, no hi ha confirmació i no hi ha «desfés».

Per això Ubuntu adopta un enfocament deliberat: el compte root existeix però està deshabilitat per a inici de sessió. No té contrasenya vàlida. En lloc seu, es fa servir sudo.

sudo

sudo significa substitute user do: executar una ordre com un altre usuari, per defecte root. La seva lògica:

  1. Escrius sudo davant de l'ordre.
  2. sudo comprova a /etc/sudoers si tens autorització. El teu usuari operador la té per pertànyer al grup sudo.
  3. Et demana la teva pròpia contrasenya (no la de root, que ni existeix), per confirmar que ets tu qui és al teclat.
  4. Executa l'ordre amb privilegis d'administrador i registra l'operació a /var/log/auth.log.
  5. Recorda l'autenticació uns 15 minuts per no preguntar-t'ho a cada ordre.

Comprova-ho amb un exemple clar:

whoami
operador
sudo whoami
[sudo] password for operador:
root

La mateixa ordre retorna un usuari diferent, perquè sudo l'ha executada en nom de root.

Un altre exemple on la diferència és visible. El fitxer /etc/shadow guarda els hashes de les contrasenyes i només root el pot llegir:

head -n 1 /etc/shadow
head: cannot open '/etc/shadow' for reading: Permission denied
sudo head -n 1 /etc/shadow
root:*:19962:0:99999:7:::

Aquell Permission denied no és una fallada: és el sistema funcionant exactament com ha de fer-ho.

Tres avantatges de sudo sobre iniciar sessió com a root

  1. Traçabilitat. Cada ús queda registrat amb usuari, hora i ordre. Si tres persones administren el servidor, se sap qui va fer què. Amb un compte root compartit, no.
  2. Superfície mínima. Només l'ordre concreta s'executa amb privilegis, no tota la teva sessió. La resta del temps treballes com a usuari normal i estàs protegit dels teus propis errors.
  3. Sense contrasenya de root que es pugui filtrar. No existeix, així que no es pot robar ni compartir.

Regles d'higiene amb sudo

  • Pensa abans d'escriure sudo. El moment de dubtar és abans de prémer Retorn.
  • Llegeix l'ordre sencera abans d'executar-la, especialment si l'has copiada d'internet. No enganxis mai un sudo que no entenguis.
  • No facis servir sudo su - per costum per tenir una sessió root permanent. Perds els tres avantatges de cop.
  • Sospita de sudo rm -rf. És la combinació que més sistemes ha destruït de la història.

sudo és molt més configurable del que sembla —es pot autoritzar un usuari només per a certes ordres, exigir o no contrasenya, restringir per màquina— i tot això és la lliçó 05-02.

  1. Apagar, reiniciar i tancar sessió correctament

Per què no s'estira del cable

Tallar l'alimentació d'un sistema en marxa té conseqüències reals:

  • Dades a la memòria cau sense escriure. Linux manté a la RAM les dades pendents d'escriure al disc per agrupar operacions i guanyar rendiment. Un tall les perd.
  • Sistemes de fitxers inconsistents. ext4 porta un journal que permet recuperar-se, però la recuperació pot trigar i no sempre és completa.
  • Serveis sense tancar netament. Una base de dades que no tanca bé pot requerir recuperació en arrencar, o corrompre dades.
  • Fitxers temporals i bloquejos orfes. En arrencar, alguns serveis es neguen a iniciar-se perquè troben un fitxer de bloqueig de la sessió anterior.

Una apagada ordenada, en canvi, avisa cada servei perquè acabi, bolca les dades pendents al disc (sync), desmunta els sistemes de fitxers i només aleshores apaga.

Les ordres

sudo shutdown -h now
  • shutdown : l'ordre d'apagada ordenada.
  • -h : halt, aturar i apagar la màquina.
  • now : immediatament.

Programada, que és el que es fa en un servidor amb usuaris connectats:

sudo shutdown -h +10 "Manteniment programat. El servidor s'apaga d'aquí a 10 minuts."

Apaga d'aquí a 10 minuts i envia aquell missatge a tots els usuaris amb sessió oberta. És una cortesia elemental en un entorn compartit, i una cosa que la Marta agrairà.

Si te'n penedeixes:

sudo shutdown -c

Cancel·la l'apagada programada.

Per reiniciar:

sudo reboot

Equivalent a sudo shutdown -r now. És el que faràs després d'actualitzar el nucli.

Taula resum:

Ordre Efecte
sudo shutdown -h now Apaga ja
sudo poweroff Apaga ja (més directe)
sudo shutdown -h +10 "avís" Apaga d'aquí a 10 minuts avisant
sudo shutdown -r now / sudo reboot Reinicia
sudo shutdown -c Cancel·la una apagada programada
sudo systemctl reboot Reinicia via systemd (equivalent modern)

Veuràs les variants de systemd a la lliçó 05-05.

Tancar sessió

Tancar la sessió no apaga el servidor: només acaba el teu shell. El servidor continua funcionant i servint peticions.

exit

O la drecera Ctrl+D. En una sessió SSH, tots dos tanquen també la connexió.

Distinció que cal tenir clara des del primer dia: exit tanca la teva sessió; shutdown apaga la màquina. Confondre'ls en un servidor remot significa deixar sense servei l'empresa i, si és una màquina en un centre de dades sense accés físic, no poder-la tornar a engegar. És un error que es comet una vegada a la vida i es recorda per sempre.

Errors Comuns i Consells

  • Confondre terminal i shell. El terminal és la finestra; el shell és el programa que interpreta. Canviar d'emulador de terminal no canvia el teu shell.
  • Creure que free indica la memòria disponible. La columna correcta és available. Linux fa servir la RAM lliure com a memòria cau a propòsit.
  • Ignorar que Linux distingeix majúscules de minúscules. Documents i documents són directoris diferents. És la primera causa de «però si el fitxer hi és».
  • Pensar que el terminal està bloquejat en escriure la contrasenya. No es mostra res per disseny.
  • Fer servir sudo de manera automàtica davant de qualsevol «permission denied». De vegades aquell missatge indica que estàs fent una cosa que no hauries de fer. Entén per què abans d'escalar privilegis.
  • Treballar habitualment com a root. Amb sudo su - perds traçabilitat i protecció davant dels teus propis errors.
  • Apagar el servidor quan volies tancar sessió. exit per sortir. shutdown només quan de debò vulguis apagar la màquina.
  • No fer servir Tab. És l'hàbit que més diferencia un principiant d'algú amb rodatge: menys errors tipogràfics i verificació gratuïta que les rutes existeixen.
  • Consell. Desa el resultat del teu reconeixement inicial en un document. Tenir la foto d'un sistema sa fa que diagnosticar un sistema malalt sigui comparar, no endevinar.
  • Consell. Practica les dreceres deliberadament durant una setmana, encara que al principi et resulti més lent escriure la ruta a mà. La inversió es recupera en dies.
  • Consell. Si et perds o no saps on ets, tres ordres et reorienten sempre: whoami, hostname i pwd (aquesta última la veuràs a 02-03).

Exercicis

Exercici 1

Observes aquest prompt en una de les teves terminals:

root@srv-tramontana:/etc#

Respon:

  1. Quin usuari està actiu i com ho saps sense executar cap ordre?
  2. En quin directori es troba?
  3. Quin risc concret implica aquesta situació i quina precaució prendries?
  4. Escriu el prompt que veuries si operador iniciés sessió al seu directori personal al portàtil portatil-alumne.

Exercici 2

La Marta et demana un informe d'estat de srv-tramontana abans d'aprovar el desplegament de Tramontana Reserves. Indica quina ordre faries servir per obtenir cada dada, quina opció concreta i com n'interpretaries el resultat:

  1. Versió exacta d'Ubuntu i del nucli.
  2. Memòria total i realment disponible.
  3. Espai lliure a la partició arrel.
  4. Temps encès i càrrega del sistema.
  5. Si el servidor és físic o virtual.

Redacta després l'informe en tres o quatre frases, tal com l'hi donaries a la Marta.

Exercici 3

Diagnostica i resol aquestes tres situacions que et passen durant el teu primer dia:

  1. Executes cat /var/log/auth.log i obtens Permission denied.
  2. Llances una ordre que fa dos minuts que no retorna el control i no mostra res.
  3. Vols sortir de la teva sessió SSH a srv-tramontana, escrius sudo shutdown -h now i perds la connexió. La Marta et truca dient que el web de reserves no respon. Explica què ha passat, com se soluciona i com evitar-ho.

Solucions

Solució a l'Exercici 1

1. L'usuari és root. Hi ha dos indicis independents al mateix prompt. El primer és explícit: la cadena abans de l'@ diu root. El segon és el més important i el que cal aprendre a llegir d'un cop d'ull: el prompt acaba en # en lloc de $. Aquesta convenció és universal a Unix i funciona fins i tot amb prompts personalitzats que amaguin el nom d'usuari.

2. A /etc. És la part entre : i #. Es mostra la ruta absoluta perquè no és el directori personal (si ho fos, hi apareixeria ~). /etc és el directori de configuració del sistema, que veuràs a la lliçó següent.

3. El risc i la precaució. La combinació és especialment delicada: sessió de root dins del directori de configuració del sistema. Qualsevol error tipogràfic pot deixar el servidor sense arrencar o sense accés remot. Un rm mal escrit sobre /etc/ssh/ et deixa fora del servidor; sobre /etc/fstab, sense arrencar. I no hi ha confirmació, ni paperera, ni desfés.

Precaucions concretes:

  • Sortir de la sessió root amb exit i treballar com a operador, fent servir sudo només per a les ordres que ho necessitin. Es recupera la traçabilitat i la protecció.
  • Si de debò cal una sessió root prolongada, fer còpia de qualsevol fitxer abans d'editar-lo: cp /etc/fstab /etc/fstab.bak.
  • Verificar el prompt abans de cada ordre destructiva, i fer servir Tab per confirmar que les rutes existeixen.
  • En una VM, prendre una instantània abans de tocar configuració crítica.

4. El prompt seria:

operador@portatil-alumne:~$

Amb ~ perquè és al seu directori personal (/home/operador) i amb $ perquè és un usuari normal.

Solució a l'Exercici 2

1. Versió d'Ubuntu i del nucli.

lsb_release -a
uname -r

lsb_release -a dona la distribució (Ubuntu 24.04.1 LTS, nom en clau noble) i uname -r la versió del nucli (6.8.0-41-generic). Alternativa que dona totes dues de cop: hostnamectl. Són numeracions independents i cal reportar-les totes dues.

2. Memòria total i disponible.

free -h

-h per a unitats llegibles. El que es reporta és total (3,8 GB) i sobretot available (3,2 GB). No cal reportar free, perquè inclou com a "usada" la memòria cau de disc, que s'allibera a l'instant si un programa la necessita.

3. Espai lliure a l'arrel.

df -h /

Passant / com a argument es limita la sortida a la partició arrel. Es reporten els gigabytes disponibles (15 GB) i el percentatge d'ús (30 %). El percentatge és la dada accionable: per damunt del 80 % cal planificar.

4. Temps encès i càrrega.

uptime

Dona totes dues coses. La càrrega (0.08 0.12 0.09) s'interpreta contra el nombre de nuclis, que s'obté amb nproc. Amb 2 nuclis, aquests valors indiquen un sistema pràcticament ociós.

5. Físic o virtual.

hostnamectl

Les línies Chassis: vm i Virtualization: oracle ho confirmen. Alternativa directa: systemd-detect-virt, que retorna oracle a VirtualBox o none en maquinari físic.

Informe per a la Marta:

«srv-tramontana corre Ubuntu 24.04.1 LTS amb nucli 6.8.0-41 sobre una màquina virtual de VirtualBox, arquitectura de 64 bits. Té 3,8 GB de memòria, dels quals 3,2 GB estan disponibles, i no fa servir swap. La partició arrel ocupa el 30 % de 23 GB, amb 15 GB lliures. La càrrega mitjana és de 0,08 sobre 2 nuclis, és a dir, el sistema està pràcticament ociós, i fa 2 dies que està encès sense actualitzacions pendents. Hi ha recursos de sobres per desplegar Tramontana Reserves. Recomano revisar l'espai en disc quan l'aplicació comenci a generar registres, i vigilar que no superi el 80 % d'ocupació.»

Solució a l'Exercici 3

Situació 1 — Permission denied en llegir /var/log/auth.log.

Diagnòstic: no és un error del sistema, és el sistema protegint-se. auth.log registra tots els intents d'autenticació, inclosos usuaris i orígens de connexions. És informació sensible: revela quins comptes existeixen i des d'on es connecten. Per això pertany al grup adm i no és llegible per usuaris normals.

Solució:

sudo cat /var/log/auth.log

O millor, perquè el fitxer és llarg i només solen interessar les últimes entrades:

sudo tail -n 20 /var/log/auth.log

Alternativa més elegant: l'usuari operador es podria afegir al grup adm, que té permís de lectura sobre els registres, i així consultar-los sense sudo. És la solució correcta si s'han de revisar registres amb freqüència, i es veu a la lliçó 05-01.

Consell general: davant d'un Permission denied, la reacció correcta no és «hi poso sudo», sinó «per què està protegit això?». Aquí la resposta és legítima i sudo està justificat. En altres casos, el missatge t'està avisant que ets al lloc equivocat.

Situació 2 — Una ordre fa dos minuts que no respon.

Diagnòstic: hi ha tres possibilitats i convé distingir-les abans d'actuar:

  • L'ordre està treballant de debò i triga (copiar fitxers grans, actualitzar paquets, comprimir). Recorda el principi Unix: silenci és èxit, moltes ordres no informen del seu progrés.
  • L'ordre espera entrada per teclat. Passa si has escrit cat sense arguments: es queda esperant el que teclegis.
  • L'ordre està bloquejada: esperant una connexió de xarxa que no arriba, o un recurs ocupat.

Solució progressiva:

  1. Ctrl+C per interrompre-la. Envia SIGINT i en la majoria de casos ho resol.
  2. Si esperava entrada, Ctrl+D tanca l'entrada i la deixa acabar netament.
  3. Si Ctrl+C no respon, canvia a un altre terminal virtual (Ctrl+Alt+F2) o obre una altra sessió SSH, i des d'allà identifica i acaba el procés. Les eines per a això —ps, kill— són la lliçó 03-06.
  4. Reiniciar la màquina és l'últim recurs, no el primer.

Prevenció: abans de llançar una cosa que pot trigar, pensa si convé executar-la en segon pla o dins d'una sessió persistent (tmux, screen), sobretot si estàs connectat per SSH i la connexió pot caure.

Situació 3 — Has apagat el servidor de producció.

Què ha passat: has confós tancar sessió amb apagar la màquina. sudo shutdown -h now ha executat una apagada ordenada i immediata de srv-tramontana. La connexió SSH ha caigut perquè el servidor s'estava apagant, no perquè hi hagués un problema de xarxa. I Tramontana Reserves no respon perquè el servidor que l'allotja està apagat. No hi ha corrupció de dades —l'apagada va ser ordenada—, però sí caiguda de servei.

Com se soluciona:

  • En una VM local: obrir VirtualBox i arrencar-la. Un minut.
  • En un servidor físic accessible: prémer el botó d'engegada.
  • En un servidor remot sense accés físic: aquí hi ha la gravetat real de l'error. Necessites una consola fora de banda —IPMI, iDRAC, iLO— o el tauler de control del proveïdor de núvol. Si no disposes de cap d'aquestes vies, el servidor no es pot engegar de manera remota, i cal desplaçar algú físicament. En un centre de dades d'una altra ciutat, això són hores de caiguda.

Com evitar-ho, per ordre d'eficàcia:

  1. Fer servir exit o Ctrl+D per tancar sessió. shutdown només quan de debò vulguis apagar la màquina. És la regla que resol el 100 % dels casos.
  2. Llegir el prompt abans de cada ordre perillosa. El hostname hi és precisament per això: srv-tramontana no és el teu portàtil.
  3. Diferenciar visualment les terminals de producció, amb colors o prompts diferents. Al Mòdul 3 veuràs com personalitzar PS1; posar el prompt de producció en vermell és una pràctica molt estesa i molt eficaç.
  4. En un servidor real, avisar sempre abans: sudo shutdown -h +10 "Manteniment programat" dona marge per cancel·lar amb sudo shutdown -c si te n'adones de l'error.
  5. Verificar que existeix una via d'engegada remota abans d'apagar qualsevol màquina que no tinguis al davant. És una comprovació de dos minuts que evita un desastre.

Conclusió

Ja no estàs mirant una pantalla negra incomprensible. En aquesta lliçó has vist:

  • Què passa en iniciar sessió: la cadena systemd → getty → login → shell, i el missatge del dia com a tauler de control.
  • El prompt caràcter a caràcter: usuari, màquina, directori, i el $ enfront del # que avisa que ets root.
  • La diferència entre consola, terminal, TTY i emulador, i els sis terminals virtuals com a salvavides.
  • Què és el shell, per què Bash i en què es distingeix del terminal.
  • Per què un servidor no porta escriptori, i què són X11, Wayland, GNOME i KDE.
  • L'anatomia d'una ordre: ordre [opcions] [arguments], opcions curtes i llargues.
  • El reconeixement inicial de srv-tramontana amb uname, hostnamectl, uptime, free -h i df -h, i com interpretar el que diuen, inclosa la trampa de la columna free.
  • Les dreceres de supervivència, amb Tab com l'hàbit més rendible.
  • La distinció usuari normal / root i l'ús responsable de sudo.
  • Com apagar, reiniciar i tancar sessió correctament, i per què no s'estira del cable.

Saps qui ets, en quina màquina ets i en quin estat es troba. Falta l'última peça d'orientació: on ets, i sobretot, què tens al voltant.

A la lliçó següent, Estructura del Sistema de Fitxers de Linux, veuràs per què a Linux no hi ha unitats C: ni D: sinó un únic arbre que neix a /, recorreràs un per un els directoris de l'estàndard FHS, entendràs de debò què significa que «tot és un fitxer» i què són /proc i /sys. I amb aquell mapa a la mà justificaràs, amb l'estàndard a la mà, per què l'aplicació de Tramontana va a /opt/tramontana/app, la seva configuració a /etc/tramontana/, els seus registres a /var/log/tramontana/ i les còpies a /srv/tramontana/backups. És la lliçó que converteix el sistema de fitxers en un territori conegut.

Curs de Linux: De Principiant a Administrador de Sistemes

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades en la Línia de Comandes

Mòdul 4: Scripting en Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2026. Tots els drets reservats