#-------------------------- # Text: Shell # Date: 31/02/02 # Author: rkc # Mail: rkc@70semanas.com # Web: www.70semanas.com # Lector: Novice #-------------------------- :: "Un poco de SHELL" :: #-------------------------- Index. 0) Breve introducción 1) Navegar por el sistemas de archivos 1.1) Directorios 1.2) Listados de archivos 1.3) Cambiando de directorios 2) Buscando archivos 2.1) Comando find 2.2) Comandos: LOCATE, WHEREIS, WHICH 3) Manejar archivos en el Shell 3.1) Crearlos, borrarlos, copiarlos, moverlos 3.2) Leer archivos 3.2.1) Concatenación: CAT 3.2.2) Visores de página: MORE, LESS 3.2.3) Visualización por partes: HEAD, TAIL 3.3) Editando archivos 3.3.1) VI & EMACS 4) Utilidades 4.1) Comando: WC 5) Fuente, vínculos, etc ------------------------- 0) Introducción Este es un pequeño texto que "explica algo" del tan famoso Shell, de Linux. Voy a tocar solo "unos puntos espciales", estos son: Cómo navegar, moverse, por el sistema, desde la línea de comandos; buscar archivos desde la misma; manejar archivos, crear, borrar, editarlos; y por último algunas utilidades muy interesantes. Texto realizado por rkc, para 70semanas.com . Distribuirlo, conservando "todo este tipo de msg's".. Dudas/consultas sobre el texto: rkc@70semanas.com Dudas/consultas por otro tema: www.70semanas.com ------------------------- 1) Navegar por el sistemas de archivos 1.1) DIRECTORIOS Todos los sistemas Linux, tienen un directorio raíz, uno solo uno. Los archivos que se encuentran en este tipo de sistemas, estan colocados en forma de árbol, imaginando que el directorio raíz es el tronco, de este árbol, con solo un tronco, pero con miles y miles de ramas y hojas. Para poder navegar por todo el sistema de archivos, se necesita, antes que nada, saber en que lugar de este estamos situado, para ello se puede utilizar el comando PWD, el cual una ves ejecutado, nos dice en que lugar nos encontramos. Ejemplo: > pwd /home En este ejemplo, estaba situado en el directorio /home . Todos los usuarios de sistemas Linux, tienen sus propios directorios, o directorios principales. Cada ves que un usuario inicie una sesión, es de esperar que el usuario se encuentre situado en su directorio principal, pero por ejemplo supongamos, que nos vamos "moviendo" por el sistema, viendo, editando archivos, y luego no nos acrodamos cómo llegar a "nuestro directorio", para esto podemos ejecutar el comando: cd ~ . Una ves ejecutado este, estaremos situado en nuestro directorio. También, para llegar al directorio principal de otro usuario, podemos utilizar el comando: cd ~usuario . ------------------------- 1.2) LISTADOS DE ARCHIVOS En Linux, se pueden obtener listados de archivos específicos, mediante el comando LS. Este puede tener argumentos, los cuales le pueden servir para obtener más información, etc. Supongamos que estamos en el directorio: /home , entonces aquí ejecutamos el comando ls: > ls index.html rkc/ Aca vemos que hay un directorio, y también se encuentra el archivo index.html. Ahora por ejemplo usted sigue en el directorio /home , pero quiere obtener un listado de los archivos/directorios que se encuentran a su ves en otro directorio, puede ejecutar: ls / . Esto nos mostraría todos los archivos/directorios que se encuentren allí. Ejemplo: > ls / bin/ dev/ home/ lib/ opt/ root/ tmp/ var/ boot/ etc/ initrd/ mnt/ proc/ sbin/ usr/ El comando ls, nos muestra todos los directorios que se encuentran en /. ------------------------- 1.3) CAMBIANDO DE DIRECTORIOS Ahora en esta sección veremos, cómo cambiar de directorios. Gracias al comando CD, podemos movernos "para un lado, para el otro". Ejemplo: Seguimos en el directorio raíz del sistema (/), a partir de allí queremos ir al directorio: /home/rkc, para realizar esta tarea tenemos opciones a elegir, la primera es ejecutar cd /home/rkc , o también podemos ingresar primero al directorio /home, y luego a /rkc ( cd /home , y después cd /rkc) Ya una ves que estemos en /home/rkc , queremos ir a /home , para esto podemos ejecutar: cd.. , lo cual nos llevaría al "directorio atras" al que nos encontramos. Pero también al igual que la ejecución de cd anterior, podemos realizar: cd /home, lo cual nos llavaría al mismo lugar. ------------------------- 2) Buscando archivos 2.1) COMANDO FIND El comando FIND, es el comando que se encarga de buscar archivos en todo el sistema de archivos, para poder ejecutarlo, nosotros tendríamos que saber por ejemplo: su nombre, parte de su nombre, fecha de creación, tamaño, etc. Casi siempre cuando se busca un archivo, este, se busca por su nombre, o parte de el. Para buscar un archivo por su nombre, hay que ejecutar el comando find, seguido del directorio en el cual queremos buscar, o mejor dicho, a partir de cual queremos buscarlo, la opción -name , y el nombre, o parte, del archivo. Ejemplo: > find / -name index.html /usr/doc/wxftp-0.4.4/help/index.html /usr/share/doc/HTML/en/kded/index.html /usr/share/doc/HTML/index.html /usr/share/doc/aspell-0.33.7.1/aspell/man-html/index.html /usr/share/doc/libxslt1-1.0.12/index.html /usr/share/doc/libgd1-1.8.4/index.html /usr/share/doc/libxml2-2.4.16/index.html /usr/share/doc/pspell-0.12.2/man-html/index.html /usr/share/opera/help/index.html /usr/share/scrollkeeper/doc/scrollkeeper_manual/C/index.html Aquí está el resultado; también nos dice en qué lugar se encuentra "ese" arhcivo index.html. Ahora veamos otro ejemplo. Tal ves usted no recuerda el nombre del archivo que quiere encontrar, pero si recuerda, que lo creó "antes de ayer", osea, hace dos días. Para esto existe una solución, la cual es, buscar todos los archivos del sistema, creados luego de cierto tiempo. > find / -ctime 2 Esto nos mostraría todos los archivos creados "a partir de hace dos días". También puede pasar, que bajó un archivo .iso de la red, el cual tiene un tamaño de 650 mb pero no se acuerda, ni cuándo lo bajó, ni tampoco su nombre. Como era de esperar, para esta situación también existe una solución, que es, buscar los archivos que tengan un tamaño de 650 mb. Utilice el comando: find -size ------------------------- 2.2) COMANDOS: LOCATE, WHEREIS, WHICH El comando find, es una utilidad realmente buena, pero a veces, puede resultar un poco "lenta". Existen otras utilidades que son más rápidas, con las que se puede obtener listados de archivos del sistema, que coincidan con lo que usted quiera buscar. COMANDO: LOCATE Este comando se ejecuta "casi de forma instantanea", es muy rápido, ya que no busca un archivo por todo el sistemas de archivos, sino que busca "la palabra elegida", en una base de datos. Para actualizar esta base de datos, se puede recurrir al comando updatedb. Ejemplo: > locate apache /etc/httpd/conf/apache-mime.types /etc/logrotate.d/apache /var/www/icons/apache_pb.gif /var/apache-mm /var/apache-mm/mm.2032.sem /var/apache-mm/mm.2036.sem /usr/lib/apache-extramodules /usr/lib/apache-extramodules/libphp4.so /usr/lib/apache/mod_setenvif.so /usr/lib/apache/mod_negotiation.so El resultado continua... ----- COMANDO: WHEREIS Este comando busca por directorios, y devuelve las rutas de acceso a los ejecutables, códigos de fuente, y otros archivos con respecto al criterio de busqueda. En si, se puede decir que el comando whereis, sirve para ver "donde esta X programa", en el sistema de archivos. Ejemplo: > whereis apache apache: /usr/lib/apache ----- COMANDO: WHICH El comando which, es muy similar al comando anterior. Este, realiza la busqueda en los directorios especificados en su variable de entorno "PATH". Es muy rápido, y se ejecuta de la misma forma que el comando whereis. Ejemplo: > which xmms /usr/bin/xmms ------------------------- 3) Manejar archivos en el Shell 3.1) CREARLOS, BORRARLOS, COPIARLOS, MOVERLOS Para poder crear achivos desde la línea de comandos, se puede utilizar el comando TOUCH, el cual se usa para dos tareas especiales, una es la creación de un nuevo archivo "vacío", y la otra, es la de actualizar la fecha/hora de última modificación de X archivo. Vamos a ver un ejemplo. > ls Documents/ Notice file.txt Por ejemplo ahora, queremos actualizar la fecha de última modificación del archivo file.txt > touch file.txt Con esto solo, bastaría para que esa fecha queda actualizada a la del momento que se ejecutó ese comando. Pero, te estarás preguntando cómo crear un archivo vacío, bueno, para realizar esto, se ejecuta el comando touch, seguido del archivo a crear. Eso si, en el directorio a crear el nuevo archivo, no tiene que haber uno con el mismo nombre a elegir, ya que si ejecutas el comando touch, con el nombre de un archivo existente, cuando lo abras, no va a estar nada vacío osea, va a contener la información que ya contenía, vos solamente lo que hiciste fué cambiarle la última fecha de modificación. Ejemplo: > touch index.html > ls Documents/ Notice file.txt index.html ----- BORRAR ARCHIVOS El comando que se utiliza en Linux, para eliminar archivos es RM. Este se debe emplear con mucho cuidado. Sunpongamos que queremos borrar el archivo index.html, que antes habíamos creado, para esto, hay que ejecutar el comando rm, seguido del nombre del archivo. Ejemplo: > rm index.html rm: ¿borrar `index.html'? (s/n) A esa pregunta que nos hace, le respondemos que si, y listo, index.html eliminado. Este comando contiene muchas opciones (man rm), voy a explicar solo 3, que son las que ví que más se utilizan. RM -I: este se denomina como modo interactivo, y hace que siempre que ejecutemes el comando, con dicha opción, este, nos pregunte si deseamos borrar los archivos, uno por uno. RM -F: el modo forzado, hace que el comando rm, borre todos los archivos, sin tener en cuenta los permisos RM -R: modo recursivo, este se utiliza para eliminar directorios y todo su contenido. ----- COPIAR ARCHIVOS El copiar archivos, no es muy dificil de entender. Solo se ejecuta el comando cp, seguido del nombre del archivo a copiar, y el nuevo nombre del archivo, este último sería la copia del primero. Se pueden copiar archivos de un directorio a otro, en el mismo directorio, de otro a un directorio, etc =) .. Veamos el ejemplo de que usted necesite copiar el archivo index.html, tan solo debe ejecutar: > cp index.html my-new-index.html Con esto ya es suficiente, para tener una copia de nuestro index.html, en el mismo directorio ----- MOVER ARCHIVOS La utilidad que sirve para mover archivos, es la misma que se utiliza para "renombrar archivos". Este es el comando MV, y se ejecuta: mv Ejemplo: > mv index.html index2.html Ahora el archivo index.html es "renombrado" a index2.html. Pero veamos otro ejemplo. > mv index.html /home/httpd/index.htm En este caso, movimos index.htm del directorio actual, a /home/httpd, con el mismo nombre. ------------------------- 3.2) LEER ARCHIVOS 3.2.1) CONCATENACIÓN: CAT En esta sección del artículo voy a explicar algo sobre cómo leer archivos desde la línea de comandos. Hay muchas utilidades para realizar esta tarea, existen: visores de página, otras utilidades que hacen que podamos leer la primera o la última parte de un texto, y una que es la más conocida, que nos tira todo el texto en pantalla, sin ir página por página, ni nada. La forma más fácil de leer un archivo es la de utilizar el comando cat, el comando de concatenación, se lo llama de esta manera ya que, el texto que querramos leer, utilizando esta utilidad, "nos muestra el documento entero", osea no lo muestra por parte, lo que no es nada comodo si el documento que quisieramos leer fuese muy largo. Para leer un documento utilizando el comando cat, ejecute: cat nombredelarchivo Ejemplo: > cat myfile.txt Ejemplo de concatenación. Ejemplo de concatenación., es lo que contenía el documento myfile.txt. ----- 3.2.2) VISORES DE PÁGINA: MORE, LESS Como mencioné anteriormente, el comando cat no resulta muy comodo, si tenemos que leer documentos muy largos, para ello existen utilidades tales como MORE y LESS. Estos dos son muy similares, por ejemplo para ejecutar un documento con more, ejecute: more , y si lo quisiera ejecutar con less, sustituya more, por less. Luego estos le mostrará la primera página del archivo, si quiere pasar a la siguiente página, solo tiene que apretar la barra espaciadora, si quiere retroceder una página en el documento: tecla b, y por último si quiere salir del programa, solo presione la tecla q. ----- 3.2.3) VISUALIZACIÓN POR PARTES: HEAD, TAIL Supongamos que queremos leer la primera parte de un documento, para ello tenemos a nuestro alcance la utilidad HEAD, la cual ejecutandola: head , nos muestra las primeras 10 líneas de nombre_de_archivo. Ahora también supongamos que queremos observar la parte final de un documento, también para realizar esta tarea, tenemos la utilidad TAIL, la cual se ejecuta de forma idéntica a HEAD, pero es completamente al reves de la anterior, ya que esta nos va a mostrar 10 líneas, pero en ves de ser la primeras, van a ser las últimas 10 líneas. -------------------------Dudas/consultas sobre el texto: rkc@70semanas.com Dudas/consultas por otro tema: www.70semanas.com 3.3) EDITANDO ARCHIVOS 3.3.1) VI & EMACS El editar archivos en los sistemas NIX, es una tarea muy importante, ya que por ejemplo muchos programas, tienen sus configuracines en archivos de textos. (Esto es solo por dar un ejemplo). En todo sistema Linux, es "casi" seguro tener instalado el editor VI, el cual no tiene una interfaz "muy linda, bella", que digamos, pero es rápido, y sirve para editar cualquier tipo de archivos. No voy a explicar mucho de estos dos editores tan populares, ya que si empiezo a explicar solo algo sobre estos, "nunca terminaría". Explicaré solo lo básico. El otro editor también muy conocido es EMACS, el cual no es "tan rápido" como vi, pero este si tiene una interfaz mucho más intuitiva a la de VI. Para editar un archivo con Vi, debería ejecutar: vi Para editar un archivo con Emacs, ejecute: emacs Los dos editores contienen comandos. Voy a nombrar algunos muy importantes de VI. TECLAS | ACCIÓN l Desplazamiento a la derecha h '' a la izquierda j '' a la siguiente línea k '' a la línea anterior :w + enter Guarda el documento :w Guarda el documento con un nuevo nombre :q + enter Sale del editor :q! '' '' '' sin guardar ESC Cambia al modo comando Esta es una pequeña lista sobre los comandos básicos del editor VI. Por más ayuda sobre este editor: man vi, o man emacs, para ayuda sobre este editor. ------------------------- 4) UTILIDADES 4.1) COMANDO: WC EL comando WC, es el que se utiliza para contar en un documento, cuantas líneas, palabras, y caracteres tiene. Se ejecuta: wc Ejemplo: > wc file_wc.txt 21 113 743 file_wc.txt El resultado nos devolvió cuatro columnas. La primera indica que ese documento tiene un número total de línes de 21, la segunda nos está indicando que tiene 113 palabras, la tercera, que contiene 743 caracteres, y por último nos dice el nombre del archivo. ------------------------- 5) FUENTE, VÍNCULOS, ETC Realizé este artículo, guiandome con un libro, ya que no soy escritor =) , me fui guiando sobre los temas, ya que por ejemplo no se puede hablar de escribir un texto, sin primero saber crear un archivo para luego editarlo. VÍNCULOS: http://vim.org : "Vim - Vi IMproved, a programmers text editor" http://www.gnu.org/software/emacs/ : "Emacs is the extensible, customizable, self-documenting real-time display editor". http://google.com.ar : Search engine http://freshmeat.net : Software, software, software Dudas/consultas sobre el texto: rkc@70semanas.com Dudas/consultas por otro tema: www.70semanas.com ------------------------- ".. Linux is a registered trademark of Linus Torvalds .."