Post on 25-Dec-2015
1
Intérprete de comandos de la
shell
Ing. Jesús Bernardo Olavarria Paz
Taller de Computación e Informática Básica
Linux
3
Porqué utilizar un intérprete de comandos de la shell
• Los entornos gráficos para Linux han evolucionado mucho en losúltimos años. Se puede trabajar utilizando el sistema X Windows y
solamente tener que abrir el intérprete de comandos para completar
unas pocas tareas.
• Sin embargo es recomendable aprender como trabajar desde el
intérprete de comandos de la shell, porque usar los comandosmediante el intérprete de comandos de la shell puede ser muy
rápido que el entorno gráfico (GUI). En el tiempo puede tardar en
abrir el gestor de ficheros en GNOME ó KDE, buscar el directorio,crear o modificar ficheros, utilizando la shell, podría haber acabado
con varios comandos desde la shell.
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Porqué utilizar un intérprete de comandos de la shell (continúa)
• Un intérprete de comandos se parece a una pantalla MS-DOS. Losusuarios escriben comandos en un intérprete de comandos, la shell
los interpreta y después le dice al sistema operativo lo que tiene que
hacer. Los usuarios experimentados pueden escribir scripts de lashell para aumentar sus capacidades.
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Historia de la shell
• En los tiempos en los que Dennis Ritchie y Ken Thompson de AT&Tdiseñaban UNIX
TM
, quisieron crear un medio para que las personas
interactuaran con el sistema.
• Los sistemas de entonces venían con intérpretes de comandos, que
aceptaban comandos de los usuarios y los interpretaban para que
los utilizara la máquina.
• Pero Ritchie y Thompson querían más, algo que ofreciera más que
los intérpretes de comandos del momento. Así nació la Bourne shell(conocida como sh), creada por S.R. Bourne. Desde la creación de
la shell de Bourne se han desarrollado otras shells, tales como la Cshell (csh) y la Korn shell (ksh).
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Historia de la shell (continúa)
• Cuando la Free Software Foundation buscaba una shell sin patentes, los desarrolladores empezaron a trabajar en el lenguaje
de la Bourne shell y en características de otras shells del momento.
• El resultado fué la Bourne Again Shell o bash. Aunque su sistema Red Hat Linux tenga diferentes shells, bash es la shell
predeterminada. Se puede aprender algo más sobre bash leyendo
su página man bash (escriba man bash en el intérprete de
comandos).
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: cd (Change directory)
• Cambia el directorio actual de trabajo.
Ing. Jesús Bernardo Olavarria Paz
Comando Función
cd vuelve a su directorio de login
cd ~ vuelve también a su directorio de login
cd / le lleva al directorio raíz del sistema completo
cd /root le lleva al directorio principal del root, o superusuario, cuenta creada en la
instalación; debe ser el usuario root para accesar este directorio.
cd /home lo lleva a su directorio principal, donde los directorios login de usuario son
almacenados
cd .. le traslada a un directorio superior
cd ~otheruser le lleva al directorio login del usuario otheruser, si otheruser le ha dado
permiso
cd /dir1/subdirfoo sin tener en cuenta en que directorio est·, este recorrido absoluto le llevará
directamente a subdirfoo, un subdirectorio de dir1
cd ../../dir3/dir2 este recorrido relativo lo llevará dos directorios más arriba, luego a dir3,
luego al directorio dir2.
Intérprete de comandos de la shell
2
Comando: pwd (Path to working directory)
Muestra el nombre y ruta de acceso del directorio de trabajo actual.
• Para determinar la ubicación exacta de su directorio actual, vaya a unintérprete de comandos de la shell y escriba el siguiente comando: pwd.
– Verá algo como lo siguiente:
/home/sam
• Este ejemplo le indica que está en el directorio sam, que está dentro de suescritorio principal /home.
• El comando pwd viene de 'print working directory', (mostrar el directorioactual). Cuando usted escribe pwd, le est· preguntando a su sistema Linuxque le muestre su ubicación actual. Su sistema le responde imprimiendo laruta completa del directorio actual en el intérprete de comandos, en elmonitor. Esta impresión también se conoce como salida estándar de datosy se puede imprimir al shell o redirigirse a otros programas o a otrosdispositivos de salida, tales como impresoras.
• Usar· pwd a menudo. Es muy útil cuando está navegando su sistema RedHat Linux.
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: ls (List)
• Muestra una lista de archivos en el directorio actual.
Ing. Jesús Bernardo Olavarria Paz
Comando Función
ls -l Proporciona información más detallada, incluyendo el tamaño de los archivos, las modalidades de acceso y protección, tamaños, fechas de creación.
ls -F Muestra indicando los tipos de contenido: directorio (se identifican con /), archivos ejecutables (se identifican con *), y enlaces (se identifican con @). <archi> puede ser un nombre de archivo o una expresión con
caracteres de sustitución.
ls -a Muestra también los archivos de nombres comenzando con punto generalmente archivos de configuración. (No los modifique sin enterarse de su significado).
ls -r Inverso (en inglés “reverse”). Lista los contenidos del directorio desde el final hasta el inicio.
ls -R Recursive. La opción recursive lista los contenidos de todos los directorios (bajo el directorio actual).
ls -S Tamaño (en inglés “size”). Clasifica los archivos por su tamaño.
ls -Fa Muestra con tipos de archivos incluyendo los archivos con punto inicial.
ls -al Listado con atributos y archivos ocultos
Intérprete de comandos de la shell
Comando: touch
• Crea o actualiza archivo.
touch <archivo>
Ejemplo:
[root@server root]# touch /tmp/prueba.txt
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: vi (Visual Editor)
• Llama al editor visual, para trabajar con el archivo de texto arch.
vi <archivo>
Ejemplo:
[root@server root]# vi /tmp/prueba.txt
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: cat
• Red Hat Linux posee una utilidad que le puede ayudar a guardar listas
cortas, agruparlas juntas y hasta mostrarle información sobre su sistema.
• Esta utilidad se llama cat, diminutivo de concatenate, que signica combinar
o concatenar archivos.
• El comando cat visualizar· también los contenidos de un archivo entero enla pantalla (por ejemplo, teclee cat filename.txt). Si un archivo es bastantelargo, se deplaza rápidamente y por completo por la pantalla. Para evitaresto, use el comando cat filename.txt | less.
• El uso de tuberias (|) y del comando less juntos, le permite visualizar el
archivo página a página.
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: cat (continúa)
• Para redirigir la salida cat a un archivo, escriba lo siguiente en el intérprete de comandos (si presiona la tecla [Intro] lo llevará a la
siguiente línea en blanco):
cat > prueba.txt
Ejemplo:
[root@server root]# cat prueba.txt
[root@server root]# cat > prueba.txt
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
3
Tuberías y paginadores
• En el mundo linux, las tuberias (también conocidas como pipes) relacionanla salida estándar de un comando con la entrada estándar de otrocomando.
[root@server root]# ls –al /etc | less
• De esta manera verá el contenido de /etc en una pantalla a la vez. Paraacceder a la pantalla siguiente, pulse [Barra espaciadora]; para volver a lapantalla anterior, pulse [B]; para salir, presione [Q]. También puede usar lasflechas direccionales para navegar con less. Para buscar palabras dentrode un archivo de texto usando less, presione [/] y luego escriba la palabraque quiere buscar. Por ejemplo:
# /Linux
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: grep
• El comando grep es útil para encontrar una cadena de caracteresespecíficas en un archivo. Por ejemplo, si quiere encontrar cada
referencia que se haya hecho a “java” en el archivo taller.txt,
debería escribir.
Ejemplo
[root@server root]# grep java taller.txt
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: find
• Busca los archivos que satisfacen la condición señalada a partir del directorio indicado.
find <directorio><condicion>
Ejemplo
[root@server root]# find /etc/ –name samba -print
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comodines y expresiones regulares
• Mediante el uso de caracteres de sustitución o expresiones regulares,
puede ejecutar acciones en un archivo o archivo sin saber el nombre dearchivo completo. Rellene lo que sabe y sustituya lo restante con uncomodín.
• Los comodines son símbolos especiales que puede usar para sustituirletras, números y símbolos lo que permite encontrar directorios y archivo
más fácil que leer listados largos para encontrar lo que está buscando.
Ejemplo: Sabemos que se llama “tal__.txt” teclee:
[root@server root]# ls tal*.txt
[root@server root]# ls *.txt
[root@server root]# ls ta*
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comodines y expresiones regulares
• Cuando un asterisco forma parte de un nombre de archivo, como puede serel caso del archivo taller.txt si se llamara talle*txt es el momento de usarexpresiones regulares.
• Utilizando el símbolo (\), puede especificar que no desea buscar todomediante el uso de asterisco, sino que desea buscar un archivo con unasterisco en el nombre.
• Si el archivo se llama talle*.txt, escriba:
[root@server root]# talle\*.txt
• Lista de comodines y expresiones regulares:
– * __ Hace coincidir todos los caracteres– ? __ Hace coincidir un carácter en una cadena– \* __ Hace coincidir el carácter *– \? __ Hace coincidir el carácter ?– \) __ Hace coincidir el carácter )
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell
Comando: ln
• crea un enlace simbólico de link hacia file.
ln -s file link
Ejemplo:
[root@server root]# ln –s /usr/local/share acceso
Ing. Jesús Bernardo Olavarria Paz
Intérprete de comandos de la shell