Temporalmente Cerrado


Por causas de fuerza mayor, no he podido seguir escribiendo en este blog durante hace ya algún tiempo. Espero que mis posts puedan serles utiles, ya que es este es el objetivo de esta página: El poder brindar información para quien desee fortalecer su conocimiento. Sin embargo, espero regresar a escribir más mini guías para ustedes pronto ;).

Siempre puedes contactarme por medio de:

LinkedIn: http://www.linkedin.com/profile/view?id=74846985&trk=hb_tab_pro_top

root@Linux:~# shutdown -h now Hasta pronto 
de Andrés Alvarado Publicado en Comandos

El comando echo.


El comando interno echo es una de las instrucciones más simples de la shell. Se encarga de repetir o desplegar en la salida estándr cualquier argumento que se le indíque(inclusive comodínes), para posteriormente saltar una línea. Ejemplos: 

usuario@Linux:~$ echo Hola Mundo!

Hola Mundo!

usuario@Linux:~$ echo /etc/sh*

/etc/shadow /etc/shadow- /etc/shells

SEQUENCIAS DE ESCAPE

El comando echo puede interpretar varias secuencias de escape. Para que estas secuencias de escape puedan ser intepretadas, deben ser encerradas entre comillas dobles o simples y el comando deberá utilizar la opción -e, ya que si no el carácter de escape es interpretado por el shell y no por el comando. Lista de sequencias de escape más relevantes: 

Ejemplos:

usuario@Linux:~$ echo -e "Campana el Sistema: \a Ding Dong!"
usuario@Linux:~$ echo -e "Borra Caracteress\b hacia atras"
usuario@Linux:~$ echo -e "Suprime \c Lo siguiente"
usuario@Linux:~$ echo -e "Retorno de carro. \r"
usuario@Linux:~$ echo -e "Este es un\t tabulador"

OPCIONES

-e: Habilita la interpretación de las sequencias de escape.

 usuario@Linux:~$ echo -e "\a \b \r \t \n \c"

-n: Evitar el brinco de línea que posee el comando por defecto.

 usuario@Linux:~$ echo -n "Evita el brinco de Linea"

-E: Explícitamente suprime la interpretación de las sequencias de escape.

 usuario@Linux:~$ echo -E "Evita el uso de \a \b \r \n, etc."

EJERCICIOS

  1. Despliege en pantalla el mensaje “Esta es una nueva linea”
  2. Haga timbrar la campana del sistema.
  3. ¿Qué ocurre cuando se utiliza el parámetro “Mensaje de prueba\b” utilizando las opciones -en?
  4. ¿Qué ocurre cuando se utiliza el parámetro “Mensaje de prueba\b” utilizando solamente la opcion -e?
  5. Imprima tres líneas en blanco en pantalla utilizando sequencias de escape.
  6. ¿Qué ocurre cuando se utiliza el parámetro “Mensaje de prueba\c” utilizando solamente la opcion -e?
  7. ¿Qué ocurre cuando se utiliza el parámetro “Mensaje de prueba\c” utilizando solamente la opcion -en?
  8. Imprima el mensaje “No se generan Lineas Nuevas” Utilizando la opcion -n.
  9. Imprima en pantalla mensaje “No \a \b \n” especificando explícitamente que no se tomarán en cuenta las sequencias de escape.

de Andrés Alvarado Publicado en Comandos

Creador de Linux recibe el “Nobel” de Tecnología.


Los dos científicos galardonados.

El programador finlandés Linus Torvalds, creador del sistema operativo de código abierto Linux, y el médico japonés Shinya Yamanaka recibieron en Helsinki el Premio Millennium de Tecnología, el galardón más importante del mundo en este campo y considerado el “Nobel” de tecnología.

 El presidente de Finlandia, Sauli Niinistö, fue el encargado de hacer entrega del premio a Torvalds y Yamanaka, quienes se repartirán a partes iguales los 1,2 millones de euros (1,5 millones de dólares) del galardón, durante una ceremonia celebrada en la Ópera Nacional de Helsinki.

Torvalds, informático de 42 años, fue distinguido por crear el kernel (núcleo) del sistema operativo de código abierto Linux y por su trabajo en favor del software libre, según la academia.

“La labor de Linus Torvalds ha mantenido la web abierta a la búsqueda del conocimiento y para el beneficio de la humanidad, no simplemente por intereses económicos”, señaló la presidenta de la Academia Finlandesa de Tecnología, Ainomaija Haarla.

Torvalds creó Linux en 1991 cuando era estudiante de la Universidad de Helsinki y lo desarrolló con las aportaciones de miles de internautas voluntarios, hasta convertirse en el exponente más conocido del software libre.

Veinte años después, este informático finlandés sigue supervisando la evolución de Linux desde su casa de Portland (EE.UU.), para garantizar que se mantenga como un sistema operativo libre de código abierto, en contraste con el Windows de Microsoft y el iOS de Apple.

Linus Torvalds recibiendo el galardón.

“El código abierto es muy importante, es como aplicar al software el enfoque científico de construir a partir del trabajo publicado abiertamente por los demás. Y el software es demasiado importante en el mundo moderno como para que no sea desarrollado de esa forma”, declaró Torvalds.

Millones de personas utilizan ordenadores, teléfonos inteligentes y videocámaras digitales equipados con Linux, un sistema operativo que ha servido también para desarrollar el software que emplean gigantes tecnológicos como Google, Amazon y Facebook.

Torvalds compartirá este galardón con el médico japonés Shinya Yamanaka, inventor de un nuevo método para producir en el laboratorio células madre de pluripotencia inducida (iPS, por sus siglas en inglés).

de Andrés Alvarado Publicado en Comandos

La Pila de Directorios(Directory Stack).


La pila de directorios es una lista que contiene los directorios visitados recientemente. Los comandos pushd y popd implementan esta pila permitiendo que el usuario pueda moverse entre los directorios utilizados recientemente y la shell pueda recordar tales rutas.

El comando pushd añade directorios a la pila y cambia al directorio actual de trabajo por el último directorio añadido a la pila. El comando popd remueve los directorios de la cima de la pila y cambia la ruta actual por el último directorio eliminado.

El comando dirs muestra el contenido de la pila de directorios. El contenido de la pila también puede ser consultado desde la variable de entorno DIRSTACK.

EL COMANDO PUSHD

La instrucción pushd guarda al directorio especificado en la cima de la pila de directorios y lo convierte en el directorio actual de trabajo. De no especificarse algún argumento, el comando intercambiará los dos directorios que se encuentren más arriba en la pila. Ejemplo:

usuario@Linux:~$ pushd /tmp

OPCIONES

+N: Lleva al n-ésimo directorio(contando de izquierda a derecha de la lista impresa por el comando dirs, empezando por 0) a la cima de la pila. Ejemplo:

usuario@Linux:~$ pushd +0 /etc

-N: Lleva al n-ésimo directorio(contando de derecha a izquierda de la lista impresa por el comando dirs, empezando por 0) a la cima de la pila. Ejemplo:

usuario@Linux:~$ pushd -0 /lib

dir: Hace que el directorio especificado se convierta en la cima de la pila y por lo tanto se convierta en el directorio actual de trabajo. Ejemplo:

usuario@Linux:~$ pushd /bin

EL COMANDO POPD

Elimina al directorio que se encuentra en la cima de la pila y convierte al nuevo directorio del tope de la pila en el directorio actual de trabajo.

OPCIONES

+N: Elimina el n-ésimo directorio(contando de izquierda a derecha de la lista de directorios impresa por el comando dirs), comenzando con cero. Ejemplo:

usuario@Linux:~$: popd +1

-N: Elimina el n-ésimo directorio(contando de derecha a izquierda de la lista de directorios impresa por el comando dirs), comenzando con cero. Ejemplo:

usuario@Linux:~$: popd -0

EL COMANDO DIRS

La instrucción dirs, permite visualizar los directorios almacenados actualmente en la pila de directorios. Ejemplo:

usuario@Linux:$~ dirs

OPCIONES

+N: Muestra el n-ésimo directorio(contando de izquierda a derecha de la lista de directorios impresa por el comando dirs), comenzando con cero. Ejemplo:

usuario@Linux:~$ dirs +3

-N: Muestra el n-ésimo directorio(contando de derecha a izquierda de la lista de directorios impresa por el comando dirs), comenzando con cero. Ejemplo:

usuario@Linux:~$ dirs -1

-c: Limpia la pila de directorios. Ejemplo:

usuario@Linux:~$ dirs -c

-v: Muestra los directorios enumerados. Ejemplo:

usuario@Linux:~$ dirs -v

EJERCICIOS

  1. Agregue el directorio /tmp a su pila de directorios. ¿Qué ocurre?
  2. ¿Qué directorios se encuentran en su stack de directorios?
  3. Agregue a los directorios /bin, /lib, /usr y /etc a su pila de directorios.
  4. Muestre su pila de directorios enumerada.
  5. Ejecute al comando pushd sin argumentos. ¿Qué ocurre?
  6. Muestre su pila de directorios para corroborar al ejercicio anterior.
  7. Lleve al directorio que se encuentra más a la izquierda de su pila de directorios a la cima de la pila.
  8. Remueva el directorio que se encuentre en la cima de la pila.
  9. Muestre su pila de directorios para corroborar al ejercicio anterior.
  10. Remueve al directorio que se encuentre más a la derecha en la cima de la pila.
  11. Limpie su pila de directorios.

de Andrés Alvarado Publicado en Comandos

Conceptos de las Shells.


Estas son las definiciones de los conceptos  más utilizados a la hora de hablar de los Shells de Unix y Linux:

  • POSIX : Una familia de estándares libres basados en Unix.
  • Blanco(Blank) : Un carácter espacio o tabulador
  • Comando Interno(Builtin): Un comando que es implementado internamente por la shell, en vez de por un programa ejecutable en algún lugar del sistema de ficheros.
  • Operadores de Control(Control Operator): Un token que realiza una función de control. Es una nueva linea o alguno de los siguientes símbolos: ‘||’, ‘&&’, ‘&’, ‘;’, ‘;;’, ‘|’, ‘|&’, ‘(’, o ‘)’.
  • Estado de Salida(Exit Status): El valor retornado por un comando a su llamador. Este valor está restringido a ocho bits, así que su valor máximo puede ser de 255.
  • Campo(Field): Una unidad de texto que es el resultado de una de las expansiones del shell. Tras la expansión, cuando se ejecuta un comando, los campos resultantes se pueden utilizar como nombre de comando y argumentos .
  • Nombre de Archivo(Filename): Una cadena de caracteres usada para identificar un archivo.
  • Tarea (Job):Un juego de procesos que componen una tubería, y los procesos que descienden de estos, que están todos en el mismo grupo de procesos.
  • Control de Tareas(Job Control): Un mecanismo por el cual los usuarios pueden parar (suspender) y reiniciar (reanudar) la ejecución de procesos.
  • Metacaracter(Metacharacter): Un carácter que, cuando se encuentra sin entrecomillar, separa palabras. Un metacaracter es un blanco o uno de los siguientes caracteres: ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, o ‘>’.
  • Nombre(Name): Una palabra consistente únicamente en letras, números y caracteres de subrayado, y que comienza con una letra o un carácter de subrayado. Los nombres se usan como nombres de variables de shell y de funciones. También se le llama identificador.
  • Operador(Operator): Un operador de control o un operador de redirección. una lista de operadores de redirección. Los operadores contienen al menos un metacaracter sin entrecomillar.
  • Grupo de Procesos (Process Group): Una colección o procesos relacionados cada uno de los cuales tiene el mismo identificador de grupo de procesos.
  • Identificador de Grupo de Procesos(Process Group ID): Un identificador único que representa un grupo de procesos durante su tiempo de vida.
  • Palabra Reservada (Reserved Word): Una palabra que tiene un significado especial para la shell. La mayoría de las palabras reservadas introducen en la shell construcciones de control de flujo, como for y while.
  • Estado de Retorno (Return Status): Un sinónimo para el estado de salida.
  • Señal(Signal): Un mecanismo por el que cualquier proceso puede ser notificado por el kernel de un evento ocurrido en el sistema.
  • Comandos Internos Especiales (Special Builtins): Un comando interno de la shell que ha sido clasificado como especial por el estándar POSIX
  • Token: Una secuencia de caracteres considerados una unidad única por el shell. Puede ser bien una palabra o un operador.
  • Palabra(Word): Una secuencia de caracteres tratados como una unidad por el shell. Las palabras no pueden incluir metacaracteres sin entrecomillar.
de Andrés Alvarado Publicado en Comandos

EL COMANDO CHMOD.


Como ya se ha mencionado anteriormente, los permisos pueden especificarse de dos formas:

  • Simbólica
  • Numéricamente

En notificación simbólica, los permisos se especifican con la siguiente sintaxis:

chmod nombreDeArchivo [ Usuarios ] [ Operador ] [ Permisos ]

El primer campo identifica al tipo de usuario al que se le ajustarán los permisos. La siguiente tabla muestra los símbolos utilizados para representar a los distintos tipos de usuarios en el comando chmod:

Si se omite este campo, implícitamente se utilizará a.

El operador identifica de que manera se cambiarán los permisos. La siguiente tabla muestra los diferentes tipos de símbolos utilizados en el comando chmod

El último campo identifica el permiso asignado al usuario. La siguiente tabla muestra los siguientes tipos de permisos que existen para los diferentes ficheros y directorios: 

El permiso s solamente puede ser brindado sobre al usuario propietario del fichero ó al grupo al que pertenece el propietario del archivo. Ejemplos:

Suponga que posee el archivo ficherito y desea cambiar sus permisos.

Se pueden incluir varias claves a la vez separándolas mediante comas sin dejar espacios entre cada clave. Ejemplo:

 andres@debian:$ chmod o-w,u=rx,ug+s ficherito 

De igual forma, todo permiso puede ser representado de una manera octal. El formato octal se utiliza para representar la información de una manera mas simple: todo numero octal combina los privilegios de lectura escritura y ejecución como unidad. La siguiente tabla muestra el significado de los valores numéricos:

Ejemplos utilizando notación numérica:

OPCIONES

 -R: Modifica los permisos de los ficheros recursivamente. Ejemplos:

 andres@debian:$ chmod -R 700 /home/usario  

 andres@debian:$ chmod -R gu+r,o-rwx /tmp/   

de Andrés Alvarado Publicado en Comandos

¿Qué son los permisos?


Todo fichero tiene tres permisos asociados a el, que le indican al sistema quién puede acceder a ese fichero, cambiarlo, o en caso de ser un programa ejecutarlo. Estos privilegios son:

  • Lectura
  • Escritura
  • Ejecución

Estos permisos pueden estar o no activados y tienen un significado diferente tanto para ficheros como para directorios.

FICHEROS

  • Permiso de Lectura: Permite observar el contenido del archivo.
  • Permiso de Escritura: Permite la modificar el contenido del archivo.
  • Permiso de Ejecución: Permite la ejecutar un archivo.

DIRECTORIOS

  • Permiso de Lectura: Permite conocer el contenido de de algún directorio, pero no permite ver información detallada de los ficheros a menos que se tengan permisos también permisos de ejecución.
  • Permiso de Escritura: Permite modificar el contenido del directorio: añadir y eliminar ficheros( siempre que se tengan permisos de escritura sobre estos).
  • Permiso de Ejecución: Permite que el usuario pueda cambiarse al directorio requerido, asi como copiar los ficheros del directorio(siempre y cuando se tengan los permisos de lectura sobre esos ficheros).

Estos permisos están representados en Linux por las letras read, write y execute (lectura, escritura y ejecución, respectivamente). Ejemplos:


PERMISOS Y USUARIOS

Cada uno de estos privilegios pueden ser definidos para tres tipos de usuarios:

  • Usuario propietario del fichero: indican los permisos que tiene el usuario dueño del archivo. El dueño de un archivo es el usuario que creó el fichero por primera vez, aunque es posible que durante la vida de un fichero, su dueño pueda cambiar innumerables veces.
  • Usuarios pertenecientes al mismo grupo que el propietario: indican los permisos que tienen los usuarios que pertenecen al mismo grupo que el usuario propietario del archivo.
  • Permisos para otros usuarios: indican los permisos que tienen los usuarios que no pertenecen al grupo del usuario propietario.

Estos permisos se suelen representar con variantes d e la cadena rwx, donde los permisos aparecen en el orden de usuario, grupo y otros. De manera que si un permiso existe para el usuario, se le pone la letra correspondiente a dicho privilegio. De igual forma, si el permiso no esta activado para el usuario, se pone un guión. Ejemplos:

De igual forma, todo permiso puede ser representado de una manera octal. El formato octal se utiliza para representar la información de una manera mas simple: todo numero octal combina los privilegios de lectura escritura y ejecución como unidad. La siguiente tabla muestra el significado de los valores numéricos:

Los permisos de un fichero o directorio pueden ser modificados por el dueño del archivo o por algún administrador, aunque no tengan permisos de escritura sobre el fichero.

Usualmente junto con los permisos se suele representar el tipo de fichero utilizando un carácter que se coloca antes de los permisos: directorio (d), fichero (), dispositivo de caracteres (c), dispositivo de bloques (b), enlace simbólico (l), etc.

de Andrés Alvarado Publicado en Comandos

Las variables de entorno y el comando export.


Por defecto, solamente existe un tipo especial de variable conocida por todos los subprocesos del sistema: Las variables de entorno.

Existen varias razones importantes por las cuales las variables de entorno deben ser conocidas por estos procesos y es que estas variables definen el comportamiento del ambiente sobre cual el usuario esta trabajando. Por ejemplo algunas de estas variables son:

Cualquier variable puede convertirse en una variable de entorno. Para que esto sea posible, la variable primero debe ser definida y posteriormente debe ser transferida al entorno. Ejemplo:

usuario@Linux:~$ nombreUno=”Esta es una variable de entorno”
usuario@Linux:~$ export nombreUno


EL COMANDO EXPORT

El comando export se utiliza para transferir el valor de una variable para que pueda ser accesible a todos los subshells (subprocesos). Su sintaxis es la siguiente:

usuario@Linux:~$ export nombreVariable

Tanto la definición como la exportación pueden lograrse en un sólo paso. Ejemplo:

usuario@Linux:~$ export variableDos=”2”

Incluso puede exportarse más de una variable a la vez. Ejemplo:

usuario@Linux:~$ export variableTres=”Tres” variableCuatro=”Four”

De igual forma, de no especificarse algún argumento para el comando export, este desplegará todas las variables definidas en el ambiente.

Las variables de entorno son importantes y sus valores pueden cambiar dependiendo del shell que se este utilizando. Es decir que probablemente una Korn Shell no tenga las mismas Variables que una Bourne Again Shell.

Las variables de ambiente son importantes. Muchas de las variables de entorno son definidas o redefinidas en archivo .profile dentro del directorio /home/nombreDeUsuario para adecuar el sistema a las necesidades del usuario.

EJERCICIOS

  1. Asigne el valor 3 a la variable raton. Exporte esta variable al ambiente.
  2. Verifique que la variable se encuentre definida dentro de las variables de ambiente.
  3. Despliegue en pantalla el valor de la variable ratón.
  4. Asigne el valor de Miau Miau a la variable gato. Exporte esta variable al ambiente.
  5. Verifique que la variable gato se encuentre definida dentro de las variables de ambiente.
  6. Despliegue en pantalla el valor de la variable gato.
  7. Asigne el valor de Woof Woof a la variable perro . Exporte la variable al ambiente.
  8. Verifique que la variable perro se encuentre definida dentro de las variables de ambiente.
  9. Retire el valor de todas las variables asignadas en estos ejercicios.
  10. Verifique que ninguna de estas variables estan definidas dentro del ambiente.
de Andrés Alvarado Publicado en Comandos

El redireccionamiento de entrada y salida.


Cuando un comando se ejecuta, por defecto utiliza los mismos dispositivos de entrada y salida que el shell sobre el cual se está ejecutando. Estos dispositivos son normalmente la pantalla y el teclado, sin embargo, estos dispositivos pueden ser sustituidos por otros. A este aspecto de de cambiar la entrada y salida estándar por otros dispositivos, se conoce como redirección de entradas y de salidas. Existen tres tipos de redireccionamiento:

El Redireccionamento de Salida Estándar permite que en vez de que el resultado de un comando se muestre en pantalla, se pueda almacenar en un archivo u otro dispositivo. Existen dos posibilidades para redireccionar la salida:

1. Crear un archivo nuevo con el contenido de la salida mediante el operador > seguido del nombre del archivo o dispositivo a donde irá a parar la información. Ejemplo:

usuario@Linux:~$ man cat > archivoRedirigido 

Como se puede apreciar, en vez de escribir la información acerca del comando cat en pantalla, el comando crea un archivo totalmente nuevo en el directorio actual.

2. Añadir el contenido de la salida a un archivo ya existente (o crearlo de no existir). En este caso se utilizan dos signos >> antes del nombre del fichero. Ejemplo:

usuario@Linux:~$ pwd >> archivoRedirigido

Como se puede observar, el comando añadirá la ruta del directorio actual de trabajo al final del archivo informacionCat en vez de escribir la información del directorio actual en pantalla.

El Redireccionamiento de la Entrada Estándar le permite al comando leer la información a procesar desde un fichero u otro dispositivo en lugar de leer los datos directamente desde el teclado. Para redireccionar la entrada estándar, se utiliza el operador seguido del nombre de fichero o dispositivo de donde tomará la información. Ejemplo:

usuario@Linux:~$ more < archivoRedirigido 

Es claro que muchos comandos permiten especificar un fichero sobre el cual trabajar, así que en operaciones diarias, el caracter < no se utiliza tanto.

EJERCICIOS

  1. Liste el contenido del directorio /etc/ a un archivo de nombre ejercicio1.
  2. Añada el nombre del directorio actual de trabajo al archivo ejercicio1.
  3. Visualice el contenido del archivo ejercicio1 utilizando el operador <.
  4. Liste las primeras 5 líneas del archivo /etc/passwd a un archivo de nombre contrasenia.
  5. Añada las ultimas 5 líneas del archivo /etc/passwd al archivo contrasenia.
  6. Sustituya toda información del archivo ejercicio1 con la del archivo contrasenia.
  7. Visualice la información del archivo ejercicio1 utilizando el redireccionamiento estándar.
de Andrés Alvarado Publicado en Comandos

Los comandos basename y dirname.


Los sistemas Unix y Linux proporcionan instrucciones para construir nombres de archivos y directorios a partir de rutas absolutas o relativas. Por ejemplo, suponga que posee la siguiente ruta y quisiera conocer únicamente el nombre del archivo o el directorio en el cual se localiza el fichero:

usuario@Linux:~$ /usr/bin/vi

ARGUMENTOS

La órden basename se utiliza para extraer los directorios de una ruta especificada como argumento y despliega en pantalla solamente el último componente de este camino. Ejemplos:

usuario@Linux:~$ basename /usr/bin/vi
usuario@Linux:~$ basename /usr/lib/perl
usuario@Linux:~$ basename /etc/shells
usuario@Linux:~$ basename .

Arrojan como resultado:

vi
perl
shells
.

Por otra parte, la instrucción dirname proporciona sólo la sección de directorio suprimiendo el nombre del archivo. Ejemplos: 

usuario@Linux:~$ dirname /usr/bin/vi
usuario@Linux:~$ dirname /usr/lib/perl
usuario@Linux:~$ dirname /etc/shells
usuario@Linux:~$ dirname .

Arrojan como resultado:

/usr/bin
/usr/lib
/etc
.

EJERCICIOS

  1.  Obtenga el nombre y directorio para la ruta /etc/shells.
  2. Obtenga el nombre y directorio para la variable $HOME.
  3. Obtenga el nombre y directorio para la ruta estaRutaNoExiste/estaTampoco.
  4. Obtenga el nombre y directorio para la ruta /etc/hosts.
  5. Obtenga el nombre y directorio para la ruta ./../...
  6. Obtenga el nombre y directorio para la ruta estaRutaNoExiste.
  7. Obtenga el nombre y directorio para la ruta ~.
de Andrés Alvarado Publicado en Comandos