Está en la página 1de 19
Tutorial BASH n°2 Comandos basicos de linux 1 2 BASH - Tutorial 2 Trabajando con ficheros INDICE Directorio Persona. Comandos basicos. 2a. 22. 23. 24. 25. 26. 27. 28. 29. 2:10. 21. 242. 243, Listado del conteni lo de directorios: comando I. Creacién de subdirectorios. Comando mkdir, Borrado de subdirectorios. Comando rmdir. Cambio de directorio. Comando ed .. Directorio actual. Comando pwd Commando read.von Acceso a unidades de discO Copia de ficheros. Comando ep .. Mover y cambio de nombre de ficheros.(m) su. Enlaces a ficheros. Comand In. Borrado de ficheros. Comando rm... Caracteristicas de un fichero. Comando file Cambio de modo: chmod/chown/cherp... Espacio ocupado en el disco. Comandos dU y df ...ninnnnmnnnnnnnnnnennanennnanennnnses Visualizar sin formato un fichero, Cat winennnmnmnnnnnmnnnnnnnennnnnnnannnnnnenes Comando head y tall .n.nnmnnmnnnmnnnnnnninninninnnninnnnnnnnnnnnncanennneses Visualizarficheros con formato. Comando Pr wvern 16 Visualizacién de ficheros, more y leS5.mnnnminnnnnnnnnnennn snnnnnnnnene IT Comandos de impresién. Comando Ipr W Compresién: Comandos tat Y BZIP .mnminennnnnnnnnnnmnnnnnnnennnnnnnnnnnnnneie BASH - Tutorial 2 Trabajando con ficheros 1. Directorio Personal Cuando un usuario abre la sesién en un sistema Linux, comienza a trabajar en un lugar especifico dentro del sistema de ficheros. Ese lugar especifico es un propio directorio privado, en el cual, el usuario, puede crear libremente ficheros y subdirectorios. Los directorios propios de otros usuarios no entran en conflicto con el suyo, Cada usuario tiene un directorio privado. Este directorio tiene el nombre del usuario (login). Esta dentro del directorio home y lo crea el sistema cuando se da de alta por primera ver al usuario. Es decir, cuando uun usuario entra en el sistema comienza dentro de su directorio home. Los usuarios normalmente trabajan dentro de sus directorios propios o en subdirectorios que crean dentro de dichos directorios. No ‘obstante, no importa donde se encuentre el usuario dentro del sistema de ficheros, ya que como se ha visto anteriormente, puede regresar a su directorio propio usando la orden cd sin pardmetros. Con la variable del entorno $HOME proporcionada por el sistema, se puede ver el nombre de camino del subdirectorio propio. Para acceder al directorio personal basta con ejecutar el comando ed sin argumentos. También se referencia al directorio personal con la variable de entorno $HOME, y con el cardcter ~ Sed Sed $HOME Sed BASH - Tutorial 2 Trabajando con ficheros 2. Comandos bisicos. Existen un gran niimero de comandos para el shell de Linux, aunque se suele utilizar un niimero limitado de ellos. La ejecucién de un comando en el terminal de Linux tiene la siguiente forma: $comando [opciones] [argumentos] Al ser un lenguaje sensible a mayisculas, solo valen comandos escritos en minisculas. Las opciones que se pueden afiadir a un comando, son una o varias letras precedidas de guién (-). Los argumentos pueden ser un nombre de fichero y/o directorios, En muchos comandos no son necesarios ni el argumento ni el nombre del fichero. Un comando en Linux no es mas que un fichero ejecutable del sistema. Son programas que el shell encuentra y ejecuta en respuesta a las instrucciones introducidas por el usuario. Entre los comandos basicos, podemos citar los siguientes: cal Muestra por pantalla el calendario. Si no recibe argumentas, el calendario sera el del mes actual, si se ejecuta con argumentos, mostraré el mes y afioindicado. date Este comando muestra o cambla la fecha y la hora actuales del sistema. Si se proporciona la fecha y la hora como argumentos, permite cambiar la fecha y la hhora del sistema (siempre que seamos usuario root) date MMDDAhmmiyy] who Muestra el nombre de los usuarios que se encuentran conectados al sistema en ese momento, indicando el terminal en el que estén y desde que hora, whoami Indica mi nombre de usuario man comando Muestra e! manual de ayuda para el comando pasado por pardmetro. clear Comando para limpiar la consola A continuacién, vamos a detallar el funcionamiento de los comandos de més utilizados, junto con sus ‘opciones y argumentos habituales. 2.41, _ Listado del contenido de directorios: comando Is Una de las acciones més habituales @ la hora de trabajar es mostrar el contenido de un directorio, el shell incluye un programa con este mismo fin: Is Is Muestra los nombres de los ficheros y subdirectorios contenidos en el directorio en el que se estd, Sélo se obtienen los nombres de los Ficheros, sin ninguna otra informacion, Isa Muestra todos los ficheros incluyendo algunos que ordinariamente estén ocultos para el usuario (aquellos que comienzan por un punto}. Is4 Esta es la opcién de lista larga: muestra toda la informacién de cada fichero incluyendo: protecciones, tamafio y fecha de creacién o del ditimo cambio introducido. sc Muestra ordenando por dia y hora de creacién. bt Muestra ordenando por dia y hora de modificacién. Ir Muestra el directorio y lo ordena en orden inverso. Issubdir —_ Muestrael contenido del subdirectorio subdir. Is 4 fichero Muestra toda la informacién sobre el fichero. 4 BASH - Tutorial 2 Trabajando con ficheros \s~color “Muestra el contenido del directorio coloreads. Las opciones anteriores pueden combinarse. Por ejemplo: Is-er Muestra el directorio ordenando inversamente por fechas, El comando Is admite los caracteres de sustitucién o metacarécteres (*) y (2) El cardcter * representa ‘cualquier conjunto o secuencia de caracteres. El cardcter ? representa cualquier cardcter, pero sélo uno. Por ejemplo: Is* ait Muestra todos los nombres de fcheros que acaben en aif, por ejemplo dibl gif, at, ete Isle? Muestra todos los fcheros cuyos nombres empiecen por file tengan un nombre de cinco caracteres, por ejemplo: file, file2, filea, ete. 2.2. Creacién de subdirectorios. Comando mkdir El comando mkdir (make directory) permite a cada usuario crear un nuevo subdirectorio: mkdir subdirl donde subdir es el nombre del directorio que se va a crear. Elcomando mkdir también le permite crear un drbol de directorios complejo con un sélo comando. Ejemplo de estructura a crear: + miproyecto © herramientas © ok Comando a utilizar: mkdir -p miProyecto/{sre,doc/{api tema},herramientas,db} 2.3. Borrado de subdirectorios. Comando rmdir Este comando borra uno 0 més directorios del sistema (remove directory), siempre que estos subdirectorios estén vacios. Por ejemplo: rmdir subdir| donde subdir es el nombre del directorio que se vva a eliminar. Cuando se dese borrar un directorio no vacio se utiliza el comando rm-r 2.4. Cambio de directorio. Comando cd Este comando permite cambiar de directorio a partir del directorio actual de trabajo, Por ejemplo: cd fhome/jgarcia En este ejemplo pasamos del directorio actual de trabajo al nuevo directorio home/igarcia, que seré desde ahora nuestro nuevo directorio, ed directorioa Nos traslada al subdirectorio directorio (que deberd existir como subdirectorio en el directorio actual). cd. Retrocedemos un nivel en la jerarquia de directorios. Por ejemplo, si estamos ‘en /nome/jgarcia y usamos este comando, pasaremos al directorio padre, en 5 BASH - Tutorial 2 Trabajando con ficheros este caso a /home. Hay que recordar dos directorios especial, que son el directorio . (punto} y el directorio .. (dos puntos). El directorio . hace referencia al directorio de trabajo, es decir el directorio donde nos encontramos en este momento. El directorio .. hace referencia al directorio padre del directorio actual, es decir, al que se ‘encuentra en un nivel inmediatamente superior. 2.5. Directorio actual. Comando pwd El comando pwd (print working directory) visualiza o imprime la ruta del directorio en el que nos encontramos en este momento. Este comando es uno de los pocos que no tiene opciones y se utiliza escribiendo simplemente pw. Tiene asociada la variable de entorno $PWD, que al igual que el comando, me muestra el directorio de trabajo actual 2.6. Comando read El comando read sirve para leer informacién de! teclado y guardarla en variables. Su sintaxis es: read varl var? Esta sentencia lee una linea de la entrada estindar y la parte en palabras separadas por el simbolo que indique la variable IFS (por defecto espacio o tabulador). Las palabras se asignan a vari, var2, etc. Si hay mas palabras que variables, las Gltimas palabras se asignan a la titima variable. Aigunas de los parémetros que se pueden usar con el comando read son: = La opcién-dinos permite indicar un delimitador de fin de linea de forma que la linea se lee hasta encontrar este delimitador. + La opcién-ninos permite especificar un niimero maximo de caracteres a leer. Si se intentan escribir mas caracteres que los indicados en esta opcién, simplemente se acaba la operacion de lectura = La opcién-pinos permite aportar un texto de prompt al comando, que se imprime antes de pedir el dato. Ejemplo: read -p”" Indique el usuario: + Laopcién-s nos permitiré ocultar en pantalla los caracteres introducidos, usuario 2.7. Acceso a unidades de disco Linux a diferencia de Windows no utiliza letras ("c:",“d:") para acceder a las distintas unidades de disco de un ordenador. En Linux para acceder al contenido de una unidad de disco o de un CD-ROM este tiene {que haber sido previamente "montado", £1 montado se realiza mediante el comando mount, con lo que el contenido de la unidad se pone a disposicién del usuario en el directorio de Linux que se elija. Para acceder al CD-ROM se teclearia el siguiente comando: mount -t is09660 /dev/edrom /mnt/edrom donde -t iso9660 indica el tipo de sistema que usa la unidad de disco para guardar los ficheros Gas mas usuales son: iso9660 en el caso de un CD-ROM, vfat en el caso de Windows, y ext3 0 extd en el caso de Linux), /dev/cdrom indica el dispositivo que se va 2 montar. Todos los dispositivos estén representados por un fichero del directorio /dev, por ejemplo en el caso de un disquete serd seguramente /dev/fd0, por Sltimo /mnt/edrom es el directorio en el que se pondré a disposicién del usuario el contenido del CD- ROM. De todas formas el usuario siempre puede crear un directorio vacio con el nombre que el elja para montar las unidades de disco que desee donde desee. Cuando el usuario haya dejado de usar ese disco deberé “desmontarlo" mediante el comando umount antes de sacar el disquete o el CD-ROM. En este ditimo caso deberta escribir 6 BASH - Tutorial 2 Trabajando con ficheros umount /mnt/cdrom Para utilizar el comando mount de la forma anterior hace falta ser administrador o root. Para que un usuario comiin pueda utilizar disquetes, CD-ROM, etc, hay que editar el fichero /ete/fstab. 2.8. Copia de ficheros. Comando cp Este comando tiene la siguiente sintaxis; ¢p fichero_origen fichero_destino yy hace una copia de fichero_origen y le llama fichero_destino. Si fichero_destino no existia, lo crea con los mismos atributos de fichero_origen. Si fichero_destino existia antes, su contenido queda destruido y 5 sustituido por el de fichero_origen. El fichero fichero_destino estaré en el mismo directorio que fichero_origen. Tanto fichero_origen como fichero_destino indican el nombre de un archivo, que puede incluir en la ruta al mismo si alguno de ellos no se encuentra en el directorio actual. Otra posibilidad es: ep fich_origen fich_destinonamedir que hace copias de ‘fichorigen —y fich_destino en el directorio namedir. 2.9. Mover y cambio de nombre de ficheros.(mv) Este comando tiene una forma similar al anterior. ‘mw fich_origen destino El comando my realiza la misma funcién que el anterior (cp) pero ademas destruye el fichero original. En definitiva traslada el contenido de fich_origen a destino. Si destino no es un directorio, @ ‘efectos del usuario Io que ha hecho es cambiar el nombre a fich_origen, llamandole destino. mv fich1 fich2 dir mueve uno o mas ficheros (fich4, fich2,...) al directorio dir conservandoles el nombre. my dirt dir2 ‘cambia el nombre del subdirectorio dirt a di. BASH - Tutorial 2 Trabajando con ficheros 2.10. Enlaces a ficheros. Comando In En Linux un mismo fichero puede estar repetido con més de un nombre, ya que con el comando cp se pueden realizar cuantas copias se desee del fichero. Pero, a veces, es mas practico tener un mismo fichero con varios nombres distintos, y lo que es més importante, poder acceder a él desde mas de un directorio. En Linux esto recibe el nombre de enlaces multiples a un fichero, El ahorro de espacio de disco es importante al poder compartir un fichero mas de un usuario. Estos enlaces son muy practicos a la hora de utilizar ficheros que pertenecen a directorios distintos. Gracias a los enlaces se puede acceder a muchos ficheros desde un mismo directorio, sin necesidad de coplar en ese directorio todos esos ficheros. La sintaxis del comando es: In [opciones] fichero nombre_enlace Ejemplo de uso de la orden In serian: In ficht fich2 A partir de este momento el fichero fich1 tiene dos nombres: ficht y fich2. A buscar en tu propia carpeta de usuario, utiliza la tilde “~” como ruta del directorio: bbuscaria los ficheros de tamafio superior a 100 bloques, find / -size +100 -print find / type f name *.sh buscar fichero cuya extensién termine en .sh find / -type f-mtime +30 -size 1M -execrm-rf{}\ busca ficheros con mas de 30 dia desde la Ultima modificacién y con un tamafio de mas de 1 Megabyte y los borra, 12 BASH - Tutorial 2 Trabajando con ficheros 3. Espacio ocupado en el disco. Comandos du y df El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y todos los. subdirectorios que cuelgan de él Lasintaxis de este comando es: du [opciones]... [fichero]... Los usos mas habituales de! comando du son: du Alejecutar el comando du sin parametros, nos muestra el espacio de disco utilizado por el directorio donde nos encontramos, dado en ntimero de bloques. du-h Alejecutar du con la opcién —h nos muestra el espacio en disco que acupa el directorio, pero en numero de bytes. du Nos muestra el numero de bloques ldgicos de 1 KB que ocupa el directorioindicado dua Nos muestra el numero de bloques légicos de 1 KB que ocupan los ficheros contenidos en el directorio actual, o el directorio que se pase como argumento, dus obtenemos un resumen sin que aparezcan los detalles El comando df por el contrario informa del espacio total, ocupado y disponible para cada uno de los sistemas de ficheros. La sintaxis de este comando es: af [opcién) ... [fichero] [[eusscetecathost 15 oF Ficheros bloques de IK Usados Disponibles ‘dev /mapper/centos- root BB59868 4426284 4443604 fevtmpts 493100 8 493100 pfs 5a8428 598 507928 mpts 508428 7868 501368 mpfs 598428 8 508428 dev/sdal Sesses 16064 348524 116757500 112966595 3796904 jowr.oads 371422204 233143480 138278724 Uso% 50% / om 1s me oe 228 os 53% Vontado en /dev Zeev/shm 7run /sys/18/earoup ‘Zboot ‘Ynedia/st_D Ynedia/st Down 13 BASH - Tutorial 2 Trabajando con ficheros 4, Visualizar sin formato un fichero, cat Este comando permite visualizar el contenido de uno o mas ficheros de forma no formateada, ‘También permite copiar uno o mas ficheros como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes, cat fichero Saca por pantalla el contenido del fichero fichero. cat filet file2... aca por pantalla, secuencialmente y segtin el orden especificado, el contenido de los ficheros indicados. cat file1 file2 >file3 El contenido de los ficheros file1 y file2 es almacenado en file. cat file file2 ofile3 El contenido de file1y file2 es afiadido al final de file3, cat 7 Acepta lo que se introduce por el teclado y lo almacena en filet (se crea file). Para terminar se emplea d cat-nfichero permite numerar las ineas 14 BASH - Tutorial 2 Trabajando con ficheros El comando head muestra las primeras lineas de un archivo. La sintaxis del comando head es la siguiente: head [opciones] [archivo] Por omisién muestra las 10 primera lineas, pero el numero se puede modificar: la opci6n -n se utiliza para especificar que lo que queremos es mostrar las primeras lineas, en cambio, con la opcién -c, indicaremos que se muestren los primeros caracteres. Elnimero que se indique debe tener el siguiente formato: Inum {Los primeros num caracteres o lineas. ‘snum Los primeros num caracteres o lineas. num Todo menos los num iitimos caracteres o lineas. Un ejemplo de uso es: head -n 7 fichero escribe las 7 primeras lineas del fichero head -c4 el_quijote.txt sacaras los cuatro primeros caracteres Tail El comando tail sirve para mostrar las ditimas lineas de un fichero. Por omisién muestra las Gltimas 10 lineas del archivo. La sintaxis del comando tall es la siguiente: ‘all [opciones] [archivo] Hay algunas opciones que son realmente interesantes, -c. Extrae los uiltimos bytes. También es posible utilizar -c +numero. En este caso lo que hard es extraer desde el byte numero, -n. Igual que el caso anterior pero en lugar de bytes lo realiza con lineas. Igualmente también puedes utilizar -n ¢numero para extraer desde la linea numero, -f. Con esta opcién se va afladiendo texto conforme el archivo va creciendo. Esto es de gran utilidad para seguir un log. Un ejemplo de uso seria tail-n4 fichero escribe las 4 ultimas lineas de fichero. 15 BASH - Tutorial 2 Trabajando con ficheros 6. Visualizar ficheros con formato. Comando pr Este comando, a diferencia de cat, imprime por consola el contenido de los ficheros de una manera formateada, por columnas, controlando el tamafio de pagina y poniendo cabeceras al comienzo de las mismas. Est muy en relacién con el comando Ip de salida por impresora. Las formas més importantes ‘que admite son las siguientes: pr file Produce una salida esténdar de 66 lineas por pégina, con un ‘encabezamiento de 5 lineas (2 en blanco, una de identificacién y otras 2lineas ‘en blanco) pr-tn file Produce una salida de n lineas por pagina (cuando el tamafio de papel de impresora, por ejemplo, tiene un niimero de lineas distinto de 66) pr-pfile Hace una pausa para presentar la pigina, hasta que se pulsa para continuar pr-tfile Suprime las 5 lineas del encabezamiento y las de! final de pagina pr-wn file ‘Ajusta la anchura de la linea an posiciones. pr -d file Lista el fichero con cespaciado doble. pr -h “caracteres'file el argumento o cadena de caracteres ‘caracteres’ se convertirén en la cabecera dellistado. prenfile Imprime el fichero a partir de la pagina n Ademés de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando, como por ejemplo en: pr -dt file la salida de este comando es por la consola, pero puede redireccionarse a otro fichero, por ejemplo, siejecutamos el comando: pr filel > file2 se crea un fichero nuevo llamado file2 que 5 idéntico a filet, pero con formato por paginas y columnas. 16 BASH - Tutorial 2 Trabajando con ficheros 7. Visualizacién de ficheros, more y less Estos comandos permiten visualizar un fichero pantalla a pantalla, EI ndmero de lineas por pantalla es de 23 lineas de texto y una titima linea de mensajes, donde aparecers la palabra more. Cuando se pulsa la barra espaciadora (el espacio en blanco}, se visualizars la siguiente pantalla. Para salir de este comando (terminar la visualizacién) se pulsa d 0 q. Por ejemplo: more fichero El comando less es muy similar al anterior pero permite el desplazamiento a lo largo del texto empleando las teclas de cursores pudiendo desplazarse hacia arriba o abajo de un fichero. Opciones en el uso de more/less: h se obtiene la ayuda q se sale del comando x6 se posiciona en la linea “x” s se posiciona en la iltima linea /cadena ya tecla de retornode carro _se posiciona en “cadena’ n busca la siguiente cadena N busca la anterior cadena 8. Comandos de impresin. Comando Ipr El comando Ipr se emplea para imprimir una serie de ficheros. Si se emplea sin argumentos imprime el texto que se introduzca a continuacién en la impresora por defecto. Por el contrario, Iprnombrefichero _imprime en la impresora por defecto el fichero indicado. a7 BASH - Tutorial 2 Trabajando con ficheros 9. Compresién: Comandos tar y gzip ‘Tanto el comando tar como grip son ampliamente empleados para la difusién de programas yficheros en Linux. El primero de ellos agrupa varios ficheros en uno solo archivo, mientras que el segundo los comprime. £1 uso general del comand tar para crear el archivo de empaquetado es: tar-evf nombre_archivo.tarficherol fichero2 donde ficherot, fichero2 ete. son los ficheros que se van a afadi al archivo tar. Si se desea extraer los ficheros se emplea tar-xpvf nombre_archivo.tar ficherot... Eluso de tar no comprime el fichero resultante, con lo que no se ahorra espacio, Si querernos aplicar compresién, debemos asociar un compresor a tar. Para comprimir se utiliza el comando grip, que comprime un tnico fichero, con lo que la informacién se mantiene pero se reduce el tamario del mismo. El uso del comando grip es el siguiente: stip fichero con lo que se comprime fichero (que es borrado) y se crea un fichero con nombre fichero.gz Silo que se desea es descomprimir un fichero emplea stip -d fichero.gz descomprimiendo el archivo y recuperando el archivo inical Se puede utilizar gzip a continuacién de tar, obteniendo ficheros con extensién tar.gz © tgz que contienen varios ficheros de forma comprimida (similar a un fichero zip). El comando tar incluye la opcién 2 para estos ficheros de forma que para extraer los ficheros que contiene: tar -a¢ffichero.tar.ez Extrae los fichero empaquetados con tary comprimidos con gzip. Ejemplos de uso de tar, grip y bzip2. Aqul vamos a tratar con ejemplos los distintos mados o las mas usados que son utilizados para comprimir archivos o directorios. Los compresores tienen distintos niveles de compresién siendo proporcional el nivel de compresién con el tiempo que se tarda en descomprimir el fichero, es decir a més compresién, mas tiempo para descomprimilo, tar -cvf copia_de_seguridad.tar /home/usuario/documentos/*.* = compress (empaquetar) v= verbose (muestra las acciones del compresor) { =file (empaquetar en un fichero) Este ejemplo lo que haria seria concentrar o juntar todos los archivos existentes en home/usuario/documentos/ y meterlos en un solo archivo, copia_de_seguridad.tar 18 BASH - Tutorial 2 Trabajando con ficheros tar -evfz copia de_seguridad.tar.gz /home/usuario/decumentos/*.* Este ejemplo lo que harla seria concentrar o juntar todos los archivos existentes en /home/usuario/documentos/ y meterlos en un solo archivo, copia_de seguridad.tar y a continuacién lo ccomprime con el compresor Gzip (.82) tar -tevf archivo.tar.gx Mostraria el contenido del ficherocomprimido. grip nombre_del_archivo Comprime un archivo, déndole la extensin gz. Para conseguir una compresién més potente que la obtenido con Gzip. Se emplea el compresor Bvip2. Este compresor es algo més potente que Gzip y se usa bastante junto con Tar. tar evfj copia.tbz2 archivo_a_comprimir Empaqueta el “archivo_a_comprimir" y le aplica el compresor Brip2 tar je directorio/ >directorio.tar.bz2__Empaqueta y comprime con tar y bzip2 Para desempaquetar un archivo tar, y para poder descomprimirlo, se utiliza el comando tar y gzip con las siguientes opciones. tar -xvf archivo.tar Desempaqueta el archivo.tar. x extract (desempaquetar), szip-de archivo.tar.gz | tar-xvf-Descomprime un fichero comprimido con gzip. tar -xv2t archivo.tar.gz Descomprime el archivo.tar-gz Sila compresién se ha realizado con Bzip2, las opciones que utilizan con tar son las siguientes: tar xvfj archivo.tbz2 Descomprime el archivo archivo.tb72 tar tvfj archivo.tbz2 Muestra el contenido del archivo comprimido. 19

También podría gustarte