SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
Comandos Bash/GNU/Linux
Jorge Fuertes Alfranca
http://queru.org
Marzo de 2009
1. Introducci´on
En esta gu´ıa r´apida trataremos de aprender el m´ınimo necesario para mane-
jarse con un sistema operativo GNU1
equipado de shell GNU-Bash2
.
No se ver´a ning´un comando con excesiva profundidad, sino solamente en su
utilizaci´on m´as t´ıpica. Para conocer a fondo estos comandos existen multitud
de libros o, lo m´as inmediato, la ayuda y las p´aginas man de cada uno de ellos,
as´ı como la ayuda integrada:
Ayuda: Para consultar la ayuda de un comando teclearemos:
comando --help
Manual: Para ver el manual de un comando teclearemos:
man comando
Info: Para ver la p´agina info de un comando teclearemos (no siempre est´a
disponible):
info comando
Tampoco se pretende que esta gu´ıa sea un compendio exhaustivo de todos
los comandos de UNIX, s´olo se contemplan aqu´ı los m´as usuales. Por otro lado
este texto incluye un ap´endice con ejercicios aptos para utilizarlo como material
docente.
1.1. Comandos contemplados
Los comandos contemplados es esta gu´ıa son:
alias: Crear sobrenombres para comandos reales con opciones.
apt-cache: Operaciones con la lista de paquetes de Debian.
apt-get: Operaciones de instalaci´on/borrado/actualizaci´on con paquetes
Debian.
bg: Poner un programa a funcionar en segundo plano.
1http://es.wikipedia.org/wiki/GNU
2http://es.wikipedia.org/wiki/Bash
1
cal: Calendario.
cat: Escribir ficheros en la salida est´andar.
chgrp: Cambiar el grupo de un fichero o directorio.
chmod: Cambiar permisos a ficheros.
chown: Cambiar propietario y grupo de ficheros.
cmp: Comparar ficheros.
cp: Copiar ficheros.
date: Fecha y hora del sistema.
df: Espacio libre en disco.
dig: Obtener datos de servidores DNS.
du: Ocupaci´on de disco.
echo: Decir algo por la salida est´andar.
fg: Pasar un programa a primer plano.
find: Buscar ficheros.
free: Memoria libre.
ftp: Transferencia de ficheros.
grep: Buscar palabras en la salida de comandos o en ficheros.
groupadd: A˜nadir grupo (para usuarios) al sistema.
halt: Apagar la m´aquina, parando primero todos los servicios.
head: Ver parte del inicio de un fichero.
history: Ver el hist´orico de los comandos introducidos.
ip: Operaciones con redes, rutas e interfaces de red.
jobs: Procesos del usuario en funcionamiento.
kill: Matar procesos.
ls: Mostrar listados de ficheros y directorios.
lsmod: Listado de los m´odulos (drivers) cargados en el sistema.
md5sum: Suma de control md5 de un fichero.
mv: Mover o renombrar ficheros.
passwd: Asignar o cambiar contrase˜nas a usuarios.
ps: Listas de procesos en funcionamiento.
2
pstree: Lista arb´orea de procesos en funcionamiento.
pwd: Mostrar nombre y ruta del directorio actual de trabajo.
reboot: Reiniciar sistema.
rm: Borrar ficheros y directorios.
sh: Llamar a un nuevo shell o ejecutar gui´on.
shred: Borrar definitivamente y con seguridad un fichero.
shutdown: Apagar, con distintas opciones, el sistema.
ssh: Conectar de forma segura y cifrada con servidores remotos.
su: Suplantar a un usuario.
sudo: Ejecutar programas con privilegio de root.
tail: Ver parte del final de un fichero.
top: Lista din´amica de recursos del sistema.
tr: Cambiar o borrar caracteres.
uname: Informaci´on diversa sobre el sistema.
vim: (vi/vim) Editor t´ıpico de UNIX.
visudo: Editar /etc/sudoers.
vmstat: Datos estad´ısticos sobre memoria virtual.
watch: Ejecutar y ver algo a intervalos de forma continua.
wc: Contar palabras, l´ıneas y bytes en ficheros.
wget: Descarga de la red mediante http, ftp...
whereis: D´onde est´a un comando o programa.
who: Muestra qui´en est´a conectado al sistema.
whois: Cliente para el servicio Whois. Ver datos de un dominio o IP.
3
2. Comandos
A continuaci´on describiremos cada comando en su utilizaci´on m´as t´ıpica.
Recuerde consultar las p´aginas man para m´as informaci´on sobre cada uno de
ellos.
4
3. Ejercicios
1. Cree el usuario perico en su sistema. Con el grupo principal clase, y con
el home en /home/externos/perico.
2. Cree el grupo externos y haga que perico pertenezca a dicho grupo.
3. Ponga en el fichero de llaves autorizadas de perico TODAS las llaves
p´ublicas de OpenSSH de sus compa˜neros de clase.
4. Cree en el directorio home de perico un fichero oculto con el nombre que
Vd. quiera y con la extensi´on ”.leeme”, dentro de este fichero ponga una
palabra, cualquiera.
5. Entre como usuario perico en todos los ordenadores de sus compa˜neros de
clase, busque un fichero oculto con la extensi´on .leeme y anote su contenido
(tres cifras), junto al nombre de usuario de sus compa˜neros.
6. Cree un fichero vac´ıo de nombre prueba.txt sin utilizar ning´un editor de
textos.
7. Cambie el grupo del anterior fichero para que pertenezca a clase.
8. Cambie los permisos del fichero prueba.txt para que s´olo sea legible por el
root.
9. Escriba lo siguiente dentro del fichero prueba.txt:
#!/bin/bash
echo "Eres $(whoami) en $(hostname)."
Grabe el fichero.
5
10. Cambie el nombre de fichero de prueba.txt a prueba.sh.
11. Ot´orguele permisos de ejecuci´on y ejec´utelo. Anote el resultado.
12. Cree un programa de bash que al ser ejecutado diga el directorio actual
y la fecha y hora del sistema. Ll´amele programa1.sh.
13. Cree un programa de bash que al ser ejecutado diga que usuarios hay
conectados al sistema. Ll´amele programa2.sh.
14. Ejecute programa1.sh pero haga que escriba el resultado en un fichero
salida1.txt en lugar de en la pantalla.
15. Ejecute programa1.sh pero haga que escriba el resultado en un fichero
salida1.txt en su home en el ordenador del profesor.
16. Cambie al usuario perico sin cambiar de entorno, ejecute echo $HOME y
anote el resultado. Pase de nuevo a root y repita los dos pasos anteriores,
pero esta vez cogiendo el entorno del usuario suplantado.
17. Instale la utilidad sudo e introduzca su usuario personal, por ejemplo
jfuertes en el fichero de sudoers. Anote aqu´ı la l´ınea que ha modificado en
dicho fichero.
18. Dentro del directorio /root cree el fichero secreto.txt con el contenido
”Esto es un fichero s´olo para root.”. Asigne permisos s´olo para root. Nadie
m´as debe poder leerlo.
19. Cambie, con entorno, a su usuario personal y ejecute lo siguiente:
cat /root/secreto.txt
6
Deber´a porder leer el contenido.
20. Obtenga una lista de todos los programas que hay funcionando en su
m´aquina. En dicha lista debe verse el usuario que est´a ejecutando todos
ellos.
21. Ejecute el editor vim en segundo plano. Obtenga el PID del proceso y
an´otelo. En la lista que saque de procesos, s´olo debe verse el correspon-
diente a vim.
22. Pase vim a primer plano. Salga de vim.
23. De nuevo ejecute vim en segundo plano, obtenga el PID y mate el proceso.
Al ejecutar un ps con las opciones necesarias para ver todos los procesos,
este no debe aparecer en el sistema.
24. Cree un fichero de nombre hola-mundo.sh con el contenido:
#!/bin/bash
echo -e "n¡Hola Mundo!nAdi´osn"
Ejecute este programa sin darle permisos de ejecuci´on.
25. Averig¨ue que tama˜no ocupa el directorio /etc con todo su contenido.
26. Elimine el fichero /root/secreto.txt pero h´agalo de forma segura, para que
no se pueda recuperar ni siquiera utilizando herramientas forenses.
27. Obtenga por pantalla el calendario del mes de diciembre de este a˜no.
Despu´es guarde este calendario en el fichero diciembre.txt.
28. Localize en su sistema el directorio cron.daily. Anote donde est´a.
29. Localice en el cach´e de apt el paquete correspondiente a ”Spanish fortune
database” e inst´alelo en el sistema. Ejecute /usr/games/fortune varias
veces y vea qu´e ocurre.
7
30. Coloque el programa /usr/games/fortune en el profile del sistema, de for-
ma que cuando cualquier usuario acceda al sistema le aparezca una fortu-
na.
31. Averig¨ue el espacio que tiene libre en sus discos duros. Anote cada parti-
ci´on y el espacio libre en megabytes o gigabytes.
32. Cree un alias de forma que tecleando la en su shell aparezca un listado de
ficheros y directorios, con colores, con fechas de modificaci´on, tama˜nos en
formato humano, permisos y propietarios del directorio actual.
33. Cree dos ficheros de texto iguales y con nombre fichero1.txt y fichero2.txt.
Comp´arelos utilizando el comando cmp. Teclee justo despu´es la orden:
echo $?
El resultado debe ser 0.
34. Cambie algo en el fichero fichero2.txt, vuelva a compararlos con cmp y de
nuevo ejecute ”echo $?”, aunque esta vez el resultado debe ser distinto
de 0.
35. Escriba un gui´on o script de bash que imprima en pantalla la frase ”Es-
perando 5 segundos...”, que espere 5 segundos y que imprima ”OK” en el
mismo rengl´on que la frase anterior. En pantalla debe quedar todo esto
junto ”Esperando 5 segundos...OK”, si bien la palabra ”OK” se imprimir´a
5 segundos despu´es de los puntos suspensivos.
8
36. Conecte por FTP al servidor del profesor, con su nombre usuario y contra-
se˜na y transfiera a su carpeta personal los ficheros creados en el ejercicio
33. D´ejelos dentro de un directorio con nombre ejercicio cmp.
37. Obtenga por pantalla las 4 primeras l´ıneas del fichero /etc/group. Des-
pu´es haga lo mismo pero direccionando la salida al fichero ”4primerosgru-
pos.txt”.
38. Obtenga por pantalla las 4 ´ultimas l´ıneas del fichero /etc/group. Despu´es
haga lo mismo pero direccionando la salida al fichero ”4ultimosgrupos.txt”.
39. Suba por ftp al ordenador del profesor los ficheros obtenidos en los ejerci-
cios 37 y 38. D´ejelos dentro de directorio ”ficheros ejercicios”.
40. Detenga su sistema avisando a los usuarios y d´andoles un margen de 1
minuto.
41. Obtenga un hist´orico de comandos de su sistema, pero de forma que salgan
s´olo las l´ıneas que contengan el comando cmp.
42. Anote aqu´ı el listado de direcciones IP que tiene su sistema en este mo-
mento, anote tambi´en las m´ascaras (en cualquier formato) y la ruta por
defecto que sigue.
9
43. A˜nada la siguiente IP en su equipo: 192.168.33.X/24 siendo X el ´ultimo
n´umero de su IP en el ejercicio anterior.
44. A˜nada la ruta 192.168.33.0/24 a su dispositivo de red, con gateway
192.168.33.254. Si lo hace correctamente deber´a poder hacer ping a
192.168.33.254 y al resto de sus compa˜neros, con sus nuevas IPs.
45. Obtenga un listado de todos los drivers cargados en su sistema. H´agalo de
nuevo pero haciendo que aparezcan s´olo por pantalla el de su tarjeta de
red, por ejemplo el e1000 o el rtlk8439 de red.
46. Cree un alias que cada vez que es llamado produzca la misma salida que
el ejercicio anterior. Este alias se llamar´a ”netmods”.
47. Ejecute el comando echo "Hooooola", pero consiga que en pantalla se vea
”Haaaaala”, despu´es ejec´utelo de nuevo pero consiga que ponga ”Hola”.
48. Ejecute el comando echo "Hooooola", pero consiga que en pantalla se lea
”Hola Munda”.
49. Escriba un gui´on de bash, de nombre misistema.sh, que al ser ejecutado
nos diga por pantalla:
Sistema operativo.: xxxxxxxxx
Kernel............: xxxxxxxxx
Arquitectura......: xxxxxxxxx
Siendo las xxxxxxxxx los valores reales para su sistema o para cualquiera
en el que se ejecute este script.
10
50. Edite de forma segura el fichero de sudoers (no vale con ’vim’), y a˜nada
el usuario del profesor.
51. Obtenga una vista a intervalos de 2 segundos del uso de memoria virtual
de su sistema. Determine si necesita o no aumentar el tama˜no de swap, y
especifique por qu´e.
52. Utilizando una sola l´ınea de comandos obtenga por pantalla la hora actual,
una lista de los usuarios conectados al sistema y la capacidad de disco libre
en sus particiones, todo a intervalos de 2 segundos.
53. Obtenga una suma de control md5 de cada uno de los ficheros del ejercicio
33. Han de ser diferentes. Ahora copie fichero1.txt sobre fichero2.txt y
repita la suma md5 sobre4 el segundo de ellos, observando que sea igual
que la del primero.
54. Reinicie inmediatamente su sistema.
55. Consiga, con una sola l´ınea de comandos, que aparezca en pantalla el
n´umero de l´ıneas que tiene el fichero /etc/group.
56. Sin ejecutar el cliente ftp, obtenga los ficheros prueba.bin y prueba.bin.md5
del usuario publico del ordenador del profesor. Compruebe que el md5 es
correcto.
11
57. Descargue el fichero http://trucolinux.com/files/prueba2.bin. Com-
pruebe si el md5 es 4ed3d3fb2af04c05f601f78f2ce73e95.
58. Averig¨ue con una sola orden donde est´a el comando wget. Dicha orden
tiene que tardar menos de 1 segundo.
59. Obtenga el nombre de la organizaci´on que tiene registrado el dominio
debian.org, adem´as vea cuales son sus servidores de nombres autoritativos.
60. Ejecute un comando que le devuelva cual es el servidor o servidores de
correo de debian.org.
12
4. Sobre esta unidad did´actica
4.1. Notas y advertencias
Debian: Esta gu´ıa est´a basada en el sistema Debian GNU/Linux, podr´ıa
haber peque˜nos cambios si se aplica a otras distribuciones de GNU, pero en
su mayor parte funcionar´a bien con la excepci´on de lo referido al sistema de
paqueter´ıa de programas, los comandos que empiezan por apt, ya que otras
distros no basadas en Debian podr´ıan incorporar sistemas diferentes para el
manejo de sus paquetes.
4.2. Derechos
Esta gu´ıa se cede bajo contrato Coloriuris. S´olo puede ser utilizada previa
aceptaci´on del contrato de cesi´on sito en:
http://www.coloriuris.net/contratos/ef5af6aaa441ab9c213273fade56dca1
Dicho contrato garantiza que estoy cediendo los derechos de uso y modifica-
ci´on sin ´animo de lucro.
4.3. Agradecimientos
El autor quiere reflejar su agradecimiento a todas las p´aginas de Internet
que ponen a disposici´on de todo el mundo sus contenidos, as´ı como a todo aqu´el
que publica art´ıculos, manuales y experiencias en Internet, ya que eso favorece
a la difusi´on del conocimiento y al desarrollo humano. La informaci´on quiere
ser libre.
Un agradecimiento muy especial a toda la comunidad del Software Libre. Sin
ellos el autor vivir´ıa en la oscuridad: Programadores, traductores, asociaciones,
hacktivistas, webmasters, etc...
Tambi´en quiero agradecer muy especialmente su ayuda a mis alumnos y
lectores, por tomarse la molestia de comunicarme las erratas y por darme ideas
para mejorar los ejercicios.
4.4. Revisiones
El autor ir´a eventualmente publicando revisiones de esta unidad en su p´agina
personal, y estar´a encantado de recibir sugerencias y dudas en la misma o en su
email:
http://jorgefuertes.com.
cursos@jorgefuertes.com.
Por supuesto se puede contactar con el autor para contratarle para hacer
nuevas unidades, adaptaciones, modificaciones, cursos, etc...
13

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Julissa
JulissaJulissa
Julissa
 
Manual
ManualManual
Manual
 
Azucenabarzola
AzucenabarzolaAzucenabarzola
Azucenabarzola
 
Tutorial Comandos
Tutorial ComandosTutorial Comandos
Tutorial Comandos
 
Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3Manual de hacking basico por taskkill#3
Manual de hacking basico por taskkill#3
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
 
Como instalar unix erazo gloria
Como instalar unix erazo gloriaComo instalar unix erazo gloria
Como instalar unix erazo gloria
 
Mary cervantes
Mary cervantesMary cervantes
Mary cervantes
 
Batch
BatchBatch
Batch
 
Ud06 e04 preguntas comandos linux
Ud06 e04 preguntas comandos linuxUd06 e04 preguntas comandos linux
Ud06 e04 preguntas comandos linux
 
6 la shell bash
6 la shell bash6 la shell bash
6 la shell bash
 
Monousuarios y multiusuarios
Monousuarios y multiusuariosMonousuarios y multiusuarios
Monousuarios y multiusuarios
 
Ronald
RonaldRonald
Ronald
 
Nicolle
NicolleNicolle
Nicolle
 
Sandra saldaña instalarunix
Sandra saldaña instalarunixSandra saldaña instalarunix
Sandra saldaña instalarunix
 
Instalar unixElvis Urquizo
Instalar unixElvis UrquizoInstalar unixElvis Urquizo
Instalar unixElvis Urquizo
 

Similar a Comandos (20)

Actividad3.1
Actividad3.1Actividad3.1
Actividad3.1
 
Comandos básicos ubuntu
Comandos básicos ubuntuComandos básicos ubuntu
Comandos básicos ubuntu
 
RESUME SOBRE LA TERMINAL DE UBUNTU
RESUME SOBRE LA TERMINAL DE UBUNTU RESUME SOBRE LA TERMINAL DE UBUNTU
RESUME SOBRE LA TERMINAL DE UBUNTU
 
Comandos de ubuntu
Comandos de ubuntuComandos de ubuntu
Comandos de ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Comandos ubuntu
Comandos ubuntuComandos ubuntu
Comandos ubuntu
 
Chuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdfChuleta-comandos-Linux-para-no-perderse.pdf
Chuleta-comandos-Linux-para-no-perderse.pdf
 
Manual linux
Manual linuxManual linux
Manual linux
 
Unix essentials 3.1
Unix essentials 3.1Unix essentials 3.1
Unix essentials 3.1
 
SISTEMAS OPERATIVOS INFORME 4
SISTEMAS OPERATIVOS INFORME 4SISTEMAS OPERATIVOS INFORME 4
SISTEMAS OPERATIVOS INFORME 4
 
Unix 3.1
Unix 3.1Unix 3.1
Unix 3.1
 
Unix 3.1
Unix 3.1Unix 3.1
Unix 3.1
 
Julissa
JulissaJulissa
Julissa
 
Estructura de linux
Estructura de linuxEstructura de linux
Estructura de linux
 
Manual(1)
Manual(1)Manual(1)
Manual(1)
 
Manual Bàsic PS Tools
Manual Bàsic PS ToolsManual Bàsic PS Tools
Manual Bàsic PS Tools
 
Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2Curso-Taller GNU-Linux Dia2
Curso-Taller GNU-Linux Dia2
 
Unix JCRB
Unix JCRBUnix JCRB
Unix JCRB
 
Curso GNU/Linux
Curso GNU/LinuxCurso GNU/Linux
Curso GNU/Linux
 
S
SS
S
 

Más de Waldir Nuñez Francia (20)

Funcionamiento básico y primeros pasos en wifislax
Funcionamiento básico y primeros pasos en wifislaxFuncionamiento básico y primeros pasos en wifislax
Funcionamiento básico y primeros pasos en wifislax
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Adi comandos-linux
Adi comandos-linuxAdi comandos-linux
Adi comandos-linux
 
2.1 dhcp-1
2.1 dhcp-12.1 dhcp-1
2.1 dhcp-1
 
0 curso-sobre-backup-objetivos-y-alcance-1-2
0 curso-sobre-backup-objetivos-y-alcance-1-20 curso-sobre-backup-objetivos-y-alcance-1-2
0 curso-sobre-backup-objetivos-y-alcance-1-2
 
W2008
W2008W2008
W2008
 
Student packet tracer manual
Student packet tracer manualStudent packet tracer manual
Student packet tracer manual
 
Seguridad en-unix-redes
Seguridad en-unix-redesSeguridad en-unix-redes
Seguridad en-unix-redes
 
Moises valenzuela gutierrez-instalacion_mantenimientoredeslocales
Moises valenzuela gutierrez-instalacion_mantenimientoredeslocalesMoises valenzuela gutierrez-instalacion_mantenimientoredeslocales
Moises valenzuela gutierrez-instalacion_mantenimientoredeslocales
 
Man dominios windows_server
Man dominios windows_serverMan dominios windows_server
Man dominios windows_server
 
Internet hackers-y-software-libre
Internet hackers-y-software-libreInternet hackers-y-software-libre
Internet hackers-y-software-libre
 
Hackers 3
Hackers 3Hackers 3
Hackers 3
 
Hackers 2
Hackers 2Hackers 2
Hackers 2
 
Hackers 1
Hackers 1Hackers 1
Hackers 1
 
El sendero-del-hacker
El sendero-del-hackerEl sendero-del-hacker
El sendero-del-hacker
 
Configuracion servidores-linux-oct-2013
Configuracion servidores-linux-oct-2013Configuracion servidores-linux-oct-2013
Configuracion servidores-linux-oct-2013
 
Administrador de servidores
Administrador de servidoresAdministrador de servidores
Administrador de servidores
 
64518313 manual-basico-as400
64518313 manual-basico-as40064518313 manual-basico-as400
64518313 manual-basico-as400
 
64518313 manual-basico-as400
64518313 manual-basico-as40064518313 manual-basico-as400
64518313 manual-basico-as400
 
05 ci topologias
05 ci topologias05 ci topologias
05 ci topologias
 

Último

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Último (12)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Comandos

  • 1. Comandos Bash/GNU/Linux Jorge Fuertes Alfranca http://queru.org Marzo de 2009 1. Introducci´on En esta gu´ıa r´apida trataremos de aprender el m´ınimo necesario para mane- jarse con un sistema operativo GNU1 equipado de shell GNU-Bash2 . No se ver´a ning´un comando con excesiva profundidad, sino solamente en su utilizaci´on m´as t´ıpica. Para conocer a fondo estos comandos existen multitud de libros o, lo m´as inmediato, la ayuda y las p´aginas man de cada uno de ellos, as´ı como la ayuda integrada: Ayuda: Para consultar la ayuda de un comando teclearemos: comando --help Manual: Para ver el manual de un comando teclearemos: man comando Info: Para ver la p´agina info de un comando teclearemos (no siempre est´a disponible): info comando Tampoco se pretende que esta gu´ıa sea un compendio exhaustivo de todos los comandos de UNIX, s´olo se contemplan aqu´ı los m´as usuales. Por otro lado este texto incluye un ap´endice con ejercicios aptos para utilizarlo como material docente. 1.1. Comandos contemplados Los comandos contemplados es esta gu´ıa son: alias: Crear sobrenombres para comandos reales con opciones. apt-cache: Operaciones con la lista de paquetes de Debian. apt-get: Operaciones de instalaci´on/borrado/actualizaci´on con paquetes Debian. bg: Poner un programa a funcionar en segundo plano. 1http://es.wikipedia.org/wiki/GNU 2http://es.wikipedia.org/wiki/Bash 1
  • 2. cal: Calendario. cat: Escribir ficheros en la salida est´andar. chgrp: Cambiar el grupo de un fichero o directorio. chmod: Cambiar permisos a ficheros. chown: Cambiar propietario y grupo de ficheros. cmp: Comparar ficheros. cp: Copiar ficheros. date: Fecha y hora del sistema. df: Espacio libre en disco. dig: Obtener datos de servidores DNS. du: Ocupaci´on de disco. echo: Decir algo por la salida est´andar. fg: Pasar un programa a primer plano. find: Buscar ficheros. free: Memoria libre. ftp: Transferencia de ficheros. grep: Buscar palabras en la salida de comandos o en ficheros. groupadd: A˜nadir grupo (para usuarios) al sistema. halt: Apagar la m´aquina, parando primero todos los servicios. head: Ver parte del inicio de un fichero. history: Ver el hist´orico de los comandos introducidos. ip: Operaciones con redes, rutas e interfaces de red. jobs: Procesos del usuario en funcionamiento. kill: Matar procesos. ls: Mostrar listados de ficheros y directorios. lsmod: Listado de los m´odulos (drivers) cargados en el sistema. md5sum: Suma de control md5 de un fichero. mv: Mover o renombrar ficheros. passwd: Asignar o cambiar contrase˜nas a usuarios. ps: Listas de procesos en funcionamiento. 2
  • 3. pstree: Lista arb´orea de procesos en funcionamiento. pwd: Mostrar nombre y ruta del directorio actual de trabajo. reboot: Reiniciar sistema. rm: Borrar ficheros y directorios. sh: Llamar a un nuevo shell o ejecutar gui´on. shred: Borrar definitivamente y con seguridad un fichero. shutdown: Apagar, con distintas opciones, el sistema. ssh: Conectar de forma segura y cifrada con servidores remotos. su: Suplantar a un usuario. sudo: Ejecutar programas con privilegio de root. tail: Ver parte del final de un fichero. top: Lista din´amica de recursos del sistema. tr: Cambiar o borrar caracteres. uname: Informaci´on diversa sobre el sistema. vim: (vi/vim) Editor t´ıpico de UNIX. visudo: Editar /etc/sudoers. vmstat: Datos estad´ısticos sobre memoria virtual. watch: Ejecutar y ver algo a intervalos de forma continua. wc: Contar palabras, l´ıneas y bytes en ficheros. wget: Descarga de la red mediante http, ftp... whereis: D´onde est´a un comando o programa. who: Muestra qui´en est´a conectado al sistema. whois: Cliente para el servicio Whois. Ver datos de un dominio o IP. 3
  • 4. 2. Comandos A continuaci´on describiremos cada comando en su utilizaci´on m´as t´ıpica. Recuerde consultar las p´aginas man para m´as informaci´on sobre cada uno de ellos. 4
  • 5. 3. Ejercicios 1. Cree el usuario perico en su sistema. Con el grupo principal clase, y con el home en /home/externos/perico. 2. Cree el grupo externos y haga que perico pertenezca a dicho grupo. 3. Ponga en el fichero de llaves autorizadas de perico TODAS las llaves p´ublicas de OpenSSH de sus compa˜neros de clase. 4. Cree en el directorio home de perico un fichero oculto con el nombre que Vd. quiera y con la extensi´on ”.leeme”, dentro de este fichero ponga una palabra, cualquiera. 5. Entre como usuario perico en todos los ordenadores de sus compa˜neros de clase, busque un fichero oculto con la extensi´on .leeme y anote su contenido (tres cifras), junto al nombre de usuario de sus compa˜neros. 6. Cree un fichero vac´ıo de nombre prueba.txt sin utilizar ning´un editor de textos. 7. Cambie el grupo del anterior fichero para que pertenezca a clase. 8. Cambie los permisos del fichero prueba.txt para que s´olo sea legible por el root. 9. Escriba lo siguiente dentro del fichero prueba.txt: #!/bin/bash echo "Eres $(whoami) en $(hostname)." Grabe el fichero. 5
  • 6. 10. Cambie el nombre de fichero de prueba.txt a prueba.sh. 11. Ot´orguele permisos de ejecuci´on y ejec´utelo. Anote el resultado. 12. Cree un programa de bash que al ser ejecutado diga el directorio actual y la fecha y hora del sistema. Ll´amele programa1.sh. 13. Cree un programa de bash que al ser ejecutado diga que usuarios hay conectados al sistema. Ll´amele programa2.sh. 14. Ejecute programa1.sh pero haga que escriba el resultado en un fichero salida1.txt en lugar de en la pantalla. 15. Ejecute programa1.sh pero haga que escriba el resultado en un fichero salida1.txt en su home en el ordenador del profesor. 16. Cambie al usuario perico sin cambiar de entorno, ejecute echo $HOME y anote el resultado. Pase de nuevo a root y repita los dos pasos anteriores, pero esta vez cogiendo el entorno del usuario suplantado. 17. Instale la utilidad sudo e introduzca su usuario personal, por ejemplo jfuertes en el fichero de sudoers. Anote aqu´ı la l´ınea que ha modificado en dicho fichero. 18. Dentro del directorio /root cree el fichero secreto.txt con el contenido ”Esto es un fichero s´olo para root.”. Asigne permisos s´olo para root. Nadie m´as debe poder leerlo. 19. Cambie, con entorno, a su usuario personal y ejecute lo siguiente: cat /root/secreto.txt 6
  • 7. Deber´a porder leer el contenido. 20. Obtenga una lista de todos los programas que hay funcionando en su m´aquina. En dicha lista debe verse el usuario que est´a ejecutando todos ellos. 21. Ejecute el editor vim en segundo plano. Obtenga el PID del proceso y an´otelo. En la lista que saque de procesos, s´olo debe verse el correspon- diente a vim. 22. Pase vim a primer plano. Salga de vim. 23. De nuevo ejecute vim en segundo plano, obtenga el PID y mate el proceso. Al ejecutar un ps con las opciones necesarias para ver todos los procesos, este no debe aparecer en el sistema. 24. Cree un fichero de nombre hola-mundo.sh con el contenido: #!/bin/bash echo -e "n¡Hola Mundo!nAdi´osn" Ejecute este programa sin darle permisos de ejecuci´on. 25. Averig¨ue que tama˜no ocupa el directorio /etc con todo su contenido. 26. Elimine el fichero /root/secreto.txt pero h´agalo de forma segura, para que no se pueda recuperar ni siquiera utilizando herramientas forenses. 27. Obtenga por pantalla el calendario del mes de diciembre de este a˜no. Despu´es guarde este calendario en el fichero diciembre.txt. 28. Localize en su sistema el directorio cron.daily. Anote donde est´a. 29. Localice en el cach´e de apt el paquete correspondiente a ”Spanish fortune database” e inst´alelo en el sistema. Ejecute /usr/games/fortune varias veces y vea qu´e ocurre. 7
  • 8. 30. Coloque el programa /usr/games/fortune en el profile del sistema, de for- ma que cuando cualquier usuario acceda al sistema le aparezca una fortu- na. 31. Averig¨ue el espacio que tiene libre en sus discos duros. Anote cada parti- ci´on y el espacio libre en megabytes o gigabytes. 32. Cree un alias de forma que tecleando la en su shell aparezca un listado de ficheros y directorios, con colores, con fechas de modificaci´on, tama˜nos en formato humano, permisos y propietarios del directorio actual. 33. Cree dos ficheros de texto iguales y con nombre fichero1.txt y fichero2.txt. Comp´arelos utilizando el comando cmp. Teclee justo despu´es la orden: echo $? El resultado debe ser 0. 34. Cambie algo en el fichero fichero2.txt, vuelva a compararlos con cmp y de nuevo ejecute ”echo $?”, aunque esta vez el resultado debe ser distinto de 0. 35. Escriba un gui´on o script de bash que imprima en pantalla la frase ”Es- perando 5 segundos...”, que espere 5 segundos y que imprima ”OK” en el mismo rengl´on que la frase anterior. En pantalla debe quedar todo esto junto ”Esperando 5 segundos...OK”, si bien la palabra ”OK” se imprimir´a 5 segundos despu´es de los puntos suspensivos. 8
  • 9. 36. Conecte por FTP al servidor del profesor, con su nombre usuario y contra- se˜na y transfiera a su carpeta personal los ficheros creados en el ejercicio 33. D´ejelos dentro de un directorio con nombre ejercicio cmp. 37. Obtenga por pantalla las 4 primeras l´ıneas del fichero /etc/group. Des- pu´es haga lo mismo pero direccionando la salida al fichero ”4primerosgru- pos.txt”. 38. Obtenga por pantalla las 4 ´ultimas l´ıneas del fichero /etc/group. Despu´es haga lo mismo pero direccionando la salida al fichero ”4ultimosgrupos.txt”. 39. Suba por ftp al ordenador del profesor los ficheros obtenidos en los ejerci- cios 37 y 38. D´ejelos dentro de directorio ”ficheros ejercicios”. 40. Detenga su sistema avisando a los usuarios y d´andoles un margen de 1 minuto. 41. Obtenga un hist´orico de comandos de su sistema, pero de forma que salgan s´olo las l´ıneas que contengan el comando cmp. 42. Anote aqu´ı el listado de direcciones IP que tiene su sistema en este mo- mento, anote tambi´en las m´ascaras (en cualquier formato) y la ruta por defecto que sigue. 9
  • 10. 43. A˜nada la siguiente IP en su equipo: 192.168.33.X/24 siendo X el ´ultimo n´umero de su IP en el ejercicio anterior. 44. A˜nada la ruta 192.168.33.0/24 a su dispositivo de red, con gateway 192.168.33.254. Si lo hace correctamente deber´a poder hacer ping a 192.168.33.254 y al resto de sus compa˜neros, con sus nuevas IPs. 45. Obtenga un listado de todos los drivers cargados en su sistema. H´agalo de nuevo pero haciendo que aparezcan s´olo por pantalla el de su tarjeta de red, por ejemplo el e1000 o el rtlk8439 de red. 46. Cree un alias que cada vez que es llamado produzca la misma salida que el ejercicio anterior. Este alias se llamar´a ”netmods”. 47. Ejecute el comando echo "Hooooola", pero consiga que en pantalla se vea ”Haaaaala”, despu´es ejec´utelo de nuevo pero consiga que ponga ”Hola”. 48. Ejecute el comando echo "Hooooola", pero consiga que en pantalla se lea ”Hola Munda”. 49. Escriba un gui´on de bash, de nombre misistema.sh, que al ser ejecutado nos diga por pantalla: Sistema operativo.: xxxxxxxxx Kernel............: xxxxxxxxx Arquitectura......: xxxxxxxxx Siendo las xxxxxxxxx los valores reales para su sistema o para cualquiera en el que se ejecute este script. 10
  • 11. 50. Edite de forma segura el fichero de sudoers (no vale con ’vim’), y a˜nada el usuario del profesor. 51. Obtenga una vista a intervalos de 2 segundos del uso de memoria virtual de su sistema. Determine si necesita o no aumentar el tama˜no de swap, y especifique por qu´e. 52. Utilizando una sola l´ınea de comandos obtenga por pantalla la hora actual, una lista de los usuarios conectados al sistema y la capacidad de disco libre en sus particiones, todo a intervalos de 2 segundos. 53. Obtenga una suma de control md5 de cada uno de los ficheros del ejercicio 33. Han de ser diferentes. Ahora copie fichero1.txt sobre fichero2.txt y repita la suma md5 sobre4 el segundo de ellos, observando que sea igual que la del primero. 54. Reinicie inmediatamente su sistema. 55. Consiga, con una sola l´ınea de comandos, que aparezca en pantalla el n´umero de l´ıneas que tiene el fichero /etc/group. 56. Sin ejecutar el cliente ftp, obtenga los ficheros prueba.bin y prueba.bin.md5 del usuario publico del ordenador del profesor. Compruebe que el md5 es correcto. 11
  • 12. 57. Descargue el fichero http://trucolinux.com/files/prueba2.bin. Com- pruebe si el md5 es 4ed3d3fb2af04c05f601f78f2ce73e95. 58. Averig¨ue con una sola orden donde est´a el comando wget. Dicha orden tiene que tardar menos de 1 segundo. 59. Obtenga el nombre de la organizaci´on que tiene registrado el dominio debian.org, adem´as vea cuales son sus servidores de nombres autoritativos. 60. Ejecute un comando que le devuelva cual es el servidor o servidores de correo de debian.org. 12
  • 13. 4. Sobre esta unidad did´actica 4.1. Notas y advertencias Debian: Esta gu´ıa est´a basada en el sistema Debian GNU/Linux, podr´ıa haber peque˜nos cambios si se aplica a otras distribuciones de GNU, pero en su mayor parte funcionar´a bien con la excepci´on de lo referido al sistema de paqueter´ıa de programas, los comandos que empiezan por apt, ya que otras distros no basadas en Debian podr´ıan incorporar sistemas diferentes para el manejo de sus paquetes. 4.2. Derechos Esta gu´ıa se cede bajo contrato Coloriuris. S´olo puede ser utilizada previa aceptaci´on del contrato de cesi´on sito en: http://www.coloriuris.net/contratos/ef5af6aaa441ab9c213273fade56dca1 Dicho contrato garantiza que estoy cediendo los derechos de uso y modifica- ci´on sin ´animo de lucro. 4.3. Agradecimientos El autor quiere reflejar su agradecimiento a todas las p´aginas de Internet que ponen a disposici´on de todo el mundo sus contenidos, as´ı como a todo aqu´el que publica art´ıculos, manuales y experiencias en Internet, ya que eso favorece a la difusi´on del conocimiento y al desarrollo humano. La informaci´on quiere ser libre. Un agradecimiento muy especial a toda la comunidad del Software Libre. Sin ellos el autor vivir´ıa en la oscuridad: Programadores, traductores, asociaciones, hacktivistas, webmasters, etc... Tambi´en quiero agradecer muy especialmente su ayuda a mis alumnos y lectores, por tomarse la molestia de comunicarme las erratas y por darme ideas para mejorar los ejercicios. 4.4. Revisiones El autor ir´a eventualmente publicando revisiones de esta unidad en su p´agina personal, y estar´a encantado de recibir sugerencias y dudas en la misma o en su email: http://jorgefuertes.com. cursos@jorgefuertes.com. Por supuesto se puede contactar con el autor para contratarle para hacer nuevas unidades, adaptaciones, modificaciones, cursos, etc... 13