Aprende UNIX en 10 minutos


UNIX es uno de los sistemas operativos más importantes en la historia de la computación. ver Historia de UNIX®

UNIX como sistema operativo, quiere decir, una colección de programas que ejecutan otros programas en una computadora. UNIX nació en los Laboratorios Bell de AT&T en 1969, desarrollado por Ken Thompson y Dennis Ritchie (también creador del lenguaje de programación C).

Este documento fue creado por C R Johnson con el proposito y la intensión de tener una página con los comandos básicos para usar el shell de UNIX para sus alumnos.

Este documento tiene derechos de autor pero se puede redistribuir libremente según los términos de la GFDL.

Traduccion realizada por MaSt - Internet 1.0


Secciones: [Selecciona cada una para dirigirte a la sección]

1. Directorios:
2. Moviendo a través del sistema:
3. Listado del contenido de directorios:
4. Cambiar permisos y atributos de archivos:
5. Mover, renombrar, y copiar archivos:
6. Ver y editar archivos:
7. Shells:
8. Variables de entorno:
9. Historia interactiva:
10. Completar nombre de archivo:
11. Bash es un shell super cool:
12. Redirección:
13. Procesos conectados - Pipes:
14. Sustitución de comandos:
15. Buscando cadenas en archivos: El comando "grep"
16. Buscando archivos : El comando "find"
17. Leer y escribir, backups, y archivos: El comando "tar"
18. Compresión de archivos: "compress", "gzip" y "bzip2"
19. Buscar ayuda: El comando"man" y "apropos"
20. Básicos del editor "vi"
21. FAQs


Comandos UNIX básicos (shell) : Ultima revisión May/17/2001 


1. Directorios:

Las rutas de archivos y directorios en UNIX usan la barra 
diagonal "/" para separar los nombres de directorio en una
ruta. ejemplos: / carpeta "root" /usr carpeta usr (sub-carpeta de / "root") /usr/STRIM100 STRIM100 es un sub-carpetao de /usr

2. Moviendo a través del sistema:

pwd               Muestra el "directorio de trabajo actual", 
o el directorio actual. cd Cambia el directorio actual a su directorio
HOME. cd /usr/STRIM100 Cambia el directorio actual a: /usr/STRIM100 cd INIT Cambia el directorio actual a INIT, que es
un subdirectorio del actual directorio. cd .. Cambia el directorio actual al directorio
principal. cd $STRMWORK Cambiar el directorio actual al directorio
definido por el entorno. variable 'STRMWORK' cd ~bob Cambie el directorio actual al directorio de
inicio del usuario bob (si tiene permiso).

3. Listado del contenido de directorios:

ls       Lista del directorio
ls -l    Lista de directorio larga (formato detallada)

   Por ejemplo:

$ ls -l drwxr-xr-x 4 cliff user 1024 Jun 18 09:40 WAITRON_EARNINGS -rw-r--r-- 1 cliff user 7692 Jun 6 14:28 scanlib.tar.gz ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ | | | | | | | | | | | | | | | | owner group size date time name | | | | number of links to file or directory contents | | | permissions for world | | permissions for members of group | permissions for owner of file: r = read, w = write,
x = execute -=no permission type of file: - = normal file, d=directory, l = symbolic link
and others ls -a Lista del directorio actual incluye archivos
ocultos. Archivos ocultos empiezan con "." ls -ld * Lista de todos los nombre de archivo y directorios
en el directorio actual usando el formato largo.
Sin la opcion "d" ls manda una lista de cualquier
sub-directorio del actual. Con la opcion "d" ls
manda una lista como archivos.

4. Cambiar permisos y atributos de archivos:

chmod 755 file       cambia los permisos del archivo rwx para 
el owner, y rx para el group y el world.
(7= rwx =111 binary. 5= r-x =101 binary) chgrp user file cambia permisos de archivo para pertenecer
al group user. chown cliff file cambia permisos para que cliff sea owner
del archivo. chown -R cliff dir cambia permisos para que cliff sea owner
del dir y todo lo que contiene. tienes que ser el owner del file/directory o ser root antes de
poder aplicar cualquier cambio.

5. Mover, renombrar, y copiar archivos:

cp file1 file2          copiar un archivo
mv file1 newname        mover o renombrar archivo
mv file1 ~/AAA/         mover archivo a un sub-directory AAA en 
tu directorio home. rm file1 [file2 ...] romover o borrar archivo rm -r dir1 [dir2...] borrar un directorio y su contenido
TEN CUIDADO! mkdir dir1 [dir2...] Crear directorio mkdir -p dirpath crear directorio dirpath, Incluyendo
todos los directorios implícitos en la
ruta. rmdir dir1 [dir2...] remover un directorio vacio

6. Ver y editar archivos:

cat filename      Volcar un archivo a la pantalla en ascii. 
more filename     leer progresivamente archivo en la pantalla 
ENTER = una línea hacia abajo
                  Barra espaciadora = página abajo q = salir less filename como more, pero también puedes usar Page-Up.
No en todos los sistemas. vi filename Editar un archivo usando el editor vi.
Todos los sistemas UNIX tienen vi emacs filename Editar un archivo utilizando el editor de
emacs. No todos los sistemas tendrán emacs. head filename Muestra las primeras líneas de un archivo. head -n filename Mostrar las primeras n líneas de un archivo. tail filename Muestra las últimas líneas de un archivo. tail -n filename Muestra las últimas n líneas de un archivo.

7. Shells:

El comportamiento de la interfaz de línea de comandos variará 
ligeramente dependiendo de el programa shell que se está
utilizando. Dependiendo del shell utilizado, algunos comportamientos
adicionales pueden ser bastante ingeniosos. Puede averiguar qué shell está utilizando con el comando: echo $SHELL Por supuesto, puede crear un archivo con una lista de comandos
de shell y ejecutarlo como un programa para realizar una tarea.
Esto se llama un script de shell. Esto es, de hecho, el
propósito principal de la mayoría de los shells, no el
comportamiento de la línea de comandos interactiva.

8. Variables de entorno:

Puedes enseñarle a tu shell a recordar cosas para luego usar 
variables de entorno. Por ejemplo, bajo el shell bash: export CASROOT=/usr/local/CAS3.0
Define la variable CASROOT con el valor: /usr/local/CAS3.0.
export LD_LIBRARY_PATH=$CASROOT/Linux/lib
Define la variable LD_LIBRARY_PATH con el valor de CASROOT con:
/ Linux / lib anexado, o /usr/local/CAS3.0/Linux/lib Al prefijar $ al nombre de la variable, puede evaluarlo en
cualquier comando:
cd $CASROOT
Cambia tu directorio de trabajo actual al valor de CASROOT echo $CASROOT
Imprime el valor de CASROOT, o /usr/local/CAS3.0
printenv CASROOT
Hace lo mismo en el bash y algunas otros shells.

9. Historia interactiva:

Una característica de bash y tcsh (y algunas otras versiones) 
donde puedes usar las teclas de flecha arriba para acceder a
sus comandos anteriores, editarlos, y volverlos a ejecutar.

10. Completar nombre de archivo:

Una característica de bash y tcsh (y posiblemente otras) puede 
usar la Tecla TAB para completar un nombre de archivo
parcialmente escrito. Por ejemplo si tienes un archivo llamado
constantine-monks-and-willy-wonka.txt en su directorio y desea
editarlo, puede escribir 'vi const', presionar la tecla TAB,
y el shell completará el resto del nombre por usted (siempre
que la parte final sea única).

11. Bash es un shell super cool:

Bash incluso completará el nombre de los comandos y las 
variables de entorno y si hay varias finalizaciones y presionas
TAB dos veces, bash mostrará todas las terminaciones posibles.
Bash es el shell de usuario predeterminado para la mayoría de
los sistemas Linux.

12. Redirección:

grep string filename > newfile           
Redirige la salida del comando grep a un archivo 'newfile'
grep string filename >> existfile
Anexa la salida del comando grep hasta el final de 'existfile' Las directivas de redirección > y >> se pueden usar en la
salida de la mayoría de los comandos para dirigir su salida a
un archivo.

13. Procesos conectados - Pipes:

El símbolo del pipe "|" se utiliza para dirigir la salida de 
un comando a la entrada de otro. Por ejemplo: ls -l | more
Este comando toma la salida del comando de lista de directorios
de formato largo "ls -l" y lo manda a través del comando more
(también conocido como filtro). En este caso, se puede ver una
lista muy larga de archivos por página. du -sc * | sort -n | tail
El comando "du -sc" enumera los tamaños de todos los archivos y
directorios en el directorio de trabajo actual que se canaliza
a través de "sort -n" que ordena el salida de menor a mayor
tamaño. Finalmente, esa salida se canaliza a través de "tail"
que muestra solo los últimos resultados (que resultan ser los
más grandes).

14. Sustitución de comandos:

Puedes utilizar la salida de un comando como una entrada para 
otro comando de otra manera llamada sustitución de mando.
La sustitución de comandos se invoca cuando se encierra el
comando sustituido en comillas simples al revés.

Por ejemplo: cat `find . -name aaa.txt` Lo que hace cat: volcará a la pantalla todos los archivos
llamados aaa.txt que existen en el directorio actual o en
cualquier árbol de subdirectorios.

15. Buscando cadenas en archivos: El comando "grep":

grep string filename    
Imprime todas las líneas en un archivo que contiene la cadena.

16. Buscando archivos : El comando "find":

find search_path -name filename 

find . -name aaa.txt    
Encuentra todos los archivos nombrados aaa.txt en el directorio
actual o Cualquier árbol de subdirectorio.
find / -name vimrc
Encuentra todos los archivos llamados 'vimrc' en cualquier parte
del sistema.
find /usr/local/games -name "*xpilot*" Encuentre todos los archivos cuyos nombres contengan la cadena
'xpilot' que existe dentro del árbol de directorios
'/ usr / local / games'.

17. Leer y escribir, backups, y archivos: El comando "tar":

El comando tar significa "Tape ARchiver". Es la forma estándar
de leer y escribir archivos (colecciones de archivos y árboles
de directorios completos).
A menudo encontrarás archivos de cosas con nombres como:
stuff.tar o stuff.tar.gz. Este ultimo comprimido usando el
programa de compresión gzip. Lo más probable es que si alguien le entrega una cinta escrita
en un sistema UNIX, estará en formato tar y usarás tar (y tu
unidad de cinta) para leerlo. Del mismo modo, si desea escribir una cinta para entregar a
otra persona, probablemente debería usar tar también. Ejemplos tar: tar xv Extrae archivos (x) de la unidad de cinta
predeterminada mientras se enumera (v = detallado)
            Los nombres de los archivos a la pantalla. tar tv Enumera los archivos del dispositivo de cinta
predeterminado sin extraerlos. tar cv file1 file2 Escribe los archivos 'archivo1' y 'archivo2' en el
dispositivo de cinta predeterminado. tar cvf archive.tar file1 [file2...] Crea un archivo tar como un archivo "archive.tar"
que contenga file1, file2, etc. tar xvf archive.tar extraer del archivo comprimido tar cvfz archive.tar.gz dname Crea un archivo comprimido gzip que contenga todo
en el directorio. 'dname'. Esto no funciona con
todas las versiones de tar. tar xvfz archive.tar.gz Extraer un archivo comprimido gzip comprimido.
No funciona con todas las versiones de tar. tar cvfI archive.tar.bz2 dname Crear un archivo tar comprimido bz2. No funciona
con todas las versiones de tar.

18. Compresión de archivos: "compress", "gzip" y "bzip2":

Los comandos de compresión estándar de UNIX son comprimir 
y descomprimir. Los archivos comprimidos tienen un sufijo .Z
agregado a su nombre. Por ejemplo: compress part.igs Crea un archivo comprimido part.igs.Z uncompress part.igs Descomprimir part.igs del archivo
comprimido part.igs.Z. Note: el .Z no es requerido. Otra utilidad de compresión común es gzip (y gunzip). Estas
son las utilidades comprimidos y descomprimir GNU. gzip
generalmente da mejor compresión que el estándar, pero no
puede ser instalado en todos los sistemas. El sufijo para
archivos comprimidos es .gz gzip part.igs Crea un archivo comprimido part.igs.gz gunzip part.igs Extrae el archivo original de part.igs.gz La utilidad bzip2 tiene (en general) una compresión incluso
mejor que gzip, pero a un costo mayor los tiempos para
comprimir y descomprimir los archivos. No es una utilidad
tan común como gzip, pero cada vez se usa mas. bzip2 part.igs Comprime un archivo iges part.igs.bz2 bunzip2 part.igs.bz2 Extrae un archivo iges.

19. Buscar ayuda: El comando "man" y "apropos":

La mayoría de los comandos tienen una página de manual que
a veces es útil, con algunas descripciones detalladas de su
uso. Ejemplo: man ls Muestra la pagina de manual del comando "ls" puedes buscar en las paginas man usando apropos Ejemplo: apropos build Muestra una lista de todas las páginas man
cuyas descripciones contienen la palabra
"construir" ejecutar man apropos para detalle de la ayuda de apropos.

20. Básicos del editor "vi":

                Abrir un archivo
vi filename

                Crear texto 
Modos para editar: Estas teclas entran en los modos de 
edición y escriben el texto de su documento. i Insertar antes de la posición del cursor I Insertar al comienzo de la línea actual a Añadir despues de la posicion del cursor A A;adir al final de la linea r Sustituir 1 caracter R Sustituir modo <ESC> Terminar insertar o modo sobreescribir Borrar texto x Borra un solo caracter dd Eliminar línea actual y poner en búfer ndd Borra n lineas (n es un numero) y poner en bufer J Adjunta la siguiente línea al final de la línea actual
(elimina el retorno de carro). Oops u Deshacer el último comando Cortar y pegar yy Tirar la línea actual en el búfer nyy Tirar n liness al buffer p Poner el contenido del buffer después de la línea actual P Poner el contenido del buffer antes de la línea actual
posicionamiento del cursor ^d Siguiente pagina ^u Pagina anterior :n Posicionar cursor en linea n :$ Posicionar cursor al final de la linea ^g Mostrar el numero de la linea actual h,j,k,l Left,Down,Up, and Right respectivamente. Sus teclas de
flecha también deberían funcionar si sus asignaciones de
teclado están bien configurados. Substitucion de cadena :n1,n2:s/string1/string2/[g]
Sustituye cadena2 por cadena1 en líneas n1 a n2.
Si se incluye g (es decir, global), todas las instancias de
string1 en cada línea están sustituidos. Si g no está
incluido, Sólo la primera instancia por línea coincidente
es sustituido. ^ coincide con el inicio de línea . coincide con cualquier carácter individual $ coincide con el final de línea Estos y otros "caracteres especiales" (como la barra diagonal)
pueden "escaped" con \ es decir, para que coincida con la
cadena "/usr/STRIM100/SOFT" diga "\/usr\/STRIM100\/SOFT" Ejemplos: :1,$:s/dog/cat/g
Sustituye 'gato' por 'perro', cada instancia para el archivo
completo - líneas 1 a $ (final del archivo) :23,25:/frog/bird/
Sustituye 'ave' por 'rana' en las líneas 23 a 25. Solo la
primera instancia en cada línea se sustituye. Guardando y saliendo y otros comandos "ex" Todos estos comandos tienen el prefijo presionando los dos
puntos (:) y luego se ingresan en la parte inferior esquina
izquierda de la ventana. Se llaman comandos "ex" porque son
comandos del editor de texto ex - el editor de la línea
precursora del editor de pantalla vi. No puedes ingresar un
comando "ex" cuando estás en un modo de edición (escribiendo
texto en la pantalla)
Presione <ESC> para salir de un modo de edición.
:w Guarda el archivo actual. :w new.file Guarda el archivo con el nombre 'new.file' :w! existing.file
Sobrescribe un archivo existente con el archivo que se está
editando actualmente. :wq Guarda el archivo y salir. :q Salir. :q! Salir sin guardar cambios. :e filename Abre el archivo 'filename' para editar. :set number Activa la numeración de líneas. :set nonumber Desactiva la numeración de líneas.

21. FAQs

Las preguntas frecuentes de USENET deben ser el primer lugar 
donde busque una respuesta a preguntas específicas.
Puedes encontrar la mayoría de ellos en RTFM El contenido de este directorio incluye vi, bash, y
comp.unix.questions FAQs. Buscar archivos en USENETS es muy util tambien. google.com tiene un Archivo USENET (antes Deja.com's) . Copyright (c) 2000-2006 Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo. Se otorga permiso para copiar, distribuir y/o modificar
este documento bajo los términos de la Licencia de
Documentación Libre de GNU, Versión 1.1 o cualquier versión
posterior publicada por la Free Software Foundation; con la
sección Invariante: Prefacio, con textos de portada y sin
Contraportada Textos. Se puede encontrar una copia de la
licencia en el sitio web de GNU Aqui.

OTROS LINKS INTERESANTES