Vous êtes sur la page 1sur 16

Gnu/Linux Shell, Html, Css y JavaScript Sin dejar de mencionar los sistemas operativos para mviles: Android, Windows

Phone,

Hay varios sistemas operativos: Google chrome OS, Windows, Mac Os X, Unix, GNU/Linux

GNU/Linux

free

like (minix)

(Beastie)

(u)

(Tux)

Y an dentro de Linux hay varias distribuciones:

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

El kernel (el S.O.) hace ello.

Este es el famso e-mail de Linus Torvald al grupo comp.os.minix:


Hola a todos aquellos que usan Minix Estoy haciendo un sistema operativo (gratuito) (solamente una aficin, no ser grande ni profesional como el GNU) para clones 386(486) AT. Este ha estado gestndose desde abril, y est comenzando a estar listo. Me gustara recibir cualquier comentario sobre las cosas que gustan/disgustan en minix, ya que mi SO (Sistema Operativo) se le parece un poco (la misma disposicin fsica del sistema de archivos, debido a motivos prcticos, entre otras cosas). Actualmente he portado bash(1.08) y gcc(1.40), y las cosas parecen funcionar. Esto implica que conseguir algo prctico dentro de unos meses, y me gustara saber qu caractersticas quiere la mayora de la gente. Cualquier sugerenciaes bienvenida, pero no prometer que las pondr en prctica PD. S es libre de cualquier cdigo de minix, y tiene un sistema de archivos multi-hilo. NO es portable (usa conmutacin de tareas 386 etc.), y probablemente nunca ser soportada por nada ms que los discos duros AT, porque es todo lo que tengo .

Linus Benedict Torvalds (torvalds@kruuna.helsinki.fi)

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

Ayuda del comando especificado

man ls, man k printer

whatis algo

Busca informacin sobre algo

whatis remove

apropos algo

Idem

Idem

whereis nomorde n Localiza archivos relacionados a nomorden whereis grep

Para ver archivos

cat arch1 [archN]

(Concatena y) muestra archivos

cat /etc/passwd, cat > nomarch

more arch1 [ archN]

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)

less arch1 arch2, less arch* :p :n

tail arch1 [archN]

Muestra archivos (su ltima parte)

tail arch1 arch2, tail arch*

head arch1 [ archN]

Muestra archivos (su primera parte)

head arch1 arch2, head arch*

Para moverse a travs de los directorios (direccin absoluta/relativa)

cd dir

Cambia de directorio cd /var/log, cd ..

Para trabajar con directorios y archivos

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

Borra un directorio vaco

rmdir prog_dir

Borra un archivo rm nomarch Con la opcin r borra un directorio y todo su contenido

rm archivo1.txt, rm r directorio2

mv arch1 ...archN dir

Mueve el(los) archivo(s) a un directorio

mv carta1 ../cartas

mv arch1 arch2

Renombra un archivo

mv carta1 carta.bk

cp arch1...archN nomdir

Copia archivos

cp arch1 copiadea1

ls [nomdir]

Lista el contenido del directorio

ls -la /usr/bin, ls -d

pwd

Muestra la ruta del directorio actual

Pwd

chmod permisos arch

Cambia los permisos de un archivo

chmod u+x script1.sh

chown usuario:grupo arch Cambia el dueo un archivo

chown nobody script

Acerca de usuarios

finger usuario

Muestra informacin sobre un usuario en la red

finger user113

id

Nmero id de un usuario

id user113, id

passwd

Cambia la contrasea

passwd

who

Muestra los usuarios conectados al sistema

who

Muestra los usuarios conectados y qu hacen

Para comparar, determinar propiedades y buscar archivos

du arch-o-dir

Estima el espacio utilizado

du h arch1, du -hs .

diff [-e]arch1 arch2

Encuentra diferencias entre archivos

diff arch1.c arch2.c

file arch

Muestra el tipo de un archivo

file i archivo1

which progbin

Busca binarios en el PATH del usuario which who

locate

Busca archivos (va BD)

locate arch*

find

Busca archivos

find . -name *.sh print0

grep expr archivos

Busca patrones en archivos

grep v 113 /etc/passwd

Para trabajar con/ver procesos

ps

Muestra los procesos que se estn ejecutando ps -A, ps ef

kill [-seal] PID

Matar un proceso (terminarlo)

kill 1234

Comando varios

ln [-s] arch acceso

Crea un acceso directo a un archivo

ln -s /users/mike/.profile .

at

Ejecuta un comando ms tarde

at 6pm Friday script1

cal mes ao

Muestra un calendario del mes/ao

cal 3 2013

date

Muestra la hora y la fecha

date

echo string

Escribe mensaje en la salida estndar echo Mensaje

hostname

Muestra informacin sobre el host

hostname

uname

Muestra informacin sobre el sistema uname -a

uptime

Tiempo de encendido del sistema

uptime

write user

Enva un mensaje a otro usuario

write aizen

^D

mesg

Controla el acceso de mensajes

mesg n

seq

Imprime una secuencia de nmeros

seq 2 9, seq sw; 13

Y an otros comandos

sort

Ordena la entrada en stdout

sort arch1

cut

Corta ciertas columnas de un archivo cut d: -f1,5 /etc/passwd

past Graba las columnas de los archivos e


uno al lado del otro

paste d: arch1 arch2

Combinar rdenes en una nica orden lgica: Metacaracteres sintcticos:

Secuenciacin: ; Pipe, cauce o tubera:| -or:2 si 1 falla Ejemplos:

Combinacin (subshell): () Segundo plano o background: & listaord1 && listaord2 ||,&& solo la ultimaorden -and:2 si 1exitosa

Or,And: listaord1 || listaord2

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

La variable $# y el if cat script_if_y_numparam.sh


#!/bin/bash if [ "$#" -ne 1 ] then echo "Debe incluir un parametro" exit 1 fi echo ingreso un solo parametro, correcto! exit 0

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"

read n case $n in 1) date;;

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

stderr 2>: 2>>: stdout y stderr >&: >>&

ls estearchnoexiste 2> arch3 ls estearchnoexiste 2> archqueseamplia cat datos.txt >& arch4 ls equis |& sort > arch1

|&: combina stderr y stdout

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

como se excribe la primeralinea de scripts

whereis bash(!) bash script1.sh

sin permisos a script1.sh hacer: source script1.sh

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*