redirect #17
@ -13,6 +13,12 @@
|
|||||||
\usepackage{amsmath}
|
\usepackage{amsmath}
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
\usepackage{xcolor}
|
\usepackage{xcolor}
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
|
||||||
|
\usepackage{mathptmx}
|
||||||
|
|
||||||
|
\newcommand{\Quad}{\hspace*{1em}}
|
||||||
|
|
||||||
\lstdefinestyle{freefempp}{
|
\lstdefinestyle{freefempp}{
|
||||||
language=C,
|
language=C,
|
||||||
@ -79,6 +85,8 @@ Carlos Faúndez
|
|||||||
|
|
||||||
\include{sections/introduccion}
|
\include{sections/introduccion}
|
||||||
|
|
||||||
|
\include{sections/funcionamiento}
|
||||||
|
|
||||||
\include{sections/codigo}
|
\include{sections/codigo}
|
||||||
|
|
||||||
\include{sections/conclusiones}
|
\include{sections/conclusiones}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
\section{Código}
|
\section{Código}
|
||||||
\input{sections/codigo/ciclo}
|
\input{sections/codigo/ciclo}
|
||||||
\input{sections/codigo/builtins}
|
\input{sections/codigo/builtins}
|
||||||
\input{sections/codigo/launch}
|
\input{sections/codigo/permutar}
|
||||||
\input{sections/codigo/redireccion}
|
\input{sections/codigo/redireccion}
|
||||||
\input{sections/codigo/environ}
|
\input{sections/codigo/environ}
|
@ -1,6 +0,0 @@
|
|||||||
\newpage
|
|
||||||
\subsection{Launch}
|
|
||||||
Launch(lanzar) es la parte responsable por permutar un programa que está en el sistema operativo o en PATH. Para hacer eso\
|
|
||||||
primer hacemos un fork donde el hijo permuta la operación y el padre espera que su hijo termina. Luego pasamos un nombre\
|
|
||||||
de programa a lanzar y sus argumentos al execvp para permutar en el hijo.
|
|
||||||
\lstinputlisting{code/launch.txt}
|
|
6
doc/sections/codigo/permutar.tex
Normal file
6
doc/sections/codigo/permutar.tex
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
\newpage
|
||||||
|
\subsection{Permutar}
|
||||||
|
Permutar es la parte responsable por correr un programa que está en el sistema operativo o en PATH. Para hacer eso\
|
||||||
|
primer hacemos un fork donde el hijo permuta la operación y el padre espera que su hijo termina. Luego pasamos un nombre\
|
||||||
|
de programa a permutar y sus argumentos al execvp.
|
||||||
|
\lstinputlisting{code/launch.txt}
|
38
doc/sections/funcionamiento.tex
Normal file
38
doc/sections/funcionamiento.tex
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
\section{Funcionamiento}
|
||||||
|
El myshellin consiste de 3 partes importantes, los comandos "builtins", permutar y redireccionamiento.
|
||||||
|
|
||||||
|
\subsection{Builtins}
|
||||||
|
Los builtins son comandos que son proporcionados por el shell en vez de un programa que provee el sistema operativo. Los comandos\
|
||||||
|
que proporciona el myshellin son:
|
||||||
|
\begin{itemize}
|
||||||
|
\item help \newline \Quad mostrar una mensaje de ayuda de como usar el shell.
|
||||||
|
\item environ \newline \Quad imprimir todos los variables del entorno.
|
||||||
|
\item set \newline \Quad crear o sobre escribir un variable de entorno.
|
||||||
|
\item echo \newline \Quad imprimir un comentario o variable.
|
||||||
|
\item cd \newline \Quad cambiar el directorio donde está trabajando el shell.
|
||||||
|
\item exit \newline \Quad salir del shell.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
Cuando el comando que ingreso el usuario no es un builtin el siguiente paso es tratar de permutar un software que proporciona el\
|
||||||
|
sistema operativo.
|
||||||
|
|
||||||
|
\subsection{Permutar}
|
||||||
|
Para permutar un programa de sistema, el proceso de myshellin hace una llamada al fork para crear un proceso hijo. Luego el\
|
||||||
|
proceso hijo intenta permutar con el comando execvp. Lo que hace eso es reemplazar el proceso hijo con el proceso del programa\
|
||||||
|
que proporciona el sistema operativo como ls, rm, df, du, etc. Mientras que corre el programa el proceso padre espera que\
|
||||||
|
termina el proceso hijo antes que puede seguir pidiendo que el usuario ingresa otros comandos.
|
||||||
|
|
||||||
|
\newpage
|
||||||
|
\subsection{Redireccionamiento}
|
||||||
|
Redireccionamiento es el proceso de redirigir los contenidos de una entrada o salida al stdin, stdout o stderr. Por ejemplo\
|
||||||
|
se puede redirigir todo el contenidos que se debe imprimir en stdout a un archivo usando el símbolo ``>`` seguido por un nombre\
|
||||||
|
de archivo. En el shell existen los siguientes tipos de redireccionamiento:
|
||||||
|
\begin{itemize}
|
||||||
|
\item > \newline \Quad redirigir el stdout a un archivo y borrar el contenido anterior si existe el archivo.
|
||||||
|
\item >\null> \newline \Quad redirigir el stdout a un archivo y agregue el el contenido nuevo al final del archivo si existe.
|
||||||
|
\item 1> \newline \Quad redirigir el stdout a un archivo y borrar el contenido anterior si existe el archivo.
|
||||||
|
\item 1>\null> \newline \Quad redirigir el stdout a un archivo y agregue el el contenido nuevo al final del archivo si existe.
|
||||||
|
\item 2> \newline \Quad redirigir el stderr a un archivo y borrar el contenido anterior si existe el archivo.
|
||||||
|
\item 2>\null> \newline \Quad redirigir el stderr a un archivo y agregue el el contenido nuevo al final del archivo si existe.
|
||||||
|
\item < \newline \Quad redirigir el contenido de un archivo al stdin.
|
||||||
|
\end{itemize}
|
Loading…
Reference in New Issue
Block a user