Tema 3 LINUX es un sistema multiusuario.
$shutdown -h now (Apagar equipo. clear (Borrar pantalla man (Manual. Ej: $man date. Barra espaciador para pasar pagina y Q para quitar. CARACTERES DE CONTROL: Crtl+C (Abortar ejecución programa. Ctrl+S (Detiene visualización en pantalla. Ctrl+Q (Reanuda visualización en pantalla. Ctrl+D (Final de datos por teclado. FORMATO FORMATO GENERAL DE LOS COMANDOS: Comando [opciones] [expresión] [fichero (s) ] ESTRUCTURA JERÁRQUICA / (Raíz del sistema de ficheros. /home (Directorio para los archivos de los usuarios /bin (Directorio que contiene algunas órdenes ejecutables. /usr/bin (Resto de órdenes ejecutables. /usr/spool/mail (Donde se almacena la correspondencia. /lib (Bibliotecas esenciales, etc... /dev (Contiene ficheros especiales asociados a los diferentes dispositivos del sistema(impresoras). /etc (Configuración del sistema local-máquina. /tmp (Se utiliza para crear ficheros temporales. /usr (Directorio donde se suelen encontrar los directorios de los usuarios del sistema. /root (Directorio hogar del usuario root. /mnt (Punto de montaje de particiones temporales.
LISTADO LISTADO DEL CONTENIDO DE UN DIRECTORIO DIR ECTORIO (comando ls) ls (Petición al sistema para mostrar el contenido de un directorio. Sin (Sin opción muestra los nombres de los archivos y directorios. -l ((long) en fila. -a (all) (Lista todas las entradas, incluso los ficheros que comiencen por punto. -R (Visualiza la estructura de subdirectorios de un directorio concreto. -L (Lista recursivamente un conjunto de directorios a partir del directorio donde nos encontramos. -F (Para saber que ficheros son ordinarios o directorios. -lt (Ordenación por fechas (los más recientes). -ltr (Ordenación por fechas (los más antiguos. -i (Antepone a cada nombre de fichero su nº de i-nodo
1
1º campo. Especifica los modos de los archivos.(drw-r--r--) El primer carácter indica el tipo de archivo que puede ser:
d (Si hace referencia a un directorio. - (Si hace referencia a un fichero ordinario. l (Si hace referencia a un enlace. b (Fichero especial tipo bloque. Describe un dispositivo que maneja datos en bloques. c (Ficheros de caracteres. 2º Campos especifica el número de enlaces . Para ficheros, indica el número de enlaces o referencias a ese fichero que hay en el sistema.
3ºCampo especifica el nombre propietario. Indica el nombre del propietario del fichero.
4ºCampo especifica tamaño del fichero. Hace referencia al grupo al que pertenece el usuario.
5ºCampo especifica tamaño del fichero. Muestra el tamaño del fichero en bytes.
6º-7º-8º Campo especifica especifica fechas. Fecha y hora de última modificación á hacer referencia a la hora en que el fichero fue modificado por última vez.
9ºCampo especifica nombre Nombre de los archivos o directorios.
CAMBIO DE DIRECTORIO (cd) $cd/ (Se sitúa en el directorio raíz. $cd .. (Se sitúa en el directorio superior. $cd/etc (Se sitúa en el directorio /etc. DIRECTORIO ACTIVO (comando pwd) Para saber en qué directorio estamos en un momento determinado se utiliza la orden pwd. Comando set: Para ver las variables que están definidas en nuestro shell. Comando env: Nos muestra sólo las que pertenecen al entorno. Orden echo: Con él podemos mostrar mensajes, escribir el ficheros, cambiar parámetros del kernel...
UTILIZACIÓN DEL ; Y LOS () Podemos introducir varias ordenes en una misma linea utilizando como separación los “punto y coma”. Se ejecuta de izquierda a derecha. 2
Tema 4 CAMINO O PATH: Secuencia de directorios que se ha de recorrer para acceder a un determinado fichero separado por /.
CAMINO ABSOLUTO: Muestra toda la ruta de un fichero: /home/ejercicios/eje.txt CAMINO RELATIVO: RELATIVO: El nombre hace referencia a fichero o subdirectorios situados dentro del directorio en el que nos encontramos:
$pwd /home/ejercicios $ls -l eje3
COMANDOS CAT Y FILE file (Para saber que tipo de archivo es. $file /etc/d.profile /etc/d.profile: ascii text cat (Visualizar el contenido de un fichero. Tiene que ser un fichero de texto. $cat /etc/d.profile touch fich1 (Crear archivos vacíos. CARACTERES COMODIN * (Representa cualquier cadena de caracteres arbitraria, incluyendo la cadena vacía. ? (Representa a cualquier carácter simple. [] (Pueden contener un grupo o rango de caracteres, y corresponden a un carácter simple. Todas estas operaciones pueden ser combinadas entre e ntre si.
COMANDO MORE La orden more lista un fichero. $more /usr/pub/ascii -n (Lista el fichero las n primeras líneas y no con el número de líneas que posee la pantalla. +n (Lista el fichero a partir de la línea n.
CREAR Y ELIMINAR DIRECTORIOS mkdir (Crear directorios. make directory Crear un directorios: $mkdir ejercicios ejercicios Crear varios directorios: $mkdir E1 E2 E3 !
Crear varios directorios en arbol: Opción -p si alguno de los directorios no existe lo crea. mkdir -p dir1/dir2/dir3/dir4 ! ! ! ! 3
rmdir (Borra directorios vacíos. remove directory $rmdir E3 COPIAR, MOVIER, RENOMBRAR Y BORRAR ARCHIVOS Y DIRECTORIOS cp (Copiar. Sintaxis:cp origen destino. $cp ./clientes/fich .. -r (Para copiar directorios. $cp -r $HOME/ejercicios $HOME/ejercicios $HOME/temas mv (Mover. Sintaxis:mv origen destino. $mv $HOME/ejer $HOME/temas mv (Renombrar. $mv fich1 fich2 rm (Borrar. Sintaxis rm archivo. $rm fich1 rm -r (Borrar directorios no vacios de forma recursiva. $rm -r ejercicios ARCHIVOS DE ENLACE (COMANDO ln) Los enlaces te permiten dar a un único fichero múltiples nombres. Los ficheros son identificados por el sistema por un nº de inodo, el cual es el único identificador del fichero para el sistema de ficheros (con la orden ls -i mostrará los nº de inodo). Un directorio es una lista de números de inodo con sus correspondientes nombres de fichero. Si tenemos un fichero llamado artículo y lo copiamos a otro directorio. Cuando modificamos uno de los dos fichero el contenido del otro fichero no se modifica. Entonces si creamos enlaces si se modifica.
ENLACES DUROS: ln Enlaza el fichero con un inodo. Solo se pueden crear enlacer duros entre ficheros del mismo sistema de ficheros.
$ln fich1 fich11 $ln fich 2 ./fich22
ENLACES SIMBOLICOS: ln -s Permite dar a un fichero el nombre de otro, pero no enlaza el fichero con un inodo. No podemos hacer enlaces simbólicos entre ficheros del mismo sistema.
$ln -s fich3 fich33
4
PERMISOS DE ACCESO A ARCHIVOS (comando chmod)
Permisos simples: Los permisos se aplican a los archivos y a los directorios.
r:lectura Archivo. Poder acceder a los contenidos de un fichero. Directorio. Poder leer un directorio, ver qué ficheros contiene
w:escritura
Archivo. Ppoder modificar o añadir contenido al fichero Directorio. Poder borrar o mover ficheros en un directorio
x:ejecución
Archivo. Poder ejecutar un programa binario o guión del shell Directorio.Poder entrar en un directirio
Cada fichero tiene tres niveles de acceso:
El acceso por parte del propietario El acceso por parte de su grupo (en este caso sería, por ejemplo, el grupo de prácticas del grupo 6L) El acceso público (para cualquier usuario del sistema).
rwx rwx (pro (propi piet etar ario io)) rwx rwx (gr (grup upo) o) rwx rwx (púb (públi lico co))
Si tenemos rwx El usuario tiene todos los permisos r-x r-El grupo solo puede leer y ejecutar
El público solo puede leer
El comando chmod El comando chmod se usa para establecer los permisos de un fichero. Solo el propietario puede cambiar los permisos del fichero. Existen dos sintaxis del comado chmod: • La sintaxis con argumentos simbólicos: chmod {a,u,g,o}{+,-}{r,w {a,u,g,o}{ +,-}{r,w,x} ,x} filename Opciones: 5
a (a todo todos) s) u (al (al usua usuari rio) o) g (al (al grup grupo) o) o (al (al rest resto o de usua usuario rios) s) (+) a ñ a d i r (-) quitar permisos permisos r lec lectu tura ra w esc escri ritu turra x eje ejecu cuci ción ón Ejemplos:
Chmod a Da a todos los usuarios acceso al fichero +r fich1 C h m o d Equivalente al ejemplo anterior, ya que si no se indican las +r fich1 opciones a, u, g o o por defecto se toma a C h m o d Quita permisos de ejecución a todos los usuarios excepto al o g - x propietario fich1 C h m o d Permite al propietario leer, escritura y ejecutar el fichero u+rwx fich1 C h m o d Quita permisos de lectura, escritura y ejecución a todos los o - r w x usuarios menos al propietario y a los usuarios del grupo del fich1 fichero
Permisos en binario y octal: 421 000=0 001=1 010=2 011=3 100=4 101=5 110=6 111=7 111=7
permisos
binario octal rw x r- x 1 1 1 1 0 1 7 5 4 r-100
ej: rw- rw- r-110 110 100 6 6 4
$chmod 664 fich2
Permisos especiales • Sticky-bit ( bit t sobre other other )(1000) Sobre un directorio indica que un archivo sólo puede ser borrado por:El propietario del archivo , el propietario del directorio y el root Si aparece: 6
– t el bit sticky está a uno y el bit de ejecución de otros está también a 1 – T el bit sticky está a uno y el bit de ejecución de otros no está a 1.
• Bit SGID ( bit s sobre group ) (2000) Activado sobre un archivo, da los derechos del grupo a quien lo ejecuta, y solo durante la ejecución. Si aparece: – s el bit de setgid está a uno y el bit de ejecución del grupo está a 1. – S el bit de setgid está a uno pero el bit de ejecución del grupo no está a uno.
• Bit SUID ( bit s sobre owner ) (4000)
Activado en un archivo ordinario, asigna derechos de propietario a quien lo ejecuta, y solo durante el tiempo de ejecución. Ejemplos
$chmod 1741 fich1 $ c h m o d rwx r-- --t fich2 rwx rws r--
2 7 7 4 $ chmod 4744 fich3 rws r-- r--
$ chmod fich1 rwx r-- r-T
2 7 4 4 $ chmod 4444 fich3 r-S r-- r--
1744 $ chmod fich2 rwx r-S r--
Para poner todos los permisos
chmod 7777 file rws rws rwt
REDIRECCIÓN DE E/S "|" ">" "<" ">>" • Pipes "|" Realiza dos redirecciones mediante un solo símbolo; redirige la salida estándar de un comando a la entrada estandar de otro.
$ ls –l | cut -c1-10
•Signo ">" Guardar la información en un archivo Ejemplos
$ ls –l > bandeja $ sort > verdura finalizar con Ctrl+d
Lo tecleado lo mete en el fichero verdura ordenado
•Signo "<" Obtiene la información en un archivo 7
Ejemplos
$ sort < fresa fresa Ordena Ordena el archiv archivo o fresa y lo saca saca en panta pantalla. lla. $ s o r t f r e s a > Ordena el archivo fresa y lo mete en fresaord fresaord $ cat fich1 fich2 > Guarda en fich3 el contenido de fich1 y fich2 fich3 $ cat fich fich1 1 > fich3 fich3 Guard Guarda a la inf inf en fich fich3 3
•Signo ">>" Introduce el contenido al final del fichero Ejemplos
$ cat fich2 >> fich3 $ cat fich 1 fich2 >> fich3
EXPRESIONES REGULARES Una expresión regular es una serie de caracteres. Muchos de los caracteres, incluyendo las letras del alfabeto, simplemente se representan a si mismo. Algunos caracteres especiales tienen un sentido más amplio. Los siguientes caracteres especiales son reconocidos por todos los comandos.
C (Cualquier carácter que no sea un carácter especial coincide consigo mismo. carácter. . (Equivale a cualquier carácter.
* (Equivale a ninguna o más apariciones de la expresión regular de un carácter simple que preceda a *. god good goooood cualquie r tipo de caracter. .* (Juntos indican cualquier cadena de cualquier
\ (Elimina significado especial del carácter siguiente. [lista] (Equivale a cualquier carácter de lista. Puede ir con un guión para indicar un rango. [^lista] (Equivale a cualquier carácter que no pertenezca a una lista. ^ (Cuando este es primer carácter de una expresión regular, el resto de la expresión deberá coincidir con el principio de una línea.
$ (Cuando este es el último carácter de una expresión regular, el resto de la expresión deberá coincidir con el final de una línea.
^$ (Juntos para indicar que ocupa la línea completa. NOTA: Cuando utilizamos expresiones regulares hay que poner entre comillas la expresión ya que: 8
´ Elimina el significado especial de todo lo que contiene.(todos los ´ caracteres especiales que estan en su interior los toma como caracteres de las expresiones regulares) “” lo mismo mismo que ´´ pero no elimina elimina el el significad significado o especial especial de ´´,? y $
HERRAMIENTAS PARA PARA TRABAJAR CON LOS ARCHIVOS DE TEXTO
grep (busca en uno o más archivos las líneas que contengan un objeto y después imprime todas las que encuentra.
$grep soltero clientes NOTA: Si el objeto es una frase hay que encerrarlo entre comillas “la casa era grande” Para buscar un archivo que no lo reconocemos por su nombre pero si sabemos una línea que lo identifica del resto de los archivos: $grep carta*
. (Se corresponde con cualquier carácter (*) cualquier número de repeticiones; juntos indican cualquier cadena de cualquier tipo de caracteres.
(^)($) (Para anclar palabras al principio y final de la línea (si van juntos para indicar que ocupa la línea completa), y los ([ ]), que se utilizan para indicar una clase de caracteres. ( \ \ ) elimina significado especial del carácter siguiente. -v (Muestra las líneas que no coinciden con el patrón especificado $grep -v ‘[0-9]’ telnos
Lista todas las líneas del archivo telnos que no
contienen números.
-i (No distinción entre mayúsculas y minúsculas. $grep Soltero cliente
$grep -i soltero cliente
-l (Listado de sólo los nombres de archivos. $grep -l Sue* Lista todos los archivos del directorio actual que contienen el nombre “Sue”
OPERACIONES CON COLUMNAS Y CAMPOS (cut, paste) Comando cut: Permite seleccionar columnas o campos particulares de archivos. Utilización de cut con campos y con columnas. Opción -f
$cut -f1 clientes
cortando el primer campo de cada línea o registro
9
Utilización de cut con caracteres. Opción -c
$ls -l | cut -c40-48,66-
(Posiciones 40-48 y del 66 hasta el final.
Delimitadores: -d (delimitados) (: # % ^tab ` ´) El delimitador es el carácter que se ha aplicado entre campo y campo del archivo.
$ cut –d: -f1,3 clientes $ cut –d` ´ -f2- file
HERRAMIENTAS PARA LA ORDENACIÓN (sort) sort (Ordenación de contenido de un archivo. También para combinar el contenido de varios archivos en un único archivo ordenado.
> $ sort sort names names > nam name.o e.ord rd > $ sort sort names1 names1 name names2 s2 names names3 3 > names names.ord .ord
-o (Sustitución de un archivo por una versión ordenada.
$sort -o telnos telnos
-f (Ignora la distinción entre mayúsculas y minúsculas.
$sort -f local
-n (Ordenación numérica. $sort -n frecuencia frecuencia -r (ordenación numérica inversa.
$sort -r n frecuencia frecuencia
+nº (Ordenación saltando uno o más campos. $sort +1 frecuencia frecuencia -t (Separador de campo: y saltarse 3 campos. $sort -t: +3 telnos -u (Ordenar varios archivos eliminando los repetido. $sort -u names.*> names.sort COMPARACIÓN COMPARACIÓN DE ARCHIVOS (cmp, diff) cmp (Dice si dos archivos difieren o no, y en caso afirmativo, informa del lugar dentro del archivo donde ocurre la primera diferencia. $cmp carta carta1 diff (Comparar dos archivos línea a línea e imprime las diferencias. Además, para cada bloque de texto diferente en los dos archivos, diff dice cómo ha de cambiarse el texto del primer archivo para que coincida con el texto del segundo. $diff carta carta.1
10
Resultado de la diferencia entre los archivos carta y carta.1
3c3 < Please review the attached memo. --> Please review the enclosed document. 4a5 > Let me know what you think < Línea que sólo se encuentra en el primer archivo > Línea que sólo se encuentra en el segundo archivo --- Separan las partes de la salida de diff que hacen referencia a las secciones diferentes de los archivos 3c3 Existe un cambio (c) entre la línea 3 del primer archivo y la línea 3 del segundo archivo. 4ª5 La letra a (append) indica que la línea 5 del segundo archivo se añade a continuación de la línea 4 del primero. D d (delete) indicaría líneas que se encuentran en un archivo pero no en el otro.
MODIFICACIÓN DE ARCHIVOS (sed) sed (Es otro filtro de Linux que permite hacer modificaciones a los ficheros, aplicando distintos comandos dados en los argumentos. La orden.
$sed”s/cadena1/cadena2/”fich Leerá el fichero fich línea a línea, de manera que si una línea se encuentra el patrón cadena1, se realiza la sustitución de la primera ocurrencia de cadena1 encontrada por cadena2 y se escribe la línea en la salida estándar del comando; aquellas líneas donde no aparece ningún patrón coincidente, se escribe sin modificar. La orden sed también permite eliminar todas las apariciones de una cadena dentro de un fichero.
$sed “s/Juan//”fich Borra la primera ocurrencia de la cadena Juan en cada línea de fich para suprimir todas las líneas de fich que contengan conte ngan la cadena Juan utilizaremos:
$sed “s/Juan/d” fich En todos los casos, la cadena de coincidencias puede ser cualquier expresión regular:
$sed “s/Juan [A-Z][A-Za-z]*/Pepe/” fich La búsqueda y sustitución de texto en parte del fichero se realiza mediante el comando siguiente:
$sed “a,b s/cadena1/cadena2/” fich 11
Siendo a y b el número de las líneas entre las cuales se aplica el comando de sustitución. Añadiendo la opción g al final de la expresión de sustitución se realizarán búsquedas y sustituciones globales
$sed “a,b s/cadena1/cadena2/g” s/cadena1/cadena2/g” fich
HERRAMIENTAS PARA PARA BUSCAR UN ARCHIVO (find) find (Se puede utilizar para buscar el directorio donde se encuentra un archivo. Sintaxis: find [opciones] acción
$find /-name proyecto -print
-print (Visualizar el camino. -name (Nombre del fichero -user (Búsqueda por nombre de usuario -grup (Nombre del grupo -size m (m=bloque_tamaño. Visualiza ficheros de tamaño bloques_tamaño -perm +p -p (p=nº octal. +p :selecciona todos los ficheros que tengan ese tipo de permisos)(-p :todos los que no tengan ese permiso)
-type c (Donde c (d-directorios, l-simbolico, c-caracter, b-bloque, f-regular. -atimen (n-dias (accedidos)
HERRAMIENTAS PARA PARA COMPRIMIR UN ARCHIVO tar (Permite empaquetar, comprimir y copiar archivos respetando su jerarquía. Sintaxis: tar [opciones] nombre_archivo nombre_archivo
f Usar ‘archivo’ como archivo tar ( por defecto /dev/rmt0 es el archivo
tar ) c Crea un nuevo archivo tar t Listar el contenido de un archivo tar r Añade archivo al final de un archivo tar
u Añade archivos, archivos, pero solo solo si son más más recientes que los que tiene la copia. x Extrae archivos de un archivo tar. 12
z Crear un nuevo archivo tgz
l Indica Indica a tar tar que que opere opere solo solo con con los S.A. S.A. loca locales les.. C Indica el directorio en el caso de desempaquetado. desempaquetado. [-C dir]
v Escribir Escribir informa información ción sobre sobre lo que está hacie haciendo ndo w Indica a tar que pida confirmación confirmación de sus acciones acciones A Añade archivos archivos tar a otro archivo archivo tar. tar. d Genera una una lista con las las diferencias entre entre los datos de de la copia tar y el estado actual del sistema.
Ejemplos archivos tar (empaquetar archivos) cf
Crear
$tar cf textos.tar arch1 arch2 arch3
cvf Crear Crear y mostr mostrar ar $tar $tar cvf cvf texto textos.t s.tar ar arch arch3 3 arch4 arch4 arch8 arch8 tvf Ver contenido
$tar tvf textos.tar
xvf Extraer
$tar xf textos.tar
rf Añadir $tar rf textos.tar arch9 Ej emp lo s ar ch iv os tg z (em pa que ta r + co mp ri mi r y ext ra er) cvzf E m p a q u e t a r $tar cvzf text.tgz text1 text2 +Comprimir xvzf
extraer
$ tar xzf textos.tgz
tzf
Ver contenido
$tar tzf text.tgz
-C dir P o n e r e n o t r o $tar xzf text.tgz -C ./documentos directorio
gzip (Comprimir y descomprimir archivos. Genera un archivo .gz con los atributos del archivo original, excepto su longitud y nodo y desaparece el archivo original.
Si ntaxis: gz ip [opciones ] -d descomprime archivos. Equivale a gunzip. -9 intenta mejor compresión. -R gzip actúa actúa de forma forma repetitiv repetitiva a en los directori directorios. os.
[nombr e]
-l mu muest estra ra inform informac ación ión de un un arch archivo ivo zip. zip. -c manda manda el archiv archivo o compri comprimido mido a la stdout. stdout.
ORDENAR PARA CAMBIAR DE GRUPO GR UPO O DE PROPIETARIO A UN UN ARCHIVO chown (Permite ceder la propiedad de un archivo. Sintaxis: chown ID_nuevo_propietario ID_nuevo_propietario archivo 13
$chown user2 arch1
chgrp (Permite cambiar el grupo al que pertenece un archivo. Sintaxis: chgrp GID_nuevo_grupo archivo $chgrp user arch1
14