Sistemas Operativos

SistemaOperativo

Un sistema operativo (SO, frecuentemente OS) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes y anteriores próximos y viceversa.

La parte más importante del SO es kernel que es núcleo del sistema operativo, la parte más importante.

Cuando arrancas un ordenador con cualquier sistema operativo, el Kernel se carga en memoria y permanece allí hasta que apagas el equipo, realizando funciones básicas como pueden ser: - Comunicación entre procesos - Control de periféricos - Manejo de memoria - Control de interrupciones

Subcategorías

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Estructura de un Script

Los archivos que creamos debemos guardarlos como .bash o .sh y asi podran ser ejecutados desde terminal.

Si la primera linea ponemos:

#!/bin/bash
echo "esto es una prueba de bash"

Con la primera linea podremos ejecutar el script desde la carpeta.

Maneras de ejecutar programa .bash

Desde la carpeta una vez dados los permisos de ejecución.

Desde terminal:

  • Nos colocamos donde tengamos el archivo:
    xxxxx@xxx:~Escritorio$ ./prueba.bash
    esto es una prueba de bash
  • Nos colocamos donde tengamos el archivo:
    xxxxx@xxx:~Escritorio$ bash prueba.bash
    esto es una prueba de bash
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

distribuciones-linux

La mayoría de las distribuciones a la hora de instalarse se componen de paquetes fundamentales para el correcto funcionamiento del sistema operativo con una configuración preestablecida, para hacer mas sencilla la instalación, sobretodo para novatos como yo, aunque estó no siempre es lo mas recomendable, ya que esta configuración debería ser en función del hardware que disponga el equipo y el uso para el que se va aplicar ese ordenador.

Una Distribución de Linux ( Distro ) es un conjunto de software basada en el kernel de linux, normalmente cada distro se especializa para el grupo de usuarios al que fue creado.

Las distribuciones de Linux ademas del núcleo de linux, incluyen habitualmente las bibliotecas ,herramientas y software adicional dependiendo a que usuarios va dirigida. Normalmente una distribución está relacionada con una empresa o comunidad.

Casi siempre el software que incluye las distribuciones de Linux es software libre, aunque hay algunas (pocas) que incluyen controladores y aplicaciones que son propietarias (software con derecho de autor).

A la hora elegir una distribución a instalar en nuestro equipo debemos tener en cuenta el  prósito por el que fue creado la distro, teniendo en cuenta también, su arquitectura base , fechas de lanzamiento, fechas de las ultimas versiones estables  y  el tiempo de soporte (LTS).

En el este link de la wikipedia , podeís ver anexo de comparaciones de distribuciones de Linux.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

SINOPSIS COMANDO MOUNT

mount [-lhV]
mount -a [-fFnrsvw] [-t vfstype] [-O optlist]
mount [-fnrsvw] [-o option[,option]...] device|dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir

DESCRIPCIÓN COMANDO MOUNT

El comando mount une el sistema de ficheros especificado por con la fuente (que frecuentemente es un dispositivo físico, pero que puede ser también un nombre de directorio o un dispositivo virtual) al directorio especificado por destino.

DESMONTAR ANTES DE QUITAR DISPOSITIVO

El comando umount y umount2 eliminan la unión del sistema de ficheros que se encuentra montado en destino.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

El software y el sistema operativo de nuestro equipo normalmente se distribuye en forma de paquetes, estos a la hora actualizarse o instalarse suele estar encapsulado en un solo fichero en los repositorios. En este fichero encapsulado podremos encontrar a parte del propio software la información de la versión, de los requisitos a la hora instalar (dependencias ), información detallada del funcionamiento del software,... 

Los Sistemas de gestión de paquetes también conocidos como "gestores de paquetes" son programas que sirve para automatizar software y el propio sistema operativo. Estos gestores de paquetes analizan las metas-información de los ficheros encapsulado, donde le indica la versión a actualizar y compruebe las dependencias (que se cumplan o no), para conseguir una correcta actualización o instalación del paquete (software o programa del sistema operativo).

En todas las distribuciones de Linux podemos utilizar varios sistemas de gestión de  paquetes tanto desde terminal como desde la parte gráfica.

Algunos de los gestores de paquetes que podemos ejecutar desde terminal:

  • Aptitude 
  • Apt-get
  • dpkg ( Esté es la base de sistema de gestión paquetes de Debian )

Si deseas profundizar más en los sistemas gestión de paquetes hay tema bastante amplio en este libro : "Libro de administración de Debian".

 

dpkg -S $(which setfacl) Ver paquetre al que pertenece
dpkg -l | grep git ( ver los paquetes instalados)
dpkg -L acl ( ver ficheros que instala el paquete)

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

KILL es un comando utilizado para enviar mensajes sencillos a los procesos ejecutándose en el sistema. Por defecto el mensaje que se envía es la señal de terminación.

kill -l

Te muestra todas la señales que podemos enviar a los procesos.

Podemos enviar señales a procesos o grupos de procesos del sistema, referenciados por sus IDs de proceso (PIDs) o IDs de grupo de procesos (PGIDs).

kill se ofrece siempre como programa independiente, pero la mayoría de las shells tienen intrínsecamente comandos kill que pueden diferir levemente de ella.

EJEMPLOS DE TERMINACIÓN DE PROCESOS

Imaginemos que queremos cerrar una aplicación que nos está dando problemas, lo primero es buscar el proceso abierto de esa aplicacion, para ello necesitamos el numero id para poder cerrarlo.

KILL [id]

Hay varias formas para localizar y ve los procesos abiertos, ejecutando desde la terminal:

ps -A

Nos lista los procesos con su ID y el nombre del proceso.

Ejemplo de listado de procesos:

PID   TTY   TIME   CMD
  1  ?   00:00:00  init
  2   ?   00:00:00  kthreadd
  3  ?   00:00:00   ksoftirqd/0
  5   ?   00:00:00   kworker/u:0
  6  ?   00:00:00   migration/0
  7  ?   00:00:00 watchdog/0
  8  ?   00:00:00   migration/1
  9  ?   00:00:01   kworker/1:0
  10 ?   00:00:00   ksoftirqd/1
  11   ?   00:00:01   kworker/0:1
  12  ?   00:00:00   watchdog/1
  13  ?   00:00:00  filezilla

Si el listado es muy grande o no encontramos la instrucción o programa a cerrar, podermos utilizar la instrucción:

ps aux | grep (nombre o parte de nombre)

Tambien existe la instrucción

pgrep (nombre o parte de nombre)

Ejemplos:

ps aux | grep office

Otra formas

pgrep -a office
pgrep -a fice
pgrep -a off

Referencias:

Se termina el proceso, aunque en este link nos indica otras formas.

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

¿Que es Aptitude ?

Es uno de los gestores paquetes mas utilizado por casi todas las distribuciones de linux.

DESCRIPCIÓN:Permite al usuario ver la lista de paquetes y realizar tareas de gestión tales como instalar, actualizar o eliminar paquetes. Puede llevar a cabo las acciones con una interfaz gráfica o en la línea de órdenes.

¿Por que utilizar Aptitude ?

aptitude administra mejor las dependencias que apt-get.

Otras ventajas de aptitude:

  • aptitude eliminará los paquetes inútiles al desinstalar un paquete.
  • aptitude permite el acceso a todas las versiones de un paquete.
  • aptitude registra todas sus acciones en dans /var/log/aptitude.
  • aptitude facilita el seguimiento de programas obsoletos listándolos en “Obsolete and Locally Created Packages”
  • aptitude incluye un potente sistema de búsqueda para encontrar paquetes específicos o limitar la visualización de paquetes. Los usuarios familiarizados con mutt rápidamente se sentirán cómodos con aptitude, ya que la sintaxis de sus expresiones está inspirada en mutt. Ver “SEARCHING, LIMITING, AND EXPRESSIONS” en /usr/share/doc/aptitude/README.
  • aptitude en pantalla completa integra a su y puede ser utilizado por un usuario normal hasta que realmente necesite privilegios de administrador.

NOTA:

Aunque recomendamos utilizar aptitude por las ventajas nombradas con anterioridad, hay que tener en cuenta que distribución utilizamos, ya el comportamiento puede varias, sobretodo aquellas que son retocadas sus repositorios a mano.

Sintexis y Ejemplos de APTITUDE :

aptitude [opciones ] paquetes

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Imaginemos que nos hacemos un poco adictos a Linux, imaginemos que ya tenemos dos equipos en la misma red con Sistemas Operativos Linux. Mejor lo ponemos gráficamente:

ESQUEMA DE INSTALACIÓN OFICINA

RED-OFICINA

En su momento llamamos a un AMIGO CRACK  para que nos configurara la red  y pudiéramos compartir carpetas entre ambos equipos.

El problema surge cuando por motivo X , creomos que por el cambio de la contraseña de la wifi, deja funcionar esa conexión, donde nos indica que no puedo montarse la unidad de disco (oficina).

Pues como en aquel momento no apuntamos como lo hizo, ahora nos vemos en la necesidad de aprender ha hacerlo o volver a llamar a Guillermo, aunque en esta semana creemos que ya lo molestamos demasiado.

SABER CUAL ES LA IP DE LOS EQUIPOS Y VER SI SE VEN CON PING

Para saber que ip y mac tenemos en cada equipo asignadas por DHCP , en terminal:

 

EQUIPO MIO

ifconfig

 donde el resultado es:

eth0 Link encap:Ethernet direcciónHW 50:e5:49:a8:e4:28
Direc. inet:192.168.0.10 Difus.:192.168.0.255 Másc:255.255.255.0
Dirección inet6: fe80::52e5:49ff:fea8:e428/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:10099 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:9060 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:1000
Bytes RX:7765896 (7.7 MB) TX bytes:1250133 (1.2 MB)
Interrupción:40 Dirección base: 0xa000
lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1
Paquetes RX:2555 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:2555 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:256261 (256.2 KB) TX bytes:256261 (256.2 KB)

 

EQUIPO OFICINA

ifconfig

 donde el resultado es:

eth0 Link encap:Ethernet direcciónHW 50:e5:49:16:8d:9e
Direc. inet:169.254.227.254 Difus.:169.254.227.255 Másc:255.255.255.0
Dirección inet6: fe80::52e5:49ff:fe16:8d9e/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:135 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:67 errores:0 perdidos:0 overruns:0 carrier:1
colisiones:0 long.colaTX:1000
Bytes RX:17620 (17.6 KB) TX bytes:10316 (10.3 KB)
lo Link encap:Bucle local
Direc. inet:127.0.0.1 Másc:255.0.0.0
Dirección inet6: ::1/128 Alcance:Anfitrión
ACTIVO BUCLE FUNCIONANDO MTU:16436 Métrica:1
Paquetes RX:1920 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:1920 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:0
Bytes RX:384665 (384.6 KB) TX bytes:384665 (384.6 KB)
tun0 Link encap:UNSPEC direcciónHW 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
Direc. inet:172.23.12.248 P-t-P:172.23.12.248 Másc:255.255.255.0
ACTIVO PUNTO A PUNTO FUNCIONANDO NOARP MULTICAST MTU:1500 Métrica:1
Paquetes RX:0 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:0 errores:0 perdidos:0 overruns:0 carrier:0
colisiones:0 long.colaTX:100
Bytes RX:0 (0.0 B) TX bytes:0 (0.0 B)
wlan0 Link encap:Ethernet direcciónHW 00:80:5a:54:d5:80
Direc. inet:192.168.0.11 Difus.:192.168.0.255 Másc:255.255.255.0
Dirección inet6: fe80::280:5aff:fe54:d580/64 Alcance:Enlace
ACTIVO DIFUSIÓN FUNCIONANDO MULTICAST MTU:1500 Métrica:1
Paquetes RX:8291 errores:0 perdidos:0 overruns:0 frame:0
Paquetes TX:7683 errores:0 perdidos:0 overruns:0 carrier:0

 

Al final tuve que recurrir nuevamente a mi "AMIGAZO" para resolver el problema, y me indica que el problema de comunicación fue el cambio de las IP de uno de los EQUIPOS, ya que la asigna por DHCP.

-Bueno.. no creo que resuelva mucho la entrada, pero poco a poco la iremos completando...

 

Fuente:

http://nideaderedes.urlansoft.com/2013/12/23/linux-como-puedo-saber-que-maquinas-hay-conectadas-en-mi-red-local/

http://portallinux.es/compartir-carpetas-via-nfs/

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

SINOPSIS COMANDO RENAME:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

DESCRIPCIÓN COMANDO RENAME:

"rename" cambia el nombre de los nombres de archivo suministrados de acuerdo a la regla especificada como primer argumento . El argumento perlexpr es una expresión Perl para modificar al menos algunos de los nombres de archivo especificados. Si un nombre de archivo que se da no se modifica por la expresión , no va a cambiar el nombre . Si no se dan los nombres de archivo en la línea de comandos , los nombres de archivos se pueden leer a través de la entrada estándar .

Expresiones regulares que podemos utilizar en este comando:

Expresiones regulares:

Expresiones regulares que pueden ser utilizadas en rename.

^
coincide con el principio de la línea
$
coincide con el final de la linea
.
Coincide con cualquier carácter individual
(caracter)*
El caracter anterior tantas veces que quiera.
(caracter)?
Coincide con 0 o 1 vez el caracter
[abcdef]
Coincidir con cualquier carácter incluido en [] (en este caso, a b c d e  f) se permiten rangos de caracteres como [a-z].
[^abcdef]
No coincidad cualquier carácter incluido en [] ( en este caso a b c d e f).
(character)\{m,n\}
Match m-n repetitions of (character)
(character)\{m,\}
Match m or more repetitions of (character)
(character)\{,n\}
Match n or less (possibly 0) repetitions of (character)
(character)\{n\}
Match exactly n repetitions of (character)
\(expression\)
Group operator.
\n
Backreference – matches nth group
expression1\|expression2
Matches expression1 or expression 2. Works with GNU sed, but this feature might not work with other forms of sed.
\w
matches any single character classified as a “word” character (alphanumeric or “_”)
\W
matches any non-“word” character
\s
matches any whitespace character (space, tab, newline)
\S
matches any non-whitespace character
\d
coincide con cualquier carácter de dígito, equiv. a [0-9]
\D
coincide con cualquier carácter que no sea un dígito

ALGUNOS EJEMPLOS DE COMANDO RENAME

Tratar extensiones:

Por ejemplo, para cambiar los ficheros que tengan la extension en mayuscula (JPG)  por minuscula (jpg).

rename -n 's/JPG$/jpg/' *

Con la opción -n , nos muestra lo que va hacer pero no lo realizar. Si quiere cambiarlo de verdad, simplemente repite la instrucción sin la -n.

Explicacion de expresion regular.

-n        :  Hace que no realice la acción, muestre por pantalla lo que haría.
s         : sustituye
/          :donde encuentres
JPG$   :JPG al final del fichero
/          : indica que sustituya por
jpg       : los pondría en vez JPG
/ fin     : indica el fin de expresion.

Tratar prefijos:

La intención es cambiar el nombre de varios ficheros que poniendo un PREFIJO y manteniendo  la misma datos.

Imaginamos que tenemos un directorio donde tenemos varias imagenes con el mismo prefijo y con un numero, situación típica cuando importamos imágenes de un dispositivo, como muestro en la siguiente imagen

directorio-imagenes

Pues para cambiar esta galeria de imagenes el nombre y poner el nombre del evento que erá, utilizo la siguiente instrucción.

rename 's/\IMG/\InauguracionBar/' *

El resultado es InaufuracionBar_nnnn.JPG

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

El comando MAN es una herramienta de sistemas Unix que se utiliza para documentar y aprender sobre comandos, archivos, llamadas de sistema, etc., en un sistema operativo tal como GNU/Linux

Este comando acompañado por otro , no da la información sobre el comando, su ayuda, aunque info también nos da esa información, la documentación que encontramos en MAN es suficiente

Para aquellos que el ingles no es su fuerte como a mi, esta documentación en su mayoría ya existe en español, para que al ejecutar man no la muestre, tenemos que hacer lo siguiente desde terminal.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install manpages-es manpages-es-extra
sudo dpkg-reconfigure locales

Y ahora ya puede leer en español la información que nos ofrece MAN de los comandos