Subido por Eber Luque

La Terminal de Linux

Anuncio
La Terminal de
Linux (I). Como
Utilizar la Línea
de Comandos
Muy buenas lector, si eres usuario de alguna distribución GNU/Linux y
quieres profundizar mas en el uso del sistema, una de las cosas que
debes aprender si o sí es a manejarte bien con la terminal o interfaz
de línea de comandos. Si quieres conocer a nivel más teórico los
diferentes conceptos relativos a la terminal, te recomiendo la lectura
de la pagina que te acabo de enlazar.
Si quieres pasar más al nivel practico, con este primer post estreno
una serie de guías dedicadas a profundizar en el uso de la
consola y a explorar todas las posibilidades punto por punto. En este
caso me voy a centrar en los fundamentos básicos de su uso y en
algunos comandos básicos con los que puedes empezar a
familiarizarte con ella. Al final tienes enlazados el resto de artículos de
la serie.
REPORT THIS AD
Tabla de contenidos:
1. Como acceder a la consola
2. Sudo y Su. Ejecutar comandos como Superusuario
1. Sudo
2.
3.
3.
1.
2.
3.
4.
5.
6.
7.
8.
9.
4.
Su
Prompt de usuario y superusuario
Algunos comandos para empezar con buen pie
Man
Uname
Who
History
Clear
Ping
Date
Curl wttr.in
Exit
Esto continua: aquí tienes el resto de posts de esta serie
Como Acceder a la Consola
Hay básicamente dos maneras de usar la terminal en GNU/Linux. Por
un lado, puedes usar las interfaces TTY, mientras que por otro lado,
están los emuladores o PTS, que permiten usar una interfaz de línea
de comandos de manera virtual desde la propia interfaz gráfica de
usuario.
Para acceder a las diferentes sesiones TTY debes utilizar las
combinaciones de teclado ‘CTRL+ALT+F1’, para la TTY1,
hasta ‘CTRL+ALT+F7’. Para iniciar sesión deberás introducir tu
nombre de usuario y contraseña, y a partir de ahí ya puedes empezar
a interactuar con el interprete de comandos.
Otra manera más práctica de utilizar la línea de comandos es, como
digo al principio, mediante el emulador de terminal desde la propia
sesión gráfica. En este caso, basta con acceder a tu aplicación de
terminal favorita y listos. No es necesario que inicies sesión aquí, ya
que ya reconoce el usuario con el que has iniciado la propia sesión
gráfica.
Sudo y Su. Ejecutar Comandos
Como Otro Usuario
Muchos comandos invocan acciones que solo pueden ser realizadas
por el usuario root o superusuario. Esto significa que, si intentas
instalar un paquete en tu sistema, y por ello haces un apt install
<paquete>, desde la sesión de tu usuario normal no se te permitirá.
Para ello, deberías primero hacer un log-in con el usuario root (en la
consola) y posteriormente realizar esta acción desde este nivel de
privilegios. Para agilizar esta tarea, dispones de herramientas
como sudo o su, ambas similares a la práctica pero diferentes en su
concepción.
Sudo
De sudo se podrían escribir líneas y líneas, pero para lo que es el
propósito de este post, quédate con la idea de que, lo que hace,
es ejecutar el comando que lo sigue utilizando, temporalmente,
los privilegios de otro usuario. Este usuario, en la mayoría de
usuarios suele ser el superusuario, pero se puede configurar para que
sea cualquier otro.
Hay distribuciones, sobretodos aquellas orientadas a usuarios con
menos conocimientos técnicos (Ubuntu y gran parte de sus derivados
directos son un claro ejemplo) que, por motivos de seguridad (o de
simplicidad) optan por mantener la cuenta de superusuario
deshabilitada.
A cambio, utilizan sudo configurado de tal modo que el usuario
estándar pueda utilizarlo para adquirir, temporalmente, los permisos
de superusuario.
Su uso consiste únicamente en ser introducido delante del comando
en cuestión, para indicar que ese comando se va a ejecutar bajo los
permisos de otro usuario (por defecto, root).
$ sudo <comando>
Su
La utilidad su (de “switch user”) es algo diferente. Como su nombre
indica, lo que permite es hacer un cambio de sesión de usuario,
pero sin necesidad de cerrar la sesión del usuario actual. Se
utiliza seguido del nombre de usuario con el que se quiere inicial
sesión.
Es muy común utilizarlo en aquellas distribuciones que prefieren
mantener abierta la cuenta de superusuario para que cualquier
usuario autorizado para usarlo (entendiéndose que conozca la
contraseña) pueda hacer un salto de sesión y hacer un log-in como
root.
En este ultimo caso, la sintaxis es muy simple. Basta con teclear la
palabra su, y automáticamente el sistema te pedirá las contraseña
necesaria para hacer el cambio de sesión.
$ su
#
El cambio de forma del promp es un claro indicativo que te puede
servir para identificar rápidamente si estás en una sesión de usuario
estándar o de root.
Generalmente, se suelen dar esas dos situaciones entorno al uso de
sudo y su:


En las distribuciones que mantienen la cuenta de superusuario
bloqueada (como es el caso de Ubuntu y sus multiples derivados), se
utiliza “sudo” seguido de un determinado comando, con las
credenciales del usuario actual (que se le permite una elevación
temporal para ejecutar los comandos como root).
En las distribuciones que hacen uso de la cuenta de root, como
Debian o Fedora, se utiliza “su” para saltar de la cuenta de usuario
normal a la cuenta de superusuario. Para hacer el salto, se requiere
conocer la contraseña de root.
Sin embargo, el uso de sudo y su se puede complementar
perfectamente. De este modo, aun estando la cuenta de root
operativa, se puede configurar sudo para que determinados usuarios
puedan igualmente realizar una elevación de privilegios, si necesidad
de que tengan que conocer las credenciales de root.
Si quieres profundizar en todo esto, en este post explico con mucho
más detalle como habilitar o deshabilitar el uso de root, así como
configurar sudo para permitir o impedir que los usuarios puedan hacer
uso de él para la elevación de privilegios.
Prompt de Usuario y Superusuario
Como podrás advertir, dependiendo del usuario que esté logueado en
la sesión de la terminal, el prompt sera ligeramente distinto. De este
modo, si te encuentras logueado como usuario estándar, el prompt
sera similar a éste:
user@computer:~$
Por el contrario, si haces un log-in como superusuario (a partir del
comando sudo su), el prompt adoptará este formato:
root@computer:/home/user#
Ah, como curiosidad que seguramente te gustará saber, el prompt de
bash es personalizable en color y estructura. Si tienes curiosidad en
saber como, en este post lo tienes explicado en detalle.
De hecho no es en absoluto mala idea que, por tal de distinguir mejor
el prompt de los comandos en sí, establezcas que éste se muestre en
un color diferente. Verás que mejora en gran medida el aspecto
general de la consola.
Dicho todo esto, y habiendo hecho una justa introducción, la mejor
manera de acabar este primer post de la serie será con algunos
ejemplos sencillos para empezar a practicar con los primeros
comandos. Esto nos servirá para dar nuestro primer paso en el uso
de la consola.
Aprende tus Primeros Comandos
Realmente existen infinidad de comandos, por lo que es importante
centrarse en aquellos que te serán de mas utilidad dependiendo de
tus tareas o necesidades.
ComputerNewAge@computernewage
Consulta la previsión meteorológica de tu zona a golpe de comando:
:~$ curl wttr.in
6
5:09 - 12 jun. 2016
Información y privacidad de Twitter Ads
Ver los otros Tweets de ComputerNewAge
Antes de nada, no quiero dejarme de comentar como puedes acceder
a la línea de comandos para empezar a jugar. Tienes básicamente
dos opciones:


Acceder a una de las terminales TTY, mediante las combinaciones
de teclado ‘CTRL+ALT+F1’ hasta ‘CTRL+ALT+F7’, para acceder a
cada una de las TTY.
Abrir una ventana desde el propio entorno de escritorio,
utilizando una de las multiples aplicaciones que hacen de emulador
de terminal. Aquí tienes a numerosos ejemplos y cada entorno de
escritorio ya viene de forma predeterminada con el suyo. Para
nombrar algunos: GNOME Terminal, Konsole, Xterm, Yakuake,
Guake, etc.
Ahora ya si que puedes empezar tu mismo a practicar con tus
primeros comandos. Para empezar a ser capaz de ejecutar acciones
simples, puedes echar un rápido vistazo a los ejemplos que te
propongo. Si no es tu primera vez, seguramente ya los conocerás. En
este caso, no dejes de echar un vistazo al resto de posts de esta serie
que enlazo al final.
Man
El comando man es una pagina de manual. Debe ir acompañado del
nombre de un comando, y muestra en pantalla una completa guía
sobre el uso del comando entrado. Aquí tienes la sintaxis básica, y a
partir de ahí puedes ir probando ejemplos con varios comandos.
$ man <nombre del comando>
Esta es la sintaxis básica del comando, y a partir de ahí puedes
desplegar el manual de casi cualquier comando que se te ocurre.
$ man uname
Imprime por pantalla el manual completo del comando uname, junto
con todas sus opciones de uso.
Uname
El comando uname te da información del sistema operativo usado.
Puede incluir diferentes opciones, algunas de las cuales son ‘-a’, ‘s’, ‘-p’, ‘–m’, y ‘-o’. Puedes probar de usar algunas de ellas y observar
el output mostrado por pantalla.
$ uname
Formato simple del comando. Retorna solamente el nombre del
sistema operativo, sin especificar mas detalles.
$ uname -a
Con esta opción, podrás visualizar el nombre del sistema operativo,
junto con otros detalles básicos como la versión del kernel, la
arquitectura del sistema (si es de 32 o 64 bits) o la fecha actual entre
otros datos.
Who
El comando who muestra los usuarios logueados en el sistema. Si lo
utilizas desde la aplicación de terminal del escritorio, mostrara que tu
usuario está logueado en la sesión de terminal TTY7, correspondiente
a la interfaz gráfica de usuario, y en una sesión PTS, que no es más
que el emulador de terminal dentro de la propia interfaz gráfica.
$ who
Esta es la sintaxis básica de #who, y muestra un listado con los
usuarios logueados en el sistema junto con la fecha y hora de logueo.
$ who -b
Con esta opción obtendrás la fecha y hora del último arranque
realizado en el sistema.
History
El comando history te imprime por pantalla un listado de los últimos
comandos que se han pasado por la terminal desde la cuenta del
usuario actual.
$ history
Esta es la forma básica, y muestra un listado de todos los comandos
introducidos por la terminal, uno a uno.
$ history 10
Tienes también la opción de limitar el numero de resultados a
visualizar. En este caso, tendrás un listado con los últimos 10
comandos introducidos.
$ history | grep ls
Como no, si deseas acotar más la búsqueda, también puedes
establecer filtros por palabra contenida. En este caso, por ejemplo, se
te imprimirá por pantalla un listado de todas las órdenes introducidas
que contengan la palabra “ls”.
$ history -c
Si quieres borrar el historial de todos los comandos utilizados hasta el
momento, puedes hacerlo con un history -c.
Clear
El comando clear limpia la pantalla de la terminal pero sin borrar el
contenido. Básicamente hace un scroll hacía abajo.
$ clear
Ping
Con la orden ping podrás conocer si un cliente o servidor bajo una
determinada dirección IP está operativo o no. También te permite
conocer la latencia entre tu máquina y la IP especificada.
$ ping 192.168.1.1
En este ejemplo estamos comprobando la latencia entre nuestra
máquina y el router de la red interna en la que estamos conectados
(que típicamente se encuentra bajo la dirección IP 192.168.1.1).
$ ping www.google.com
También podemos comprobar si un determinado sitio web esta
operativo o no a partir de su url. En este caso, comprobamos la
latencia entre nuestra máquina y Google.
Date
El comando date informa sobre la fecha y hora del sistema. Es un
comando puramente informativo, útil si te encuentras en un entorno
sin interfaz gráfica.
$ date
Curl wttr.in
Con esta simple sentencia podrás consultar la previsión
meteorológica directamente desde la consola, a lo Geek.
$ curl wttr.in
Esta es el modo más fácil de utilizarlo. Te entrega directamente la
previsión de tu zona geográfica para los próximos tres días. Aparte de
esta opción básica, puedes personalizar la salida de muchas
maneras. A continuación tienes un ejemplo.
$ curl wttr.in/paris
Para consultar la previsión de una zona en concreto, basta con añadir
“/” al final seguido de la zona (como datos acepta ciudad, código de
aeropuerto o nombre de dominio). Tienes una ayuda rápida
aquí: http://wttr.in/:help.
Exit
El comando exit cierra la sesión de terminal actual del usuario
logueado en ella. Si estas usando la terminal como superusuario, se
cerrará la sesión y volverás a ser usuario estándar.
$ exit
Hasta aquí ya puedes empezar a practicar con algunos de los
comandos más básicos. Alternativamente, con el comando ‘man‘
podrás hacer una ojeada a las distintas opciones que ofrecen los
comandos tratados.
Continua con el Resto de Posts de
Esta Serie…
Como he dicho al principio este es solo el primer post de una serie de
artículos enfocados a sacar el máximo partido de la consola en Linux.
Así que si quieres aprender más, mucho más, te iré dejando debajo
los enlaces con los diferentes enlaces a medida que vaya
completando los post. Espero que te sirva;)
1.
2.
3.
4.
5.
6.
7.
8.
La terminal de Linux. Introducción
Como gestionar ficheros y directorios desde la línea de comandos
Como obtener información del sistema operativo
Como abrir y escanear el contenido de un archivo
Como listar y finalizar procesos activos
Como comparar archivos de texto
Como comprimir y descomprimir archivos
Como iniciar, detener o reiniciar servicios
Hay infinidad de cosas que se pueden realizar desde la terminal de
Linux, así que en todos los posts de la serie trato de dar cabida al
máximo de ellas, dentro de lo mejor que pueda y sepa.
Y ya para acabar por hoy, si se te ocurren comandos útiles de los que
hablar, la sección de comentarios de este primer post de la serie es el
mejor sitio dónde hacerlo.
Esto me puede dar ideas para otros artículos de la serie, o para
completar los que llevo escritos hasta el momento. Y ya sin más, me
despido con un fuerte saludo y esperando verte en los próximo post.
GNU/Linux. La
Terminal o Línea
de Comandos
Muy buenas lector. Esta página forma parte de la serie
de introducción a Linux que te acabo de enlazado. En ella, pretendo
abarcar todo lo que necesitas saber, tanto si acabas de aterrar, como
si llevas poco tiempo pero deseas sumergirte de lleno en el sistema
operativo del pinguino.
Esta página esta dedicada a la terminal o línea de comandos, esa
herramienta que, al llegar a Linux, siempre solemos mirar con algo de
recelo, y/o procuramos evitar tener que utilizar. Pues bien, si estas
líneas, muy pronto te darás cuenta de que, lejos de ser tu enemiga,
es y será una gran aliada con la que se te abrirá un gran universo
nuevo de posibilidades a la hora de administrar tu sistema.
Créditos Imagen de Cabezera. World Penguin Day | Christopher Michel
REPORT THIS AD
Tabla de contenidos:
1.
2.
3.
4.
5.
6.
7.
8.
Las interfaces de usuario
La interfaz de línea de comandos o CLI
La shell CLI o intérprete de comandos
Bash
Las terminales TTY
Los emuladores de terminal
Como utilizar la consola
Esto continua
Las Interfaces de Usuario
Antes de nada, siempre es interesante contextualizar las cosas. En el
caso que nos ocupa, es interesante conocer el concepto de interfaz
de usuario, que no es otra cosa que el medio o método de
interacción entre el usuario y la máquina. Se trata de un concepto
general, que aplica a todos los sistemas informáticas que requieran
de interacción humana.
En el ámbito con que nos ocupa, podemos distinguir entre dos tipos
de interfaces de usuario. Por un lado tenemos a la interfaz de línea
de comandos o CLI, que es la que vamos a tratar a continuación, y
por otro lado tenemos a la interfaz gráfica o GUI.
En la imagen superior tienes una representación de cada una de
ellas. Es importante destacar que cuando hablamos de CLI o GUI nos
estamos refiriendo a métodos de interacción, no una herramienta o
programa informática. De hecho, a la herramienta que posibilita
cualquiera de estas formas de interacción se la suele conocer
como shell.
Una shell es una herramienta que acepta ordenes o instrucciones por
parte del usuario y ejecuta operaciones. En Linux podemos
interactuar con multitud de shells diferentes, tanto a nivel de
interfaz de línea de comandos, como a nivel de interfaz gráfica.
Hecho este breve paréntesis contextual, vamos a centrarnos en el
caso que nos ocupa, que sería la interfaz de línea de comandos, y las
diferentes herramientas o lenguajes que posibilitan esta función.
La Interfaz de Línea de Comandos
o CLI
La interfaz de línea de comandos, o CLI, por sus siglas en inglés
(command-line interface) es un método de comunicación entre
usuario y maquina que acepta instrucciones del usuario a través de
líneas de texto (siguiendo unas determinadas reglas de sintaxis que
puedan ser interpretadas por el sistema operativo).
Es el método que se utilizaba antes de la aparición de las interfaces
gráficas o GUI, que sirvió para acercar la informática al gran público,
al permitir una interacción del usuario con la maquina mucho más
amigable o intuitiva (a costa, obviamente, de una mayor complejidad y
consumo de recursos).
Hoy día todos los sistemas operativos se presentan con su propia
interfaz gráfica plenamente integrada con el resto del sistema, de
modo que hablar de interfaz gráfica o interfaz de línea de comandos,
para el común de los usuarios, no tiene cabida.
Aun así, en el caso que nos ocupa, la línea de comandos es algo que
está muy impregnado en la cultura linuxera. Y es que, en Linux, al
igual que puedes optar por utilizar diferentes entornos de escritorio,
también tienes la posibilidad de no disponer de ninguno, y operar
directamente a través de la interfaz de línea de comandos (de
hecho, algunas distribuciones, como la versión de Ubuntu para
servidores, vienen de serie así).
La Shell CLI o Intérprete de
Comandos
Como he comentado más arriba, a la herramienta que posibilita la
función de interfaz de usuario se la denomina shell. Aplicado en el
ámbito de la interfaz de línea de comandos, estaríamos hablando de
una shell CLI o interprete de comandos.
En Linux tenemos a multitud de shells o interpretes diferentes. El
más conocido de todos probablemente es Bash, debido a que es el
que suele venir por defecto en la gran mayoría de distribuciones
GNU/Linux, pero también destacan otros como Bourne shell (sh),
Korn shell (ksh) o C shell (csh).
Bash
Bash es una herramienta Open Source perteneciente al proyecto
GNU, y que fue escrita por Brian Fox. Su nombre es el acrónimo de
“Bourne-Again Shell”, en referencia a Bourne shell (sh), uno de los
primeros interpretes de comandos de Unix. De hecho, Bash hereda
muchas propiedades de otras shells como sh, csh o zsh.
Actualmente es la interfaz de linea de comando predeterminada en la
mayoría de distribuciones GNU/Linux asi como en macOS.
Como ocurre con otras shells de Unix, además de interprete de
comandos, Bash es también un lenguaje de scripting. Esto lo hace
extremadamente potente para multitud de tareas relacionadas con la
administración de sistemas, automatización de tareas, etc
Aunque en su esencia es una Shell de Unix, puede ser portada
fácilmente a entornos Windows. Pero en fin, sigamos con más
conceptos, que la cosa se va poniendo interesante.
Las Terminales TTY
Las TTY son las diferentes ventanas de terminal que permiten
interactuar con el sistema a través del interprete de comandos, fuera
de la entorno gráfica (salvo una de ellas, que es la que suele estar
reservada para la sesión gráfica).
En la gran mayoría de distribuciones basadas en Debian, como
Ubuntu o Linux Mint, existen un total de 7 pantallas TTY, las cuales
pueden usarse simultáneamente. En el caso concreto de Debian, la
TTY1 hasta la TTY6 son sesiones de interfaz de línea de comandos,
mientras que la TTY7 es, de hecho, la interfaz gráfica de usuario. Aún
así, el numero puede variar en función de la distribución
Los Emuladores de Terminal
Aparte de la interfaz de línea de comandos que nos ofrece la shell a
través de las diferentes terminales TTY, en Linux los propios entornos
de escritorio de Linux también permiten utilizar la terminal a través de
los emuladores de terminal, o PTS.
Un emulador de terminal es una aplicación que permite virtualizar un
interprete de comandos pero dentro de la propia interfaz gráfica. La
mayoría de entornos de escritorio en GNU/Linux incorporan su propio
emulador de terminal. Tienen la ventaja de posibilitar la interacción a
través de la línea de comandos, pero sin necesidad de salir del
entorno gráfico.
En la figura de abajo tienes un ejemplo de como se ve el emulador de
Terminal de GNOME en Ubuntu.
Existen muchos emuladores de terminal, aparte de los que suelen
venir pre-instalados en los principales entornos de escritorio. Algunos
de los más conocidos, a parte de los propios de GNOME y KDE, son
Guake, Yakuake o Xterm.
Como Utilizar la Consola
En cualquier distribución GNU/Linux tienes básicamente dos maneras
de usar la línea de comandos en GNU/Linux: operando directamente
con la shell a través de las diferentes terminales TTY, o bien desde
el entorno gráfico, utilizando un emulador de terminal (que puede
ser el que venga con tu escritorio, o cualquier otro de tu preferencia).
Para acceder a las diferentes sesiones TTY debes utilizar las
combinaciones de teclado ‘CTRL+ALT+F1’, para la TTY1,
hasta ‘CTRL+ALT+F7’. Para iniciar sesión deberás introducir tu
nombre de usuario y contraseña, y a partir de ahí ya puedes empezar
a interactuar con el interprete de comandos.
Otra manera más práctica de utilizar la línea de comandos es, como
digo al principio, mediante el emulador de terminal desde la propia
sesión gráfica. En este caso, basta con acceder a tu aplicación de
terminal favorita y listos. No es necesario que inicies sesión aquí, ya
que ya reconoce el usuario con el que has iniciado la propia sesión
gráfica.
Hay infinidad de cosas que se pueden realizar desde la terminal de
Linux, así que en todos los posts de la serie trato de dar cabida al
máximo de ellas. Y es que, por muchas posibilidades que ofrezcan los
escritorio más modernos con los que contamos en Linux, la terminal
es una herramienta enormemente potente, y su conocimiento te
brindará un gran abanico de posibilidades.
A continuación te dejo con un listado de posts en los que podrás
adentrarte más profundamente en el uso de la consola.
1.
2.
3.
4.
5.
6.
7.
8.
Como utilizar la consola. Prirmeros pasos
Como gestionar ficheros y directorios desde la línea de comandos
Como obtener información del sistema operativo
Como abrir y escanear el contenido de un archivo
Como listar y finalizar procesos activos
Como comparar archivos de texto y ver si son iguales
Como comprimir y descomprimir archivos
Como controlar el estado de servicios
Esto Continua
Como indico al principio, esta pagina forma parte de la serie de
introducción a Linux y que sirve de punto de partida para todo el
contenido relacionado con GNU/Linux que hay y habrá en el blog. A
continuación iré enlazando el resto de paginas, a medida que las vaya
teniendo preparadas.
1.
2.
3.
4.
5.
6.
7.
Las distribuciones GNU/Linux
El entorno gráfico
El interprete de comandos
Aplicaciones imprescindibles
La gestión de paquetes
Seguridad en GNU/Linux
Opciones para probar e instalar GNU/Linux
Espero que lo disfrutes:)
La Terminal de
Linux (II).
Comandos para
Manejar Archivos
y Carpetas
Muy buenas lector, en esta guía quiero centrarme en que aprendas
todo lo necesario para manejar ficheros y carpetas en Linux a
través de la línea de comandos. Si no tienes experiencia en el uso
de la consola, una buena manera de empezar a entrar en materia es
aprender a moverte por el sistema de archivos y a manejar archivos y
carpetas desde la línea de comandos.
Existen realmente muchísimos comandos en este sentido, de modo
que lo mejor será dividirlos en tres grupos para tener un esquema
mental y acordarnos mejor de todos ellos. Sin más, te dejo con el
índice del post. Espero que lo disfrutes;)
REPORT THIS AD
Tabla de contenidos:
1. Desplazarte a través de los diferentes directorios
1.
2.
2.
1.
2.
3.
3.
1.
2.
3.
4.
5.
4.
Pwd
Cd
Listar el contenido de un directorio, buscar archivos, etc.
Ls
Find
Locate
Crear, borrar y copiar ficheros y directorios
Mkdir
Rmdir
Rm
Cp
Mv
Más información
Comandos para Desplazarte a
Través de Directorios
Empezando por el primero grupo, aquí verás todo lo necesario para
aprender situarte en un punto de partida ya desplazarte o navegar a
través de los diferentes directorios. Si tienes curiosidad, en este post
tienes explicada la estructura de directorios de Linux al detalle. Y ya
sin más, empecemos por el más sencillo de todos pero no por ello
menos importante… AL FINAL DE ESTE CAP ESTA LA
ESTRUCTURA
Pwd
El comando pwd te indica la ruta completa del directorio de trabajo en
el que se encuentra tu usuario. Su función es meramente informativa,
peor muy útil en ciertas ocasiones, como por ejemplo, conocer el
nombre del directorio de trabajo actual.
$ pwd
Esta es la única sintaxis que realmente necesitas conocer de este
comando. Como explico, te indica la ruta del directorio de trabajo en
el que te encuentras logueado en la terminal. Eso significa que
cualquier comando de Bash que tenga relación con la gestión de
ficheros y directorios, se aplicará referenciado en ese directorio.
Cd
El comando cd te permite cambiar de directorio de trabajo. Sería el
equivalente a ingresar o entrar en la carpeta pero desde la consola.
Básicamente requiere indicar el nombre del directorio en el que
deseas moverte. Acepta rutas absolutas y relativas. A continuación
tienes algunos de los múltiples ejemplos de su uso:
$ cd /home/usuario/Documentos
El comando de arriba te llevará al directorio Documentos dentro de la
carpeta personal del usuario usuario1. En este caso he utilizado una
ruta absoluta, empezando por el directorio raíz /, e indicando el
camino completo hasta situarme a Documentos
$ cd
Esta sentencia la puedes utilizar siempre que quieras volver a situarte
al directorio principal de usuario, que en este caso seria
en /home/usuario1. Muy interesante siempre que queramos volver al
punto de partida (ojo, no confundir eso con ir al directorio raíz, que
sería el directorio /)
$ cd Documentos
Igual que en el primer ejemplo, con esta sentencia (arriba) te situarás
dentro del directorio Documentos, que debe estar dentro del directorio
de trabajo actual. La diferencia es que en este caso, aprovechando
que estoy dentro del directorio principal de usuario, he utilizando una
ruta relativa sin necesidad de indicar el camino completo.
$ cd ..
Esta otra sentencia la puedes utilizar para saltar un directorio hacía
atrás respecto del que te encuentres. De este modo, si te encuentras
dentro del directorio /home/usuario1/Documentos, saltarás un nivel
hacía arriba hasta situarte en /home/usuario1.
$ cd ../..
Esta opción es similar a la anterior, pero ahora te permitirá saltar de
golpe dos directorios hacia atrás. Por tanto, si estabas
en /home/usuario1/Documentos, ahora saltarás a /home.
Hasta aquí, tienes algunos usos simples para moverte a través de las
diferentes carpetas. A continuación, y teniendo claro lo anterior,
podemos pasar a aprender a listar archivos y directorios.
Listar el Contenido de un
Directorio, Buscar Archivos, etc.
REPORT THIS AD
Visto ya como moverte a través de carpetas, que mejor que continuar
como poder listar el contenido de un directorio, encontrar o localizar
archivos concretos por su nombre o su extensión, etc.
Ls
Con el comando ls podrás listar los diferentes archivos y directorios
de la carpeta de trabajo en la que te encuentres. El comando acepta
multitud de opciones, algunas de las cuales te mostraré a
continuación.
$ ls
El de arriba es el uso más simple del comando ls. Si no le indicas
ninguna opción, te enumerará todos los archivos y directorios que se
encuentran en la carpeta de trabajo actual, sin tener en cuenta
archivos ocultos.
$ ls -a
Con esta opción, el comando te mostrará, en forma de lista, todos el
contenido que se encuentre dentro del directorio de trabajo,
incluyendo, además, archivos y carpetas ocultos.
$ ls -l
Esta opción es similar al primer caso, pero muestra el contenido en
forma de lista e incluye información referente a cada elemento. Se
usa muchísimo y es especialmente útil a la hora de conocer el
propietario y los permisos de cada fichero.
Estas son sólo algunas de las muchísimas posibilidades de las que
disponemos para nombrar o listar el contenido de un directorio, desde
la terminal de Linux. Existen muchas opciones más, las cuales
puedes explorar en todo momento haciendo uso del comando man ls.
Find
El comando find es muy similar en su función básica a ls, ya que de
entrada sirve para listar todo el contenido de un directorio. La
diferencia es que, aplicando filtros, te puede servir para buscar
archivos de forma más precisa.
$ find
La sentencia más básica te listará todo el contenido del directorio de
trabajo actual de forma recursiva. La diferencia respecto a ls es
justamente que find no se limitara a mostrar los archivos y directorios
de primer nivel, sino que también te mostrará el contenido de estos, y
así recursivamente hasta recorrer todos los niveles hacía abajo.
$ find ./Documentos
Con esta opción, find te listará todos el contenido del directorio
Documentos (dentro del directorio de trabajo actual) también de forma
recursiva, recorriendo todos los niveles hacía abajo.
$ find ./Documentos -name archivo.txt
Si quieres empezar a establecer filtros por nombre, puedes añadir el
parámetro -name. En este ejemplo, estamos intentando localizar un
archivo concreto dentro de Documentos que su nombre corresponda
a archivo.txt.
$ find ./Documentos -name *.pdf
Incluso puedes hacer filtros más concretos gracias al uso de
comodines. En el caso de arriba, por ejemplo, estamos buscando en
la carpeta Documentos todos los archivos que con la extensión .pdf,
al igual que puedes hacerlo con cualquier otro tipo de extensión.
Unix tool tip@UnixToolTip
To do a search by file names using find, -name is case-sensitive and -iname is caseinsensitive.
32
11:40 - 19 ene. 2016
Información y privacidad de Twitter Ads
17 personas están hablando de esto
Locate
El comando locate es una alternativa útil a find la hora de localizar
archivos o directorios que no recuerdas donde tienes. Aquí tiene
algunos ejemplos que te pueden ser de gran utilidad:
$ locate archivo1.txt
En este caso tienes un claro ejemplo de como realizar una búsqueda
simple del archivo archivo1.txt directamente por su nombre. Es útil
solo si sabes el nombre exacto del elemento que estás buscando.
Crear, Borrar, Copiar y Mover
Archivos y Directorios
En esta parte conocerás todos los comandos necesarios a la hora de
realizar acciones tales como: crear un nuevo directorio, copiar un
archivo y pegarlo en otra ubicación, mover ficheros de una ubicación
en otra, etc. Esta es probablemente la parte del post de la que podrás
sacar mas jugo, así que vayamos allá;)
Mkdir
El comando mkdir te permitirá crear un directorio con el nombre y la
ruta que especifiques. Si no le indicas ninguna ruta, por defecto, te
creará la carpeta dentro del directorio de trabajo en el que te
encuentres. A continuación tienes algunos ejemplos sencillos.
$ mkdir /home/usuario1/directorio1
En el caso de arria, mkdir te creará el directorio de
nombre directorio1, en la ruta que le hayas especificado, en este caso
dentro de la carpeta principal de usuario.
$ mkdir directorio2
Con esta sintaxis, el comando te creará una carpeta de
nombre directorio2 dentro del directorio de trabajo en la que te
encuentres (recuerda utilizar pwd para saber donde estás).
Estos son las dos principales maneras de crear carpetas en Linux
desde la consola. Asimismo, si quieres profundizar más en el uso de
este comando, puedas explorar otras muchas opciones a través del
comando man mkdir. Como ves, crear una carpeta en Linux desde la
consola, es igual de fácil que hacerlo desde el menú gráfico del
navegador de archivos
Rmdir
El comando rmdir te permite eliminar el directorio que le especifiques.
Para poder utilizar este comando, el directorio a borrar debe estar
vacío. A continuación tienes un par de ejemplos.
$ rmdir /home/usuario1/directorio1
En este caso, rmdir borrará el directorio de nombre directorio1, que se
encuentra en la ruta especificada, en este caso dentro de la carpeta
de usuario.
$ rmdir directorio2
En este otro ejemplo, el rmdir eliminará el directorio de
nombre directorio2, el cual debe encontrarse dentro de la carpeta en
el que te encuentres. De lo contrario, indicará que el directorio no
existe.
Rm
El comando rm te permite eliminar archivos sueltos y directorios que
no se encuentren vacíos. A continuación tienes algunos de los usos
principales del comando.
$ rm /home/usuario1/archivo1.txt
En este caso, rm te borrará el archivo de texto archivo1.txt, que se
encuentra en la ruta especificada, para este caso dentro de la carpeta
de usuario.
$ rm -r /home/usuario1/directorio1
Con esta opción, rm borrará el directorio directorio1 de forma
recursiva. Esto significa, incluyendo todos los archivos y
subdirectorios que se encuentren dentro de él (pidiéndote, eso si,
confirmación para cada archivo).
rm -rf /home/usuario1/directorio1
Si te quieres saltar el paso de tener que confirmar archivo por archivo
que realmente deseas borrarlo, con este comando borrarás todo el
contenido del directorio sin advertencias.
Eso si, mucho ojito con rm, puesto que dependiendo de como lo
uses, puede dar cabida a situaciones como esta. Se trata de ser
consciente de como funciona y de los parámetros que estas
introduciendo en cada momento.
Cp
Usando el comando cp, seras capaz de copiar archivos y directorios,
así como ubicarlos en otras rutas. A continuación, tienes un par de
ejemplos de como se puede utilizar.
$ cp archivo1.txt archivo2.txt
Este es posiblemente el uso más simple de cp. Con esta forma,
crearás una copia del archivo archivo1.txt la cual se guardará con el
nombre archivo2.txt. En este caso, el archivo de partida debe
encontrarse dentro del directorio de trabajo en el que estés.
$ cp /home/usuario1/archivo1.txt /tmp/archivo2.txt
Alternativamente, puedes especificar la ruta en la que se encuentra el
archivo de partida, de nombre archivo1.txt, y la ruta del directorio
dentro del cual quieres que se guarde la copia, en este caso dentro
del directorio tmp.
Como en todos los casos, puedes explorar muchas más opciones
tecleando man cp en la consola. Y antes de acabar con cp, te dejo a
continuación un par de truquillos que te pueden venir muy bien (esto
ya como guindilla del pastel)
Mv
El comando mv te servirá para mover archivos desde la consola.
Sería lo equivalente a arrastrar un archivo desde una ubicación a otra.
La sintaxis es muy sencilla, solamente debes especificar la ubicación
de inicio, incluyendo el nombre del archivo, y la ubicación de destino.
También puedes modificar el nombre del archivo en su ubicación de
destino.
mv /home/usuario1/Descargas/archivo1.txt /home/usuario1/Documentos/archivo1.txt
En este ejemplo de arriba estamos moviendo el archivo de
nombre archivo1.txt desde la carpeta Descargas hacía la
carpeta Documentos. Para ello hemos utilizado rutas absolutas.
mv Descargas/archivo1.txt Documentos/archivo1.txt
En este otro ejemplo he hecho exactamente lo mismo pero utilizando
una ruta relativa, suponiendo que nos encontramos en la carpeta de
usuario dentro de la Home.
Aquí Puedes Consultar el resto de
Artículos de esta Serie
Este es nada menos que el segundo post de una serie de artículos
dedicados al uso de la línea de comandos en Linux. Puedes echarle
un ojo al primer artículo de la serie en el enlace que te acabo de dejar
arriba.
Si te animas a continuar, tienes el resto de posts de la serie
enlazados justo debajo. Espero que los disfrutes;)
1.
2.
3.
4.
5.
6.
7.
8.
Introducción al uso de la línea de comandos
Manejar archivos y carpetas por consola
Obtener información del sistema
Escanear el contenido de un archivo de texto
Cerrar o finalizar procesos
Comparar archivos de texto
Comprimir y descomprimir ficheros
Comandos para iniciar o detener servicios
Y ya para acabar, solo me queda decir que espero que hayas
disfrutado la entrada, te haya sido útil, y ya sabes que como siempre
me encantara leer tus dudas o sugerencias en la sección
de comments debajo.
Así que, ya sin más, me despido con un fuerte abrazo y esperando
verte en el próximo post. Hasta la próxima;)
El Árbol de
Directorios de
Linux. Conoce las
Principales
Carpetas
Muy buenas lector, en el post de hoy conocerás en detalle
la jerarquía de directorios de Linux y otros derivados de Unix, así
que si eres un usuario relativamente nuevo, o si simplemente tienes
curiosidad para indagar un poco más en como se estructuran los
diferentes directorios en Linux y sus funciones, este es tu post.
Como al final, entre tantas carpetas, me ha quedado el post un poco
largo, lo he dividido principalmente en dos partes. En la primera
conocerás qué es el Filesystem Hierarchy Standard, mientras que
en la segunda parte es donde podrás consultar el listado con los
diferentes directorios y conocer para que se utilizan cada uno. Sin
alargarme más en la introducción, te dejo debajo con el índice.
REPORT THIS AD
Tabla de contenidos:
1. El Estándar de Jerarquía de Directorios o FHS
2. Principales directorios y sus funciones
1. Directorio raíz o /
2. Bin, Sbin
3. Boot
4. Dev
5. Etc
6. Home
7. Lib
8. Media
9. Opt
10.
Proc
11.
Root
12.
Srv
13.
Sys
14.
Tmp
15.
Usr
16.
Var
3. Listar y visualizar las diferentes carpetas
4. Antes de acabar
El Estándar de Jerarquía de
Directorios o FHS
La estructura de los directorios de Linux, así como su contenido y
funciones, viene definida en el denominado Filesystem Hierarchy
Standard o FHS por sus siglas en inglés, que en otras palabras viene
a ser el estándar de jerarquía para los sistemas de archivos en
sistemas Linux y otros derivados de UNIX.
REPORT THIS AD
El FHS nació en 1994 y es actualmente mantenida por la Linux
Foundation. Aun siendo un estándar, hay casos de distribuciones
GNU/Linux que directamente apuestan por él (Gobo Linux es un
ejemplo de ello). Otras, por contra, si que hacen un esfuerzo en
adaptarse en lo máximo posible a él, pero suelen desviarse en
algunas áreas.
Como puedes ver en la siguiente imagen, todo el árbol de parte de
una raíz común denominada root y que se simboliza por una barra
inclinada. Aún así, esto no significa que varios de ellos no puedan
estar en particiones separadas del resto. De hecho, en muchas
distros GNU/Linux es una práctica muy común el hecho ubicar ciertos
directorios en particiones separadas del resto.
Dicho esto, la FHS distingue entre lo que serían directorios estáticos,
que son aquellos que contienen binarios, bibliotecas, documentación,
etc., de los dinámicos, que son aquellos que requieren de acciones
más a menudo, tales como copias de seguridad, etc.
También podemos diferencias claramente lo que son los
directorios compartibles, que significa que contienen ficheros que
pueden utilizarse desde otros dispositivos, de los no compartibles,
que solo pueden utilizarse desde el dispositivo en el que se
encuentran.
Principales Directorios y sus
Funciones
REPORT THIS AD
Ahora que ya conoces el estándar de jerarquía de directorios utilizado
en GNU/Linux, veamos un poco más en detalle cada unos de los
directorios de forma concreta, empezando por el directorio raíz, que
es desde donde nace el árbol.
Directorio Raíz o /
Toda la estructura de directorios en los sistemas basados en UNIX
parte de un directorio raíz también llamado directorio root y que se
simboliza por una barra inclinada o /. De este directorio, es desde
donde nacen todo el resto de directorios, independientemente que
estén almacenados físicamente en discos o unidades separadas.
Cualquier dirección de archivo o carpeta en Linux empieza por el
directorio raíz o /, seguido de todos los directorios y subdirectorios
que que lo contienen, separados cada uno de ellos por /.
A continuación conocerás con más en detalle a todos los directorios
principales que parten del directorio raíz, junto con sus subdirectorios
más importantes y los ficheros que suelen contener.
Bin, Sbin
El directorio /bin es un directorio estático y es donde se almacenan
todos los binarios necesarios para garantizar las funciones básicas a
nivel de usuario. Solo almacena los ejecutables de usuario, ya que los
binarios necesarios para tareas administrativas gestionadas por el
usuario root o superusuario del sistema se encuentran en el
directorio /sbin.
Incluye también los binarios que permiten la ejecución de varias
utilidades estándar de la terminal de Linux,
concretamente cat, cd, cp, echo, grep, gzip, kill, ls, mv, rm,
ping, su, ps, tar y vi.
El directorio /sbin hace lo mismo pero para los binarios relativos
tareas propias del sistema operativo, y que solamente pueden ser
gestionadas por el usuario root, tales como el arranque, tareas de
restauración, reparación, etc.
Boot
Es un directorio estático e incluye todos los ejecutables y archivos
que son necesarios en el proceso de arranque del sistema, y que
deberán ser utilizados antes que que el kernel empiece a dar las
órdenes de ejecución de los diferentes módulos del sistema. Es
también donde se encuentra el gestor de arranque GRUB.
En algunas distribuciones, es común que ese directorio se almacene
en su propia partición separada del resto. Esto suele darse sobretodo
en el caso de de que utilicen LVM por defecto, ya que
tradicionalmente el gestor de arranque GRUB (en versiones
anteriores a la 2) no podía arrancar desde LVM, por lo que se
requería que estuviera en una partición separada.
De hecho, si en una instalación normal de Ubuntu o Debian optas por
utilizar LVM, verás que el instalador ya te genera un esquema de
particiones con el directorio boot en una partición aparte.
En estos casos, en el momento de instalar el sistema es
importante prever bien el espacio que le vayas a dar a la partición,
ya que a la larga, con la acumulación de diferentes actualizaciones
del Kernel, es común que se quede sin espacio. Si esto sucede,
puedes tener problemas a la hora de instalar futuras actualizaciones
del núcleo, y debas hacer limpieza de versiones antiguas del kernel.
Dev
Este directorio incluye todos los dispositivos de almacenamiento, en
forma de archivos, conectados al sistema, es decir, cualquier disco
duro conectado, partición, memoria USB, o CDROM conectado al
sistema y que el sistema pueda entender como un volumen lógico de
almacenamiento.
Siendo esto así, verás que la ruta en la que se encuentra cualquier
volumen (partición o dispositivo externo) conectado al sistema
siempre empieza por /dev.
Este es el directorio que contiene, por decirlo de algún modo, la
información de cada uno de los volúmenes, a diferencia del
directorio /media, que verás más adelante, que lo que contiene son
solo los puntos de montaje, pero no la información real de estos
volúmenes.
Para ver esto en la práctica, si abres una ventana de terminal y
ejecutas el comando sudo fdisk -l, verás la estructura de particiones
de tu sistema. En una instalación típica de cualquier distro GNU/Linux
suele ser la siguiente:
/dev/sda1 - Partición principal
/dev/sda2 - Partición extendida
/dev/sda5 - Partición Swap
La partición sda1 suele ser la partición principal, Obviamente si has
editado manualmente el esquema de particiones, en tu caso será
diferente, esto es solo un ejemplo típico para ayudar a explicar la
función del directorio /dev.
Eso en cuanto a particiones. Si se trata de un dispositivo externo, el
volumen estará igualmente dentro de /dev, pero en este caso varía el
nombre que el sistema le asigna a dicho volumen. Generalmente la
estructura suele ser la siguiente (si ejecutas nuevamente el
comando sudo fdisk -l con un dispositivo externo conectado lo podrás
comprobar tu mismo).
/dev/sdb1
/dev/sdb2
/dev/sdb3
...
Etc
Es el encargado de almacenar los archivos de configuración tanto a
nivel de componentes del sistema operativo en sí, como de los
programas y aplicaciones instaladas a posteriori.
Es un directorio que debería contener únicamente ficheros de
configuración, y no debería contener binarios.
Home
Es el directorio de los usuarios estándar, y por lo tanto, el destinado
a almacenar todos los archivos del usuario, como documentos,
fotos, vídeos, música, plantillas, etc. También incluye archivos
temporales de aplicaciones ejecutadas en modo usuario, que sirven
para guardar las configuraciones de programas, etc.
Dentro /home hay los directorios personales de todos los
usuarios, nombrados según el nombre de usuario utilizado. Así por
ejemplo, si en un sistema pongamos que hay dos usuarios
denominados User1 y User2, la estructura será así:
/home/User1
/home/User2
Cada directorio de usuario contiene asimismo diferentes carpetas
para ayudarlo a clasificar la información. Estas generalmente
son: /Documentos, /Imágenes, /Música, /Plantillas y /Vídeos /, así
como otros archivos y carpetas ocultas, que son las encargados de
guardar la información de configuraciones de las aplicaciones del
usuario.
Para visualizar los ficheros ocultos dentro del directorio individual de
cada usuario, puedes hacerlo rápidamente mediante la combinación
de comandos CTRL + F. Por cierto, y muy importante, todas los
archivos y carpetas ocultas en Linux empiezan por un punto, seguido
del nombre de la carpeta.
En muchas distribuciones es una práctica recomendada el hecho de
ubicar el directorio /home es una partición separada del resto, por tal
de facilitar que, en caso de reinstalar el sistema operativo, puedas
mantener intacta la partición de la /home, y de este modo mantener
todos los archivos personales.
Lib
Incluye las bibliotecas esenciales que son necesarios para que se
puedan ejecutar correctamente todos los binarios que se encuentran
en los directorios /bin y /sbin, así como los módulos del propio kernel.
En los sistemas operativos de 64 bits, además de /lib existe otro
directorio denominado /lib64, referida a las bibliotecas para
aplicaciones de 64 bits.
Media
Representa el punto de montaje de todos los volúmenes lógicos que
se montan temporalmente, ya sean unidades externas USB, otras
particiones de disco, etc.
En la mayoría de distribuciones GNU/Linux, desde hace ya algún
tiempo, cada vez que se monta una unidad externa, partición, etc.,
esta se monta dentro del directorio /media y a su vez dentro de un
directorio especifico dependiendo del usuario del sistema que monta
el volumen.
De este modo, si en un sistema hay varios usuarios,
pongamos User1 y User2, los puntos de montaje de los volúmenes
que montan cada uno de ellos se mostraran en directorios separados
tal como así:
/media/User1
/media/User2
Antiguamente se solía utilizar el directorio mnt para estas funciones,
pero actualmente, la mayoría de distribuciones hacen uso de media.
Opt
En cierto modo vendría a ser como una extensión del directorio /usr,
pero en este caso van todos aquellos archivos de solo lectura que son
parte de programas auto-contenidos y que, por lo tanto, no siguen los
estándares de almacenar los diferentes archivos dentro de los
diferentes subdirectorios de /usr (que sería lo recomendable)
Haciendo una analogía con Windows, vendría a ser algo como el
directorio de “Archivos y Programas”, pero en este caso, como hemos
dicho, para determinados programas que ya vienen auto-contenidos.
Proc
Este directorio contiene información de los procesos y aplicaciones
que se están ejecutando en un momento determinado en el sistema,
pero realmente no guarda nada como tal, ya que lo que almacena son
archivos virtuales, por lo que el contenido de este directorio es nulo.
Básicamente son listas de eventos del sistema operativo que se
generan en el momento de acceder a ellos, y que no existen dentro
del directorio como tales.
En este enlace de LinuxTotal tienes información más detallada sobre
las particularidades de este directorio y todo el juego que le puedes
sacar a la hora de obtener información muy diversa del sistema.
Root
Vendría a ser como el directorio /home del
usuario root o superusuario del sistema.
A diferencia de los otros usuarios, que se encuentran todos dentro de
/home en sus respectivas subcarpetas, el directorio del usuario root
está en su propia carpeta colgando directamente de la raíz del
sistema.
Srv
Sirve para almacenar archivos y directorios relativos a servidores que
puedas tener instalados dentro de tu sistema, ya sea un servidor
web www, un servidor FTP, CVS, etc.
Así, por ejemplo, en el caso de tener instalado un servidor web, sería
buena idea tener el directorio web público dentro de /srv, tal como así:
/srv/www
Sys
Al igual que /proc, contiene archivos virtuales que proveen
información del kernel relativa a eventos del sistema operativo.
Es en cierto modo una evolución de /proc, y a diferencia de este
último, los archivos se distribuyen de forma jerárquica.
Tmp
Como ya da a entender su nombre, sirve para almacenar archivos
temporales de todo tipo, ya sea de elementos del sistema, o también
de diferentes aplicaciones a nivel de usuario como puedan ser Firefox
o Chrome/Chromium.
Es un directorio dispuesto para almacenar contenido de corta durada,
de hecho en la gran mayoría de los casos se suele vaciar de forma
automática en cada reinicio del sistema. Aun así, no debes borrar su
contenido de forma manual, puesto que puede contener archivos
necesarios para ciertos programas o procesos que estén
ejecutándose.
Las aplicaciones programadas para almacenar archivos en este
directorio deben asumir que solo serán recuperables en la sesión
actual. En este sentido, hay otro subdirectorio, /var/tmp, dispuesto
igualmente para el almacenamiento de archivos temporales, pero
cuyo contenido no se borra de forma automática tras el reinicio del
sistema.
Usr
El directorio /usr viene de “User System Resources” y actualmente
sirve para almacenar todos los archivos de solo lectura y relativos a
las utilidades de usuario, incluyendo todo el software instalado a
través de los gestores de paquetes de cada distribución. Contiene los
siguientes subdirectorios:
/usr/bin
/usr/include
/usr/lib
/usr/local
/usr/sbin
/usr/share
/usr/src
Antiguamente /usr también contenía la carpeta particular de usuario,
junto con todos sus documentos, vídeos, fotos, etc., pero más
adelante se creó el directorio /home para este propósito,
dejando /usr reservado para los ficheros relativos a programas.
Var
contiene varios archivos con información del sistema, como archivos
de logs, emails de los usuarios del sistema, bases de datos,
información almacenada en la caché, información relativa a los
paquetes de aplicaciones almacenados en /opt, etc. En cierto modo
se podría decir que actúa a modo de registro del sistema.
Listar y Visualizar las Diferentes
Carpetas
Para poder visualizar u obtener un listado de todas las carpetas del
sistema que cuelgan de la raíz, puedes hacerlo desde el mismo
administrador de archivos, o bien desde la línea de comandos.
REPORT THIS AD
Desde el administrador de archivos, por defecto te encuentras
siempre en tu carpeta principal de usuario dentro de la carpeta home.
Para ver las carpetas del sistema debes dirigirte a la raíz, y verás
todas las que cuelga de ella.
También puedes obtener un listado completo de todos los directorios
que cuelgan de la raíz desde el intérprete de comandos. Para ello,
debes abrir primero una ventana de Terminal y situarte en el directorio
raíz.
El comando cd te servirá para situarte en el directorio raíz y
con ls podrás visualizar todos los archivos y carpetas contenidos en
él.
$ cd /
$ ls
También puedes jugar un poco con el comando ls, añadiendo ciertos
parámetros para obtener listados más detallados. Una opción muy
útil, por ejemplo, es ls -l, con la que obtendrás los diferentes
directorios en forma de lista, junto con los permisos de lectura,
escritura y ejecución asociados a cada una de ellos.
$ ls -l
Si lo haces sobre el directorio el directorio raíz, verás que todos los
directorios de primer nivel que cuelgan directamente de ahí
pertenecen al usuario root. Por contra, si lo haces sobre tu directorio
Home, todo lo que cuelga de ahí verás que pertenece a tu usuario.
Antes de acabar…
REPORT THIS AD
Si has llegado hasta aquí y aun no tenias del todo claro como
funcionaba el esquema de directorios en UNIX y Linux, espero que el
post te haya sido de utilidad y que tengas mucho más claro como
funciona y el significado de cada directorio.
Conocer, aunque solo sea por encima, el significado de cada uno de
los directorios en Linux te puede ayudar mucho a entender ciertos
comandos o a realizar ciertos pasos que requieren acceder a un
fichero dentro de un directorio.
Como habrás visto, me he centrado en hacerlo lo máximo entendible
posible pero sin entrar en grandes detalles técnicos, pero si quieres
profundizar un poco más en los detalles, te recomiendo la lectura
de estas guías de The Linux Documentation Project (en inglés).
Y ya por último, si quieres comentar algo, ya sabes que como siempre
me encantará leerte aquí debajo, así que ya sabes ;)
La Terminal de
Linux (III).
Comandos para
Obtener
Información del
Sistema
En esta guía vamos a dar un repaso a algunos comandos que te
permitirán obtener información del sistema operativo desde la línea
de comandos, como los usuarios actualmente logueados, las
sesiones de terminal abiertas, los procesos en ejecución, el hardware
utilizado, etc.
Como info adicional antes de empezar con el post, quiero comentarte
que el artículo que estas a punto de leer forma parte de una serie
temática de varios posts centrados en el uso de la consola en
Linux. Debajo del post tienes listados el resto de artículos. Ahora si
que sin más, voy a ir directamente al grano…
REPORT THIS AD
Tabla de contenidos:
1.
1.
2.
3.
4.
2.
1.
2.
3.
3.
1.
2.
3.
4.
Información del sistema operativo
Uname
Who
Whoami
Ifconfig
Información a nivel de hardware
Dmidecode
Cat/proc
Lshw
Información externa
Date
Cal
Curl wttr.in
Esto continua
Información del Sistema Operativo
Primero de todo me centrare en información general a nivel de
software y del sistema operativo. Antes que nada, es importante que
tengas en cuenta que muchos de estos comandos debas utilizarlos
con permisos de superusuario (utilizando “sudo” en Ubuntu, o “su” en
otras distros como Debian o Fedora). Vayamos allá.
Uname
El comando uname te mostrará por pantalla información del sistema
operativo, como puede ser la plataforma, la versión del Kernel
utilizada, o la arquitectura del sistema. El comando acepta diversas
opciones, algunas de las cuales tienes a continuación.
$ uname
Con esta sintaxis, el comando te mostrará simplemente el nombre del
Kernel utilizado, en este caso Linux.
$ uname -o
Utilizando esta opción, el comando te mostrará el nombre del sistema
operativo, en este caso GNU/Linux.
$ uname -a
En este caso, a parte de indicar el nombre del Kernel y del sistema
operativo, también te informará de la arquitectura del sistema, el
nombre de host, el procesador, etc.
$ uname -m
Con esto podrás conocer si tu CPU tiene soporte para la
virtualización, que deberás activar posteriormente desde la BIOS.
Muy útil si trabajas si trabajas con máquinas virtuales.
Who
El comando who te listará los usuarios conectados en el sistema en
tiempo real. Asimismo, te indicara la sesión en la que esta logueado
cada usuario.
$ who
Con la sintaxis básica, el comando te informará solamente de los
usuarios conectados y de la sesión de terminal TTY o PTS en la que
está conectado cada usuario.
$ who -a
Con esta opción, el comando te informará de la fecha y hora del
ultimo arranque del sistema por parte de algún usuario.
$ who -H
En este caso obtendrás una lista de los usuarios logueados, las
sesiones de terminal a las que están conectados, y el registro de
fecha y hora a la que se han conectado.
Whoami
El comando whoami muestra por pantalla el nombre del usuario que
acaba de ejecutar el comando.
$ whoami
Ifconfig
La sentencia ifconfig te servirá para ver todas las interfaces de red
que tienes habilitadas en tu PC o dispositivo, junto con varios
parámetros como el nombre de la interfaz red, la dirección MAC, la
dirección IPv4 e IPv6, la máscara subred, y otros varios.
$ ifconfig
Esta es la opción básica, que básicamente te mostrará las interfaces
activas. Generalmente serán la interfaz Ethernet si te conectas con
cable (normalmente eth0), la interfaz WiFi si vas con wifi (wlan0), y la
interfaz local o localhost, que es la que el sistema utiliza para
conectarse consigo mismo (lo)
$ifconfig -a
Con esta opción podrás ver todas las interfaces de red disponibles en
tu sistema, independientemente de que estén en uso o no, junto con
sus parámetros básicos.
$ifconfig eth0
Esta opción te permite acotar el resultado para mostrar la información
de una interfaz determinada, en este caso la Ethernet.
Información a Nivel de Hardware
REPORT THIS AD
Visto ya la información a nivel del sistema operativo, en el siguiente
apartado verás como conseguir determinada información del
hardware en el que se ejecuta tu sistema. Esto te será especialmente
útil, sobretodo teniendo en cuenta que la información relativa al
hardware que puedes obtener desde tu entorno de escritorio es
bastante general y con muy poco grado de detalle.
Dmidcode
Con esta sentencia tendrás acceso a un enorme rango de información
sobre el hardware del equipo, ya sea relativa al fabricante o
ensamblador del dispositivo, fabricante de la placa base, de la CPU, y
un larguísimo etcétera que puedes ir descubriendo probando con las
diferentes opciones.
$sudo dmidecode -s system-manufacturer
Con esta opción podrás ver el fabricante del PC, ya sea Asus, HP,
Dell, Lenovo, etc.
$sudo dmidecode -s processor-manufacturer
De forma similar, y como se intuye fácilmente, muestra el nombre del
fabricante de la CPU, generalmente Intel o AMD.
$sudo dmidecode -s
Y por si quieres ver un listado completo de todos los posibles inputs
que puedes introducir como opciones, este es tu comando
Cat/proc
El comando cat /proc/version te muestra información detallada de la
versión del Kernel utilizada, incluyendo datos tales como la versión
del compilador GCC, el nombre de la persona que compiló el Kernel,
y la fecha de compilación.
$ cat /proc/version
El comando cat /proc/cpuinfo te facilitará información detallada de la
CPU, considerando los diferentes núcleos, e incluyendo datos como
el fabricante, el número de núcleo, la frecuencia de reloj, el tamaño de
cache, etc.
$ cat /proc/cpuinfo
Lshw
El comando lshw te mostrará una lista con todos los componentes de
hardware detectados, junto con la información que se puede extraer,
como el fabricante, la versión del firmware, etc. El comando permite
categorizar la información en clases acepta multitud de opciones.
$ sudo lshw
En caso de que lo ejecutes así, el comando te imprimirá por pantalla
una lista con todos los componentes de hardware y la información
que se puede extraer de ellos.
$ sudo lshw -short
En este caso, te aparecerá un árbol con todos los dispositivos
detectados y su ruta de hardware. Es una manera de obtener la
información anterior de un modo mas simplificado.
$ sudo lshw -c video
Con esta opción, verás información relativa a los componentes de
hardware detectados dentro de la clase ‘video’. Esto es, la tarjeta o
tarjetas gráficas detectadas, etc.
$ sudo lshw -c network
De un modo similar, aquí verás información referente a los
componentes de la clase ‘network’. En este caso, la tarjeta de red
ethernet y el adaptador wireless.
Estos son sólo algunas de las opciones que puedes utilizar para
obtener información del sistema. El comando lshw es especialmente
complejo, y he puesto solamente en un par de opciones de las
muchísimas que ofrece. Si quieres aprender más sobre él, puedes
encontrar más información tecleando man lshw en la terminal.
Información Externa
Como información externa me refiero a aquella información externa a
tu sistema, como podría ser la fecha, hora, condiciones
meteorológicas, etc.
Date
El comando date te imprimirá por pantalla la fecha actual del sistema
operativo. Acepta algunas opciones, pero en general su uso es muy
sencillo.
$ date
En su sintaxis más básica. Este es la sintaxis básica, el comando te
imprimirá la fecha actual según el estándar CEST.
$ date -u
Con esta opción, podrás visualizar la fecha actual según el estándar
universal o UTC.
Cal
El comando cal muestra el calendario de un mes o año especificados.
Acepta diferentes opciones, algunas de las cuales son:
$ cal
Es la forma básica del comando, y por defecto te mostrará el
calendario del mes actual.
$ cal -y 2019
Con esta opción, el comando te mostrará el calendario completo del
año entrado por pantalla, en este caso el 2019.
Curl wttr.in
Con esta simple sentencia podrás consultar la previsión
meteorológica directamente desde la consola. Sería la forma geek de
consultar el tiempo.
curl wttr.in
Esta es el modo más fácil de utilizarlo. Te entrega directamente la
previsión de tu zona geográfica para los próximos tres días. Aparte de
esta opción básica, puedes personalizar la salida de muchas
maneras. A continuación tienes un ejemplo.
curl wttr.in/paris
Para consultar la previsión de una zona en concreto, basta con añadir
“/” al final seguido de la zona (como datos acepta ciudad, código de
aeropuerto o nombre de dominio). Tienes una ayuda rápida
aquí: http://wttr.in/:help.
Más Sobre el Uso de la Consola
Como ya habrás visto al principio, esta guía forma parte de una serie
temático de varios posts sobre el uso de la línea de comandos en
Linux. Justo debajo te enlazo el resto de posts que componen esta
series para que tu mismo visites los que consideras que sean de
mayor interés. Ahí van:
1.
2.
3.
4.
5.
6.
7.
8.
La terminal de Linux. Guía de introducción
Manejar archivos y carpetas desde la terminal
Consultar información del sistema
Escanear el contenido de un archivo de texto
Listar y finalizar procesos activos de tu sistema
Comparar archivos de texto y listar diferencias
Comprimir y descomprimir ficheros
Iniciar, detener o reiniciar servicios
Si conoces más comandos para obtener información del sistema, ya
sea a nivel de hardware, de plataforma, sistema operativo, etc., ya
sabes que como siempre me encantara leerte en la sección de
comentarios de debajo. Ya sin más, me despido con un fuerte abrazo
y esperando verte en el próximo post. Hasta la próxima;)
La Terminal de
Linux (IV).
Comandos para
Crear, Leer o
Editar Archivos
En esta parte verás de forma muy rápida y directa como crear y leer
archivos de texto desde la línea de comandos, incluir lineas de texto
en un archivo, o imprimir su contenido por pantalla para poder
visualizarlo de antemano. Para ello, aprenderás a utilizar de forma
comandos como touch, cat o more, y también a defenderte
medianamente bien con Nano, un editor de archivos en modo texto, al
igual que Gedit pero para ser usado desde la termina.
Antes de empezar, decirte que este post forma parte de una serie de
artículos enfocada a profundizar en el uso del intérprete de
comandos de Linux. Al final del post tienes enlazados el resto de
posts. Dicho esto, ¡vamos allá!
REPORT THIS AD
Tabla de contenidos:
1.
1.
2.
1.
2.
3.
3.
1.
2.
4.
Como crear archivos de texto
Touch
Imprimir el contenido de un archivo
Cat
More
Less
Leer y editar archivos de texto
Nano
Vim
Más información
Como Crear Archivos de Texto
Como en los casos anteriores, voy a mostrar un listado con algunos
ejemplos de los comandos más utilizados a la hora de crear y leer
ficheros de texto desde Bash. Empezaré por el caso de crear un
fichero de texto vacío, para el cual utilizaré el comando touch.
Touch
El comando touch te va a permitir, entre otras cosas, crear un archivo
de texto vacío (en formato .txt) al que, posteriormente, podrás
agregarle el contenido que desees de forma manual, o mediante el
uso de otros comandos que veremos.
touch nombrearchivo
Esta opción te generará un archivo de texto vacío de
nombre nombrearchivo, en el directorio en el que te encuentres (por
defecto el directorio del usuario con el que estás logueado en la
terminal)
touch nombrearchivo1 nombrearchivo2 nombrearchivo3
En este caso, el comando te generará tres archivos de texto vacíos,
con los nombres nombrearchivo1, nombrearchivo2,
y nombrearchivo3, y en el directorio de trabajo en el que te
encuentres.
Imprimir el Contenido de un
Archivo de Texto
REPORT THIS AD
Siguiendo con el caso de visualizar el contenido de un fichero desde
la misma consola, los comandos más útiles en este sentido
son cat y more y less, cada uno con sus particularidades, como verás
a continuación.
Cat
El comando cat es uno de los comandos más utilizados cuando se
trata de manejar archivos de texto (en formato .txt) desde la terminal.
Entre sus múltiples opciones, está la posibilidad de crear un archivo,
imprimir por pantalla su contenido, etc. Veamos algunos ejemplos:
Este comando te creará un archivo de texto vacío, de
nombre nombrearchivo, y te permitirá teclear el contenido que desees
introducirle. Una vez tecleado el contenido, puedes finalizar mediante
la combinación CTRL+D.
cat > nombrearchivo
contenido línea 1
contenido línea 2
CTRL+D
Esta orden te permitirá imprimir por pantalla todas las lineas de texto
del archivo de texto de nombre nombrearchivo. El archivo indicado
debe encontrarse en el directorio de trabajo actual.
cat nombrearchivo
Esto te imprimirá por pantalla, de forma conjunta, el contenido de los
archivos indicados, en este caso nombrearchivo1 y nombrearchivo2.
cat nombrearchivo1 nombrearchivo2
Este comando te imprimirá por pantalla el contenido del archivo de
texto de nombre nombrearchivo, mostrándote, además, el número de
línea al principio de cada línea de texto.
cat -n nombrearchivo
Muy similar al anterior, con la diferencia de que a la hora de numerar
las líneas de nombrearchivo, solo se numeran aquellas que contienen
texto, y se descartan las lineas en blanco.
cat -b nombrearchivo
Hay muchas más opciones, pero creo que con estas pocas ya ves
más o menos por dónde va la cosa. Como suelo decir, si quieres
profundizar más en el uso del comando lo más recomendable es ir a
la misma página de manual tecleando man cat en la misma terminal.
More
El comando more es otro comando útil para imprimir por pantalla el
contenido de un archivo de texto. Esencialmente es igual que el
comando cat, con la diferencia de que el comando more pagina el
contenido, y es más adecuado cuando para leer archivos largos.
Veamos algunu ejemplo:
Esto te permitirá imprimir por pantalla el contenido del archivo
‘nombrearchivo’, pero con el resultado paginado. Así, primero se
mostraran las líneas que quepan en una pantalla sin hacer scroll. El
resto serán accesibles mediante la tecla espacio.
more nombrearchivo
Less
El comando less, al igual que los comandos cat y more,te permitirá
leer el contenido de un archivo de texto. A diferencia de los otros dos,
éste te mostrará el contenido en modo editor de texto, y para moverte
por el contenido deberás utilizar combinaciones de teclado.
Con esta opción podrás leer al contenido del archivo indicado,
moviéndote por las distintas líneas a través del teclado.
less nombrearchivo
Una vez en modo texto, tienes varias opciones para desplazarte
verticalmente a lo largo de las diferentes líneas.
Una opción es haciendo scroll con el ratón, que si utilizas la aplicación
de la terminal que vienen con el entorno de escritorio podrás hacer sin
problema.
Si no funciona esto, puedes utilizar los controles de desplazamiento
del teclado. Al estar en modo lectura, deberían funcionar sin problema
tanto si estás en el entorno de escritorio o en una sesión de terminal
TTY.
Otra opción es utilizar la tecla g y luego Enter. Esto avanzará, por
defecto, una línea adelante, pero puedes avanzar cualquier número
de líneas que deseas, introduciendo el número justo después de
marcar la g.
:1
Otra opción es utilizar la tecla espacio. Esto hará algo similar a
un AvPag.
Finalmente, para salir del modo lectura y volver a la terminal, tan solo
debes marcar la tecla q.
Leer y Editar Archivos de Texto
Finalmente acabamos con Nano y Vim, dos potentes editor de textos
en modo consola, muy conocidos entre los usuarios mas geeks.
Empezaré por Nano, por ser más sencillo de utilizar y aprender, y
acabaré con Vim, bastante más complejo al principio. Ambos son
editores de texto por consola, pero sus puntos en común digamos que
acaban aquí.
Nano
Nano es un editor de textos para la terminal, que más que para leer
archivos sirve para modificarlos y editarlos, aunque para esta guía
también nos vale perfectamente para abrir el archivo y visualizar su
contenido desde la línea de comandos. A continuación tienes las
principales opciones que ofrece, así que te animo a que vayas
jugando con ellas para ir familiarizándote.
Primero de todo, veamos como abrir el editor de textos Nano, algo
que puedes hacer fácilmente con el siguiente comando.
nano
Una vez abierto, si te fijas en la parte inferior, verás que se muestra
las diferentes combinaciones de teclas que necesitaras a la hora de
trabajar con archivos.
CTRL+R
Combinación de teclas para indicarle un archivo de texto a Nano para
que lo abra y muestre su contenido por la consola.
CTRL+V
Estando dentro de Nano y con el archivo abierto en la consola, esta
combinación sirve para avanzar a la página siguiente.
CTRL+Y
De modo similar a la combinación anterior, esta sirve para retroceder
a la página anterior.
CTRL+W
Esta combinación te servirá para introducir un carácter o grupo de
caracteres y buscar en el texto cualquier letra o palabra que coincida
con el parámetro de búsqueda.
CTRL+X
Para cerrar el archivo una vez lo hayas terminado de visualizar en la
consola. Eso cerrará el editor de texto Nano, y volverá a aparecer el
promp de Bash por consola.
Estas son solo algunas combinaciones de teclado típicas, para poder
moverte con soltura con Nano. A partir de ahí, si deseas profundizar
con poco más con él, te dejo con el siguiente vídeo de introducción,
para que
Ahora que tienes una idea de como funciona Nano, si te ves con
ganas, puedes echar un ojo a una alternativa que te ofrecerá un modo
de uso totalmente distinto.
Vim
Vim es un editor de texto por consola muy potente y a la vez conocido
entre los usuarios más geeks. A diferencia de Nano, que puede
utilizarse con relativa facilidad y soltura desde el primer momento, con
Vim la cosa cambia. Digamos que la curva de aprendizaje es mucho
mayor.
Para empezar, Vim no suele venid pre-instalado en la mayoría de
distribuciones, pero si que debería estar disponible en los repositorios
oficiales, por lo que podrás instalarlo a golpe de comando. En caso de
que te encuentres en Ubuntu, Debian, o cualquier derivada, puedes
hacerlo con el siguiente comando:
sudo apt install vim
Para abrir el editor Vim basta con abrir una ventana de terminal, y
teclear el siguiente comando.
vim
Con esto verás un pequeño texto de presentación del proyecto.
Estando ahí, puedes abrir el fichero de ayuda de Vim desde el propio
editor. Basta con introducir esta pequeña sentencia, seguida de Intro.
:help
Vim requiere una curva de aprendizaje más lenta que otros editores
de texto, y obviamente no se aprende con solo leer un post o ver un
par de vídeos. Aún así, si deseas aprender a utilizarlo, te dejo con
este vídeo introductorio de DistroTube (en inglés), para empezar con
los primeros comandos.
Este es un vídeo introductorio, pero probablemente en el mismo canal
irán apareciendo más vídeos sobre Vim.
Esto Continua
Tampoco me quiero ir sin recordarte que este post forma parte de una
serie de artículos enfocados a profundizar en el uso de la terminal. Si
quieres seguir con el tema, te presento los enlaces hacía el resto de
posts de esta serie:
1.
2.
3.
4.
5.
6.
7.
8.
Como utilizar la línea de comandos. Primeros pasos
Moverte a través de directorios, copiar y pegar archivos, etc
Consultar información del sistema
Crear, leer o editar archivos de texto
Visualizar y finalizar procesos en ejecución
Identificar diferencias entre dos archivos de texto
Comprimir y descomprimir ficheros por consola
Iniciar, detener o reiniciar servicios
Si conoces más comandos para crear, leer o concatenar archivos de
texto, no dudes en hacer tus propias aportaciones a través de los
comentarios. La idea es que el post se pueda ir actualizando y
completando con más información.
Para terminar, si has encontrado útil el artículo, me servirá de gran
ayuda si lo compartes en Twitter. Hasta la próxima;)
Descargar