Comandos generales
Recopilación de los comandos generales trabajados en clase:
varios
Antes de entrar a ver los comandos con los que vamos a trabajar en clasevamos a ver una serie de utilidades que pueden hacer que nuestra experiencia de uso del terminal resulte mas agradable y productiva.
Concatenar comandos (&&)
Nos permite ejecutar un comando a continuación de otro siempre y cuando el comando anterior no produzca ningún error.
$ comando1 && comando2
Se ejecutaría el comando1 y a continuación el comando2 si no existe ningún error al ejecutar comando1
$ service apache2 stop && service apache2 start
Se detendría el servicio apache2 y a continuación se arrancaría el servicio apache2
Redirigir la salida (>)
Cuando ejecutamos un comando este puede producir (o no) una salida.
$ ls
Produce una salida en la que nos muestra en pantalla el contenido del directorio actual.
Por defecto esta salida, se denomina salida estandar, es mostrada en pantalla. Podemos redirigir la salida a donde nos interese con >.
$ ls > fichero.txt
El comando anterior no nos mostrará nada en pantalla y lo que debería de haber mostrado por pantalla lo escribirá en un fichero llamado fichero.txt Si el fichero tenía contenido borrará el contenido y escribirá la salida. Si el fichero no existía lo creará (si tiene permiso) y escribirá en él la salida.
$ ls >> fichero.txt
Funciona de un modo parecido al anterior pero en esta ocasión no borrará el contenido del fichero fichero.txt sino que agregará al contenido del fichero el resultado de esta nueva ejecución.
Un comando, al igual que una salida de resultado nos puede mostrar una salida de error que también podemos redirigir. Para ello, en vez de > deberemos de usar 2>
$ ls 2> fichero.err.txt
Tras la ejecución del comando anterior veremos por pantalla el resultado de ejecutar el comando y en caso de existir algún error durante la ejecución se escribirá en el fichero fichero.err.txt Al igual que en el caso anterior tenemos la posibilidad de no sobreescribir el contenido del fichero sino de añadir contenido, para ello utilizaremos 2>>.
También tenemos la posibilidad de usar la redirección en la otra dirección, vamos a ver un ejemplo
$ wc < fichero.txt
El comando wc nos muestra la cantidad de palabras que aparecen a continuación. En este caso nos indicará la cantidad de palabras que existen en el fichero llamado fichero.txt
Algo muy habitual es redirigir la salida de errores a ningún lugar, para ello haríamos
$ ls 2> /dev/null
Tubería (|)
Nos permite redirigir la salida estandar de un comando a la entrada de otro. Por ejemplo:
$ ps -aux | grep apache2
ps -aux
nos devuelve un listado de procesos en ejecución, ese listado se le facilita al comando grep que lo que hace es buscar la palabra apache2 en lo que ps -aux le ofrece.
$ cat fichero.txt | wc
El comando cat escribe por pantalla en contenido del fichero que se le facilita como parámetros a continuación. En este caso, en lugar de escribirlo por pantalla se lo facilitará al comando wc (que sirve para contar palabras) por lo que tras ejecutar el comando anterior obtendremos el total de palabras que contiene fichero.txt
Comandos
pwd
Nos indica la ruta en que nos encontramos
$ pwd
cd
Sirve para cambiar al directorio que facilitemos como argumento o si no facilitamos argumento nos redirige al directorio personal
$ cd
Redirige al directorio personal del usuario
$ cd /home/alumno/Desktop
Cambia el directorio actual a /home/alumno/Desktop
$ cd Desktop
Cambia el directorio actual al directorio Desktop de la carpeta en que nos encontremos
mkdir
Nos permite crear directorios
$ mkdir /home/alumno/examenes
Crea el directorio examenes en la ruta /home/alumno
$ mkdir trabajos
Crea el directorio trabajos en la ruta en que nos encontremos
touch
Sirve para crear archivos vacíos
$ touch /home/alumno/examenes/lengua
Crea un fichero vacío llamado lengua dentro de la ruta /home/alumno/examenes
$ touch trabajoDeLengua
Crea un fichero vacío llamado trabajoDeLengua dentro de la carpeta en que nos encontremos
rm
Borra archivos o directorios
$ rm /home/alumno/configuracion.bckup
rmdir
Borra directorios vacíos
$ rmdir /home/alumno/directorioVacio
ls
Nos permite listar el contenido de un directorio. Veremos también sus variantes ls -l
, ls -a
y ll
$ ls
Lista el contenido del directorio en que nos encontremos
$ ls /home/alumno
Lista el contenido del directorio /home/alumno
$ ls Descargas
Lista el contenido del directorio Descargas (que esté dentro de la ruta en que nos encontremos)
$ ls -l
Lista en modo ¿detallado o columnas? el directorio en que nos encontremos. También se le pueden facilitar como argumentos rutas absolutas o relativas.
$ ls -a
Lista todo el contenido (incluyendo ficheros ocultos) del directorio en que nos encontremos. También se le puede facilitar como argumentos una ruta absoluta o relativa.
$ ll
Lista el contenido (incluyendo ficheros ocultos) del directorio en que nos encontremos y además muestra la información relativa a permisos, propietarios, tamaño y fecha de creación. En la sección de permisos hay mas información.
whoami
Nos muestra el usuario con el que estamos trabajando. Algo que si tenemos configurado bash por defecto se puede ver en el prompt como vimos en el apartado terminal/consola.
$ whoami
su
Permite cambiar de usuario
$ su profesor
Cambia del usuario actual al usuario profesor
$ sudo su
Cambiamos al usuario administrador (root). Generalmente no es recomendable hacer esto (consultar el apartado posterior)
sudo
En la wikipedia obtenemos la siguiente explicación de sudo:
El programa sudo (del inglés super user do) es una utilidad de los sistemas operativos tipo Unix, como Linux, BSD, o Mac OS X, que permite a los usuarios ejecutar programas con los privilegios de seguridad de otro usuario (normalmente el usuario root) de manera segura, convirtiéndose así temporalmente en superusuario. Se instala por defecto en /usr/bin.
En el apartado anterior ya vimos como utilizar este comando para convertirnos en usuarios administradores de forma permanente. En la medida de lo posible evitaremos ese uso y trabajaremos como usuarios normales anteponiendo sudo cuando de forma consciente queramos ejecutar un determinado comando como root.
$ sudo chmod 740 fichero
Como root ejecutamos el comando chmod (para el resto de valores consultar sección Permisos)
man
Muestra la ayuda del comando que se indique a continuación.
$ man cat
Muestra la ayuda del comando cat
$ man nano
Muestra la ayuda del comando nano
Para salir de la ayuda se presiona la tecla q.
top
Muestra un resumen detallado del estado actual de la máquina en relación al consumo de sus recursos hardware y sus procesos
$ top
Para salir se presiona la tecla q.
nano
Abre un editor de texto
$ nano manual
Abre el editor de texto con el contenido del fichero manual. En caso de no existir el fichero lo creará.
Para guardar el contenido tras modificar el fichero pulsaremos control + o
y para salir del editor pusaremos control + x
.
cat
Muestra el contenido de un fichero.
$ cat manual
grep
Dibuja las líneas que coinciden con un determinado patrón.
$ cat manual | grep gato
Marca todas las líneas del fichero manual que contengan la palabra gato.
ifconfig
Nos muestra la configuración de red.
$ ifconfig
(Añadir imagen del resultado)
ping
Envía un paquete a la ip de destino. Nos sirve para saber si en una determinada IP hay un equipo a la escucha.
$ ping 192.168.4.100
Si obtenemos respuesta sabremos que en esa IP hay una máquina
shutdown
Apaga la máquina.
$ shutdown
reboot
Reinicia la máquina.
$ reboot
apt-get
Nos permite gestionar los paquetes de la máquina. Es una tarea que deberemos hacer como administradores.
$ sudo apt-get update
Actualiza los repositorios del equipo.
$ sudo apt-get upgrade
Actualiza los paquetes instalados en el equipo
$ sudo apt-get install apache2
Descargará, instalará y configurará el paquete apache2 junto con las dependencias que tenga el paquete.
$ sudo apt-get remove apache2
Desinstalará el paquete apache2
ssh
Nos permite conectarnos a otra máquina. La sintaxis es la siguiente:
$ ssh usuario@ip_dstino
Por ejemplo
$ ssh [email protected]
service
Nos permite iniciar, parar o reiniciar un servicio de la máquina. La sintaxis es la siguiente:
$ service nombre_servicio start|stop
Por ejemplo:
$ service apache2 start
Arranca el servicio apache2 (servidor web)
$ service proftpd stop
Detiene el servicio proftpd (servidor de FTP)
ifup
Nos permite activar una determinada interface de red.
$ sudo ifup eth0
Activa la interface denominada eth0 (interface cableada)
ifdown
Nos permite desactivar una determinada interface de red
$ sudo ifdown wlan0
Desactiva la interface denominada wlan0 (interface wireless)
ps
Muestra un listado de los procesos en ejecución
$ ps -aux
Podemos combinarlo con grep para facilitarnos la búsqueda de un determinado servicio
$ ps -aux | grep apache2
pidof
Nos devuelve el identificador del proceso (pid) del servicio que solicitemos
$ pidof apache2
kill
Mata procesos.
$ kill -9 pid
Mata el proceso del cual pongamos su pid. Es decir, no se escribe pid sino que se escribe el identificador del proceso.
killall
Mata procesos por su nombre.
$ killall apache2
Mata todos los procesos de apache2.
$ killall tail
Mata todos los procesos que estén ejecutando tail.
df
Muestra el espacio en disco. Lo ejecutaremos con el modificar -h
para que la información que veamos resulte mas legible.
$ df -h
exit
Cierra la sesión actual.
$ exit
scp
Copia archivos entre máquinas distintas. La sintaxis es la siguiente:
$ scp origen destino
Teniendo en cuenta que tanto origen como destino pueden ser archivos locales o remotos. Cuando nos archivos remotos utilizaremos la sintaxis usuario@ip:/ruta
. Por ejemplo:
$ scp hola.txt [email protected]:/home/pablo
Copia el fichero local llamado hola.txt en una máquina con la IP 192.168.4.100 en su ruta /home/pablo y lo hace con un usuario que se llama pablo. Veamos otro ejemplo:
$ scp [email protected]:/home/pablo/hola.txt /usr/share
Copia el fichero hola.txt que se encuentra en la máquina de IP 192.168.4.100 en la ruta /home/pablo accediendo a la máquina en cuestión con el usuario pablo. Deja el fichero en la ruta /usr/share