Escolar Documentos
Profissional Documentos
Cultura Documentos
Phone,
Hay varios sistemas operativos: Google chrome OS, Windows, Mac Os X, Unix, GNU/Linux
GNU/Linux
free
like (minix)
(Beastie)
(u)
(Tux)
Todos ellos tienen ventajas y desventajas, crticos y defensores (por ej. Richard Stallman ha afirmado que Ubuntu es spyware, de FreeBSD se destaca su estabilidad y de GNU/Linux su soporte de hardwrae).
Proyecto GNU
Richard Stallman (USA), creador del (un S.O. libre) y fundador del movimiento por el software libre
(editor Emacs, compilador gcc).
Linus Torvald (Finlandia), creador del kernel Linux. Imagine programar, controlar, planificar y ejecutar la interaccin directa con el hardware, repartiendo el tiempo de procesador entre ellos, grabar en los discos manipulando los cabezales, paginar la memoria, gestionar la jerarqua del sistema de archivos
La/el Shell es una interfaz entre el usuario y el S.O. UNIX fue uno de los primeros S.O. en hacer la interfaz de usuario independiente del S.O. Interpreta las rdenes de usuario y las enva al kernel para su ejecucin.
La primel shell Unix (sh) fue escrita por Ken Thompson en 1971. En 1978 Stephen Bourne escribi el shell Bourne. Y en 1989 Brian Fox escribi el shell bash. (ver /etc/shells)
Algunas rdenes (comandos) del shell bash: Para averiguar rdenes (qu hace, dnde est el archivo, )
Ejemplo
man comando
whatis algo
whatis remove
apropos algo
Idem
Idem
more arch1 arch2, more arch* Muestra archivos una pantalla a la vez :p :n barraespaciadora
Muestra archivos permitiendo ir hacia less arch1 [archN] arriba o hacia abajo (por ej. con las flechas)
cd dir
mkdir nomdir
Crea un directorio
mkdir scripts
Cambia la fecha de un archivo touch nomarch se puede usar para crear el archivo touch archivo2
rmdir nomdir
rmdir prog_dir
rm archivo1.txt, rm r directorio2
mv carta1 ../cartas
mv arch1 arch2
Renombra un archivo
mv carta1 carta.bk
cp arch1...archN nomdir
Copia archivos
cp arch1 copiadea1
ls [nomdir]
ls -la /usr/bin, ls -d
pwd
Pwd
Acerca de usuarios
finger usuario
finger user113
id
Nmero id de un usuario
id user113, id
passwd
Cambia la contrasea
passwd
who
who
du arch-o-dir
du h arch1, du -hs .
file arch
file i archivo1
which progbin
locate
locate arch*
find
Busca archivos
ps
kill 1234
Comando varios
ln -s /users/mike/.profile .
at
cal mes ao
cal 3 2013
date
date
echo string
hostname
hostname
uname
uptime
uptime
write user
write aizen
^D
mesg
mesg n
seq
Y an otros comandos
sort
sort arch1
cut
Combinacin (subshell): () Segundo plano o background: & listaord1 && listaord2 ||,&& solo la ultimaorden -and:2 si 1exitosa
cat /etc/passwd | grep 113 | sort date; who | wc Expansion find . -name arch* no es lo mismo que find . -name arch* pues find . -name archivo1 archivo2 (archivo2 !?) no es un comando correcto vs $ (date; who)|wc
Algunas cosas dignas de mencionar env o set (variables de ambiente) (debug) Pag. 213 de Unix a base de ejemplos.PDF (netstat) bash x script1
source script1 (exporta variables)
compress uncompress tee p.37 apuntesBASH.pdf jobs pinky = finger tar egrep sed awk editores
Cundo utilizar el shell: ...muchos archivos ...tarea repetitiva Scripts.sh (variables de usuario, variables especiales y sentencias de control) La variable $? which who who -s who echo $? ejecut bien who -s ju_noexiste echo $? Despliega 1 porque el ltimo comando fall Despliega 0 porque el ltimo comando se
Se puede hacer en el prompt (fjese que el return se substituye por ;): if grep inf113 /etc/passwd; then echo estoy; fi if grep infff113 /etc/passwd; then echo estoy; else echo no esta; fi cat script_casemenu.sh
#!/bin/bash clear echo "Elija por favor"
echo -e "1)Fecha de hoy 2)Usuarios conectados 3)Directorio actual: \c"
read n case $n in 1) date;; 2) who|more;; 3) pwd;; *) echo "Opcion inexistente... Hasta luego";; esac echo exit 0
cat script_whilemenu.sh
#!/bin/bash while true; do clear echo "Elija por favor"
echo -e "1)Fecha de hoy 2)Usuarios conectados 3)Directorio actual: \c"
2) who|more;; 3) pwd;; *) echo "Opcion inexistente... Hasta luego"; break;; esac echo echo "Digite enter o return " read n done
cat script_ls_porvocales.sh
#!/bin/bash vocales=aeiou echo $vocales echo for i in $(seq 0 4) do ls `echo ${vocales:$i:1}*` echo "que empiezan con ${vocales:$i:1}" echo done exit 0
C:\Documents and Settings\Flia\Configuracin local\Datos de programa\Google\Chrome\User Data\Default\User StyleSheets\Custom.css chrome...UserContent.css -------------------utilizar el shell cuando: ...muchos archivos...tarea repetitiva cd dir. absoluta/relativa man x haceless so: buscar z: /z
Patrones (metacaracteres de sustitucin): ? * [!a-z]*.sh ~ a{b,c,d}1.txt ("se expanden en...") magic number: file * file -i *
combinar rdenes en unica orden lgica: metacaracteres sintcticos: ; | () & -backgroundord1 || ord2 ord1 && ord2 falla, and:2 si 1ex1tosa, ||.&&solo la ultimaorden$ date; who | wc vs $ (date; who)|wc -or:2 si 1
permisos en octal: que significan ? Redireccin de entrada, salida (y stderr) estndar: Algunas rdenes requieren un nomarchivo -si no lo tienen- leen de la entrada estndar (teclado): Ej. cat Otras usan slo la entrada estndar: Ej. mail user113 De otras su salida estndar es la pantalla.Ej.: who cat arch1 Cuando algo sale mal (o se aadendatos extras) algunas rdenes indican esto en la stderr (pantalla). Pero eso se puede cambiar! stdin <: stdout >: /dev/null respeta sus permisos) >>: mail user113 < arch1 cut -d: -f1 < /etc/passwd | sort who > arch2cat arch1.txt > /dev/null time ls > > arch2 (si existe zerea arch2 pero
ls >> archqueseamplia
ls estearchnoexiste 2> arch3 ls estearchnoexiste 2> archqueseamplia cat datos.txt >& arch4 ls equis |& sort > arch1
Combinaciones complejas: orden < envezdestdin > envezdestdout 2> archerrores archerrores cat < archacopiar > archcopiado 2> cat < /dev/null > arch2 sort < sinorden.txt > ordenado.txt ( orden > archsalida ) >& archerrores redireccion conEOD <<: cat <<FinMsg scripts) p.43 de UNIX-a-Base-de-Ejemplos.pdf compresion: gzip arch1 arch1.gz history $HISTFILE Metacaracteres de citacin: \ evita leer el sgte metacaracter " evita leer cadena de metacaracteres (excepto ! eventhistory, $var, `cmd` que se sustituyenporsusvalores ' evita considerar ordenes se interpreta como orden (substitucion de ordenes) (puede usarse en
arreglos: matriz=(uno dos tres) echo $matriz $matriz[2] variables con tipo (declare): declare -i var1=5; declare -i var2=4; declare -i resul=$var1*$var2; echo $resul Expresiones aritmticas: expansin y let y expr y bc: echo "$(( 365 - $(date +%j) )) hast fin de ao" ${matriz[2]}
$((var+=2)) aade dos a la var vale usar: <, >, <= ,>= ,== ,!= let a=4 *3; let x=" (9*5) / 7 "
$[3+4] !, &&, ||
expr (es un evaluador de expresiones no solo aritmticas) bc (es una calculadora bsica) z=`expr $z + 3 echo "3 + 4"|bc sentenciasOinstrucciones: if test while until for(incluir select)
mejor adduser que useradd pues es un comando de bajo nivel ls/home chown, chgrp sobre archivos p.80 4.3:
--------ps -la kill usar top, vmstat, free, uptime, w cat /proc/cpuinfo # informaci n sobre el procesador cat /proc/devices cat /proc/interrupts cat /proc/ioports alias .doc + personalizar prompt # puertos de entrada/salida de dispositivos # sobre los dispositivos
variables $var es una simplificacion de ${var} que es p/strings una simplificacion de ${var:OFFSET:LENGTH} y quizas de ${var%er} ${var% %er} ${var#er} ${var##er} MYVAR=foodforthought.jpg echo ${MYVAR##*fo} ${MYVAR#*fo}
MYFOO="chickensoup.tar.gz" echo ${MYFOO%%.*} ${MYFOO%.*} Expansion indirecta: let ar=2; eval echo ${!ar} parametro enviado-) (agarra $2 -el segundo
Con ! se usa el VALOR de lo que sigue COMO NOMBRE DE VARIABLE que luego se expande con { } echo ${!P*} (agarra PATH, PS1 etc) noeslomismoque paso de argumentos variables de entorno: $# $* $@ $0 $1 $2 ... $9 ${10} IFS=":" echo $P*