Red Hat, Caldera, Debian, Slackware, Correctiva, Ubuntu, Ututo, Suse, etc.
Arquitectura Básica de un SO:
- Aplicaciones
- Shell o Caparazón
- Kernell o núcleo
- Hardware
Trabajaremos en modo consola aunque existen entornos gráficos.
Se puede trabajar con 6 consolas virtuales, estas se intercambian con Ctrl+Alt+F1 para pasar a texto y Ctrl+Alt+F9 para pasar a modo grafico.
Existen varios tipos de Shell, variando a veces los prompts:
_ash: Ashell _csh:
Cshell % _tcsh:
Extension de Cshell _ksh:
Kornshell $ _bsh: Bourne Shell $ _bash:
Bourne Again Shell $ //mas usada
Los comandos se tipean en bash de esta manera:
$ ________ ________ __________
el signo $ es el prompt, el primer campo es para el nombre de comando, el segundo para el argumento y el tercero que puede ser ninguno o muchos es para pasarle opciones. Esto no es así siempre pero es la estructura habitual.
El prompt # es exclusivo del administrador del sistema.
Sistema de Archivos
Root(padre o admin, Raiz nomas)
/usr → Software para ejecutar aplicaciones de usuario.
/lib → Librerías de lenguajes de programación.
/bin → Comandos del SO.
/dev → Device, dispositivos periféricos, drivers.
/etc → Configuración de arranque del sistema.
/tmp → Archivos Temporales.
/home → Contiene a los usuario o sus subdirectorios.
/alumno214
/invitado
/mnt → montaje(mount) archivos de montaje.
/proc → Proceso – archivos de proceso activos
/boot → Archivos de arranque
i-nodo: numero de identificación del archivo(todos los directorios son archivos para Linux)
Todos los directorios y archivos tienen un dueño(quien lo crea) y tienen 3 tipos de permiso.
Permisos de Archivo:
Terna rwx, donde: r = permiso de lectura (read)
w = permiso de escritura (write)
x = permiso de ejecución (execution)
Esta terna de permisos debe ser aplicada a cada usuario o grupo de usuarios: rwx rwx rwx
Dueño user, Grupo, Otros Las combinaciones de estos tres valores entre prendidos y apagados son 7, donde 7 es el de mayor valor o sea que tiene permisos de escritura, lectura y ejecución, esta terna se modifica con el comando chmod seguido de la secuencia de numero que representan cada estado de la terna y luego el nombre del archivo, por eje: chmod 777 archivo o chmod 000 archivo.
Eje: 704 111 000 100
rwx --- r--
Los archivos están ordenados en una tabla de archivos donde se guarda su inodo, sus permisos, nombre, dueño, fecha de creación, etc, etc.
Tipos de rutas para moverse en el file system
La ruta absoluta comienza con / el cual ubica la raíz y desde allí se debe especificar la dirección. La ruta relativa es relativa a la carpeta actual: por ejemplo dada esta estructura(ruta absoluta):
/home/joaquin/jojojo, y nos ubicamos en home.
Para acceder a jojojo seria:
../home/joaquin/../joaquin/jojojo
o simplemente joaquin/jojojo.
Comandos:
orden o acción(verbo infinitivo) copiar, pegar, zipear, mover, enlazar, crear, borrar, etc.
Ejecución de un comando:
$(prompt) [comando] [opciones] [argumentos]
Comando ls (list -listado, lista de archivos y directorios)
ls -l / (listar los archivos y directorios de raíz (/))
drwxrwxrwx 15 root grupo tamaño date nombre
el primer carácter les da el tipo: d(directory) -(archivo) b(archivo de bloque) l(linkeado enlazado) p(tubería pipe) f(buffer).
El segundo campo es de los permisos Dueño Grupo Otros.
Tercer campo contador de enlaces.
Cuarto campo dueño.
Quinto campo tamaño.
Sexto fecha de creación.
Séptimo nombre de archivo.
(Esto varia en la consola donde los campos están divididos por espacios en blanco)
$ ls -l (Listado extendido, todos los atributos menos el i-nodo)
$ ls -i (Listado de archivos con nombre y numero de i-nodo)
$ls -li (combinación de ambos)
$ls (solo nombres de archivo)
Archivo:Conjunto de registros que pertenecen a la misma aplicación,
Registro: Conjunto de campos el campo es indivisible.
Los archivos en Linux se identifican con numero de i-nodo, es único y es el medio por el que el SO lo accede, el nombre es simbólico y sirve para resolver la interacción con el usuario a quien le resulta mas fácil trabajar con una estructura de directorios y archivos con nombre que con miles de números de i-nodo.
Cada archivo tiene una tabla con las características del archivo, es accedido por el numero de i-nodo.
Operación con archivos:
Crear archivos de datos: Se realiza con el comando cat que es una llamada a ingreso por teclado mas le operador de asignación > que es quien crea el archivo.
Ejemplo: $cat > nombredearchivo
Esto da una apertura para el ingreso por teclado que se guardara en nombedearchivo.
Pero el que crea el archivo es mas bien > por ejemplo esta orden:
$ls -l /bin > nombre
Guarda lo devuelto por ls -l /bin en nombre.
Crear directorios:
Se realiza con el comando mkdir(make directory)
$mkdir pruebas crea el directorio pruebas en el directorio actual.
$mkdir /borrar crea el directorio borrar en la raíz del SO.
Borrar archivos:
Se borran con el comando rm seguido por el/los nombres de archivo.
Ejemplo: $rm jojojo
Borrar Directorios:
Se borran con el comando rmdir seguido por el/los nombre de comando.
Ejemplo:
$rmdir /borrar Borramos el directorio creado en el ejemplo de creación de directorios.
Concatenar archivos:
Se hace un cat concatenando dos archivos hacia uno nuevo.
Los operadores de asignación > borran el contenido anterior del archivo mientras que el >> agrega.
$cat [archivo1] [archivo2] > [nuevoarchivooviejo]
Copiar archivos:
El comando es cp(copy) archivo de origen y archivo de destino.
Se crean dos archivos físicos con distinto i-nodo.
$cp jojojo jajaja
Mover o renombrar archivos:
El comando es mv [archivodeorigen] [archivodestino]
Lo hace es cambiar el nombre del archivodeorigen por otro pero sigue manteniendo el nuero de i-nodo y archivo físico, en la tabla de archivos solamente modifica ubicación y nombre.
$mv jojojo jijiji
Redireccionar:
Es el caso de > y >>, todos los comandos salen por pantalla salvo que se le indique una asignación con > o >>, por ejemplo $ls -l bin > comandosdelsistema
Enlazar Linkear:
Enlazar o linkear un archivo es una manera de compartirlo con varios usuarios y directorios, los enlaces son “punteros”.
Los comandos que se usan son:
$ln -d enlace duro
$ln -s enlace simbólico
$ln -f hacia archivo existente//no estoy seguro
$ln [opcion] [archivoorigen] [archivodestino]
Tipos de enlaces:
Duro o Hard Link:
- Se usa para trabajar en el mismo File System y el mismo volumen de disco.
- Existe un solo archivo físico, un único numero de i-nodo.
- Este enlace permite que el archivo enlazado figure en varios directorios y con distintos nombres y el mismo i-nodo.
- El contador de enlaces se incrementa en 1 cada vez que el archivo se enlaza.
- Si uno de los enlaces es modificado, todos son modificados por que es un único archivo físico.
- El archivo físico no se borrara hasta que el contador de enlaces sea igual a 1.
Simbólico o Simbolic Link(Accesos Directos):
- Se usa para trabajar en distintos File Systems y en distintos volúmenes de disco, remotos inclusive.
- Los enlaces tienen distintos i-nodos y nombre.
- Existen varios archivos físicos pero solo contienen la ruta física al principal.
- El archivo enlazado puede borrarse aunque el contador de enlaces sea distinto de 1 y los enlaces quedan apuntando a una dirección inexistente.
Respaldar Archivos:
Respaldar o generar una copia de seguridad, backup.
El comando que se utiliza es tar(tape archive, viene de las cintas “tape” que se usaban antes).
$tar [opcion1] [opcion2] [opcion3] [archi.tar] [archivo1] ... [archivon]
La primera opcion indica que se desea hacer [c] crea los archivos, [x] extrae archivos guardados en un .tar, [t] muestra los archivos incluidos en un .tar.
La segunda opcion es [v] imprime por pantalla los archivos respaldados.
La tercera opcion [f] indica que el primer argumento será el nombre del archivo respaldado. Ejemplos:
$ls -l /bin > comandos
$ls -l /dev > drivers
$ls -l /proc > procesos
$ls-l $tar cvf backup.tar comandos drivers procesos //Allí se crea un respaldo backup.tar de los archivos.
$ls -l
$tar tvf backup.tar //Se ven los archivos respaldados
$tar xvf backup.tar //Se extraen los archivos respaldados
Compresión de Archivos:
Comprimir un archivo es codificar de manera que el archivo ocupe menos espacio en el disco y tambien para que sea mas fácil de transmitir por la red, juntando varios archivos en 1.
Hay dos comandos compress y gzip.
Gzip destruye los archivos comprimidos.
Con compress: $compress -3 [archivo]
Cuando se comprime un archivo de establece un grado de compresion que va desde -1 hasta -9 siendo -9 el mas comprimido y mas lento(no me acuerdo si es así) por defecto sin opcion bash asume que es -6.
$uncompress [archivo.z]
Descomprime un archivo comprimido con compress.
Descomprime .z. Con gzip: $gzip -1 [archivo]
Se comprime un archivo y se elimina el original.
$gunzip [archivo.gz] Descomprime un archivo.gz comprimido con gzip, eliminando el archivo .gz.
Ambas compresiones se pueden ver con $zcat [nombrearchivo]
División de Archivos:
Se trata de dividir un archivo en n cantidad de partes que son iguales menos el ultimo archivo que contiene el resto de la división, juaz.
$split [-lineas] [archivoadividir] [nombredearchivos]
Si no se selecciona un nombre de archivo de salida se va desde aa hasta zz, de lo contrario seria desde nombrearchivosaa hasta nombrearchivoszz.
Se concatenan con cat, el mismo de concatenación obv. $cat [nombrearchivos*] > [archivoconcatenado]
Comparacion de archivos:
La comparacion sirve para mostrar las lineas o registros diferentes, si no hay salida es por que los archivos son iguales, los comandos son diff y cmp, si hay diferencia muestra la línea y el archivo donde la encontró.
$diff archivo1 archivo2 (compara archivos de texto)
$cmp archivo1 archivo2 (compara cualquier tipo de archivo y es mas lento) la opcion -b ignora los espacios en blanco y los márgenes en la comparacion diff
Filtrado de archivos:
grep sirve para buscar cadenas de caracteres en un archivo, se usa poniendo el patrón primero y el archivo después:
$grep hola jojojo //busca la palabra hola en el archivo jojojo
Las salida muestra todas las lineas donde se encontró la cadena, además se pueden especificar las siguientes opciones de comando:
-n además de las lineas muestra el numero de línea.
-v invierte la búsqueda, es decir muestra todas las lineas donde no se encuentra el patrón.
-y no discrimina mayúsculas y minúsculas, quita el case sensitive.
El operador * en la cadena sirve para prolongar la aparición de un carácter en vez de poner aaa se pone a*, el operador .* es para encontrar cualquier cadena que contenga a la primera.
Búsqueda de archivos:
Sirve para buscar archivos adentro de los directorios o del File System en conjunto: la sintaxis es $find pathname -opciones argumentos
Se pueden especificar varios directorios ejemplo:
$find /bin /dev /proc -name 'ls'
Se busca en los tres directorios archivos que se llamen ls, esta orden devuelve un listado con las rutas absolutas de los archivos encontrados.
Se puede usar el operador * para buscar todos los archivos que contengan ls.
Ademas se pueden especificar varias opciones al mismo tiempo -name '*ls*' -name '*.z', esto buscaria archivos que contengan 'ls' y terminen en '.z'
Otra opcion además del nombre es buscar por fechas en donde se indica la cantidad de días desde la creación o modificación del archivo -atime 5, se piden los archivos modificados o creados en los últimos 5 días.
Otras opciones:
-type (f, d, b, c, l, p) busca distintos tipos de archivos por ejemplo $find /bin -type d busca directorios adentro de /bin. -inum 236523, busca todos los archivos con i-nod igual a 236523 o sea el original y todos los que lo enlazan.
-newer busca archivos modificados después de la fecha de modificación de otro:
$find /bin -newer /home/joaquin/jojojo.tar, lista todos los archivos modificados después de la creación de jojojo.tar.
-level sirve para especificar hasta donde va la búsqueda, nivel en la jerarquía, por ejemplo -level o busca solamente en el directorio indicado pero -level 1 busca en los siguientes subdirectorios.
-size +3000 -size -2000 archivos que tengan mas de 3000 y menos de 2000 bloques.
-mtime +10 busca archivos modificados hace mas de 10 días.
Ordenar Archivos:
Sirve para ordenar los registros de un archivo y no destruye el archivo original, de esta manera podemos tener una salida por pantalla redireccionable a otro archivo.
El comando es sort, las opciones son:
-r ordena los registros en forma descendente.
-n ordena numéricamente
-u ordena y elimina registros idénticos
-nr orden numérico descendente(combinación)
La forma es:
$sort -k2n archivo > archivoordenado
En ese caso se ordena numéricamente el campo numero 2(la división de campos es por espacios) y se envía la salida al archivoordenado.
$sort -k9nru archivo > archivoordenado
Lo mismo pero en el orden contrario.
Un ejemplo con tuberías: $ls -l /dev sort -k9r > devordenado Lista /dev lo ordena y lo guarda.
Contar Registros, Palabra o Caracteres:
El comando es wc, sintaxis
$wc [-opcion] [archivo] -l lineas del archivo
-w palabras(cadenas separadas por espacios en blanco) -c caracteres.
$who wc -l Esto cuenta los usuario conectados al sistema, ya que who devuelve en lineas los usuarios y wc -l cuenta la cantidad de lineas.
Mostrar Contenido de Archivos:
Son varios comandos: cat = muestra el contenido del archivo.
more = muestra el archivo en forma paginada con la opcion more -15 se especifica la cantidad de lineas por pagina less = muestra el archivo igual que more. more y less muestran el archivo pero less lo hace de una manera mas practica, en ambos las opciones para ver son:
barra espaciadora: avanza pagina
tecla q: cierra el programa more y less.
Tecla s o Enter: avanza una línea, less lo hace con las flechas.
/patrón: búsqueda de una palabra en el archivo.
Tecla b: retrocede una pagina.
-?patrón: búsqueda hacia atrás solamente en less.
Tecla f: avanza una pagina entera en more. head muestra las lineas altas de un archivo, la cantidad de lineas se especifican con -numero igual que en more.
tail hace lo mismo que head pero con las lineas de cola o inferiores.
Tuberías Pipe :
El operador sirve para concatenar varias ordenes o comandos como por ejemplo:
$who wc -l o tambien $ls -l /dev sort -k9r > devordenado
En esos casos las salidas de comandos como who o ls son conectadas con las entradas que deberían recibir los comandos wc y sort respectivamente, Linux permite todas las redirecciones que se deseen. Ademas con el operador tee se puede hacer una bifurcación enviando el resultado por ejemplo hacia un archivo y hacia la consola.
No hay comentarios:
Publicar un comentario