___________________________________________________________________________________
INTRODUCCION A COMANDOS LINUX Y BASH
ACORDARSE DE PONER SIEMPRE PUNTO Y COMA AL FINALPARA USAR EN LA LINEA DE COMANDOS
| ls [-al] [patron*] | Listado de Ficheros como dir. [-a muestra los ocultos] [-l muestra listado ancho] |
| cd / | cambia al directorio raiz |
| cd .. | al directorio superior |
| cd [~] | cambia al directorio personal (/home/usuario) |
| cd directorio | cambia a ese directorio |
| mkdir dir1 dir... | Crea directorios |
| rmdir dir1 | Elimina directorios |
| cp origenes destino | Copia archivos |
| mv original destino | Mueve Archivos (y renombra) |
| rm files... | Eliminar ficheros |
| find dir -name "fichero" [-type t] [-cmd comando] | Busca archivos en dir, con nombre "archivo" de tipo t(=b(loques), c(caracteres),d(directorio)) y ejectua el comando |
| ln -s origen destino | crea enlaces simbólicos (acceso directo) |
| mtools(mcd,mcopy,mdir,mdel,mren,mdeltree...) | Actua con disketes de msdos sin tener que montarlos |
| diff -b -r | Diferencias - b(omitiendo espacios) -r(recursivo en directorios) |
| chmod [ugoa][+-][rwx] file | Cambia permisos de ficheros a u(suario) g(rupo) o(tros) a(todos) añadiendo(+) o quitando(-) los permisos de lectura(r) escritura(w) o ejecucion(x) |
| access -[rwx] file | devuelve cierto si los permisos son esos (para usar en scripts) |
| clear | Borra .la pantalla |
| file fichero | Muestra de que tipo es un archivo (ejecutable, binario, texto...) |
| which ejecutable | Muestra la ruta de una aplicacion |
| ldd rutaejecutable | Listado de los archivos que necesita el ejecutable para funcionar |
| ./fichero | Ejecuta el fichero si tiene permiso |
| . fichero | Tambien ejecuta el fichero |
| cat fichero | Lista contenidos de un fichero (como type en msdos) |
| fmt file | Formatea como texto de párrafo el archivo |
| cut [-c character] [-f field -d delimitador] | cut -d: -f1 /etc/passwd |
| paste -d delim ficheros | Une varios archivos por columnas en la salida estandar |
| more -s archivo | (-s suprime las lineas en blanco con una sola) |
| head -# archivo | Muestra las # primeras lineas de un archivo |
| tail -# fichero | Muestra las # ultimas lineas de un archivo |
| uniq [-u] [-d] [-s] archivo | Muestra (-u las lineas no repetidas) (-d una de cada linea repetida) (-s elimina lineas vacias seguidas con una sola) |
| date | muestra fecha y hora |
| date MMddhhmmyyyyss | Cambia la hora a ese MMes ddia hhora mminuto yyyyaño ssegundo |
| mount /dev/hda1 /mnt/dos | Carga el sistema de ficheros del primer disco duro(hda) de la primera particion (1) en la carpeta /mnt/dos (que debe estár creada |
| mount /dev/fd0h1440 /mnt/floppy | Monta el diskete con el sistema que contenga por defecto |
| pwd | Muestra el directorio donde estamos |
| set | Muestra las variables de entorno proximo |
| env | Muestra las variables de entorno |
| du | Muestra espacio ocupado por archivos y directorios (-s muestra total) |
| df | Espacio libre en discos |
| quota | Espacio permitido por el root para nosotros |
| mbadblocks a: | Marca los sectores defectuosos de un diskete |
| finger nombre | Obtener datos del usuario |
| chfn | Cambiar informacion de finger |
| chsh unshell | Cambia de shell por defecto |
| chgrp usuario nuevogrupo | Cambia grupo propietario de archivos |
| chown newuser /ficheros | cambia usuario propietario de archivos |
| last | Ultimos usuarios conectados |
| logname | Nombre con el que se ha iniciado sesión |
| passwd [usuario] | cambia la contraseña |
| #adduser|useradd nombre | crea usuario |
| #addgroup|groupadd nombre | crea grupo |
| #usermod | |
| #userdel [-r] usuario | Elimina un usuario (-r y sus archivos) |
| who | Muestra los que estan conectados |
| groups | Muestra los grupos en que estamos incluidos |
| last | Ultimos logins en el sistema |
| logname | Muestra login con el que entramos |
| ps -x | Muestra todos los procesos |
| w | Muestra los usuarios conectados y lo que están haciendo |
| kill # | Mata el proceso numero # |
| Kill 0 | Mata todos los procesos excepto el shell actual |
| bg ### [Ctrl^Z] | Cambia a segundo plano el programa actual |
| fg # | Cambia a primer plano el job # |
| jobs | Mujestra los trasbajos en segundo plano |
| tty | Muestra el nombre del terminal actual |
| shutdown [-h|-r] [+mm|hh:mm|now] "Men saje" | Reinicia (-r) o para el sistema(-h) despues de +mm minutos o a la hh:mm hora indicada presentando el mensaje |
| halt | Detiene el sistema. Con lo que se puede apagar con seguridad |
| gzip [-c] [-d] [-l] [-r] files | Comprime en la stdout (hay que redirigir a un archivo) -c(conservando originales) -d(descomprime) -l(lista archivo comprimido) -r(recursivo en directorios) |
| tar -zxvf archivo | Extrae los archivos pasando por gzip en el archivo indicado (para archivos .tgz |
| tar -czvf comprimir.tgz * | Comprime en comprimir.tgz todos los archivos |
| grep -i "cadena" fihceros |
grep --help
Modo de empleo: grep [OPCIÓN]... PATRÓN [FICHERO] ...
Busca PATRÓN en cada FICHERO o en la entrada estándar.
Ejemplo: grep -i 'hello world' menu.h main.c
Selección e interpretación de Expreg:
-E, --extended-regexp PATRÓN es una expresión regular extendida
-F, --fixed-strings PATRÓN es un conjunto de cadenas separadas por
caracteres de nueva línea
-G, --basic-regexp PATRÓN es una expresión regular básica
-P, --perl-regexp PATRÓN es una expresión regular en Perl
-e, --regexp=PATRÓN utiliza PATRÓN como expresión regular
-f, --file=FICHERO obtiene PATRÓN de FICHERO
-i, --ignore-case considera iguales mayúsculas y minúsculas
-w, --word-regexp obliga a que PATRÓN coincida solamente
con palabras completas
-x, --line-regexp obliga a que PATRÓN coincida solamente
con líneas completas
-z, --null-data una línea de datos termina en un byte 0, no
en un carácter de nueva línea
Variadas:
-s, --no-messages suprime los mensajes de error
-v, --invert-match selecciona las líneas que no coinciden
Control del resultado:
-m, --max-count=NÚM se detiene después de NÚM coincidencias
-b, --byte-offset muestra el desplazamiento en bytes junto
con las líneas de salida
-n, --line-number muestra el número de línea junto con
las líneas de salida
--line-buffered descarga el resultado para cada línea
-H, --with-filename muestra el nombre del fichero para cada
coincidencia
-h, --no-filename suprime los nombres de los ficheros en
el resultado
-o, --only-matching muestra solamente la parte de una línea que
encaja con PATRÓN
-q, --quiet, --silent suprime todo el resultado normal
-d, --directories=ACCIÓN especifica cómo manejar los directorios
ACCIÓN es 'read', 'recurse', o 'skip'
-R, -r, --recursive equivalente a --directories=recurse
--include=PATRÓN examina los ficheros que encajan con PATRÓN
--exclude=PATRÓN se salta los ficheros que encajan con PATRÓN
--exclude-from=FICHERO se salta los ficheros que encajan con los patrones
de FICHERO
-L, --files-without-match muestra solamente los nombres de FICHEROs
que no contienen ninguna coincidencia
-l, --files-with-matches muestra solamente los nombres de FICHEROs
que contienen alguna coincidencia
-c, --count muestra solamente el total de líneas que coinciden
por cada FICHERO
-Z, --null imprime un byte 0 después del nombre del FICHERO
Control del contexto:
-B, --before-context=NÚM muestra NÚM líneas de contexto anterior
-A, --after-context=NÚM muestra NÚM líneas de contexto posterior
-C, --context=NÚM muestra NÚM líneas de contexto
-NÚM lo mismo que --context=NÚM
--color[=CUÁNDO],
--colour[=CUÁNDO] distingue con marcadores la cadena que encaja
CUÁNDO puede ser `always', `never' o `auto'.
-U, --binary no elimina los caracteres de retorno de carro
finales de línea (MSDOS)
-u, --unix-byte-offsets cuenta los desplazamientos como si no hubiera
retornos de carro (MSDOS)
`egrep' significa `grep -E'. `fgrep' significa `grep -F'.
Si no se especifica ningún FICHERO, o cuando es -, lee la entrada estándar.
Si se dan menos de dos FICHEROs, se supone -h. La salida es 0 si hay
coincidencias, 1 si no las hay, y 2 en caso de problema
Comunicar bichos a |
PARA USAR EN SCRIPTS BASH
| Variables dentro de los Scripts(o dentro de las subrutinas) | Descripcion |
| $0 | Nombre y ruta del script |
| $# | Numero de argumentos pasados |
| $* | Lista de todos los argumentos |
| $@@ ó "$@" | Igual que el anterior pero cada uno entrecomillado |
| $1 $2 ... $n | Cada uno de los argumentos hasta n |
| $- | Lista de las opciones o modificadores pasados |
| $? | error generado por el ultimo comando |
| $! | PID (identificador) del ultimo comando ejecutado |
| $$ | PID del script actual |
if [ condicion ];then ... elif [ condicion ];then ... else ... fi | El then debe ir en nueva linea, pero el ; es como una nueva linea Debe haber espacios entre los corchetes |
if test -parametro fichero then ...elif...else... fi | En este formato con test no hacen falta los corchetes, en un if con corchetes se pueden usar los parametros sin test |
while [ condicion ];do ... done | Si en vez de poner "[ cond ]" ponemos dos puntos (while : ;do...) ejecuta el loop indefinidamente)!! |
until [ condicion ];do ... done | |
for variableTemporal in lista;do echo $variableTemporal done | lista es una lista de elementos con espacios 1 2 3 6 3 ó pepe juan jorge etc |
for $file in *;do echo $file done | Recorre todos los archivos del directorio actual |
read a case $a in Ana|Pepe) echo "Eres ana o pepe";; [xX]) echo "Pulsaste x o X";; *) echo "No se que escribiste" esac | Como un switch en C |
nombrefuncion ()
{
echo "Primer parametro es $1 ..."
return $2
}
| Subrutina |
| `who` | (acento a la derecha) Evalua como comando |
| $(expr 1 +1) | Evalua como comando |
| $((1 + 2)) | Evalua como expresion matemática |
| $[1 +2] | Lo mismo quel anterior |
| let a=1+2 | lo mismo que lo anterior |
| $var | Contenido de var |
| ${var} | Lo mismo pero permite poner por ejemplo ${1} o ${$i} donde $i es 1 |
| ${var-default} | $var si esta definido sino la palabra default |
| ${var?mensaje} | $var si esta definido sino un mensaje de error y fin del programa |
| ${var+default} | la palabra default si $var esta definido, si no no pone nada |
| -s file | Archivo no está vacio |
| -e file | El fichero existe |
| -f file | El fichero es un archivo y existe |
| -d file | Es un directorio y existe |
| -L file | Es un link simbolico |
| -w file | Es un fichero escribible |
| -r file | Es read-ónly |
| -x file | Es ejecutable |
| -O file | Pertenece a nuestro usuario |
| -G file | Pertenece a nuestro grupo |
| file1 -nt file2 | (newer than) Si file1 es mas nuevo que file2 |
| file1 -ot file2 | (older than) Si file1 es mas viejo que file2 |
| if test -s .bashrc ; ó if [ -s .bashrc ] ; | |
| cad1 = cad2 | cad1 es igual a cad2 |
| cad1 != cad2 | Cadena 1 distinta de cad2 |
| -n cad | Caqdena NOT NULL |
| -z cad | Cadena ES NULL(zero) |
| -l cad | Devuelve el tamaño de la cadena |
| ! expresion | NOT |
| exp1 -a exp2 | AND |
| exp1 -o exp2 | OR |
| -eq | 5 = 5 |
| -ne | 5 != 16 |
| -lt | 5 < 6 |
| -gt | 6 > 5 |
| -le | 5 <= 5 |
| -ge | 6 >= 6 |
Apuntes de ultima hora
Parecidos al array de C se crea como en C:
# var[0]=Hola
# var[5]="Adios Amigo"
pero se usan de otra manera; probemos que pasaría si lo usaramos normalmente:
# echo $var[0] //mal
esto imprimiría solo $var y a continuacion un [0].
Hay que poner asi:
# echo ${var[0]} //bien
para que interprete la variable junto al indice.
En u for
for temp in ${var[*]} //hay que entregarle una lista; i.e. el contenido
do
echo ${var[$temp]}; //evaluamos el contenido del ciclo actual ($temp)
done
|
Autor: GerardoCastroMartinez2003
No hay comentarios:
Publicar un comentario