Académique Documents
Professionnel Documents
Culture Documents
I N F O R M A T I C O S
Introduccin._______________________________________________4
Formas generales de obtener ayuda en Linux. (Modo Texto)._____________6
Usuarios y grupos.______________________________________________7
Comandos Bsicos.______________________________________________9
Comandos para manipular ficheros y directorios.______________________10
Comando ls________________________________________________________10
Comando cd_______________________________________________________10
Comando pwd_______________________________________________________11
Comando mkdir_____________________________________________________11
Comando mv_______________________________________________________11
Comando cp________________________________________________________12
Comando rm_______________________________________________________12
Comando chown_____________________________________________________13
algunos ejercicios sobre estos comandos.__________________________________13
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
L I N U X .
S I S T E M A S
L I N U X .
I N F O R M A T I C O S
S I S T E M A S
I N F O R M A T I C O S
INTRODUCCIN.
Una vez instalado e inicializado un sistema Linux se dispone de dos vas fundamentales de
interaccin: una grfica (si se instal una interfaz X y se configur adecuadamente) y una
interfaz de texto conocida como consola o terminal.
Al igual que Unix, Linux ofrece el mecanismo de consolas o terminales virtuales. Consiste en
que a partir de una entrada stdin (el teclado) y con una salida stdout (el monitor) se simulen
varias terminales, donde el mismo, o distintos usuarios puedan conectarse. De esta forma es
posible tener ms de una sesin abierta en la misma mquina y trabajar en ellas
indistintamente. Este mecanismo tambin facilita la caracterstica multiusuario del sistema
Linux pues las diferentes conexiones se pueden establecer con diferentes usuarios.
Por defecto, las consolas desde la uno a la seis tienen asociadas un programa que permite
conectarse al sistema en modo texto, mientras que la siete, si se instal y activ el modo
grfico, constituye una consola grfica.
El cambio de una consola a otra se realiza a travs de la combinacin de teclas Alt y Fx (las
teclas de Funcin), donde x oscila entre 1 y 12. De esta forma se pueden acceder un total de
24 consolas virtuales: para las doce primeras se utiliza el Alt izquierdo y para las otras doce
el derecho. Por ejemplo para llegar a la consola 16 se presionaran las teclas Alt derecho y
F4. No obstante normalmente solo se puede acceder a las consolas con algn proceso o
funcionalidad definida.
Desde una consola grfica para cambiar a otra tipo texto se debe adems presionar la tecla
Ctrl, pues las combinaciones Alt + Fx son capturadas e interpretadas por las aplicaciones
grficas de otra forma.
Con la tecla Alt izquierda combinada con los cursores (derecho e izquierdo) se puede
adems, realizar un movimiento circular entre todas aquellas consolas que tengan un proceso
asociado (texto, grfico, etc.).
Si nos remitimos a una consola texto podremos
apreciar que en ella se mostrar, el nombre de la
distribucin, la versin de la distribucin, la versin
del kernel y la arquitectura de la mquina. Tambin
aparecer el nombre que se le asign al sistema en la
instalacin y la palabra login. Aqu puede introducirse
el login de un usuario del sistema (seguramente root,
si no se crearon ms cuentas durante la instalacin).
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
Despus se pedir el password que al ser escrito no muestra ningn eco en la pantalla. Si
ambos son vlidos se establecer la conexin y se mostrar lo que se conoce como prompt,
con forma similar a esta:
[root@pinguino /root]$
Para abreviar, en lo sucesivo usaremos el carcter $ para hacer referencia al prompt de un
usuario comn, y # para el prompt del sper usuario root.
Al igual que en Unix, 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 (bash normalmente). Este
es capaz de interpretar una gran gama de comandos y sentencias. Constituye a su vez un
poderoso lenguaje de Scripting. Muchos programas y comandos son shell scripts, por lo que
el conocer este lenguaje permite no slo entenderlos y ajustarlos a las necesidades
particulares sino tambin, hacer nuevos scripts para automatizar diversas tareas.
Existen muchos tipos de shells para Linux.
Ejemplos:
ash: A shell
csh: C shell
tcsh: una extensin al C shell
ksh: Korn Shell
bsh: Bourne Shell
bash: Bourne Again Shell
Algunos shells se originan de otros o toman sus caractersticas ms avanzadas. De los
mencionados anteriormente bash es el ms empleado en Linux. Este es un producto de la FSF
(Free Software Foundation). Es uno de los ms desarrollados y est portado para mltiples
plataformas. Toma las facilidades de csh y ksh. 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 unvoca un
comando, nombre de fichero o una variable (en dependencia del contexto), complete de
forma automtica (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 mostrarn en
pantalla todas las posibilidades existentes. En caso de existir muchas posibilidades (por
defecto ms de 100) se pregunta si se desea mostrarlas todas o no.
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
Historial de comandos. Esta es una facilidad de muchos otros shells que permite el
movimiento a travs de los ltimos N comandos ejecutados, en la sesin 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 utilizar instrucciones if, for, while, select, case, etc.
Definicin de funciones y alias para comandos. Las funciones permiten definir
subrutinas programadas usando el lenguaje de bash y los alias que permiten asociar
nombres a comandos con ciertas opciones y argumentos de forma ms nemotcnica o
abreviada.
FORMAS GENERALES DE OBTENER AYUDA EN LINUX. (MODO TEXTO).
Existen mltiples y variadas formas de obtener ayuda en un sistema Linux. A continuacin se
describen algunas de ellas:
1.
Muchos comandos poseen una opcin para mostrar una ayuda breve acerca de su
utilizacin. Esta opcin usualmente consiste en utilizar el parametro -h, --help -?
tras el nombre del comando. (mkdir - - help).
2. El comando help, que muestra en algunos comandos integrados del bash un manual
propio. (help alias).
3. El comando info que muestra informacin sobre los comandos en una estructura de
rbol. (info mkdir).
4. El comando whatis que nos da una ayuda rpida sobre comandos. (whatis cp).
5. El comando apropos, que dada una palabra busca los comandos relacionados sobre
ella. (apropos delete).
6. El comando man despliega un manual bastante amplio acerca de comandos, formatos
de ficheros de configuracin, llamadas al sistema, etc. Los manuales estn
disponibles y pueden instalarse en mltiples idiomas. Estos se dividen internamente
en secciones. EL mismo objeto que se est buscando puede estar representado en
varias secciones. De no especificarse ninguna seccin a travs del primer argumento
del comando se tomar la primera donde aparezca. (man mkdir).
7. Muchos programas se empaquetan con su documentacin en diversos formatos.
Normalmente estas ayudas se agrupan en el directorio /usr/share/doc. Tambin
existen los HOWTOs (Como lograr...) escritos en muchos idiomas y formatos para
varios temas disponibles. Algunos se empaquetan como cualquier otro programa o se
localizan en Internet.
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
USUARIOS Y GRUPOS.
Linux es un sistema multiusuario, lo cual permite que varios usuarios puedan conectarse y
trabajar en l de forma simultnea. Las conexiones como ya se ha visto se pueden realizar a
travs de varias terminales locales o utilizando servicios de red como el Telnet y SSH.
Un usuario se caracteriza por su login el cual debe indicar para conectarse al sistema y de su
password o contrasea. Adems puede poseer un conjunto de datos adicionales mencionados
ms adelante.
El usuario con ms privilegios en Linux es aquel cuyo login es root. Este es el nico con
derechos suficientes para crear o eliminar a otros usuarios, adems de acceder a todo el
sistema de ficheros sin ninguna restriccin.
En Linux adems existen grupos de usuarios tambin administrados por root o por un usuario
designado por este. Los grupos permiten otorgar los mismos privilegios a un conjunto de
usuarios.
Siempre que se aada un usuario al sistema se crear un grupo con su mismo nombre, llamado
grupo primario. Durante la creacin o posteriormente, se podr incorporar el usuario a otros
grupos secundarios.
Tanto los usuarios como los grupos se identifican por el sistema a travs de un identificador
(ID) numrico. El usuario root siempre tiene el ID cero. Cada usuario cuando se conecta al
sistema posee un identificador de usuario asociado (uid) y un identificador de grupo (gid).
Al aadir un usuario tambin se crear un directorio base para el mismo con el nombre de su
login. Este directorio se coloca por defecto en el directorio /home excepto para root, cuyo
directorio base es /root.
La informacin asociada a los usuarios en un sistema Linux se guarda en el fichero
/etc/passwd y las contraseas y datos afines en /etc/shadow. Por su parte la informacin de
los grupos, sus miembros y passwords estn en /etc/group y /etc/gshadow respectivamente.
Para crear un usuario se usa el comando useradd, aunque es mucho mejor usar un script que
viene instalado en Linux, que se llama adduser. Este script controla useradd y permite
realizar funciones avanzadas, como crear automticamente el directorio del usuario,
configurar su perfil, etc.
Como ejemplo, realiza el siguiente ejercicio:
1)
Crea dos usuarios, uno con nombre margarita y otro con nombre floripondio. En ambos se
usa de contrasea 123:
L I N U X .
S I S T E M A S
a.
I N F O R M A T I C O S
3) Edita el fichero /etc/passwd y comprueba como se han creado dos lneas, una para cada
uno de los usuarios que han sido creados.
a.
less
/etc/passwd
4) Edita el fichero /etc/shadow y vers cmo se han creado tambin dos lneas, una para
cada uno de los usuarios.
a.
less
/etc/shadow
5) Edita el fichero /etc/group y comprueba como se ha creado una lnea para el grupo
creado, donde adems se puede comprobar que se han aadido como miembros los
usuarios.
a.
less
/etc/group
Para comprobar que los usuarios se han creado bien, realiza lo siguiente:
1) Accede al 4 terminal (Control Alt F4), y haz un login con el usuario margarita.
Una vez abierta sesin, ejecuta el comando whoami y el comando id. Comprueba que
efectivamente ests en el grupo flores. Para cerrar la sesin se usa el comando
logout.
2) Acceder al 5 terminal, hacer un login con floripondio y comprobad lo mismo.
(Para volver al terminal grafico desde un terminal de texto, accede al 7 terminal).
Toda la gestin de usuarios y grupos de Linux, en realidad se basa en la modificacin de una
serie de ficheros de texto que estn en el directorio etc.
Intenta ahora crear otro usuario, con nombre pimiento y asgnalo como miembro del grupo
verduras que tambin habr que crear. Estas acciones realzalas sin usar los comandos
adduser y addgroup, y en su lugar modifica directamente los ficheros passwd, shadow y
groups.
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
Una vez hecho, accede a los terminales de texto y como hemos hecho anteriormente,
comprueba que pimiento puede realizar login, y que pertenece a los grupos a los que debe
pertenecer.
Un problema de aadir usuarios de esta forma, es que no se crea su directorio home, cosa
que se debe hacer a mano.
COMANDOS BSICOS.
En las siguientes secciones se mencionan y describen brevemente la utilidad de un grupo de
comandos bsicos para interactuar con un sistema Linux. Muchos de estos comandos estn
presentes tambin en los sistemas Unix aunque a veces varan sus opciones y argumentos
dependiendo de las versiones. Por esto no puede encontrarse una documentacin que diga la
ltima palabra respecto a uno u otro comando, la prctica es la mejor forma de comprobar
como funciona cada uno. Para su mejor comprensin se clasifican los comandos en varias
categoras. En este tema se estudiarn las siguientes categoras:
1) Comandos para manipular ficheros y directorios.
2) Comandos para paginar, visualizar y editar ficheros.
3) Comandos para hacer bsquedas de ficheros y patrones.
4) Comandos para filtrar ficheros.
5) Comandos para compactar y agrupar ficheros.
L I N U X .
S I S T E M A S
I N F O R M A T I C O S
$ ls
$ ls
$ ls
$ ls
-hl /etc
-R /usr
-al
-ali ..
Archivo regular
d
directorio
enlaces (links)
lectura
w escritura
x ejecucin
En $ls l la posicin 5,6,7 de columna aparecer los derechos de usuarios que pertenecen al
mismo grupo que el usuario:
En $ls l la posicin 8,9,10 de columna aparecer los derechos de otros usuarios:
En ltimo lugar aparece el nmero de copias de vinculacin del archivo: la posibilidad de que
un archivo sea abierto por diferentes aplicaciones.(las veces que se puede abrir
simultneamente.
L I N U X .
1 0
S I S T E M A S
I N F O R M A T I C O S
Siguientes :
Nombre de usuario de propietario
Nombre del grupo al que pertenece el usuario.
Tamao en bytes
COMANDO CD
El comando cd se utiliza para cambiar el directorio actual.
Sintaxis:
cd [directorio]
Ejemplos:
$ cd /tmp
$ cd
$ cd ~ (alt + 126) cambia al directorio base (Home) del usuario actual. (Ese smbolo
se entiende en bash como el directorio Home del usuario).
COMANDO PWD
El comando pwd indica el camino absoluto del directorio en el que nos encontramos
Ejemplo:
$ pwd
COMANDO MKDIR
El comando mkdir se utiliza para crear directorios.
Ejemplos:
$ mkdir bin
$ mkdir /bin
L I N U X .
1 1
S I S T E M A S
I N F O R M A T I C O S
$ mkdir -p docs/linuxdocs/howtos/pdf
COMANDO MV
El comando mv mueve un fichero hacia otro, o varios ficheros hacia un directorio.
Este permite a su vez
Sintaxis:
mv [opciones] <fuente> <destino>
mv [opciones] <ficheros> <directorio>
Algunas opciones:
-i : ejecuta el comando de forma interactiva, es decir, pregunta ante de sobrescribir el
destino si existiera.
-u : actualiza (upgrade) el destino con el fuente solo si ste es ms reciente.
Ejemplos:
$ mv mail.cf mail.cf.old
$ mv -i *.txt /tmp
renombra un fichero
$ mv -u program.c src/
COMANDO CP
El comando cp permite copiar un fichero en otro, o varios ficheros en un directorio.
Sintaxis:
cp [opciones] <fuente> <destino>
cp [opciones] <ficheros> <directorio>
Algunas opciones:
-R : copia recursivamente(si tiene algo dentro lo copia todo) un directorio.
L I N U X .
1 2
S I S T E M A S
I N F O R M A T I C O S
COMANDO RM
El comando rm se utiliza para borrar (desenlazar) ficheros
Sintaxis:
rm [opciones] <ficheros | directorios>
Ejemplos:
$ rm prueba
$ rm -i bin/*
*** Rmdir solo borra directorios vacios
$ rm -rf temp/
COMANDO TOUCH
L I N U X .
1 3
S I S T E M A S
I N F O R M A T I C O S
Crea archivo
$touch prueba
COMANDO CHOWN
El comando chown se utiliza para cambiar el dueo y el grupo de un fichero. Existe tambin
el comando chgrp que se emplea de forma similar pero para cambiar el grupo solamente. El
dueo de un fichero solo lo puede cambiar el usuario root mientras que el grupo adems de
root, lo puede cambiar el propio dueo, siempre que pertenezca al nuevo grupo.
El propietario y el grupo de un fichero se puede comprobar con un ls -l
Sintaxis:
chown [opciones] <dueo>[.grupo] <ficheros>
chown [opciones] <grupo> <ficheros>
Opcin:
-R en los directorios cambia el dueo y/o el grupo recursivamente.
Ejemplos:
propiedad de /tmp/oculto.
L I N U X .
1 4
S I S T E M A S
I N F O R M A T I C O S
L I N U X .
1 5
S I S T E M A S
I N F O R M A T I C O S
$ less /etc/passwd
$ more /etc/passwd
$ cat fichero | less
L I N U X .
1 6
S I S T E M A S
I N F O R M A T I C O S
Algunas teclas que podemos usar mientras usamos estos programas son:
q
/p
realiza bsquedas del patrn p dentro del texto. Para repetir la bsqueda del mismo
patrn slo es necesario escribir /.
[n]b
[n]f
El comando man, para dar formato a su salida, utiliza por defecto el paginador less. Existen
adems los comando zless y zmore que permiten paginar con less y more respectivamente, a
los ficheros comprimidos sin necesidad de descomprimirlos previamente.
EDITOR VI
El editor vi es el editor estndar de Unix. Es orientado a comandos. Existe una versin
conocida como vim (Vi IMproved) muy poderosa que permite la edicin de mltiples ficheros,
edicin automtica para varios lenguajes de programacin, ayuda en lnea, seleccin visual,
varios niveles de deshacer, etc. Para algunos usuarios, vi resulta incmodo pues para utilizar
todas sus potencialidades es necesario conocer muchas combinaciones de teclas, pero si se
llega a dominar resulta muy funcional. Su principal virtud es que vi est en prcticamente
cualquier versin de Unix que usemos, cosa que no se puede decir de otros editores (joe,
pico, edit, gedit, etc.).
Bsicamente vi posee dos modos de interaccin: el de insercin (edicin) y el de comandos.
Para pasar al modo comando se pulsa Esc y para pasar al de insercin se pulsa i.
Algunos comandos tiles en vi (pulsando ESC para pasar al modo de comandos, que aparece
en la ultima lnea de la pantalla).
dd
dG
:q
L I N U X .
1 7
S I S T E M A S
I N F O R M A T I C O S
:q!
:w
guarda.
:wq
guarda y sale.
:x
guarda y sale.
<n><comando>
COMANDO ECHO
Echo es un comando que permite escribir algo directamente por la salida estndar.
Ejemplos:
$ echo Hola Mundo
$ echo n Hola Mundo
L I N U X .
1 8
S I S T E M A S
I N F O R M A T I C O S
-i
-H
imprime adems de las lneas, el nombre del fichero donde se encontr el patrn. Es
as por defecto cuando se hace la bsqueda en ms de un fichero.
-l
cuando son mltiples ficheros slo muestra los nombres de aquellos donde se
encontr al patrn y no las lneas correspondientes.
-v
-r
-n
Ejemplos:
L I N U X .
1 9
S I S T E M A S
I N F O R M A T I C O S
-iname <expresin>
-type <tipo>
-size +/-<n>
-perm [+|-]<modo>
-exec <comando> ;
Ejemplos:
$ find / -size +10240k -size -20480k busca los ficheros cuyo tamao est entre 10M
y 20M
L I N U X .
2 0
S I S T E M A S
I N F O R M A T I C O S
COMANDO LOCATE
El comando locate busca en una base de datos, actualizada peridicamente, todos los paths
en la jerarqua de ficheros que contengan una cadena determinada. Para crear esta base de
datos o actualizarla se debe invocar por root el comando updatedb (o locate -u). En las
distribuciones actuales esta tarea se hace de forma automtica.
Ejemplo:
$ locate passwd
L I N U X .
2 1
S I S T E M A S
I N F O R M A T I C O S
$ file /etc/passwd
$ file /usr/sbin/adduser
$ file /usr/sbin/useradd
COMANDO STAT
El comando stat muestra las caractersticas de un fichero. Por ejemplo: su nombre,
permisos, tamao en bytes, nmero del i-nodo que lo representa, las fechas de modificacin
y acceso, el tipo, el dueo, el grupo, etc.
Ejemplo:
$ stat /etc/shadow
COMANDO SORT
El comando sort ordena las lneas de un fichero mostrndolas por la salida estndar. De no
especificarse un fichero toma la entrada estndar.
Sintaxis:
sort [opciones] [fichero]
Algunas opciones:
-r : ordena al revs.
-f : trata las maysculas y minsculas por igual.
L I N U X .
2 2
S I S T E M A S
I N F O R M A T I C O S
Ejemplo:
$ sort -f /etc/passwd
$ uniq -d lista.txt
COMANDOS TAIL Y HEAD
Los comandos tail y head muestran respectivamente el final y el comienzo (10 lneas por
defecto) de uno o varios ficheros. De no especificarse al menos un fichero toman la entrada
estndar.
Sintaxis:
tail
[opciones] [ficheros]
head
[opciones] [ficheros]
L I N U X .
2 3
S I S T E M A S
I N F O R M A T I C O S
Algunas opciones:
-f
-q
no coloca los encabezamiento con el nombre de los ficheros cuando se indican varios
ficheros.
-<n>
imprime las n ltimas (tail) o primeras (head) lneas 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
$ head -2 -q /etc/*.conf
COMANDO WC
El comando wc (Word Count) imprime el nmero de lneas, palabras y bytes de uno o varios
ficheros. Si son varios ficheros hace tambin un resumen de los totales. De no especificarse
un fichero toma la entrada estndar.
Sintaxis:
wc [opciones] [ficheros]
Algunas opciones:
-l
slo cuenta lneas.
-c
slo cuenta bytes.
-w
slo cuenta palabras.
Ejemplos:
$ wc -l /etc/passwd
$ wc -w /doc/dicciorario.txt
COMANDO CUT
L I N U X .
2 4
S I S T E M A S
I N F O R M A T I C O S
Como su propio nombre indica, el comando cut tiene la caracterstica de poder cortar
caracteres y campos, con la posibilidad de usar delimitadores y otras opciones, para
finalmente extraer las partes seleccionadas de cada fichero en la salida estndar.
Algunas opciones: el comando cut ofrece los siguientes argumentos:
-b, bytes=LISTA
-c, characters=LISTA
-d, delimiter=DELIM
-f, fields=LISTA
Ejemplos:
L I N U X .
2 5
S I S T E M A S
I N F O R M A T I C O S
Algunas opciones:
-r : dado un directorio comprime todos los ficheros presentes en l recursivamente.
-d : dado un archivo/directorio comprimido lo descomprime (similar a gunzip)
-1 a -9 : especifica el grado de la compresin (-1 menor y ms rpida -9 mayor y ms lenta).
-S <sufijo> : permite especificar un sufijo o extensin para el fichero resultado (por defecto
es gz).
Ejemplos:
$ gzip -9 big-file
$ gunzip big-file.gz
Todo lo compactado con gzip se puede descompactar con el Winzip de los sistemas Windows.
Tambin existen los pares de comandos zip y unzip (compatibles en ambos sentidos con
Winzip), y compress y uncompress.
L I N U X .
2 6
S I S T E M A S
I N F O R M A T I C O S
COMANDO TAR
El comando tar (Tape Archiver) es una herramienta para agrupar varios ficheros aislados o
el contenido de un directorio en otro fichero o dispositivo especial. El comando tar no
comprime o compacta absolutamente nada, se limita a agrupar varios ficheros en uno solo, sin
comprimirlos. Existe una opcin (-z) que automticamente ejecuta un gzip o un gunzip sobre
el fichero agrupado.
Sintaxis:
tar [opciones] <fuentes>
Algunas opciones:
-c
-x
-v
-f <fichero>
-z
-t
-M
agrupa en volmenes.
L I N U X .
2 7
S I S T E M A S
I N F O R M A T I C O S
L I N U X .
2 8