Diferencia entre revisiones de «Exercicis resolts del shell de Linux»
(→Arxius) |
Sin resumen de edición |
||
Línea 321: | Línea 321: | ||
$ sudo ifup eth0 | $ sudo ifup eth0 | ||
$ /etc/init.d/networking restart # En debian no funciona correctament | $ /etc/init.d/networking restart # En debian no funciona correctament | ||
</syntaxhighlight> | |||
}} | |||
== Monitorització == | |||
Traure la memòria RAM lliure: | |||
{{res| | |||
<syntaxhighlight lang="bash"> | |||
$ free -h | grep 'Mem:' | awk '{print $4}' | |||
</syntaxhighlight> | </syntaxhighlight> | ||
}} | }} |
Revisión actual - 15:58 3 mar 2017
Arxius
Visualitzar els arxius i permisos del directori actiu:
$ ls -l
Visualitzar els arxius del directori pare del que estem actualment:
$ ls ../
Si execute ls sense arguments, de quin directori fa el llistat?:
Del directori actiu de la terminal, el que estem en aquest moment.
Mostrar el directori actual:
$ pwd
$ echo $PWD
Crear dos directoris, un dins de l'altre:
$ mkdir -p dir1/dir2
Llistar els executables del sistema:
$ ls /bin/ /sbin/ /usr/bin/ /usr/sbin/
$ ls ${PATH//:/ }
En el segon cas, utilitzem la variable PATH, que conté les rutes dels programes i una sustitució de caracters en la variable.
Llistar totes les particions de discs SATA:
$ ls /dev/sd*
$ sudo fdisk -l
Fer que un arxiu tinga com a propietari i grup l'usuari i el grup root:
$ chown root:root arxiu.txt
Crear un enllaç de l'arxiu /var/log/syslog al meu home:
$ ln -s /var/log/syslog ~/
Hem creat un enllaç simbòlic amb -s.
Averiguar la quantitat de disc utilitzada:
$ df -h
Averiguar la quantitat de disc utilitzada en total pel directori home:
$ sudo du -sh /home
Donar permís d'execució per a l'usuari a un script:
$ chmod u+x script.sh
$ chmod 744 script.sh
Moure tots els fitxers que tinguen extensió txt del directori /home/ubuntu a directori personal:
$ mv /home/ubuntu/*.txt ~/
Trobar tots els arixus en el teu directori personal majors que 500MB:
$ find -size +500M
Trobar tots els arixus modificats en els últims dos dies en /etc:
$ sudo find /etc -mtime -1 -ls
Mostrar un llistat de tots els directoris (no arxius) que té el directori /tmp:
$ ls -ad **/
El ** és una utilitat de bash per a recorrer recursivament els subdirectoris.
Mostrar un llistat de tots els arixus del sistema amb extensió .jpg:
$ sudo find / -name '.*\.jpg'
Ho fem en sudo per poder entrar en quasi tots els directoris.
Mostrar un llistat de tots els arxius que, efectivament, siguen imatges jpg:
$ find / -type f -exec file --mime-type {} \; | grep 'image/jpeg'
A tots els arxius del sistema els executa un file --mime-type per veure el seu tipus i filtra els que són jpeg
Fer una còpia de seguretat mantinguent permissos de tot els /home:
$ sudo cp -a /home /backup
Fer una còpia de seguretat incremental mantinguent permissos de tot els /home:
$ rsync -ravzX --delete /home /backup/
-r : recursiu -a : igual a: -r -l – copiar enllaços simbòlics -p – preservar permisos -t – preservar temps de modificació -g – preservar group -o – preservar owner -D – preservar arxius de sistema -v – verbosity, que diu més coses -z – Comprimir -X – Preservar atributs estesos -A – Preservar ACL -S – handle sparse files efficiently --delete – Si l'axius és esborrat, s'esborra en destí.
Fes la següent estructura de directoris en un sol comandament:
/home |-- clase |-- alumno1 |-- alumno2 |-- linux |-- windows
$ mkdir -p clase/alumno clase/alumno2/linux clase/alumno2/windows
Explica el següent comandament:
chmod g+w `ls -l > /home/listado` /home/listado
Dona permís de escriptura als arxius i directoris dins de /home/listado i al propi directori per al grup propietari.
Visualitzar el contingut de tots els arxius de dins dels directori /etc/ que comencen per 'a' i tenen d'extensió '.conf'
$ cat /etc/a*.conf
Veure el tipus d'arxius que són els que comencen per 'b' del teu directori personal demanant permís per a cadascun:
$ find $HOME -name "b*" -ok file {} \;
Crear un fitxer amb el llistat del directori /etc ordenat i mostrar-lo per pantalla pausant l'eixida.
$ ls /etc | sort > listado.txt && less listado.txt
Usuaris
Iniciar sessió en un altre usuari en la meua terminal:
$ su usuari
Saber quin usuari estem utilitzant:
$ whoami
Detectar usuaris connectats al sistema:
$ who
Mostrar el grups al que pertany l'usuari lliurex:
$ id lliurex
Crear l'usuari platon que pertany al grup idealistes, amb directori personal i bash en un comandament:
$ useradd -m -G idealistes -s /bin/bash platon
Mostrar tots els grups del sistema en orden alfabètic:
$ cat /etc/group | cut -d":" -f1 | sort
Processos i programes
Llistar els processos en execució:
$ ps -e
$ ps aux
Mostrar l'ús de memòria:
$ free
Hi ha moltes ferramentes que donen informació de l'ús de la memòria. Free és la més coneguda i concreta, però en top, htop i altres també trobem aquesta informació.
Reiniciar el sistema:
$ sudo reboot
Hi ha moltes ferramentes que donen informació de l'ús de la memòria. Free és la més coneguda i concreta, però en top, htop i altres també trobem aquesta informació.
Matar un procés:
$ ps -e # Per averiguar el PID
$ kill <PID>
$ kill -9 <PID> # Forçar la mort
Executar en segón planol un procés:
$ htop &
Tornar del segón planol a la terminal un procés:
$ fg
Buscar la ubicació d'un programa:
$ whereis nano
Mostrar la data en format DD/MM/AAAA HH:MM:
$ date +"%d/%m/%Y %H:%M"
Consultar l'historial de comandaments:
$ history
Mostrar el PATH dels executables de Libreoffice:
$ whereis libreoffice
Crear un fitxer amb permisos de lectura i escriptura per al usuari, de lectura per al grup i res per als altres que continga tots els alies del sistema:
$ (umask 026; alias > alias.txt)
Anem a analitzar aquest comandament. Primer configurem el umask per a que mai tinga altres permisos el fitxer. Després s'executa el comandament alias que redirecciona l'eixida estàndar a alias.txt. Però tot això es fa dins de () per a fer-lo en un bash diferent i no conservar els umask.
Crear un fitxer anomenat events.txt amb les primeres 50 línies que s'ha generat al arrencar en sistema i les últimes 50. Cal escriure títols que indiquen si són les primeres i on comencen les últimes:
$ dmesg | (echo "Primeres línies: " && head -50 && echo "Últimes línies:" && tail -50)
El resultat de dmesg s'envia a l'entrada estàndard de tots els programes que es fiquen entre parèntesis. El head i tail mostren les línies i el echo no fa cas i mostra el que li pases com a paràmetres.
Xarxa
Assignar una IP a una targeta de xarxa anomenada eth0:
$ sudo ifconfig eth0 192.168.0.2/24
$ sudo ip addr add 192.168.0.2/24 dev eth0
El comandament recomanable és el de ip, ja que forma part d'un paquet nou de ferramentes per substituir el ifconfig, considerat obsolet.
Reiniciar una targeta de xarxa eth0:
$ sudo ifdown eth0
$ sudo ifup eth0
$ /etc/init.d/networking restart # En debian no funciona correctament
Monitorització
Traure la memòria RAM lliure:
$ free -h | grep 'Mem:' | awk '{print $4}'