Comandos Básicos Linux
Comandos Básicos Linux
pwd
Con el comando pwd podemos ver la ruta absoluta del directorio actual sobre el que estamos
trabajando.
ls
Con el comando ls podemos listar todo el contenido de un directorio. Por defecto muestra el
contenido del directorio actual a no ser que le indiquemos lo contrario.
Un ejemplo para listar los ficheros de otro directorio sería ls Escritorio/
Para ver todas las variantes del comando ls hay que poner ls --help, pero las más usadas son:
• ls -a → Muestra los ficheros que estén ocultos.
• ls -al → Muestra todos los archivos y directorios con información detallada(permisos,
tamaño, propietario)
• ls -R → Muestra todos los archivos en los subdirectorios.
cd
Con el comando cd podemos navegar por los directorios de Linux. Para usar el comando cd le
podemos pasar tanto la ruta completa como el nombre del directorio, siempre y cuando este esté en
el directorio actual de trabajo.
Actualmente estamos en la ruta /home/nombreusuario, como hemos visto antes está la carpeta
Descargas así que para acceder a ella tenemos que poner cd Descargas/ en cambio imagina que
queremos ver la carpeta /var/www/ esta carpeta no está en nuestro directorio actual así que tenemos
que poner la ruta absoluta. Ejemplo, cd /var/www
mv
El comando mv tiene dos funciones:
• Mover un archivo o directorio.
• Renombrar un archivo o directorio.
La sintaxis del comando mv es la misma que la del comando cp. Si lo que queremos es renombrar
un archivo tenemos que poner que la dirección donde se copia es la misma, por ejemplo si
queremos cambiar el nombre de un archivo sería:
mv archivo1 nuevoNombreArchivo1
mv Escritorio/pagina.html Escritorio/index.html
En estos dos ejemplos cambiaríamos el nombre del archivo1 por nuevoNombreArchivo1 y de
página.html del directorio Escritorio a index.html.
rmdir
El comando rmdir se utiliza para eliminar un directorio. Sólo permite borrar directorios vacíos, si
quieres borrar uno que lleva archivos dentro hay que usar el comando rm -r.
Ver contenido, crear y borrar archivos
cat
El comando cat nos permite ver el contenido de un archivo de salida estándar. Usarlo es muy
sencillo, solo hay que poner el comando cat seguido de la ruta del fichero.
Algunos ejemplos son:
• cat /etc/passwd → Muestra el contenido del fichero passwd que se encuentra en otra ruta.
• cat miTexto.txt → Muestra el contenido del fichero miTexto.txt que está en nuestro
directorio actual.
Otras formas de usar el comando cat son:
• cat > nombreArchivo → Crea un archivo nuevo con el nombre y extensión que le
pongamos y nos permite escribir en él.
• cat archivo1 archivo2 > archivo3 → Une el archivo1 y 2 en uno nuevo (archivo3).
touch
El comando touch nos permite crear un nuevo archivo en blanco. Un ejemplo sería touch
/home/tuUsuario/Escritorio/miFichero.txt. Esto crearía el fichero miFichero.txt en el directorio
Escritorio.
rm
El comando rm se utiliza para eliminar ficheros y/o directorios.
Si queremos eliminar un fichero sería rm fichero, en cambio si queremos eliminar un directorio que
no está vacío tenemos que poner rm -r directorio
Localizar y buscar
locate
Con el comando locate puedes localizar un archivo. Si queremos que distinga entre mayúsculas y
minúsculas hay que hacer uso del parámetro -i. Un truco es que si no sabes el nombre, pero sabes la
extensión o viceversa puedes hacer uso del asterisco.
Ejemplo 1: locate fichero.pdf
Ejemplo 2: locate *.pdf
Ejemplo 3: locate fichero.*
find
Con el comando find podemos hacer lo mismo que con locate, pero además te deja buscar en la
ruta que le indques. Ejemplo: find /home/ -name fichero1.txt Esto busca el archivo fichero1.txt en
el directorio /home/ y en sus subcarpetas.
grep
El comando grep es muy usado ya que te permite entre el texto de un archivo. Por ejemplo grep
@jotta_app Escritorio/fichero1.txt Esto buscará @jotta_app en el fichero fichero1.txt y nos
mostrará la linea en la que se encuentra.
du
Con el comando du podemos ver cuanto espacio ocupa un archivo o directorio. Para verlo en
formato bytes, kilobytes y megabytes hay que usar el parámetro -h.
Por ejemplo, du -h Descargas/
wc
El comando wc te muestra el tamaño de un fichero en tres formas diferentes, por número de
líneas, número de palabras y número de caracteres.
tail
El comando tail es igual que head, pero en vez de mostrar las 10 primeras líneas muestra las 10
últimas, al igual que el anterior esto puede cambiarse.
Ejemplo mostrar 10 líneas → tail fichero.txt
Ejemplo mostrar 7 líneas → tail -n 7 fichero.txt
diff
El comando diff compara el contenido de dos archivos línea por línea y nos muestra las líneas que
no coinciden. En programación se utilizan programas que hacen esto para comparar el código
cuando subimos una actualización.
Una forma simple de usar el comando diff es → diff fichero1.txt fichero2.txt
echo
El comando echo se utiliza para agregar datos a un archivo. Este comando se utiliza siempre que
queremos hacer un ataque MITM. Por ejemplo, si ponemos el siguiente comando echo Sígueme en
Instagram @jotta_app >> fichero2.txt nos añadirá la frase Sígueme en Instagram @jotta_app
al final del documento. Si por lo contrario en vez de usar >> usamos > lo que hacemos es sustituir
todo el contenido por esa frase. OJO CON ESO
Comprimir y descomprimir
zip
El comando zip se utiliza para comprimir archivos. La sintaxis es muy sencilla → zip <Nombre
fichero comprimido> <Fichero que queremos comprimir>
Por ejemplo → zip ficheroComprimido.zip fichero2.txt
Esto comprime el fichero fichero2.txt y genera ficheroComprimido.zip.
unzip
Si el comando zip se usaba para comprimir el comando unzip se utiliza para descomprimir. Por
ejemplo, unzip ficheroComprimido.zip
Permisos
Antes de ver los comandos te quiero dar una breve introducción a como leer los permisos, estos
están representados sobre una cadena de 10 caracteres: - - - - - - - - - -
• El primero hace referencia al tipo de archivo.
◦ - → Archivo.
◦ d → Directorio.
◦ l → Enlace.
• Los tres siguientes (color rojo) hacen referencia a los permisos del propietario,
• Los tres siguientes al rojo (color verde) hacen referencia a los permisos del grupo del
propietario.
• Los 3 últimos (color azul) hace referencia a los permisos del resto de usuarios del sistema,
es decir, ni el usuario propietario ni los que compartan grupo con el propietario.
Un ejemplo sería → drwxrwxrwx
Esto nos indicaría que es un directorio, que el propietario tiene permisos de lectura (r), escritura (w)
y ejecución (x) y lo mismo con los permisos del grupo y del resto de usuarios
Otro ejemplo sería → -rw-r--r--
Esto nos indicaría que es un archivo, que el propietario tiene permisos de lectura (r) y escritura (w)
y que tanto el grupo al que pertenece como el resto de usuarios del sistema solo tienen permiso de
lectura.
sudo
El comando sudo (Super User Do) es uno de los más utilizados y de los que más me vas a ver usar.
Este comando te permite realizar tareas que requieren permisos de administrador. Una vez que
pongas el comando en la terminal te pedirá la contraseña de administrador.
chmod
El comando chmod se utiliza para cambiar los permisos de escritura (w), lectura (r) y ejecución (x)
de archivos y directorios. Este lo voy a explicar más a fondo ya que es importante conocerlo bien.
La sintaxis es: chmod <a,u,g,o> <+,-> <r,w,x> fichero
Puedes elegir una o varias de las opciones. Te voy a explicar que es cada bloque ;)
• <a,u,g,o> → Indica a qué usuarios afectará el cambio de permisos.
◦ a → A todos los usuarios (all).
◦ u → Solo afectará al propietario (user).
◦ g → Sólo afectará a los usuarios del grupo del propietario (group).
◦ o → Afectará al resto de usuarios del sistema (other).
• <+, -> → Indica si se activa o se desactiva el permiso correspondiente.
• <r,w,x> → Indica si queremos dar permisos de lectura (r), escritura (w) o ejecución (x).
Por ejemplo, si quisiéramos dar permisos de escritura a todos los usuarios sería:
chmod a+r fichero.txt
Si sigues mis vídeos de YouTube e Instagram verás que cuando tengo que dar permisos a un fichero
para poder ejecutarlo siempre uso chmod u+x fichero. Con esto me estoy dando permisos de
ejecución, pero solo a mí no al resto de usuarios.
Otro ejemplo sería chmod og-x fichero.txt, con esto anularíamos el permiso de ejecución a todos
los usuarios menos al propietario.
También se puede utilizar el comando chmod con códigos numéricos en octal, seguro que a más de
uno lo has visto poner chmod 777 fichero.txt.
Por ejemplo, chmod 700 fichero.txt Esto asignaría todos los permisos al usuario.
chmod 777 fichero.txt asignaría todos los permisos al usuario, al grupo y al resto de usuarios.
chmod 644 fichero.txt asignaría permisos de lectura y escritura al usuario y solo de lectura tanto al
grupo como al resto de usuarios.
chown
El comando chown te permite cambiar o transferir la propiedad de un archivo al nombre de usuario
especificado, es decir, si el usuario Pedro ha creado un fichero y ahora quieres robárselo y decir que
es tuyo tendrías que poner chown usuario2 archivo.txt Esto hará que el usuario2 sea el propietario
del archivo.txt
Procesos
ps aux
Con el comando ps aux podemos ver todos los procesos que están corriendo, no solo en nuestro
usuario local sino también el de todos los usuarios.
top
El comando top nos mostrará una lista de los procesos en ejecución y la cantidad de CPU que
utiliza cada proceso.
kill
El comando kill se utiliza para matar un proceso, por ejemplo si un programa no responde podemos
ver su PID (Lo puedes ver los comandos anteriores), se lo pasamos al comando kill y lo matará.
Hay 64 señales que podemos usar, pero las más utilizadas son:
• SIGKILL (9) → Obliga al programa a detenerse perdiendo la información que no esté
guardada.
• SIGTERM (15) → Solicita al programa que deje de ejecutarse y te da tiempo para guardar
todo el progreso. Esta señal es la que se utiliza por defecto si no la especificas en el
comando kill.
La sintaxis sería → kill <señal> PID
Por ejemplo → kill SIGKILL 3
Información
uname
El comando uname te mostrará información detallada sobre tu sistema Linux cómo por ejemplo la
versión del kernel, procesador, etc...
Por ejemplo, uname -a
who
El comando who lista los usuarios conectados.
whoami
El comando whoami muestra el nombre del usuario actual.
id
El comando id es muy utilizado sobre todo en el pentesting para ver que cuenta estamos usando, el
nombre y al grupo que pertenece.
time
El comando time nos indica la duración de la ejecución de un comando, es decir, el tiempo que
tarda en PC en ejecutar un comando. Por ejemplo, time ifconfig.
ifconfig
El comando ifconfig es muy sencillo y no requiere mucha explicación, nos permite ver y configurar
la interfaz de red.
hostname
El comando hostname te permite conocer el nombre de tu host.
history
El comando history te permite ver los comandos que has usado anteriormente.
man
El comando man será tu gran amigo cuando no sepas como utilizar un comando ya que muestra el
manual de ese comando. Usarlo es tan sencillo como poner man y el comando.
Por ejemplo, man uname
Más comandos
ping
El comando ping te permite verificar el estado de conectividad a un servidor, esto se realiza
también para ser si una máquina tiene conexión. Por ejemplo, ping google.es
También se le puede hacer a una máquina poniendo su IP, por ejemplo ping 192.168.1.96
wget
Con el comando wget puedes descargar archivos de Internet.
La sintaxis es muy sencilla → wget <enlace de descarga>
clear
Si no conocías este comando ya podrás dejar de cerrar la terminal y abrir una nueva cada vez que la
terminal se te llena de comandos e información que ya no necesitas. El comando clear borrar todo
el contenido de la terminal dejándola como recién abierta.
Extra
Pipes o Tuberías
Las pipes o tuberías son formas de conectar la salida estándar de un programa con la entrada
estándar de otro. No te rayes si no lo entiendes, esto lo aclaramos con un par de ejemplos. Las
tuberías se declaran con este símbolo | (Barra vertical)
Por ejemplo, vamos a ver los ficheros que tenemos en nuestro directorio actual con ls, pero que solo
nos muestre los que coincidan con la cadena de texto que le pasamos por grep.
ls | grep fiche
Esto nos va a mostrar solo el contenido de nuestro directorio actual que coincida con el la cadena
fiche.