Académique Documents
Professionnel Documents
Culture Documents
1.Funcin
Aunque las distribuciones recientes de Linux permiten saltarse la introduccin de instrucciones de texto al ofrecer
entornosgrficosatractivos,unprofesionaldeLinuxnopuedeobviarelfuncionamientodelintrpretedecomandosy
delosprincipalescomandosasociados.
El intrprete de comandos, o simplemente intrprete, ejecuta las instrucciones introducidas con el teclado o en un
scriptyledevuelvelosresultados.Esteintrpreteesunprogramacomnmentellamadoshell.Sepuedeaproximara
lapalabrakernelquevimosantes:elkernelsignificancleo.Amenudo,estrodeadodeunaconchadura(pienseen
unhuesodealbaricoqueomelocotn).Como"shell"significa concha,vieneadecirqueesloquerodeaalncleode
Linux: se utiliza mediante comandos. Por lo tanto, es una interfaz que funciona en modo texto entre el ncleo de
Linuxylosusuarios(avanzados)olasaplicaciones.
Hay varios shells: cada uno dispone de especificaciones propias. El Bourne Shell (sh) es el shell ms conocido y
habitual en los Unix. El CShell (csh) retoma la estructura del lenguaje C. El Korn Shell (ksh) es una evolucin del
BourneShell.ElZShell(zsh)esasuvezunaevolucindelKornShell.ElshelldereferenciaenLinuxsellamaBourne
Again Shell (bash). A continuacin le presentamos una lista exhaustiva de intrpretes de comandos que puede
encontrarenLinux:
sh:ThompsonShell(yanoexiste)
sh:BourneShell(sustituyalanterior)
bash:BourneAgainShell
ksh:KornShell
csh:CShell
zsh:ZShell
tcsh:TenexCShell
ash:AShell
dash:DebianAlmquistShell.
LalistadelosshellsdisponiblesensuinstalacindeLinuxestenelarchivo/etc/shells.
2.Bash:elshellpordefecto
a.Unshellpotenteylibre
ElbashesunderivadodeBourneShell.Bourneeselnombredelprincipalprogramadordeesteshell.Laexpresin
"Bourne Again" es un guio a los orgenes del bash (Bourne) y un juego de palabras en "I born again", lo que
significa"henacidootravez"o"reencarnado".Elbashretomashperotambinfuncionalidadesdekshochs.
ElbashnosloestenLinux.Alserunprogramalibre,sepuedecompilaroejecutarennumerosasplataformas.Es
elshelldereferenciaenlossistemasMacOSXyexistetambinparaWindows.
El shell funciona en un terminal. Originalmente, un terminal es una verdadera mquina que slo dispone de lo
necesario para introducir instrucciones (el teclado) y visualizar los resultados (una pantalla o incluso hace mucho
tiempo una simple impresora con papel listado). Aunque en la actualidad an existan terminales fsicos, en
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 1-
mquinascorrienteshansidosustituidosporprogramasqueemulanterminales. Sedistinguendostiposdeellosen
Linux:
lasconsolasvirtualesdetexto,elmodopordefectodeLinuxcuandoarrancaofuncionabajoentornogrfico
las consolas o terminales grficos, como xterm, eterm o konsole, que son emuladores de terminales en el seno de
ventanasgrficas.
Elshellfuncionaenunterminal.Esperaentradasportecladoenlaconsolaolaventana,yvisualizasusresultados
en el mismo lugar. Cualquier usuario avanzado de Linux o Unix en general tiene al menos un terminal abierto
permanentemente. La apertura de un terminal (o consola, en este caso estas palabras son sinnimas) ejecuta
automticamenteelshellpordefecto.
b.Lneadecomandos
Elshellesperaentradasporeltecladoenunalneallamadalneadecomandosoprompt.Uncursor,representado
porunrectngulofijo,intermitenteouncarctersubrayado,indicalaposicinactualdesuentrada.
Lalnea(prompt)proporcionainformacinenelterminalysuposicinenelsistemadearchivos.
seb@slyserver:/home/public>
seb@slyserver:/home/public$
Enestaclsicalnea,obtienecuatrodatos:
seb:eselnombredeiniciodesesinologindelusuarioactualmenteconectadoalterminal
slyserver:eselnombredeanfitrin(hostname),elnombrelgicodelamquinaconectadaalterminal
/home/public:eslaposicinactualdelshellenelsistemadearchivos
>o$:eslaterminacinestndardelbashparaunusuariosinprivilegios.
Esta lnea le informa de que el usuario sin privilegios de administracin seb es el que utiliza el terminal (est
conectado)enlamquinaslyserveryqueseencuentraactualmenteen/home/public.
Elcarcterdeterminacinpuedetenerotrossignificados:
$indicaqueelusuarionotieneprivilegiosparticulares,comocon>.
#indicaqueelusuarioeseladministradorrootquetienetodoslosprivilegios.
Larutapuedevariar:
seb@slyserver:~$:elcarctertilde~indicaqueseencuentraensudirectoriopersonal.
seb@slyserver:~/test$: al combinarse con ~ (su directorio personal), indica que est en el subdirectorio test de
ste.
LalneadecomandosepuedepersonalizarmodificandounavariabledeentornollamadaPS1.
Para cualquier otra ruta se suele sustituir la lnea de comandos por un simple smbolo de dlar, $, con el fin de
- 2-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
ganarespacio.
3.Utilizarelshell
a.Laintroduccindedatos
Enelterminal,eltecladoseutilizadeformaintuitiva.Puededesplazarseenlalneaconlasflechasdederechae
izquierda del teclado y borrar caracteres con las teclas [Tab] y [Supr]. Ejecute el comando que ha introducido
presionandolatecla[Entrar].
Hayvariosmtodosabreviadosquesonprcticos:
[Ctrl]A:iralprincipiodelalnea.
[Ctrl]E:iralfinaldelalnea.
[Ctrl]L:borrarelcontenidodelterminal,ymostrarlalneadecomandosenlapartesuperior.
[Ctrl]U:borrarlalneahastaelprincipio.
[Ctrl]K:borrarlalneahastaelfinal.
Ha llegado la hora de probar comandos. El comando date indica la fecha y la hora actuales. Por supuesto no
obtendrelmismoresultado,ynosiempreenelmismoidiomadependedesuinstalacindeLinux.
$ date
mi nov 19 18:46:37 CET 2014
Uncomandoprctico,pwd,permitesaberenqudirectorioest.
$ pwd
/home/jolivares
Elshellindicaqueesteneldirectorio/home/jolivares.
b.Sintaxisgeneraldeloscomandos
Loscomandosoinstrucciones(lasdospalabrassonsinnimasenestecaso)GNUtienenamenudounasintaxiscon
lamismaestructura:
Uncomandopuedenotenerniparmetrosniargumentos.Enestecaso,ejecutalaaccinpordefectoparalacual
seprogram,omuestraunmensajedeerror,dehaberlo.
Unparmetroesunaopcindelcomando.Lasdospalabrassonsinnimasaqu.Amenudoesunasimpleletrao
una simple cifra precedida de un guin: -l, -p, -s, etc. Si el comando acepta varios parmetros, los puede
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 3-
parmetros: -lrt. Se aceptan las dos sintaxis: producen el mismo resultado. Simplemente, la segunda es ms
corta.
En ciertos casos, un parmetro necesita un argumento, por ejemplo un nombre de archivo. En este caso, es
preferible separar este parmetro de los dems:
parmetros:-lrtf
-lrt -f miarchivo
miarchivo.
Los argumentos son los valores en los que un comando debe ejecutar su accin. El tipo de valor (archivo, texto,
nmeros)dependedelcomando.
c.Primerejemploconcretoconcal
Tomemos el ejemplo del comando cal. Admite varios parmetros y argumentos. Si se le invoca sin argumentos,
muestraelcalendariodelmesencursoyresaltaeldaactual.
$ cal
Noviembre 2014
do lu ma mi ju vi s
1
2
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
El comando cal admite dos argumentos opcionales. Si se precisa slo uno, se trata del ao, y se muestra el
calendariodeeseaoensutotalidad.Siseleindicandosargumentos,elprimeroeselmeselsegundo,elao.
$ cal 12 1975
diciembre 1975
do lu ma mi ju vi s
7
9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
El comando admite tambin unos parmetros. Observar que por defecto se prev la visualizacin para los
anglosajones: la primera columna es un domingo, que representa el primer da de la semana. En Espaa, es el
lunes.Elparmetro-m(demonday,eningls)permiteprecisarlo:
$ cal -m 12 1975
diciembre 1975
lu ma mi ju vi s do
1
9 10 11 12 13 14
15 16 17 18 19 20 21
- 4-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
22 23 24 25 26 27 28
29 30 31
Un segundo parmetro -3 permite visualizar los meses que preceden y siguen al mes determinado (o el mes en
curso).
diciembre 1975
lu ma mi ju vi s do
3
enero 1976
lu ma mi ju vi s do
9 10 11 12 13 14
lu ma mi ju vi s do
7
5
9 10 11
10 11 12 13 14 15 16
15 16 17 18 19 20 21
12 13 14 15 16 17 18
17 18 19 20 21 22 23
22 23 24 25 26 27 28
19 20 21 22 23 24 25
24 25 26 27 28 29 30
29 30 31
26 27 28 29 30 31
Ycomopuedeagruparlosparmetros,elcomandosiguienteproduceelmismoresultado.
d.Encadenarloscomandos
Puedeejecutarvarioscomandosenunasolalnea,unostrasotros.Paraello,bastaconsepararlosconunpuntoy
coma.
$ date;pwd;cal
lun feb 25 22:29:09 CET 2008
/usr/share/man/man9
febrero 2008
do lu ma mi ju vi s
3
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29
e.Visualizartextoconecho
No hay nada ms sencillo que visualizar texto. El comando echo est hecho para ello. Como casi todos los
comandos,aceptalosparmetros,ademsdelosargumentos,enformadetexto.Paravisualizaruntextosencillo:
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 5-
Puedecolocareltextoentrecomillasosimplesapstrofesparaaclararyagrupareltextoquevaavisualizar. Podr
vermsadelantequeestotieneunsignificadoparticular.
Observeque,pordefecto,sutextosevisualizayechoefectasolounretornodecarroparaempezarotralnea.
Puedemodificarsutextoparaaadirlesecuenciasdecaracteresquetienenunaaccinparticular.Siyaconoceel
lenguajeC,sonlasmismas.Enlalistaseencuentranslolasmsutilizadas:
Secuencia
Accin
\n
Pasaralalnea
\t
Tabulacinhorizontal
\c
Suprimirelsaltodelneafinal
\b
Retornodeuncarcteratrs
\\
Visualizalabarraoblcua
\nnn
Visualizaelcarcterespecificadoenoctal
Parautilizarestassecuencias,aadaelargumento-e:
f.Comandosinternosyexternos
Existendostiposdecomandos:
Loscomandosexternossonprogramasbinariospresentescomoarchivosensudiscoduro(ocualquier otrosoporte
dedatos).Cuandoejecutaelcomando,secargaestearchivoenmemoriayseiniciacomoproceso(estanocinse
explicarenestemismocaptulo).
Loscomandosinternossondelproprioshellyseejecutanenl.Estoscomandosformanpartedelprogramashell,el
bash. Los comandos cd o pwd son dos ejemplos de comandos internos. Cuando los ejecuta, el shell ejecuta las
funcionesdefinidasensuinteriorquelescorresponden.
Puededistinguiruncomandointernodeuncomandoexternoconlaayudadelcomandointernotype.As,datees
uncomandoexterno.Puedeobservarqueesunarchivopresenteen/bin,mientrasquepwdesinternoalshell.
$ type date
date is /bin/date
$ type pwd
pwd es una orden interna del shell
Tambinpuedeencontrarotrostipos,comolosaliasdecomandosquesonatajosdecomandospropiosdelshell.As
elshellbashdeciertasdistribucionesLinuxproponenaliascomoll,quecorrespondeenrealidadalsl.
$ type ll
- 6-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
ll is aliased to `ls -l
g.Algunosatajostiles
Sedebenconoceralgunassecuenciasdeatajosdecomandos:
[Ctrl]C:interrupcindelprograma:setermina.
[Ctrl]Z:paraelprograma(verlosprocesos).
[Ctrl]D:interrumpeunaintroduccindedatosenunsmbolodelsistema>.
4.Elhistorialdecomandos
Leresultarmuytilpodervolverallamarauncomandoqueyaejecutnavegandoporelhistorialdeloscomandos
con las teclas [Flecha arriba] y [Flecha abajo]. La flecha arriba vuelve atrs en el historial. Si ha tecleado los dos
comandosanteriores(dateyluegopwd),alpresionarunaprimeravezenlaflecha arribasevisualizaenlalneade
comandospwd,yalasegundasevisualizaelcomandodate.Laflechaabajonavegaenelotrosentidohastalalnea
deorigen.Sipulsalatecla[Entrar]vuelveaejecutarelcomando.
Cuantos ms comandos teclee, ms se ampla el historial. El shell conserva as un gran nmero de entradas en el
historial(sepuedemodificarelnmerodelneasguardadas).Estehistorialseconservaenunarchivocachdesu
directoriopersonalllamado.bash_history.Puedeverelcontenidodelhistorialconelcomandohistory.Elresultado
siguienteesttruncadodemaneravoluntaria,yaquelalistaesdemasiadolarga.
$ history
...
1000
date
1001
pwd
1002
uname -a
1003
ls
1004
fc -l -5
1005
history
Elcomandofcfuncionacomohistorycuandoseutilizaconelparmetro-l.Pordefecto,selimitaalosltimosquince
comandos.Tambinpuedepasarelnmerodeltimoscomandos,comoacontinuacinparalosdiezltimos:
$ fc -l -10
995
ssh -X seb@192.168.1.130
996
fc -l
997
fc -l -20
998
ls
999
pwd
1000
cd
1001
uname -a
1002
fc -l
1003
cat /etc/passwd
1004
ls -lrtR
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May
- 7-
Puede volver a llamar a un comando con fc y el parmetro -s seguido del nmero del comando. Entonces se
ejecutardemaneraautomtica.
$ fc -s 1001
uname -a
Linux slyserver 2.6.22.17-0.1-default #1 SMP 2008/02/10 20:01:04 UTC
x86_64 x86_64 x86_64 GNU/Linux
Finalmente,puedesustituirunelementodelcomandoporotroantesdeejecutarlo.Porejemplo,puedesustituir fc
porlsenlaentrada1002delhistorial:
$ fc -s fc=ls 1002
ls -l
total 775944
-rw-r--r--
1 seb users
15391 may 14
2007 AR-1179161176460.pdf
...
- 8-
Editions ENI Tous droits rservs Copie personnelle de Noe Fernando Solis May