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.
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
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 carpetacharla
tenemos una carpetacharla1
y un archivoa
. El comandols
envia al stdout una lista de lo que contiene la carpetacharla
.$ pwd /home/user/charla $ ls a charla1
stdin: Proviene del teclado o del stdout de algun otro comando.
Ejemplo: Creemos un archivo, usando cualquier editor de texto como gedit o sublime, llamadoinput.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 tipeamosEmpanadas
, el programa imprimiráEmpanadas
en la consola.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.
- Relativo: Señalan la dirección de un fichero respecto al directorio donde me encuentro.
Ejemplo: Recordemos que estamos en el directoriocharla
y dentro de este estan los ficheroscharla1
ya
. Las direcciones relativas de estos son:charla1
ya
respectivamente. Tambien./charla1
y./a
. - Absoluto: Señalan la direccion respecto al directoio raiz,
/
. Para los ficheros encharla
, 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.
Me encantó ¡Gracias! De pana.
De nada ;)