0% encontró este documento útil (0 votos)
69 vistas89 páginas

Guia Oracle

El documento proporciona instrucciones para descargar e instalar CentOS, crear una máquina virtual, instalar CentOS en la máquina virtual, configurar el cliente SSH, configurar los prerequisitos y realizar la instalación de Oracle Database. También explica el uso básico del editor de texto vi.

Cargado por

Geovanny Rico
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
69 vistas89 páginas

Guia Oracle

El documento proporciona instrucciones para descargar e instalar CentOS, crear una máquina virtual, instalar CentOS en la máquina virtual, configurar el cliente SSH, configurar los prerequisitos y realizar la instalación de Oracle Database. También explica el uso básico del editor de texto vi.

Cargado por

Geovanny Rico
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 89

1.

GUIA DESCARGA CENTOS

1.1. Ir a https://www.centos.org/
2. CREACIÓN DE MAQUINA VIRTUAL

2.1. Selecciona Nueva

2.2. Coloca un nombre y selecciona Linux Red Hat

2.3. Selecciona la cantidad de memoria RAM deseada.


2.4. Crea el disco duro virtual
2.5. Después de creada la máquina virtual selecciona Archivo,
Preferencias en el software Virtual Box.

2.6. Seleccione red, redes solo-anfitrión y validar la dirección IP de la red


del anfitrión, esta IP es al gusto del ingeniero.

Si tiene otra versión de virtualbox tener en cuenta


2.7. Seleccionar el menú configuración de la máquina virtual

2.8. Deseleccionar Disquete en la pestaña Sistema.


2.9. Deshabilitar el audio en la pestaña Audio

2.10. Seleccionar el adaptador de red solo-anfitrión y el nombre el que se


configuro en el software.
2.11. Seleccionar el disco CENTOS en la pestaña almacenamiento.

2.12. Iniciar la máquina virtual


3. INSTALACIÓN DE CENTOS LINUX

3.1. Instalar CentOS 7

3.2. Seleccionar Idioma


3.3. Modificar el particionamiento de disco, la selección de software y la
configuración de red.

3.4. Selección de software se escoge Servidor con GUI y selecciona Listo


3.5. Para la configuración de particiones selecciona “Voy a configurar las
particiones” y clic en Listo.

3.6. Se crean las particiones LVM (SWAP, boot, home, /)


3.7. Luego de particionado se da en Listo

3.8. Se aplican los cambios


3.9. Configura la red, hostname

3.10. Activa la opción de conexión automática del dispositivo de red


3.11. Se cambia dirección y mascara de red (puerta de enlace se deja vacío)

3.12. Se valida configuración de nombre de máquina (hostname) y se


enciende el dispositivo de red
3.13. Configura la contraseña de root
3.14. Se espera que termine la instalación

3.15. Se acepta la licencia (1, 2, c, c)


3.16. Se reinicia y se selecciona siguiente
4. CONFIGURACIÓN DE CLIENTE SSH

4.1. El cliente SSH es MobaXterm

4.2. Seleccione Session

4.3. Seleccione SSH

4.4. Ingrese la IP, usuario y puerto de conexión

4.5. Acepte la advertencia.


4.6. Ingrese al cliente.

4.7. Desactive el cortafuegos.


[root@oracle ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service

[root@oracle ~]# systemctl disable firewalld


5. GUIA PRERREQUISITOS ORACLE

5.1. Se carga el DVD de instalación de CENTOS Linux

5.2. Se monta el DVD y se instalan los paquetes requeridos

# mount /dev/cdrom /media/


mount: /dev/sr0 is write-protected, mounting read-only

# cd /media/Packages/

# rpm -Uvh --replacepkgs ksh* libaio* glibc* kernel-headers* compat-libcap1*


libstdc++* libXaw-* libXpm* libX11* libXext* libXmu* libXt* libICE* libSM*
libuuid* libxcb* libXau* nss-softokn-freebl* libXi* xorg-x11* xcb-util*
libXfixes* unixODBC* libtool-ltdl* readline* ncurses* libgcc* gcc* cpp*
libmpc* libgfortran* libquadmath* libgnat* libobjc*
5.3. Se crean los grupos y usuarios
# groupadd oper
# groupadd dba
# groupadd oinstall
# useradd -g oinstall -G dba,oper oracle

5.4. Se crea el archivo del inventario de Oracle


# vi /etc/oraInst.loc
inventory_loc=/u01/oraInventory
inst_group=oinstall

5.5. Se crean los directorios y permisos

# mkdir /u01
# mkdir /u01/data
# mkdir /u01/oraInventory
# mkdir /u01/fra
# mkdir /u01/export
# mkdir /u01/oracle
# mkdir /u01/oracle/12.2
# mkdir /u01/installer
# chown oracle:oinstall -R /u01
# chmod 775 -R /u01

5.6. Se configura el archivo de hosts


# vi /etc/hosts
192.168.56.10 oracle.localdomain oracle
192.168.56.11
5.7. Se configuran los recursos de kernel
# vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65000
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

# sysctl -p

5.8. Se configuran los límites para el usuario Oracle


# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
5.9. Se configura el password de oracle y se ingresa con el usuario oracle
# passwd oracle
oracle123

# su - oracle

5.10. Se configura el archivo profile para el usuario oracle


$ vi ~/.bash_profile
# .bash_profile

# Get the aliases and functions


if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/12.2
export ORACLE_SID=TEST
export ORACLE_HOSTNAME=oracle.localdomain

PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch

export PATH
6. GUIA INSTALACIÓN ORACLE
$ su -
Contraseña:
chown oracle:oinstall /u01/installer/linuxx64_12201_database.zip
# exit
$ unzip /u01/installer/linuxx64_12201_database.zip -d /u01/installer/
$ rm /u01/installer/linuxx64_12201_database.zip
$ cd /u01/installer/database/
$ exit
$ su - oracle
$ cd /u01/installer/database
$ export DISPLAY=192.168.56.1:0
$ ./runInstaller
Como usuario root
# /u01/oracle/12.2/root.sh
Performing root user operation.

The following environment variables are set as:


ORACLE_OWNER= oracle
ORACLE_HOME= /u01/oracle/12.2

Enter the full pathname of the local bin directory: [/usr/local/bin]:


ENTER
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...


Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] :
yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /u01/oracle/12.2/install/root_oracle.local.domain_2017-12-
05_14-31-11-861197388.log
Finished installing Oracle Trace File Analyzer (TFA)
$ netca
$ rm -rf /u01/installer/database/

$ dbca
[oracle@oracle u01]$ sqlplus / as sysdba;

SQL*Plus: Release 12.2.0.1.0 Production on Tue Dec 5 15:16:03 2017

Copyright (c) 1982, 2016, Oracle. All rights reserved.

Conectado a:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit
Production

SQL> select instance_name, status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
TEST OPEN
$ netmgr
$ cd /u01/oracle/12.2/network/admin
$ vi sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11

$ lsnrctl stop TEST


$ lsnrctl start TEST

$ sqlplus / as sysdba

SQL> alter user system identified by oracle123;

TEST_CURSO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.10)(PORT = 1534))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)
> set ORACLE_HOME=C:\oracle\11.2.0\client
> set ORACLE_SID=TEST
> set PATH=%oracle_home%\bin;$path%
> tnsping TEST_CURSO
> sqlplus system/oracle123@TEST_CURSO

SQL> select instance_name, status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
TEST OPEN

SQL> exit

> sqlplus system/oracle123@TEST_CURSO @SCRIPTS_CLASE1


7. EDITOR VI

El editor vi es un editor de texto que maneja en memoria el texto entero de un


archivo. Es el editor clásico de UNIX (se encuentra en todas las versiones).
Puede usarse en cualquier tipo de terminal con un mínimo de teclas, lo cual lo
hace difícil de usar al enfrentarse por primera vez al mismo.
7.1. MODOS DE VI:
Existen tres modos o estados de vi:
• Modo comando: este es el modo en el que se encuentra el editor cada
vez que se inicia. Las teclas ejecutan acciones (comandos) que permiten
mover el cursor, ejecutar comandos de edición de texto, salir de vi,
guardar cambios, etc.
• Modo inserción o texto: este es el modo que se usa para insertar el texto.
Existen varios comandos que se pueden utilizar para ingresar a este
modo.
• Modo línea o ex: se escriben comandos en la última línea al final de la
pantalla.

7.2. INICIO DE VI:


$ vi

Abre la ventana de edición sin abrir ningún archivo.


$ vi archivo1

Edita el archivo archivo1 si ya existe, de lo contrario, lo crea. Evidentemente se


debe indicar el camino (path) que conduce al archivo (si existe) o el camino que
conduce al directorio donde se desea crear el archivo (si este no existe).

7.3. MODO COMANDO:


El editor vi, como todo UNIX, diferencia mayúsculas de minúsculas. A
continuación, se comentan algunos comandos útiles en el manejo del editor.
7.3.1. Movimiento del cursor:
COMANDO ACCIÓN
(TECLAS)
Flechas Mover en la dirección de la flecha
H Mover hacia la izquierda
L Mover hacia la derecha
K Mover hacia arriba
J Mover hacia abajo
1G Lleva el cursor hasta el comienzo del archivo
G Lleva el cursor hasta el final del archivo
7.3.2. Cambio de modo comando a texto:
COMANDO ACCIÓN
I Inserta texto a la izquierda del cursor
I Inserta texto al comienzo de la línea donde se encuentra el cursor
A Inserta texto a la derecha del cursor
A Inserta texto al final de la línea donde se encuentra el cursor
O Abre una línea debajo de la actual
O Abre una línea encima de la actual

7.3.3. Borrar texto:


COMANDO ACCIÓN
X Borra el carácter bajo el cursor
Dd Borra la línea donde se encuentra el cursor
Ndd Borra las próximas n líneas
D Borra desde donde se encuentra el cursor hasta el final de la línea
Dw Borra desde donde se encuentra el cursor hasta el final de una
palabra

Es importante destacar que todo lo que se borra queda almacenado en un buffer


(área temporal de memoria), de modo que, si se borró algo por error, puede
volver a escribirse (si se hace antes de realizar otros cambios, es decir,
inmediatamente luego de eliminar el texto por error. Esto se hace simplemente
ejecutando el comando p.

7.3.4. Cortar y pegar


Esto implica mover partes del archivo de un lugar a otro del mismo. Para esto se
debe:
• Cortar el texto que se desea mover utilizando alguno de los comandos
usados para borrar texto.
• Mover el cursor (con alguno de los comandos utilizados para desplazar el
cursor en el texto) hasta el lugar donde se desee pegar el texto.
• Pegar el texto con el comando p.

7.3.5. Copiar y pegar


Esta operación difiere de la anterior. En este caso lo que se hace es repetir partes
del texto en otro lugar del archivo. Para esto se debe:
• Utilizar el comando yy, cuya función es copiar la línea donde se encuentra
situado el cursor.
• Mover el cursor (con alguno de los comandos utilizados para desplazar el
cursor en el texto) hasta el lugar donde se desee pegar el texto.
• Pegar el texto con el comando p.

7.3.6. Deshacer cambios:


Se puede deshacer el último cambio realizado, utilizando el comando u.
7.4. MODO TEXTO
En este modo se ingresa el texto deseado. Para pasar de modo texto a modo
comando simplemente se debe apretar la tecla ESC.

7.5. MODO LÍNEA


Para ingresar al modo línea desde el modo comando, se debe utilizar alguna de
las siguientes teclas:
/ ? :
Para volver al modo comando desde el modo última línea, se debe apretar la
tecla ENTER (al finalizar el comando) o la tecla ESC (que interrumpe el
comando).
7.5.1. Buscar texto
COMANDO ACCIÓN
/texto Busca hacia adelante la cadena de caracteres “texto”
?texto Busca hacia atrás la cadena de caracteres “texto”

7.5.2. Opciones de guardar o ignorar cambios


COMANDO ACCIÓN
:q Salir si no hubo cambios
:q! Salir sin guardar cambios
:w Guardar cambios
:w archivo1 Guardar cambios en archivo1
:wq Guardar cambios y salir
[q,w,wq]! Forzar comando
8. LINUX

8.1. COMANDOS BÁSICOS


Los comandos son esencialmente los mismos que cualquier sistema UNIX.
Comando Descripción Ejemplos
Concatena y muestra cat /proc/version
cat fich1
uno o más archivos

cd [dir] Cambia de directorio cd /tmp

chmod [-R] permisos Cambia los permisos de chmod +x miscript


fich un archivo

chown [-R] Cambia el dueño un chown nobody miscript


usuario:grupo fich archivo

cp [-R] fich1...fichN dir Copia archivos cp foo foo.backup

Encuentra diferencia diff foo.c newfoo.c


diff [-e] arch1 arch2
entre archivos

Reporta el tamaño del du -s /home/


du [-schabr] fich
directorio

Muestra el tipo de un file arc_desconocido


file arch
archivo

find dir test acción Encuentra archivos find /u01 -name '*.ora'

grep [-cilnv] expr Busca patrones en grep mike /etc/passwd


archivos archivos

Muestra el inicio de un head prog1.c


head -count fich
archivo

mkdir dir Crea un directorio mkdir temp

Mueve un archivo(s) a mv a.out prog1


mv fich1 ...fichN dir
un directorio

mv fich1 fich2 Renombra un archivo mv .c prog_dir

Visualiza página a more archivo.c


more fich(s)
página un archivo.
Visualiza página a
less fich(s) página un archivo, less archivo.c
acepta comandos vi
Crea un acceso directo ln -s ~/.bash_profile ~/env
ln [-s] fich acceso
a un archivo
Comando Descripción Ejemplos
Lista el contenido del ls -l /usr/bin
ls
directorio

Muestra la ruta del pwd


pwd
directorio actual

rm fich Borra un fichero rm foo.c

Borra un todo un rm -rf prog_dir


rm -r[f] dir
directorio

rmdir dir Borra un directorio vacío rmdir prog_dir

Muestra el final de un tail prog1.c


tail -count fich
archivo

vi fich Edita un archivo vi ~/.bash_profile

Ejecuta un comando at 6pm Friday miscript


at [-lr] hora [fecha]
más tarde

Muestra un calendario cal 1 2025


cal [[mes] año]
del mes/año

date [mmddhhmm] Muestra la hora y la date


[+form] fecha

Escribe mensaje en la echo Hola Mundo


echo string
salida estándar
Muestra información
finger usuario general sobre un finger [email protected]
usuario en la red

id Número id de un usuario id usuario

kill [-señal] PID Matar un proceso kill 1234

Ayuda del comando man gcc


man comando
especificado

passwd [usuario] Cambia la contraseña passwd oracle

Muestra información
sobre los procesos que ps -fea
ps [-axiuef]
se están ejecutando en
el sistema
Muestra información de
who / rwho los usuarios conectados who
al sistema

clear Borrar la pantalla clear


9. COMANDOS EN BACKGROUND
Para ejecutar un programa en background, basta con poner el signo ampersand
(&) al término de la línea de comandos. Por ejemplo, si se quisiera copiar el
directorio /usr/src/linux al directorio /tmp:
# cp -r /usr/src/linux /tmp &

Cuando ha terminado la ejecución del programa, el sistema lo reporta mediante


un mensaje:
# [Done] cp -r /usr/src/linux /tmp

Si se hubiese ejecutado el programa y no se hubiese puesto el ampersand, se


podría pasarlo a background de la siguiente manera:
a. Se suspende la ejecución del programa, pulsando Ctrl+Z.
b. Ejecutamos la siguiente orden: bg
10. INTERPRETE DE COMANDOS: SHELL

El intérprete de comandos es el programa que recibe lo que se escribe en la


terminal y lo convierte en instrucciones para el sistema operativo.
En otras palabras, el objetivo de cualquier intérprete de comandos es ejecutar
los programas que el usuario teclea en el prompt del mismo. El prompt es una
indicación que muestra el intérprete para anunciar que espera una orden del
usuario. Cuando el usuario escribe una orden, el intérprete ejecuta dicha orden.
En dicha orden, puede haber programas internos o externos: Los programas
internos son aquellos que vienen incorporados en el propio intérprete, mientras
que los externos son programas separados (ej: aplicaciones de /bin,/usr/bin,...).
En el mundo Linux/Unix existen tres grandes familias de Shells como se muestra
en la siguiente tabla. Estas se diferencian entre sí básicamente en la sintaxis de
sus comandos y en la interacción con el usuario.
Tipo de Shell Shell estándar Clones libres
AT&T Bourne shell sh ash, bash, bash2
Berkeley "C" shell csh tcsh
AT&T Korn Shell ksh pdksh, zsh
Otros interpretes -- esh, gush, nwsh

10.1. SINTAXIS DE LOS COMANDOS


Los comandos tienen la siguiente sintaxis:
# programa arg1 arg2 ... argn

Se observa que, en la “línea de comandos”, se introduce el programa seguido de


uno o varios argumentos. Así, el intérprete ejecutará el programa con las
opciones que se hayan escrito.
Cuando se quiere que el comando sea de varias líneas, se separa cada línea
con el carácter barra invertida (\). Además, cuando se quiere ejecutar varios
comandos en la misma línea, los separa con punto y coma (;). Por ejemplo
# make modules \
make modules_install

# make modules ; make modules_install

En los comandos, también se puede utilizar los comodines:


• El asterisco (*) es equivalente a uno o más caracteres en el nombre de un
archivo.

Ejemplo: ls *.c lista todos los archivos con extensión c.


• El signo de interrogación (?) es equivalente a un único carácter.

Ejemplo: ls curso.te? lista el archivo curso.tex completando el último


carácter

• Un conjunto de caracteres entre corchetes es equivalente a cualquier


carácter del conjunto.

Ejemplo: ls curso_linux.t[aeiou]x lista curso_linux.tex seleccionando la e


del conjunto.

10.2. VARIABLES DE ENTORNO


Una variable de entorno es un nombre asociado a una cadena de caracteres.
Dependiendo de la variable, su utilidad puede ser distinta. Algunas son útiles
para no tener que escribir muchas opciones al ejecutar un programa, otras las
utiliza el propio shell (PATH, PS1, etc).

Variable Descripción
DISPLAY Donde aparecen la salida de X-Windows.
HOME Directorio personal
HOSTNAME Nombre de la máquina
MAIL Archivo de correo
PATH Lista de directorios donde buscar los programas
PS1 Prompt
SHELL Intérprete de comandos por defecto
TERM Tipo de terminal
USER Nombre del usuario

10.2.1. Definición de variables


La forma de definir una variable de entorno cambia con el intérprete de
comandos, se muestra tcsh y bash siendo los dos más populares en el ámbito
Linux
• bash:
export VARIABLE=Valor

• tcsh:
setenv VARIABLE Valor

Por ejemplo, para definir el valor de la variable DISPLAY:


• bash:
export DISPLAY=localhost:0.0
• tcsh:
setenv DISPLAY localhost:0.0

10.2.2. Alias
Un “alias” es un nombre alternativo para un comando.
Así, en lugar de escribir el comando propiamente dicho, escribiríamos el alias de
dicho comando. Un alias se puede definir por varios motivos, por ejemplo:
• Dar nombres familiares a comandos comunes:
alias md='mkdir'
Crearía un alias para el comando mkdir, similar al de DOS.

• Dar nombres a comandos largos:


alias tbz2='tar -cv --use-compress-program=bzip2 -f'
Crearía un alias para el comando tar para que use el compresor bzip2 en
lugar de gzip.

10.3. REDIRECCIONAMIENTO DE E/S

La filosofía de Linux/Unix es en extremo modular. Se prefieren las herramientas


pequeñas con tareas puntuales a las meta-herramientas que realizan todo. Para
hacer el modelo completo es necesario proveer el medio para ensamblar estas
herramientas en estructuras más complejas. Esto se realiza por medio del
redireccionamiento de las entradas y las salidas.
Todos los programas tienen por defecto una entrada estándar (teclado) y dos
salidas: la salida estándar (pantalla) y la salida de error (pantalla). En ellos se
puede sustituir la entrada y salidas estándar por otro dispositivo utilizando los
caracteres > y <, es decir, hacer que se lea un archivo que contenga las opciones
a ejecutar y un archivo de salida, respectivamente. Por ejemplo

- Entrada
$ cat < comandos
Hola Mundo

- Salida
Se quiere saber los archivos que empiezan por i o I y almacenarlo en un archivo

cd /tmp
ls [sS]* > /tmp/listado.txt

Es importante resaltar que el carácter de redirección de salida > destruirá el


archivo al cual apunta, si este existe, para ser reemplazado por uno nuevo con
los resultados del proceso. Si se desea anexar la información a uno ya existente
debe usarse doble carácter >>
10.4. TUBERÍAS O PIPES

En la línea de comandos la integración entre diferentes programas se realiza por


medio de la re-dirección de las entradas y salidas a través de pipes o tuberías.

Una tubería o pipe es una combinación de varios comandos que se ejecutan


simultáneamente, donde el resultado del primero se envía a la entrada del
siguiente. Esta tarea se realiza por medio del carácter barra vertical |. Por
ejemplo, si se quiere ver todos los archivos que hay en el directorio /usr/bin, se
ejecuta lo siguiente:

ls /usr/bin | more

De este modo, la salida del programa ls (listado de todos los archivos del
directorio /usr/bin) irá al programa more (modo paginado, es decir, muestra una
pantalla y espera a que pulsemos una tecla para mostrar la siguiente).

Dentro de esta estructura se han construido una serie de programas conocidos


como “filtros” los cuales realizan procesos básicos sobre textos

Filtros Función
sort Ordena las líneas de un texto
cut Corta secciones de una línea
od Convierte archivos a forma octal u otras
paste Une líneas de diferentes archivos
tac Concatena e imprime archivos invertidos
tr Traduce o borra caracteres
uniq Remueve líneas repetidas
wc Cuenta bytes, palabras y líneas

10.5. PROGRAMACIÓN SHELL

La programación del shell es una de las herramientas más apreciadas por todos
los administradores y muchos usuarios de Linux/Unix ya que permite automatizar
tareas complejas, comandos repetitivos y ejecutarlas con un solo llamado al
script o hacerlo automáticamente a horas escogidas sin intervención de
personas.

La programación shell en Unix/Linux es, en cierto sentido, equivalente a crear


archivos .BAT en DOS. La diferencia es que en Unix/Linux es mucho más
potente. Estos scripts pueden usar un sinnúmero de herramientas como:

• Comandos del sistema Linux/Unix (ejm: ls, cut)


• Funciones intrínsecas del shell (ejm: kill, nice)
• Lenguaje de programación del shell (ejm: if/then/else/fi)
• Programas y/o lenguajes de procesamiento en línea. (ejm: awk, sed, Perl)
• Programas propios del usuario escritos en cualquier lenguaje
El lenguaje de programación de cada shell provee de una amplia gama de
estructuras de control como se muestra a continuación

• for name [ in word; ] do list ; done


• select name [ in word ; ] do list ; done
• case word in [ pattern [ | pattern ]\ldots ) list ;; ]\ldots esac
• if list then list [ elif list then list ]\ldots [ else list ] fi
• $while list do list done $until list do list done
• [ function ] name () { list; }

10.5.1. Instrucciones bash para programación shell

Un sencillo ejemplo es realizar un backup de solo ciertos directorios (prog_dir1 y


prog_dir2), luego comprimirlos usando bzip2 y enviarlos a un área de
almacenamiento (digamos una unidad ZIP previamente montada en
/mnt/zipdrive), y además con que el nombre del archivo contenga la fecha del
día.

Se crea un archivo texto con cualquier nombre, por ejemplo, mibackup que
contenga las instrucciones que se desea ejecutar.

#!/bin/sh

# echo "---------- Captura fecha -----------"


fecha=`date +%Y%m%d`

# echo "---------- Haciendo Tar -----------"


tar cvf backup$fecha.tar prog_dir1 prog_dir2

# echo "----------- Comprimiendo -----------"


bzip2 backup$fecha.tar

# echo "---------- Enviándolos a zip -------"


cp ./backup$fecha.tar /mnt/zipdrive

# echo "----------- Limpiando --------------"


rm -f ./backup$fecha.tar

# echo "----------- Final -------------"

Luego, se le asigna permisos de ejecución con el comando

chmod +x mibackup

En el script aquí mostrado es importante resaltar varios principios importantes:


la primera línea determina el shell que se está usando (sh o bash); las variables
no se declaran solo se asignan; su valor es retornado usando el símbolo $.
10.6. RE-UTILIZACIÓN DE COMANDOS

El shell almacena una historia de los comandos que el usuario ha escrito. Por
medio de esta historia es posible volver a ejecutar una orden que ya se ha escrito
anteriormente sin tener que escribirla de nuevo.

El comando history muestra la secuencia de comandos, con un número a su


izquierda. Con este número es posible llamar de nuevo el comando utilizando el
carácter admiración “!”; Por ejemplo, history retorna

1 history
2 ls
3 cd public_html
4 ls
5 rm *.bak
6 history

y para ejecutar nuevamente el comando rm *.bak solo es necesario escribir !5.

También se puede pedir el último “rm” que se ha ejecutado escribiendo, !rm.

El último comando se repite con doble admiración “!!”.

10.7. ARCHIVOS DE BASH

Cada shell posee ciertos archivos donde mantiene su configuración.


Estos tienen una jerarquía que va desde el archivo general de configuración del
sistema para todos los shells, pasando por el archivo propio del shell, hasta los
archivos personales del usuario.

A continuación, se muestran los archivos utilizados para especificar opciones


dentro de bash. Es importante aclarar que no es necesario que todos estos
archivos existan dentro del directorio personal, el sistema posee su configuración
por defecto.

Archivo Descripción
/bin/bash Ejecutable bash
/etc/profile Archivo de inicialización utilizado por los shells
/.bash_profile Archivo(s) de inicialización personal
/.profile Utilizado por los shells
.bash_login Ejecuta cuando entra al shell
/.bash_logout Ejecuta cuando sale del shell
/.bashrc Archivo personal de inicialización del shell.
/.inputrc Archivo de inicialización individual
10.8. ORGANIZACIÓN DE LOS DIRECTORIOS

Linux organiza la información en archivos, los cuales están contenidos en


directorios. Un directorio puede contener subdirectorios, teniendo así una
estructura jerárquica, como en cualquier otro sistema operativo.

Las nuevas versiones de Linux (incluido Red Hat) siguen el estándar FSSTND
(Linux Filesystem Standard) el cual estipula los nombres, la ubicación y la función
de la mayoría de los directorios y los archivos del sistema.

Conociendo esta estructura básica, el usuario/administrador podrá moverse más


fácilmente por los directorios, ya que la mayoría de éstos, tienen un determinado
uso.

Directorio Descripción
/ Raíz (root), forma la base del sistema de archivos
/boot Archivos del kernel (compilados)
/bin Archivos ejecutables esenciales para todos los usuarios
/dev Archivos de dispositivos
/etc Archivos de configuración
/etc/rc.d Archivos de inicialización (Red Hat)
/home Generalmente, directorios de los usuarios
/home/ftp Contenido del servidor FTP
/home/httpd Contenido del servidor WWW
/lib Librerías esenciales y módulos del kernel
/mnt Directorios donde “montar” dispositivos temporalmente
/mnt/cdrom Directorio donde se “monta” el CD-ROM
/mnt/floppy Directorio donde se “monta” el disquete.
/proc Información sobre partes del sistema
/root Directorio del usuario principal del sistema
/sbin Archivos ejecutables para tareas de administración
/tmp Temporal
/usr Programas, documentación, fuentes compartidos en el sistema
/var Archivos variables del sistema, bitácoras, temporales

10.9. PERMISOS

Linux, como cualquier sistema Unix, es multiusuario, por lo que, los permisos de
los archivos están orientados a dicho sistema.

Los permisos de cualquier archivo tienen tres partes:

permisos del propietario,


permisos del grupo y
permisos del resto.
Así, se ve que un archivo pertenece a un determinado propietario y a un
determinado grupo y, dependiendo de los permisos que tenga asociado dicho
archivo, se podrá tener acceso a él o no.

Los permisos son de lectura (r), escritura (w) y ejecución (x).

Estos se definen mediante letras (parecido al comando attrib de DOS). Con el


signo + añadimos un permiso y con el signo - se lo quitamos.

Además, los permisos pueden ser generales o no, es decir, si se pone sería
permiso de ejecución a todos, sin embargo, si se pone sólo el propietario podría
ejecutarlo. De este modo, se tiene: para propietario, para grupo y para el resto.

Ejemplo: Se tiene una serie de archivos después de listar con ls -l el cual muestra
el propietario (skina), el grupo (users) y los permisos de izquierda a derecha:
propietario, grupo y el resto.

$ ls -l
-rw-r--r-- 1 skina users 17680 Nov 29 16:52 GNU-GPL.tex
-rw-r--r-- 1 skina users 2573 Nov 30 19:52 Makefile
-rw-r--r-- 1 skina users 1562 Nov 29 13:47 autorizacion.txt
-rw-r--r-- 1 skina users 461 Oct 24 21:43 biblio.tex
drwxr-xr-x 2 skina users 1024 Nov 23 01:02 bin/
-rw-r--r-- 1 skina users 949 Nov 30 19:26 creditos.tex
-rw-r--r-- 1 skina users 550 Nov 30 19:48 curso_linux.tex
drwxr-xr-x 2 skina users 3072 Nov 30 22:55 images/
drwxr-xr-x 3 skina users 1024 Nov 30 00:09 install/
-rw-r--r-- 1 skina users 61566 Oct 26 22:29
lista_paquetes_mdk.tex
-rw-r--r-- 1 skina users 53227 Nov 23 01:08 lista_paquetes_rh.tex

Estos permisos llevan “asociado” un número: el cuatro para lectura, el dos para
la escritura y el uno para la ejecución.

De esta manera, un archivo tiene tres números asignados: propietario, grupo y


resto. Por ejemplo, si tenemos un fichero con los permisos 644 correspondería
a: el propietario puede leer/escribir, el grupo sólo puede leer y el resto sólo puede
leer. Vemos que, para asignar lectura y escritura, basta con sumar: lectura(4) +
escritura(2).
El comando para modificar los permisos es chmod y tiene la siguiente sintaxis:

chmod permisos archivo(s).

Por ejemplo, se desea que todas las personas puedan ver escribir sobre el
archivo creditos.tex, entonces

# chmod a+w creditos.tex

o su equivalente en números

# chmod 666 creditos.tex


Los permisos se pueden representar de dos formas. La primera es mediante las
iniciales de a quién va dirigido el permiso (usuario=u, grupo=g, resto=o (other)),
seguido de un signo + si se quiere añadir permiso o un signo - si se quiere quitar
y seguido del tipo de permiso (lectura=r, escritura=w y ejecución=x). Ejemplos:

// Dar permiso de escritura al usuario propietario sobre el archivo


'examen.txt'
# chmod u+w examen.txt

// Quitar permiso de escritura al resto de usuarios sobre el archivo


'examen.txt'
# chmod o-w examen.txt

// Dar permiso de ejecución al grupo propietario sobre el archivo


'/usr/bin/games/tetris'
# chmod g+x /usr/bin/games/tetris

// Dar permiso de lectura al grupo propietario sobre el archivo


'examen.txt'
# chmod g+r examen.txt

// Se pueden poner varios permisos juntos separados por comas


# chmod u+w,g-r,o-r examen.txt

// Se pueden poner varios usuarios juntos


# chmod ug+w examen.txt

10.10. MONTAR UN SISTEMA DE ARCHIVOS

Ya se ha visto que Linux accede a los dispositivos mediante archivos (directorios


de /dev), y, por este motivo, en Linux no hay el concepto de unidades, ya que
todo está bajo el directorio principal.

En Linux no se accede a la primera disquetera mediante la orden A: como en


DOS sino que hay que “montarla”.
10.10.1. Montar

Decirle a Linux que se va a utilizar un determinado dispositivo con un


determinado sistema de archivos y estará en un directorio especificado.

Tipo Descripción
ext2/3/4 Sistema de archivos de Linux
msdos Sistema de archivos de DOS
vfat Sistema de archivos de Windows 9X (nombres largos).
iso9660 Sistema de archivos de CD-ROM.
nfs Sistema de archivos compartido por red (Exportado)

Para “montar” un determinado sistema de archivos de un dispositivo, se utiliza el


comando mount. La sintaxis es la siguiente:

# mount -t sistema_archivos dispositivo directorio [-o opciones]

# mount -t ext2 /dev/cdrom /media

# mount /dev/cdrom /media

Dónde: sistema_archivos puede ser cualquiera de los que aparece en la tabla


anterior; dispositivo puede ser cualquier dispositivo del directorio /dev o, en el
caso de nfs, un directorio de otro ordenador; directorio es el directorio donde
estará el contenido del dispositivo y opciones pueden ser cualquiera de la tabla
de opciones, en el caso de no poner ninguna opción, mount utilizará las opciones
por defecto.

10.10.2. Desmontar

Decirle a Linux que se ha dejado de utilizar un determinado dispositivo.


Una vez “montado” el dispositivo, si no se va a volver utilizar se puede
“desmontarlo” con el comando umount con la siguiente sintaxis:

# umount directorio

# Desmontar todo
# umount -a
# umount /media
Opción Descripción
rw Lectura/escritura
ro Sólo lectura
exec Se permite ejecución
user Los usuarios pueden ``montar''/``desmontar''
suid Tiene efecto los identificadores de propietario y del grupo
auto Se puede montar automáticamente
async Modo asíncrono
sync Modo síncrono
Dev Supone que es un dispositivo de caracteres o bloques
Disquete de DOS:

mount -t msdos /dev/fd0 /mnt/floppy -o rw,noexec


umount /mnt/floppy

Disquete de Windows 9X:

mount -t vfat /dev/fd0 /mnt/floppy -o user,rw


umount /mnt/floppy

CD-ROM:

mount -t iso9660 /dev/cdrom /mnt/cdrom -o ro


umount /mnt/cdrom

Directorio exportado de host:

mount -t nfs host:/tmp /mnt/host


umount /mnt/host

10.10.3. ARCHIVO /etc/fstab

En ocasiones, cuando se tienen varios dispositivos que se suelen “montar”, se


puede ahorrar tener que escribir continuamente la oportuna orden mount,
simplemente incluyendo una línea en el archivo /etc/fstab.

El archivo /etc/fstab contiene líneas donde se indica qué dispositivo debe


“montar”, el lugar donde “montarlo”, así como el sistema de archivos y las
opciones (en este archivo, se pueden poner dos opciones más: auto y noauto,
que indican si se debe “montar” automáticamente al arrancar el sistema o no,
respectivamente).

# Dispositivo Directorio FS Opciones


/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /home ext2 defaults 1 2
/dev/hda3 /tmp ext2 defaults,noexec
/dev/hda4 none swap defaults
none /proc proc defaults
/dev/fd0 /mnt/floppy ext2 noauto,user,noexec,rw
/dev/fd0 /mnt/msdos vfat noauto,user,noexec,rw
/dev/cdrom /mnt/cdrom iso9660 noauto,user,noexec,ro
/dev/sda4 /mnt/iomegazip vfat noauto,user,noexec,rw
host2:/tmp /mnt/host2 nfs defaults

10.11. CRON

El demonio cron inicia de /etc/rc.d/ o /etc/init.d dependiendo de la distribución.

Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab


/etc/crontab o en /var/spool/cron en búsqueda de tareas que se deban cumplir.
Como usuario podemos agregar comandos o scripts con tareas a cron para
automatizar algunos procesos. Esto es útil por ejemplo para automatizar la
actualización de un sistema o un buen sistema de respaldos.
Crontab es un simple archivo de texto que guarda una lista de comandos a
ejecutar en un tiempo especificado por el usuario. Crontab verificará la fecha y
hora en que se debe ejecutar el script o el comando, los permisos de ejecución
y lo realizará en el background. Cada usuario puede tener su propio archivo
crontab, de hecho, el /etc/crontab se asume que es el archivo crontab del usuario
root, cuando los usuarios normales (e incluso root) desean generar su propio
archivo de crontab, entonces utilizaremos el comando crontab.

Crontab es la manera más sencilla de administrar tareas de cron en sistemas


multiusuario, ya sea como simple usuario de sistema o usuario root.

Ejecutamos la edición del crontab con crontab -e, en algunas distros (como
ubuntu) nos da la opción de elegir el editor de textos que deseemos, los demás
nos quedamos con vi. El archivo crontab lucirá algo así.

Ejecutar todos los días a las 7 de la tarde

00 19 * * * usuario /ubicacion/del/script/consulta.sh

Ejecutar el script todos los 4 de febrero a las 7 de la tarde:

00 19 4 2 * usuario /ubicacion/del/script/consulta.sh
11. CREAR BASE DE DATOS DE CONTENEDOR CON EJEMPLOS
No se agregan los esquemas de ejemplo
Se vuelve a ejecutar dbca para crear la base de datos pluggable
Preferiblemente usar usuario sys
- Descargar scripts de ejemplos

https://github.com/oracle/db-sample-schemas/releases/tag/v12.2.0.1

- Pasarlos a la máquina virtual con filezilla, mobaXterm y otro software scp,


tener en cuenta permisos para usuario oracle y grupo oinstall o según los
halla asignado.

- Descomprimir

$ unzip db-sample-schemas-12.2.0.1.zip
- Cambiar nombre de directorio base de instalación de los scripts

$ cd /u01/installer/db-sample-schemas-12.2.0.1
$ $ORACLE_HOME/perl/bin/perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g'
*.sql */*.sql */*.dat

- Instalar sobre la pdb creada llamada samples, debemos estar seguros de


estar situados en el directorio donde está el archivo mksample

Usuario: system
Password: oracle123
Nombre de Host: oracle.localdomain
Puerto de listener: 1534
DB Pluggable: samples

Se realiza la ejecución del script, saldrán algunos errores, pero son de borrado
de elementos que no existen por ser primera instalación.

$ pwd
/u01/installer/db-sample-schemas-12.2.0.1
$ ls
bus_intelligence human_resources mk_dir.sql.bak mksample.sql.bak
mkverify.sql.bak README.txt
CONTRIBUTING.md info_exchange mkplug.sql mkunplug.sql
order_entry sales_history
drop_sch.sql LICENSE.md mkplug.sql.bak mkunplug.sql.bak
product_media shipping
drop_sch.sql.bak mk_dir.sql mksample.sql mkverify.sql README.md

$ sqlplus system/[email protected]:1534/samples

Ejemplo de formato
SQL> @?/mksample <SYSTEM_password> <SYS_password> <HR_password> <OE_password>
<PM_password> <IX_password> <SH_password> <BI_password>
TABLESPACE_DEFAULT_USERS TABLESPACE_DEFAULT_TEMP LOG_PATH localhost:1521/pdb

Ejecutar
SQL> @mksample oracle123 oracle123 hr oe pm ix sh bi USERS TEMP
/u01/installer/db-sample-schemas-12.2.0.1/log
oracle.localdomain:1534/samples

Se realiza la ejecución correctamente.

SQL> select username from dba_users;

USERNAME
---------------------------------------------------------------------
SYS
SYSTEM
XS$NULL
LBACSYS
OUTLN
DBSNMP
APPQOSSYS
DBSFWUSER
GGSYS
ANONYMOUS
CTXSYS
SI_INFORMTN_SCHEMA
DVSYS
DVF
GSMADMIN_INTERNAL
ORDPLUGINS
MDSYS
OLAPSYS
ORDDATA
XDB
WMSYS
ORDSYS
GSMCATUSER
MDDATA
SYSBACKUP
REMOTE_SCHEDULER_AGENT
GSMUSER
SYSRAC
HR
BI
OJVMSYS
AUDSYS
DIP
OE
PM
SYSKM
ORACLE_OCM
SYS$UMF
SAMPLE
IX
SYSDG
SPATIAL_CSW_ADMIN_USR
SH

43 filas seleccionadas.

Se conecta con usuario oe al servicio PDB samples


FIN DEL MANUAL

También podría gustarte