Cerrar vista de Texto Simple

Linux para principiantes: conociendo la Terminal

¿Eres una persona que ha utilizado Windows o Mac pero en tu trabajo te han solicitado saber utilizar también Linux?, ¿Eres una persona que simplemente quiere aprender más sobre las diferentes opciones en sistemas operativos?, ¿o simplemente eres una persona a la que ya le fastidió Windows? entonces estás lista para dar el paso y cambiarte a Linux ¿correcto? Debo avisarte que si bien te espera una buena racha de jaquecas al inicio, el resultado a largo plazo lo va a compensar totalmente.

Esta guía debería ayudarte a ahorrarte uno que otro estrés innecesario en lo que te vas familiarizando con este sistema operativo. Antes que nada quiero aclarar que este artículo da por hecho que ya tienes instalada alguna distribución de Linux en tu computadora. En otro momento haré una pequeña guía de como instalar diferentes versiones de Linux, pero por esta ocasión enfoquémonos en comenzar a utilizar la distribución que ya tienes instalada para este momento.

Tips antes de comenzar:

  1. Mientras comienzas a utilizar algún sistema operativo (de ahora en adelante le llamaremos OS) basado en linux te recomiendo ampliamente que no almacenes ningún archivo importante aún en tu computadora, ten a la mano alguna memoria o disco duro externo en donde mantengas respaldado en todo momento tu contenido más importante: fotos personales, música, archivos de trabajo, documentos, libros, etc.
  2. Ten también siempre a la mano el CD o USB-stick de instalación de tu OS basada en linux. Si alguien más te hizo el favor de instalarte el OS linux que estas actualmente utilizando, solicítale que te deje una copia.
  3. No vayas a confiarte y comenzar configurar y personalizar demasiado tu entorno en el OS linux aún, pues en caso de algún accidente (que son muy comunes al inicio) habrás desperdiciado muchas horas, quizá días, en personalizar tu entorno para perderlo todo. Esto puede generarte muchísima frustración, así que procura comenzar con esta guía por un tiempo, para así familiarizarte con todos los posibles errores fatales que te obligarían a formatear y re-instalar el OS (por eso es importante la recomendación número 2). Una vez que este periodo de prueba y error concluya, entonces sí podrás personalizar tu entorno por completo sabiendo que las posibilidades de perderlo todo serán mínimas.
  4. Evita pensar en términos de Windows o de Mac, pues no se asemejan a la experiencia de Linux. Apégate a esta nueva forma de utilizar la computadora y si bien utilizaré ciertas comparaciones o alegorías de los OS comerciales ya mencionados, será solamente con el propósito de contrastar experiencias de usuario y facilitarte la transición, pero es conveniente que no inicies queriendo sentir una experiencia similar pues te confundirá mucho.

Iniciando sesión en Linux OS

Antes que nada, es importante conocer un poco la relación que mantiene la Interfaz de Usuario de las distribuciones OS Linux con la arquitectura de fondo de las mismas, y para esto necesitamos un poco de historia:

Linux es el nombre que recibe el núcleo más profundo de los varios OS basados en linux. Se le conoce como Kernel Linux, programado por Linuz Torvald a inicios de los 90's. El kernel es el responsable de comunicarse con los componentes físicos, o hardware, de un ordenador: ROM, RAM, periféricos como el teclado, la pantalla; digamos que es la parte del software que ordena y administra los recursos de tu computadora, que son limitados dependiendo de la capacidad de memoria, el tipo de procesador, si es una computadora de 64 bits o de 32 bits, y un largo et cétera altamente técnico.

Ahora, encima del núcleo Linux, el cual fue registrado bajo un GPL (General Public License) lo cual permite que cualquiera en el mundo lo pueda modificar y volver a publicar sin penalizaciones legales de ningún tipo, encontramos la siguiente capa de código, la cual se conoce como Proyecto GNU. Este proyecto ha sido liderado desde el inicio por Richard Stallman, y en sus inicios, a finales de los 80's, solía tener como objetivo el utilizar su propio núcleo (como el núcleo de Linux del que ya hablamos), pero con la aparición del núcleo de Linuz Torvald, la tendencia ha sido a utilizar el núcleo Linux. Es así que llegamos a lo que aquí estaremos enfocándonos en aprender a cómo utilizar: Sistemas Operativos basados en GNU-Linux.

Así que, aunque coloquialmente se les llama Linux, a secas, a todas las distribuciones (que de aquí en adelante les llamaremos distros), es importante que sepamos─y más adelante veremos por qué la importancia─que su nombre completo es GNU-Linux. Una manera muy sencilla de ejemplificar la independencia entre Linux y GNU viene siendo el caso de Android, así es, ese OS que viene instalado en básicamente cualquier smartphone que no sea de Apple. Android usa el núcleo Linux, pero no usa GNU, sino su propio entorno. Es como una Rocaleta, Linux es el chicle del centro, y GNU o Android son dos posibles capas, digamos de manzana o de piña, que conforman la segunda capa de la paleta.

Ahora, regresando a GNU-Linux, encima de este combo viene otra serie de capas de código, y estas capas son las que vamos a conocer como distros. Las dos distros principales más populares son Debian y Ubuntu. Ubuntu a su vez se basa en Debian, pero bifurcaron por cuestiones de filosofía de trabajo: mientras que Debian es un OS GNU-linux que se apega radicalmente al desarrollo completamente libre de software, Ubuntu se enfoca más en la adaptación de GNU-linux a un mundo en donde la productividad del día a día está muy relacionada con el uso de software privativo. En pocas palabras Debian es un OS de la tribu hacker, y Ubuntu es un OS enfocado en el usuario común.

Conocer esto anterior es importante, porque significa que existe una amplia compatibilidad de Ubuntu con todo aquello que provenga de Debian, pero no así a la inversa. A partir de aquí podremos entender que la siguiente capa de la Rocaleta linuxera se construye─bajo la misma lógica que hasta ahora vamos conociendo─alrededor de Debian o bien de Ubuntu. Irónicamente a esta capa suele conocérsele como el flavor, que es "sabor" en inglés.

En la esquina de Debian podemos encontrar obviamente antes que nada pues GNU-Linux Debian que viene siendo el original y que hasta la fecha sigue siendo desarrollado. Posteriormente encontramos diversos sabores de Debian como Kali Linux, Linux Mint Debian Edition, Bunsenlabs, Crunchbang Plusplus, Tails, Raspbian, Trisquel, DeepinOS, que desde el momento que los instalas puedes darte cuenta que son de la familia Debian, y los propósitos de estos sabores suelen ser bastante específicos: seguridad, privacidad, hackeo, desarrollo web o de software.

En la esquina de Ubuntu podemos encontrar, igual que con el caso anterior, antes que nada pues el original Ubuntu OS. Posteriormente encontramos diversos sabores como Linux Mint, Ubuntu Budgie, Elementary OS, Zorin OS, Ubuntu MATE, Lubuntu, Kubuntu, Xubuntu, Ubuntu Studio, Ubuntu Pi, Deepin OS. Desde el momento de la instalación, con estas distros-sabores es fácil sentir cómo están enfocadas, como buen Ubuntu, al usuario promedio.

Una pequeña aclaración con DeepinOS, fue basado en Ubuntu hasta el 2015, y se notaba fácilmente porque es muy vistoso y amigable, pero desde ese año se ha migrado a ser basado en Debian, manteniendo aún así esa presentación amigable y vistosa, es un caso, al menos de los que conozco, excepcional de un OS amigable basado en Debian.

Como mención especial, para contextualizar un poco más, mencionaré una distro Linux llamada RedHat, la cual es independiente, no es popular como Debian o Ubuntu, y no está basada en ninguna de estas dos, digamos que es como un Android, que si bien usa el núcleo Linux más bien representa su propia estirpe. RedHat Linux tiene sus propios sabores como Fermi, el cual usan en FermiLabs, o CERN, que usan pues en el CERN.

[inicio de cita]>

El Laboratorio Nacional Fermi es un laboratorio de física de altas energías, llamado así en honor al físico Enrico Fermi, pionero en física de partículas. En el Fermilab está instalado el segundo acelerador de partículas más potente del mundo (el primero es el Gran colisionador de hadrones), el Tevatrón, usado para descubrir el quark cima.

[fin de cita // referencia de cita]> Wikipedia: Fermilabs [inicio de cita]>

La Organización Europea para la Investigación Nuclear (nombre oficial en español),​ comúnmente conocida por la sigla CERN (sigla provisional utilizada en 1952, que responde al nombre en francés Conseil Européen pour la Recherche Nucléaire, es decir, Consejo Europeo para la Investigación Nuclear), es una organización de investigación europea que opera el laboratorio de física de partículas más grande del mundo.

[fin de cita // referencia de cita]> Wikipedia: CERN

Esta mención anterior fue para darnos cuenta que Linux no es ningún sistema operativo de tercera, no es un Frankenstein mal armado, es un sistema operativo de primera utilizado en niveles de especialización extremadamente demandantes y complejos mucho más que Windows o Mac, estos últimos han librado una batalla de décadas para desprestigiar a Linux, obviamente porque es un OS de licencia libre (modificable por cualquiera) y generalmente de distribución gratuita, lo cual afecta los bolsillos de Bill Gates y de Steve Jobs. En fin, Linux es una herramienta altamente compleja y confiable, y en la actualidad, ya que Gates y Jobs realmente perdieron la batalla de desacreditación y tuvieron que retractarse , mucha atención se ha volcado en estos OS libres y cada vez hay más y mejores herramientas que pueden competir bastante de cerca─y a veces superar─a sus contrapartes privativas de Microsoft, Adobe, Apple, et cétera.

[pie de imagen]> Pantalla de ingreso, en este caso de GNU-Linux Debian.

Si para este momento aún no has tenido un derrame cerebral, continuemos ahora sí con tu inicio de sesión. Para este momento es muy probable que no sepas que tipo de Linux tienes instalado: ya picaste el botón de encendido de tu ordenador, cargó las pantallas negras con letras blancas de siempre, el logotipo de la marca de tu computadora, y ahora estás ante una pantalla de inicio, similar a Mac o a Windows, pero solo en la superficie. Quizá esta pantalla de inicio te ha pedido usuario y contraseña o quizás no, esto depende de la configuración con la que fue instalado Linux, pero no importa, lo que realmente importa para este punto es que sepas que tendrás una relación íntima y continua con algo que se le conoce como La Terminal.

A diferencia de Mac o de Windows, en donde el principal objetivo es alejarte de su esqueleto, es decir de lo que alguna vez en Windows se conocía como MS-DOS, por poner un ejemplo, que es la típica pantalla negra con puras letras, y mucho más en entornos Mac que priorizan la interface altamente vistosa, 4K, HD, retina-display, con millones y millones de colores en pantalla y acabados de cristal transparente, en Linux tu interacción con la terminal será constante, el escribir texto directamente en esa pantalla negra para realizar acciones tan comunes como instalar un programa será lo normal. La terminal es la interface que te permite interactuar con tu computadora através de líneas de comando.

Por esto es que será importante conocer los comandos básicos para poder ingresarlos en la terminal, pues sin ellos no podrás avanzar, sobre todo si por algún tipo de suerte elegiste una distro basada en Debian. Te preguntaras ¿por qué revisamos tanta historia de linux antes de este punto práctico? la respuesta es contundente: tienes que saber que diablos significa un entorno gráfico y que significa línea de comando, y en qué afectan los comandos que vayas a introducir o los íconos que vayas a estar picando con el mouse en la interfaz gráfica. Recuerda que con Linux el asunto pasa de ser un simple usuario, a ser una persona que debe comprender lo mínimo del procesamiento de datos de un ordenador y solo a partir de eso podrás convertirte en un usuario, piénsalo como agregar una ligera capa de complejidad al asunto de solamente ser un usuario.

Entonces, una cosa es el GUI, por sus siglas en inglés Interface Gráfica de Usuario, y otra cosa es el CLI, por sus siglas en inglés Interface de Líneas de Comando. Ambas interfaces se comunican con la misma parte de tu computadora: con el GNU-Linux que está instalado por debajo de la distro y del flavor, que ahora ya sabes que significan esos dos términos. El ícono de la terminal usualmente se ve algo así, y varía muy poco en cada distribución y flavor realmente:

[pie de imagen]> ícono común de la terminal

Ahora sí, lo primero que harás en tu entorno gráfico es buscar el lanzador de la terminal, es decir el ícono de la terminal para hacerle clic. Este suele encontrarse en forma de ícono de atajo ya sea en el escritorio, en la barra de tareas, o bien en el Menú de aplicaciones (ese que en Windows se llamaba menú de inicio, o que en Mac sería similar al Launchpad).

[pie de imagen]> Si el entorno gráfico de escritorio que usas es XFCE, KDE Plasma, o MATE, el menú de aplicaciones se verá algo así, similar al Menú de Inicio de Windows.
[pie de imagen]> Si tu entorno gráfico de escritorio es basado en GNOME, el menú de aplicaciones se verá algo así, similar al Launchpad de Mac.

Nota: no te preocupes si no sabes cual entorno gráfico de escritorio tienes, hay cientos, los más comunes son GNOME, KDE Plasma, MATE, XFCE, pero no tienes que saber cual es para este momento, solamente te pongo los pantallazos para que no te atores o te pierdas y comiences a diferenciarlos.

[pie de imagen]> Cuando abras la terminal, se verá algo así: una ventanita en negro, con letras blancas.

Una vez abierta la terminal (que se ve como cualquier otro programa común y corriente en una ventanita flotando sobre tu escritorio con sus respectivas "minimizar, maximizar y cerrar" en el borde superior de la ventana) tenemos que entender que Linux OS opera sobre directorios, en Windows o en Mac gráficamente se representan estos directorios como Folders, en Linux también se pueden accesar como Folders en el GUI, pero realmente (y es lo que nos permite ver el CLI) es que nos movemos entre directorios.

Nota: Entender la diferencia y la relación entre directorios, particiones de disco, formatos y extensiones de archivo nos permitirá posteriormente el saber como instalar cualquier distro y sabor de Linux, pero eso lo veremos más adelante.

Nota: estaré usando la palabra directorio como sinónimo de folder, y a veces las dos al mismo tiempo folder/directorio, pero todo eso es lo mismo.

[email protected]:~$

Esta es la anatomía básica de la línea de comando cuando abres una terminal. Primero tenemos el nombre de usuario, ese usuario con el que ya sea que por defecto se inició la sesión, o bien si te llegó a pedir usuario y contraseña al inicio, será el usuario con el que elegiste iniciar sesión. Luego tenemos el signo de arroba @ que significa "at" que en español significa algo así como "se encuentra en", y finalmente tenemos el nombre de la computadora, este último es un nombre que al momento de instalar linux te pregunta ¿cómo quieres que se llame esta computadora?. En resumen, lo que esta línea dice es: «este usuario» + «se encuentra en» + «la computadora con este nombre».

Luego de esto viene un «dos puntos (:), virgulilla (~), símbolo de dinero ($)». Esta combinación específica me dice que estoy operando como un usuario con privilegios limitados. La virgulilla literalmente nos está diciendo "estoy aquí en tu folder personal", pero no nos dice en dónde está ese folder, solo está anunciando que se encuentra allí, por lo cual el primer comando que veremos es el que nos permite saber en dónde diantres estamos.

[email protected]:~$ pwd

El primer comando que revisaremos es pwd. Para ejecutar pwd basta con ser un usuario con privilegios limitados, por sus siglas en inglés pwd significa "directorio presente de trabajo" (present working directory), y este comando al escribirlo y darle Enter, te mostrará en qué directorio se encuentra actualmente tu línea de comando. Imagínalo como un "cursor de mouse" rudimentario, que te está señalando en qué directorio/folder exactamente se encuentra el cursor en este momento.

Este señalamiento de localización se desglosa a manera de algo que llamamos path en inglés que traducido significa algo como "camino", es decir, el camino de directorios, y se representa con diagonales: « /home/nombre-de-usuario/Música/Género/Rock/70s » por poner un ejemplo, en este caso nos encontramos en la carpeta 70s, que esta dentro de la carpeta Rock, dentro de la carpeta Género, dentro de la carpeta Música, y así.

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$

Nota: Como ya dije antes, el signo de virgulilla (~) es la manera resumida de decir "home/nombre-de-usuario".

Aquí, al darle enter al comando pwd, el resultado fue "home/nombre-de-usuario", lo que significa que me encuentro actualmente en el directorio "home", y dentro de "home" me encuentro en el directorio que es mi folder personal que tiene por nombre exactamente el mismo nombre de usuario, pero ojo, no son lo mismo, una cosa es mi «nombre de usuario» y otra cosa es el nombre del directorio/folder de mi usuario que generalmente será idéntico a mi nombre de usuario. Imagínalo como si alguien que se llama Pepe Flores, y que afuera de la puerta de su hogar tiene un mosaico decorativo que dice Pepe Flores, evidentemente Pepe y la casa que dice Pepe son dos cosas diferentes, una nos señala que es el hogar de Pepe, y el otro es el nombre de Pepe que la habita.

El segundo comando que veremos es ls. Este por sus siglas en inglés significa listado, y basta con ser un usuario con privilegios limitados para ejecutarlo. De igual manera, escribimos el comando y damos Enter en nuestro teclado.

[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$

Vemos que nos ha regresado un listado de nombres. Estos nombres corresponden a los directorios y archivos que se encuentren dentro del directorio, en el que con ayuda de pwd, sabemos que allí nos encontramos. Nos esta diciendo que dentro del directorio/folder que se llama igual a mi nombre de usuario (recuerda el ejemplo de Pepe Flores y la casa de Pepe Flores de allá arriba) se encuentran los folders de Música, Imágenes, Videos, y está tambien un archivo de texto (.txt) que se titula holamundo.

El siguiente comando es cd, cd /, y cd .. . Por sus siglas en inglés cd significa cambiar directorio, y las variantes con espacio + diagonal (/) y con espacio + punto punto (..) hacen referencia a operaciones relacionadas con cambiar directorios.

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$ cd ..
[email protected]:/home$

Aquí vemos que primero que nada pregunte con pwd ¿en dónde estoy? y me respondió "estás en home/nombre-de-usuario", que de manera resumida se dice ~, y por eso se ve así: [email protected]:~$, que es equivalente a decir [email protected]:home/nombre-de-usuario$. ¿Sí ves como entre (:) y ($) dice "home/nombre-de-usuario" o bien "~"? es exactamente lo mismo pero resumido.

Ahora, luego de saber en dónde estoy, le pido que haga un listado de lo que está en ese directorio con ls. Y vemos que como antes, me responde que hay tres folders y un archivo .txt ahi mismo.

Ahora, le pido que cambiemos de directorio a uno antes del cual estoy ahora mismo, así que si estoy en "home/nombre-de-usuario", con cd .. me llevará a "home" y me lo señalará cambiando la virgulilla (~) que recordemos que es la manera resumida de decir literalmente "home/nombre-de-usuario", por "home", colocándolo entre dos puntos (:) y signo de dinero($), así: [email protected]:/home$

Nota: recuerda que el comando se escribe "cd" + [espacio] + ".."

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$ cd ..
[email protected]:/home$ ls
nombre-de-usuario
[email protected]:/home$ cd nombre-de-usuario
[email protected]:~$

Ahora, estaba yo en el directorio "home", ¿recuerdan? y le voy a pedir que me liste el contenido del folder home (con el comando ls), a lo cual me responde que existe otro folder dentro de home, un solo folder, y este folder se llama "nombre-de-usuario", así que le digo a la terminal que cambie de directorio a "nombre-de-usuario". Y entonces cambia de :/home$ a :~$ ¿recuerdan por qué? porque ~ es una forma resumida de decirnos que estamos específicamente en /home/nombre-de-usuario.

Ahora, le voy a decir que me lleve de /home/nombre-de-usuario al primer folder al que tengo acceso como usuario, que le llamamos root, o raíz en inglés.

Para esto le voy a escribir cd /

Este comando, cd /, nos ahorra el hacer cd .. dos veces, ya que para ir manualmente de la carpeta personal del usuario /home/nombre-de-usuario (cuya abreviatura es ~) nos tomaría retroceder 2 niveles, de /home/nombre-de-usuario, a /home, a /

[email protected]:~$ cd /
[email protected]:/$

Nota: se escribe "cd" + [espacio] + "/"

¿Viste como cambió :~$ por :/$ ? Esto nos dice que nos ha llevado del directorio ~ (recuerda que es la manera resumida de decir /home/nombre-de-usuario) al directorio /. Este directorio raíz, o root, se simboliza como una diagonal solitaria (/) porque no hay nada más abajo de este directorio con lo que podamos interactuar como usuarios.

[email protected]:~$ cd /
[email protected]:/$ ls
bin    lib    mnt   root  sys  var  run
boot   etc   lib32  lost+found  opt  srv
cdrom  home  proc  sbin  usr tmp

Ahora, en esta carpeta root, o raíz, voy a pedirle que liste su contenido, con ls. Como podemos ver, nos devuelve un listado con muchos folders con nombres extraños (bueno que hasta ahora no sabemos que significan, pero no importa por el momento no es reelevante). Estos folders son el corazón de tu sistema operativo, contienen archivos altamente sentibles que de modificarlos podrías romper todo y dejar inservible tu OS.

Afortunadamente estos folders si bien son visibles y puedes ingresar y listar su contenido (con cd y ls), no puedes escribir ni modificarlos, puesto que hasta ahora hemos aprendido a operar bajo un usuario de privilegios limitados, mientras que para escribir o modificar estos archivos de la raíz, necesitamos ser un usuario de privilegios elevados, que es justamente a lo que vamos a continuación, pero antes de eso, brevemente hablaré sobre las posiciones absolutas.

¿Recuerdas que ~ significa /home/nombre-de-usuario, y que / significa carpeta raíz (root)? Bueno, pues en la terminal puede aprovechar estos dos símbolos para utilizarlas como comandos de posición absoluta, por ejemplo, comenzamos abriendo la terminal y preguntándole en dónde estamos:

[email protected]:~$ pwd
/home/nombre-de-usuario

Nos dirá que estamos en ~, es decir en nuestra carpeta personal, o lo que es también lo mismo /home/nombre-de-usuario. Ahora, queremos navegar a la carpeta llamada /sys, que como vimos en el ejemplo anterior, se encuentra justo dentro de la carpeta raíz, es decir, relativo a la carpeta en donde ahora mismo estamos que es la carpeta personal, tendríamos que bajar dos niveles ¿correcto? Y eso lo lograríamos con cd ..

[email protected]:~$ cd ..
[email protected]:/home$ cd ..
[email protected]:/$ pwd
/
[email protected]:/$ cd sys
[email protected]:/sys$

Dimos dos veces el comando de cd .. , lo que nos regresó del nivel al que se encuentra nuestra carpeta personal ~, dos niveles hasta llegar al folder o directorio raíz. Es por esto que luego de dos comandos cd .. , cuando yo utilizo el comando pwd para preguntarle ¿ahora en dónde me encuentro? la respuesta es una simple diagonal (/), esto es porque, como ya vimos, el signo de diagonal solitario representa al directorio raíz de nuestro OS. Y si nos fijamos bien, entre los dos puntos (:) y el signo de dinero ($) lo que dice ahí es tambien una diagonal solitaria (/), lo que nos indica que estamos en la carpeta raíz :/$

Luego escribimos cd sys, y listo, llegamos al folder /sys, que esta justo dentro de la carpeta raíz (/).

Ahora bien, esto es la manera manual ¿pero existe una manera más rapida, en menos pasos de hacer este movimiento? sí, con la ayuda de valores absolutos. De hecho en el ejemplo antepasado ya usamos este atajo, lo vuelvo a pegar aquí abajo para recordarlo:

[email protected]:~$ cd /
[email protected]:/$ ls
bin    lib    mnt   root  sys  var  run
boot   etc   lib32  lost+found  opt  srv
cdrom  home  proc  sbin  usr tmp

¿Recuerdas este ejemplo anterior en donde nos movimos de nuestra carpeta personal simbolizada por ~, hasta la carpeta raíz simbolizada por /, en un solo movimiento y luego ejecutamos el comando ls para ver el contenido de la carpeta raíz? Bueno pues este es el inicio de cómo utilizar localizaciones absolutas. Son absolutas porque parten de una base absoluta (y no una relativa), es decir, de una carpeta específica.

Intentaré explicar la diferencia entre relativo y absoluto así: cuando escribimos cd .. estamos solicitando un cambio de directorio relativo al lugar en donde nos encontramos ahora mismo, mientras que cuando decimos cd /home, por ejemplo, estamos, no partiendo del punto relativo a donde estamos ahora mismo, sino de un lugar específico lejano pero que Linux conoce y entiende que tiene que partir desde ese lugar en específico.

En este ejemplo siguiente, nos encontramos dentro de la carpeta "Música" que se encuentra dentro de nuestra carpeta personal ~ (que es lo mismo que /home/nombre-de-usuario/Música)

[email protected]:~/Música$ cd /sys
[email protected]:/sys$

Entonces, en este ejemplo, estamos en nuestra carpeta personal ~, y le decimos cd /sys, lo que significa "llévame de este lugar «/home/nombre-de-usuario/Música» directamente a ese lugar que tu conoces como / que es el directorio raíz y de ahí busca y llévame al folder llamado sys que esta dentro de ese directorio raíz". Esto es posible porque Linux sabe exactamente qué significa (/), significa un lugar, un lugar específico llamado directorio raíz, y al decirle /sys, Linux sabe perfectamente que del directorio raíz (/) tendría que haber un folder/directorio llamado sys. De no existir tal folder llamado sys, Linux simplemente nos responderá que ese directorio no existe.

Los dos lugares exactos, absolutos, que Linux conoce son /, que es el folder raíz, y ~, que es la carpeta personal del usuario. Entonces podemos usarlos como valores absolutos para movernos rápido entre carpetas aunque nos encontremos "lejos" de dichos folders que son nuestro destino final.

[email protected]:~/Música$ cd /sys
[email protected]:/sys$
[email protected]:/sys$ cd ~Música
[email protected]:~/Música$

¿Viste? nos movimos de un solo golpe, desde una carpeta lejana hasta otra, y de regreso, sin tantos cd .. y cd de por medio.

Usuarios con privilegios altos

Lo siguiente que aprenderemos es sobre usuarios con privilegios altos. Hasta ahora nos hemos familiarizado con la nomenclatura de «[email protected]:~$» en donde "nombre-de-usuario" me dice que estoy interactuando con Linux como tal usuario con ese nombre, y el símbolo de dinero ($) también me anuncia que soy un usuario normal con privilegios limitados.

Ahora vamos a ver, qué rayos significa lo siguiente, y como lograr ese estado.

[email protected]:/#

Como podemos ver, a diferencia de nuestro estado anterior ([email protected]:~$) este no dice nombre-de-usuario, dice root, y en lugar de ~$ ahora dice /# . Bueno, no nos asustemos, que todo sigue siendo lo mismo, o buen casi lo mismo. En esta ocasión dice root porque estamos en una sesión de administrador, o lo que es lo mismo, un usuario raíz, o root user en inglés, por eso dice "[email protected]", y al final el /# nos está anunciando, primero con el signo de gato (#), que somos un usuario con privilegio de administrador del equipo, y la diagonal (/) simplemente, como antes ya vimos, que estamos en el folder raíz.

Para lograr este privilegio de administrador podemos hacer dos cosas, la primera:

[email protected]:~$ su
Contraseña:
[email protected]:/#

En este caso, utilizamos el comando su, que significa super-usuario, damos Enter en nuestro teclado e inmediatamente nos va a pedir la Contraseña del root. Ojo, no nos está pidiendo la contraseña del usuario "nombre-de-usuario", sino la contraseña del usuario root.

Para esto tenemos que entender que Linux permite agregar varios usuarios, también llamadas sesiones, en una misma computadora. Por eso nos especifica con "@nombre-de-computadora" el nombre de la computadora en donde se alojan cualquier cantidad de usuarios que querramos incluir. Pero aparte de los usuarios/sesiones que manualmente registremos al instalar el OS o posteriormente (siempre puedes crear nuevos usuarios), Linux agrega un usuario por defecto llamado root, y que es un usuario independiente con los máximos privilegios, un administrador automático vaya. Esta cuenta generalmente existe en el sistema pero no necesariamente viene completamente configurado, es decir, generalmente cuando instalas tu OS, solamente te pedirá registrar mínimo un usuario con su contraseña personal, pero no te pedirá ingresar una contraseña para el usuario automático root.

Es así que normalmente no sabrás tu contraseña de usuario root, porque nunca la pidió crear desde un inicio, entonces a menos de que posterior a la instalación tú mismx configures al usuario root y le des una contraseña propia, no tendrás la contraseña de root. Pero no te preocupes, esto es completamente normal y generalmente no es necesario siquiera el darle una contraseña propia al root.

Entonces, si tu ejecutas el comando su, e ingresas una contraseña equivocada, porque como ya dijimos puede que ni siquiera exista tal contraseña, y como también ya dijimos esa contraseña del usuario root no es la misma que la del usuario regular (nombre-de-usuario), simplemente te dirá Fallo de Autenticación y te regresará a tu usuario normal.

[email protected]:~$ su
Contraseña:
su: Fallo de Autenticación
[email protected]:~$

Cuando esto ocurra, y necesites entrar al usuario root, lo que harás es escribir el comando sudo su, lo que te va a resultar en una solicitud de Contraseña, pero esta vez sí debes ingresar tu contraseña personal:

[email protected]:~$ sudo su
[sudo] Contraseña para nombre-de-usuario:
[email protected]:/home/nombre-de-usuario#

Ahora ya accediste como super usuario o lo que es lo mismo usuario root, pero desde tu cuenta de usuario regular con tu contraseña personal, gracias al comando sudo.

Para salir del usuario root y regresar a nuestra sesión de usuario regular, hacemos el comando exit

[email protected]:/home/nombre-de-usuario# exit
[email protected]:~$

Ahora ¿por qué en lugar de decir ~ esta vez sí aparece completo el path del directorio /home/nombre-de-usuario? pues esto es simplemente así, cuando ingresas como root, la abreviatura ~ simplemente se desglosa completa, nada que preocuparse.

Antes de continuar quiero mencionar un punto muy importante sobre ser superusuario y el comando su. Generalmente no es buena idea el moverte por tus directorios en modalidad superusuario, en primera es algo realmente innecesario la mayor parte de las veces, es una función que si bien es importante conocer desde un inicio, debemos saber que es un comando más bien utilizado por un usuario nivel intermedio o avanzado, no para un principiante. Siendo principiante y moviéndote o haciendo cambios con la cuenta root activada es bastante seguro que te llevará cometer errores que rompan tu OS y lo dejen inservible y tengas que volver a instalar desde ceros tu OS.

¿Entonces, si es tan peligroso, por que carajos lo aprendimos? porque su versión más light, que es el comando sudo, lo vamos a utilizar siempre, incluso como usuarix principiante, todo el maldito tiempo será sudo esto, sudo aquello, sudo todo.

Hay que entender la lógica de lo que significa ser superusuario, o su, para entender qué cosas hace el comando sudo. Sudo es un permiso temporalmente limitado y por así decirlo, "rebajado", del privilegio de superusuario. Mientras que hacer su, o sudo su, lo que hace es cambiarnos completamente de nuestro usuario regular con privilegios limitados a la cuenta de usuario root hasta que ejecutemos el comando exit para regresarnos al usuario regular de privilegios limitados, lo que hace sudo es darnos los privilegios de super usuario sin necesariamente sacarnos de nuestra sesión actual y cambiarnos a la sesión del usuario root, son dos cosas muy diferentes: una (su) te saca de tu sesión actual completamente y te ingresa, o cambia mejor dicho, al usuario root por completo, y el otro (sudo) te mantiene en tu sesión actual pero te otorga los privilegios del usuario root para ejecutar una sola línea de código, es por eso que sudo lo tenemos que poner cada nueva línea de código que ejecutamos, más adelante veremos exactamente esto ejemplificado. Es de esta misma manera que al utilizar sudo, no tenemos que ejecutar el comando exit al final de la operación, como sí ocurre con el comando su.

Ahora entonces ¿para qué nos sirve sudo, y por qué lo vamos a utilizar todo el tiempo? Bueno, imaginemos que queremos instalar un programa, más adelante veremos a detalle todo lo que significa el ejemplo anterior, pero por el momento solo quiero que veamos cómo es que repetimos sudo varias veces:

[email protected]:~$ sudo apt-get update
[sudo] Contraseña para nombre-de-usuario:
Obj:1 http://archive.ubuntu.com/ubuntu focal
Obj:2 http://ppa.launchpad.net/ubuntu/backports/ubuntu focal
Obj:3 http://repo.vivaldi.com/stable/deb stable
Descargados 957 kB en 2s (469 kB/s) 
Leyendo lista de paquetes... Hecho
[email protected]:~$ sudo apt-get install Vivaldi
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
.....

Ya luego veremos que significa todo ese texto, por ahora lo importante es entender cómo funciona sudo. Como puedes ver, primero ejecute sudo apt-get update, lo cual provocó que me solicitara mi contraseña de usuario, no la de root, sino la contraseña de mi cuenta regular. Luego de verificarla, se ejecutó mi comando, con privilegios de superusuario, pero sin sacarme ni cambiarme de mi sesión de usuario actual. Cuando terminó dicha operación, ejecuté sudo apt-get install Vivaldi, como puedes ver, volví a utilizar sudo, pero esta vez ya no me pidió mi contraseña, simplemente ejecutó directamente mi comando ¿para que escribí yo sudo esta vez si ya nisiquiera me pidió mi contraseña? Bueno, aunque Linux ya no me solicitó mi contraseña, si no hubiera yo ejecutado sudo antes de apt-get install, simplemente hubiera fallado el comando ¿por qué? porque el comando apt-get install (no te preocupes, ya veremos que significa ese comando) solo funciona con privilegios de superusuario, pero no es necesario, y de hecho no es nada recomendable el estar en tu sesión personal, y luego hacer su para cambiarse a la sesión de superusuario, y desde ahí instalar algo con el comando apt-get install, y luego regresar a la cuenta regular, esto puede provocar errores bastante horribles que dejen inservible el programa que intentabas instalar y a veces pueden dejar totalmente inservible tu sistema operativo, por eso usamos sudo, y no su, para instalar programas.

Como estaba diciendo, aunque Linux no me haya pedido mi contraseña la segunda vez hay que escribir sudo para anunciarle a Linux que esta otra línea de comando también tiene que llevar premisos de superusuario, ya que como había dicho más arriba, sudo es un permiso temporal, es decir nos da un espacio de unos 5 minutos para ejecutar en serie varios procesos con privilegios de superusuario, pero necesariamente tenemos que escribir sudo en cada línea.

Entonces ahí lo tienes, el comando sudo se debe escribir en cada línea de código que se requiera ejecutar con privilegios de superusuario, por un tiempo no nos va a volver a pedir la contraseña, luego de unos 5 minutos la volverá a solicitar si es que seguimos ejecutando comandos que requieran del sudo, y no pasa nada, solamente le volvemos a ingresar la contraseña. Piensa en sudo como un parquímetro, cada cierto tiempo de vuelve a pedir que ingreses una moneda para seguir usando su servicio.

En el siguiente tutorial veremos cómo instalar programas en tu OS, cómo desinstalarlos, como copiar, borrar y mover archivos de un directorio a otro, entre otras operaciones básicas similares. Hasta pronto!

Cerrar vista de Texto Simple

Linux para principiantes: conociendo la Terminal

tecnología

Responsable de nota:
enero 10, 2021 | Sección: tecnología | Artículos sobre: software y hardware libre, aprende cosas nuevas con estos tutoriales,

¿Eres una persona que ha utilizado Windows o Mac pero en tu trabajo te han solicitado saber utilizar también Linux?, ¿Eres una persona que simplemente quiere aprender más sobre las diferentes opciones en sistemas operativos?, ¿o simplemente eres una persona a la que ya le fastidió Windows? entonces estás lista para dar el paso y cambiarte a Linux ¿correcto? Debo avisarte que si bien te espera una buena racha de jaquecas al inicio, el resultado a largo plazo lo va a compensar totalmente.

Esta guía debería ayudarte a ahorrarte uno que otro estrés innecesario en lo que te vas familiarizando con este sistema operativo. Antes que nada quiero aclarar que este artículo da por hecho que ya tienes instalada alguna distribución de Linux en tu computadora. En otro momento haré una pequeña guía de como instalar diferentes versiones de Linux, pero por esta ocasión enfoquémonos en comenzar a utilizar la distribución que ya tienes instalada para este momento.

¿Sabías qué...

Cómo era una computadora portátil ¿¡en 1984!?

Tips antes de comenzar:

  1. Mientras comienzas a utilizar algún sistema operativo (de ahora en adelante le llamaremos OS) basado en linux te recomiendo ampliamente que no almacenes ningún archivo importante aún en tu computadora, ten a la mano alguna memoria o disco duro externo en donde mantengas respaldado en todo momento tu contenido más importante: fotos personales, música, archivos de trabajo, documentos, libros, etc.
  2. Ten también siempre a la mano el CD o USB-stick de instalación de tu OS basada en linux. Si alguien más te hizo el favor de instalarte el OS linux que estas actualmente utilizando, solicítale que te deje una copia.
  3. No vayas a confiarte y comenzar configurar y personalizar demasiado tu entorno en el OS linux aún, pues en caso de algún accidente (que son muy comunes al inicio) habrás desperdiciado muchas horas, quizá días, en personalizar tu entorno para perderlo todo. Esto puede generarte muchísima frustración, así que procura comenzar con esta guía por un tiempo, para así familiarizarte con todos los posibles errores fatales que te obligarían a formatear y re-instalar el OS (por eso es importante la recomendación número 2). Una vez que este periodo de prueba y error concluya, entonces sí podrás personalizar tu entorno por completo sabiendo que las posibilidades de perderlo todo serán mínimas.
  4. Evita pensar en términos de Windows o de Mac, pues no se asemejan a la experiencia de Linux. Apégate a esta nueva forma de utilizar la computadora y si bien utilizaré ciertas comparaciones o alegorías de los OS comerciales ya mencionados, será solamente con el propósito de contrastar experiencias de usuario y facilitarte la transición, pero es conveniente que no inicies queriendo sentir una experiencia similar pues te confundirá mucho.

Iniciando sesión en Linux OS

Antes que nada, es importante conocer un poco la relación que mantiene la Interfaz de Usuario de las distribuciones OS Linux con la arquitectura de fondo de las mismas, y para esto necesitamos un poco de historia:

Linux es el nombre que recibe el núcleo más profundo de los varios OS basados en linux. Se le conoce como Kernel Linux, programado por Linuz Torvald a inicios de los 90’s. El kernel es el responsable de comunicarse con los componentes físicos, o hardware, de un ordenador: ROM, RAM, periféricos como el teclado, la pantalla; digamos que es la parte del software que ordena y administra los recursos de tu computadora, que son limitados dependiendo de la capacidad de memoria, el tipo de procesador, si es una computadora de 64 bits o de 32 bits, y un largo et cétera altamente técnico.


Ahora, encima del núcleo Linux, el cual fue registrado bajo un GPL (General Public License) lo cual permite que cualquiera en el mundo lo pueda modificar y volver a publicar sin penalizaciones legales de ningún tipo, encontramos la siguiente capa de código, la cual se conoce como Proyecto GNU. Este proyecto ha sido liderado desde el inicio por Richard Stallman, y en sus inicios, a finales de los 80’s, solía tener como objetivo el utilizar su propio núcleo (como el núcleo de Linux del que ya hablamos), pero con la aparición del núcleo de Linuz Torvald, la tendencia ha sido a utilizar el núcleo Linux. Es así que llegamos a lo que aquí estaremos enfocándonos en aprender a cómo utilizar: Sistemas Operativos basados en GNU-Linux.

Así que, aunque coloquialmente se les llama Linux, a secas, a todas las distribuciones (que de aquí en adelante les llamaremos distros), es importante que sepamos─y más adelante veremos por qué la importancia─que su nombre completo es GNU-Linux. Una manera muy sencilla de ejemplificar la independencia entre Linux y GNU viene siendo el caso de Android, así es, ese OS que viene instalado en básicamente cualquier smartphone que no sea de Apple. Android usa el núcleo Linux, pero no usa GNU, sino su propio entorno. Es como una Rocaleta, Linux es el chicle del centro, y GNU o Android son dos posibles capas, digamos de manzana o de piña, que conforman la segunda capa de la paleta.

Ahora, regresando a GNU-Linux, encima de este combo viene otra serie de capas de código, y estas capas son las que vamos a conocer como distros. Las dos distros principales más populares son Debian y Ubuntu. Ubuntu a su vez se basa en Debian, pero bifurcaron por cuestiones de filosofía de trabajo: mientras que Debian es un OS GNU-linux que se apega radicalmente al desarrollo completamente libre de software, Ubuntu se enfoca más en la adaptación de GNU-linux a un mundo en donde la productividad del día a día está muy relacionada con el uso de software privativo. En pocas palabras Debian es un OS de la tribu hacker, y Ubuntu es un OS enfocado en el usuario común.

Conocer esto anterior es importante, porque significa que existe una amplia compatibilidad de Ubuntu con todo aquello que provenga de Debian, pero no así a la inversa. A partir de aquí podremos entender que la siguiente capa de la Rocaleta linuxera se construye─bajo la misma lógica que hasta ahora vamos conociendo─alrededor de Debian o bien de Ubuntu. Irónicamente a esta capa suele conocérsele como el flavor, que es “sabor” en inglés.

En la esquina de Debian podemos encontrar obviamente antes que nada pues GNU-Linux Debian que viene siendo el original y que hasta la fecha sigue siendo desarrollado. Posteriormente encontramos diversos sabores de Debian como Kali Linux, Linux Mint Debian Edition, Bunsenlabs, Crunchbang Plusplus, Tails, Raspbian, Trisquel, DeepinOS, que desde el momento que los instalas puedes darte cuenta que son de la familia Debian, y los propósitos de estos sabores suelen ser bastante específicos: seguridad, privacidad, hackeo, desarrollo web o de software.

En la esquina de Ubuntu podemos encontrar, igual que con el caso anterior, antes que nada pues el original Ubuntu OS. Posteriormente encontramos diversos sabores como Linux Mint, Ubuntu Budgie, Elementary OS, Zorin OS, Ubuntu MATE, Lubuntu, Kubuntu, Xubuntu, Ubuntu Studio, Ubuntu Pi, Deepin OS. Desde el momento de la instalación, con estas distros-sabores es fácil sentir cómo están enfocadas, como buen Ubuntu, al usuario promedio.

Una pequeña aclaración con DeepinOS, fue basado en Ubuntu hasta el 2015, y se notaba fácilmente porque es muy vistoso y amigable, pero desde ese año se ha migrado a ser basado en Debian, manteniendo aún así esa presentación amigable y vistosa, es un caso, al menos de los que conozco, excepcional de un OS amigable basado en Debian.

Como mención especial, para contextualizar un poco más, mencionaré una distro Linux llamada RedHat, la cual es independiente, no es popular como Debian o Ubuntu, y no está basada en ninguna de estas dos, digamos que es como un Android, que si bien usa el núcleo Linux más bien representa su propia estirpe. RedHat Linux tiene sus propios sabores como Fermi, el cual usan en FermiLabs, o CERN, que usan pues en el CERN.

El Laboratorio Nacional Fermi es un laboratorio de física de altas energías, llamado así en honor al físico Enrico Fermi, pionero en física de partículas. En el Fermilab está instalado el segundo acelerador de partículas más potente del mundo (el primero es el Gran colisionador de hadrones), el Tevatrón, usado para descubrir el quark cima.

Wikipedia: Fermilabs

La Organización Europea para la Investigación Nuclear (nombre oficial en español),​ comúnmente conocida por la sigla CERN (sigla provisional utilizada en 1952, que responde al nombre en francés Conseil Européen pour la Recherche Nucléaire, es decir, Consejo Europeo para la Investigación Nuclear), es una organización de investigación europea que opera el laboratorio de física de partículas más grande del mundo.

Wikipedia: CERN

Esta mención anterior fue para darnos cuenta que Linux no es ningún sistema operativo de tercera, no es un Frankenstein mal armado, es un sistema operativo de primera utilizado en niveles de especialización extremadamente demandantes y complejos mucho más que Windows o Mac, estos últimos han librado una batalla de décadas para desprestigiar a Linux, obviamente porque es un OS de licencia libre (modificable por cualquiera) y generalmente de distribución gratuita, lo cual afecta los bolsillos de Bill Gates y de Steve Jobs. En fin, Linux es una herramienta altamente compleja y confiable, y en la actualidad, ya que Gates y Jobs realmente perdieron la batalla de desacreditación y tuvieron que retractarse , mucha atención se ha volcado en estos OS libres y cada vez hay más y mejores herramientas que pueden competir bastante de cerca─y a veces superar─a sus contrapartes privativas de Microsoft, Adobe, Apple, et cétera.

Pantalla de ingreso, en este caso de GNU-Linux Debian.

Si para este momento aún no has tenido un derrame cerebral, continuemos ahora sí con tu inicio de sesión. Para este momento es muy probable que no sepas que tipo de Linux tienes instalado: ya picaste el botón de encendido de tu ordenador, cargó las pantallas negras con letras blancas de siempre, el logotipo de la marca de tu computadora, y ahora estás ante una pantalla de inicio, similar a Mac o a Windows, pero solo en la superficie. Quizá esta pantalla de inicio te ha pedido usuario y contraseña o quizás no, esto depende de la configuración con la que fue instalado Linux, pero no importa, lo que realmente importa para este punto es que sepas que tendrás una relación íntima y continua con algo que se le conoce como La Terminal.

A diferencia de Mac o de Windows, en donde el principal objetivo es alejarte de su esqueleto, es decir de lo que alguna vez en Windows se conocía como MS-DOS, por poner un ejemplo, que es la típica pantalla negra con puras letras, y mucho más en entornos Mac que priorizan la interface altamente vistosa, 4K, HD, retina-display, con millones y millones de colores en pantalla y acabados de cristal transparente, en Linux tu interacción con la terminal será constante, el escribir texto directamente en esa pantalla negra para realizar acciones tan comunes como instalar un programa será lo normal. La terminal es la interface que te permite interactuar con tu computadora através de líneas de comando.

Por esto es que será importante conocer los comandos básicos para poder ingresarlos en la terminal, pues sin ellos no podrás avanzar, sobre todo si por algún tipo de suerte elegiste una distro basada en Debian. Te preguntaras ¿por qué revisamos tanta historia de linux antes de este punto práctico? la respuesta es contundente: tienes que saber que diablos significa un entorno gráfico y que significa línea de comando, y en qué afectan los comandos que vayas a introducir o los íconos que vayas a estar picando con el mouse en la interfaz gráfica. Recuerda que con Linux el asunto pasa de ser un simple usuario, a ser una persona que debe comprender lo mínimo del procesamiento de datos de un ordenador y solo a partir de eso podrás convertirte en un usuario, piénsalo como agregar una ligera capa de complejidad al asunto de solamente ser un usuario.

Entonces, una cosa es el GUI, por sus siglas en inglés Interface Gráfica de Usuario, y otra cosa es el CLI, por sus siglas en inglés Interface de Líneas de Comando. Ambas interfaces se comunican con la misma parte de tu computadora: con el GNU-Linux que está instalado por debajo de la distro y del flavor, que ahora ya sabes que significan esos dos términos. El ícono de la terminal usualmente se ve algo así, y varía muy poco en cada distribución y flavor realmente:

ícono común de la terminal

Ahora sí, lo primero que harás en tu entorno gráfico es buscar el lanzador de la terminal, es decir el ícono de la terminal para hacerle clic. Este suele encontrarse en forma de ícono de atajo ya sea en el escritorio, en la barra de tareas, o bien en el Menú de aplicaciones (ese que en Windows se llamaba menú de inicio, o que en Mac sería similar al Launchpad).

Si el entorno gráfico de escritorio que usas es XFCE, KDE Plasma, o MATE, el menú de aplicaciones se verá algo así, similar al Menú de Inicio de Windows.
Si tu entorno gráfico de escritorio es basado en GNOME, el menú de aplicaciones se verá algo así, similar al Launchpad de Mac.

Nota: no te preocupes si no sabes cual entorno gráfico de escritorio tienes, hay cientos, los más comunes son GNOME, KDE Plasma, MATE, XFCE, pero no tienes que saber cual es para este momento, solamente te pongo los pantallazos para que no te atores o te pierdas y comiences a diferenciarlos.

Cuando abras la terminal, se verá algo así: una ventanita en negro, con letras blancas.

Una vez abierta la terminal (que se ve como cualquier otro programa común y corriente en una ventanita flotando sobre tu escritorio con sus respectivas “minimizar, maximizar y cerrar” en el borde superior de la ventana) tenemos que entender que Linux OS opera sobre directorios, en Windows o en Mac gráficamente se representan estos directorios como Folders, en Linux también se pueden accesar como Folders en el GUI, pero realmente (y es lo que nos permite ver el CLI) es que nos movemos entre directorios.

Nota: Entender la diferencia y la relación entre directorios, particiones de disco, formatos y extensiones de archivo nos permitirá posteriormente el saber como instalar cualquier distro y sabor de Linux, pero eso lo veremos más adelante.

Nota: estaré usando la palabra directorio como sinónimo de folder, y a veces las dos al mismo tiempo folder/directorio, pero todo eso es lo mismo.

[email protected]:~$

Esta es la anatomía básica de la línea de comando cuando abres una terminal. Primero tenemos el nombre de usuario, ese usuario con el que ya sea que por defecto se inició la sesión, o bien si te llegó a pedir usuario y contraseña al inicio, será el usuario con el que elegiste iniciar sesión. Luego tenemos el signo de arroba @ que significa “at” que en español significa algo así como “se encuentra en”, y finalmente tenemos el nombre de la computadora, este último es un nombre que al momento de instalar linux te pregunta ¿cómo quieres que se llame esta computadora?. En resumen, lo que esta línea dice es: «este usuario» + «se encuentra en» + «la computadora con este nombre».

Luego de esto viene un «dos puntos (:), virgulilla (~), símbolo de dinero ($)». Esta combinación específica me dice que estoy operando como un usuario con privilegios limitados. La virgulilla literalmente nos está diciendo “estoy aquí en tu folder personal”, pero no nos dice en dónde está ese folder, solo está anunciando que se encuentra allí, por lo cual el primer comando que veremos es el que nos permite saber en dónde diantres estamos.

[email protected]:~$ pwd

El primer comando que revisaremos es pwd. Para ejecutar pwd basta con ser un usuario con privilegios limitados, por sus siglas en inglés pwd significa “directorio presente de trabajo” (present working directory), y este comando al escribirlo y darle Enter, te mostrará en qué directorio se encuentra actualmente tu línea de comando. Imagínalo como un “cursor de mouse” rudimentario, que te está señalando en qué directorio/folder exactamente se encuentra el cursor en este momento.

Este señalamiento de localización se desglosa a manera de algo que llamamos path en inglés que traducido significa algo como “camino”, es decir, el camino de directorios, y se representa con diagonales: « /home/nombre-de-usuario/Música/Género/Rock/70s » por poner un ejemplo, en este caso nos encontramos en la carpeta 70s, que esta dentro de la carpeta Rock, dentro de la carpeta Género, dentro de la carpeta Música, y así.

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$

Nota: Como ya dije antes, el signo de virgulilla (~) es la manera resumida de decir “home/nombre-de-usuario”.

Aquí, al darle enter al comando pwd, el resultado fue “home/nombre-de-usuario”, lo que significa que me encuentro actualmente en el directorio “home”, y dentro de “home” me encuentro en el directorio que es mi folder personal que tiene por nombre exactamente el mismo nombre de usuario, pero ojo, no son lo mismo, una cosa es mi «nombre de usuario» y otra cosa es el nombre del directorio/folder de mi usuario que generalmente será idéntico a mi nombre de usuario. Imagínalo como si alguien que se llama Pepe Flores, y que afuera de la puerta de su hogar tiene un mosaico decorativo que dice Pepe Flores, evidentemente Pepe y la casa que dice Pepe son dos cosas diferentes, una nos señala que es el hogar de Pepe, y el otro es el nombre de Pepe que la habita.

El segundo comando que veremos es ls. Este por sus siglas en inglés significa listado, y basta con ser un usuario con privilegios limitados para ejecutarlo. De igual manera, escribimos el comando y damos Enter en nuestro teclado.

[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$

Vemos que nos ha regresado un listado de nombres. Estos nombres corresponden a los directorios y archivos que se encuentren dentro del directorio, en el que con ayuda de pwd, sabemos que allí nos encontramos. Nos esta diciendo que dentro del directorio/folder que se llama igual a mi nombre de usuario (recuerda el ejemplo de Pepe Flores y la casa de Pepe Flores de allá arriba) se encuentran los folders de Música, Imágenes, Videos, y está tambien un archivo de texto (.txt) que se titula holamundo.

El siguiente comando es cd, cd /, y cd .. . Por sus siglas en inglés cd significa cambiar directorio, y las variantes con espacio + diagonal (/) y con espacio + punto punto (..) hacen referencia a operaciones relacionadas con cambiar directorios.

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$ cd ..
[email protected]:/home$

Aquí vemos que primero que nada pregunte con pwd ¿en dónde estoy? y me respondió “estás en home/nombre-de-usuario”, que de manera resumida se dice ~, y por eso se ve así: [email protected]:~$, que es equivalente a decir [email protected]:home/nombre-de-usuario$. ¿Sí ves como entre (:) y ($) dice “home/nombre-de-usuario” o bien “~”? es exactamente lo mismo pero resumido.

Ahora, luego de saber en dónde estoy, le pido que haga un listado de lo que está en ese directorio con ls. Y vemos que como antes, me responde que hay tres folders y un archivo .txt ahi mismo.

Ahora, le pido que cambiemos de directorio a uno antes del cual estoy ahora mismo, así que si estoy en “home/nombre-de-usuario”, con cd .. me llevará a “home” y me lo señalará cambiando la virgulilla (~) que recordemos que es la manera resumida de decir literalmente “home/nombre-de-usuario”, por “home”, colocándolo entre dos puntos (:) y signo de dinero($), así: [email protected]:/home$

Nota: recuerda que el comando se escribe “cd” + [espacio] + “..”

[email protected]:~$ pwd
/home/nombre-de-usuario
[email protected]:~$ ls
Música   Imágenes   Videos   holamundo.txt
[email protected]:~$ cd ..
[email protected]:/home$ ls
nombre-de-usuario
[email protected]:/home$ cd nombre-de-usuario
[email protected]:~$

Ahora, estaba yo en el directorio “home”, ¿recuerdan? y le voy a pedir que me liste el contenido del folder home (con el comando ls), a lo cual me responde que existe otro folder dentro de home, un solo folder, y este folder se llama “nombre-de-usuario”, así que le digo a la terminal que cambie de directorio a “nombre-de-usuario”. Y entonces cambia de :/home$ a :~$ ¿recuerdan por qué? porque ~ es una forma resumida de decirnos que estamos específicamente en /home/nombre-de-usuario.

Ahora, le voy a decir que me lleve de /home/nombre-de-usuario al primer folder al que tengo acceso como usuario, que le llamamos root, o raíz en inglés.

Para esto le voy a escribir cd /

Este comando, cd /, nos ahorra el hacer cd .. dos veces, ya que para ir manualmente de la carpeta personal del usuario /home/nombre-de-usuario (cuya abreviatura es ~) nos tomaría retroceder 2 niveles, de /home/nombre-de-usuario, a /home, a /

[email protected]:~$ cd /
[email protected]:/$

Nota: se escribe “cd” + [espacio] + “/”

¿Viste como cambió :~$ por :/$ ? Esto nos dice que nos ha llevado del directorio ~ (recuerda que es la manera resumida de decir /home/nombre-de-usuario) al directorio /. Este directorio raíz, o root, se simboliza como una diagonal solitaria (/) porque no hay nada más abajo de este directorio con lo que podamos interactuar como usuarios.

[email protected]:~$ cd /
[email protected]:/$ ls
bin    lib    mnt   root  sys  var  run
boot   etc   lib32  lost+found  opt  srv
cdrom  home  proc  sbin  usr tmp

Ahora, en esta carpeta root, o raíz, voy a pedirle que liste su contenido, con ls. Como podemos ver, nos devuelve un listado con muchos folders con nombres extraños (bueno que hasta ahora no sabemos que significan, pero no importa por el momento no es reelevante). Estos folders son el corazón de tu sistema operativo, contienen archivos altamente sentibles que de modificarlos podrías romper todo y dejar inservible tu OS.

Afortunadamente estos folders si bien son visibles y puedes ingresar y listar su contenido (con cd y ls), no puedes escribir ni modificarlos, puesto que hasta ahora hemos aprendido a operar bajo un usuario de privilegios limitados, mientras que para escribir o modificar estos archivos de la raíz, necesitamos ser un usuario de privilegios elevados, que es justamente a lo que vamos a continuación, pero antes de eso, brevemente hablaré sobre las posiciones absolutas.

¿Recuerdas que ~ significa /home/nombre-de-usuario, y que / significa carpeta raíz (root)? Bueno, pues en la terminal puede aprovechar estos dos símbolos para utilizarlas como comandos de posición absoluta, por ejemplo, comenzamos abriendo la terminal y preguntándole en dónde estamos:

[email protected]:~$ pwd
/home/nombre-de-usuario

Nos dirá que estamos en ~, es decir en nuestra carpeta personal, o lo que es también lo mismo /home/nombre-de-usuario. Ahora, queremos navegar a la carpeta llamada /sys, que como vimos en el ejemplo anterior, se encuentra justo dentro de la carpeta raíz, es decir, relativo a la carpeta en donde ahora mismo estamos que es la carpeta personal, tendríamos que bajar dos niveles ¿correcto? Y eso lo lograríamos con cd ..

[email protected]:~$ cd ..
[email protected]:/home$ cd ..
[email protected]:/$ pwd
/
[email protected]:/$ cd sys
[email protected]:/sys$

Dimos dos veces el comando de cd .. , lo que nos regresó del nivel al que se encuentra nuestra carpeta personal ~, dos niveles hasta llegar al folder o directorio raíz. Es por esto que luego de dos comandos cd .. , cuando yo utilizo el comando pwd para preguntarle ¿ahora en dónde me encuentro? la respuesta es una simple diagonal (/), esto es porque, como ya vimos, el signo de diagonal solitario representa al directorio raíz de nuestro OS. Y si nos fijamos bien, entre los dos puntos (:) y el signo de dinero ($) lo que dice ahí es tambien una diagonal solitaria (/), lo que nos indica que estamos en la carpeta raíz :/$

Luego escribimos cd sys, y listo, llegamos al folder /sys, que esta justo dentro de la carpeta raíz (/).

Ahora bien, esto es la manera manual ¿pero existe una manera más rapida, en menos pasos de hacer este movimiento? sí, con la ayuda de valores absolutos. De hecho en el ejemplo antepasado ya usamos este atajo, lo vuelvo a pegar aquí abajo para recordarlo:

[email protected]:~$ cd /
[email protected]:/$ ls
bin    lib    mnt   root  sys  var  run
boot   etc   lib32  lost+found  opt  srv
cdrom  home  proc  sbin  usr tmp

¿Recuerdas este ejemplo anterior en donde nos movimos de nuestra carpeta personal simbolizada por ~, hasta la carpeta raíz simbolizada por /, en un solo movimiento y luego ejecutamos el comando ls para ver el contenido de la carpeta raíz? Bueno pues este es el inicio de cómo utilizar localizaciones absolutas. Son absolutas porque parten de una base absoluta (y no una relativa), es decir, de una carpeta específica.

Intentaré explicar la diferencia entre relativo y absoluto así: cuando escribimos cd .. estamos solicitando un cambio de directorio relativo al lugar en donde nos encontramos ahora mismo, mientras que cuando decimos cd /home, por ejemplo, estamos, no partiendo del punto relativo a donde estamos ahora mismo, sino de un lugar específico lejano pero que Linux conoce y entiende que tiene que partir desde ese lugar en específico.

En este ejemplo siguiente, nos encontramos dentro de la carpeta “Música” que se encuentra dentro de nuestra carpeta personal ~ (que es lo mismo que /home/nombre-de-usuario/Música)

[email protected]:~/Música$ cd /sys
[email protected]:/sys$

Entonces, en este ejemplo, estamos en nuestra carpeta personal ~, y le decimos cd /sys, lo que significa “llévame de este lugar «/home/nombre-de-usuario/Música» directamente a ese lugar que tu conoces como / que es el directorio raíz y de ahí busca y llévame al folder llamado sys que esta dentro de ese directorio raíz”. Esto es posible porque Linux sabe exactamente qué significa (/), significa un lugar, un lugar específico llamado directorio raíz, y al decirle /sys, Linux sabe perfectamente que del directorio raíz (/) tendría que haber un folder/directorio llamado sys. De no existir tal folder llamado sys, Linux simplemente nos responderá que ese directorio no existe.

Los dos lugares exactos, absolutos, que Linux conoce son /, que es el folder raíz, y ~, que es la carpeta personal del usuario. Entonces podemos usarlos como valores absolutos para movernos rápido entre carpetas aunque nos encontremos “lejos” de dichos folders que son nuestro destino final.

[email protected]:~/Música$ cd /sys
[email protected]:/sys$
[email protected]:/sys$ cd ~Música
[email protected]:~/Música$

¿Viste? nos movimos de un solo golpe, desde una carpeta lejana hasta otra, y de regreso, sin tantos cd .. y cd de por medio.

Usuarios con privilegios altos

Lo siguiente que aprenderemos es sobre usuarios con privilegios altos. Hasta ahora nos hemos familiarizado con la nomenclatura de «[email protected]:~$» en donde “nombre-de-usuario” me dice que estoy interactuando con Linux como tal usuario con ese nombre, y el símbolo de dinero ($) también me anuncia que soy un usuario normal con privilegios limitados.

Ahora vamos a ver, qué rayos significa lo siguiente, y como lograr ese estado.

[email protected]:/#

Como podemos ver, a diferencia de nuestro estado anterior ([email protected]:~$) este no dice nombre-de-usuario, dice root, y en lugar de ~$ ahora dice /# . Bueno, no nos asustemos, que todo sigue siendo lo mismo, o buen casi lo mismo. En esta ocasión dice root porque estamos en una sesión de administrador, o lo que es lo mismo, un usuario raíz, o root user en inglés, por eso dice “[email protected]”, y al final el /# nos está anunciando, primero con el signo de gato (#), que somos un usuario con privilegio de administrador del equipo, y la diagonal (/) simplemente, como antes ya vimos, que estamos en el folder raíz.

Para lograr este privilegio de administrador podemos hacer dos cosas, la primera:

[email protected]:~$ su
Contraseña:
[email protected]:/#

En este caso, utilizamos el comando su, que significa super-usuario, damos Enter en nuestro teclado e inmediatamente nos va a pedir la Contraseña del root. Ojo, no nos está pidiendo la contraseña del usuario “nombre-de-usuario”, sino la contraseña del usuario root.

Para esto tenemos que entender que Linux permite agregar varios usuarios, también llamadas sesiones, en una misma computadora. Por eso nos especifica con “@nombre-de-computadora” el nombre de la computadora en donde se alojan cualquier cantidad de usuarios que querramos incluir. Pero aparte de los usuarios/sesiones que manualmente registremos al instalar el OS o posteriormente (siempre puedes crear nuevos usuarios), Linux agrega un usuario por defecto llamado root, y que es un usuario independiente con los máximos privilegios, un administrador automático vaya. Esta cuenta generalmente existe en el sistema pero no necesariamente viene completamente configurado, es decir, generalmente cuando instalas tu OS, solamente te pedirá registrar mínimo un usuario con su contraseña personal, pero no te pedirá ingresar una contraseña para el usuario automático root.

Es así que normalmente no sabrás tu contraseña de usuario root, porque nunca la pidió crear desde un inicio, entonces a menos de que posterior a la instalación tú mismx configures al usuario root y le des una contraseña propia, no tendrás la contraseña de root. Pero no te preocupes, esto es completamente normal y generalmente no es necesario siquiera el darle una contraseña propia al root.

Entonces, si tu ejecutas el comando su, e ingresas una contraseña equivocada, porque como ya dijimos puede que ni siquiera exista tal contraseña, y como también ya dijimos esa contraseña del usuario root no es la misma que la del usuario regular (nombre-de-usuario), simplemente te dirá Fallo de Autenticación y te regresará a tu usuario normal.

[email protected]:~$ su
Contraseña:
su: Fallo de Autenticación
[email protected]:~$

Cuando esto ocurra, y necesites entrar al usuario root, lo que harás es escribir el comando sudo su, lo que te va a resultar en una solicitud de Contraseña, pero esta vez sí debes ingresar tu contraseña personal:

[email protected]:~$ sudo su
[sudo] Contraseña para nombre-de-usuario:
[email protected]:/home/nombre-de-usuario#

Ahora ya accediste como super usuario o lo que es lo mismo usuario root, pero desde tu cuenta de usuario regular con tu contraseña personal, gracias al comando sudo.

Para salir del usuario root y regresar a nuestra sesión de usuario regular, hacemos el comando exit

[email protected]:/home/nombre-de-usuario# exit
[email protected]:~$

Ahora ¿por qué en lugar de decir ~ esta vez sí aparece completo el path del directorio /home/nombre-de-usuario? pues esto es simplemente así, cuando ingresas como root, la abreviatura ~ simplemente se desglosa completa, nada que preocuparse.

Antes de continuar quiero mencionar un punto muy importante sobre ser superusuario y el comando su. Generalmente no es buena idea el moverte por tus directorios en modalidad superusuario, en primera es algo realmente innecesario la mayor parte de las veces, es una función que si bien es importante conocer desde un inicio, debemos saber que es un comando más bien utilizado por un usuario nivel intermedio o avanzado, no para un principiante. Siendo principiante y moviéndote o haciendo cambios con la cuenta root activada es bastante seguro que te llevará cometer errores que rompan tu OS y lo dejen inservible y tengas que volver a instalar desde ceros tu OS.

¿Entonces, si es tan peligroso, por que carajos lo aprendimos? porque su versión más light, que es el comando sudo, lo vamos a utilizar siempre, incluso como usuarix principiante, todo el maldito tiempo será sudo esto, sudo aquello, sudo todo.

Hay que entender la lógica de lo que significa ser superusuario, o su, para entender qué cosas hace el comando sudo. Sudo es un permiso temporalmente limitado y por así decirlo, “rebajado”, del privilegio de superusuario. Mientras que hacer su, o sudo su, lo que hace es cambiarnos completamente de nuestro usuario regular con privilegios limitados a la cuenta de usuario root hasta que ejecutemos el comando exit para regresarnos al usuario regular de privilegios limitados, lo que hace sudo es darnos los privilegios de super usuario sin necesariamente sacarnos de nuestra sesión actual y cambiarnos a la sesión del usuario root, son dos cosas muy diferentes: una (su) te saca de tu sesión actual completamente y te ingresa, o cambia mejor dicho, al usuario root por completo, y el otro (sudo) te mantiene en tu sesión actual pero te otorga los privilegios del usuario root para ejecutar una sola línea de código, es por eso que sudo lo tenemos que poner cada nueva línea de código que ejecutamos, más adelante veremos exactamente esto ejemplificado. Es de esta misma manera que al utilizar sudo, no tenemos que ejecutar el comando exit al final de la operación, como sí ocurre con el comando su.

Ahora entonces ¿para qué nos sirve sudo, y por qué lo vamos a utilizar todo el tiempo? Bueno, imaginemos que queremos instalar un programa, más adelante veremos a detalle todo lo que significa el ejemplo anterior, pero por el momento solo quiero que veamos cómo es que repetimos sudo varias veces:

[email protected]:~$ sudo apt-get update
[sudo] Contraseña para nombre-de-usuario:
Obj:1 http://archive.ubuntu.com/ubuntu focal
Obj:2 http://ppa.launchpad.net/ubuntu/backports/ubuntu focal
Obj:3 http://repo.vivaldi.com/stable/deb stable
Descargados 957 kB en 2s (469 kB/s) 
Leyendo lista de paquetes... Hecho
[email protected]:~$ sudo apt-get install Vivaldi
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
.....

Ya luego veremos que significa todo ese texto, por ahora lo importante es entender cómo funciona sudo. Como puedes ver, primero ejecute sudo apt-get update, lo cual provocó que me solicitara mi contraseña de usuario, no la de root, sino la contraseña de mi cuenta regular. Luego de verificarla, se ejecutó mi comando, con privilegios de superusuario, pero sin sacarme ni cambiarme de mi sesión de usuario actual. Cuando terminó dicha operación, ejecuté sudo apt-get install Vivaldi, como puedes ver, volví a utilizar sudo, pero esta vez ya no me pidió mi contraseña, simplemente ejecutó directamente mi comando ¿para que escribí yo sudo esta vez si ya nisiquiera me pidió mi contraseña? Bueno, aunque Linux ya no me solicitó mi contraseña, si no hubiera yo ejecutado sudo antes de apt-get install, simplemente hubiera fallado el comando ¿por qué? porque el comando apt-get install (no te preocupes, ya veremos que significa ese comando) solo funciona con privilegios de superusuario, pero no es necesario, y de hecho no es nada recomendable el estar en tu sesión personal, y luego hacer su para cambiarse a la sesión de superusuario, y desde ahí instalar algo con el comando apt-get install, y luego regresar a la cuenta regular, esto puede provocar errores bastante horribles que dejen inservible el programa que intentabas instalar y a veces pueden dejar totalmente inservible tu sistema operativo, por eso usamos sudo, y no su, para instalar programas.

Como estaba diciendo, aunque Linux no me haya pedido mi contraseña la segunda vez hay que escribir sudo para anunciarle a Linux que esta otra línea de comando también tiene que llevar premisos de superusuario, ya que como había dicho más arriba, sudo es un permiso temporal, es decir nos da un espacio de unos 5 minutos para ejecutar en serie varios procesos con privilegios de superusuario, pero necesariamente tenemos que escribir sudo en cada línea.

Entonces ahí lo tienes, el comando sudo se debe escribir en cada línea de código que se requiera ejecutar con privilegios de superusuario, por un tiempo no nos va a volver a pedir la contraseña, luego de unos 5 minutos la volverá a solicitar si es que seguimos ejecutando comandos que requieran del sudo, y no pasa nada, solamente le volvemos a ingresar la contraseña. Piensa en sudo como un parquímetro, cada cierto tiempo de vuelve a pedir que ingreses una moneda para seguir usando su servicio.

En el siguiente tutorial veremos cómo instalar programas en tu OS, cómo desinstalarlos, como copiar, borrar y mover archivos de un directorio a otro, entre otras operaciones básicas similares. Hasta pronto!

HOLA 🙂 no te vayas aún, queremos decirte algo…

Tu apoyo es muy importante:

  1. Danos un me gusta, o síguenos en nuestras redes sociales: Facebook, Twitter, o Instagram
  2. Puedes realizar un donativo aquí
  3. Comparte el contenido con tus amistades.

Comparte en redes:

Deja tu comentario:

Responsable de esta nota:

palabras clave de la entrada: linux, como usar el comando su en Linux, como usar el comando sudo en Linux, sudo Linux, su Linux, superusuario Linux, GUI Linux, CLI Linux, como usar la terminal Linux, terminal línea de comandos Linux, Linux para principiantes

HISTORIAS RELACIONADAS

Utilizando Git en Linux: comandos locales

tecnología

Responsable de nota:
junio 4, 2021 | Sección: tecnología | Artículos sobre: software y hardware libre,

Utilizando Git en Linux: comandos locales

¡Es momento de levantarse de la cama y aprender a usar Git! ¿Pero qué rayos es Git y por qué debo usarlo? Git permite separar por pasos controlados el flujo de modificaciones que se le van realizando a un proyecto de programación. En este sentido, es muy popular dentro del desarrollo web por ejemplo.

5 Distribuciones Linux OS a profundidad ¿cuál me conviene?

ciencia

Responsable de nota:
abril 11, 2019 | Sección: ciencia | Artículos sobre: software y hardware libre,

5 Distribuciones Linux OS a profundidad ¿cuál me conviene?

una vez que conozcas la velocidad de una computadora corriendo Linux te aseguro que cada que llegues a tocar una Mac o una Windows por puro maldito error de tu miserable vida vas a desear morir

Linux para principiantes 2: instalando programas

tecnología

Responsable de nota:
enero 21, 2021 | Sección: tecnología | Artículos sobre: software y hardware libre, aprende cosas nuevas con estos tutoriales,

Linux para principiantes 2: instalando programas

¿Estás cambiándote a Linux pero no tienes ni idea de como empezar? Esta serie de tutoriales son para ti. Aprende lo básico que necesitas para operar un sistema operativo Linux.

¡Haz que otras personas se enteren!

Comparte esta historia:

Síguenos en nuestras redes: