Linux 101.2 La Terminal
Linux Shell o La Terminal
La terminal es un simple programa, toma los comandos introducidos por el usuario y se los entrega al sistema operativo para ser procesados. Una vez terminado el proceso la terminal muestra el resultado de los comandos, es decir esta es el puente principal entre el sistema y el usuario.
La mayoría de distribuciones vienen con una ‘GUI (Graphical User Interface o Interfaz Gráfica del Usuario)’, pero todas vienen con la ‘CLI (Command Line Interface o Interfaz de Línea de Comandos)’, veremos la diferencia entre GUI y CLI en posts siguientes, por ahora vamos a ver algunos comandos básicos y sus resultados.
Comandos básicos
Algo que tenemos que recalcar antes de usar la terminal, es que a diferencia de windows, linux es un sistema que diferenciá entre MAYÚSCULAS y minúsculas, es decir no es lo mismo Comando que comando o coMando, si el algún momento estamos teniendo problemas tenemos que revisar que estamos escribiendo bien. Como tip la gran mayoría de comandos en linux se escriben en minúsculas.
1. pwd
Al iniciar la terminal, se abrirá dentro del directorio del usuario actual (Veremos el sistema de archivos en el siguiente post). Si queremos saber en ¿qué directorio nos encontramos?, utilizaremos el comando pwd
user@hostname:~$ pwd
/home/user
La figura de arriba se explica sola, primero tenemos el Nombre del equipo o Hostname y el Usuario que está utilizando el sistema actual la tilde ~ nos indica que nos encontramos dentro del directorio del usuario.
2. ls
El comando ls o List Directory nos muestra que carpetas y archivos se encuentran dentro del directorio actual.
user@hostname:~$ ls
Desktop Documents Downloads Music Pictures Templates Videos
Comandos como ls tienen lo que se llaman flags o banderas, estas modifican el resultado del comando, veamos unos ejemplos:
user@hostname:~$ la -l
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Desktop
drwxr-xr-x 3 user user 4096 Jul 15 14:57 Documents
drwxr-xr-x 11 user user 4096 Aug 3 15:10 Downloads
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Music
drwxr-xr-x 4 user user 4096 Aug 3 11:42 Pictures
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Templates
drwxr-xr-x 3 user user 4096 Aug 1 19:22 Videos
El flag -l lista el contenido del directorio en un formato largo con columnas que incluye:
- Permisos del contenido
- Número de elementos contenidos dentro del elemento
- Propietario del contenido
- Grupo Propietario del contenido
- Tamaño del contenido en Bytes
- Última fecha de modificación
Existen varios flags para el comando ls, aquí listaré las más comunes:
- -a Muestra los archivos ocultos dentro del directorio
- -d Sólo muestra directorios excluyendo los archivos
- -R Muestra el Directorio y todo su contenido
Es importante saber que varios flags pueden utilizarse al mismo tiempo, siendo algo como ls -la un comando válido. Este comando nos mostrará el formato largo incluyendo los archivos ocultos del directorio actual.
user@hostname:~$ ls -la
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Desktop
drwxr-xr-x 3 user user 4096 Jul 15 14:57 Documents
drwxr-xr-x 11 user user 4096 Aug 3 15:10 Downloads
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Music
drwxr-xr-x 4 user user 4096 Aug 3 11:42 Pictures
drwxr-xr-x 2 user user 4096 Jun 17 08:48 Templates
drwxr-xr-x 3 user user 4096 Aug 1 19:22 Videos
-rw------- 1 user user 56 Aug 3 14:10 .Xauthority
-rw-r--r-- 1 user user 342 Aug 1 21:40 .Xdefaults
-rw-r--r-- 1 user user 177 Aug 1 21:40 .xinitrc
-rw-r--r-- 1 user user 3668 Aug 1 21:40 .zshrc
En linux los archivos ocultos empiezan siempre por un punto .archivo.
3. cd
Change Directory o cd es el comando que utilizamos para cambiar de directorio, por ejemplo si estamos en el directorio home y queremos ir al directorio Downloads hacemos lo siguiente:
user@hostname:~$ cd Downloads
user@hostname:~/Downloads$
Para subir un directorio podemos hacer:
user@hostname:~/Downloads$ cd ..
user@hostname:~$
4. mkdir
Make Directory o mkdir sirve para crear un directorio, digamos que queremos crear un nuevo directorio que se llame prueba, simplemente hacemos lo siguiente:
user@hostname:~$ mkdir prueba
user@hostname:~$ ls
Desktop Documents Downloads Music Pictures prueba Templates Videos
El comando mkdir no nos da un resultado per se, pero con el comando ls podemos ver que ahora existe un directorio llamado prueba.
5. rmdir
Remove Directory o rmdir como su nombre lo dice este borra el directorio que deseamos, sin embargo rmdir sólo borrará un directorio vacío, si queremos borrar un directorio que contiene elementos dentro debemos utilizar el flag -r o Recursive para que borre el directorio y su contenido rmdir -r
user@hostname:~$ rmdir prueba
rmdir: failed to remove 'prueba': Directory not empty
user@hostname:~$ rmdir -r prueba
user@hostname:~$ ls
Desktop Documents Downloads Music Pictures Templates Videos
6. touch
El comando touch se utiliza para crear archivos, este archivo creado puede ser lo que sea. Puedes crear un archivo de texto o un archivo zip con el mismo comando.
user@hostname:~$ touch prueba.txt
user@hostname:~$ ls
prueba.txt
user@hostname:~$
7. man
Cada comando tiene un manual de uso, para eso nos sirve man, este comando va seguido del comando sobre el cual queremos saber, por ejemplo:
user@hostname:~$ man touch
TOUCH(1) User Commands TOUCH(1)
NAME
touch - change file timestamps
SYNOPSIS
touch [OPTION]... FILE...
DESCRIPTION
Update the access and modification times of each
FILE to the current time.
A FILE argument that does not exist is created
empty, unless -c or -h is supplied.
A FILE argument string of - is handled specially
and causes touch to change the times of the file
associated with standard output.
Mandatory arguments to long options are mandatory
for short options too.
-a change only the access time
-c, --no-create
do not create any files
-d, --date=STRING
parse STRING and use it instead of current
time
-f (ignored)
-h, --no-dereference
affect each symbolic link instead of any
referenced file (useful only on systems
that can change the timestamps of a sym‐
link)
-m change only the modification time
-r, --reference=FILE
use this files times instead of current time
-t STAMP
use [[CC]YY]MMDDhhmm[.ss] instead of cur‐
rent time
--time=WORD
change the specified time: WORD is access,
atime, or use: equivalent to -a WORD is
modify or mtime: equivalent to -m
--help display this help and exit
--version
output version information and exit
Note that the -d and -t options accept different
time-date formats.
DATE STRING
The --date=STRING is a mostly free format human
readable date string such as "Sun, 29 Feb 2004
16:21:42 -0800" or "2004-02-29 16:21:42" or even
"next Thursday". A date string may contain items
indicating calendar date, time of day, time zone,
day of week, relative time, relative date, and
numbers. An empty string indicates the beginning
of the day. The date string format is more com‐
plex than is easily documented here but is fully
described in the info documentation.
AUTHOR
Written by Paul Rubin, Arnold Robbins, Jim King‐
don, David MacKenzie, and Randy Smith.
REPORTING BUGS
GNU coreutils online help:
<https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://transla‐
tionproject.org/team/>
COPYRIGHT
Copyright © 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the
extent permitted by law.
SEE ALSO
Full documentation <https://www.gnu.org/soft‐
ware/coreutils/touch>
or available locally via: info (coreutils) touch
invocation
8. mv
El comando mv o Move File, sirve para mover archivos dentro de los directorios, también nos sirve para renombrar archivos, veamos un ejemplo:
user@hostname:~$ mv prueba.txt ~/Downloads
user@hostname:~$ ls ~/Downloads
prueba.txt
user@hostname:~$ cd Downloads
user@hostname:~/Downloads$ mv prueba.txt nuevaprueba.txt
user@hostname:~/Downloads$ ls
nuevaprueba.txt
user@hostname:~/Downloads$
9. sudo
SuperUserDo o sudo, este comando se utiliza cuando una operación requiere privilegios o acceso a permisos administrativos, por ejemplo la actualización del sistema es algo que un usuario común no puede hacer y necesita permisos administrativos.
user@hostname:~$ pacman -Syu
error: you cannot perform this operation unless you are root.
Como podemos ver el usuario actual no puede actualizar el sistema, en ese caso utilizamos sudo.
user@hostname:~/Downloads$ sudo pacman -Syu
:: Synchronizing package databases...
core is up to date
extra 1569.1 KiB 1090 KiB/s 00:01 100%
community 5.6 MiB 1355 KiB/s 00:04 100%
multilib is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
Packages (2) libinput-1.18.1-1 re2-1:20210801-1
Total Download Size: 0.45 MiB
Total Installed Size: 1.76 MiB
Net Upgrade Size: 0.01 MiB
:: Proceed with installation? [Y/n]
Estos son algunos de los comandos básicos, que puedes utilizar en linux. Existen muchos, pero muchos más que iremos conociendo conforme vayamos avanzando en estos tutoriales, si quieres conocer toda la lista te la dejo aquí .
Hasta la próxima.