0% encontró este documento útil (0 votos)
18 vistas27 páginas

SOM - T4 Tareas Basicas

SOM informática
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)
18 vistas27 páginas

SOM - T4 Tareas Basicas

SOM informática
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

4

TEMA
SOM

Tareas Básicas

2021/2022 Versión: 211229.2104

IES Antonio Sequeros


ÍNDICE
1. INTRODUCCIÓN 1
2. DISCOS Y PARTICIONES 2
2.1. SWAP................................................................................................................................................................................................3
2.2. Particiones.........................................................................................................................................................................................4
3. ESTRUCTURA DE FICHEROS DE LINUX 5
4. TAREAS BÁSICAS 7
4.1. Rutas Absolutas y Relativas..............................................................................................................................................................8
5. COMANDOS BÁSICOS 9
5.1. Comandos para manipular directorios..............................................................................................................................................9
pwd.....................................................................................................................................................................................................9
cd.......................................................................................................................................................................................................9
mkdir................................................................................................................................................................................................10
rmdir.................................................................................................................................................................................................10
5.2. Comandos para manipular ficheros................................................................................................................................................10
ls.......................................................................................................................................................................................................10
touch.................................................................................................................................................................................................11
cp......................................................................................................................................................................................................11
mv....................................................................................................................................................................................................12
rm.....................................................................................................................................................................................................12
5.3. Comandos para paginar, visualizar y editar ficheros......................................................................................................................12
cat....................................................................................................................................................................................................12
vi.......................................................................................................................................................................................................13
more y less.......................................................................................................................................................................................13
tail y head.........................................................................................................................................................................................14
5.4. Comandos para hacer búsquedas de ficheros y patrones.............................................................................................................15
grep..................................................................................................................................................................................................15
find...................................................................................................................................................................................................15
5.5. Comandos para comprimir y agrupar ficheros................................................................................................................................16
tar.....................................................................................................................................................................................................16
gzip y gunzip....................................................................................................................................................................................17
zip y unzip........................................................................................................................................................................................17
rar.....................................................................................................................................................................................................18
5.6. Selección de campos dentro de un archivo....................................................................................................................................18
5.7. Ordenar el contenido de un archivo................................................................................................................................................19
5.8. Reemplazo de caracteres...............................................................................................................................................................19
6. MANEJO AVANZADO DE LA SHELL 20
6.1. Variables de entorno.......................................................................................................................................................................20
env...................................................................................................................................................................................................20
6.2. Metacarácteres................................................................................................................................................................................20
6.3. Anidar o concatenar comandos......................................................................................................................................................20
6.4. Tuberías...........................................................................................................................................................................................20
6.5. Redireccionamientos.......................................................................................................................................................................21
7. EXPRESIONES REGULARES 22
8. MÁS COMANDOS ÚTILES: 25
IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

1. INTRODUCCIÓN
El SISTEMA OPERATIVO es un conjunto de programas que acompañan al ordenador y que permite gestio-
nar tanto el hardware como el software así como las comunicaciones entre el usuario y el equipo.

Un usuario se comunica con el sistema operativo a través de interfaces. Tenemos dos tipos, modo texto
y modo gráfico. El primero de ellos lo hace mediante comandos mientras que el segundo mediante el uso del
ratón, iconos y ventanas.

Modo texto

La forma de ejecutar un comando es:


• En Linux: comando [opciones] parámetros
• En Windows: comando [modificadores] argumentos

La utilización del sistema operativo por comandos define a un usuario avanzado o administrador.

El programa para ejecutar comandos en Windows se llama [Link] y recibe el nombre de símbolo de
sistema. También dispone de una versión mejorada llamada Powershell.

La interfaz de comandos de Linux es conocida como shell, una de las mas utilizadas es bash (Bourne
Again Shell). Accedemos a la shell a través del terminal. En Linux Ctrl+Alt+F1 (de F1 a F6) nos lleva a un
terminal en modo texto y Ctrl+Alt+F7 al modo gráfico.

Shell: programa que nos sirve para acceder a los recursos y servicios del S.O.

Modo gráfico

El modo gráfico es conocido como GUI (Graphical User Interface), caracterizado por el uso de imá-
genes y objetos gráficos (ventanas, botonos, iconos, …) y la utilización de periféricos (ratón, pantalla táctil,
teclado, …).

La interfaz gráfica de Windows se llama Aero (en diferentes versiones según sea la versión del Sistema
Operativo), en Linux X11 que se carga mediante X-Window System.

En Linux tenemos dos entornos de escritorio que predominan sobre los demás, GNOME y KDE.

1º SMR Sistemas Operativos Monopuesto Pág. nº 1


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

2. DISCOS Y PARTICIONES
GNU/Linux usa un método lógico para nombrar las particiones. En primer lugar, al nombrar las
particiones no tiene en cuenta el tipo de particiones que podamos tener, y en segundo lugar nombra las
particiones de acuerdo al disco en el cual están ubicadas. Así es como se nombran los discos:
• Los dispositivos IDE maestro y esclavo primarios (ya sean discos rígidos, unidades de CDROM o
cualquier otra cosa) se denominan /dev/hda y /dev/hdb respectivamente.
• En la interfaz secundaria, el maestro se denomina /dev/hdc y el esclavo se denomina /dev/hdd.
• Si nuestra computadora contiene otras interfaces IDE (por ejemplo, la interfaz IDE presente en
algunas tarjetas SoundBlaster™), los dispositivos se denominarán /dev/hde, /dev/hdf, etc. También
puede que tenga interfaces IDE adicionales si tiene controladoras RAID.
• Los discos SCSI, SATA se denominan /dev/sda, /dev/sdb, etc. en el orden en que aparezcan en la
cadena SCSI (dependiendo de los ID incrementalmente).
• Los CD-ROM SCSI se denominan /dev/scd0, /dev/scd1, siempre en el orden de aparición de los
mismos en la cadena SCSI.

Las particiones se nombran en base al disco en el cual se encuentran, de la siguiente manera (en el
ejemplo, usamos el caso de particiones en un disco IDE maestro primario):
• Las particiones primarias (o extendidas) se denominan /dev/hda1 a /dev/hda4 cuando están presen-
tes.
• Las particiones lógicas , si existen, se denominan /dev/hda5, /dev/hda6, etc. en el orden de apa-
rición de las mismas en la tabla de particiones lógicas.

Entonces GNU/Linux nombrará las particiones de la manera siguiente:

Figura 1: Primer ejemplo del nombramiento de las particiones bajo GNU/Linux.

1º SMR Sistemas Operativos Monopuesto Pág. nº 2


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Figura 2: Segundo ejemplo del nombramiento de las particiones bajo GNU/Linux.

Así que ahora podremos citar el nombre de las distintas particiones y discos rígidos cuando los necesi-
temos manipular.

2.1. SWAP
En informática, el espacio de intercambio es una zona del disco (un fichero o partición) que se usa para
guardar las imágenes de los procesos que no han de mantenerse en memoria física. A este espacio se le suele
llamar swap, del inglés "intercambiar".

¿Hace falta swap?

La memoria de intercambio sirve como RAM adicional. Entonces, en un ordenador que ya tenga mu-
cha memoria RAM, ¿hace falta swap?

Aunque puede funcionar bien sin tener ningún área de intercambio, es muy recomendable crearla.

La razón es que siempre es bueno quitar de la memoria los procesos poco usados, ya que eso permite
usar la RAM para otras tareas, como por ejemplo la memoria caché de las operaciones de entrada/salida,
como el acceso al disco.

Un ejemplo: supongamos que un usuario abre en un programa una imagen muy grande, que le consu-
me el 80% de la memoria RAM, y después, sin cerrarla, se pone a hacer varias búsquedas de ficheros por su
disco duro. Si no se puede llevar a disco ese proceso grande, quiere decir que ha de mantenerse en memoria
física; por tanto, las búsquedas sólo tendrán menos del 20% de la memoria RAM para hacer de caché, y por
eso serán poco eficientes. Con swap, se podría llevar a disco el proceso grande (o al menos una parte), hacer
esas búsquedas usando toda la RAM como caché, y luego restaurar el proceso, si hace falta.

Hay algunos procesos que, debido a la función que realizan, están poco activos, y puede ser recomen-
dable que estén en el área de intercambio para liberar un poco la memoria RAM. Por ejemplo, un servidor

1º SMR Sistemas Operativos Monopuesto Pág. nº 3


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

SSH (mecanismo de control remoto del ordenador) tiene que estar siempre activo para atender las posibles
peticiones, pero sólo empezará a trabajar de verdad cuando un usuario se conecte.

Tamaño del espacio de intercambio

Ésta es una discusión típica entre los administradores de sistemas, y una duda común que sale durante
la instalación de un sistema Linux (o cualquier UNIX).

Hay una regla muy conocida que dice que "la swap ha de ser el doble de la memoria RAM instalada",
pero esto ya no es válido hoy en día. Esta regla funcionaba bien antes, cuando siempre se compraba menos
RAM de la que realmente se necesitaba, porque era muy cara. Tener 3 veces más memoria que la física iba
bien para la mayoría de usuarios. Pero en un ordenador nuevo que tenga 1 GB de RAM, no será necesario
gastar 2 GB en una partición de swap, porque probablemente no se usará.

La regla habitual usada para decidir el tamaño del área de intercambio es "pensar en cuánto querrías te-
ner y en cuánto tienes, y poner como swap la diferencia". Por ejemplo, si un usuario necesita abrir ficheros
de hasta 700 MB, pero sólo tiene 256 MB de RAM, entonces lo que le falta (aprox. 500 MB) se ha de poner
como swap, como mínimo. Más swap puede ir bien, pero no será muy usada.

2.2. PARTICIONES
La partición primaria

Es la primera y la mas importante, cualquier disco duro que se vaya a usar para almacenar un SO,
forzosamente debe tener una partición primaria, pues son ellas de quienes se puede iniciar la carga del SO.

La partición extendida

La partición extendida es un partición meramente de almacenamiento, en ella no se puede almacenar


un SO y arrancarlo desde ahí, pues este tipo de partición no es arrancable (booteable)

Las unidades lógicas

Mientras que solo pueden existir en un disco duro 4 particiones primarias o 3 particiones primarias y 1
Extendida dentro de la partición extendida podemos crear mas espacios, llamados unidades lógicas, por lo
tanto podemos tener 3 particiones primarias, 1 Extendida, y dentro de la extendida un número infinito de
unidades lógicas. Algo mas o menos así:

1º SMR Sistemas Operativos Monopuesto Pág. nº 4


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

3. ESTRUCTURA DE FICHEROS DE LINUX


Hemos de tener en cuenta de que en Linux todo es un archivo, Tanto el hardware como el software esta
almacenando como un archivo de texto y es de allí que nace el concepto de “montar” o “desmontar” un
dispositivo. Es decir, su estructura lógica, es independiente de la estructura del hardware, por lo tanto, no de-
pende de si el ordenador tiene 1, 3 o 5 discos duros para crear las unidades c:\ e:\ o k:\

El sistema de archivos mantiene la estructura de un árbol jerárquico bajo el estándar FHS (Filesystem
Hierarchy Standard), estableciendo una estructura común para los sistemas Linux.

El directorio origen o raíz se representa por / (barra inclinada) y bajo este se localizan todos los demás
archivos accesibles en el sistema operativo.

Por ejemplo, queremos acceder a un CDROM. Este es montado al sistema como un subdirectorio. En
ese subdirectorio se localizará el contenido del dispositivo cuando se encuentre montado y no encontraremos
nada en caso contrario. Para obtener la lista de dispositivos montados en el sistema, simplemente hacemos
uso del comando mount en la consola.

Directorio Descripción breve


Directorio raíz del sistema de ficheros. Denominado directorio Root (No confundir con el usuario root) Solo
/ el usuario Root tiene privilegios de escritura en este directorio. No es lo mismo /root que /, el primero es
el home del usuario root, el segundo es la raíz de todos los archivos
/bin Comandos y programas esenciales disponibles para todos los usuarios del sistema.
/boot Gestores de arranque.

/dev Contiene los dispositivos esenciales (no solo los de almacenamiento, también terminales, micrófonos,
impresoras, etc).
/etc Ficheros de configuración del sistema. El nombre proviene de “etcétera”.
/etc/network Fichero de configuración del servicio de red
/etc/X11 Ficheros de configuración para el X Window

1º SMR Sistemas Operativos Monopuesto Pág. nº 5


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

/home Directorios de los usuarios, excepto el del superusuario (root). Estos directorios contienen los ficheros
propios de un usuario. A menudo se constituye una partición de disco separada para ellos.
Contiene todas las bibliotecas (mal traducidas como librerías) para el núcleo y las esenciales que son
/lib
compartidas por los programas alojados /bin y /sbin.
Contiene los puntos de montaje de los medios removibles de almacenamiento, tales como lectores de CD-
/media ROM, Pendrives (memoria USB), e incluso sirve para montar otras particiones del mismo disco duro, por
ejemplo alguna partición desde otro sistema operativo.
Sistema de ficheros montados temporalmente. Es una directorio semejante a /media, pero es usada
/mnt
mayormente por los usuarios. Sirve para montar discos duros y particiones de forma temporal en el sistema.
Paquetes software opcionales, que pueden ser compartidos por los usuarios. Estas aplicaciones, utilizan el
/opt directorio de usuario para guardas sus configuraciones, y de esta forma, cada usuario puede tener una
configuración diferente de la misma aplicación.
/proc Ficheros de texto que identifican procesos activos en el sistema.
/root Directorio personal (home) del usuario root.
Sistema de binarios esencial, comandos y programas exclusivos del superusuario (root), por ejemplo: init,
/sbin
route).
/tmp Ficheros temporales (véase también /var/tmp).
/usr La mayoría de las utilidades y aplicaciones multiusuario.

/var Ficheros variables, tales como logs, archivos spool, bases de datos, archivos de e-mail temporales, y archivos
temporales en general.
/var/log Ficheros de registro, Log. Varios registros, logs.
/var/mail Buzón de mensajes de correo electrónico
/var/tmp Ficheros temporales que, a diferencia de /tmp, no se borran entre sesiones o reinicios del sistema.

1º SMR Sistemas Operativos Monopuesto Pág. nº 6


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

4. TAREAS BÁSICAS
Para manejar GNU/Linux se puede hacer de dos formas: una gráfica (si se instaló una interfaz X) y una
texto conocida como consola o terminal.

Si nos remitimos a una consola texto podremos apreciar que en ella se mostrará, el nombre que se le
asignó al sistema en la instalación y la palabra login. Aquí puede entrarse el login de un usuario del sistema.
(Luego se pedirá el password que al ser entrado no se muestra ningún eco en la pantalla. Si ambos son váli -
dos se establecerá la conexión y se mostrará el prompt:
usuario@maquina:~$
Del prompt podemos obtener la siguiente información:
• usuario: El usuario que está manejando la Shell.
• maquina: El nombre del pc que se está manejando.
• ~: Directorio, del sistema de archivos donde se encuentra el usuario.
• $ ó #: Indica si es un usuario normal ($), o es un usuario con privilegios, normalmente root (#)

El programa que se ejecuta en Linux cada vez que un usuario se conecta y que le permite interactuar
con el sistema se conoce como shell. Este es capaz de interpretar una gran gama de comandos y sentencias.
Constituye a su vez un poderoso lenguaje de Scripting (programación).

Existen muchos tipos de shells orientados a caracteres para Linux. Ejemplos:


• ash: A shell
• csh: C shell
• bsh: Bourne Shell
• bash: Bourne Again Shell

De los mencionados anteriormente bash es el más empleado en Linux. Este es uno de los más desarro-
llados y está portado para múltiples plataformas. Ofrece entre otras posibilidades las siguientes:
• Auto completar durante la escritura. Al teclear uno o varios caracteres se puede pulsar TAB con el
objetivo de que en caso de que pueda completarse de forma unívoca un comando, nombre de fi-
chero o una variable (en dependencia del contexto), complete de forma automática (se escriba el
resto de la palabra). Si existieran varias posibilidades para completar la palabra, se oirá un sonido y
volviendo a pulsar TAB se mostrarán en pantalla todas las posibilidades existentes.
• Historial de comandos. Esta es una facilidad de muchos otros shells que permite el movimiento a
través de los últimos N comandos ejecutados, en la sesión actual o en las anteriores. N por defecto
es 1000, pero puede modificarse. Para moverse arriba y abajo se suelen utilizar los cursores.
• Poderosas estructuras de control para realizar scripts. (Procesos por lotes). Se pueden usar instruc-
ciones if, for, while, select, etc.
• Definición de funciones y alias para comandos. Las funciones permiten definir subrutinas pro-
gramadas usando el lenguaje de bash y los alias, asociar nombres a llamados a comandos con
ciertas opciones y argumentos de forma más nemotécnica o abreviada.

1º SMR Sistemas Operativos Monopuesto Pág. nº 7


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

4.1. RUTAS ABSOLUTAS Y RELATIVAS


Para indicar la ubicación en disco de un fichero hay que indicar la lista de directorios que contienen al
fichero. Es decir, un fichero puede estar dentro de un directorio que a su vez está dentro de otro y así varios.
En esta lista, que denominaremos ruta de acceso, cada directorio está separado del siguiente directorio por el
signo / , y sin dejar espacios en blanco.

Para facilitar las cosas existen ciertos directorios especiales:


/ Es el directorio raíz. El superior de todos.
. Es el directorio activo. En el que nos encontramos en un momento dado.
.. Es el directorio superior al que nos encontramos.

Hay dos formas de expresar la ruta de un fichero, absoluta y relativa.

Una ruta absoluta es aquella que parte del directorio raíz. Las rutas absolutas son válidas en cualquier
caso. Si establecemos como ejemplo paralelo la dirección de la vivienda, la dirección absoluta incluye la
calle y el número de la vivienda, de forma única e independiente.

Una ruta relativa, es una ruta que parte del directorio actual como origen. Esta ruta sólo es válida desde
un directorio actual concreto , es decir es relativa a un directorio. Si seguimos el ejemplo que pusimos para
la dirección de una vivienda, una ruta relativa es como si te indicaran "dos casas más allá de cierta esquina".
Observamos como la dirección "dos casas más allá una cierta esquina" es sólo válida para una calle, y esa
misma dirección referida a otra calle sería otro inmueble distinto.

Ejemplo:

El archivo [Link] se encuentra en /home/user/docu/text

Si estás en /home/user/ la ruta absoluta hacia [Link] es /home/user/docu/text/[Link]

Si estás en /home/user/ la ruta relativa hacia [Link] es docu/text/[Link]

Si estás en /home/user/Escritorio, la ruta relativa hacia [Link] es ../doc/text/[Link]

1º SMR Sistemas Operativos Monopuesto Pág. nº 8


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

5. COMANDOS BÁSICOS
Los comandos son pequeños programas del sistema operativo.

Sintaxis: comando parámetros opciones

Reglas:
• Los comandos se escriben en minúsculas
• Entre el comando y cada uno de los parámetros hay un espacio en blanco
• Las opciones se escriben poniendo un guión delante y se pueden agrupar poniendo un único guion
delante de ellas.

En las siguientes secciones mencionaremos y describiremos brevemente la utilidad de un grupo de co-


mandos básicos para interactuar con un sistema Linux.

Para su mejor comprensión clasificamos los comandos en varias categorías:

5.1. COMANDOS PARA MANIPULAR DIRECTORIOS

pwd

Comando Función
pwd
El comando pwd indica el camino absoluto del directorio en el cual nos encontramos
actualmente

Ejemplos
$ pwd nos devuelve algo como /home/alumno/doc

cd

Comando Función

cd El comando cd se utiliza para cambiar el directorio actual

Sintaxis cd [directorio]

Ejemplos Resultado
$ cd /tmp Cambia al directorio /tmp
$ cd Cambia al directorio base (home) del usuario
$ cd ~ (alt + 126) cambia al directorio home del usuario actual

1º SMR Sistemas Operativos Monopuesto Pág. nº 9


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

mkdir

Comando Función

mkdir El comando mkdir se utiliza para crear directorios.

Opciones Explicación
-p Crear los directorios intermedios si no existen

Ejemplos
$ mkdir datos Crea el directorio datos
$ mkdir /bin Crea el directorio bin en el raíz
$ mkdir -p docs/linuxdocs/howtos/pdf Se crean los directorios intermedios si no
existen

rmdir

Comando Función

rmdir El comando rmdir se utiliza para borrar directorios.

Opciones Explicación
-p Borra los directorios intermedios si están vacíos
-v Informa de todos los borrados que han sido exitosos

Ejemplos
$ rmdir datos Borra el directorio datos
$ rmdir /bin Borra el directorio bin en el raíz
$ rmdir -p docs/linuxdocs/howtos/pdf Borra el directorio
docs/linuxdocs/howtos/pdf y todos los
directorios intermedios si están vacíos

5.2. COMANDOS PARA MANIPULAR FICHEROS

ls

Comando Función
ls Permite listar el contenido de un directorio

1º SMR Sistemas Operativos Monopuesto Pág. nº 10


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Opciones Explicación
-l muestra la salida en formato largo
-R lista recursivamente un directorio.
-a lista además los ficheros ocultos (sus nombres comienzan con punto)
-h muestra el tamaño de los ficheros en forma más legible (Ej.: 16M, 4k,)

Ejemplos
$ ls -hl /etc
$ ls -R /usr
$ ls -al
$ ls -ali ..
Un grupo de opciones que se suele utilizar bastante es lia (ls –lia)

touch

Comando Función
touch Este comando se utiliza para cambiar la fecha de acceso y/o modificación a un archivo
Sintaxis touch [opciones] archivo

Ejemplos
~$ touch fich1 Si el argumento archivo corresponde al nombre de un
archivo que no existe (fich1 en el ejemplo), touch creará
el archivo con dicho nombre y sin ningún contenido.

cp

Comando Función
cp Permite copiar un fichero en otro, o varios ficheros en un directorio
cp [opciones] <fuente> <destino>
Sintaxis cp [opciones] <ficheros> <directorio>

Opciones Explicación
-r Copia recursivamente un directorio

Ejemplos
$ cp usrbin/*sh /tmp copia los ficheros terminados en sh en tmp

$ cp etcpasswd . Copia un fichero en el directorio actual

1º SMR Sistemas Operativos Monopuesto Pág. nº 11


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

mv

El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio. Este permite a su
vez renombrar ficheros o directorios.

Sintaxis:
mv [opciones] <origen> <destino>
mv [opciones] <ficheros> <directorio>

Algunas opciones:
-u : actualiza (upgrade) el destino con el origen solo si este es más
reciente.

Ejemplos:
$ mv [Link] [Link] # renombra un fichero
$ mv *.txt /tmp # mueve ficheros terminados en .txt al directorio
/tmp
$ mv -u program.c src/ # actualiza el fichero destino si es menos
reciente que el fuente

rm

El comando rm se utiliza para borrar ficheros

Sintaxis:
rm [opciones] <ficheros | directorios>

Algunas opciones:
-r: borra recursivamente un directorio.

Ejemplos:
$ rm prueba
$ rm -i bin/*
$ rm -rf temp/

5.3. COMANDOS PARA PAGINAR, VISUALIZAR Y EDITAR FICHEROS

cat

El comando cat concatena (conCATenate) ficheros y los imprime en la salida estándar. Si solo se da el
origen a cat, utiliza como salida la pantalla. Es decir, cat hola muestra por pantalla el fichero hola. Si solo se
da la salida a cat (cat > fichero) utiliza como entrada el teclado.

1º SMR Sistemas Operativos Monopuesto Pág. nº 12


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Ejemplo:
# cat /etc/passwd /etc/shadow
$ cat > fichero
$ cat < origen > destino

vi

El editor vi es el editor estándar de Unix. Es orientado a comandos. Existe una versión conocida como
vim (Vi IMproved) muy poderosa que permite la edición de múltiples ficheros, ayuda en línea, selección vi-
sual, varios niveles de deshacer, etc.

Encontraremos vi en cualquier versión de Linux que usemos.

Básicamente vi posee dos modos de interacción: el de inserción (edición) y el de comandos. Para pasar
al modo comando se pulsa Esc y para pasar al de inserción se pulsa i.

Algunos comandos útiles en vi (pulsando ESC para pasar al modo de comandos, que veremos en la
última línea de la pantalla).
dd - borra la línea actual.
ndd - borra n líneas desde la posición actual.
dw – borra la palabra actual
nyy – copia las n líneas siguientes
p – pega lo copiado
u - deshace el último comando.
:q! - sale sin salvar.
:w - salva.
:wq - salva y sale.
/expre – busca la expresión que le pongas. Después n, repite la
búsqueda

more y less

Comando Función

Los comandos more y less paginan (dividen en páginas) uno o varios ficheros y los
muestran en la terminal (pantalla).

more Se diferencian en las facilidades que brindan. Por ejemplo more es más restrictivo en
cuanto al movimiento dentro del texto, mientras que less no limita este aspecto pues acepta
less el empleo de todas las teclas de movimiento tradicionales. Cuando se alcanza el final del
último fichero a paginar, more termina automáticamente, no así less. También more muestra
sucesivamente el porcentaje del fichero visto hasta el momento. Tanto less como more pro-
veen una serie de comandos para moverse con facilidad dentro del texto paginado.
more [opciones] [ficheros]
Sintaxis less [opciones] [ficheros]

1º SMR Sistemas Operativos Monopuesto Pág. nº 13


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Ejemplos
$ less /etc/passwd
$ more /etc/passwd
$ cat fichero | less

Algunas teclas que podemos usar mientras usamos estos programas son:
Teclas Explicación
q Permite interrumpir el proceso y salir.
/p
Realiza búsquedas del patrón p dentro del texto. Para repetir la búsqueda del mismo patrón
sólo es necesario escribir /.
[n]b En more: permite regresar n páginas (por defecto n es 1).
[n]f
En more: se adelantan n páginas y
En less: n líneas.

tail y head

Comando Función

tail Los comandos tail y head muestran respectivamente el final y el comienzo (10 líneas
head por defecto) de uno o varios ficheros. De no especificarse al menos un fichero toman la en-
trada estándar.
tail [opciones] [ficheros]
Sintaxis head [opciones] [ficheros]

Opciones Explicación

-f
Para el caso de tail se ejecuta de forma sostenida, osea, se continúa visualizando el final del
fichero hasta que se interrumpa el proceso (Ctrl-c).
-<n> Imprime las n últimas (primeras) líneas en lugar de las diez establecidas por defecto.

Ejemplos
# tail -f /var/log/messages
# tail -20 /var/log/secure
# head -50 /var/spool/mail/pepe

1º SMR Sistemas Operativos Monopuesto Pág. nº 14


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

5.4. COMANDOS PARA HACER BÚSQUEDAS DE FICHEROS Y PATRONES

grep

Comando Función

grep El comando grep busca patrones en ficheros. Por defecto devuelve todas las líneas que
contienen un patrón (cadena de texto) determinado en uno o varios ficheros.
Sintaxis grep [opciones] <patrón> [ficheros]

Opciones Explicación
-c Devuelve sólo la cantidad de líneas que contienen al patrón
-r Busca en un directorio de forma recursiva
-n Muestra el número de cada línea que contiene el patrón

Ejemplos
$ grep linux /usr/share/doc
$ grep root /etc/passwd
$ cat /etc/passwd | grep juan
$ ls –lia | grep “carta roja”
# grep -n error /var/log/messages

find

Comando Función

El comando find es uno de los más poderosos en un sistema Linux. Permite buscar de
find forma recursiva en un directorio a todos los ficheros que cumplan ciertas condiciones. Las
condiciones pueden estar relacionadas con el nombre de los ficheros, el tamaño, los permi-
sos, el tipo, las fechas de acceso y modificación, etc.
Sintaxis find [camino] [opciones]

Opciones Explicación
-namePermite especificar patrones para los nombres de los ficheros a buscar.
-size +/-<n> Permite indicar el tamaño máximo y/o mínimo de los ficheros a buscar.
-exec <comando> ;
Permite definir un comando a ejecutarse para cada resultado de la búsqueda. La
cadena {} se sustituye por el nombre de los ficheros encontrados

1º SMR Sistemas Operativos Monopuesto Pág. nº 15


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Ejemplos
$ find /etc -name '*.conf' # busca en /etc todos los ficheros con
extensión conf

$ find / -size +10240k -size -20480k # busca ficheros tamaño entre 10M y 20M

# find / -name core -exec rm -i “{}” “;” # busca todos los ficheros que se llamen
core y los borra

5.5. COMANDOS PARA COMPRIMIR Y AGRUPAR FICHEROS

tar

Comando Función

El comando tar sirve para empaquetar o desempaquetar ficheros, empaquetar significa


tar guardar en un único fichero una lista de varios ficheros, o el contenido de todo un directorio
(o varios directorios). El comando tar no comprime, existen opciónes (-z, -j) que añaden
compresión al fichero agrupado.
Sintaxis tar [opciones] <fuentes>

Opciones Explicación
-c Permite crear (empaquetar) buscar.
-x Permite extraer (desempaquetar)
-v Activa el modo debug, para visualizar todos los mensajes
-f <fichero> Agrupa o desagrupa en o hacia un fichero
-z Comprimir o descomprimir con gzip además de empaquetar
-j Comprimir o descomprimir con bzip2 además de empaquetar
-t Lista el contenido de un fichero tar
-C Especificar el directorio de destino cuando se descomprime

Ejemplos
$ tar cvf [Link] ficheros Empaquetar ficheros en [Link]

$ tar xvf [Link] Desempaquetar [Link]

$ tar czvf [Link] ficheros Empaqueta y comprime con bz2

$ tar cjvf [Link].bz2 ficheros Empaqueta y comprime con bz2

$ tar xjvf [Link].bz2 Desempaqueta y descomprime

$ tar tf [Link] Lista el contenido del fichero

$ tar xjvf [Link].bz2 -C /tmp Descomprime en /tmp

1º SMR Sistemas Operativos Monopuesto Pág. nº 16


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

gzip y gunzip

Comando Función

gzip El comando gzip sólo comprime fichero a fichero, no empaqueta ni comprime varios
ficheros o directorios
Sintaxis gzip [opciones] <fichero/directorio>

Comando Función

gunzip Descomprime
Sintaxis gunzip [opciones] <fichero/directorio>

Opciones Explicación

Ejemplos
$ gzip ficheros Comprime todos los ficheros uno a uno

$ gunzip [Link] Descomprime el archivo

zip y unzip

Comando Función

zip El comando zip comprime en el formato mas universal


Sintaxis zip [opciones] <fichero/directorio>

Comando Función

unzip Descomprime
Sintaxis unzip [opciones] <fichero/directorio>

Opciones Explicación
-r Dado un directorio comprime todos sus ficheros recursivamente

Ejemplos
$ zip [Link] ficheros Comprime todos los ficheros

1º SMR Sistemas Operativos Monopuesto Pág. nº 17


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

$ unzip [Link] Descomprime el archivo

rar

Comando Función

rar El comando rar comprime y descomprime en formato rar


Sintaxis rar [opciones] <fichero/directorio>

Opciones Explicación

Ejemplos
$ rar a ficheros [Link] Comprime todos los ficheros

$ rar x [Link] Descomprime el archivo

5.6. SELECCIÓN DE CAMPOS DENTRO DE UN ARCHIVO.

Comando Función

cut Permite visualizar caracteres o campos concretos de todas las líneas de un fichero
cut -cRango archive
Sintaxis cut [-dcaracter] –fRANGO archivo

Opciones Explicación
-cRANGO Selecciona los caracteres dentro del RANGO
-dcarácter Especifica el separador de campos
-fRANGO Selecciona los campos dentro del rango

RANGO puede tener los siguientes formatos:


• número- Todos los caracteres o campos desde número hasta el último.
• número1-número2 Todos los caracteres o campos desde número1 hasta número2.
• número1,número2, ... Solamente los campos número1, número2, ...

El primer campo o carácter corresponde al número 1

Para una aplicación que envíe correos electrónicos a toda la lista de amigos, podría ser interesante ob-
tener las direcciones de todos ellos a partir del archivo amigos:
cut –d% -f4 amigos

1º SMR Sistemas Operativos Monopuesto Pág. nº 18


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

Si, además, se deseara tener el nombre de cada amigo, la orden adecuada sería:
cut –d% -f1,4 amigos

5.7. ORDENAR EL CONTENIDO DE UN ARCHIVO.


Se pueden ordenar alfabéticamente las líneas de un archivo utilizando la orden sort.

Sintaxis:
sort [-ru] archivo

Modificadores:
• -r Orden descendente
• -u Elimina las filas duplicadas
• -ru Orden descendente eliminando las filas duplicadas

El ordenamiento se realiza en base a los valores numéricos de los caracteres ASCII, por ello, el carác-
ter Z (mayúscula) irá antes del carácter a (minúscula) en el archivo ordenado de forma ascendente.

5.8. REEMPLAZO DE CARACTERES.


La orden tr facilita la tarea de reemplazar unos caracteres por otros dentro de un fichero.
Sintaxis:
tr 'conjunto inicial' 'conjunto final' < fichero
tr –d 'conjunto inicial' < fichero

Cuando se utiliza sin ningún modificador, tr lee el archivo fichero y reemplaza los caracteres conteni-
dos en el conjunto inicial por los caracteres del conjunto final. Se visualiza el resultado pero no se modifica
el archivo original.

Con el modificador –d, lee el archivo fichero y elimina los caracteres contenidos en el conjunto inicial.
Se visualiza el resultado, pero no se modifica el archivo original.

Ejemplos 1:
tr '%' '&' < amigos >amigos_2

Cambia el carácter % (separador de campos) del archivo amigos por el carácter & y guarda el re-
sultado en el archivo amigos_2. El contenido de amigos no varía, mientras que el de amigos_2 se puede vi-
sualizar con la orden cat.

Ejemplos 2:
tr '[A-Z]' '[a-z]' < amigos

Cambia todos los caracteres en mayúsculas por caracteres en mayúsculas, visualiza el resultado, pero
no guarda los cambios.

Ejemplos 3:
tr –d '@' < amigos >>amigos

Elimina todos los caracteres @ del fichero amigos y guarda el resultado añadiéndolo al final del
mismo. No se visualiza el resultado por pantalla porque se redirecciona la salida (>>).

1º SMR Sistemas Operativos Monopuesto Pág. nº 19


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

6. MANEJO AVANZADO DE LA SHELL


6.1. VARIABLES DE ENTORNO
Las variables de entorno son un conjunto de valores dinámicos que normalmente afectan el comporta-
miento de los procesos en una computadora.

env

Existen variables definidas en el sistema, y pueden verse con el comando env

Existen dos variables muy comunes en Linux

$PATH Contiene una lista separada por dos puntos de directorios en los cuales el intérprete de coman-
dos buscará los archivos ejecutables que no se invocan con una ruta. echo $PATH

$HOME Contiene la ubicación del directorio de usuario. De esta manera, los dos comandos siguientes
tienen el mismo efecto.

La forma de crear una variable y asignarle valor es: NOMB_VARIABLE=valor

6.2. METACARÁCTERES
• * sustituye a cualquier carácter o conjunto de carácteres
• ? sustituye a un solo carácter.
• [ ] se especifica que carácter o caracteres se sustituirán en esa posición.
• [!] Permite la negación de algún carácter.

6.3. ANIDAR O CONCATENAR COMANDOS


• ; podemos ejecutar varios comandos en la misma línea, una detrás de otra, separándolos con ;

Ejemplo:
mkdir uno ; mkdir dos; ls

• && Ejecuta un segundo comando si el primero ha sido ejecutado correctamente.

Ejemplo:
mkdir datos && ls

6.4. TUBERÍAS
Las tuberías en GNU/Linux enlazan la salida de un comando con la entrada de otro, lo que nos permite
realizar tareas complejas en la línea de comandos. Una tubería se escribe con el carácter | (Alt Gr+1).

Veamos un ejemplo:

1º SMR Sistemas Operativos Monopuesto Pág. nº 20


IES ANTONIO SEQUEROS TEMA 4: TAREAS BÁSICAS

cat [Link] | wc El comando wc cuenta el número de líneas, pa-


labras y caracteres de un archivo. La línea
anterior nos muestra, por tanto, el número de lí-
neas, palabras y caracteres del fichero [Link]

6.5. REDIRECCIONAMIENTOS
Los comandos toman su entrada de algo conocido como entrada estándar y envían su salida a la salida
estándar (a menudo abreviado como "stdin o standar input" y "stdout o standar output"). Además existe una
salida especial para los mensajes de error de cada programa (stderr o standar error).

El intérprete de comandos configura el sistema de forma que la entrada estándar es el teclado y la sali-
da la pantalla.

Podemos cambiar este funcionamiento:


• > archivo Redirige al archivo. Crea el archivo
• >> archivo Redirige stdout al archivo, pero añade el texto.
• 2> archivo Redirige stderr al archivo
• < archivo Redirige stdin desde el archivo.

Operando Resultado
orden < archivo orden utiliza como datos los contenidos en archivo.
orden > archivo Guarda en archivo los resultados de orden. Si archivo ya existe, lo sobreescribe.
orden >> archivo Añade los resultados de orden al final de archivo. Si no existe, lo crea.
orden utiliza como datos los que se escriban en las líneas siguientes hasta encontrar
orden << etiqueta
una línea que contenga etiqueta.
Envía el resultado de orden1 como dato para orden2 utilizando una tubería o pipe
orden1 | orden 2
(mediante el carácter | ).

Ejemplo:
ls /etc > [Link] el resultado del listado lo meterá en un fichero
mkdir /datos 2>fichero si hay error el resultado lo manda al fichero
date >> [Link] Añade la fecha al fichero. Podemos hacerlo varias
veces.

1º SMR Sistemas Operativos Monopuesto Pág. nº 21


7. EXPRESIONES REGULARES
Las expresiones regulares (ER), también llamadas patrones, son una forma de describir
cadenas de caracteres sin enumerar la totalidad de sus elementos. Se utilizan muy frecuentemente
en programación y diseño Web y nos permiten realizar búsquedas o sustituciones de gran compleji-
dad.

En el área de la programación, las expresiones regulares son un método muy eficaz para rea-
lizar búsquedas dentro de cadenas de caracteres y también para validar formatos específicos en una
cadena dada (como fechas o identificadores).

Para poder utilizar estos patrones al programar es necesario tener acceso a un motor de
búsqueda con capacidad de utilizarlas. Estos motores pueden ser de dos tipos:
• Motores para el usuario final: programas que permiten realizar búsquedas sobre el
contenido de un archivo o de un texto cualquiera. Es necesario aprender a redactar las ex-
presiones regulares adecuadas para poder sacarles el rendimiento deseado. Algunos de los
más frecuentes son: grep, sed, PowerGrep, RegexBuddy, EditPad Pro…
• Motores para el programador: permiten automatizar el proceso de búsqueda de modo
que sea posible utilizarlo múltiples veces para un propósito específico. Algunas de las
herramientas de programación que soportan las ER son: AWK, Java, JavaScript, Perl,
PCRE, PHP, Python, Net Framework…

Aunque por lo general las expresiones regulares utilizan un lenguaje común en todas las
herramientas y su sintaxis es relativamente uniforme, cada lenguaje usa su propio dialecto. Por este
motivo, el contenido de esta entrada en el blog del curso debería servir simplemente de guía o intro-
ducción a los patrones de búsqueda y tener siempre presente estas posibles diferencias que podamos
encontrar.

Las expresiones regulares se construyen como las expresiones aritméticas, usando operadores
para combinar expresiones más pequeñas y están formadas por un conjunto de caracteres (un grupo
de letras, números o signos) o por meta-caracteres, que representan otros caracteres y permiten una
búsqueda contextual.

Los meta-caracteres no se representan a ellos mismos, sino que son interpretados de una
forma especial, ya que tienen un significado propio. Los más utilizados son: . * ? + [ ] ( )
{} ^ $ | \

Significado de los caracteres especiales más utilizados:


^ Principio de entrada o línea.
$ Fin de entrada o línea.
* El carácter anterior ninguna o más veces.
+ El carácter anterior una o más veces.
? El carácter anterior una vez como máximo (es decir, una o ninguna, es opcional).
. Cualquier carácter individual, salvo el de salto de línea.
x|y (una de varias opciones).
x o y

{n} Exactamente n apariciones del carácter anterior.


{n,m} Como mínimo n y como máximo m apariciones del carácter anterior.
[abc] Cualquiera de los caracteres entre corchetes (o un rango de caracteres [a-f]).
[^abc] Cualquier carácter que no esté entre corchetes.
\b Límite de palabra (como un espacio o un retorno de carro).
\B Cualquiera que no sea un límite de palabra.
\d Cualquier carácter de dígito. Es equivalente a [0-9].
\D Cualquier carácter que no sea dígito. Es equivalente a [^0-9]
\f Salto de página.
\n Salto de línea.
\r Retorno de carro.

\s
Cualquier carácter individual de espacio en blanco: espacios, tabulaciones, saltos de
línea o saltos de página.
\S Cualquier carácter individual que no sea un espacio en blanco.
\t Tabulación.
\v Tabulación vertical.
\a Representa una campana o “beep” que se produce al imprimir este carácter.
\e Tecla “Esc” o “Escape”.

\w
Cualquier carácter alfanumérico, incluido el guión bajo (o de subrayado). Es
equivalente a [A-Za-z0-9_]
\W Cualquier carácter que no sea alfanumérico. Es equivalente a [^A-Za-z0-9_].
\x Para representar caracteres ASCII o ANSI si conocemos su código.

\u
Para representar caracteres Unicode si conocemos su código. (No todos los motores
lo soportan).

Ejemplos:
Algunos de los patrones más frecuentes a la hora de hacer validaciones de datos son:
Cualquier letra en
[a-z]
minúsculas:
Número entero: ^(?:\+|-)?\d+$
Correo electrónico: /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/
^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:
URL:
(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\’\/\\\+&%\$#_]*)?$
IP: ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$
Contraseña segura: (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$
Fecha: ^\d{1,2}\/\d{1,2}\/\d{2,4}$
Hora: ^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$
Número de tarjeta de ^((67\d{2})|(4\d{3})|5[1-5]\d{2})|(6011))(-?\s?\d{4})
crédito: {3}|(3[4,7])\d{2}-?\s?\d{6}-?\s?\d{5}$
Número de teléfono: ^[0-9]{2,3}-? ?[0-9]{6,7}$
Código postal: ^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$
Certificado de ^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7}
identificación fiscal: (-|\.)? [0-9A-Z]|\d{8}(-|\.)?[A-Z])$
8. MÁS COMANDOS ÚTILES:
Comando Función
lsblk -fm Listar información de todos los dispositivos de bloques (particiones)
sudo fdisk -l Lista particiones
sudo free Uso de la memoria
lscpu Muestra información sobre el procesador del sistema
Disco y Particiones
mount monta y desmonta particiones
fdisk Gestor de particiones
df Muestra información del espacio utilizado en disco
lsblk lista información de los dispositivos de bloque
Nos permite enumerar todos los discos y particiones en nuestro sistema. Además podemos ad-
ministrarlos y realizar operaciones como añadir o eliminar particiones, o incluso cambiar el
cfdisk
tamaño de estas. Por último, que no menos importante, nos permite cambiar el tipo de
partición
enumera las particiones y permite administrarlas. Además muestra información de las marcas
parted
y modelos de los discos, incluso el tipo de conexión, como por ejemplo SATA, SCSI, etcétera.
uname muestra información sobre el sistema (uname -r versión del kernel; uname -m arquitectura)
lsmod Muestra información sobre los módulos del kernel cargados
lscpi Lista los dispositivos pci
lsusb Lista los dispositivos usb
lshw información hardware del sistema
dmidecode -q información hardware del sistema
uptime tiempo que lleva el sistema encendido
last últimos usuarios conectados
lastb últimos intentos de conexión al sistema fallidos
cat /proc/cpuinfo mostrar información de la CPU.
cat /proc/interrupts mostrar las interrupciones.
cat /proc/meminfo verificar el uso de memoria.
cat /proc/swaps mostrar ficheros swap.
cat /proc/version mostrar la versión del kernel.
cat /proc/net/dev mostrar adaptadores de red y estadísticas.
cat /proc/mounts mostrar el sistema de ficheros montado.
cat /proc/partitions Mostrar las particiones
Ficheros importantes
/etc/passwd
/etc/shadow Fichero que contiene las contraseñas encriptadas de los usuarios
/etc/group Fichero donde se almacena la información de los grupos
/etc/gshadow Fichero donde se almacena la información segura de un grupo
/etc/fstab

También podría gustarte