apuntes:linux
Table of Contents
Linux
En este apartado os prepararé una lista de comandos Linux útiles para la asignatura. También podéis echar un ojo a la zona de Referencias donde encontraréis enlaces a documentación sobre Linux.
También podéis consultar alguna de las Quick Reference Cards que os dejo aqui:
Estructura del sistema
bin boot dev etc home lib mnt opt proc root sbin tmp usr var / \ | user1 user2 log
- bin
- boot: Almacena los ficheros de arranque del sistema, como el kernel
- dev: Almacena ficheros que representan a cada uno de los dispositivos (
devices
) del sistema - etc: Almacena los ficheros de configuración del sistema y de las diferentes aplicaciones que se instalen
- home: Almacena las carpetas de cada uno de los usuarios del sistema, excepto
root
- lib
- media
- mnt
- opt: En principio está vacía ya que su utilidad es la instalación de software que no se integre con el sistema (
optional
) - proc
- root: Carpeta de inicio del usuario
root
- run
- sbin
- srv
- sys
- tmp: Almacén de ficheros y carpetas temporales del sistema. Se vacía en cada arranque
- usr
- var:
Información del sistema
- Mostrar la carga media del sistema
santi@zenbook:$ uptime 09:44:52 up 5 min, 2 users, load average: 0.00, 0.05, 0.03
- Mostrar información sobre el uso de CPU y los procesos del sistema
santi@zenbook:$ top
Mostrará, ocupando toda la pantalla, la siguiente información (se sale pulsando la tecla q
)
top - 09:45:09 up 6 min, 2 users, load average: 0.00, 0.05, 0.02 Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.3 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 2052640 total, 1824764 free, 43292 used, 184584 buff/cache KiB Swap: 2095100 total, 2095100 free, 0 used. 1865816 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1304 daw 20 0 42692 3620 3064 R 0.3 0.2 0:00.01 top 1 root 20 0 57056 6820 5268 S 0.0 0.3 0:00.88 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 20 0 0 0 0 S 0.0 0.0 0:00.08 rcu_sched 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 11 root rt 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0 12 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0 . . . . . .
- Mostrar información sobre el Sistema Operativo
santi@zenbook:$ uname -a Linux despliegue-daw 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2+deb9u5 (2017-09-19) x86_64 GNU/Linux
- Mostrar los usuarios que tienen iniciada una sesión actualmente
santi@zenbook:$ who daw tty1 Oct 7 09:39 daw pts/0 Oct 7 09:44 (192.168.1.3)
- Muestra los usuarios que han iniciado sesión en el sistema (similar al comando
who
) y alguna información extra al respecto
santi@zenbook:$ w 09:55:54 up 16 min, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT daw tty1 - 09:39 11:14 0.14s 0.09s -bash daw pts/0 192.168.1.3 09:44 1.00s 0.10s 0.00s w
- Mostrar el uso de disco
santi@zenbook:$ df -h Filesystem Size Used Avail Use% Mounted on udev 992M 0 992M 0% /dev tmpfs 201M 3.0M 198M 2% /run /dev/sda1 5.9G 917M 4.7G 17% / tmpfs 1003M 0 1003M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1003M 0 1003M 0% /sys/fs/cgroup tmpfs 201M 0 201M 0% /run/user/1000
- Mostrar la información sobre un proceso (en este caso los que contengan la cadena
apache
)
santi@zenbook:$ ps aux | grep apache root 397 0.0 0.2 75608 4316 ? Ss 09:39 0:00 /usr/sbin/apache2 -k start www-data 401 0.0 0.1 364768 4068 ? Sl 09:39 0:00 /usr/sbin/apache2 -k start www-data 402 0.0 0.1 364768 4072 ? Sl 09:39 0:00 /usr/sbin/apache2 -k start daw 1378 0.0 0.0 12756 972 pts/0 S+ 09:55 0:00 grep apache
Carpetas y directorios
- Listar el contenido de una carpeta (en este caso de
/usr/local
)
santi@zenbook:$ ls /usr/local bin etc games include lib man sbin share src
santi@zenbook:$ ls -la /usr/local total 40 drwxrwsr-x 10 root staff 4096 Oct 4 23:06 . drwxr-xr-x 10 root root 4096 Oct 4 23:06 .. drwxrwsr-x 2 root staff 4096 Oct 4 23:06 bin drwxrwsr-x 2 root staff 4096 Oct 4 23:06 etc drwxrwsr-x 2 root staff 4096 Oct 4 23:06 games drwxrwsr-x 2 root staff 4096 Oct 4 23:06 include drwxrwsr-x 4 root staff 4096 Oct 4 23:11 lib lrwxrwxrwx 1 root staff 9 Oct 4 23:06 man -> share/man drwxrwsr-x 2 root staff 4096 Oct 4 23:06 sbin drwxrwsr-x 7 root staff 4096 Oct 4 23:11 share drwxrwsr-x 2 root staff 4096 Oct 4 23:06 src
santi@zenbook:$ cd mis_trabajos
santi@zenbook:$ pwd /home/santi/mis_trabajos
santi@zenbook:$ mkdir mis_trabajos
- Eliminar un directorio (en este caso el directorio
mis_trabajos
)
santi@zenbook:$ rmdir mis_trabajos
santi@zenbook:$ cp trabajo.pdf trabajos/
santi@zenbook:$ cp -r trabajos/ mas_trabajos/
santi@zenbook:$ mv trabajo.pdf trabajos/
santi@zenbook:$ mv trabajo.pdf mi_trabajo.pdf
santi@zenbook:$ rm trabajos/mitrabajo.pdf
santi@zenbook:$ rm -rf trabajos/
santi@zenbook:$ tar cvzf mis_trabajos.tar.gz mis_trabajos/
santi@zenbook:$ tar xvzf mis_trabajos.tar.gz
Ficheros de texto/configuración
- Mostrar el contenido (completo) de un fichero de texto (en este caso del fichero
/etc/apache2/apache2.conf
)
santi@zenbook:$ cat /etc/apache2/apache2.conf
- Muestra las últimas líneas de un fichero (en este caso de
/var/log/apache2/error.log
)
santi@zenbook:$ tail /var/log/apache2/error.log
- Muestra las últimas 100 líneas de un fichero (en este caso de
/var/log/apache2/error.log
)
santi@zenbook:$ tail -n 100 /var/log/apache2/error.log
- Busca una cadena de texto (en este caso
php
) entre las últimas 100 líneas de un fichero (en este caso/var/log/apache2/error.log
)
santi@zenbook:$ tail -n 100 /var/log/apache2/error.log | grep 'php'
Permisos
- Añade permisos de ejecución al propietario de un fichero (en este caso
fichero_ejecutable.sh
)
santi@zenbook:$ chmod u+x fichero_ejecutable.sh
- Añade permisos de lectura y ejecución al resto de usuarios para un fichero (en este caso
fichero_ejecutable.sh
)
santi@zenbook:$ chmod a+rx fichero_ejecutable.sh
- Añade permisos de lectura y ejecución al usuario y grupo de un fichero (en este caso
fichero_ejecutable.sh
)
santi@zenbook:$ chmod ug+rx fichero_ejecutable.sh
- Elimina permisos de lectura al grupo de un fichero (en este caso
fichero_ejecutable.sh
)
santi@zenbook:$ chmod g-r fichero_ejecutable.sh
- Fijar usuario y grupo (usuario.grupo) al fichero
mi_trabajo.pdf
santi@zenbook:$ chown santi.santi mi_trabajo.pdf
Gestión de usuarios
- Añadir un usuario al sistema (en este caso a
otro_usuario
)
santi@zenbook:$ sudo adduser otro_usuario
- Eliminar un usuario (y su carpeta de inicio) (en este caso al usuario
otro_usuario
)
santi@zenbook:$ sudo userdel -r otro_usuario
- Cambiar la contraseña del usuario actual
santi@zenbook:$ passwd
- Añade un usuario a un grupo (en este caso añade al usuario
santi
al gruposysadmin
)
santi@zenbook:$ sudo adduser santi sysadmin
- Cambiar la contraseña de otro usuario (siendo
root
)
santi@zenbook:$ sudo passwd otro_usuario
- Convertirse en superusuario (root)
santi@zenbook:$ su Password: root@zenbook:$ |
Redes
- Visualizar la configuración de red
santi@zenbook:$ sudo ifconfig
- Comprobar la conectividad de red con otro equipo (en este caso con
192.168.1.3
)
santi@zenbook:$ ping 192.168.1.3 PING 192.168.1.3 (192.168.1.3) 56(84) bytes of data. 64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.161 ms 64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.327 ms 64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.275 ms 64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.345 ms 64 bytes from 192.168.1.3: icmp_seq=5 ttl=64 time=0.305 ms 64 bytes from 192.168.1.3: icmp_seq=6 ttl=64 time=0.274 ms ^C --- 192.168.1.3 ping statistics --- 6 packets transmitted, 6 received, 0% packet loss, time 5044ms rtt min/avg/max/mdev = 0.161/0.281/0.345/0.060 ms
- Reiniciar la configuración de red del equipo
santi@zenbook:$ sudo /etc/init.d/networking restart
- Solicitar una IP al servidor DHCP (al router)
santi@zenbook:$ sudo dhclient
- Reiniciar el servidor web Apache
santi@zenbook:$ sudo service apache2 restart
Inicio/Apagado
- Reiniciar el equipo
santi@zenbook:$ sudo shutdown -r now
santi@zenbook:$ sudo reboot
- Apagar el equipo
santi@zenbook:$ sudo shutdown -h now
Instalación/Desinstalación de aplicaciones
- Instalar un paquete/aplicación (en este caso
apache2
)
santi@zenbook:$ sudo apt-get install apache2
- Reconfigurar un paquete ya instalado (en este caso
phpmyadmin
)
santi@zenbook:$ sudo dpkg-reconfigure phpmyadmin
- Eliminar completamente un paquete (en este caso
apache2
)
santi@zenbook:$ sudo apt-get remove apache2 --purge
- Listar todos los paquetes instalados
santi@zenbook:$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-=============================-==============================-============-====================== ========================================================= ii adduser 3.115 all add and remove users a nd groups ii apache2 2.4.25-3+deb9u3 amd64 Apache HTTP Server ii apache2-bin 2.4.25-3+deb9u3 amd64 Apache HTTP Server (mo dules and other binary files) ii apache2-data 2.4.25-3+deb9u3 all Apache HTTP Server (co mmon files) ii apache2-utils 2.4.25-3+deb9u3 amd64 Apache HTTP Server (ut ility programs for web servers) ii apt 1.4.7 amd64 commandline package ma nager ii apt-listchanges 3.10 all package change history notification tool ii apt-utils 1.4.7 amd64 package management rel ated utility programs ii aspell 0.60.7~20110707-3+b2 amd64 GNU Aspell spell-check er . . . . . .
- Mostrar información detallada sobre un paquete (en este caso
apache2
)
santi@zenbook:$ apt-cache show apache2
- Corregir los fallos de alguna instalación previa que no ha terminado bien
santi@zenbook:$ sudo apt-get install -f
- Reinstalar un paquete (en este caso
apache2
)
santi@zenbook:$ sudo apt-get install --reinstall apache2
- Actualizar la base de datos del repositorio de paquetes
santi@zenbook:$ sudo apt-get update
- Actualizar todos los paquetes instalados a su versión más reciente
santi@zenbook:$ sudo apt-get upgrade
Ayuda
- Mostrar el manual de un comando de Linux, en este caso del comando
ls
(se sale pulsando la letraq
)
santi@zenbook:$ man ls LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alpha- betically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file . . . . . .
- Mostrar la ayuda en línea de un comando (
ls
en este caso)
santi@zenbook:$ ls --help Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print C-style escapes for nongraphic characters --block-size=SIZE scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of 1,048,576 bytes; see SIZE format below -B, --ignore-backups do not list implied entries ending with ~ -c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; . . . . . .
© 2017 Santiago Faci
apuntes/linux.txt · Last modified: 2019/01/04 13:02 by 127.0.0.1