Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Noviembre 2006
GSyC,
c Grupo de Sistemas y Comunicaciones, 2006
http://gsyc.escet.urjc.es
GSyC
c 2006
2
Introducción al Shell
GSyC
c 2006 Introducción al shell
Interfaces de usuario
Interfaz gráfico
GSyC
c 2006 Introducción al shell : Introducción al Shell
Interfaces de usuario 4
GSyC
c 2006 Introducción al shell : Introducción al Shell
Interfaz de texto
Write programs that do one thing and do it well. Write programs to work
together. Write programs that handle text streams, because that is a
universal.
interfaz texto: teclado
• terminales x
• consola: terminales virtuales (Ctrl+Alt+F1) (Ctrl+Alt+F6)
• Vuelta a sesión X (Ctrl+Alt+F7)
exit (EOF, Ctrl + D)
GSyC
c 2006 Introducción al shell : Introducción al Shell
Interfaces de usuario (cont.) 6
GSyC
c 2006 Introducción al shell : Introducción al Shell
GSyC
c 2006 Introducción al shell : Introducción al Shell
Shell:Intérprete de comandos 8
Shell:Intérprete de comandos
Programa que
• lee el texto (borrar, autocompletar, history),
• lo analiza (expande metacaracteres)
• Ejecuta el programa (comando)
• Duerme
◦ A menos que lancemos comando en background
acroread file.1 &
Hay muchos: /bin/sh, /bin/bash, /bin/csh ...
variables de entorno
los comandos son sólo (pequeños) programas ejecutables
GSyC
c 2006 Introducción al shell : Introducción al Shell
GSyC
c 2006 Introducción al shell : Introducción al Shell
Shell:Intérprete de comandos (cont.) 10
Documentación
GSyC
c 2006 Introducción al shell : Introducción al Shell
GSyC
c 2006 Introducción al shell : Introducción al Shell
Shell:Intérprete de comandos (cont.) 12
whoami
Muestra el usuario
id
Muestra usuario y grupos
uname
uname -a
Versión de Linux
hostname
Nombre de máquina
pwd
Directorio de trabajo actual
GSyC
c 2006 Introducción al shell : Introducción al Shell
w
Usuarios conectados a la máquina
du Espacio de disco ocupado por los ficheros de un directorio
du -s Espacio de disco ocupado por un directorio
du -h Unidades legibles para un humano
df
Espacio de disco libre
GSyC
c 2006 Introducción al shell : Introducción al Shell
14
ls -l Formato largo
ls -a Muestra ficheros ocultos (empiezan por punto)
ls -lh Formato largo, unidades legibles por humano
ls -R Recursivo
ls -ld Lista el directorio, no su contenido
GSyC
c 2006 Introducción al shell : Introducción al Shell
(cont.) 15
$ Variable
* 0 o más caracteres cualquiera
? exactamente 1 caracter cualquiera
[] 1 caracter de la clase
ejemplo:
ls *.txt
el shell lo expande a
ls texto1.txt texto2.txt texto3.txt
El comando recibe 3 argumentos, no sabe nada de metacaracteres
GSyC
c 2006 Introducción al shell : Introducción al Shell
Ficheros 16
Ficheros
Árbol de directorios
GSyC
c 2006 Introducción al shell : Introducción al Shell
Ficheros (cont.) 17
path
cd
.
..
El slash / separa directorios
• Fichero que empieza por ’/’ : absoluto
• Fichero sin ’/’: relativo
• cp fichero tmp
cp fichero ./tmp
cp fichero /tmp
cd ~jperez/dir
GSyC
c 2006 Introducción al shell : Introducción al Shell
Ficheros (cont.) 18
Comandos de ficheros
GSyC
c 2006 Introducción al shell : Introducción al Shell
Ficheros (cont.) 19
GSyC
c 2006 Introducción al shell : Introducción al Shell
Ficheros (cont.) 20
GSyC
c 2006 Introducción al shell : Introducción al Shell
Usuario root 21
Usuario root
GSyC
c 2006 Introducción al shell : Introducción al Shell
Usuarios y grupos 22
Usuarios y grupos
GSyC
c 2006 Introducción al shell : Introducción al Shell
Usuarios y grupos 23
userdel -r usuario
borra un usuario y su HOME
passwd usuario
Cambia la contraseña de un usuario
su usuario
Cambia el id. de usuario actual
chown dueño fichero(s)
cambia el dueño de un fichero
chgrp dueño fichero(s)
cambia el grupo de un fichero
Comandos para cualquier usuario
passwd
Cambia la contraseña
GSyC
c 2006 Introducción al shell : Introducción al Shell
Usuarios y grupos 24
id usuario
muestra id, gid, grupos
newgrp grupo
Entre los grupos de un usuario, elige el actual
GSyC
c 2006 Introducción al shell : Introducción al Shell
GSyC
c 2006 Introducción al shell : Introducción al Shell
Usuarios y grupos (cont.) 26
Muy Importante:
Comprueba los permisos de tu $HOME, en muchos sistemas por omisión
está abierto
Atención,
un fichero sin permisos de escritura
pero con permiso de escritura en el directorio que lo contiene,
no podrá ser modificado pero sı́ borrado
(a menos que esté el sticky bit activado chmod [+-]t dir)
GSyC
c 2006 Introducción al shell : Introducción al Shell
ping
Envia indefinidamente paquetes de prueba. Peligroso en scripts
ping -c 1 Envia 1 paquete de prueba
telnet (no recomendable, contraseñas sin cifrar)
ftp (no recomendable, excepto ftp anónimo)
ssh usuario@maquina
scp usuario@maquina:/dir/fich destino
GSyC
c 2006 Introducción al shell : Introducción al Shell
Enlaces 28
Enlaces
enlace duro
Un nuevo nombre para el fichero
ln a b
enlace blando o simbólico
un nuevo fichero que apunta a un nombre
ln -s a c
GSyC
c 2006 Introducción al shell : Introducción al Shell
Enlaces (cont.) 29
Enlace duro
GSyC
c 2006 Introducción al shell : Introducción al Shell
Enlaces (cont.) 30
Enlace simbólico
GSyC
c 2006 Introducción al shell : Introducción al Shell
Entrada y salida 31
Entrada y salida
entrada estándar
salida estándar
salida de error estándar
GSyC
c 2006 Introducción al shell : Introducción al Shell
Entrada y salida (cont.) 32
GSyC
c 2006 Introducción al shell : Introducción al Shell
cat
lee lo que hay en stdin y lo escribe en stdout
(Ctrl D: fin de fichero)
cat fichero1 fichero2
lee los ficheros que se pasan como argumento y los escribe (concate-
nados) en stdout
(Ctrl D: fin de fichero)
echo argumento
escribe en stdout el texto que se le pasa como argumento
less fichero
escribe un fichero en stdout, permitiendo paginación
GSyC
c 2006 Introducción al shell : Introducción al Shell
Entrada y salida (cont.) 34
Redirecciones
GSyC
c 2006 Introducción al shell : Introducción al Shell
Comandos de procesos 35
Comandos de procesos
GSyC
c 2006 Introducción al shell : Introducción al Shell
Señales 36
Señales
kill -9 pid
15 SIGTERM (valor por defecto)
9 SIGKILL
2 SIGINT (Ctrl C) interrumpe
man 7 signal
GSyC
c 2006 Introducción al shell : Introducción al Shell
Filtros 37
Filtros
grep
grep hidalgo quijote.txt Devuelve lı́neas con el patrón
grep "la mancha" quijote.txt
grep -v Devuelve lı́neas sin el patrón
grep -i Ignora mayúsculas/minúsculas
Atención,en el patrón ana encaja la palabra rosana
cut
ls -l | cut -c2-4
cat /etc/passwd | cut -d: -f5
paste
paste -s
wc
GSyC
c 2006 Introducción al shell : Introducción al Shell
Filtros 38
diff
sort
uniq
head
head -5 fichero.txt
tail
tail -3 fichero.txt
who | cut -c1-8 |sort |uniq | wc -l
GSyC
c 2006 Introducción al shell : Introducción al Shell
Filtros 39
? opcional
* 0 o más veces
+ 1 o más veces
. cualquier carácter
[ ] cualquiera de la clase
[^ ] cualquiera excepto la clase
^ principio de linea
$ fin de linea
\< inicio de palabra
\> fin de palabra
| o
() agrupar
{min,max} rango
GSyC
c 2006 Introducción al shell : Introducción al Shell
Filtros (cont.) 40
GSyC
c 2006 Introducción al shell : Introducción al Shell
Variables
variable=valor
echo $variable
Sin espacios antes y despues del igual
con $ para acceder al contenido de la variable
sin $ en la asignación
sólo son visibles en ese proceso
Variables de entorno
export VARIABLE=valor
hace que los procesos hijos la reciban
por convenio se usan mayúsculas
GSyC
c 2006 Introducción al shell : Introducción al Shell
Variables de entorno 42
GSyC
c 2006 Introducción al shell : Introducción al Shell
GSyC
c 2006 Introducción al shell : Introducción al Shell
Anexo: Invocación del shell 44
GSyC
c 2006 Introducción al shell : Introducción al Shell
gzip
GSyC
c 2006 Introducción al shell : Introducción al Shell
Anexo: Empaquetado de ficheros 46
tar + gzip
GSyC
c 2006 Introducción al shell : Introducción al Shell
Disquetes
Trocear
split -b 1440k cancion.mp3 trozo
Recomponer
cat trozo* > cancion.mp3
GSyC
c 2006 Introducción al shell : Introducción al Shell
Anexo: Empaquetado de ficheros (cont.) 48
Localizar ficheros
GSyC
c 2006 Introducción al shell : Introducción al Shell
Anexo:Jerarquı́a del
sistema de ficheros
Linux
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
Introducción: 50
Introducción:
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
Normalización de Linux 51
Normalización de Linux
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
Jerarquı́a clásica 52
Jerarquı́a clásica
La jerarquı́a actual puede resultar algo ilógica, pero hay motivos históricos
En los primeros Unix los discos eran más pequeños y más caros,
en uno estaba lo imprescindible para que el sistema funcionase:
/
/etc
/lib
/tmp
/bin
/root
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
FHS Filesystem Hierarchy Standard 54
1. Directorios de usuarios
2. Programas (incluyendo comandos y librerı́as)
3. Configuración del sistema
4. El Hardware
5. Documentación
6. Ficheros Temporales
7. Otros directorios relacionados con el S.O.
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
1. Directorios de usuarios 55
1. Directorios de usuarios
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
2. Programas y comandos 56
2. Programas y comandos
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
Programas
• Software no incluido en la distribución Linux
/usr/local
• Grandes aplicaciones como StarOffice, KDE, Oracle...
/opt
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
2. Programas y comandos (cont.) 58
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
Directorio /etc
Información sobre el sistema de ficheros (puntos de montaje, opcio-
nes)
/etc/fstab
cuentas de usuarios
/etc/passwd
Passwords de los usuarios
/etc/shadow
Scripts para arranque del sistema
/etc/init.d
...
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
4. El Hardware 60
4. El Hardware
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
4. El Hardware (cont.) 61
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
5. Documentación 62
5. Documentación
/usr/share/doc
Documentación sobre el software del sistema
/usr/man
Ficheros del comando man
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
6. Ficheros Temporales 63
6. Ficheros Temporales
Ficheros temporales
(se borran cuando la máquina arranca)
/tmp
Fragmentos de ficheros recuperados
/lost+found
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
6. Ficheros Temporales (cont.) 64
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
GSyC
c 2006 Introducción al shell : Anexo:Jerarquı́a del sistema de ficheros Linux
7. Otros directorios relacionados con el S.O. (cont.) 66
Editores de texto
GSyC
c 2006 Introducción al shell : Editores de texto
Introducción 67
Introducción
GSyC
c 2006 Introducción al shell : Editores de texto
Introducción (cont.) 68
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 69
vi
GSyC
c 2006 Introducción al shell : Editores de texto
vi 70
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 71
Inconvenientes
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 72
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 73
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 74
Otros Comandos
0 ir a principio lı́nea
$ ir a fin linea
w siguiente palabra
b palabra anterior
r Sustituye 1 carácter
4cw Cambia las próximas 4 palabras
x Borra carácter
5x Borrar 5 caracteres
dw Borra hasta fin palabra
n Repite búsqueda
N Busca en dirección inversa a anterior
yy copia (yanc) linea
yw Copia palabra
3yw copia 3 palabras
* busca palabra igual a la que marca el cursor
ma marca a
mb marca b
’a ir a marca a
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 75
’b ir a marca b
Ctrl G Indica linea actual
~ Pasa de may. a minusc. o al revés
:49,53 w! fichero Graba en fichero lineas de 49 a 53
:.,53 w! fichero Graba en fichero de linea actual a final
:1,$ s/digo/diego/g Busca y Reemplaza
:set nu Indica el no de linea
:set nonu Desactiva no de linea
:set ic Ignore Case (Insensible a mayúsculas en búsquedas)
:set noic Desactiva ic
Puede configurarse en un fichero en el $HOME
koji@mazinger:~$ cat .vimrc
set vb
set ic
set tabstop=8
syntax on
GSyC
c 2006 Introducción al shell : Editores de texto
vi (cont.) 76
GSyC
c 2006 Introducción al shell : Editores de texto
Para esto lo mejor es vi. Pero si nos asusta el interfaz de usuario, hay
alternativas como joe o nano (clon de pico)
GSyC
c 2006 Introducción al shell : Editores de texto
Emacs / XEmacs 78
Emacs / XEmacs
GSyC
c 2006 Introducción al shell : Editores de texto
Inconvenientes
GSyC
c 2006 Introducción al shell : Editores de texto
Emacs / XEmacs (cont.) 80
Usando emacs
menu
pantalla edición
lı́nea de modo
lı́nea comandos
GSyC
c 2006 Introducción al shell : Editores de texto
emacs 6= xemacs
GSyC
c 2006 Introducción al shell : Editores de texto
Emacs / XEmacs (cont.) 82
Atajos de teclado
GSyC
c 2006 Introducción al shell : Editores de texto
Emacs http://www.gnu.org/software/emacs
XEmacs http://www.xemacs.org
GSyC
c 2006 Introducción al shell : Editores de texto
wily/acme 84
wily/acme
Su uso en simple
Pequeño
Usa el shell como len-
guaje
GSyC
c 2006 Introducción al shell : Editores de texto
wily/acme (cont.) 85
Inconvenientes
http://www.cs.bell-labs.com/sys/doc/acme/acme.html
GSyC
c 2006 Introducción al shell : Editores de texto
SciTE 86
SciTE
Editor de texto reciente
Ventajas
GSyC
c 2006 Introducción al shell : Editores de texto
SciTE (cont.) 87
Inconvenientes
http://www.scintilla.org/SciTE.html
GSyC
c 2006 Introducción al shell : Editores de texto
Kate 88
Kate
Es el editor del escritorio
KDE
Ventajas
GSyC
c 2006 Introducción al shell : Editores de texto
Kate (cont.) 89
Inconvenientes
http://kate-editor.org/
GSyC
c 2006 Introducción al shell : Editores de texto
gedit 90
gedit
GSyC
c 2006 Introducción al shell : Editores de texto
gedit (cont.) 91
Inconvenientes
GSyC
c 2006 Introducción al shell : Editores de texto