___________________________________________________________________________________
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