PDF de programación - ¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

Imágen de pdf ¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?gráfica de visualizaciones

Publicado el 16 de Octubre del 2018
726 visualizaciones desde el 16 de Octubre del 2018
371,9 KB
35 paginas
Creado hace 9a (25/04/2015)
¡Denme un shell y moveré al mundo!

o ¿Por qué la linea de comandos no es una interfaz

anticuada?

Pablo L. De Nápoli

GlugCEN - Grupo de Usuarios de Software Libre

de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires

SoLAR - Software Libre Argentina

25 de abril de 2015

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

1 / 35

Motivación de la Charla

El shell o intérprete de comandos es un progama fundamental del
sistema operativo. Su misión es tomar órdenes del usuario y
ejecutarlas.

Cuando se creó el sistema Unix (hacia 1970), era la única interfaz
disponible.

Actualmente disponemos de muchas interfaces gráficas muy
amigables para el usuario (como KDE, Gnome, etc.), y muchos
usuarios tienden a pensar que el intérprete de comandos es una
interfaz anticuada. Creen que es como usar el MS-DOS.

En esta charla, trataré de convencerlos, con ejemplos prácticos, de
qué esto no es así.

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

2 / 35

Parte I

¿Qué es el Shell (intérprete de comandos) de

Unix / GNU Linux ?

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

3 / 35

¡Hola mundo del Shell !

Abramos una terminal desde nuestro entorno gráfico. Aparecerá el prompt
(apuntador) $ que indica que el Shell espera una orden.
Podemos entonces introducir y ejecutar un comando. Veamos por ejemplo
la orden echo que imprime un mensaje:

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

4 / 35

Ejecución de comandos como root

El prompt es $ para un usuario común, sin privilegios; y # para el usuario
root (administrador del sistema). Para poder realizar ciertas tareas
administrativas, como por ejemplo instalar programas, se necesita
convertirse en root, mediante los comandos su o sudo.

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

5 / 35

El Shell o Los Shells

Existen en realidad un montón de intérpretes de comandos diferentes.
El más popular es Bash (Bourne again shell) del proyecto GNU.

En esta charla trabajaremos con él.

Otras opciones son csh, dash, ksh, tcsh, zsh, etc.

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

6 / 35

Algunos Comandos de Uso Frecuente

ls
rm
mv
cp
ln
cat
cd
pwd
mkdir
rmdir
man
info / pinfo
ps / top / htop
kill
exit

listar archivos
borrar archivos
mover o renombrar archivos
copiar archivos
crear un enlace a un archivo
imprimir el contenido de un archivo
cambiar el directorio actual
imprimir el directorio actual
crear un directorio
borrar un directorio
mostrar la página de manual de un comando
mostrar las páginas de ayuda en formato info
ver los procesos que se están ejecutando
matar a un proceso que se está ejecutando
salir del shell actual

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

7 / 35

Comandos Internos y Externos

Existen dos clases de comandos:

Comandos internos: Son comandos que el shell sabe ejecutar
directamente. Por ejemplo: exit, echo, cd

Comandos externos: Son realmente programas que se ejecutan. Esos
programas están contenidos en un archivo (Pueden ser en formato
binario, o en lenguaje que es interpretado por un intérprete. Esto es
transparente para el usuario.)

Ejemplo 1: El comando ls, es realmente un programa contenido en el
archivo /bin/ls, en formato binario.

Ejemplo 2: El comando xzless que sive para ver algunos archivos
comprimidos, es realmente un programa en el lenguaje del shell Bash
(que a su vez ejecuta a los programas xz y less).

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

8 / 35

Sintaxis de los comandos

Un comando en un sistema Unix, tiene generalmente la siguiente sintaxis:

[ruta de búsqueda/]comando [opciones] [argumentos]

La ruta de búsqueda indica en qué directorio está el archivo que contiene
el programa (comando externo) que queremos ejecutar. Si no se especifica,
se lo busca en los directorios indicados en la variable de entorno PATH.
Las opciones que modifican el comportamiento del comando comienzan
por - o –.
Ejemplos con el comando ls (listar archivos):

ls -lrt

ls --reverse *.txt

/bin/ls --color

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

9 / 35

Algunos programas útiles en la consola

editores de texto

nano, joe, vi, emacs
mc (Midnight Commander) manejador de archivos
wget
lynx, links
lftp
ssh (Secure Shell)
mpg321 / orpheus
alsamixer

descargar un archivo de internet
navegador web modo texto
cliente ftp en la consola
ejecución remota de un shell
reproducir archivos de sonido en mp3
control del mezclador de sonido

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

10 / 35

Ejemplo: ejecución de un shell remoto por ssh

(acá hice trampa pues 127.0.0.1 es mi máquina local, pero funcionaría
exactamente igual con la ip o nombre de una máquina remota)

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

11 / 35

Ejemplo: Navegando la página del Flisol con Lynx

lynx http://flisol.usla.org.ar/sede/CABA/

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

12 / 35

Ejemplo: Manejando archivos con el Midnight Commander

Para nostálgicos del Norton Commander...

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

13 / 35

Parte II

Los programas pueden hablar con otros

programas

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

14 / 35

Algunas palabras sobre el diseño de un sistema Unix

El sistema Unix fue diseñado como un conjunto de pequeñas piezas
simples. Idealmente, cada programa debe concentrarse en realizar una
sóla tarea, y ¡realizarla bien!

Los programas pueden interactuar entre sí mediante las facilidades
provistas por el sistema.

Como veremos, las interfaces orientadas a la linea de comandos
permiten que los programas se comuniquen entre sí.

En esta parte de la charla, describiremos dos de las facilidades
provistas por el shell para ello: la redirección y las tuberías.

Para conocer más sobre la filosofía de Unix, les recomiendo el libro
The Art of Unix Programming por Eric Steven Raymond.

Pablo L. De Nápoli

(GlugCEN - Grupo de Usuarios de Software Libre de la Facultad de Ciencias Exactas y Naturales - Universidad de Buenos Aires SoLAR - Software Libre Argentina)

¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada?

25 de abril de 2015

15 / 35

La redirección

Normalmente un comando de Unix lee datos del teclado (standard input) y
escribe sus resultados en la pantalla (standard output).

La redirección es una facilidad del shell, que nos permite redirigir la entrada
o la salida de un comando hacia un archivo. Veamos al
  • Links de descarga
http://lwp-l.com/pdf13910

Comentarios de: ¡Denme un shell y moveré al mundo! o ¿Por qué la linea de comandos no es una interfaz anticuada? (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad