En este manual aprenderás los comandos básicos para manejarte por el terminal de tu servidor Linux.
Antes de empezar con el tutorial, ¿no tienes un servidor Cloud Linux? ¡No te preocupes! Con solo un clic, puedes desplegarlo fácilmente con SW Hosting.
cta:cloud_so
Como indican las siglas de su nombre, sirve para Cambiar de Directorio.
Para ir al la raíz del directorio:
cd /
Si queremos ir a un directorio en concreto:
cd mi_directorio/otro_directorio
Para ir al directorio anterior:
cd ..
Con este comando obtendremos una "LISTA" de los directorios y/o archivos, sería como un DIR de MS-DOS:
ls
Puedes utilizar el *, que hará la función de comodín:
ls *.txt
Mostraría solo los archivos con la extensión .txt
Al escribir uname en tu terminal verás información básica del sistema operativo.
uname
Si añadimos la opción -a veremos una información más extensa sobre el sistema.
uname -a
El comando pwd nos mostrará el directorio donde nos encontramos en este momento.
pwd
Con este comando, veremos el usuario con el que estamos trabajando en este momento.
whoami
Al escribir el comando whatis seguido de cualquier otro comando, se mostrará para que es usado este segundo comando. Por ejemplo, podemos saber la utilidad del comando ls ejecutando lo siguiente:
whatis ls
Este comando es parecido al anterior, ya que nos mostrará donde se encuentra el código fuente de un comando en concreto. Por ejemplo, podemos saber donde se encuentra el comando ls ejecutando lo siguiente:
whereis ls
Con este comando podrás crear un directorio:
mkdir nuevo_directorio
Al contrario que el anterior comando, este sirve para borrar directorios:
rmdir nuevo_directorio
MV sirve para mover archivos, detrás del "comando" pondremos el archivo que queramos mover y el directorio de destino:
mv mi_archivo mi_directorio
RM sirve para borrar archivos, si lo acompañamos de * borrará todos los archivos del directorio en que estés:
rm mi_archivo
rm *
Este comando sirve para borrar la pantalla de terminal:
clear
También podemos utilizar la combinación de teclas CTRL + L para hacer la misma acción.
CP de "COPY", sirve para copiar archivos y directorios:
cp archivo copia_archivo
Puedes hacer la copia en otro directorio:
cp archivo /directorio/sub_directorio
Con este comando podremos modificar los permisos de un archivo o directorio. Estos permisos pueden ser de lectura (r), escritura (w) y ejecución (x), y se aplican a tres tipos de usuarios: el propietario del archivo, el grupo al que pertenece el archivo y otros usuarios.
Tenemos dos formas de cambiar los permisos de un archivo o directorio usando este comando:
Podemos especificar los permisos de un archivo mediante un número de octal de tres dígitos, donde cada dígito representa los permisos para el propietario, el grupo y otros usuarios, respectivamente. Cada dígito se creará sumando el número al que pertenece cada tipo de permiso:
Por ejemplo, si queremos que el propietario de un archivo tenga todos los permisos, mientras que el grupo y otros usuarios solo tengan permisos de lectura y ejecución, podemos utilizar el siguiente comando:
chmod 755 archivo
Con este método, primero indicaremos a quien aplicaremos el cambio de permisos:
Seguidamente escogeremos una de las siguientes opciones:
Finalmente, deberemos especificar los permisos con las siguientes notaciones:
Por ejemplo, podemos añadir permiso de escritura al usuario y grupo propietario, y quitar permiso de lectura a otros usuarios con el siguiente comando:
chmod ug+w,o-r archivo
Con el comando chown, podremos modificar el usuario y/o grupo propietario de un archivo o directorio. Por ejemplo, podemos asignar el usuario "usuario" y grupo "grupo" a un archivo con el siguiente comando:
chown usuario:grupo archivo
En caso de que queramos cambiar los propietarios de un directorio y todo su contenido recursivamente, podemos hacerlo utilizando la opción -R:
chown -R usuario:grupo directorio
Este comando puede ser útil para cuando queremos crear un archivo vacío.
touch archivo.txt
Si utilizamos el comando touch sobre un archivo que ya existe, nos modificará su fecha de acceso y modificación a la actual.
El comando ln creará un fichero el cual apuntará hacia el mismo bloque del sistema de ficheros que el archivo que indiquemos, por lo que tendrán el mismo número de inodo. Básicamente, se creará un acceso directo.
Por ejemplo, si tenemos un archivo con nombre archivo y queremos crear un acceso directo con nombre archivo_ad, podemos utilizar el siguiente comando:
ln archivo archivo_ad
Es el comando utilizado por excelencia para mostrar el contenido de un archivo en Linux:
cat archivo.txt
Parecido al comando cat, pero en este caso se utilizará toda la terminal para mostrar el contenido de un archivo, permitiéndonos mover a través del archivo con las flechas del teclado o la barra espaciadora:
less archivo.txt
Otro comando para mostrar el contenido de un archivo, aunque en este caso solo se nos mostrarán las primeras 10 líneas:
head archivo.txt
Podemos indicar el número de líneas a mostrar con la opción -n seguida del número que queramos. Por ejemplo podemos mostrar las primeras 15 líneas con este comando:
head -n15 archivo.txt
Es el comando contrario al head, pues nos mostrará las últimas 10 líneas de un archivo:
tail archivo.txt
Al igual que head, podemos mostrar el número de líneas que queramos especificándolo con la opción -n:
tail -n15 archivo.txt
Este comando tiene una opción muy interesante que nos permite ver en tiempo real las líneas que se añaden a nuestro fichero, esto lo podemos conseguir añadiendo -f a nuestro comando. Esta opción nos puede ser muy útil, por ejemplo, para poder leer un archivo de logs en tiempo real.
El comando quedaría de la siguiente forma:
tail -f log.txt
El comando tar es muy utilizado para la compresión y descompresión de archivos y directorios en Linux.
Para comprimir, podemos utilizar las siguientes opciones:
Imaginemos que en un directorio tenemos varios archivos de texto (.txt) que queremos comprimir en un solo archivo. Esto lo podríamos conseguir utilizando el siguiente comando:
tar cvf archivo.tar *.txt
Para descomprimir, deberemos utilizar esta nueva opción:
Esta vez, para descomprimir el archivo creado en el comando anterior, podríamos ejecutar lo siguiente:
tar xvf archivo.tar
Este comando es usado para buscar un patrón dentro de un archivo de texto. Podríamos utilizarlo, por ejemplo, para mostrar las líneas de un archivo de logs donde aparezca solo una IP en concreto.
En el siguiente comando, estaríamos mostrando solo las líneas donde aparece la IP 1.2.3.4 dentro del archivo de logs log.txt:
grep '1.2.3.4' log.txt
Como indica el nombre del comando sort, se utiliza para ordenar la salida de un archivo. Imaginemos que tenemos un archivo llamado numbers.txt con el siguiente contenido:
4
5
2
1
6
3
Si quisiéramos ver el archivo ordenado, podríamos utilizar el siguiente comando:
sort numbers.txt
Veremos como la salida recibida es la siguiente:
1
2
3
4
5
6
Este comando se utiliza para ejecutar un programa o comando de forma periódica, mostrando la salida en pantalla completa en la terminal que estemos utilizando.
La utilización del comando sería el siguiente:
watch 'comando a ejecutar'
Por ejemplo, podríamos mostrar la memoria RAM libre y utilizada del servidor cada 5 segundos con el siguiente comando:
watch -n5 'free -m'
Con ssh podremos conectarnos de forma remota a un servidor utilizando un usuario en específico.
La utilización más básica de este comando es indicando el usuario y IP del servidor separados por el carácter '@':
ssh [email protected]
También podemos conectarnos a un puerto en específico con la opción -p, por ejemplo si nuestro servidor usa el puerto 2200 para el servicio ssh, ejecutaríamos el siguiente comando:
ssh -p 2200 [email protected]
El comando service nos será muy útil cuando tengamos que gestionar algún servicio de nuestro servidor. Las principales acciones que podemos hacer a un servicio con este comando son:
A continuación puedes ver ejemplos de como usaríamos el comando service para hacer las acciones que acabas de ver sobre el servicio mysql en ese mismo orden:
service mysql start
service mysql stop
service mysql status
service mysql restart
service mysql reload
Este comando nos permitirá ver todos los procesos que están siendo ejecutados en nuestro sistema en ese momento por nuestro usuario:
ps
A este comando es muy común añadirle las opciones -e y -f. La primera nos permitirá ver todos los procesos que se están ejecutando por todos los usuarios del sistema. La segunda nos mostrará todos los procesos con mayor detalle:
ps -ef
DF indica el espacio en disco, el disponible, usado y total:
df -h
DU sirve para saber el espacio que ocupa un archivo a un directorio:
du /mi_directorio
Si lo que quieres es saber cuanto ocupan los archivos con una misma extensión (con -s), lo podrás saber:
du -s *.txt
Sirve para encontrar un archivo. Por defecto, el comando nos mostraría una lista de todos los directorios y archivos a partir del directorio donde nos encontremos:
find -name nombre_archivo
Con echo podremos mostrar un texto por la pantalla. Por ejemplo, para mostrar Hello World haríamos así:
echo 'Hello World'
Suele ser común el querer redirigir la salida del comando echo hacia un archivo de texto, en este caso podríamos hacer:
echo 'Hello World' > archivo.txt
Si algo no funciona, este comando te será de gran ayuda, primero tendremos qué saber que procesos se están ejecutando con:
kill -l
Luego miraremos el número del proceso que nos causa problemas y lo cerraremos:
kill -l 5
Con MAN seguido del comando que quieras, obtendrás la ayuda necesaria, así como diferentes combinaciones del comando en cuestión:
man du
Con sudo podremos ejecutar cualquier comando como usuario administrador (siempre que tengamos su contraseña). Por ejemplo para modificar un archivo protegido del usuario root haríamos lo siguiente:
sudo nano /root/archivo.txt
Sirve para cambiar de usuario, te pedirá la contraseña para realizar el cambio:
su otro_usuario
Con este comando saldrás del terminal, cerrando el mismo:
exit
Recuerda que con las fechas (arriba y abajo) obtendrás un histórico de todo lo que has escrito en el terminal, de esta manera, te ahorrarás, volver a escribirlo.
Si no dispones aun de un servidor Cloud con sistema operativo Linux puedes desplegarlo fácilmente con SW Hosting.
cta:cloud_so