38 lines
2.6 KiB
TeX
38 lines
2.6 KiB
TeX
\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} |