Introducció a la terminal de Linux; instal·lació programes (basat en Debian i Ubuntu), estructura de directoris i fitxers, rutes, gestió de fitxers i directoris (cd, ls, mkdir, cp, ...), redirecció i canonades (>, >>, |).

Bloc 0: Introducció al terminal: instal.lació programes, historial i ajuda.

Abans que res, hem d'obrir el terminal de Linux. La seva icona està representada per una pantalla negra en diverses distribucions (les basades en Debian o Ubuntu).

Aquest bloc està especialment pensat per treballar amb distribucions basades en Debian i/o amb Ubuntu. Amb altres distribucions (RedHat, ArchLinux, Fedora ...) les comandes i els mecanismes d'instal·lació utilitzen comandes diferents.

També pots obrir-lo amb la combinació de tecles Ctrl + Alt + T

El programari de Linux es pot gestionar amb programes gràfics (pex. Centre Software Ubuntu), però el més habitual és gestionar-lo des del terminal.

En Ubuntu, el gestor de paquets més habitual és apt (aptitude), que conté versions estables del programari més habitual.

Exemple, si volem instal·lar l'editor de text nano:

sudo apt update
sudo apt install nano

Descomposem les parts de la comanda, per entendre-la:

  • sudo → Comanda que permet executar com a usuari admin. Alguns programes requereixen aquests permisos. Alternativa: sudo su
  • apt → gestor de paquets que usen distros de Linux basades en Debian: Ubuntu, Mint...
  • update → Li diem al apt que actualitzi el programari, si cal. Important fer-ho abans d'instal·lar res.
  • install → Li diem al apt el/s programes/paquets que volem instal.lar (altres opcions: upgrade, autoremove, purge, list...)
  • nano → El nom del programa, és un editor de text del terminal.

Hi ha altres formes per instal·lar programari a distros basades en Debian (paquets de Debian .deb, el nou gestor de paquets Snapd, entre d'altres); que veurem en una altra ocasió.

Exercici: Instal.la 2 programes més amb la comanda apt install i executa'ls per veure que fan.

Programes útils que recomanem:

  • nano
  • inxi
  • tree
  • htop
  • wget
  • curl
  • gunzip
  • vlc

Programes no tant útils però curiosos:

  • sl
  • oneko
  • cowsay
  • sysvbanner

Veiem un altre exemple de com instal·lar un programa:

sudo apt install inxi

Per executar el programa instal.lat posa el seu nom:

inxi -F

Fixa't com n'és d'útil el programa inxi, que mostra les característiques del teu maquinari.

Per revisar la llista de programes instal·lats executa la comanda:

sudo apt list --installed

O bé:

sudo dpkg -l

Fixa't en un detall important respecte l'ús del sudo.

  • Si poses sudo dpkg -l com a usuari administrador podràs veure la llista del programari que té el teu equip i tots els seus usuaris.
  • Si poses dpkg -l només podràs veure els programes que hagis instal·lat únicament per a tu i el programari de la teva distro de Linux, que no requereixi permisos d'administrador.

Instal·lació altres distribucions

TODO


history --> Historial de comandes :

Hi ha un historial que guarda totes les comandes.

Amb les fletxes amunt i avall et posa les comandes que has posat anteriorment (així no et cal escriure-les de nou)

Amb la instrucció history veus totes les comandes que has usat fins ara:

$ history

Fins i tot, pots guardar en un fitxer .txt totes les comandes que has fet:

$ history > historial.txt

man --> Comanda Ajuda: man

La comanda man (de manual) és la que ens permet consultar com funciona cada comanda.

Prova de consultar info sobre la comanda ls:

man ls

Per sortir, pitja q.


Teoria Bloc 1: «Comandes de rutes (pwd, cd, ls) i ajuda»

Abans de començar a moure'ns pel terminal, cal entendre com funciona la estructura de directoris que hi ha en una partició d'un disc amb Linux.

Funciona de forma molt diferent a Windows, però quan l'entens te n'adones que va molt bé; així que atenció!

Estructura de directoris a Linux.

Fixeu-vos que els usuaris es troben dins del directori /home/

Per exemple, si tenim un usuari anomenat miquel tindriem el seu espai a:

/home/miquel

Llista directis habituals:

  • / El directori més alt és el directori arrel que conté tota la resta. Fem servir la barra inclinada per referir-nos a ell. /
  • /root directori de l'usuari superadministrador
  • /home Com hem explicat, els usuaris es troben els directoris personals que pengen de /home
  • /boot directori amb informació necessaria per arrencar Linux, no confondre amb /root.
  • /dev és on hi ha les unitats de discos i particions a Linux (per exemple, en comptes de tenir la unitat C: tindrem /dev/sda). Té moltes altres útilitats avançades.
  • /media en canvi, els dispositius extraibles (pendrives, imatges ISO de CD/DVD, carpetes compartides ...) es creen en aquest directori.
  • /bin conté els programes essencials del sistema operatiu (per exemple, comandes com mkdir, ls...) Alguns programes del sistema també estan a /sbin.
  • /tmp (per a fitxers temporals que no s'han d'emmagatzemar a llarg termini), etc.

Veiem un exemple que pot simular el nostre sistema operatiu, amb només un usuari.

flowchart TD
    / --> bin
    / --> dev
    / --> home
    / --> tmp
    home --> box

Observació: També poden tenir subcarpetes com /usr/bin amb programes instal·lats per a tots els usuaris (firefox, nano, libreoffice...) i els programes que només estan instal·lats per a un usuari es troben a /usr/local/bin

Sempre parlarem de directoris a Linux (però el concepte és el mateix que el de la carpeta).

Obrir i moure'ns per carpetes des de l'entorn gràfic de Linux és igual de senzill que a Windows o a Mac i si no estàs habituat a usar Linux però Windows o Mac sí n'aprendràs aviat.

Però en el món professional de la informàtica necessitem programar automàticament l'accés i escriptura de directoris i fitxers del sistema. I no sempre ho podrem fer amb llenguatges com Python, Java o altres.

Per això necessitem usar un terminal. En aquest cas ens centrarem en el terminal de Linux, que és el més potent. És tant bo que fins i tot a Windows han creat el projecte Wsl - Windows Subsystem for Linux, el qual introduïm a la següent sessió.

Les comandes que treballarem són: pwd, cd i ls.

Les rutes serveix per moure'ns pels diferents directoris del sistema.

Com funciona el lsistema de fitxers de Linux ?

Quan entres en un terminal de Linux

miquel@mint:~$ /home/miquel/

El directori arrel del sistema és root i es representa amb una barra:

/

A diferència de Windows, que la carpeta arrel és: C:\

O el nom de la unitat assignada.

El directori de l'usari és la home, per defecte se situa a:

usuari1@mint:~$ /home/<nom_usuari>
miquel@mint:~$ /home/miquel/

Tant a Linux com a Windows, per defecte la carpeta de cada usuari conté altres carpetes: Desktop, Music, Documents, Downloads, etc...

Comanda cd (change directory)

Ens serveix per moure'ns pels diferents directoris del sistema; li podem passar rutes absolutes (la ruta sencera)

o bé una ruta relativa (una ruta que depèn del directori on ens trobem).

Llavors, veiem les moltes formes de moure'ns:

cd Documents		accedeix al directori Documents si existeix
cd ..			ves a la carpeta anterior (carpeta pare)
cd .			La carpeta actual.
cd ../../..		ves a 3 carpetes anteriors
cd /home/alumne/dir1 	(*) Pots posar rutes absolutes (rutes que comencen des del root; si existeix, anirà directament a la carpeta)
cd ~			Ens dirigeix automàticament a la carpeta home de l'usuari actiu.

(*) En aquest cas es pressuposa que tens un usuari anomenat alumne i un directori dir1

Exemple ruta absoluta.

usuari1@mint:~$ cd /home/alumne/Documents/dadescovid-10122021.csv

Exemple ruta relativa.

usuari1@mint:~$cd Documents/

Per a què funcioni, dins la nostra carpeta ha d'existir una carpeta anomenada Documents.

Comanda pwd.

serveix per veure per pantalla a quina carpeta estem; és important per assegurar-nos que fem bé la ruta relativa.

usuari1@mint:~$ pwd
/home/usuari1/Desktop

Comanda ls

Serveix per llistar fitxers i directoris, i tota la seva info.

ls	# Llista fitxers i directoris		
ls -l	# Llista fitxers i directoris, format llarg (permisos, tamany...)
ls -R	# Llista fitxers i directoris, de forma recursiva (els subdirectoris)
ls -a 	# Llista fitxers i directoris ocults.

Ls admet molts paràmetres alhora; per exemple:

ls -la 

Llista fitxers i carpetes, format llarg (permisos, tamany...), incloent els ocults.

I la comanda més potent i completa:

ls -lisah

Que aplica 5 filtres a ls: Explicació comanda ls -lisah

Tecla TAB --> Escriu el nom dels directoris més ràpid

Si el nom del directori on vols anar existeix (per exemple: Desktop, Documents...) només cal que posis les primeres lletres i la tecla TAB.

Se t'escriurà sol 😀

També pot ser que et surtin tots els directoris que comencin per una lletra (la D)


Teoria Bloc 2: «Comandes gestió directoris»

mkdir --> Creació directoris

Et permet crear un o més directoris.

És molt potent, permet crear moltes carpetes alhora:

Exemple 1: Crea un directori m01 i dins un directori anomenat Linux.

mkdir m01
mkdir m01/linux

Exemple 2: Crea el directori m01, entra-hi i dins crea 3 directoris: fedora, mint, ubuntu.

mkdir m01
cd m01
mkdir fedora mint ubuntu

La comanda mkdir és molt potent i ens permet crear directoris i subdirectoris en la mateixa línia, o fins i tot directoris seguint patrons definits.

Exemple 3. Creem un arbre de carpetes amb els mòduls de dawbio1

miquel@mint:~$ mkdir -p dawbio1/{m01/{pts,pes},m02,m03,m04,m05,m14}

Exemple 4. Creem carpetes per a 10 usuaris, començant per user1 i acabant per user10.

miquel@mint:~$ mkdir -p user{1..10}

Recorda:

  • mkdir crear directoris
  • ls llista directoris i arxius
  • cd salta a un altre directori
  • pwd mostra en quin directori estàs

És molt bàsic, però els professionals tendeixen a oblidar-ho.

Més exemples d'ús de mkdir a Linux

Fitxers i carpetes ocultes.

Per a crear un fitxer o carpeta oculta és tan senzill com que el seu nom comenci per punt.

mkdir .secretofmonkey
touch .secretofmonkey.txt

Exercici 11. Crea el directori Debian, dintre d'aquest els directoris Kali, MX i Ubuntu i dins d'ubuntu els directoris Mint, PopOS i Lubuntu. Mostra que s'han creat tots.

Exercici 12. Crea el directori futfem i dintre els directoris oshoala,aitana,mapi,patri i els directoris ocults .tactiques i .sous (si vols crea’n unes altres semblants). Mostra els directoris creats, inclos els ocults.

Ex11.

miquel@mint:~$ mkdir Debian
miquel@mint:~$ cd Debian
miquel@mint:~$ mkdir Kali,MX,Ubuntu
miquel@mint:~$ cd Ubuntu
miquel@mint:~$ mkdir Mint,PopOS,Lubuntu
miquel@mint:~$ cd ../..
miquel@mint:~$ ls

Ex12.

miquel@mint:~$ mkdir -p futfem/{oshoala,aitana,mapi,patri,.tactiques,.sous}
miquel@mint:~$ ls -la

tree --> arbre directoris i fitxers

Apart de ls, si només ens interessa els noms dels directoris (i dels fitxers) podem usar la comanda tree.

En algunes distros cal instal·lar-la:

$ sudo apt install tree
$ tree

cp --> Còpia de directoris (i fitxers)

Per a fer còpies de seguretat, usem la comanda cp

La sintaxis és:

cp [opcions] origen desti

  • [opcions]: L'argument més habitual de cp és el -r; que ens fa una còpia recursiva del directori i tot els subdirectoris (i fitxers dins).
  • origen: El fitxer o directori que tenim. Ha d'existir, òbviament.
  • desti: El nom del fitxer o directori que volem. Pot existir o no; si no existeix el pot crear.

Exemple: Fes una còpia de tot el contingut del directori futfem (si no el tens crea'l) cap a una nova carpeta futfem2023.

$ cp -r futfem futfem2023
$ ls

mv --> Moure i renombrar directoris (i fitxers)

La comanda mv a Linux serveix per dues coses: la més òbvia és la de moure un directori o fitxer cap a un altre lloc.

Però també serveix per renombrar el nom d'un fitxer o directori.

Exemple: Crea el directori Apu. Canvia el seu nom, es dirà Apunts. Mostra si s'han canviat el nom.

$ mkdir Apu
$ mv Apu Apunts
$ ls

rm --> Esborrar directoris (i fitxers)

Si volem esborrar un directori el més habitual és usar la comanda rm.

La sintaxis és :

rm [opcions] origen desti

  • [opcions]: L'argument més habitual de rm és el -r; que ens elimina recursivament directori i tot els subdirectoris (i fitxers dins). També s'usa el f (forçar l'esborrat sense demanar permís).
  • origen: El fitxer o directori volem eliminar. Ha d'existir, clar.

Exemple: Crea el directori lindows. Esborra el directori i tot el seu contingut.

$ mkdir lindows
$ rm -r lindows
$ ls

rm - rf és perillós. Eliminar és una operació irreversible ⚠

La terminal de Linux (i de Unix) no té una paperera de reciclaje per a restaurar arxius eliminats.

Això només ho podem fer si usem una distribució gràfica moderna basada en Debian (Ubuntu).

Quan eliminem arxius i directoris, es desvinculen del sistema per a què la memòria es pugui tornar a usar. Hi ha mètodes per recuperar algunes dades però no hi poden confiar d'entrada.

La comanda rmdir només ens serveix per esborrar directoris buits.

Exercici 13. Crea un directori que es digui da. Renombra'l a dawbio1. Demostra que s'ha fet correctament el canvi.**

Exercici 14. Crea un directori que es digui institut. A dins crea 3 directoris anomenats aules, secretaria i consergeria. Fes una copia del directori institut, que es dirà institut-2024. Esborra el directori institut Demostra que t'ha sortit bé (comanda ls o tree)

Ex13.

$ mkdir da
$ mv da dawbio1
$ ls

Ex14.

miquel@mint:~$ mkdir -p institut/{aules,secretaria,consergeria}
miquel@mint:~$ cp -r institut institut-2024
miquel@mint:~$ rm -r institut
miquel@mint:~$ tree

Teoria Bloc 3: «Comandes gestió fitxers»

cp, rm i mv --> Copiar i moure i eliminar fitxers

Les comandes funcionen igual que en els directoris, que ja les hem analitzat i provat.

touch --> Crear fitxers buits

Crea un fitxer buit (o més, seguits per comes).

També serveix per fer que canvii els permisos de modificació al dia i hora actuals (d'aquí el nom de tocar) si aquest existeix.

Prova-ho tu mateix/a:

$ touch demo.txt
$ touch demo2.txt
$ touch demo.txt

nano --> Editor de text del terminal.

Editor de text que funciona sense sortir del terminal.

Si voleu publicar les vostres aplicacions us haureu d'acostumar a usar-lo, ja que els servidors d'aplicacions web més potents no tenen entorn gràfic (consumeix recursos innecessaris) i cal usar comandes del terminal per arrencar-los, organitzar el seu contingut ...

Aquí en teniu una mostra: editor nano gif

Si no veieu el gif el teniu a: https://media.geeksforgeeks.org/wp-content/uploads/20200304140712/cutpaste.gif

Escriu:

nano fitxer.txt

Aquí podràs escriure el seu contingut.

Per a guardar el fitxer, cal fer la combinació

: w

Per a sortir

: q

Els : inicials el que fan és canviar del mode d'escriptura del fitxer al mode del menú de programa.

Exemple. Crea un fitxer anomenat debian.txt des del terminal, usant l’editor nano. Ha de contenir el text:

Debian és un sistema operatiu FOSS (lliure), creat l’any 1993 per Ian Murdock.

Recorda, els passos a seguir són:

  1. nano debian.txt
  2. Escriu el text
  3. Ctrl + X
  4. INTRO
  5. nano debian.txt (veure contingut fitxer)

cat --> Visualitza el contingut d'un fitxer.

Visualitza el contingut d'un fitxer que només tingui text (no val per Writer/Word) sense necessitat d'obrir-lo.

Tot és per millorar el rendiment.

Exemple: Crear un fitxer amb el nano i visualitzar el seu contingut amb el cat.

nano debian.txt
cat debian.txt

head, tail --> Primeres / últimes línies fitxers.

Si vols veure només les n primeres línies o les n últimes linies:

head -n 3 <nom_fitxer>
tail -n 3 <nom_fitxer>

Exercici 15: Per si no ho sabies, per consultar els usuaris que hi ha al SO ho pots fer des del fitxer /etc/passwd. Mostra els 5 primers i 5 últims usuaris.

Per mostrar-los tots ho fas amb:

cat /etc/passwd

Exercici 16: Dins el directori Linux creeu un altre arxiu anomenat mint.txt amb el següent contingut i al final mostra per pantalla el contingut creat:

Mint també és un sistema operatiu lliure, basat en Ubuntu i Debian.
Mint també és un sistema operatiu multiusuari.

Solució Exercici 15 /etc/passwd:

head -n 5 /etc/passwd

Solució Exercici 16

Curiositats del terminal

El cd també funciona a MS-DOS (terminal de Windows).

Tanmateix, moltes comandes a Windows són diferents (per exemple. L’ls de Linux és dir amb Windows), i moltes d’altres ni existeixen. Per a tenir una shell tant avançada com la de Unix i GNU/Linux cal usar la terminal com PowerShell; i ni tan sols així s'aconsegueixen tantes prestancions com amb Linux.

Una altra opció per gaudir de Linux a Windows, disponible a partir de Windows, és instal.lar l'WSL (Windows Subsystem for Linux) si som administradors/es.


Exercicis Repàs 2 «Directoris, rutes, i creació de fitxers»

Escriu la o les comandes necessàries per cada cas:

Comandaments 1-6: cd, ls, pwd, mkdir, cat, touch, nano.

1. Situa't al teu directori home.

2. Mostra la ruta del directori actual.

3. Llista els fitxers del directori actual.

4. Llista els fitxers del directori actual, inclosos els ocults.

5. Llista els fitxers del directori arrel, sense canviar de directori.

6. Situa't al directori arrel, llista els fitxers i torna al teu directori home.

Comandaments 7-13: mkdir, cd, cat, touch, nano.

7. Crea un directori al teu directori home que es digui "practica".

8. Sense canviar de directori, crea un arxiu al directori "practica" que es digui "test1.txt".

9. Edita "test1.txt" afegint "Línia 1" sense canviar de directori, utilitzant una ruta relativa.

10. Edita "test1.txt" afegint "Línia 2" sense canviar de directori, utilitzant una ruta absoluta.

11. Mostra els continguts de test1.txt sense canviar de directori i utilitzant una ruta relativa.

12. Mostra els continguts de test1.txt sense canviar de directori i utilitzant una ruta absoluta.

13. Situa't dintre del directori "practica" i mostra els continguts de test1.txt... ◦ Utilitzant una ruta relativa, amb només el nom de l'arxiu. ◦ Utilitzant una ruta relativa, amb el directori actual. ◦ Utilitzant una ruta absoluta.

Solucions Exercicis Repàs 2.1-6

1 cd ~ o cd /home/

2 pwd

3 ls

4 ls -a, ls --al, ls -lisah

5 ls /

6 cd /, ls, cd

Solucions Exercicis Repàs 2.7-13

7 mkdir practica

8 touch practica/test1.txt

9 nano practica/test1.txt

10 nano /home/alumne/practica/test1.txt

11 cat practica/test1.txt

12 cat /home/alumne/practica/test1.txt

13 cat test1.txt, cat ./test1.txt, cat /home/alumne/practica/test1.txt


Exercicis Repàs - «Gestió i edició de fitxers i directoris»

Comandaments: cp, mv, cat, mkdir, nano, ls, rm

Escriu la o les comandes necessàries per cada cas, sense moure't del teu directori home:

1. Fes una còpia de "test1.txt" i deixa-la al directori "practica".

2. Mou "test2.txt" al teu directori home.

3. Renombra "test2.txt" a "diari.txt".

4. Converteix "diari.txt" en un arxiu ocult.

5. Edita el diari, esborrant tot el text i escrivint "Això és el meu diari personal.".

6. Mostra els continguts del diari.

7. Crea un directori ocult dins de "practica" que es digui "secrets".

8. Llista els fitxers del directori "practica", inclosos els ocults.

9. Copia el diari al directori "secrets".

10. Llista els continguts del diari dins del directori secrets.

11. Esborra el diari que està al directori home.

12. Fes una còpia oculta del directori "secrets" que es digui "copia-seguretat" dins de "practica".

13. Llista els fitxers del directori "copia-seguretat", inclosos els ocults.

Solucions Exercicis Repàs 3

1 cp practica/test1.txt practica/test2.txt

2 mv practica/test2.txt ~

3 mv test2.txt diari.txt

4 mv diari.txt .diari.txt

5 nano .diari.txt

6 cat .diari.txt

7 mkdir practica/.secrets

8 ls -a practica

9 cp .diari.txt practica/.secrets

10 cat practica/.secrets/.diari.txt

11 rm .diari.txt

12 cp -r practica/.secrets/ practica/.copia-seguritat

13 ls -a practica/.copia-seguritat/


Teoria Bloc 4: ¡Comandes de redirecció ( >, >>, |, echo, /dev/null)

Redirecció text sortida del terminal amb > i >>.

Per defecte el resultat de les comandes surten per la consola (sortida estàndard)

	ls -l

Si fiquem > després de la comanda i el nom d’un fitxer, posem la sortida en un fitxer en comptes del terminal. Si el fitxer ja existeix el sobreescriu.

  ls -l > fitxersCarpeta.txt

Fixa’t que per veure si s’ha creat bé podem usar cat:

  cat fitxersCarpeta.txt

Si posem >> després de la comanda i el nom d’un fitxer fa el mateix que >; excepte en el cas que el fitxer existeixi, que en comptes de sobreescriure posa les linies a continuació.

  ls -l >> fitxersCarpeta2.txt

Personalment, em va sorprendre molt descobrir aquesta comanda com a programador 😲, ja que abans vaig aprendre com fer el mateix amb Java i és més llarg.

echo --> Mostrar text i variables.

Comanda bàsica, com el print dels llenguatges de programació.

$ echo ”Hello Linux”

Per a escriure un text dins d’un fitxer sense obrir-lo ho fem així:

$ echo ”Hello” > /home/miquel/practica/test1.txt
$ cat test1.txt
$ Hello

Variables d'entorn

echo no només et permet mostrar text literal, també interpreta variables del sistema (variables d'entorn).

Per exemple, prova les comandes:

echo $USER
echo $PATH
echo $LANG

Alguns valors de configuració es poden obtenir amb altres comandes, no cal l'echo.

whoami
printenv
lsb_release -a

Concaternació fitxers amb cat.

Exercici 4.1

Creeu un nou fitxer de nom total.txt que guardi el contingut dels fitxers mint.txt i debian.txt; sense tornar a copiar el text.

Escriu els fitxers sense cap editor.

debian.txt té el text:

Debian és un sistema operatiu lliure, creat l’any 1993 per Ian Murdock.

mint.txt té el text:

Mint també és un sistema operatiu lliure, basat en Ubuntu i Debian.
Mint també és un sistema operatiu multiusuari.

Creeu un nou fitxer de nom total.txt que guardi el contingut dels fitxers ubuntu.txt, mint.txt i debian.txt; sense tornar a copiar el text. Pistes: La comanda cat et permet unir més d’un fitxers. La comanda > et permet guardar el que surt pel terminal a un nou fitxer.

echo "Debian és un sistema operatiu lliure, creat l’any 1993 per Ian Murdock." > debian.txt
echo "Mint també és un sistema operatiu lliure, basat en Ubuntu i Debian." >> mint.txt
echo "Mint també és un sistema multiusuari." >> mint.txt
cat mint.txt debian.txt >> total.txt

Exercici 4.2

Guarda l'arbre de directoris (de forma recursiva) en un fitxer anomenat tree.txt des de la teva carpeta personal.

$ echo ”Debian és un sistema operatiu lliure, creat l’any 1993 per Ian Murdock.” > ~/practica11/debian.txt
$ echo ”Mint també és un sistema operatiu lliure, basat en Ubuntu i Debian.” > ~/practica11/mint.txt
$ echo ”Mint també és un sistema operatiu multiusuari.” >> ~/practica11/mint.txt
$ cat debian.txt mint.txt > total.txt
tree > tree.txt

Redirecció d'errors (/dev/null)

Per defecte, quan una comanda ha funcionat Linux no ens dona cap feedback, però si hi ha hagut algún error ens informa de perquè no ha funcionat.

Exemples típics d'operacions que donen error :

  • Crear un directori que ja existeix
  • Esborrar un directori que no existeix.
  • Llegir un fitxer que no existeix.
  • Demanar una llista d'un directori inexistent
miquel@mint:~$ cat pruebas.txt
cat: pruebas: No existe el fichero o el directorio

Si, pel que sigui (per exemple, fem un script), no volem que ens surti aquest error per pantalla el que hem de fer és redirigir-lo a /dev/null.

I què és això de /dev/null ?

/dev/null és com un forat negre, tot el que posis en aquest directori s'esborrarà automàticament.

Per tant, si redirigeixes el missatge de la sortida d'error (que per cert, es redirigeix amb 2>) a /dev/null ja no sortirà.

Prova-ho; i tingues en compte que entre > i / no hi ha cap espai!

miquel@mint:~$ cat pruebas.txt 2>/dev/null

També és útil usar la redirecció d'errors per guardar un registre dels errors en un fitxer.

cat pruebas.txt 2 >err.log
  • [https://itsfoss.com/es/redireccion-linux/](Bloc Itsfoss, redireccions a Linux)

Comandes pipe (|) per filtrar la sortida.

La comanda de canonada | s'utilitza molt per agafar la sortida d'una comanda i aplicar la següent comanda al resultat de la sortida.

Per exemple, això és molt útil si volem comptar les línies i tamany d'un fitxer sense obrir-lo amb la comanda wc.

cat mint.txt | wc 

Exemple absurd de pipe: cowsay.

Instal·la el programa cowsay. Aquest programa dibuixa una vaca (o qualsevol altre animal si canvies la opció corresponent, -f dragon)

$ sudo apt install cowsay
$ cowsay Hey!
 __________________
< Hey!              >
 ------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Usa l'operador per | redirigir la comanda que llegeix contingut d'un fitxer cap a cowsay.

$ cat mint.txt | cowsay
 ________________________________________
/ Mint també és un sistema operatiu lliure \
\ , basat en Ubuntu i Debian.              /
 -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Ja has vist com cowsay ha agafat el text de la sortida i l'ha reconvertit gràcies al |.

També pots crear altres formes amb la opció -f:

$ cat mint.txt | cowsay -f tux
 ___________________________
/ Mint també és un sistema  \
| operatiu lliure, basat en |
\ Ubuntu i Debian.          /
 ---------------------------
   \
    \
        .--.
       |o_o |
       |:_/ |
      //   \ \
     (|     | )
    /'\_   _/`\
    \___)=(___/

Si et sembla divertit pots aprofundir en cowsay:

Pots descarregar-te una cheatsheet bàsica al fitxer: https://github.com/miquelamorosaldev/m01-sistemes-dawbio1/blob/main/m01-uf1/resum_comandes_linux_imprimir.ods


Per on continuar ??

Ja hem cobert les comandes més bàsiques de Linux, classificades en:

  • Comandes instal·lar programes a Ubuntu (apt), ajuda, historial
  • Comandes gestió directoris (mkdir, cp, rm, mv)
  • Comandes gestió fitxers (cp, rm, mv, touch, cat, head, tail)
  • Editor terminal nano
  • Comandes de redirecció i pipes (echo, >, >>, |, /dev/null)

També tocaria veure breument els terminals de Windows (cmd, PowerShell) i perquè no són tant útils.

Ara tocaria seguir amb:

  • Comandes de gestió de processos

  • Execució d'scripts bash (chmod u+x script.sh)

  • Gestió d'usuaris

  • Gestió de permisos i propietat a Linux

  • Comandes de cerca (ls, find, grep)

  • Comandes de filtre (grep, sort, cut, sed, awk ...)

  • Gestió espai del disc (du, dh, free)

  • Comandes instal·lació i actualització en qualsevol distro de Linux

  • Comandes gestió de serveis

  • Comandes connexió a xarxes

    A bioinformàtica són especialment útils les de redirecció, cerca i filtre. I scripts De les altres, cal saber-ne uns mínims.