Introducción a Linux

17 junio, 2015
admin
Comentarios desactivados

Usuarios, cuentas, claves y permisos

Antes de empezar a trabajar en un sistema LINUX es necesario estar registrado en el mismo, por medio de un nombre clave, llamado identificador de usuario (login name), al que se le suele asociar una clave de paso (password).

Estos datos se asignan a los usuarios en el momento de su creación, y deben ser guardados de forma que ninguna otra persona pueda acceder al sistema. A cada usuario se le asigna una zona propia de trabajo, su directorio propio (home directory), y un determinado intérprete de comando (una especie de COMMAND.COM). Incluso su propio archivo profile que, en lenguaje DOS viene a ser un AUTOEXEC.BAT propio. También se pueden asociar a varios usuarios en grupos de usuarios. Todos estos elementos se agrupan bajo el nombre de cuenta de usuario.

Los procesos y archivos a los que un usuario puede acceder están limitados por medio de los permisos. Un usuario puede permitir que otros usuarios tengan o no acceso a su información, o un acceso parcial (lectura, escritura, ejecución, etc. ). Por regla general, un usuario podrá moverse y mirar en casi todo el sistema pero sólo podrá trabajar en la zona que se le ha asignado.

De todo lo anterior se deduce que tiene que existir un usuario encargado de crear las cuentas del resto de los usuarios, asignar los permisos, claves, etc. A este usuario especial se le denomina superusuario (root). El superusuario es el todopoderoso sobre el sistema, tiene acceso a todo y puede hacer cualquier cosa. Entre otras cosas, se encarga del arranque y descarga del sistema, realización de copias de seguridad, etc.

LINUX tiene un excelente sistema de ficheros donde se almacena todo. Al conectarse, un usuario se encuentra en un determinado punto de la estructura llamado, directorio propio (home directory). Este directorio está “colgado” de otro directorio denominado generalmente home, y que tiene como nombre, generalmente, el identificador de usuario. Así, el directorio propio de un usuario cuyo identificador sea, por ejemplo, asi1, será /home/asi1.

Observa que la barra de directorio / es la contraria a la usada por el MS-DOS.

Introducción al Shell
Una vez registrado como usuario, se está abriendo una sesión. Durante esa sesión, Linux se sitúa en el directorio base de un usuario (home directory) y ejecuta un programa conocido como shell, que no es otra cosa que un un programa destinado a atender ordenes introducidas desde el terminal y traducidas como un conjunto de instrucciones internas.

El shell busca en el directorio de trabajo del usuario el archivo .bash_profile y lo ejecuta (personaliza el entorno de trabajo del usuario).

El shell tiene su propio entorno, formado por una serie de variables con unos valores determinados. Estas variables describen el entorno de ejecución del usuario, ya que son heredadas por él.

Varios tipos de programas pueden emplearse como shells, pero en casi todas las versiones de Linux existen diversos shells estándares disponibles.

 

  • El shell Bourne es el shell original de UNIX (desarrollado en los AT & T Bell Laboratories) y por tanto el más antiguo y, los demás tienen algunas particularidades de las que carece Bourne. Se encuentra en /bin/sh.
  • El shell C fue desarrollado en la Universidad de California en Berkeley como un shell más apropiado para programadores. Se ejecuta como /bin/csh. Su sintaxis es muy parecida al lenguaje de programación C. Esta es una de las razones por las que los guiones o scripts de shell escritos para el shell C no son ejecutables bajo los shell Bourne y Korn. Sin embargo, el shell C tiene algunas características como la edición de comandos, el historial y la creación de alias.
  • El shell Korn tiene todas las características del shell C pero emplea la sintaxis del Bourne. (ksh).
  • El shell por omisión de Linux es bash (derivado de Bourne Again Shell), el que está en /bin/bash y proporciona varias características mejoradas, como la edición de comandos, el historial de comandos y cómo completar comandos.
Sintaxis de las ordenes
Los comandos suelen llevar una serie de argumentos que modifican su comportamiento general. Las órdenes suelen tener tres partes diferenciadas: el comando, los modificadores y argumentos principales.
comando [-modificadores] [argumento(s)]
Muchos comandos representan en realidad la ejecución de un archivo del sistema, generalmente situado en el bajo el directorio /bin. También existen otros comandos, que no son archivos independientes; estos comandos están integrados en los propios shells (similar al command.com del MS-DOS). Por ejemplo, el comando cd (cambiar de directorio) está integrado en el shell y es ejecutado directamente por el intérprete de comandos sin tener que buscar un archivo.
$ pr –d nota
El comando pr se utiliza para imprimir ficheros. Esta orden indica que copie el fichero nota al terminal, pero algo significará el modificador (-d). En este caso, lo que significa es que la copia se realice a doble espacio, significado del modificador d. La ejecución varia según las características de los modificadores.
$ pr –n –d nota
$ pr –nd nota
Estos ejemplos, que son equivalentes, significan, además de lo anterior, que numere las líneas del fichero nota.
$ pr nota examen
Este ejemplo permite imprimir 2 ficheros, nota y examen. Así pueden existir múltiples combinaciones para ejecutar ordenes, que pueden tener 0 ó más argumentos. Esta última instrucción tiene 2 argumentos; la orden pr se le llama argumento cero, nota es el primer argumento y examen el segundo. Los argumentos deben ir separados por espacios en blanco.
Los argumentos normalmente son nombres de archivos o cadenas que dan instrucciones al comando. Si un argumento contiene un espacio en intercalado debe situarse la cadena entre comillas a fin de evitar que el shell piense que son dos argumentos y no uno.
$grep New York
Esta orden trata de buscar la palabra New en el fichero York. Si el objetivo consiste en encontrar la cadena “New York” debería escribirse:
$grep “New York”
y en ese caso la cadena New York se pasa al comando grep como un argumento.Expansión de la línea órdenes
Existe una técnica por la cual podemos hacer referencia a un grupo de archivos simultáneamente, utilizando los llamados caracteres comodines.Los comodines son caracteres mediante los que podemos simbolizar parte del nombre de un archivo haciendo referencia a más de uno al mismo tiempo. Los comodines * y ? del DOS funcionan de modo idéntico en LINUX. 
  • Con * podemos simbolizar parte de un nombre, o un nombre completo.
  • Con ? hacemos referencia a un sólo carácter, pudiendo repetirse tantas veces como caracteres queramos sustituir.
  • *arch Identifica cualquier archivo que acabe con arch, incluido arch.
  • arch* Identifica cualquier archivo que comience por arch, incluido arch.
  • *arch* Identifica cualquier archivo que contenga la cadena arch.
  • arch? Identifica cualquier archivo que comience por arch seguido de un carácter
Ejemplos utilizando el comando cat:
 
Visualiza todos los archivos del directorio
$cat *
Idem que empiecen por LE. Por ejemplo LE, LEI, LEEME
$cat LE*
Idem que contengan una letra seguida de ota. Por ejemplo nota, sota, rota. No visualizará el fichero ota.
$cat ?ota

Además tenemos la posibilidad de especificar rangos, para lo que dispondremos, entre corchetes, el rango de caracteres que deseemos utilizar.

Lista los ficheros de nombre fichl, fich2, …fich9

$ls fich[1-9]

Idem para fich1 y fich9

$ls fich[19]

Existen, pues, tres caracteres especiales que facilitan la expansión de una línea de comandos, llamados caracteres comodín y son:

*  utilizado para sustituir una cadena de 0 ó más caracteres.
?  para sustituir un carácter cualquiera.
[ ]  para sustituir un carácter por uno de los de la lista.

En una misma orden se puede incluir cualquier número y tipo de comodines, siendo afectados por la orden sólo aquellos archivos que cumplan con la plantilla.

Una orden ideal para ver en pantalla los archivos a los que afectaría una referencia compuesta por caracteres comodines es echo. Esta orden se utiliza para imprimir cualquier parámetro que se dé a continuación, pero en el caso de que contengan caracteres comodines se intentará buscar nombres de archivos existentes que los cumplan. Es aconsejable utilizar esta orden para ver los archivos que se verían afectados antes de ciertas operaciones, como la de borrado.

Veamos un ejemplo:

  • $ls archivo archivo1 archivo90 archivoa archivo3
  • $echo archivo* archivo archivo1 archivo90 archivoa archivo3
  • $echo archivo? archivo1 archivoa archivo3
  • $echo archivo[1a] archivo1 archivoa
  • $echo archivo[1-9] archivo1 archivo3
Para evitar la interpretación de los comodines:
El carácter de escape \ precediendo al comodín: $echo \ *
Encerrando la cadena entre comillas simples: $echo ‘No puedo ver $HOME ni * ’
Encerrando la cadena entre dobles comillas: se evita la interpretación de lo que aparece en su interior, menos el $: $echo “puedo ver $HOME, pero no * ”
Ejemplos:
$echo ABC‘\*’
$echo “El símbolo del prompt es \$PS1”

Algunos caracteres especiales:

\NNN código ascii
\\ Barra invertida “\”
\N nueva línea
\a Pítido
\r Retorno de carro
\t Tabulador




Nota: Para su representación con echo es necesario usar la sintaxis extendida (opción -e)

Truco: Una forma de escribir menos es utilizando la tecla de tabulación.
Por ejemplo: Si queremos teclear more directorio/larguisimo.soy/joselito una forma de hacerlo más corto sería: mor<tab>direc<tab>larg<tab>jos<tab>
Tal y como va encontrado ocurrencias que sean identificables de forma única, irá escribiendo en pantalla. Si encuentra más de una ocurrencia que puede darse no escribe y al volver a pulsar <tab> saca la lista de posibilidades.

CONTENIDO PATROCINADO POR

FPla Informatica

Diseño web y Marketing digital
Disponga de una página web o un comercio electrónico de alta calidad a precios muy competitivos.
ACCEDER A FPLA INFORMATICA
close-link