User Tools

Site Tools


apuntes:linux

Linux

debian.jpg

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 grupo sysadmin)
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 letra q)
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 (external edit)