Imprimir
Categoría: Unix

Si estás comenzando a utilizar este sistema operativo te será muy útil este tutorial. Hemos puesto al final de esta guía una referencia rápida de comandos básicos para comenzar a trabajar en Unix. Tenemos otros tutoriales para comandos más especializados de funciones de Unix como tar, gzip etc., o el Tutorial intermedio de Unix , además te recomendamos el Tutorial de Vi , el editor de texto de Unix.

Primeros comandos Unix

Cuando utilizamos la línea de comandos en Unix, es necesario que sepamos algunas características importantes del manejo de carpetas y archivos.

En Unix para navegar en el arbol de directorios se utiliza la diagonal / seguramente has notado que en Windows se utiliza la diagonal invertida \, y el primer directorio en unix es conocido como el directorio raíz, denotado por la diagonal / y bajo ese directorio está todo el sistema de archivos y dispositivos de Unix.

Antes de entrar a un servidor Unix debes tener tu nombre de usuario (username) y contraseña (password) con el cual te identificarás durante la sesión de trabajo.

Los nombres de usuario están asignados a un grupo de trabajo específico. Todos los nombres de usuario pertenecen a por lo menos un grupo de trabajo pero podría tener más de uno.

Si ya estás en sesión y quieres saber tu nombre de usuario y tu grupo de trabajo utiliza el siguiente comando

id Te muestra el nombre de usuario y el grupo de trabajo al que perteneces con ese nombre de usuario. Además te muestra dos número uid y gid que son los identificadores númericos del usuario y del grupo respectivamente.

Veamos las instrucciones básicas para ubicarnos en el sistema de archivos de Unix.

pwd

Un comando sencillo para empezar, pero muy útil, despliega la ruta absoluta del directorio en el que nos encontramos. (Más adelante explicamos que es una ruta absoluta y una ruta relativa.)

ls

Este comando nos permite obtener una lista de los archivos del directorio en el que estamos. Se puede utilizar solo escribiendo ls o con parámetros de los cuales, entre los más utilizados están

ls –a Nos muestra todos los archivos, incluyendo los ocultos

Los archivos ocultos en Unix comienzan con un punto, es decir si tienes un archivo que se llame .archivo con una instrucción ls sin parámetros no lo listaría, pero con el comando ls –a si lo despliega.

Habrás notado que la utilizar el comando ls –a despliega al principio dos directorios uno denominado por un punto . y el otro tan sólo por dos puntos ..

El directorio punto . hace referencia al directorio en el que estás ubicado y el directorio doble punto .. hace referencia al directorio superior al que te encuentras. Son utilizados para determinar rutas relativas.

ls -l Muestra los atributos de lo archivos, en este orden permitiéndonos ver los permisos, el creador del archivo, el grupo al que pertenece, el tamaño, fecha de modificación y nombre del archivo.

También puedes combinar los parámetros para tener la lista completa de archivos incluyendo los ocultos y además en un formalo largo. Se utiliza el comando: ls -la

Diferencia entre una dirección absoluta y relativa en Unix

Una dirección absoluta, nos muestra la ubicación de un directorio con respecto al directorio raíz (/), por ejemplo:
/usr/local/bin

Una dirección relativa, nos muestra la ubicación con respecto al directorio en el que estamos por ejemplo si estamos en el directorio /usr/local/apache la dirección del mismo directorio del ejemplo anterior sería de esta forma:
../bin

Para distinguir una de otra ten en cuenta que siempre una ruta absluta comienza con la diagonal / y una ruta relativa nunca comienza con /

Moviéndonos entre el sistema de archivos

Se uiliza el comando cd para cambiarnos entre directorios y es aquí una de las utilidades entre las rutas absoluta y las rutas relativas. La sintaxis es cd [carpeta]

Si te estás preguntando por que el parámetro es opcional esta es la respuesta: si utilizas cd sin ningún parámetro te lleva a tu directorio HOME el cual es el directorio al que entras por default al iniciar una sesión.

Un ejemplo del uso del comando cd: Si estuvieras en la carpeta /usr/local/apache y te quisieras mover a la carpeta /usr/local/lib tendrías estas dos opciones:

cd /usr/local/lib (utilizando ruta absoluta)

cd ../lib (utlizando ruta relativa)


Permisos de archivos

Saber que permisos tiene un archivo o directorio

Como ya comentamos, al utilizar la instrucción ls –a la primera columna te mostrará los permisos del archivo o carpeta pero que significa cada letra que aparece.

La columna de permisos de archivos, esta denotada por 10 caracteres que nos muestran la información al respecto de la siguiente manera:

drwxr-xr-x

El primero nos muestra información sobre el archivo o carpeta que señalar, una d significa que es un directorio, l significa que es un archivo con un link y un significa que es un archivo.

Los siguientes 9 caracteres son 3 grupos que indican los permisos para el dueño del archivo (owner) la primera serie, para el grupo la segunda serie y para los demás usuarios la tercera serie. Cada serie esta compuesta de tres caracteres que pueden ser rwx lo cual significa permisos de lectura (read), escritura (write) y ejecución (execution). Por ejemplo

drwxr-xr-x 7 mysql mysql 512 jun 25 14:01 mysql-test

Por el primer caracter sabemos que mysql-test es un directorio

  • Por los caracteres 2,3 y 4 (primera serie de 3) sabemos que el propietario del archivo tiene permisos de lectura (r), escritura (w) y ejecución (x)
  • Por los caracteres 5,6 y 7 (segunda serie) que los miembros del grupo tienen permisos de lectura (r) y ejecución (x), pero no de escritura.
  • Por los caracteres 8,9 y 10 (tercera serie) que los demás usuarios tienen permisos de lectura (r) y ejecución (x), pero no de escritura.

Cambiando los permisos

Para cambiar los permisos de un archivo o directorio en Unix, utilizamos el comando chmod con la sintaxis:

chmod [-fR] archivo

-f sirve para que realice los cambios sin dar ninguna advertencia

-R para que sera recursivo, es decir si se aplica sobre un directorio los cambios también aplicarán a todos lo archivos y subdirectorios dentro de él

indica los permisos que tendrá el archivo y se especifica mediante 3 números producto de una conversion de binario a decimal donde el primer dígito indicara los permisos para el usuario, el segundo para el grupo y el tercero para todos los usuarios. La conversión se hace de la siguiente forma:

Definimos los permisos que queremos poner al archivo, por ejemplo rwxrwxr-x y a cada letra le asignamos el número 1 y a cada - el número 0 en notación binaria.

rwxrwxr-x sería:

111111101 pero dividido en los tres grupos quedaría 111 111 101 y la conversión de cada grupo a número decimal sería como sigue:

111 en binario = 7 en decimal

101 en binario = 5 en decimal

por lo tanto el modo sería 775

Otro ejemplo para poner los permisos rwxr-xr-- ¿podrías hacer el ejercicio?

Respuesta: El código binario quedaría 111101100 entonces cada grupo sería 111 101 100 y la conversión:

111 en binario = 7 en decimal

101 en binario = 5 en decimal

100 en binario = 4 en decimal

entonces el modo sería 754.

Practica ahora la forma inversa. Si un archivo tiene permisos 664 ¿que permisos tendría el usuario, cuales el grupo y cuales todos los demás usuarios? La respuesta esta al final de está página.

Cambiando propietario y grupo del archivo

Se utilizan los comandos chown y chgrp aunque realmente con el chown podrías cambiar los dos al mismo tiempo y la sintaxis es como sigue:

chown [-fhR] propietario[:grupo] archivo

chgrp [-fhR] grupo archivo

Las opciones -f y -R funcionan de manera similar a las del comando chmod. La opción -h cambia el propietario (o grupo) del archivo si es una liga simbólica (recuerda que esto lo sabemos si el primer caracter es una l. Ver explicación del comando ls -l) Por ejemplo el siguiente comando cambia el propietario del achivo practica.txt para que sea el usuario jorge

chmod jorge practica.txt


Respuesta a la pregunta: Si un archivo tiene permisos 664 ¿que permisos tendría el usuario, cuales el grupo y cuales todos los demás usuarios? La respuesta esta al final de está página.

 

El primer 6 es para permisos del propietario, el segundo para permisos del grupo y el 4 para todos los demás usuarios entonces, haciendo la conversión de decimal a binario:

6 en decimal = 110 en binario

4 en decimal = 100 en binario

Por lo tanto del código binario de los permisos quedaría 110110100 y llevándolo a las letras de los permisos seria rw-rw-r-- los permisos sería lectura y escritura para el propietario y para el grupo y solo lectura para los demás usuarios.


Manejo de archivos

Copiar archivos

Para copiar archivos utilizamos el comando cp con la sintaxis cp f1 f2 ... fn destino

Donde f1 f2 ... fn son los archivos que vamos a copiar y destino es donde van a quedar los archivos

Para duplicar un archivo sería cp f1 f2 donde f1 es el archivo origen y f2 el nombre que dejará la archivo.

Este comando no elimina el archivo origen.

Copiar carpetas

Para copiar (duplicar) una carpeta con todo su contenido podemos utilizar el comando cd pero con el parámetro -r

Mover archivos

Se utiliza el comando mv con una sintaxis similar a la de cp con la diferencia que este comando elimina el archivo original. Este comando es útil también para cambiar un archivo o carpeta de nombre.

Borrar archivos

El borrado de archivos se realiza mediante el comando rm y podemos utiliza el parámetro -R para borrar un directorio y todo su contenido.

Ten cuidado con este comando por que una instrucción como rm -R * borraría todo lo que hay en la carpeta donde te encuentres.

Otra opción para borrar un directorio es con el comando rmdir y dándole como parámetro el directorio que queremos borrar.

Ligas simbólicas

Las ligas de archivos se podría decir que es algo similar a los accesos directos de Windows (claro, hablando muy someramente), son muy útiles cuando por alguna razón queremos que un archivo (o directorio) sea accesible desde algún otro otro directorio, entonces utilizaremos al función:

ln -f f1 f2 Donde -f va a hacer que se haga la liga sin enviar ningún mensaje de advertencia f1 es el archivo original y f2 el que se creará ligado al original. La mejor forma de entender esto es haciendo un ejercicio. Hagamos lo siguiente en nuestra carpeta:

mkdir pruebaliga

cd pruebaliga

ln -f [archivo_en_otra_carpeta] .

Aquí lo que pasará es que el [archivo_en_otra_carpeta] también estará en la carpeta . Es decir, en la carpeta pruebaliga y al hacer ls -l notaremos que el primer caracter que aparece será una l indicandonos que este archivo esta ligado.


Referencia de comandos

Hemos incluído en esta sección una tarjeta de referencia rápida de las funciones y comandos que durante este tutorial se ha mostrado su sintaxis más común. Si deseas más información sobre algún comando utiliza el comando man [comando] el cual te mostrará una información mucho más detallada de cada comando que escribas como parámetro. Ejemplo de uso:

man ls Te mostrará información detallada del uso, sintaxis y parámetros que puedes utilizar con el comando ls.

Comando Parámetros Función
id   Muestra el nombre de usuario y el grupo de trabajo al que pertenece.
pwd   Despliega la dirección absoluta del directorio en el que nos encontramos.
ls   Lista los archivos y directorios.
  -a Muestra todos los archivos y directorios incluyendo los ocultos.
  -l Descripción larga de los archivos, mostrando sus propiedades.
  -R De modo recursivo lista todos los subdirectorios
cd   Cambio de directorio, al que se especifique com o parámetros ya sea en ruta absoluta o relativa.
chmod   Cambia los permisos de un archivo o directorio.
chown   Cambia el propietario de un archivo o directorio.
chgrp   Cambia el grupo de un archivo o directorio.
cp   Copia un archivo o directorio.
mv   Mueve (o renombra) un archivo o directorio.
rm   Borra un archivo.
ln   Genera una liga simbólica a un archivo o directorio.
man [comando] Muestra la documentación del [comando]