Archive for the ‘Debes conocerlo’ Category

Cosas que debes saber de linux3

Seguimos con los post de cosas que debemos saber de linux en general, esta ves loca que hablemos de los procesos en linux, para empezar un proceso es una instancia de un programa que esta en ejecución controlado por un Sistema Operativo, estos tienen instrucciones, estados, etc.

Aplicado a Linux, como todo sistema operativo , gestiona estos procesos y por ser multi tarea – procesos, se gestionan muchos procesos en memoria todo el tiempo, entonces utilizaremos un comando ps lo cual nos facilita el siguimiento de dichos procesos, este comando recibe una varidad de parametros, para ver cuales son , abre una consola y digita ps L, muestra la lista de todos los parametros que recibe el comando ps adicionalmente puedes digitar ps –help y este te mostrara la ayuda de este comando. OK primero, para ver cuales son los procesos que se estan ejecutando en tu computador, digita el comando: ps -A, el resultado de esta ejecución es el siguiente:

pa -a

Nos muestra las columnas

  • PID: Identificador unico del proceso
  • TTY: Terminal asociada al proceso
  • TIME: Tiempo de uso de cpu acumulado por el proceso
  • CMD: El nombre del programa o camndo que inició el proceso

Ademas podemos utilizar ps -ef, para obtener mas detalle de los procesos que el comando anterior incluido el usuario propietario del proceso o por otro lado combinarlos, es cosa de que te pongas a probar, ya que con la ayuda es suficiente, por ejemplo: ps -F -U  armando, el resultado de este, son todos los procesos de un determinado usuario de forma detallada.

ps(2)

pstree: ya que hablamos de proceso, tenemos que tener en cuenta que hay procesos que dependen de otros procesos, ahí es cuando este comand o nos puede ayudar, para ver de una forma clara que procesos dependen de cuales, digitamos entonces el comando pstree en la consola y obtenemos lo siguiente:

pstree

Al igual que ps, hay opciones que se pueden adicionar, la ayuda te puede dar los parametros aceptados (pstree –help), vemos uno simple, digita en consola:  pstree usuario (en usuario, va el nombre del usuario de tu sesion), con la ejecución de ese comando obtendremos los procesos de un usuario especifico.

Kill: este comando es el utilizado para mandar señales a los procesos, estas señales son de diversos tipos, para verificar los tipos de señales puedes ejecutar el comando kill -l, vamos a probar ejecutando kill con una seña de apagado, abramos una aplicación por ejemplo la calculadora de gnome (gcalctool), luego identificamos el numero de proceso con ps -e, ya identificado vamos a suponer que el proceso es el PID=9790,  entonces para apagar o finalizar el proceso digitamos en la consola kill -9 9790, pues como digimos el -9 nos esta representando el tipo de señal, adicionalmente podemos enviar la descripcion de la señal y no el id, asi: kill -SIGKILL 9790

killall: al igual que kill envia los diferentes tipos de señales, lo unico que a este no le enviaremos el Id del proceso, si no el nombre del procesos que puede ser un grupo, por ejemplo podemos abrir 3 calculadoras en gnome y ejecutar el comando killall -STOP gcalctool,  y comando cambiara el estado de los procesos cuyo nombre sean gcalctoll a detenidos osea las 3 calculadoras que abrimos anteriormente (en Ubuntu podremos ver como se atenua el color de las calculadoras porque estan detenidos), para iniciarlos nuevamente puedes digitar killall -CONT gcalctool.

nice: este comando permite cambiar la prioridad de un proceso cuando lo arrancamos, Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad modificada, más alta o más baja según se requiera. Las prioridades van de -20 (la más alta) a 19 la más baja. esto cabe mencionar que solo lo he visto para sistemas linux (Unix), porque en las ventanitas solo le puedes asignar mayor prioridad ya ejecutado. Para probar esto abriremos una consola y digitaremos el siguiente comando: sudo nice -n 9 gcalctool, con esto nos creara una calculadora con prioridad media alta para el procesador.

renice: este si, asigna en tiempo de ejecución una mayor prioridad a un proceso ya ejecutado; sigamos con el mismo caso, ahora a la calculadora que abrimos le daremos todavia mas prioridad, ejecutamos:  sudo renice 19 10242 (previamente debimos haber obtenido el ID)

Bueno por supuesto hay mucho mas, pero esto es algo básico que deberíamos tener en cuenta. además es bueno conocer los principios, la forma visual de todo esto lo podemos ver en Ubuntu por ejemplo en el menu Sistema > Administración > Monitor del Sistema:

monitorSistema monitorSistema2

Saludos.

Fuentes: Wikipedia, LinuxTotal.com.mx

Cosas que debes saber de linux2

Continuando con la tematica de información gral que los linuxreros debemos saber, en esta ocación hablaremos de los permisos en GNU/Linux para ello nos centraremos en chmod (change mode) una forma muy inteligente de manejar permisos tanto para archivos como carpetas, pero que es chmod: es una llamada al sistema y su comando asociado en el sistema operativo UNIX (estandarizados en POSIX y otros estándares) que permite cambiar los permisos de acceso de un archivo o directorio.

Veamos que en linux los permisos se manejan por atributos, estos atributos son los siguientes:

  • r: Permite leer el fichero o directorio
  • w: Permite la escritura del fichero o directorio
  • x: permite la ejecución de el fichero.
  • s: permite cambiar el propietario del fichero o directorio.

Como podemos ver tenemos entonces los permisos de lectura escritura y cambiar el propietario, pero ademas algo muy linux y es que con un atributo tambien controlamos la ejecución de un fichero osea no como en otros sistemas donde la extension es la que determina esto.

Ahora veremos el tema de grupos de usuarios hay tres atributos para acceder a un archivo tenemos el usuario dueño,(u) el grupo donde pertenece el usuario (g) y  el resto de usaurios (o), con estos atributos se vuelve mas interesante y diverso el tema.

Vamos a hacer entonces un ejercicio sencillo de esto para entender mejor estos parametros (siempre he sido un poco malo para darme a enteder XD), primero crea una carpeta en el escritorio la nombraremos como Prueba, ahora dentro colocaremos un fichero, en mi caso fue una imagen en png de nombre mitch91-rock-stux.png, ahora abrimos una consola en la ubicacion de la carpeta en mi caso:

cd ‘/home/armando/Escritorio/Prueba’

ok luego digitamos en la consola:

ls -l

Este comando nos mostrara la información de los atributos de dicho archivo, en mi caso la siguiente:

PruebaPermisos1Veamos entonces los atributos:

tenemos -rw que corresponden al usuario propietario del archivo, lo cual no dice que tiene permisos de lectura y escritura mas no de ejecución (falta la x) y luego —— esto por no tener incorporado a permisos para grupos y usuarios adicionales.Ok aquies donde entrara el chmod, para hacerlo en modo “varon”, veamos como se hace, digitemos entonces en la consola:

chmod g=rw mitch91-rock-stux.png

Luego de esto nos habran cambiando los permisos, volvamos a digitar ls -l en la consola y veamos los cambios aplicados:

PruebaPermisos2

como podemos ver son dos parametros que se envian, lo que refiere a grupos-permisos y el archivo al que lo aplicara, en este caso esta dando permisos de lectura y escritura al archivo en cuestion al grupo que pertenece el usuario, facil verdad, pero ademas podemos matar varios pajaros al mismo tiempo pudiendo ejecutar la linea anterior así:

chmod g=rw,o=rw mitch91-rock-stux.png

digitamos nuevamente ls -l y vemos los cambios realizados.

PruebaPermisos3

Ok todo eso fue facil y creo que queda claro el como manejar estos permisos desde la consola, pero chmod no se queda solo ahí, hay una forma quiza mas facil de hacerlo y es con numeros, de la siguiente manera:

1 = ejecución
2 = escritura
3 (1+2) = escritura y ejecución
4 = lectura
5 (4+1) = lectura y ejecución
6 (4+2) = lectura y escritura
7 (4+2+1) = lectura, escritura y ejecución

Con estas combinaciones de permisos nos sera mas facil la modificación de los ficheros, vamos a probar con un archivo sh, para mi caso netbeans-6.7.1-ml-linux.sh, veamos como esta el archivo:

PruebaPermisos4

Vemos que solo tiene permisos para el usuario propietario de lectura y escritura, entonces debemos agregarle el permiso de ejecucion, digitamos entonces en la consola:

chmod 700 netbeans-6.7.1-ml-linux.sh

Algo importante de aclarar si lo hacemos con numeros es que simpre tenemos que poner las 3 pociciones si solo hubieramos digitado chmod 7, solo le habria otorgado permisos de lectura, escritura a otros usuarios. el resultado entonces seria el siguiente:

PruebaPermisos5

Bueno ya con eso creo que estamos bastante claros de los permisos, puedes ocupar las combinanciones que necesites segun tu necesidad, eso es lo que por lo menos debemos saber a los que nos gusta usar linux, aunque claro siempre hay una forma mas facil, aunque lo importante es el fundamento, tambien lo puedes hacer de forma visual con solo dar click derecho sobre el archivo > propiedades y en la pestaña permisos esta de forma visual lo que hemos visto en este tuto, como la imagen que anexo a continuación.

PruebaPermisosVisual

Bueno espero sea de utilidad y haberme dado a entender. Saludos

Fuentes: skrdz, Tol0za’s, Wikipedia

Cosas que debes saber de Linux1

Bueno con este post empiezo lo que sera (espero) una serie de articulos relacionados a el funcionamiento general de linux, que deberíamos saber para entender mejor el sistema tan querido en el que hacemos la mayoria de cosas.

En este articulo hablaremos de la estructura de directorios de Linux.

El Filesystem Hierarchy Standard (Estándar de jerarquía del sistema de archivos) es una norma que define los directorios principales y sus contenidos en el sistema operativo GNU/Linux y otros sistemas de la familia Unix. Se diseñó originalmente en 1994 para estandarizar el sistema de archivos de las distribuciones de Linux, basándose en la tradicional organización de directorios de los sistemas Unix. En 1995 se amplió el ámbito del estándar a cualquier Unix que se adhiriese voluntariamente.

Empezemos a verlos uno a uno:

/bin/
Mandatos binarios esenciales necesarios para que estén disponibles para una sesión de usuario único, o para todos los usuarios (cp, mv, ls, rm, etc.),

/boot/
Ficheros utilizados durante el arranque del sistema (núcleo y discos).

/dev/
Contiene los Dispositivos esenciales (por ejemplo, /dev/null), incluso los que no se les ha asignado (montado) un directorio. Contiene también dispositivos que no sirven de almacenamiento (p.e. terminales de sonido y vídeo, micrófonos, impresoras, etc).

/etc/
Ficheros de configuración utilizados en todo el sistema y que son específicos del anfitrión.

/etc/opt/
Archivos de configuración para los programas alojados dentro del directorio /opt.

/etc/X11/ (opcional)
Archivos de configuración para el X Window System, versión 11.

/etc/sgml/ (opcional)
Ficheros de configuración para SGML.

/etc/xml/ (opcional)
Ficheros de configuración para XML.

/home/ (opcional)
Directorios de inicios de los usuarios.

/lib/
Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
el núcleo del sistema.

/mnt/
Sistemas de ficheros montados temporalmente.

/media/
Puntos de montaje para dispositivos de medios como unidades lectoras de discos compactos.

/opt/
Paquetes de aplicaciones estáticas.

/proc/
Sistema de ficheros virtual que documenta sucesos y estados del núcleo. Contiene principalmente ficheros de texto.

/root/ (opcional)
Directorio de inicio del usuario root (super-usuario).

/sbin/
Binarios de administración de sistema.

/tmp/
Ficheros temporales

/srv/
Datos específicos de sitio servidos por el sistema.

/usr/
Jerarquía secundaria para datos compartidos de solo lectura (Unix system resources). Este directorio debe poder ser compartido para múltiples anfitriones y no debe contener datos específicos del anfitrión que los comparte.

/usr/bin/
Mandatos binarios.

/usr/include/
Ficheros de inclusión estándar (cabeceras de cabecera utilizados para desarrollo).

/usr/lib/
Bibliotecas compartidas.

/usr/share/
Datos compartidos independientes de la arquitectura del sistema. Imágenes, ficheros de texto, etc.

/usr/src/ (opcional)
Códigos fuente.

/usr/X11R6/ (opcional)
Sistema X Window, versión 11, lanzamiento 6.

/usr/local/
Jerarquía terciaria para datos  compartidos   de solo lectura específicos del anfitrión.

/var/
Ficheros variables, como son bitácoras, bases de datos, directorio raíz de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.

/var/account/ (opcional)
Procesa bitácoras de cuentas de usuarios.

/var/cache/
Cache da datos de aplicaciones.

/var/crash/ (opcional)
Depósito de información referente a estrellamientos del de sistema.

/var/games/ (opional)
Datos variables de aplicaciones para juegos.

/var/lib/
Información de estado variable. Algunos servidores como MySQL y PostgreSQL almacenan sus bases de datos en directorios

/var/lock/
Ficheros de bloqueo.

/var/log/
Ficheros y directorios de bitácoras.

/var/mail/ (opcional)
Buzones de correo de usuarios.

/var/opt/
Datos variables de /opt/.

/var/spool/
Colas y carretes de datos de aplicaciones.

/var/tmp/
Ficheros temporales preservados entre reinicios.