jun 15
Arxius d’UNIX i altres comandes
Seguint una mica amb el rip d'apunts de la Salle (faig neteja i els tiro, i així en tinc un resum per si un cas
), ara bé el tema d'arxius i com manipular-los, així com algunes comandes més avançades.
Primerament cal tenir en comtpe que a linux la longitud màxima per al nom d'un arxiu és 256 caràcters. Es recomana emprar noms mnemotècnics o explicatius, i que a més no continguin caràcters especials, com ara accents, o espais (que podem substituir per _).
Altrament linux no empra extensions de fitxers com fa Windows, és a dir, un fitxer de text no té perquè acabar en .txt, si es vol si, i si no no. Tot i així, algunes aplicacions l'empren per a facilitar-ne la identificación, com ara imatges, amb .png, .tiff, .jpg....
Principalment es nota en els executables, on mai porten l'extensió .exe.
També cal saber que a linux els arxius i directoris ocults comencen amb un "." davant del nom.
Comandes de manipulació d'arxius:
- cp [opcions] origen desti: Aquesta comanda copia l'arxiu orígen al destí especificat. Si volem copiar un directori sencer podem emprar la opció -r (recursiu): cp -r /home/usuari/directori /home/usuari/Documents
- rm [opcions] arxiu: Esborra un arxiu. Amb -rf podem esborrar també un directori (-r recursiu -f forçar), però cal tenir en compte que esborra el directori i els arxius sense demanar cap confirmació, pel que s'ha d'anar amb molt de compte amb aquesta comanda.
- mv [opcions] origen desti: Mou un arxiu o directori al destí indicat.
- mkdir [opcions] directori: Crea un nou directori.
- rmdir [opcions] directori: Esborra un directori. Ha d'estar buit per a que funcioni.
- tar [opcions] arxiu_desti arxiu_origen1 arxiu_origen2 .... Aquesta comanda crea un arxiu que conté totes les dades especificades. Els usos més comuns són: tar cfz arxiu_comprimit.tar.gz origen/ (per guardar un directori comprimit), tar cf arxiu.tar origen (sense comprimir), tar xvfz arxiu.tar (per extreure un arxiu comprimit), tar xfv arxiu arxiu.tar (per extreure un arxiu no comprimit). També hi ha un altre tipus de compressió anomenada bz2, on només hem de canviar la z de zip per una j.
- man comanda: Mostra informació d'una comanda i quines són les seves opcions.
- comanda --help: Mostra les opcions més comuns d'una comanda.
Una altra eina útil a linux són els enllaços simbòlics i durs. Un enllaç dur el que far és copiar un arxiu a un altre lloc amb un altre nom si es dessitja, amb la diferència de que l'arxiu no ocupa el doble per això, els dos arxius creats per enllaç dur apunten al mateix arxiu, i qualsevol modificació per un dels dos es veurà a l'altre, doncs són el mateix arxiu. Això és fa amb:
ln origen destí
Com que els dos apunten al mateix arxiu, al borrar un dels dos enllaços no s'esborrarà l'arxiu, els dos han de ser esborrats per a que l'arxiu es perdi. Altrament serveix per a que dos usuaris puguin veure i modificar un arxiu, tot que no es contempla el problema de que ambdos usuaris modifiquin l'arxiu alhora.
En canvi un enllaç simbòlic el que fa és apuntar a un arxiu, fa de redirecció, això permet que pugui tenir un nom diferent a l'original. En aquest cas, l'arxiu simbòlic és una redirecció a l'arxiu original, per el que esborrar l'enllaç simbòlic només esborra al mateix i no afecta per res a l'arxiu al que apunta, però si en canvi esborrem l'original, el simbòlic queda trencat, on apuntava ja no existeix. Aquest tipus d'arxius van bé per apuntar a un recurs del sistema que no volem 'duplicar' i que quan sigui eliminat no el mantinguem al disc dur, com passaria amb un enllaç dur. La comanda per crear-lo -es:
ln -s origen destí
Altre comanda interessant és df:
df -h
Aquesta comanda ens mostrarà les particions i unitats (com ara cdroms, llapisos usb, etc... ) del nostre sistema mostrant-nos l'espai ocupat i el lliure que ens queda.
També és important saber de les redireccions de linux, que permeten enviar on volem un determinat fluxe de dades.
Per exemple, al fer:
cat fitxer.txt
Ens mostraria per pantalla el contingut de fitxer.txt, però fent:
cat fitxer.txt > fitxer2.txt
Això no mostraria res per pantalla, crearia un fitxer2.txt o en cas d'existir el sobreescriuria amb la sortida de cat, en aquest cap el contingut de fitxer.txt, pel que bàsicament en faríem una còpia. També podríem emprar:
cat fitxer.txt >> fitxer2.txt
La diferència d'aquesta comanda és que afegeix el contingut, al final, de fitxer.txt a fitxer2.txt, però no sobreescriu el que hi havia ja a fitxer2.txt.
Altre filtre que havíem vist és el pipe, que permet passar la sortida d'una comanda a una altre:
df -h |grep /dev/sda
Ens mostrarà només el primer disc dur si tenim SATA i en el cas de tenir PATA ens mostraria per exemple un dispositiu USB, si en tinguéssim cap connectat.
També podem fer redireccions a la inversa, és a dir, passar-li els paràmetres al programa des d'un arxiu de text, això per exemple s'empra amb fitxers sql:
mysql -u usuari -p clau base_de_dades < instruccions.sql
Com podeu veure molt més pràctic que entrar línia per línia les comandes que volem emprar, i necessari quan la base de dades és gran, doncs per web és inviable.
