#!/bin/bash
echo escribe una palabra
read PAL1
echo escribe otra palabra
read PAL2
if [ -z "$PAL1" ]; then "la opción -z es para ver si hay valores nulos"
echo no puede haber valores nulos
exit
elif [ -z "$PAL2" ]; then "al poner la variable entre comillas dobles"" es para que tenga en cuenta espacios en blanco
echo no puede haber valores nulos
exit
fi
if [ "$PAL1" \> "$PAL2" ] "para cualquier operación siempre anteponer el backslash "\" "
then
echo la mayor es "$PAL1"
else
echo la mayor es "$PAL2"
fi
Experiencias diarias con un punto de vista y pensamientos distintos a lo acostumbrado.
viernes, 17 de diciembre de 2010
jueves, 16 de diciembre de 2010
SQL ORACLE
para ver las tablas creadas:
select table_name
from user_tables;
from user_tables;
ejemplo de ejercicio:
CREATE TABLE Psicologos( -------------------------> crea la tabla
NIF Varchar2(10), -------------------------> atributo y tipo de datos
Nombre Varchar2(15) NOT NULL,
Apellido1 Varchar2(15) NOT NULL,
Apellido2 Varchar2(15),
Especialidad Varchar2(15) NOT NULL,
Direccion Varchar2(50),
Constraint PK_Psicologos PRIMARY KEY (NIF) -------------------------> clave primaria
);
CREATE TABLE Pacientes(
NIF Varchar2(10),
Nombre Varchar2(15) NOT NULL,
Apellido1 Varchar2(15) NOT NULL,
Apellido2 Varchar2(15),
Fec_Nacim Date NOT NULL,
Telefono Varchar2(10),
Constraint PK_Pacientes PRIMARY KEY (NIF),
Constraint CH_fec_nacim CHECK (Fec_Nacim >= TO_DATE('01/01/1900','DD/MM/YYYY'))
); -------------------------> check de restricciones y ");" es para terminar
CREATE TABLE Transtornos (
Cod_Transtorno Number(5),
Nombre Varchar2(25) NOT NULL,
Sintomas Varchar2(250) NOT NULL,
Constraint PK_Transtornos PRIMARY KEY (Cod_Transtornos),
Constraint CH_Cod_trans CHECK (Cod_Transtornos >=0)
);
CREATE TABLE Terapias (
Cod_Terapia Number(5),
Nombre Varchar2(25) NOT NULL,
Observaciones Varchar2(250) NOT NULL,
Constraint PK_Terapias PRIMARY KEY (Cod_Terapia),
Constraint CH_Cod_terap CHECK (Cod_Terapia >=0)
);
CREATE TABLE Sesiones(
NIF_PS Varchar2(10),
NIF_PA Varchar2(10),
Cod_Transtorno Number(5),
Cod_Terapia Number(5),
Fecha Date,
Constraint PK_Sesiones PRIMARY KEY (NIF_PS,NIF_PA,Cod_Transtornos,Cod_Terapia,Fecha),
Constraint CH_Fecha CHECK (Fecha >= TO DATE('01/01/1990','DD/MM/YYYY')),
Constraint FK_ses_psi FOREIGN KEY (NIF_PS)
REFERENCES Psicologos (NIF)
ON DELETE CASCADE,
Constraint FK_ses_pa FOREIGN KEY (NIF_PA)
REFERENCES Pacientes (NIF)
ON DELETE CASCADE,
Constraint FK_ses_pa FOREIGN KEY (NIF_PA)
REFERENCES Pacientes (NIF)
ON DELETE CASCADE,
);
----------------------------------- Inserción de datos ------------------------------------
INSERT
INTO Psicologos --------> en la tabla
VALUES ('PS123456','JUAN,'PÉREZ',GARCÍA','CLÍNICA','C/REAL'); ----> valores
INSERT
INTO Pacientes
VALUES ('PA123444','MARÍA','GARCÍA','LÓPEZ',TO_DATE('12/12/1980','DD/MM/YYYY'),'666666');
INSERT
INTO Transtornos
VALUES (100,'JORCH','SINTOMAS');
INSERT
INTO Terapias
VALUES (1,'PSICOANÁLISIS','OBSERVACIÓN');
INSERT
INTO Sesiones
VALUES('PS123456','PA123444',100,1,SYSDATE);
COMMIT; --------------------------------> es para validar los cambios
viernes, 26 de noviembre de 2010
Ejemplos Shell (linux)
.........................................inicio (test -L)...............................................
#!/bin/bash
if test -L $1; then #devuelve verdadero o falso, si test -L es verdadero entonces es un enlace simbolico
echo $1 es un enlace simbolico
else
echo $1 no es un enlace simbolico
fi
.................................................fin.........................................................
#!/bin/bash
if test -L $1; then #devuelve verdadero o falso, si test -L es verdadero entonces es un enlace simbolico
echo $1 es un enlace simbolico
else
echo $1 no es un enlace simbolico
fi
.................................................fin.........................................................
jueves, 25 de noviembre de 2010
miércoles, 24 de noviembre de 2010
Opciṕn Test (Linux
test -f ( si es un fichero devuelve 0)
test -s (si el tamaño es mayor a 0 devuelve 0)
test -d (si es un directorio devuelve 0)
test -x (si tiene permiso de ejecución devuelve 0)
en lugar de test se pueden usar corchetes
---------------------------------------(en el fichero.sh)........................................................
[ -d /home ]
echo $?
.....................................................(fin)..............................................................
Evaluar cadenas de caracteres
...................................................(en el fichero.sh)............................................
#[ cadena1 = cadena2 ]
[ "$1" = "$2" ]
echo $?
[ "$1" != "$2" ]
echo $?
....................................................(fin)...............................................................
.................................................(en el fichero.sh).............................................
#Comparar numeros
# -eq (igual)
# -ne (distinto de)
# -lt (menor que)
# -gt (mayor que)
read N1
read N2
[ $N1 -eq $N2 ]
echo $?
[ $N1 -ne $N2 ]
echo $?
[ $N1 -lt $N2 ]
echo $?
[ $N1 -gt $N2 ]
echo $?
....................................................(fin).............................................................................................................................(fichero.sh)..............................................
# usar el if
if [ -d $1 ]
# ve si existe el directorio
then ls -ld $1
elif [ -f $1 ]
# ve si es un fichero
then
cat $1
else
echo creo que no existe
fi
.............................................................(fin)............................................................
test -s (si el tamaño es mayor a 0 devuelve 0)
test -d (si es un directorio devuelve 0)
test -x (si tiene permiso de ejecución devuelve 0)
en lugar de test se pueden usar corchetes
---------------------------------------(en el fichero.sh)........................................................
[ -d /home ]
echo $?
.....................................................(fin)..............................................................
Evaluar cadenas de caracteres
...................................................(en el fichero.sh)............................................
#[ cadena1 = cadena2 ]
[ "$1" = "$2" ]
echo $?
[ "$1" != "$2" ]
echo $?
....................................................(fin)...............................................................
.................................................(en el fichero.sh).............................................
#Comparar numeros
# -eq (igual)
# -ne (distinto de)
# -lt (menor que)
# -gt (mayor que)
read N1
read N2
[ $N1 -eq $N2 ]
echo $?
[ $N1 -ne $N2 ]
echo $?
[ $N1 -lt $N2 ]
echo $?
[ $N1 -gt $N2 ]
echo $?
....................................................(fin).............................................................................................................................(fichero.sh)..............................................
# usar el if
if [ -d $1 ]
# ve si existe el directorio
then ls -ld $1
elif [ -f $1 ]
# ve si es un fichero
then
cat $1
else
echo creo que no existe
fi
.............................................................(fin)............................................................
jueves, 18 de noviembre de 2010
Linux (shell)
Escribir comandos en un fichero de texto
Guardar el fichero
Dar permisos de ejecución (chmod +x nombrefichero)
Escibir en la consola ./nombrefichero
Argumentos de un Shell
Hay q crear un fichero con extensión “.sh”
$0 => Argumento/parámetro 0 (dólar cero es el Argumento del programa (donde está)) (imprime)
$# => guarda el número de argumentos que recibe el programa
$* => guarda la cadena de argumentos (excluyendo $0)
$? => guarda el código de retorno de la última orden ejecutada (0 si no hay error, distinto de 0 si lo hay)
Operadores:
+ sumar
-restar
*multiplicar
/dividir
% para el resto de la división
Ejemplo:
Read a b
C=`expr $a\*$b`
Echo $cAlternativa:
En vez de usar "expr" se puede usar los operadores [corchetes]
Operadores relacionales
Sirve para empezar palabras argumentos, números...
Si el resultado de la comparación es cierto, devuelven 1,
Si es fichero, devuelven 0
= (compara si son iguales)
!= (distinto)
> (mayor que)
< (menor que)
Hay que usarlos con \
\> \<
>= (mayor o igual) <=(menor o igual)
Operadores lógicos
Se usan para comparar 2 argumentos (arg1, arg2).
devuelven un argumento o parte del otro
& -> Y arg1 & arg2
Si arg1 y arg2 son distintos de cero, el resultado es arg1, si no, el resultado es arg2
: (2 puntos)
argi : arg2
arg2 es el patrón buscado en arg1. Si el patrón arg 2 está encerrado entre paréntesis \( u \), el resultado es la parte de arg1 que coincide con arg2, si no, el resultado es el número de caracteres que cpinciden.
NOTA: | y ¬ deben ir precedidos de \ ... \|, \&
Ejemplo:
a= junio_2001
b=`expr $a :'\([a-z]*\)'`
echo b
viernes, 12 de noviembre de 2010
ejemplo de recursividad en C++
#include
main()[
long int x,y;
printf("Escribe un numero\n");
scanf("%li",&x);
y=factorial (x);
printf("%li",y);
}
long int factorial(long int n){
if (n==1) return1;
else return n*factorial (n-1)
}
main()[
long int x,y;
printf("Escribe un numero\n");
scanf("%li",&x);
y=factorial (x);
printf("%li",y);
}
long int factorial(long int n){
if (n==1) return1;
else return n*factorial (n-1)
}
miércoles, 3 de noviembre de 2010
(linux)
Comando chfn:
permite cambiar la informacion del contacto del usuario
.
.
.
Fichero /etc/fstab: es para montar automaticamente
Este fichero contiene la informacion necesaria para automatizar el proceso de montaje de las particiones.
En general,se usa para dispositivos internos, CD/DVD, Comparticiones por red (NFS, Samba) y dispositivos extraibles
Si un dispositivo o particion no aparece en /etc/fstab, solo lo puede montar el root.
Campos:
-Dispositivo (device)
-Punto de montaje (mount point)
-Sistema de ficheros (file system type)
-Opciones
-Dumb
-Pass
-Dispositivos: dispositivo o particion que queremos montar.
Dispositivos => /dev/sda1 (a,b,c, el dispositivo; 1,2,3 la particion; sd= SCSI)
/dev/sda2
/dev/sdb1
/dev/hda3
o identificados por el nombre UUID
sudo blkid => listar nombres UUID
para montar ... ejemplo:
cd media
sudo mkdir windows(ejemplo)
sudo mount -t ntfs /dev/sda1 wondows (puedes ver donde está el dispositivo con "blkid")
cd windows
ls (y ya está)
... para desmontar ... sudo umont windows
cd windws
ls (y ya no está)
Carpeta compartida vía NFS
IP_Servidor: ruta_local_directorio_compartido
172.16.205.87 : /home/carpeta_compartida
Carpeta compartida vía samba:
//servidor/Carpeta_compartida (*-IP ó Nombre Netbios)
Punto de montaje:
-ntfs para carpetas compartidas vía NFS (Network File System)
Opciones:
-defaults: rw, exec, nouser
auto, async
-Sync /async: la entrada y la salida al sistema de ficheros debería ser sincrona/asincrona
- auto: el sistema de ficheros se puede montar automaticamente, al iniciar el sistema o con el comando mount -a ... -a = montar todo lo que esté especificado en el fichero /etc/fstb
-noauto: hay que montar explicitamente el sistema de ficheros
-exec/noexec: permitir/no permitir la ejecucion de binarios en el sistema de ficheros
-ro: solo lectura (read only)
-rw:lectura y escritura.
-user: permitir a cualquier usuario montar el sistema de ficheros. Implica noexec
-nouser: solo permite al montar el sistema de ficheros
Dump:
Sirve para indicar que se hagan copias de seguridad del sistema de ficheros.
El valor 0 es para que no se haga, 1 para que sí.
Pass:
Para indicar si hay que chequear que el sistema de ficheros (ejecutar el comando fsck)
Valores:
0 => no chequear
permite cambiar la informacion del contacto del usuario
.
.
.
Fichero /etc/fstab: es para montar automaticamente
Este fichero contiene la informacion necesaria para automatizar el proceso de montaje de las particiones.
En general,se usa para dispositivos internos, CD/DVD, Comparticiones por red (NFS, Samba) y dispositivos extraibles
Si un dispositivo o particion no aparece en /etc/fstab, solo lo puede montar el root.
Campos:
-Dispositivo (device)
-Punto de montaje (mount point)
-Sistema de ficheros (file system type)
-Opciones
-Dumb
-Pass
-Dispositivos: dispositivo o particion que queremos montar.
Dispositivos => /dev/sda1 (a,b,c, el dispositivo; 1,2,3 la particion; sd= SCSI)
/dev/sda2
/dev/sdb1
/dev/hda3
o identificados por el nombre UUID
sudo blkid => listar nombres UUID
para montar ... ejemplo:
cd media
sudo mkdir windows(ejemplo)
sudo mount -t ntfs /dev/sda1 wondows (puedes ver donde está el dispositivo con "blkid")
cd windows
ls (y ya está)
... para desmontar ... sudo umont windows
cd windws
ls (y ya no está)
Carpeta compartida vía NFS
IP_Servidor: ruta_local_directorio_compartido
172.16.205.87 : /home/carpeta_compartida
Carpeta compartida vía samba:
//servidor/Carpeta_compartida (*-IP ó Nombre Netbios)
Sistemas de ficheros:
sistemas de ficheros... que se va a montar
Ejemplos:
auto: determine automaticamente el sistema de ficheros
ntfs: ntfs-sg
rwPunto de montaje:
-ntfs para carpetas compartidas vía NFS (Network File System)
Opciones:
-defaults: rw, exec, nouser
auto, async
-Sync /async: la entrada y la salida al sistema de ficheros debería ser sincrona/asincrona
- auto: el sistema de ficheros se puede montar automaticamente, al iniciar el sistema o con el comando mount -a ... -a = montar todo lo que esté especificado en el fichero /etc/fstb
-noauto: hay que montar explicitamente el sistema de ficheros
-exec/noexec: permitir/no permitir la ejecucion de binarios en el sistema de ficheros
-ro: solo lectura (read only)
-rw:lectura y escritura.
-user: permitir a cualquier usuario montar el sistema de ficheros. Implica noexec
-nouser: solo permite al montar el sistema de ficheros
Dump:
Sirve para indicar que se hagan copias de seguridad del sistema de ficheros.
El valor 0 es para que no se haga, 1 para que sí.
Pass:
Para indicar si hay que chequear que el sistema de ficheros (ejecutar el comando fsck)
Valores:
0 => no chequear
Comando usermod (linux)
Se usa para modificar algunas propiedades del los usuarios
Opciones:
-g: para cambiar el grupo principal del usuario
-G: para cambiar o especificar los grupos secundarios del usuario (si se escribe mas de un grupo se separan por comas)
-e: YYY-MM-DD indica cuando expira la cuenta del usuario
Opciones:
-g: para cambiar el grupo principal del usuario
-G: para cambiar o especificar los grupos secundarios del usuario (si se escribe mas de un grupo se separan por comas)
-e: YYY-MM-DD indica cuando expira la cuenta del usuario
viernes, 29 de octubre de 2010
Comando passwd
Sirve para cambiar la contraseña # passwd nombre_usuario (# = root)
& passwd (& = usuario)
& passwd (& = usuario)
Archivos (linux)
/etc/groups
Almacena información sobre los grupos del sistema
Campos:
Están separados por los : puntos
1. Nombre del grupo
2. Contraseña del grupo
3. Nº identificador del grupo (GID)
4. Usuarios: los usuarios que pertenecen al grupo
Archivo /etc/shadow:
Almacena las contraseñas cifradas de los usuarios, los campos se separan por (:)
1. Nombre del usuario
2. Contraseña cifrada
3. Última actualización de la contraseña (en días desde el 1 de enero de 1970)
4. Días que deben pasar pueden ser cambiada
5. Días que han de pasar hasta que la contraseña deba ser cambiada
6. Días antes de caducar la contraseña en que se avisará al usuario
7. Días que pueden pasar después de que la contraseña caduque, antes de deshabilitar la cuenta.
8. Días que lleva caducada la cuenta
9. Campo reservado
Practica:
1. Crear un usuario con la opción -e el lunes y con la opción -f -1
2. Crear otro usiario con la opción -f 0 y -e mañana
3. Crear un tercer usuario con -f 3 y -e el miercoles
4. Visualizar el fichero /etc/shadow
Almacena información sobre los grupos del sistema
Campos:
Están separados por los : puntos
1. Nombre del grupo
2. Contraseña del grupo
3. Nº identificador del grupo (GID)
4. Usuarios: los usuarios que pertenecen al grupo
Archivo /etc/shadow:
Almacena las contraseñas cifradas de los usuarios, los campos se separan por (:)
1. Nombre del usuario
2. Contraseña cifrada
3. Última actualización de la contraseña (en días desde el 1 de enero de 1970)
4. Días que deben pasar pueden ser cambiada
5. Días que han de pasar hasta que la contraseña deba ser cambiada
6. Días antes de caducar la contraseña en que se avisará al usuario
7. Días que pueden pasar después de que la contraseña caduque, antes de deshabilitar la cuenta.
8. Días que lleva caducada la cuenta
9. Campo reservado
Practica:
1. Crear un usuario con la opción -e el lunes y con la opción -f -1
2. Crear otro usiario con la opción -f 0 y -e mañana
3. Crear un tercer usuario con -f 3 y -e el miercoles
4. Visualizar el fichero /etc/shadow
jueves, 28 de octubre de 2010
Fichero /etc/passwd (linux)
1. Nombre del usuario
2. Contraseña (x) está cifrada
3. Número de identificación del usuario (UID) el 0 es el único reservado al root
4. Nº de identificación del grupo: un usuario puede pertenecer a varios grupos; el número que aparece es el del grupo principal o primario.
5. Comentario: comentarios sobre el usuario, como el nombre completo o información personal.
6. Directorio personal: ruta completa del directorio personal del usuario
7. Shell ruta completa de la shell que va a usar el usuario. (/etc/shell ... aparecen las shells disponibles)
(1.) root: (2.) x: (3.) 0: (4) 0: (5.) root: (6.) /root: (7.) /bin/bash
Se puede ver que hay varios usuarios aparte de root, y los usuarios normales, son cuentas del sistema. Algunas aplicaciones se ejecutan con estas cuentas (que tienen contraseña y no están hechas para iniciar sesión con ellas). Al no tener privilegios de root, se usan estqas cuentas para proteger al sistema.
Si se borran, puede que algunos programas no funcionan para borrar un usuario se puede boorar su línea del fichero /etc/passwd [comando para borrar usuarios "userdel"]
useradd:
opciones:
-d => ruta del directorio directorio personal del usuario ...
useradd -d /usuarios /fulanito curro
-e => fecha en la que se deshabilita la cuenta, formato YYY-MM-DD
-f número de días desde que la cuenta expira hasta que finalmente se deshabilita.
El valor 0 hace que se deshabilite tan pronto como la cuenta expira. El valor -1 deshabilita la actuación.
Si no se especifica, se usa el periodo que marca la variable INACTIVE del fichero /etc/default/useradd ó -1 por defecto
-k => directorio que se copia en el directorio personal del usuario.
-r => para crear una cuenta del sistema
-M : sin directorio personal
-g: especificar grupo
2. Contraseña (x) está cifrada
3. Número de identificación del usuario (UID) el 0 es el único reservado al root
4. Nº de identificación del grupo: un usuario puede pertenecer a varios grupos; el número que aparece es el del grupo principal o primario.
5. Comentario: comentarios sobre el usuario, como el nombre completo o información personal.
6. Directorio personal: ruta completa del directorio personal del usuario
7. Shell ruta completa de la shell que va a usar el usuario. (/etc/shell ... aparecen las shells disponibles)
(1.) root: (2.) x: (3.) 0: (4) 0: (5.) root: (6.) /root: (7.) /bin/bash
Se puede ver que hay varios usuarios aparte de root, y los usuarios normales, son cuentas del sistema. Algunas aplicaciones se ejecutan con estas cuentas (que tienen contraseña y no están hechas para iniciar sesión con ellas). Al no tener privilegios de root, se usan estqas cuentas para proteger al sistema.
Si se borran, puede que algunos programas no funcionan para borrar un usuario se puede boorar su línea del fichero /etc/passwd [comando para borrar usuarios "userdel"]
useradd:
opciones:
-d => ruta del directorio directorio personal del usuario ...
useradd -d /usuarios /fulanito curro
-e => fecha en la que se deshabilita la cuenta, formato YYY-MM-DD
-f número de días desde que la cuenta expira hasta que finalmente se deshabilita.
El valor 0 hace que se deshabilite tan pronto como la cuenta expira. El valor -1 deshabilita la actuación.
Si no se especifica, se usa el periodo que marca la variable INACTIVE del fichero /etc/default/useradd ó -1 por defecto
-k => directorio que se copia en el directorio personal del usuario.
-r => para crear una cuenta del sistema
-M : sin directorio personal
-g: especificar grupo
viernes, 22 de octubre de 2010
Permisos chmod (linux)
chmod... es para cambiar permisos a carpetas o archivos.
ejem:
directorio: drwxr-xr-x ........... Carpeta
chmod -r Carpeta = d-wx--x--x ............ Carpeta
chmod +r Carpeta = drwxr-xr-x ........... Carpeta
chmod u-r Carpeta = d-wxr-xr-x ............ Carpeta
u: es para el usuario
g: es para el grupo
o: es para otros
a: es para todos
se puede usar -R (recursividad) que es para dar o quitar un permiso a la carpeta y todo lo que hay dentro, pero solo funciona con w
-Crear el directorio d1 dentro de pruebas, dentro del directorio d1 crear los directorios d21, d22, y el fichero f1, dentro del directorio d21 crear los directorio 311 y 312
-Quitar a d22 permiso de escritura
¿se puede entrar?
¿se puede listar el contenido?
¿se puede crear algo?
-Con un mismo comando, dar a d22 permiso de escritura sólo para el usuario y quitar el permiso de lectura
-Con un mismo comando dar permiso de lectura a d22 a tu usuario y al grupo y quitar el permiso de ejecución
-Hacer para f1 lo mismo que para d22 (abrirlo, cambiarlo, ejecutarlo)
-Quitar recursivamente los permisos de lectura a d21 y comprobar los permisos de d311 y d312
¿aparece algún mensaje?
¿puedes ver los permisos de d311 y d312?
-Haz los cambios necesarios (pero que no afecten a d311 y d312)
para ver los permisos de d311 y d312
¿se aplica recursivamente el cambio de permisos?
-Haz lo mismo para el permiso de ejecución y el de escritura
-Quita el permiso de escritura a d1 recursivamente para todos los usuarios y comprueba cómo afecta a f1, d22, d21, d311 y d312.
ejem:
directorio: drwxr-xr-x ........... Carpeta
chmod -r Carpeta = d-wx--x--x ............ Carpeta
chmod +r Carpeta = drwxr-xr-x ........... Carpeta
chmod u-r Carpeta = d-wxr-xr-x ............ Carpeta
u: es para el usuario
g: es para el grupo
o: es para otros
a: es para todos
se puede usar -R (recursividad) que es para dar o quitar un permiso a la carpeta y todo lo que hay dentro, pero solo funciona con w
-Crear el directorio d1 dentro de pruebas, dentro del directorio d1 crear los directorios d21, d22, y el fichero f1, dentro del directorio d21 crear los directorio 311 y 312
-Quitar a d22 permiso de escritura
¿se puede entrar?
¿se puede listar el contenido?
¿se puede crear algo?
-Con un mismo comando, dar a d22 permiso de escritura sólo para el usuario y quitar el permiso de lectura
-Con un mismo comando dar permiso de lectura a d22 a tu usuario y al grupo y quitar el permiso de ejecución
-Hacer para f1 lo mismo que para d22 (abrirlo, cambiarlo, ejecutarlo)
-Quitar recursivamente los permisos de lectura a d21 y comprobar los permisos de d311 y d312
¿aparece algún mensaje?
¿puedes ver los permisos de d311 y d312?
-Haz los cambios necesarios (pero que no afecten a d311 y d312)
para ver los permisos de d311 y d312
¿se aplica recursivamente el cambio de permisos?
-Haz lo mismo para el permiso de ejecución y el de escritura
-Quita el permiso de escritura a d1 recursivamente para todos los usuarios y comprueba cómo afecta a f1, d22, d21, d311 y d312.
miércoles, 20 de octubre de 2010
Comandos linux para ficheros (cat, sort,touch)
touch: creas ficheros... ejem: touch maya
cat es para rellenar de datos un fichero... ejem: cat > maya
cat maya ...( es para ver lo que hay)
sort: ordena los datos en un fichero... ejem: sort maya
Opción -k ... es para elegir como oredenar los datos ... ejem: sort -k2 maya
-k2 --> ordenar por la segunda palabra
Opción -t ... es para especificar el separador de campos ejem:
sort -t: -k6 /etc/passwd ... :(es el separador)
Hacer uno:.... ordenado por :
-tipo,
-nombre de propietario,
-tamaño del fichero, (-g ó -n)
-fecha de creación y
-el sentido inverso (-r),
-Hora de modificación,
-Nombre del fichero,
-numero de enlaces,
-minuto de modificación.
cat es para rellenar de datos un fichero... ejem: cat > maya
cat maya ...( es para ver lo que hay)
sort: ordena los datos en un fichero... ejem: sort maya
Opción -k ... es para elegir como oredenar los datos ... ejem: sort -k2 maya
-k2 --> ordenar por la segunda palabra
Opción -t ... es para especificar el separador de campos ejem:
sort -t: -k6 /etc/passwd ... :(es el separador)
Hacer uno:.... ordenado por :
-tipo,
-nombre de propietario,
-tamaño del fichero, (-g ó -n)
-fecha de creación y
-el sentido inverso (-r),
-Hora de modificación,
-Nombre del fichero,
-numero de enlaces,
-minuto de modificación.
miércoles, 13 de octubre de 2010
Copiar en linux
cp archivo(s) destino
cp a1 /home/Descargas/a2
- Si no especifico nombre de archivo en el destino, usa el nombre del archivo origen
- Si existía un archivo en el destino con el nombre con que queremos copiar, lo sobreescribe
1.En el directorio pruebas crea el directorio xacopiar
2.Ejecutar $ echo hola >xacopiar
3.Desde pruebas crear un subdirectorio de nombre pruebas1 en el directorio padre de pruebas, usando direccionamiento relativo.
4.Copiar xacopiar y xacopiar1 en el subdirectorio creado anteriormente usando la ruta absoluta y la relativa, ( puedes usar pwd para saber donde estás)
5.En pruebas ejecuta: $echo adios >> xacopiar
6.Comprueba el contenido de la copia de xacopiar en pruebas1, copia xacopiar de pruebas a pruebas1 con el mismo nombre y comprueba el contenido de la copia
cp a1 /home/Descargas/a2
- Si no especifico nombre de archivo en el destino, usa el nombre del archivo origen
- Si existía un archivo en el destino con el nombre con que queremos copiar, lo sobreescribe
1.En el directorio pruebas crea el directorio xacopiar
2.Ejecutar $ echo hola >xacopiar
3.Desde pruebas crear un subdirectorio de nombre pruebas1 en el directorio padre de pruebas, usando direccionamiento relativo.
4.Copiar xacopiar y xacopiar1 en el subdirectorio creado anteriormente usando la ruta absoluta y la relativa, ( puedes usar pwd para saber donde estás)
5.En pruebas ejecuta: $echo adios >> xacopiar
6.Comprueba el contenido de la copia de xacopiar en pruebas1, copia xacopiar de pruebas a pruebas1 con el mismo nombre y comprueba el contenido de la copia
Touch [Opción] fichero (Linux)
Touch : Es para cambiar la fecha de modicación del fichero
Notación (BNF)... lo que aparece entre corchetes es opcional
- t STAMP [[CC]YY]MMDDhhmm[.SS]
Ejemplo:
touch -t 1512030632 fichero
--date = cadena de texto con la fecha/hora
-d = ""
Ejemplo -d = "Sun 24 Feb"
--date = "tomorrow"
Notación (BNF)... lo que aparece entre corchetes es opcional
- t STAMP [[CC]YY]MMDDhhmm[.SS]
Ejemplo:
touch -t 1512030632 fichero
--date = cadena de texto con la fecha/hora
-d = ""
Ejemplo -d = "Sun 24 Feb"
--date = "tomorrow"
Opción -l de ls (linux)
drwxr-xr-x 2 usuario04 usuario04 48 2010-09-28 12:50 Descargas
d => "-" = fichero normal, "d" = directorio, "l" = enlace simbólico.
2 => Nº de enlaces.
usuario04 => propietario
usuario04 => Grupo del propietario
48 => Tamaño en Bytes
2010-09-28 12:50 => Última modificación
Descargas => Nombre Archivos
d => "-" = fichero normal, "d" = directorio, "l" = enlace simbólico.
2 => Nº de enlaces.
usuario04 => propietario
usuario04 => Grupo del propietario
48 => Tamaño en Bytes
2010-09-28 12:50 => Última modificación
Descargas => Nombre Archivos
viernes, 8 de octubre de 2010
Pasos para Compartir/ Acceder a un directorio (linux)
1. Instalar el programa nfs-kernel-server formas de instalarlo:
a.Usando Synaptic
b.escribiendo apt-get install nfs-kernel-server (como root)
c.Escribiendo aptitude install nfs-kernel-server (como root)
2. Instalar nfs-commons (es necesario para compartir y acceder)
formas de instalarlo
a. usando el synaptic
b. Escribiendo apt-get install nfs-commons (como root)
c. escribiendo aptitude install nfs-commons (como root)
3. Instalar portmap
formas de instalarlo:
a. usando el synaptic
b. Escribiendo apt-get install portmap (como root)
c. escribiendo aptitude install portmap (como root)
4. Es conveniente asegurarse de que portmap no apunta al bucle local (interfaz lo). ejecutar
dpkg-reconfigure portmap
y seleccionar no (para que no apunte al bucle local)
5. Para especificar que directorio se comparte, editar el fichero
/etc/exports (gedit etc/exports &)
y añadir una línea con la ruta completa al directorio que quiero compartir
(ejem: /home/usuario/compartido)
--- para más seguridad puedes editar los ficheros /etc/hosts.deny
y /etc/hosts.allow---
* Puedo escribir la IP de un equipo o su nombre
* Puedo especificar un rango de IPs (ejemplo 172.16.205.30/16)
* Se puede usar el * como comodin, pero tener cuidado porque no incluye el .(*.dominio.es incluiria equipo.dominio.es pero no
equipo.subdominio.dominio.es)
-Opciones de seguridad:
* Acceso de lectura y escritura (rw) o sólo lectura (ro)
* Permisos para el usuario que conecta
>all_squash: todos los usuarios son invitados
>root_squash: hace que cuando un usuario se conecta como root, sea
invitado
>no_root squash: hace que cuando un usuario se conecta como root,
mantenga sus privilegios de root
- Modo síncrono o asíncrono:
* Sync: para indicar que la conexión es síncrona (Según la hora)
* Async: para indicar que la conexión es asíncrona
Ejemplos:
/home/ramon/compartido 172.16.200.103 (rw,all_squash,sync)
el usuario que comparte, comparte el directorio "compartido" dentro de su carpeta personal (el usuario se llama "ramon") que esta dentro del subdirectorio "/home"
comparte sólo con el equipo 172.16.200.103 al que le da permisos de lectura y escritura, todos son invitados y la conexión es síncrona
mount - t nfs IP:RUTAyDIRECTORIO DIRECTORIO LOCAL
-t = para especificar el tipo de fichero, en este caso es nfs (para cdrom es
iso 9600)
a.Usando Synaptic
b.escribiendo apt-get install nfs-kernel-server (como root)
c.Escribiendo aptitude install nfs-kernel-server (como root)
2. Instalar nfs-commons (es necesario para compartir y acceder)
formas de instalarlo
a. usando el synaptic
b. Escribiendo apt-get install nfs-commons (como root)
c. escribiendo aptitude install nfs-commons (como root)
3. Instalar portmap
formas de instalarlo:
a. usando el synaptic
b. Escribiendo apt-get install portmap (como root)
c. escribiendo aptitude install portmap (como root)
4. Es conveniente asegurarse de que portmap no apunta al bucle local (interfaz lo). ejecutar
dpkg-reconfigure portmap
y seleccionar no (para que no apunte al bucle local)
5. Para especificar que directorio se comparte, editar el fichero
/etc/exports (gedit etc/exports &)
y añadir una línea con la ruta completa al directorio que quiero compartir
(ejem: /home/usuario/compartido)
--- para más seguridad puedes editar los ficheros /etc/hosts.deny
y /etc/hosts.allow---
* Puedo escribir la IP de un equipo o su nombre
* Puedo especificar un rango de IPs (ejemplo 172.16.205.30/16)
* Se puede usar el * como comodin, pero tener cuidado porque no incluye el .(*.dominio.es incluiria equipo.dominio.es pero no
equipo.subdominio.dominio.es)
-Opciones de seguridad:
* Acceso de lectura y escritura (rw) o sólo lectura (ro)
* Permisos para el usuario que conecta
>all_squash: todos los usuarios son invitados
>root_squash: hace que cuando un usuario se conecta como root, sea
invitado
>no_root squash: hace que cuando un usuario se conecta como root,
mantenga sus privilegios de root
- Modo síncrono o asíncrono:
* Sync: para indicar que la conexión es síncrona (Según la hora)
* Async: para indicar que la conexión es asíncrona
Ejemplos:
/home/ramon/compartido 172.16.200.103 (rw,all_squash,sync)
el usuario que comparte, comparte el directorio "compartido" dentro de su carpeta personal (el usuario se llama "ramon") que esta dentro del subdirectorio "/home"
comparte sólo con el equipo 172.16.200.103 al que le da permisos de lectura y escritura, todos son invitados y la conexión es síncrona
mount - t nfs IP:RUTAyDIRECTORIO DIRECTORIO LOCAL
-t = para especificar el tipo de fichero, en este caso es nfs (para cdrom es
iso 9600)
Suscribirse a:
Entradas (Atom)