Consola Linux
La
consola de Linux es una herramienta muy potente cuando se le conoce a
profundidad, de seguro estoy lejos de conocer las profundidades de
dicha herramienta pero esta entrada es una pequeña introducción con
dos objetivos el primero compartir información que he aprendido para
los que están tras de mí y el segundo es por frases como "lo
que se escribe no se olvida".
¿Qué es la consola?
Cuando
se habla de consola, linea de comandos, CLI(Client Line Interface),
en realidad se refieren es al Shell. El shell es un programa que toma
los comandos tecleados, los envía al sistema operativo para que este
los procese. Muchas de las distribuciones de Linux vienen con un
programa llamado bash que es descendiente de un
programa llamado sh el cual fue escrito para Unix por
Steve Bourne.
Cuando
se usa una distribución de Linux con entorno gráfico se suelen usar
emuladores de terminal, que son programas que se comunican con la
terminal original, trasmiten ordenes a ella y muestran sus
respuestas. En el caso de KDE existe konsole y en el caso de GNOME se
usa gnome-terminal.
Al
ingresar al terminal lo primero que se descubre es que no todo los
que se escribe genera un resultado:
me@me:~$ cualquerCosa
cualquerCosa: no se encontró
la orden
Esto
lleva a que existen palabras a las cuales la consola responde y otras
a las que no, las palabras que son reconocidas por la shell se
conocen como comandos.
¿Qué son los comandos?
Los
comandos pueden ser básicamente de 4 tipos:
Comandos internos:
El
programa bash tiene unos comandos internos como:
alias,
unalias, cd, dirs, echo, fg, bg, jobs, entre otros.
Alias:
Los
alias utilizan características del shell para crear nombres alternos
para comandos existentes.
Programas ejecutables:
Son
programas compilados (archivos binarios) escritos en algún lenguaje
de programación como C, C++ o lenguajes de script como Python...
entre otros, los cuales en su mayoría se encuentran inicialmente en
/usr/bin.
Funciones de shell:
Para
incrementar la funcionalidad del shell es posible crear archivos .sh
que pueden contener instrucciones a ejecutar los cuales se conocen
como scripts.
Que es y que no es un comando
Dentro
de los comandos internos de la shell se encuentra uno llamado type,
el cual permite identificar si la palabra que enviamos como parámetro
es o no una orden interna, un alias, un programa o una función, la
forma de usarlo es muy sencilla
me@me:~$ type palabra
Ejemplos:
me@me:~$ type type
type es una orden interna
del shell
me@me:~$ type cp
cp is /bin/cp
me@me:~$ type ls
ls es un alias de `ls
--color=auto'
Los comandos internos
Los
comandos internos son instrucciones que se encuentra definidas dentro
del mismo programa shell, y de los cuales hay una gran variedad de
opciones que además nos servirán mas adelante para generar comandos
propios.
Ejemplos
de comandos internos son:
pwd
→ imprime el directorio actual
cd
→ cambia a otro directorio
jobs
→ muestra los procesos manejados por esa consola
bg
→ envia atrás el proceso manejado por esa consola
fg
→ trae al frente el proceso manejado por esa consola
kill
→ finaliza la ejecución de un proceso.
exit
→ sale de la terminal
Los Alias
El
comando alias es un comando interno de la shell el cual
permite tener sobrenombres de comandos, abreviaturas de comandos con
sus parametros o secuencias de comandos que se ejecutan con solo un
nombre, la ejecución del comando alias sin parametros nos muestra
una lista de los alias asignados hasta el momento o como se ve en el
ejemplo seria la forma de agregar un alias a la lista.
Ej:
alias miComando='ls -lhX'
En
el ejemplo anterior se define un comando llamado miComando
el cual ejecuta el programa ls con las opciones -l
formato de lista larga, h muestra el tamaño de
los archivos en un formato mas legible, X ordena los archivos
por nombre y extensión.
unalias:
elimina de la lista un alias previamente asignado.
Ej:
unalias miComando
En
el ejemplo anterior se elimina el alias previamente asignado llamado
miComando.
Programas ejecutables
Los
programas ejecutables son archivos que fueron escritos en un lenguaje
de programación y posteriormente compilados, por tanto se encuentran
en formato binario y habitualmente se encuentran dentro del
directorio /usr/bin, la razón por la que se encuentran ahí es que
una de las variables de la shell llamada $PATH
tiente en su lista esa ubicación para buscar los comandos que se
digitan, por tanto cada que se solicita un comando la shell le busca
en esas ubicaciones y de encontrarlo le ejecuta.
Dentro
de los programas de consola mas utilizados son los programas para la
gestión del sistema de archivos, administración de redes, entre
otros.
Ejemplos
de programas de línea de comandos:
ls
→ programa que lista los archivos de un directorio.
mkdir
→ programa que permite crear un directorio
file
→ programa que muestra información sobre un archivo
less
→ programa que permite leer el contenido de un archivo de texto
plano
vim
→ programa que permite editar archivos de texto plano.
Donde se encuentra un programa
La
ubicación del ejecutable de un programa puede encontrarse mediante
el comando which, dado que la mayoría aunque no todos los comandos
se encuentran dentro de /usr/bin, puede ser necesario usar este
comando para conocer la ubicación.
me@me:~$ which ls
/bin/ls
En
caso que se trate de una orden interna del shell no será posible
identificar su ubicación.
Como usarlo y para que sirve un comando
La
shell tiene un comando interno llamado help, el cual
permite conocer como funciona y los parametros que debe tener una
orden interna para su correcta ejecución.
Ejemplo:
me@me:~$ help pwd
pwd: pwd [-LP]
Muestra el nombre del
directorio de trabajo actual.
Opciones:
-L muestra el valor de
$PWD si nombra al directorio de
trabajo actual
-P muestra el
directorio físico, sin enlaces simbólicos
Por defecto, `pwd' se
comporta como si se especificara `-L'.
Estado de Salida:
Devuelve 0 a menos que
se de una opción inválida o no se pueda leer
el directorio actual.
El
comando interno help es diferente del parámetro --help
con el que cuentan algunos comandos externos, es por ello que su
invocación en los comandos externos es después del nombre del
comando Ejemplo:
me@me:~$ env --help
Modo de empleo: env
[OPCIÓN]... [-] [NOMBRE=VALOR]... [ORDEN [ARGUMENTO]...]
Asigna a cada NOMBRE el
VALOR en el entorno y ejecuta ORDEN.
Los argumentos obligatorios
para las opciones largas son también obligatorios
para las opciones cortas.
-i, --ignore-environment
start with an empty environment
-0, --null end
each output line with 0 byte rather than newline
-u, --unset=NAME
remove variable from the environment
--help muestra
esta ayuda y finaliza
--version informa de
la versión y finaliza
Un simple - implica -i. Si
no hay ORDEN, muestra el entorno resultante.
El
programa man es un paginador para la documentación de
todos los programas la forma de invocarlo es sencilla y es de gran
valor para el uso del sistema operativo.
me@me:~$ man programa
donde
programa es el nombre del comando del que se quiere obtener ayuda.
Es
posible hacer una búsqueda de coincidencias de una palabra en las
paginas man mediante el comando apropos, de esa forma
cuando se tiene dudas sobre el nombre de un comando se puede usar
me@me:~$ apropos palabra
Ejemplo:
me@me:$ apropos writer
grotty (1) - groff
driver for typewriter-like devices
Image::ExifTool::Writer
(3pm) - ExifTool routines for writing meta information
lowriter (1) -
LibreOffice office suite
Con
el programa whatis se obtiene una breve descripción de
un comando
me@me:~$ whatis cp
cp (1) - copy
files and directories
Estas
son algunas de las formas de documentarse sobre la utilización de
los comandos en consola.
Funciones
Las
funciones son secuencias de comandos que se escriben en un archivo el
cual se puede ejecutar cuando una tarea se hace de manera repetitiva,
para ello la shell nos aporta varias instrucciones que podemos usar,
es asi como haciendo uso de palabras reservadas, comandos internos y
externos podemos tener un primer acercamiento a la programación.
Sin embargo
eso será parte de otro artículo.
No hay comentarios.:
Publicar un comentario