redirect #17
@ -13,6 +13,12 @@
|
||||
\usepackage{amsmath}
|
||||
\usepackage{listings}
|
||||
\usepackage{xcolor}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage{lmodern}
|
||||
|
||||
\usepackage{mathptmx}
|
||||
|
||||
\newcommand{\Quad}{\hspace*{1em}}
|
||||
|
||||
\lstdefinestyle{freefempp}{
|
||||
language=C,
|
||||
@ -79,6 +85,8 @@ Carlos Faúndez
|
||||
|
||||
\include{sections/introduccion}
|
||||
|
||||
\include{sections/funcionamiento}
|
||||
|
||||
\include{sections/codigo}
|
||||
|
||||
\include{sections/conclusiones}
|
||||
|
@ -1,6 +1,6 @@
|
||||
\section{Código}
|
||||
\input{sections/codigo/ciclo}
|
||||
\input{sections/codigo/builtins}
|
||||
\input{sections/codigo/launch}
|
||||
\input{sections/codigo/permutar}
|
||||
\input{sections/codigo/redireccion}
|
||||
\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