Tutorial de la Terminal de Linux (Parte I)

in #spanish6 years ago (edited)

Esta es la primera parte de la charla sobre la terminal de linux, dada por Gustavo Castellanos y German Robayo, Coordinadores de Información y Tecnología del Centro de Estudiantes de Ingeniería de la Computación 2017-2018 de la Universidad Simón Bolívar.


Fuente

Antes de Empezar

Abramos una consola o terminal. Si estas en Ubuntu puedes usar el shortcut ctrl+alt+T. Luego ejecutemos:

$ cd
$ mkdir charla
$ cd charla
$ touch a
$ mkdir charla1

No te preocupes si no entiendes ningún comando, cada uno será explicado en este tutorial.


Conceptos Importantes

  1. stdout: A donde el programa envia su salida de datos. Éste se imprime en la pantalla o se puede usar como stdin de otro programa
    Ejemplo: En la carpeta charla tenemos una carpeta charla1 y un archivo a. El comando ls envia al stdout una lista de lo que contiene la carpeta charla.

    $ pwd
    /home/user/charla
    $ ls
    a  charla1
    
  2. stdin: Proviene del teclado o del stdout de algun otro comando.
    Ejemplo: Creemos un archivo, usando cualquier editor de texto como gedit o sublime, llamado input.py con el siguiente script:

    x = input()
    print(x)
    

    Este programa recibirá del stdin un string que luego imprimirá en el stdout. Es decir, si ejecutamos python3 input.py y tipeamos Empanadas, el programa imprimirá Empanadas en la consola.

  3. stderr: Hacia donde el programa envia datos de error. Éste se imprime en consola, pero no se envia como STDIN a otro programa. Tiene el siguiente formato: comando: fichero: razon de error.
    Ejemplo:

    $ ls charla3
    ls: cannot access 'charla3': No such file or directory
    

Estos tres anteriores los ve el sistema operativo como archivos. Suena un poco raro por que el stdout siempre se muestra como salida en la consola y no se crea archivos ni nada por el estilo.

Direcciones

En linux, existen dos tipos de direcciones de ficheros.

  1. Relativo: Señalan la dirección de un fichero respecto al directorio donde me encuentro.
    Ejemplo: Recordemos que estamos en el directorio charla y dentro de este estan los ficheros charla1 y a. Las direcciones relativas de estos son: charla1 y a respectivamente. Tambien ./charla1 y ./a.
  2. Absoluto: Señalan la direccion respecto al directoio raiz, /. Para los ficheros en charla, se tienen las siguientes direcciones absolutas: /home/user/charla/charla1 y /home/user/charla/a.

Comandos de inicio

ls

Ya usamos este comando arriba. Muestra las carpetas y archivos que se encuentran en el actual directorio de trabajo. Opcionalmente toma como argumento una dirección absoluta o relativa a un archivo/directorio y muestra el contenido de ese directorio o sencillamente muestra el nombre del archivo.

cat

Este comando permite concatenar y/o mostrar archivos en pantalla. Por ejemplo:

$ cat input.py
x = input()
print(x)

si le agregamos la opción -n nos enumera las líneas:

$ cat -n input.py
     1  x = input()
     2  print(x)

echo

Este comando envía a la salida estándar cualquier texto que se le pase como argumento. Por ejemplo:

$ echo hola mundo de empanadas
hola mundo de empanadas

pwd

Imprime el nombre del directorio de trabajo. Usálo en las siguientes partes de este tutorial cada vez que quieras confirmar que te moviste al directorio correcto.

cd

Viene de "change directory", y cambia el actual directorio (carpeta) de trabajo. Úsalo para moverte sobre la jerarquía de tu sistema de archivos. Este comando recibe como argumento la ruta del directorio al que te quieres mover.

El punto

El directorio actual de trabajo está representado por un punto ., así que el comando cd USB/orga hace lo mismo que cd ./USB/orga. Hagamos un ejemplo de cuando usarlo:
Creemos un archivo b.c con el siguiente código:

#include <stdio.h>

int main () {
    printf("Empanadas\n");
}

Este es un código en lenguaje C de un programa que imprimirá en consola la palabra "Empanadas". Para compilarlo debemos correr gcc b.c -o b.
Si ejecutamos b en la terminal obtendremos lo siguiente:

$ b
b: command not found

La terminal piensa que estamos ejecutando un comando. Para avisarle que estamos intentado correr un archivo que está en el actual directorio de trabajo podemos usar .:

$ ./b
Empanadas

El doble punto

El directorio .. representa el directorio padre del actual directorio de trabajo.
Ejemplo:
Tenemos que el directorio charla tiene dentro dos directorios: charla1 y charla2.

$ pwd
/home/gus/charla/charla1
$ cd ../charla2
$ pwd
/home/gus/charla/charla2

Directorio home

El directorio home es en el que te encuentras por defector cuando abres una nueva terminal. Es el directorio que tiene todas tus configuraciones, tu correo, tus documentos y descargas, etc. Se representa con un ñangara ~. Así que si tu nombre de usuario es pepe, el comando cd ~ hace lo mismo que cd /home/pepe.

Anterior directorio de trabajo

El anterior directorio de trabajo en el que te encontrabas está representado por un guión -.
Ejemplo:

$ pwd
/home/gus/charla/charla2
$ cd /home/gus/Documents/
$ pwd
/home/gus/Documents
$ cd -
/home/gus/charla/charla2
$ pwd
/home/gus/charla/charla2

man

Es el comando usado para mostrar el manual e información de un comando.
Ejemplo:

$ man ls
NAME
       ls - list directory contents

SYNOPSIS
       ls [OPTION]... [FILE]...

DESCRIPTION
       List  information about the FILEs (the current directory by default).
       Sort entries alphabetically if none of -cftuvSUX nor --sort is speci‐
       fied.

       Mandatory  arguments  to long options are mandatory for short options
       too.
(...)

Para salir del manual debes presionar la tecla q.

mkdir

Es el comando usado para crear un nuevo directorio. Recibe como argumento la ruta (absoluta o relativa) en la que crearas el nuevo directorio.
Ejemplo:

$ ls
a  b  b.c  charla1  charla2  input.py
$ mkdir charla1/charla3
$ ls charla1
charla3

rm

Es el comando usado para borrar archivos. Cuando es usado recursivamente, puede ser usado para borrar directorios.
Varios comandos aceptan "flags" como opciones de ejecución. Por ejemplo, rm acepta el flag -r para borrar recursivamente (por defecto rm no borra directorios).
Ejemplo

$ ls
a  b  b.c  charla1  charla2  input.py
$ rm b.c
$ ls
a  b  charla1  charla2  input.py
$ rm -r charla1
$ ls
a  b  charla2  input.py

cp

Es el comando usado para copiar archivos. Recibe como argumentos un archivo fuente y una direccion (absoluta o relativa) destino.
Ejemplo:

$ ls
a  b  charla2  input.py
$ cp input.py charla2
$ ls charla2
input.py

cp acepta los flags -t (invierte el orden de los parametros) y -r (para copiar recursivamente un directorio).
Ejemplo:

$ ls
a  b  charla2  input.py
$ mkdir charla3
$ cp -t charla3 input.py a
$ ls charla3
a  input.py
$ cp -r charla3 charla4
$ ls charla4
a  input.py

mv

Este comando se usa muy parecido a cp, pero este equivale a "cortar" o "mover", es decir, coloca el archivo fuente en el directorio destino eliminandolo del directorio original.
Ejemplo:

$ ls
a  b  charla2  charla3  charla4  input.py
$ mkdir charla4/charla5
$ mv b charla4/charla5
$ ls
a  charla2  charla3  charla4  input.py
$ ls charla4/charla5/
b

Para ver la siguiente parte de este tutorial, entra a este post de @german1608


Si te gustó este tutorial compártelo con tus amigos.
Siéntete libre de comentar que otros temas (que estén a nuestro alcance) te gustaría que le hagamos charlas y tutoriales.

Sort:  

Me encantó ¡Gracias! De pana.