Comandos Básicos De Linux
Hola lectores de la ReNaTa, hoy les vamos a mencionar el uso de comandos básicos en Linux, la terminal en sistemas operativos Linux es una herramienta muy eficiente y poderosa, pero hay que saber moverse en ella y mas si no estamos en un ambiente gráfico, para eso veremos los un listado de comandos con ejemplos muy prácticos, comencemos.
Comencemos con comandos que van a ser útiles para movernos en la terminal
cd
del ingles “change directory o cambiar directorio”, nos ayudara a movilizarnos entre directorios
Ejemplo
supongamos que nos queremos cambiar de directorio y abrir el de música, esto lo podemos hacer escribiendo cd musica/
[luisa@luisa ~]$ ls
musica
[luisa@luisa ~]$ cd musica/
sabremos que nos hemos cambiado de directorio ya que la ruta en nuestro usuario ha cambiado de home que se reconoce por una tilde “~” a música, podemos seguir abriendo n cantidad de directorios, siempre y cuando existan.
[luisa@luisa ~]$ cd musica/
[luisa@luisa musica]$ cd pop/
[luisa@luisa pop]$
cd ..
El comando cd .. nos regresa un directorio
Ejemplo si queremos cambia del directorio musica a home solo tenemos que ejecutar cd ..
[luisa@luisa musica]$ cd ..
[luisa@luisa ~]$
pwd
Nos ayuda a saber donde estamos ubicados actualmente, es muy útil cuando no sabes la ruta completa en donde estas
[luisa@luisa pop]$ pwd
/home/luisa/musica/pop
[luisa@luisa pop]$
en este ejemplo se muestra la ruta competa del directorio en donde estamos.
[luisa@luisa VPN]$ pwd
/etc/NetworkManager/VPN
[luisa@luisa VPN]$
Una vez que sabemos movernos en la terminal el siguiente paso es saber listar los archivos asi como también la creación de directorios.
ls
muestra los archivos de un directorio
Ejemplo
[luisa@luisa ~]$ ls
musica
[luisa@luisa ~]$
En este ejemplo se muestran los archivos que hay en home, que solamente es el directorio música,
pero que pasa si queremos ver los directorios de otro lugar sin cambiar de ruta, se podrá?
Afortunadamente si querido lector, la terminal tiene un alcance maravilloso y esto se puede obtener gracias a las rutas absolutas, pero que son?, SIEMPRE empiezan desde la raíz, es decir la /, y contiene todos los directorios que hay desde la raíz hasta el archivo o directorio que queremos indica
[luisa@luisa ~]$ ls
musica
[luisa@luisa ~]$ ls /etc/NetworkManager/
conf.d
[luisa@luisa ~]$
como se puede observar seguimos en home, pero hemos listado los directorios y archivos que hay en NetworkManager
mkdir
Crear un directorio nuevo es sencillo, solo tecleamos mkdir seguido del nombre del directorio y se creara un directorio en la ruta actual.
Ejemplo
[luisa@luisa ~]$ mkdir comida
[luisa@luisa ~]$ ls
comida
[luisa@luisa ~]$
Estamos ubicados en home lo sabemos porque tenemos la tilde “~” en nuestro usuario, vamos a crear un directorio llamado comida y lo listaremos con ls.
[luisa@luisa ~]$ mkdir comida
[luisa@luisa ~]$ ls
comida
[luisa@luisa ~]$
Fue fácil no?, pero y si queremos crear múltiples carpetas? Como lo podríamos hacer, preguntando al que sabe “man”, nos dice que “-p no error if existing, make parent directories as needed”, el argumento -p nos ayuda a crear n directorios, hay dos formas distintas de crear la primera seria anidada donde se crean directorio dentro de otro directorio así hasta las que se requieran y la segunda crear un director “padre”, donde puede contener n directorios hijos, a continuación se mostraran los ejemplos.
Forma anidada
[luisa@luisa ~]$ mkdir -p dir1/dir2/dir3/dir4
para crear directorios de manera anidada es poner el nombre del directorio seguido de raiz “/”así hasta n directorios.
Forma directorio padre
[luisa@luisa ~]$ mkdir -p dirPadre/{dirHijo1,dirHijo2,dirHijo3}
para crear directorios de esta manera el directorio padre seguido de / y los directorios hijos dentro del paréntesis separadas por una coma.
Importante
no separar el nombre del directorio de la coma, de lo contrario la creara de manera que este al mismo nivel que el directorio padre
cat
El comando cat tiene muchas funciones, pero la mas notable de ellas el la concatenación de caracteres mostrándolas en pantalla, según man
CAT(1)
NAME
cat – concatenate files and print on the standard output
Ejemplo
tenemos un archivo de texto y se quiere saber que contiene
solo con ejecutar cat nombreDelArchivo.extencion sabremos su contenido
[luisa@luisa ~]$ cat texto.txt
touch
Actualiza los registros de fecha y hora, con la fecha y hora actual de los ficheros indicados como argumento. Si el fichero no existe, el comando touch lo crea. Su uso más frecuente es para crear archivos.
Como se puede observar al ejecutar touch seguido del nombre de mi archivo + la exención se crea nuestro archivo y lo podemos observar cuando listemos con ls, touch cuenta con identificadores que nos ayudaran a actualizar los registros de fecha y hora como se mencionaba al inicio, a continuación se mostraran.
[luisa@luisa ~]$ touch miArchivo.txt
-a ambia solamente la fecha de acceso
-c, –no-create no crea ningún fichero
-d, –date=CADENA examina y utiliza CADENA en lugar de la fecha actual
-f no tiene efecto)
-h, –no-dereference afecta a cada enlace simbólico en lugar de a los
ficheros referidos (solamente es útil en sistemas que pueden cambiar el propietario de un enlace simbólico)
-m cambia solamente la fecha de modificación
-r, –reference=FICHERO utiliza la fecha de este FICHERO en lugar de la fecha actual
-t FECHA utiliza [[SS]AA]MMDDhhmm[.ss] en lugar de la fecha actual
–time=PALABRA establece la fecha dada por PALABRA:
PALABRA es access, atime o use: equivale a -a
PALABRA es modify o mtime: equivale a -m
tomado de (man,2017)
Ejemplo
vamos a cambiar la fecha de acceso y modificación de un archivo de texto
para poder ver los cambios en el documento listemos mas detalladamente con “-l”, nos dice que fue creado el 16 de febrero, vamos a cambiarlo al 1 de enero del 2015
[luisa@luisa ~]$ touch -d ‘1 feb 2015’ holamundo.c
echo
-Display a line of text (man, 2017)
El comando echo es un comando sencillo que se encarga de repetir lo que recibe ejemplo
[luisa@luisa ~]$ echo Reserva Nacional De Talentos
Reserva Nacional De Talentos
[luisa@luisa ~]$
pero no hay que subestimar a este comando, tiene múltiples aplicaciones como la creación de archivos de texto, e incluso con texto, es fantástico no!!, veamos otro ejemplo
[luisa@luisa ~]$ echo «Saludos Lectores» > hola.txt
echo va a dirigir todo lo que este en comas “”, al archivo hola.txt, aplicando el comando cat vemos que en verdad paso todo a nuestro archivo, pero ahora podemos seguir ingresando texto a nuestro archivo?, esto también es posible, solo hay que agregar otro mayor que “>>”
[luisa@luisa ~]$ echo «La renata.com» >> hola.txt
cp
cp es uno de los comandos mas utilizados su función es la de copiar ficheros
Ejemplo
vamos a copiar a los archivos alumnos y hola al directorio respaldo el comando quedaría
cp alumnos.txt hola.txt respaldo/
nótese que no indicamos la ruta completa de nuestro directorio, puesto que esta ahí, a esto se le considera una “ruta relativa”
[luisa@luisa ~]$ cp hola.txt alumnos.txt respaldo/
cp también puede copiar directorios utilizaremos el identificador -R para poder hacer una copia
[luisa@luisa ~]$ cp -R imagenes/ respaldo/
mv
El comando mv se utiliza para mover ficheros, tiene la misma sintaxis que el comando cp
movamos unos archivos de manera rápida y divertida para eso nos valdremos de los “Comodines” denotado por “*”
donde mv *txt → no importa como se llamen tomara todo con la exención .txt
[luisa@luisa ~]$ mv *.txt imagenes/
para mover directorios no es necesario la utilización de un identificador
el comando quedaría mv directorioOrigen/ directorioDestino/
head
comando que sirve para leer las 10 primeras lineas de un archivo
Ejemplo
[luisa@luisa ~]$ head lista_de_compras.txt
Al momento de ejecutar head aparecerán las primeras 10 lineas del texto, pero se podrá controlar el numero de impresión de lineas?, la respuesta es afirmativa, head también tiene identificadores como -n nos ayuda a delimitar el numero de lineas que queremos imprimir
Al sustituir la n por un numero, en este caso 5 ahora solo imprira las 5 primeras lineas de la lista de compras.
luisa@luisa ~]$ head -5 lista_de_compras.txt
tail
El comando tail podríamos decir que es el inverso a head, puesto que ahora va a imprimirlas ultimas lineas, se ejecuta de la misma manera.
Ejemplo
luisa@luisa ~]$ tail lista_de_compras.txt
Al igual que head se puede hacer uso del identificador -n, el uso de head y tail nos ayudaran a reducir tiempos de búsqueda ya que no es necesario ver un archivo de manera completa
rm
se utiliza para borrar archivos, directorios su sintaxis es la siguiente
para archivos
rm nombre del archivo
para directorio
rmdir nombre del directorio
o se puede utilizar su variante que es
rm -R nombre del directorio
-r indica que es un proceso recursivo
whoami
pone en pantalla el nombre de la maquina
[luisa@luisa ~]$ whoami
luisa
[luisa@luisa ~]$
history
El comando history muestra todos los comandos usados a lo largo de la historia del usuario
[luisa@luisa ~]$ history
El resultado son comandos que se muestran de corrido y si has escrito muchos comandos va a ser muy difícil verlos, pero esto se puede solucionar con la ayuda de pype “|” y el comando less, pype funciona como una tubería enlazando con less para mostrar en pantalla todo el texto disponible, less nos permite una mayor capacidad de navegación por el fichero “avanzar y retroceder”
el resultado final seria
[luisa@luisa ~]$ history | less
wc
wc – print newline, word, and byte counts for each file (man,2017)
El comando man nos imprime en pantalla la cantidad de caracteres, letras, lineas, bytes y lineas máximas de un archivo.
-c imprime cuenta de bytes
-m imprime cuantos caracteres hay
-l imprime cuantos saltos de linea hay
-L imprime la linea mas larga
-w imprime la cantidad de palabras
forma de ejecutar
wc -comando nombre del archivo
Ejemplo
vamos a ver el contenido y cuantas palabras tiene el archivo hola
[luisa@luisa ~]$ wc -w hola
5 hola.txt
[luisa@luisa ~]$
cuando se ejecuta wc -w se tiene 5 palabras, es fantástico no!.
cut
Modo de empleo: cut OPCIÓN… [FICHERO]…
Extrae las partes seleccionadas de cada FICHERO en la salida estándar: (man,2017)
El comando cut tiene opciones para usar
-c Especifica las posiciones de los caracteres
-b Especifica las posiciones de los delimitadores
-d flags Especifica los delimitadores y campos
si se quiere extraer la primera posición de cada campo
[luisa@luisa ~]$ cut -c1 lista.txt
para ejecutar el comando se necesita especificar la posición en este caso le dimos como parámetro 1, pero podremos extraer los primeros n posiciones?, claro que si, el comando es muy poderoso podemos acotar un rango con un guion esto indicara cuantas posiciones van a ser extraídas.
[luisa@luisa ~]$ cut -c-5 lista.txt
df
El comando df muestra el uso del disco duro y otras informaciones como punto de montaje y sistema de ficheros, df tambien cuenta con identificadores para que se pueda tener una mejor lectura
-k utiliza unidades de 1024 bytes en vez de las determinadas de 512 bytes para mostrar el uso de disco
-P Produce una salida en el formato descrito en la sección de la salida estándar (STDOUT)
t Incluye todas las cifras del espacio asignad
-i Muestra los i-nodos usados y disponible
-h Muestra espacio en unidades comunes(KB, MB o GB)
manera de ejecutarlo
[luisa@luisa ~]$ fd -h
nos dará una salida en forma de unidades comunes
chmod
Es un comando que nos ayudara a cambiar los permisos de un archivo, pero como es que funcionan?
En los sistemas Linux hay 3 tipos de atributos son lectura, escritura y ejecución.
lectura “read”
Denotado por una “r”
Si se tiene permiso de lectura de un archivo, se puede ver su contenido.
escritura “write”
Denotado por una “w”
Si se tiene permiso de escritura de un archivo, se puede modificar el archivo como el agregar, sobrescribir o borrar su contenido.
ejecución “execute”
Denotado por una “x”
Si e tiene permiso de ejecución, el sistema operativo podrá ejecutar sin ningún programa
[luisa@luisa ~]$ ls -l
-rw-rw-r–, 1,luisa luisa 159 feb 16 23:06
Como se puede ver al momento de dar un listado completo podemos ver los atributos que tiene el archivo lista, desglosaremos todavía mas los atributos, en los sistemas Linux no solo en usuario puede tener permisos de lectura, escritura y ejecución, sino que también lo puede hacer “grupos” y “otros”, es por eso que se muestran repetidas varias “r” y “w”, chmod actuá dando permisos sobre esos 3, te estarás preguntando como dar permisos en usuario, grupos y otros, es muy sencillo, los permisos se rigen bajo el sistema octal y se sabe que va del 0-7, entonces podríamos decir que:
lectura = 4
Escritura = 2
Ejecución = 1
Valor octal |
Tipo de permiso |
7 |
Lectura, escritura y ejecución |
6 |
Lectura y escritura |
5 |
Lectura y ejecución |
4 |
lectura |
3 |
Escritura y ejecución |
2 |
escritura |
1 |
ejecución |
0 |
No hay permisos |
Ahora veamos unos ejemplos
vamos a poner sin permisos al archivo lista
[luisa@luisa ~]$ chmod 000 lista.txt
[luisa@luisa ~]$ ls -l lista.txt
[luisa@luisa ~]$ ———-, luisa luisa 159 feb 15 23: 20:00 lista.txt
[luisa@luisa ~]$
vemos que al momento de listar no cuenta con ningún atributo, ahora pongamos solo permisos de lectura solo para el usuario, lo vamos hacer con chmod 400 lista, el primero y segundo dígito nos marcan cero nos dice que siguen sin permisos grupo y otros.
[luisa@luisa ~]$ chmod 400 lista.txt
[luisa@luisa ~]$ ls -l lista.txt
[luisa@luisa ~]$ -r——–, luisa luisa 159 feb 15 23: 20:00 lista.txt
[luisa@luisa ~]$
Comprobemos que en realidad no tiene otro permiso intentemos añadir mas artículos a la lista
[luisa@luisa ~]$ echo «Comida mascota» >> lista.txt
-bash: lista.txt: Permiso denegado
[luisa@luisa ~]$
ahora cambiemos los permisos que tiene a solo lectura y escritura e ingresemos a la lista la comida de mascota
[luisa@luisa ~]$ chmod 600 lista.txt
[luisa@luisa ~]$ ls -l lista.txt
[luisa@luisa ~]$ -rw——–, luisa luisa 159 feb 15 23: 20:00 lista.txt
[luisa@luisa ~]$ echo «Comida mascota» >> lista.txt
[luisa@luisa ~]$
como se puede ver solo se ha estado trabajando en los permisos que puede tener el usuario como ejemplo final demos al archivo lista permiso de lectura, escritura y ejecución en usuario y grupo y en otros solo lectura y escritura.
Si seguimos las reglas tendremos que completar el valor octal para usuario, grupo y otros
usuario = 7
grupo = 7
otro = 5
el resultado final seria chmod 775 lista.txt
w
w – Show who is logged on and what they are doing. (man,2017)
nos muestra quien esta logueado en nuestro sistema y que esta haciendo
Ejemplo
[luisa@luisa ~]$ w
columna user lista al los usuarios activos
columna tty nos muestra que terminal se esta usando
la columna login@ muestra la hora en que se accedio al sistema
las columnas IDLE, JCPU,PCPU muestra los recursos que esta ocupando el usuarios
free
muestra en pantalla la cantidad de memoria ram utilizada
[luisa@luisa ~]$ free
pero no lo muestra en una manera mas facil de leer, si se desea poner un tipo de cantidad en especifico free cuenta con ellos
-h “para personas”
-b “En bytes”
-k “Kilo”
-m “mega”
-g “human”
si volvemos a usar free y con el argumento -h podemos ver que es mas sencillo la lectura de la cantidad de memoria RAM
[luisa@luisa musica]$ free -h
tty
nos muestra en el numero de terminal en que estamos, el cambio de terminales se da mediante la combinación de teclas ctrl+f1,f2,f3,f4,..,f9
[luisa@luisa ~]$ tty
/dev/tty1
aquí esta en tty1 “Terminal 1”
impresionante amigo, has aprendido mucho y plasmaste tu conocimiento de una manera clara, pude comprender gran parte del articulo solo con la lectura, sumamente interesante, sigue trabajando duro y mucho éxito.
muy bien!! está muy completo
«Nota importante» David, en GNU/Linux la línea de commandos «CLI» es sensible a mayúsculas por lo que te sugiero hagas los cambios correspondientes en los commandos y donde se requiera.