Casi todos los servidores del mundo funcionan con Linux, y casi ninguno tiene escritorio: ni ventanas, ni ratón, ni iconos. Se manejan desde una terminal, escribiendo órdenes. Parece antiguo, pero es la forma más rápida y precisa de trabajar con una máquina que está en otra sala (o en otro país): te conectas por SSH, escribes lo que quieres que haga y te contesta con texto.
En este tema aprendes lo primero que hace cualquier técnico al entrar en un servidor: saber dónde está, moverse, y crear, copiar, mover, borrar y buscar archivos. Cada sección tiene un ejercicio con una terminal de verdad (simulada, pero con las mismas órdenes y las mismas respuestas que un Ubuntu Server): lo que escribas ahí, pasa.
El prompt: quién, dónde y qué
Al entrar, la terminal te espera con una línea como esta, el prompt:
tecnico@srv-ficheros:~$
Te dice tres cosas: quién eres (tecnico), en qué máquina (srv-ficheros) y dónde
estás (~, que significa “tu carpeta personal”). El $ del final indica que eres un usuario
normal; si fueras el administrador, root, sería un #.
Detrás del prompt escribes una orden, y casi todas siguen la misma forma:
tecnico@srv-ficheros:~$ ls -l /var/log
lses el programa que quieres ejecutar (listar).-les una opción: cambia cómo lo hace (formato largo). Las opciones cortas llevan un guion y se pueden juntar:ls -l -aes lo mismo quels -la./var/loges el argumento: sobre qué lo hace. Si no pones ninguno,lslista la carpeta en la que estás.
Linux distingue mayúsculas y minúsculas: Documentos y documentos son dos carpetas
distintas, y LS no es una orden.
¿Dónde estoy? pwd y ls
pwd (print working directory) dice en qué carpeta estás, con su ruta completa:
tecnico@srv-ficheros:~$ pwd /home/tecnico
ls (list) enseña lo que hay dentro. En la terminal, cada tipo sale de un color: las carpetas
en azul, los programas en verde, los enlaces en cian.
tecnico@srv-ficheros:~$ ls Descargas Documentos Imagenes
Con -l (long), una línea por archivo con todos sus datos:
tecnico@srv-ficheros:~$ ls -l total 12 drwxr-xr-x 2 tecnico tecnico 4096 Sep 28 09:30 Descargas drwxr-xr-x 2 tecnico tecnico 4096 Sep 28 09:30 Documentos drwxr-xr-x 2 tecnico tecnico 4096 Sep 28 09:30 Imagenes
De izquierda a derecha: el tipo (d es un directorio, - un archivo, l un enlace) y los
permisos (rwxr-xr-x, los verás en el tema 3), el número de enlaces, el dueño y el
grupo, el tamaño en bytes, la fecha de la última modificación y el nombre.
Los archivos cuyo nombre empieza por punto son ocultos: ls no los enseña salvo que se lo
pidas con -a (all). Suelen ser configuración, como .bashrc:
tecnico@srv-ficheros:~$ ls -a . .. .bash_logout .bashrc .profile Descargas Documentos Imagenes
Ejercicio
¿Dónde estoy?
Acabas de entrar por SSH en el servidor de ficheros. Antes de tocar nada, mira dónde estás y qué hay.
Preparando la máquina…
El árbol de directorios
En Linux no hay C: ni D:. Todo cuelga de un único directorio, la raíz, que se escribe
/. Dentro están siempre las mismas carpetas, en cualquier Linux:
| Carpeta | Qué hay |
|---|---|
/home |
las carpetas personales: la tuya es /home/tecnico |
/root |
la carpeta personal del administrador |
/etc |
la configuración del sistema y de los servicios |
/var/log |
los registros (logs): lo que va pasando en la máquina |
/tmp |
archivos temporales: se vacía al reiniciar |
/usr/bin |
los programas (ls, cp… son archivos de aquí) |
/srv |
los datos que sirve el servidor (en este, las carpetas compartidas) |
Hay dos formas de escribir una ruta:
- Absoluta: empieza por
/y describe el camino desde la raíz./var/log/syslogsignifica lo mismo estés donde estés. - Relativa: no empieza por
/y se cuenta desde donde estás. Si estás en/home/tecnico,Documentos/pendientes.txtes/home/tecnico/Documentos/pendientes.txt.
Y tres atajos que se usan a todas horas: . es la carpeta en la que estás, .. la de arriba
y ~ tu carpeta personal.
ls enseña una carpeta; tree enseña todo lo que cuelga de ella, de un vistazo:
tecnico@srv-ficheros:~$ tree /srv/compartido /srv/compartido ├── LEEME.txt ├── contabilidad │ └── facturas-septiembre.ods ├── direccion ├── diseno │ └── logo.svg └── ventas └── clientes.csv 4 directories, 4 files
Con -L 1 se queda en el primer nivel, y con -d enseña solo las carpetas.
Moverse: cd
cd (change directory) te lleva a otra carpeta. No contesta nada si todo va bien: el prompt
cambia para decirte dónde estás ahora.
tecnico@srv-ficheros:~$ cd /var/log
tecnico@srv-ficheros:/var/log$ ls -l total 16 drwxr-xr-x 2 root root 4096 Sep 28 09:30 apt -rw-r----- 1 root adm 71 Oct 5 09:28 auth.log -rw-r--r-- 1 root root 48 Sep 28 09:30 dpkg.log -rw-r----- 1 root adm 59 Oct 5 09:29 syslog
cd .. sube un nivel; cd a secas (o cd ~) te devuelve a casa, y cd - a donde estabas
antes. Si la carpeta no existe, te lo dice:
tecnico@srv-ficheros:~$ cd /nada bash: cd: /nada: No such file or directory
No such file or directory (“no existe ese archivo o carpeta”) es el error que más vas a ver. Casi siempre es una letra mal escrita o una ruta relativa desde el sitio equivocado.
Ejercicio
Moverse por el sistema
Los registros del sistema viven en /var/log. Ve a mirarlos y vuelve a casa.
Preparando la máquina…
Crear: mkdir y touch
mkdir (make directory) crea carpetas y touch crea archivos vacíos (si el archivo ya existe,
solo le pone la fecha de ahora).
tecnico@srv-ficheros:~$ mkdir proyectos
tecnico@srv-ficheros:~$ touch proyectos/ideas.txt
mkdir no crea las carpetas intermedias que falten, salvo que se lo pidas con -p
(parents). Con -p, tampoco se queja si la carpeta ya existe:
tecnico@srv-ficheros:~$ mkdir -p proyectos/web/css
Ejercicio
Crear carpetas y archivos
Prepara en tu carpeta personal el sitio para un proyecto nuevo.
Preparando la máquina…
Copiar, mover y renombrar: cp y mv
cp origen destino copia. Si el destino es una carpeta que existe, la copia va dentro con el
mismo nombre; si no, se crea con el nombre que le des.
tecnico@srv-ficheros:~$ cp Descargas/factura.pdf Documentos/
Para copiar una carpeta entera hace falta -r (recursive). Sin ella, cp se niega:
tecnico@srv-ficheros:~$ cp Documentos copia cp: -r not specified; omitting directory 'Documentos'
mv mueve, y renombrar no es más que mover a un nombre nuevo en el mismo sitio:
tecnico@srv-ficheros:~$ mv Documentos/borrador.txt Documentos/propuesta.txt
Para trabajar con muchos archivos a la vez están los comodines: * es “cualquier cosa” y
? “un carácter cualquiera”. mv Descargas/*.jpg Imagenes/ mueve todos los que acaban en
.jpg. Quien los sustituye por los nombres de verdad es la terminal, antes de ejecutar la
orden: mv recibe la lista ya hecha.
Ejercicio
Copiar, mover y renombrar
Tu carpeta Descargas es un desastre. Pon cada cosa en su sitio.
Preparando la máquina…
Borrar: rm y rmdir
rm (remove) borra archivos; rmdir, carpetas vacías. Para borrar una carpeta con todo lo que
tiene dentro, rm -r.
tecnico@srv-ficheros:~$ rmdir Documentos rmdir: failed to remove 'Documentos': Directory not empty
Ejercicio
Borrar con cuidado
En Descargas sobran cosas, pero contrato.pdf y nominas.ods son importantes. En Linux no hay papelera: lo borrado, borrado está.
Preparando la máquina…
Buscar: find
find recorre una carpeta y todo lo que tiene dentro buscando lo que le pidas. Lo más habitual
es buscar por nombre:
tecnico@srv-ficheros:~$ find /srv/compartido -name "*.csv" /srv/compartido/ventas/clientes.csv
-namebusca por nombre (con comodines);-iname, igual pero sin distinguir mayúsculas.-type fsolo archivos;-type d, solo directorios.-maxdepth 1no baja más de un nivel.
El patrón va entre comillas: si no, la terminal intenta completar el * con los archivos
de la carpeta en la que estás, y find recibe otra cosa (a veces, un error; a veces, una
búsqueda equivocada que no avisa).
Ejercicio
Encontrar un archivo
Dirección pide el informe-trimestral.pdf, que está en algún sitio de /srv/compartido. Nadie recuerda dónde.
Preparando la máquina…
Leer archivos: cat, less, head y tail
cat archivoenseña el archivo entero.less archivolo enseña por páginas (en la simulación, entero).headytailenseñan el principio y el final:tail -n 20 /var/log/syslogson las 20 últimas líneas del registro del sistema, lo primero que se mira cuando algo falla.
tecnico@srv-ficheros:~$ cat /srv/compartido/LEEME.txt Carpetas compartidas de la empresa. No borrar nada sin avisar.
Aquí basta con conocerlas: pruébalas en cualquier consola de la sala (cat sobre un LEEME.txt,
tail sobre un registro). Se practican a fondo, con su ejercicio, en el
tema 2: leer y procesar texto.