0% encontró este documento útil (0 votos)
2 vistas47 páginas

Ut6.2 Linux

El documento proporciona una guía sobre comandos básicos de GNU/Linux, incluyendo la administración de usuarios y grupos, gestión de ficheros y directorios, y formas de obtener ayuda en el sistema. Se detalla la estructura de archivos importantes como /etc/passwd y /etc/shadow, así como ejemplos prácticos de creación y gestión de usuarios. Además, se abordan comandos para la comunicación entre usuarios y la desconexión del sistema.

Cargado por

Amonimo Perez
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)
2 vistas47 páginas

Ut6.2 Linux

El documento proporciona una guía sobre comandos básicos de GNU/Linux, incluyendo la administración de usuarios y grupos, gestión de ficheros y directorios, y formas de obtener ayuda en el sistema. Se detalla la estructura de archivos importantes como /etc/passwd y /etc/shadow, así como ejemplos prácticos de creación y gestión de usuarios. Además, se abordan comandos para la comunicación entre usuarios y la desconexión del sistema.

Cargado por

Amonimo Perez
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

GNU/Linux

CONTENIDO

COMANDOS BÁSICOS DE GNU-LINUX. ............................................................................ 4


Introducción. ............................................................................................................................ 4
Formas de obtener ayuda en linux. ........................................................................................ 6
Usuarios y grupos. ................................................................................................................... 7

Fichero de usuarios: /etc/passwd .......................................................................................................... 9

El fichero de contraseñas /etc/shadow. .............................................................................................. . 10

El fichero de grupos /etc/group. ....................................................................................................... .. 11

El fichero de contraseñas de grupos /etc/gshadow. ............................................................................ 11


Comandos para administrar usuarios y grupos ................................................................. 13

Comando useradd .............................................................................................................................. . 13

Comando userdel ............................................................................................................................... . 13

Comando passwd .............................................................................................................................. .. 13

Comando usermod ........................................................................................................................ ...... 14

Comando chfn ............................................................................................................................ ........ 14

Comandos groupadd y groupdel ......................................................................................................... 14

Comando groupmod ......................................................................................................................... .. 14

Comando gpasswd ............................................................................................................................. . 15

Comando su ............................................................................................................................ ............ 15

Comando suDO ................................................................................................................................ .. 15

Comando newgrp ..................................................................................................................... .......... 16

Comando id ............................................................................................................................ ............ 16


Comandos para gestionar ficheros y directorios. ............................................................... 17

Comando ls ......................................................................................................................................... 17

Comando cd........................................................................................................................................ 18

Comando pwd............................................................................................................................ ......... 18

Comando mkdir ................................................................................................................................ .. 18

Comando mv ............................................................................................................................ .......... 18

Comando cp............................................................................................................................ ............ 19


Página 1 I.S.O. Linux. Introducción. Usuarios y grupos.
Comando rm ....................................................................................................................................... 19

Comando chown ................................................................................................................................ . 20

Comando chgrp ................................................................................................................................. . 20

Algunos ejercicios sobre estos comandos.............................................................................. 21


Comandos para paginar, visualizar y editar ficheros ........................................................ 22

Comando cat ..................................................................................................................................... .. 22

Comandos more y less ...................................................................................................................... .. 22

Editor vi .............................................................................................................................................. 22

Comando echo .................................................................................................................................... 23


Comandos para hacer búsquedas de ficheros y patrones .................................................. 24

Comando grep .................................................................................................................................... 24

Comando find ............................................................................................................................ ......... 24

Comando locate ................................................................................................................................ .. 25


Comandos para filtrar ficheros ............................................................................................ 26

Comando file .................................................................................................................................... . . 26

Comando stat .......................................................................................................................... ............ 26

Comando sort ............................................................................................................................ ......... 26

Comando uniq .................................................................................................................................... 27


esto revisar todo
Comandos tail y head ....................................................................................................................... .. 27

Comando wc ..................................................................................................................................... .. 27

Comando cut............................................................................................................................ ........... 28

Comando sed ...................................................................................................................................... 29

Comando tr ......................................................................................................................................... 36
Comandos para compactar y agrupar ficheros .................................................................. 38

Comandos gzip y gunzip .................................................................................................................. .. 38

Comando tar ............................................................................................................................. .......... 38


Comandos para la comunicación entre usuarios ................................................................ 40

Comando write ............................................................................................................................ ....... 40

Comando wall................................................................................................................................... .. 40
Página 2 I.S.O. Linux. Introducción. Usuarios y grupos.
Comandos para desconectarse del sistema .......................................................................... 41

Comando logout ............................................................................................................................... .. 41

Comando shutdown .......................................................................................................................... .. 41


Comandos varios.................................................................................................................... 42

Comando alias ..................................................................................................... ............................... 42

Comando tty ............................................................................................................................ ........... 42

Comando du ....................................................................................................................................... 42

Comando who............................................................................................................................ ......... 43

Comando w....................................................................................................................................... .. 43

Comando finger .................................................................................................................................. 43


Comandos de red ................................................................................................................... 45

Comando ping .................................................................................................................................... 45

Comando ifconfig .............................................................................................................................. . 45

Comando route ................................................................................................................................. .. 46

Comando ip ............................................................................................................................ ............ 47

Página 3 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS BÁSICOS DE GNU - LINUX .

INTRODUCCIÓN.

Una vez instalado e inicializado un sistema Linux se dispone de dos vías fundamentales de
interacción: una gráfica (si se instaló una interfaz X y se configuró adecuadamente) y un texto
conocida como consola o terminal.

Si accedemos a una consola en modo texto podremos apreciar que en ella se muestra el nombre
del usuario que ha iniciado la sesión, y el nombre de la máquina.

Página 4 I.S.O. Linux. Introducción. Usuarios y grupos.


Aquí puede entrarse el nombre de un usuario del sistema. Luego se pedirá la contraseña o
password de dicho usuario (tened cuidado ya que al entrar dicho password no se muestra
ningún eco en la pantalla). Si ambos son válidos se establecerá la conexión y se mostrará lo que
se conoce como prompt del sistema, con forma similar a esta:

usuario@pinguino:~$

Aquí ha abierto sesión un usuario con nombre “usuario”, en una máquina que se llama
“pinguino”, está actualmente en el directorio “~” y sabemos que es un usuario normal y no el
root por que el prompt termina con un símbolo “$” (si fuera root terminaría con un símbolo
“#”).

Este entorno de texto donde nos encontramos y que nos permite introducir comandos es
conocido comúnmente como Shell (caparazón). Este Shell es capaz de interpretar una gran gama
de comandos y sentencias. Constituye a su vez un poderoso lenguaje de programación mediante
scripts.

GNU-Linux tiene la filosofíía de no obligar al usuario a utilizar un programa determinado para


cada acción, sino que siempre da la libertad de elegir el programa que queremos utilizar. Lo
mismo ocurre con el Shell que vayamos a utilizar para acceder al sistema. El Shell que más se
usa es conocido como bash, aunque existen una gran variedad de ellos, como por ejemplo csh,
ksh, etc.

Algunas características que merece la pena conocer de bash son:

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 fichero 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.
En caso de existir muchas posibilidades (por defecto más de 100) se pregunta si se
desea mostrarlas todas o no.

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, y podemos realizar búsquedas con Control [r].
Podemos indicar que se repita una línea de comando con ¡n y también podemos
indicar que se repita una línea de comando que empieza por determinada palabra
¡palabra.

Estructuras de control para realizar scripts.

Definición de funciones y alias para comandos. Las funciones permiten definir


subrutinas programadas 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.
Página 5 I.S.O. Linux. Introducción. Usuarios y grupos.
FORMAS DE OBTENER AYUDA EN LINUX

Existen múltiples y variadas formas de obtener ayuda en un sistema Linux. A continuación se


describen algunas de ellas:

Muchos comandos poseen una opción para mostrar una ayuda breve acerca de su utilización.
¿Esta opción usualmente consiste en utilizar el parámetro -h, --help o -? tras el nombre del
comando.
mkdir --help

El comando help, que muestra en algunos comandos integrados del bash un manual propio.

help alias

El comando info que muestra información sobre los comandos en una estructura de hipertexto.

info mkdir

El comando whatis que nos da una ayuda rápida sobre comandos.

whatis cp

El comando apropos, que dada una palabra busca los comandos relacionados sobre ella.

apropos delete

El comando man muestra un manual bastante amplio acerca de comandos, formatos de ficheros
de confiiguración, llamadas al sistema, etc. Los manuales están disponibles y pueden instalarse
en múltiiples idiomas. Estos se dividen internamente en secciones. Un mismo objetivo puede
estar representado en varias secciones. De no especifcarse ninguna sección a través del primer
argumento del comando se tomará la primera donde aparezca.

man mkdir

Página 6 I.S.O. Linux. Introducción. Usuarios y grupos.


USUARIOS Y GRUPOS

Como ya sabemos, Linux es un sistema multiusuario, lo cual permite que varios usuarios puedan
conectarse y trabajar en él de forma simultánea. Las conexiones como ya se ha visto se pueden
realizar a través 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 por su
password o contraseña. Además, puede poseer un conjunto de datos adicionales como el
domicilio, teléfono, etc.

El usuario con más privilegios en Linux es root. Este es el único con derechos suficientes para
crear o eliminar a otros usuarios, además de acceder a todo el sistema de ficheros sin ninguna
restricción.

En Linux existen grupos de usuarios que permiten otorgar los mismos privilegios a un conjunto
de usuarios. Siempre que se añada un usuario al sistema se creará un grupo con su mismo
nombre, llamado grupo primario. Durante la creación o posteriormente, se podrá incorporar el
usuario a otros grupos secundarios. Así cuando creamos el usuario Manuel, el sistema creará
automátiicamente un grupo llamado Manuel que contará como único miembro con el usuario
creado.

Tanto los usuarios como los grupos se identifiican por el sistema a través de un identificador (ID)
numérico. El usuario root siempre tiene el ID cero. Cada usuario cuando se conecta al sistema
posee un identificador de usuario asociado (uid) y uno o varios identificadores de grupo (gid).

Al añadir un usuario también se creará un directorio base para el mismo con el nombre de su
login. Este directorio se coloca por defecto en el directorio /home/nombredelusuario excepto
para root, cuyo directorio base es /root.

La información asociada a los usuarios en un


sistema Linux se guarda en el fichero /etc/passwd y
las contraseñas y datos afiines en /etc/shadow. Por
su parte la información de los grupos, sus miembros
y passwords están en /etc/group y /etc/gshadow
respectivamente. (Vemos a la derecha un ejemplo
del fichero /etc/passwd).

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 como funciona useradd y permite
realizar funciones avanzadas, como crear automáticamente el directorio del usuario, confiigurar
su perfil, etc.

Página 7 I.S.O. Linux. Introducción. Usuarios y grupos.


cat en Linux se usa para mostrar el contenido de archivos

Como ejemplo, vamos a realizar el siguiente ejercicio (abrir la consola de root para realizarlo):

1) Creamos dos usuarios, uno con nombre margarita y otro con nombre floripondio.
En ambos usamos de contraseña 123 por ejemplo.
adduser margarita
adduser floripondio

2) Creamos un grupo con nombre ASIR, y añadimos a los dos usuarios anteriores a
dicho grupo.
addgroup ASIR
adduser margarita ASIR
adduser floripondio ASIR

3) Visualizamos el fichero /etc/passwd y comprobamos como se han creado dos líneas,


una para cada uno de los usuarios que hemos creado.
cat /etc/passwd

4) Visualizamos el fichero /etc/shadow y veremos cómo se han creado también dos


líneas, una para cada uno de los usuarios.
cat /etc/shadow

5) Visualizamos el fichero /etc/group y comprobamos como se ha creado una línea para


el grupo creado, donde además comprobamos que se han añadido como miembros
los usuarios.
cat /etc/groups

Para comprobar que los usuarios se han creado bien, vamos a realizar lo siguiente:

A. acceder al 4º terminal (Control – Alt – F4), y hacer un login con el usuario margarita. Una
vez abierta sesión, ejecutar el comando whoami y el comando id. Deberíamos
comprobar que efectiivamente estamos en el grupo ASIR. Para cerrar la sesión usamos
el comando logout.

B. Acceder al 5º terminal, hacer un login con floripondio y comprobad lo

mismo. (Para volver al terminal gráfico desde un terminal de texto, accedemos al 7º

terminal).

Comprobaremos como toda la gestión de usuarios y grupos de Linux, en realidad se basa en la


modificación de una serie de ficheros de texto que están en el directorio /etc. Esto es algo que
como veremos, es común a todo Linux, y siempre que configuremos algo, en el fondo estaremos
editando ficheros de texto.

La información que se guarda en cada uno de esos ficheros es la siguiente:

Página 8 I.S.O. Linux. Introducción. Usuarios y grupos.


FICHERO DE USUARIOS: /ETC/PASSWD

Este fiichero consta de 7 campos separados por el símbolo dos puntos (:).

Nombre Contraseña UID GID Información Dir. Personal Shell

 Nombre: Indica el nombre de la cuenta de usuario.


 Contraseña: indica una X siempre, ya que en los sistemas operatiivos modernos la
contraseña no se almacena en este mismo fichero, ya que sería un fallo de seguridad
muy grande. En su lugar la contraseña se almacena en el fichero /etc/shadow.
 UID: es el número que se le asigna a cada usuario en el sistema.
 GID: es el número del grupo principal al que pertenece este usuario. (El grupo principal
suele tener el mismo nombre del usuario).
 Información: varios campos separados por coma, y se utilizan a titulo informatiivo, no
tienen ningún significado propio importante.
 Dir. Personal: directorio donde se almacenará el perfil del usuario (sus documentos y
configuraciones). Suele ser habitual que sea /home/Nombredelusuario.
 Shell: el programa que se debe ejecutar para ofrecerle un terminal de acceso al
sistema a este usuario, normalmente es el bash ya que es el shell que utilizamos por
defecto. Si no queremos que un usuario pueda tener acceso a estos terminales,
bastaría con indicarle aquí un nombre falso, como por ejemplo /bin/false y de este
modo este usuario no podría interactuar con el sistema aunque realizara
correctamente el login.

Vemos aquí un ejemplo de las últimas 5 líneas de un fiichero /etc/passwd.

Página 9 I.S.O. Linux. Introducción. Usuarios y grupos.


FICHERO DE CONTRASEÑAS /ETC/SHADOW

Este fiichero consta de 8 campos separados por dos puntos.

Nombre Contraseña Ult. cambio Mínimo Máximo Aviso Inactiivo Caducidad

 Nombre: Nombre del usuario.


 Contraseña: es la contraseña del usuario encriptada. Esta contraseña hoy en día se
representa en tres partes distintas, separadas por el símbolo del dólar ($).
o Id. Esto nos indica el método de encriptación que fue utilizado. Un valor de 1
indica MD5, un valor de 2 Blowfish, 3 es NT Hash, 5 es SHA-256 y 6 es SHA-512.
o Salt. Este valor se usa por los algoritmos de encriptación y puede ser de hasta
16 caracteres. Este valor se crea aleatoriamente en cada generación de
contraseña.
o Hash. La contraseña en sí misma. MD5 usa 22 caracteres, SHA-256 usa 43, y
SHA-512 usa 86.

Si nos encontramos con un asterisco en este campo signifiica que la cuenta está
bloqueada. Lo mismo se puede conseguir colocando una exclamación (!) al principio
de la contraseña. Una cuenta sin contraseña la veremos o bien con todo este campo
en blanco, o bien con dos exclamaciones consecutiivas (!!).

 Ult. Cambio: indica el día en que se cambió la contraseña por última vez. (Este número
indica los días que han transcurrido desde el 1-1-1970).
 Mínimo: El mínimo número de días que hay que esperar para cambiar la contraseña.
 Máximo: El máximo número de días antes de que la contraseña caduque.
 Aviso: Antes de que la contraseña caduque, avisaremos al usuario al llegar a este
número de días.
 Inactivo: Una vez que la contraseña caduque esperaremos este número de días antes
de bloquearla definitivamente.
 Caducidad: Es una fecha, en la cual la cuenta automáticamente quedará bloqueada.
(Este número indica los días que han transcurrido desde el 1-1-1970).

Dado que estos campos son un poco especiales, es más fácil consultarlos con el comando chage.

chage –l usuario

Página 10 I.S.O. Linux. Introducción. Usuarios y grupos.


FICHERO DE GRUPOS /ETC/GROUP

Este fiichero consta de 4 campos separados por dos puntos.

Nombre Contraseña GID Miembros

 Nombre: Es el nombre del grupo


 Contraseña: al igual que ocurre con los usuarios, los grupos también pueden tener
contraseña, y lo normal es no incluir esta contraseña en este fichero, sino en su propio
fichero /etc/gshadow.
 GID: Es el identificador numérico del grupo.
 Miembros: Los nombres de los miembros del grupo separados por coma.

FICHERO DE CONTRASEÑAS DE GRUPOS /ETC/GSHADOW

Este fiichero consta de 4 campos separados por dos puntos.

Nombre Contraseña Administradores Miembros

 Nombre: El nombre del grupo.


 Contraseña: Una contraseña encriptada con las mismas característiicas que la existente
en el fichero shadow. Si existe una contraseña en un grupo, un usuario que se quiera
introducir como miembro del grupo tendrá que saber dicha contraseña ya que el
sistema se la pedirá (comando newgrp). Si un grupo no tiiene una contraseña, solo el
root o los administradores del grupo podrán asignar miembros a dicho grupo.
 Administradores. Una lista de usuarios separados por coma que pueden añadir o
eliminar miembros al grupo.
 Miembros: Una lista de usuarios separados por coma. Estos son los usuarios que
pueden acceder al grupo sin que se le pida la contraseña. Esta lista debe ser la misma
que la que se encuentra en /etc/group.

Página 11 I.S.O. Linux. Introducción. Usuarios y grupos.


 Miembros. Lista de miembros del grupo separados por coma.

Página 12 I.S.O. Linux. Introducción. Usuarios y grupos.


C O M A ND O S P AR A A D M IN I S T R A R U S U AR I O S Y
GR U P O S

COMANDO USERADD

El comando useradd permite añadir nuevos usuarios al sistema, además de establecer la


información por defecto de los nuevos usuarios que se añadan. Se encuentra enlazado
simbólicamente por el nombre adduser. Ambos nombres se pueden emplear indistintamente.

Sintaxis: useradd [opciones] [login]

Ejemplos:

adduser pepe crea el usuario pepe con las propiedades por defecto

useradd -D muestra las propiedades por defecto de los nuevos usuarios

adduser --home /dir cambia el directorio base por defecto de los nuevos
usuarios (/home) a /dir. El directorio /dir debe existir previamente

adduser pedro amigos añade a pedro al grupo amigos. Esto es una opción que se le
añadió a adduser para poder añadir usuarios a grupos
rápidamente.

COMANDO USERDEL

El comando userdel permite eliminar definitivamente un usuario del sistema.

Sintaxis: userdel [opciones] <login>

Ejemplo:

userdel -r pepe elimina al usuario pepe y borra su directorio base. Por defecto
el directorio base se mantiiene

COMANDO PASSWD

El comando passwd permite cambiar el password de un usuario. También puede bloquear,


desbloquear y deshabilitar una cuenta. Si se invoca sin argumentos se asume el usuario actual.

Sintaxis: passwd [opciones] [login] Ejemplos:

passwd pepe coloca una contraseña para pepe

passwd -d pepe deshabilita la cuenta del usuario pepe eliminando su password

passwd -l pepe bloquea la cuenta del usuario.

passwd -u pepe desbloquea la cuenta del usuario pepe

Página 13 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO USERMOD

El comando usermod se emplea para modifcar algunas propiedades de los usuarios como: el
login, el directorio base, el shell que se inicia al conectarse, los grupos a los que pertenece, la
fecha de expiración de la cuenta, etc. También bloquea y desbloquea una cuenta.

Sintaxis: usermod [opciones] <login>

Ejemplos:

usermod -s /bin/csh pepe coloca el shell csh para el usuario pepe

usermod -G users,disk pepe señala como grupos secundarios de pepe a users y disk

usermod -e 2001-10-20 pepe indica que la cuenta de pepe expirará el 20 de octubre


de 2001

COMANDOS GROUPADD Y GROUPDEL

Los comandos groupadd y groupdel añaden y eliminan un grupo en el sistema

respectiivamente. Sintaxis:

groupadd [opciones] <grupo> groupdel <grupo>

Ejemplos:
groupadd admin
groupdel admin

COMANDO GROUPMOD

El comando groupmod permite modificar en un grupo su identificador y nombre.

Sintaxis: groupmod [opciones] <grupo>

Ejemplo: groupmod -n usuarios users cambia el nombre del grupo users a usuarios

Página 14 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO GPASSWD

El comando gpasswd permite administrar los grupos. Se puede utilizar para añadir y eliminar
usuarios, señalar un administrador e indicar un password de grupo.

Sintaxis: gpasswd [opciones] <grupo>

Ejemplos:

gpasswd -A pepe admin señala como administrador del grupo admin al usuario pepe

gpasswd admin cambia el passwd del grupo admin

gpasswd -a joe admin añade el usuario joe al grupo admin

COMANDO SU

El comando su permite ejecutar un shell (u otro comando) cambiando los identficadores del
grupo y del usuario actual. Si se le pasa - como primer argumento ejecuta el shell como un login
shell, o sea se creará un proceso de login tal y como ocurre naturalmente cuando un usuario se
conecta al sistema. Si no se especifica el login del usuario se asume root.

Sintaxis: su [opciones] [login]

Ejemplos:
su -

su pepe ejecuta un shell haciéndonos pasar por el usuario pepe

su -c "cat /etc/shadow" ejecuta un comando con los privilegios de root en lugar


de un shell

COMANDO SUDO

El programa sudo es una utlidad de los sistemas operativos tipo Unix, como GNU/Linux, BSD, o
Mac OS X, que permite a los usuarios ejecutar programas con los privilegios de seguridad de
otro usuario (normalmente el usuario root) de manera segura.

Los usuarios deben confirmar su identidad al ejecutar sudo dando su propia contraseña antes
de ejecutar el programa requerido. Una vez se ha autentiicado el usuario, y si el archivo de
configuración /etc/sudoers permite dar al usuario acceso al comando requerido, el sistema lo
ejecuta y lo registra. En un entorno gráfico, se usa gksudo.

El archivo de configuración /etc/sudoers especifiica qué usuarios pueden ejecutar qué


comandos en nombre de qué otros usuarios. Como sudo es muy estricto con el formato de este
archivo, y cualquier error podría causar problemas serios, existe la utilidad visudo; ésta
permite al usuario root editar el archivo y luego revisar su corrección antes de
guardarlo.

Página 15 I.S.O. Linux. Introducción. Usuarios y grupos.


C OMANDO NEWGRP

El comando newgrp permite iniciar un nuevo shell cambiando el identificador del grupo (gid) del
usuario actual. Sólo podrán hacerlo los usuarios que pertenezcan al grupo o en caso de que este
tenga una contraseña, aquellos que la conozcan.

Sintaxis: newgrp [grupo]

Ejemplo:
newgrp bin

COMANDO ID

El comando id, imprime dado un usuario, sus identificadores de usuario y de grupo principal (gid
y uid) así como del resto de los grupos a los que pertenece. Sin argumentos se asume el usuario
actual.

Sintaxis: id [opciones] [login]

Ejemplo:
id pepe

Página 16 I.S.O. Linux. Introducción. Usuarios y grupos.


C O M A ND O S P AR A G E S T I O N A R F I CH E R O S Y D I REC T O R IO S .

COMANDO LS

El comando ls permite listar el contenido de un directorio.

Sintaxis:

ls [opciones] [directorio | fichero]

Algunas opciones:

 -l: muestra la salida en formato largo.


 -R: lista recursivamente un directorio.
 -a: lista además los ficheros incluidos los ocultos (sus nombres comienzan con punto).
 -h: muestra el tamaño de los fcheros en forma más legible (Ej.: 16M, 4k, etc.)
 -i: muestra el identiifcador del i-nodo (bloque índice) asociado a cada elemento.

Ejemplos:

ls -hl /etc
ls -R /usr
ls -al
ls -ali ..

Un grupo de opciones que se suele utiilizar bastante es lia (ls –lia)

En linux se considera que un fchero o directorio que comienza por punto es un fchero oculto, y ls no lo
mostrará a menos que se lo indiquemos. Hay bastantes órdenes en el sistema que no trabajaran con
estos fcheros ocultos a menos que se lo indiquemos explícitamente.

En cualquier momento, el shell bash nos permite usar comodines. Estos comodines son los siguientes:

Comodin significado ejemplo


? Se sustiituye por un carácter cualquiera. ls carta?.jpg
* Se sustiituye por cualquier número ls carta*
de caracteres, incluyendo ninguno.
[a,b,c] Se sustiituye por el carácter a, o por el ls carta[1,2,3,4,5]
carácter b, o por el c……
[a-b] Se sustiituye por el rango de caracteres ls carta[1-5]
entre a y b
{a,b,c} Se sustiituye por a, o por b, o por c….. ls [ *.jpg , *.txt ]
[!a] Se sustiituye por cualquier cosa, pero no ls carta[!4]
por a (! indica negación)
\a Se usa para proteger a, de modo que bash echo \*
interprete a como un carácter simple.

Página 17 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO CD

El comando cd se utiliza para cambiar el directorio actual.

Sintaxis:

cd [directorio]

Ejemplos:

cd /tmp
cd
cd ~

El comando cd o cd ~ nos lleva directamente a nuestro directorio home de usuario. Este directorio está
situado normalmente en /home/nombredeusuario para los usuarios normales y en /root para el usuario
root. No hay que confundir este directorio home del usuario con el directorio /home del sistema.

Cada usuario tiene control sobre los fcheros y directorios de su home de usuario, y en el caso de los
usuarios normales es el único sitio de todo el árbol donde pueden crear ficheros y directorios.

COMANDO PWD

El comando pwd indica el camino absoluto del directorio en el cual nos encontramos actualmente.

COMANDO MKDIR

El comando mkdir se utiliza para crear directorios.

Una opción:

 -p crea los directorios intermedios en caso de que no existan.

Ejemplos:

mkdir bin
mkdir /bin
mkdir -p docs/linuxdocs/howtos/pdf

COMANDO MV

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

Sintaxis: hay que indicar siempre el origen y el destino


mv [opciones] <fuente> <destino>
mv [opciones] <ficheros> <directorio>

Algunas opciones:

-i: ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si
existiiera.

Página 18 I.S.O. Linux. Introducción. Usuarios y grupos.


-u: actualiza (upgrade) el destiino con el fuente solo si este es más reciente. Ejemplos:
mv [Link] [Link]
mv -i *.txt /tmp
mv -u program.c src/

COMANDO CP

El comando cp permite copiar un fchero en otro, o varios ficheros en un directorio.

Sintaxis:

cp [opciones] <fuente> <destino>


cp [opciones] <ficheros> <directorio>

Algunas opciones:

 -R: copia recursivamente un directorio.


 -i: utiliza una forma interactiiva (pregunta antes de sobrescribir el destino).
 -l: hace enlaces fuertes a los ficheros fuentes en lugar de copiarlos.

Ejemplos:

cp /etc/passwd .

cp -i /usr/bin/*sh /

COMANDO RM

El comando rm se utiliza para borrar fcheros y directorios (remove)

Sintaxis:

rm [opciones] <ficheros | directorios>

Algunas opciones:

 -r: borra recursivamente un directorio.


 -f: borra forzosamente en caso de que no se tenga permiso de escritura en forma directa.
 -i: ejecuta el comando de forma interactiva.

Ejemplos:

rm prueba
rm -i bin/*
rm -rf temp/

Página 19 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO CHOWN

El comando chown se utiliza para cambiar el dueño y el grupo de un fchero. El dueño de un fchero solo
lo puede cambiar el usuario root mientras que el grupo además de root, lo puede cambiar el propio
dueño, siempre que pertenezca al nuevo grupo.

Sintaxis:

chown [opciones] dueño[.grupo] <ficheros>

Opción:

 -R: en los directorios cambia el dueño y/o el grupo recursivamente.

Ejemplos:

chown [Link] tesis


chown -R [Link] /tmp/oculto
chown jose [Link]

COMANDO CHGRP

El comando chgrp se utiliza para cambiar el grupo de un fchero.

Sintaxis:

chgrp [opciones] grupo <ficheros>

Opción:

 -R: en los directorios cambia el dueño y/o el grupo recursivamente.

Ejemplos:

chgrp –R arquitectos /usr/planos/

Página 20 I.S.O. Linux. Introducción. Usuarios y grupos.


ALGUNOS EJERCICIOS SOBRE ESTOS COMANDOS .

Vamos a proponer algunos ejercicios para reforzar los conocimientos de los comandos para manipular
fcheros y directorios.

1) Crear un directorio ejercicio1 en vuestro home, y copiar en el mismo todos los ficheros con
extensión conf del directorio /etc. Realizad esta acción con un solo comando, y posicionados en
el directorio home del usuario.
2) Crear un directorio ejercicio2 dentro de un directorio prueba dentro de un directorio control
dentro de un directorio alumno dentro de vuestro home. Realizad esta acción con un solo
comando y posicionados en el directorio home de vuestro usuario.
3) Moved todos los ficheros que contengan una letra a en su nombre del directorio ejercicio1 al
directorio ejercicio2. Un solo comando y posicionados en el raíz de vuestro árbol.
4) Cread un usuario rigoberto. Modifcar todos los fcheros del directorio ejercicio2 para que pasen
a ser propiedad del usuario rigoberto y del grupo rigoberto.
5) Copiad el directorio alumno de vuestro home, y todo lo que contiene, a un directorio
copia_alumno que debe crearse en vuestro directorio home. Un solo comando para la copia.
6) Borrar el directorio alumno de vuestro home con un solo comando y sin que pida confrmación.
7) Cread un fchero con nombre ocultos en la raíz de vuestro árbol, que contenga el nombre de
todos los directorios ocultos que están en vuestro home. (Los ficheros y directorios ocultos son
aquellos cuyo nombre comienza por un punto, y no son mostrados normalmente por ls).

Página 21 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA PAGINAR , VISUALIZAR Y EDITAR FICHEROS

COMANDO CAT

El comando cat nos permite concatenar (conCATenate) ficheros, es decir, coger varios ficheros de texto y
unirlos en uno solo. Por defecto cat manda los fcheros a la salida estándar del sistema (stdout) que es la
pantalla, por lo que normalmente utilizamos esta orden para visualizar fcheros de texto.

Sintaxis:

cat [opciones] <ficheros>

En un punto posterior veremos la forma de usar redirecciones, lo que nos permitirá usar el cat de un
modo más interesante, pero de momento lo dejamos aquí.

COMANDOS MORE Y LESS

Los comandos more y less paginan (dividen en páginas) uno o varios ficheros y los muestran en
la
terminal (pantalla). Se diferencian en las facilidades que brindan. Por ejemplo, more es más restrictiivo
en cuanto al movimiento dentro del texto, mientras que less no limita este aspecto pues acepta el
empleo
de todas las teclas de movimiento tradicionales. Cuando se alcanza el fnal del último fichero a paginar,
more termina automáticamente, no así less.

Algunas de las funciones que podemos realizar con less los siguientes:

Ejemplos:

less /etc/passwd
more /etc/passwd
Comodin significado
q Sale del programa.
/<cadena> Realiza búsquedas de la cadena <cadena>
/ Repite la última búsqueda.
<n>b Back (retrocede) n páginas.
<n>f Forward (avanza) n páginas.

El comando man, para dar formato a su salida, utiliza por defecto el visualizador less.

EDITOR VI

El editor vi es el editor estándar de Unix y está orientado a comandos. Existe una versión conocida como
vim (Vi IMproved) que permite la edición de múltiiples ficheros, edición automátiica para varios
lenguajes de programación, ayuda en línea, selección visual, varios niveles de deshacer, etc. Para
algunos usuarios, vi resulta incómodo 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 encontraremos vi en prácticamente cualquier versión de Unix que usemos,
cosa que no se puede decir de otros editores (joe, pico, nano, edit, gedit, etc.).

Página 22 I.S.O. Linux. Introducción. Usuarios y grupos.


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).

Comando Acción
dd Borra la línea actual.
D Borra desde la posición actual hasta el fnal de la línea.
dG Borra hasta el fnal del fchero.
u Deshace el último comando.
:q Sale del editor (si se han hecho modifcaciones y no se ha salvado se genera un
error).
:q! Sale sin salvar.
:w Salva.
:wq Salva y sale.
:x Salva y sale.
<n><comando> Ejecuta el <comando> n veces.

Hay que tener mucho cuidado al usar vi con los cursores. Estos sólo funcionan en el modo de
comandos, de modo que si estamos en inserción debemos acostumbrarnos a no usar los cursores ya
que se interpretarán como caracteres y empezarán a aparecernos caracteres extraños en pantalla.

COMANDO ECHO

Es un comando que nos permite escribir algo directamente por la salida estándar.

Opciones:

-n no salta de línea tras escribir


-e activa la interpretación de los caracteres especiales precedidos por \

Ejemplos:

echo Hola Mundo


echo Hola Mundo -n
echo adiós
echo Hola \\t Mun \\t do

Sí queremos imprimir por pantalla caracteres especiales, tendremos que protegerlos. Dependiendo del
carácter, nos bastará con introducirlos entre comillas dobles, o comillas simples, o en el peor de los
casos protegerlos escribiendo una contrabarra (\) delante del carácter a proteger.

Página 23 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA HACER BÚSQUEDAS DE FICHEROS Y PATRONES

COMANDO GREP

El comando grep (Globally Regular Expressions Pattern) busca patrones en ficheros. Por defecto
devuelve todas las líneas que contienen un patrón (cadena de texto) determinado en uno o varios
fcheros. Utilizando las opciones se puede variar mucho este comportamiento. Si no se le pasa ningún
fchero como argumento hace la búsqueda en su entrada estándar.

Sintaxis:

grep [opciones] <patrón> [ficheros]

Algunas opciones:

O. Resultado.
-c Devuelve sólo la cantidad de líneas que contiienen al patrón.
-i Ignora las diferencias entre mayúsculas y minúsculas.
-H Imprime además de las líneas, el nombre del fchero donde se encontró el patrón. Es así por
defecto cuando se hace la búsqueda en más de un fchero.
-l Cuando son múltples fcheros sólo muestra los nombres de aquellos donde se encontró al
patrón y no las líneas correspondientes.
-v Devuelve las líneas que no contienen el patrón.
-r Busca en un directorio de forma recursiva.
-n Imprime el número de cada línea que contiene al patrón.

Ejemplos:

grep linux /usr/share/doc


grep root /etc/passwd
grep -n error /var/log/messages
grep -i pepe /etc/passwd
grep -c root /etc/group
grep -l -r -i img /var/www/html/

COMANDO FIND

El comando find es uno de los más poderosos en un sistema Linux. Permite buscar de forma recursiva en
un directorio todos los fcheros que cumplan ciertas condiciones. Las condiciones pueden estar
relacionadas con el nombre de los ficheros, el tamaño, los permisos, el tipo, las fechas de acceso y
modifcación, etc.

Sintaxis:

find [ruta desde donde se busca] [opciones de búsqueda]

Página 24 I.S.O. Linux. Introducción. Usuarios y grupos.


Algunas opciones:

Opción. Resultado.
-name <expresión> Permite especifcar patrones para los nombres de los fcheros a buscar.
-iname <expresión> Igual que el anterior, pero ignora mayúsculas/minúsculas
-type <tipo> Permite indicar el tipo de fchero a buscar.
-size +/-<n> Permite indicar el tamaño máximo y/o mínimo de los ficheros a buscar.
-perm [+|-]<modo> Permite referirse a aquellos ficheros con unos permisos dados. El valor de <modo>
se expresa en forma numérica.
-exec <comando> ; Permite definir un comando a ejecutarse para cada resultado de la búsqueda. La
cadena {} se sustiituye por el nombre de los fcheros encontrados. El carácter;
permite indicar la fnalización del comando. (Tanto {} como; tienen que ir entre
comillas o entre contrabarras para evitar que sea sustituido por el shell).

Ejemplos:

find /etc -name '*.conf'


find / -size +10240k -size -20480k
find -perm +1000 -type d
find / -name core -exec rm -i “{}” “;”

COMANDO LOCATE

El comando locate busca en una base de datos, actualizada periódicamente, todos los paths en la
jerarquía de fcheros 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 automática.

Ejemplo:

locate passwd

Página 25 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA FILTRAR FICHEROS

COMANDO FILE

El comando file determina con cierto grado de precisión el tipo de un fichero que se le pasa como
argumento.

Ejemplos:

file /etc/passwd
file /usr/sbin/adduser
file /usr/sbin/useradd

COMANDO STAT

El comando stat muestra las característiicas de un fichero. Por ejemplo: su nombre, permisos, tamaño
en bytes, número del i-nodo que lo representa, las fechas de modifcación y acceso, el tipo, el dueño, el
grupo, etc.

Ejemplos:

stat /etc/shadow

COMANDO SORT

El comando sort ordena las líneas de un fichero mostrándolas por la salida estándar. De no especifcarse
un fichero toma la entrada estándar.

Sintaxis:

sort [opciones] [fichero]

Algunas opciones:

-r: ordena al revés.

-f: trata las mayúsculas y minúsculas por igual.

Ejemplo:

sort -f /etc/passwd

Como ejercicio, cread un archivo llamado lista-desordenada con el vi y meter dentro 5 nombres
desordenados. Comprobad como con la orden sort lista-desordenada vemos por pantalla el fchero pero
ordenado. Comprobar que en realidad el fchero no ha cambiado visualizándolo con cat.

Página 26 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO UNIQ

El comando uniq elimina las líneas repetidas de un fchero ordenado, imprimiéndolo por la salida
estándar o en otro fchero argumento. De no especifcarse un fichero toma la entrada estándar.

Sintaxis:

uniq [opciones] [fichero] [salida]

Algunas opciones:

-c: utiliza como prefjo en cada línea su número de ocurrencias.

-d: solo imprime las líneas duplicadas.

Ejemplo:

uniq -d [Link]

COMANDOS TAIL Y HEAD

Los comandos tail y head muestran respectivamente el final y el comienzo (10 líneas por defecto ) de
uno o varios fcheros. De no especifcarse al menos un fichero toman la entrada estándar.

Sintaxis:

tail [opciones] [ficheros]


head [opciones] [ficheros]

Algunas opciones:

-q no coloca los encabezamientos con el nombre de los ficheros cuando se indican varios fcheros.

-<n> imprime las n últimas (tail) o primeras (head) 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
head -2 -q /etc/*.conf

COMANDO WC

El comando wc (Word Count) imprime el número de líneas, palabras y bytes de uno o varios fcheros. Si
son varios fcheros hace también un resumen de los totales. De no especifcarse un fchero toma la
entrada estándar.

Sintaxis:

wc [opciones] [ficheros]

Algunas opciones:

Página 27 I.S.O. Linux. Introducción. Usuarios y grupos.


O. Resultado.
-l Sólo cuenta líneas.
-m Sólo cuenta caracteres.
-c Sólo cuenta bytes.
-w Sólo cuenta palabras.

Ejemplos:

wc -l /etc/passwd
wc -w /doc/[Link]

Un pequeño ejemplo que os resultará útil. Teclead las siguientes líneas.

echo hola > [Link]


wc –m [Link]

Con la primera orden creamos un fchero denominado [Link] cuyo contenido es la palabra hola
(hemos usado una redirección, las estudiaremos dentro de poco). Con la segunda orden contamos los
caracteres que hay en el fchero y lo mostramos por pantalla. En principio esperaríamos que nos
mostrara 4 pero sin embargo nos muestra 5. ¿Por qué?

Escribid la siguiente orden:

hd [Link]

Esta orden nos muestra una representación hexadecimal en raw (en crudo) de nuestro fichero. Fijaros
como en el no vemos 4 caracteres, sino 5. Existe un 5º carácter con el número hexadecimal 0a. Este
carácter es el retorno de línea que añade echo automátiicamente al fnal, y que es un carácter que si
bien nosotros no vemos, si existe para el sistema y wc cuenta automáticamente.

COMANDO CUT

Como su propio nombre indica, el comando cut tiene la característiica de poder cortar caracteres y
campos, con la posibilidad de usar delimitadores y otras opciones, para fnalmente extraer las partes
seleccionadas de cada fichero en la salida estándar.

El comando cut nos ofrece los siguientes argumentos:

Argumento. Resultado.
-b, –bytes=LISTA Muestra solamente estos bytes
-c, –characters=LISTA Selecciona solamente estos caracteres
-d, –delimiter=DELIM Usa DELIM en vez de caracteres de tabulación para delimitar los campos
-f, –fields=LISTA Selecciona solamente estos campos; también muestra cualquier línea que no
tenga un carácter delimitador, a menos que se especifque la opción -s

Ejemplos:

echo "Esto es una prueba, 1 2 3, probando" > [Link]


cut –d "," -f 3 [Link]
cut -c2-4 [Link]
cut –d “a” –f2 [Link]

Página 28 I.S.O. Linux. Introducción. Usuarios y grupos.


C O M A ND O SE D

En realidad sed no es un comando, sino un editor de textos que está diseñado para ser usado desde
línea de comandos. Es muy útil cuando queremos modifcar texto de forma no interactiva, veamos un
ejemplo:

echo “Hola mundo azul” > [Link]


sed –e “s/mundo/amigo/” [Link]

Sintaxis:

sed [opciones] [delimitador] función [argumentos]

Algunas de las opciones que podemos utilizar con sed son las siguientes:

opción Resultado.
-e indica que queremos ejecutar el comando siguiente. Si solo se desea ejecutar una función,
no hace falta ponerlo. Si queremos utilizar varias funciones se puede poner –e delante
de cada una de ellas, o separarlas con el símbolo punto y coma “;”.
-n indica que no queremos que nos escriba el resultado normal de la orden por pantalla.
-i sed no modifca los ficheros realmente, sino que muestra su salida por pantalla. Con la
opción –i obligamos a que sed modifque el fchero en sí mismo.

El delimitador es un ámbito que puede ser o bien un número de línea, o bien un rango de líneas
indicados por num1,num2. Tambien podemos indicar que el ámbito responde a las líneas que
coincidan con una cadena introducida entre //.

Algunas de las funciones que podemos utiilizar con sed son las siguientes:

Función Resultado
s Sustituir texto. /texto_antiiguo/texto_nuevo/ es la forma de indicar que queremos
sustituir. Si no ponemos nada más solo se sustiituirá la primera aparición del texto, si
queremos que se sustituyan todas las apariciones, hay que poner g al fnal. Si queremos
que se sustituya solo la primera aparición, hay que poner 1 al fnal (es el compartamiento
por defecto). Si ponemos 2 se sustituirá la segunda aparición, etc.
r Añade un fchero entero a la línea actual. (r fchero).
p Imprime líneas de texto
d borra texto
i Inserta líneas antes de la línea actual.
a Inserta líneas debajo de la línea actual.
c Cambia la línea actual.
w Escribe la salida a un fchero. Se usa indicando de una línea a otra y luego w.
q Termina el comando en la línea indicada.
y Cambia los caracteres de una cadena por los de otra, utlizando el orden de los mismos.
= Imprime el número de linea

Como delimitador en sed se suele utilizar la barra, para separar funciones, parámetros, etc.

Página 29 I.S.O. Linux. Introducción. Usuarios y grupos.


Algunos ejemplos de borrado de líneas “d”:

Un par de ejemplos con sustituciones “s”.

Ejemplo de imprimir “p” y para que se usa la opción “n”.

Página 30 I.S.O. Linux. Introducción. Usuarios y grupos.


Algunos ejemplos añadiendo líneas a un fchero “i” y “a”.

Un ejemplo cambiando líneas “c”.

Un ejemplo insertando un fchero “r”.

Un ejemplo grabando un fchero con “w”.

Un ejemplo de sustitución con la “y”.

Página 31 I.S.O. Linux. Introducción. Usuarios y grupos.


Algunos ejercicios:

1) Queremos sustituir en el fchero [Link] todas las ocurrencias de “co” por “koko” pero solo en
las 3 primeras líneas.
2) Queremos sustituir en el fchero [Link] todas las vocales por la letra u usando varios –e en la
orden sed.
3) Imprimir solo las 3 primeras líneas del fichero [Link]
4) Crear un fichero canció[Link] que contenga “Cuando Fernando Septiimo usaba paleton”.
Mostrarlo por pantalla con una orden sed sustituyendo todas las vocales por la letra u usando
la función “y”.

Solución al primer ejercicio:

Solución al segundo:

Solución al tercero:

Solución al cuarto:

Página 32 I.S.O. Linux. Introducción. Usuarios y grupos.


Un meta comando que se suele utilizar bastante en sed es el ampersand “&”. Este comando es
un comodín que se sustiituye por todo lo que se está buscando. Lo veremos mejor con un
ejemplo:

En este ejemplo hemos protegido tanto el espacio en blanco como el propio ampersand con
contrabarras ya que si no el sistema los interpreta como caracteres especiales e intenta ejecutarlos.

Una forma habitual de trabajar con sed es utilizando expresiones regulares. Este tipo de expresiones
regulares no solo se usan con sed, sino con bastantes comandos de Linux, es por ello que vamos a
detenernos para verlas un momento.

Estas expresiones regulares son bastante parecidas a los comodines que hemos visto anteriormente.

Carácter Descripción de la expresión regular.


^ Apunta al comienzo de la línea
$ Apunta al fnal de la línea
. Coincide con un único carácter cualquiera exceptuando líneas.
* Coincide con cero o más ocurrencias del carácter precedente
[lista] Coincide con cualquier elemento de lista (deben ser caracteres)
[^lista] Coincide con cualquier elemento que NO sea de la lista.
exp1\|exp2 Coincide con exp1 O con exp2. (Se usa la \ para proteger el carácter |)
\número Coincide con la sub expresión número. (Ahora veremos sub expresiones).
\n Coincide con el retorno de línea.
\w Coincide con cualquier palabra de la clase: [A-Za-z0-9_]
\s Cualquier carácter de espaciado: espacio, tabulación horizontal o vertical
\S Uno o varios caracteres de espaciado.
& Este operador se sustituye por el patrón encontrado en el comando previo.

Algunos ejemplos con estas expresiones regulares, para los cuales usaremos este fichero:

Sacar solo algunas líneas según su comienzo:

Sacar solo algunas líneas según su fnal:

Página 33 I.S.O. Linux. Introducción. Usuarios y grupos.


Sacar las líneas cuyo segundo carácter sea una letra ele:

Sacar las líneas donde aparezca algún digito:

Sacar solo las líneas pares:

Este formato no lo habíamos visto anteriormente. Cuando queremos indicar un rango de líneas, si
utilizamos ~ le indicamos en que línea queremos empezar, y el incremento salto de línea que
queremos que use el rango.

Añadir al principio de cada línea tres guiones:

Expliquemos ahora las sub expresiones. Estas consisten en numerar los patrones reconocidos de modo
que puedan ser reemplazados en distiinto orden. Simplemente tenemos que encerrar los patrones que
deseemos entre paréntesis:

En este ejemplo anterior el patrón sustituido (j) es referenciado luego con \1, ya que es el primer patrón
sustituido. Si tuviéramos más patrones sustituidos se irían numerando 1,2,3…

Página 34 I.S.O. Linux. Introducción. Usuarios y grupos.


Clases de caracteres que se pueden utilizar en las expresiones regulares:

lista Descripción
[:alnum:] caracteres alfanuméricos [A-Za-z0-9]
[:alpha:] caracteres alfabétiicos [A-Za-z]
[:digit:] cifras [0-9]
[:lower:] caracteres en minúsculas [a-z]
[:upper:] caracteres en mayúsculas [A-Z]
[:print:] caracteres imprimibles [ -~]
[:punct:] caracteres de puntuación [!-/:-@[-`{-~]
[:space:] espacios, tabulaciones y cualquier carácter vacío [ \t\v\f]
[:blank:] espacio y tabulación [ \x09]
\<, \> Inicio, fn de palabra
\b Posición entre palabras
\B Posición en medio de una palabra

Un ejemplo de sed utilizando una lista de clase de caracteres:

Un ejemplo de sed que nos permite eliminar caracteres repetidos de un fchero:

Todos los ejemplos hasta ahora no han modifcado los fcheros, sino que nos ha mostrado por pantalla
el resultado del comando sed.

Veamos ahora un par de ejemplos en los que modifcamos el fchero directamente.

Página 35 I.S.O. Linux. Introducción. Usuarios y grupos.


hacerlo
Algunos ejercicios sobre sed.

1) Mostrar el fchero /etc/passwd pero eliminando la primera línea.


2) Mostrar el fchero /etc/[Link] pero eliminando todas las líneas de comentarios (comienzan
con un #).
3) Mostrar el fchero /etc/[Link] pero eliminando todos los espacios en blanco
4) Mostrar el fchero /etc/passwd pero eliminando todas las líneas donde aparezca el texto home
5) Mostrar el fchero /etc/passwd pero comentando todas las líneas donde aparezca el texto false
6) Mostrar el fchero /etc/passwd pero sustituyendo el tercer punto y coma por un guion.
7) Mostrar un fichero de texto por pantalla, pero solo las líneas donde aparezca una dirección de
correo electrónico.
8) Mostrar un fchero de texto por pantalla, pero solo las líneas donde aparezca una fecha en
formato dd-mm-aaaa.
9) Mostrar un fiichero de texto por pantalla, pero modifcándolo de tal forma que si existen varios
espacios en blanco seguido se sustituyan por un solo espacio en blanco.
10) Mostrar un fichero por pantalla, pero asegurándose de que el primer carácter de cada línea está
en mayúsculas.

COMANDO TR

Es un comando utilizado para traducir caracteres. Nos permite cambiar unos caracteres por otros,
eliminar caracteres, etc.

La sintaxis de la orden es la siguiente:

tr [opciones] cadena1 cadena2

Si no utilizamos ninguna opción, tr se limita a sustituir todos los caracteres de cadena1 por
los caracteres de cadena2 que estén en el mismo lugar.

Este comando desarrolla la misma función que la función –y que hemos visto anteriormente en el sed.
Este comando tr está pensado para trabajar sobre fujos de datos, utilizando tuberías (pipes) y no
permite su uso sobre fcheros directamente. Es por esto que cuando veamos tuberías veremos algunos
ejemplos de este comando.

echo canasta de 3 puntos | tr [3] [6] devuelve canasta de


6 puntos 123 creo
echo canasta de 3 puntos | tr [123] [678] devuelve canasta de
8 puntos
echo canasta de 3 puntos | tr [a3] [j6] devuelve cjnjstj de
6 puntos

Una opción de tr es d, que nos permite borrar los caracteres encontrados de cadena1. En este caso no
hace falta poner nada en cadena2.

echo hola mundo proceloso y bello | tr –d [“ “]

Esta orden anterior nos eliminaría los espacios en blanco.

La opción s nos permite eliminar caracteres repetidos.

Página 36 I.S.O. Linux. Introducción. Usuarios y grupos.


echo aaaddddiiiioooossss | tr -s [ao] esto nos devuelve
addddiiiiossss

La opción –c permite complementar otra opción, de modo que se realiza lo contrario de lo indicado. Así,
si añadimos –c a la orden anterior obtendríamos lo siguiente:

echo Tengo 23 años y 4 meses | tr -cd [:digit:]esto nos devuelve 234

Otra de las cadenas reconocidas por tr es :print: y nos es muy útil, ya que representa caracteres
imprimibles, es decir, caracteres que se pueden utilizar correctamente en el sistema.

echo camión cataluña | tr -cd [:print:] esto nos devuelve comn


camin catalua

Página 37 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA COMPACTAR Y AGRUPAR FICHEROS

COMANDOS GZIP Y GUNZIP

Los comandos gzip y gunzip permiten compactar y descompactar (comprimir y descomprimir)


respectivamente uno o varios fcheros. reducir el espacio de un conjunto de ficheros

Sintaxis:

gzip [opciones] <ficheros/directorio>


gunzip [opciones] <ficheros/directorio>

Algunas opciones:

-r: dado un directorio comprime todos los fcheros presentes en él recursivamente.


-1 a -9: especifica el grado de la compresión (-1 menor y más rápida -9 mayor y más lenta).
-S <sufjo>: permite especifcar un sufjo o extensión para el fchero resultado (por defecto es gz).

Ejemplos:

$ gzip -9 big-file
$ gunzip [Link]
$ gzip -S .zip -r doc/
$ gunzip -S .zip -r doc/

Fijaros como este comando no funciona como sus análogos de Windows a los que estamos
acostumbrados, ya que si indicamos que queremos comprimir 10 ficheros, obtendremos 10 fcheros
comprimidos, no un solo fchero comprimido que contenga a los 10 fcheros originales. Esta
tar no compacta, sino agrupa
compactación de ficheros (de muchos a uno) se consigue agrupándolos con el comando tar.

COMANDO TAR

El comando tar (Tape Archiver) es una herramienta para agrupar varios fcheros aislados o el contenido
de un directorio en otro fchero o dispositivo especial. El comando tar no comprime o compacta
absolutamente nada, se limita a agrupar varios fcheros en uno solo, sin comprimirlos. Existe una opción
(-z) que automátcamente ejecuta un gzip o un gunzip sobre el fichero agrupado.

Sintaxis: tar [opciones] <fuentes>

Algunas opciones:

-c permite crear (tarear).


-x permite extraer (destarear).
-v activa el modo debug, donde se ven todos los mensajes.
-f <fichero> agrupa o desagrupa en o hacia un fchero y no utilizando la
salida o entrada estándar.
-z compacta o descompacta el fichero resultante una vez
agrupado o desagrupado con gzip y gunzip respectivamente.
-t lista el contenido de un fichero resultado de un agrupamiento.
-M agrupa en volúmenes.

tar -cvfz duro [Link] [Link] [Link] [Link]

Página 38 I.S.O. Linux. Introducción. Usuarios y grupos.


El comando tar conserva la estructura jerárquica original de lo agrupado excluyendo el carácter / que representa a la
raíz. Algunas opciones se pueden emplear sin el carácter -, siempre y cuando no haya ambigüedades entre ellas o
con los argumentos.

Ejemplos:

tar cvfz /tmp/[Link] /etc tar xvfz


/tmp/[Link]
tar cf [Link] passwd shadow groups tar xf
[Link]
tar cM -f /dev/fd0 /tmp/[Link] tar xM -f
/dev/fd0

Página 39 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA LA COMUNICACIÓN ENTRE USUARIOS

COMANDO WRITE

El comando write se utiliza para enviar un mensaje a un usuario conectado al sistema. Por defecto
el mensaje se envía a la última terminal donde se haya conectado el usuario. Los usuarios pueden
deshabilitar la posibilidad de recibir mensajes utilizando el comando mesg.

Sintaxis: write <usuario> [terminal]

Ejemplos:

mesg y # habilita la posibilidad de recibir


mensajes
write pepe tty3
Hola que tal
Ctrl-d

Si el usuario pepe está conectado a través de la terminal tty3 y tiene habilitada la posibilidad de
recibir mensajes se mostrará en esta terminal:

Message from coco@deltha on tty2 at 16:35 ... (o el usuario que


sea) Hola que tal
EOF

COMANDO WALL

El comando wall se emplea para enviar un mensaje a todos los usuarios conectados en el sistema que
tengan habilitada la posibilidad de recibirlos (mesg y).
Ejemplos:
wall
Voy a apagar la máquina a
las 2:00 PM
El administrador
Ctrl-d

Página 40 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS PARA DESCONECTARSE DEL SISTEMA

COMANDO EXIT

El comando exit permite terminar el shell actual. Si se tiiene un único shell es equivalente a
desconectarse del sistema, pero si se está en un subshell sólo se terminará este, retornando al shell
anterior.

COMANDO LOGOUT

El comando logout permite desconectarse del sistema a partir de un login shell (primer shell que se
ejecuta al establecer la conexión).

La secuencia de caracteres Ctrl-d permite terminar el shell actual. Si es un login shell equivaldrá a
hacer logout y si no, a hacer exit.

COMANDO SHUTDOWN

El comando shutdown en realidad no sirve para desconectarse del sistema, sino para apagarlo
totalmente.

Ejemplos:

shutdown –h now Apaga el sistema (-halt) ahora (now)


shutdown -h 18:45 "El servidor se apagar para cambiar la
tarjeta gráfica"
shutdown –r –g5 El sistema se reiniciará (-r) en 5 minutos (-
g5)

Página 41 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS VARIOS

COMANDO ALIAS

El comando alias permite asignarle otros nombres a los comandos. De esta forma se pueden abreviar
o llamarlos de forma más nemotécnica.

Sintaxis: alias [nombre[=valor]...]

Sin argumentos muestra todos los alias defnidos por el usuario actual. Para deshabilitar un alias se
emplea el comando unalias.

Ejemplos:
alias arbol="clear;pwd;tree | more;ls -l"
alias l='ls -l --color'
alias l
alias l='ls -l --color' para ver los alias creados alias
alias
alias c='clear'
alias l='ls -l --color'
alias l.='ls .[a-zA-Z]* --color=tty'
alias la='ls -al --color'

COMANDO TTY

El comando tty imprime el dispositivo de carácter asociado a la terminal en la que se está trabajando.

Ejemplos:

tty /dev/tty2
tty /dev/pts/0

COMANDO DU

El comando du permite conocer la longitud (expresada en kilobytes por defecto) de una jerarquía
de fcheros a partir de un directorio.

Sintaxis: du [opciones] [ficheros | directorios]ver tamaño ocupado ficheros o directorios

Algunas opciones:

-h : (human readable view) imprime las unidades de la forma más


representativa
-s : sumariza el tamaño de cada fichero/directorio sin
profundizar recursivamente
-c : produce un total cuando se utilizan varios argumentos.

Ejemplos:

du -h *
du -hsc /usr /home

Página 42 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO WHO

El comando who muestra los usuarios conectados al sistema ya sea local o remotamente.

Sintaxis: who [opciones] [fichero] [am i]

Sin argumentos who muestra los logins de los usuarios conectados, porque terminal lo han hecho y en
qué fecha y hora.

Algunas opciones:

-H : imprime un encabezamiento para las columnas.


-w : indica si está activada o no la posibilidad de recibir mensajes
por parte de cada usuario conectado (+ indica que si, - que no y ?,
desconocido).
-i : imprime además para cada usuario conectado que tiempo lleva sin
interactuar con el sistema (idle time). Si lleva menos de un minuto
pone un punto y si es más de 24 horas la cadena ``old''.
-q : sólo muestra los logins de los usuarios conectados y la cantidad
total de ellos.

COMANDO W

El comando w muestra también los usuarios conectados al sistema además de lo que están haciendo
(proceso que ejecutan en ese momento) y otras informaciones.

Sintaxis: w [opciones] [usuario]

Sin argumentos este comando muestra una primera línea con: la hora en que arrancó el sistema, cuánto
tiempo lleva funcionando, cuantos usuarios hay conectados (sin incluir las sesiones gráficas) y tres
porcientos de carga de la CPU: durante el último, los 5 y los 15 minutos anteriores. A continuación se
muestra una tabla cuyas columnas representan: el login de cada usuario conectado, porque terminal lo
ha hecho, desde que host, a qué hora, el idle time exacto, la cantidad de segundos de CPU que han
empleado todos los procesos que ha ejecutado ese usuario (JCPU) y el tiempo (PCPU) y nombre del
comando que ejecuta actualmente.

COMANDO FINGER este esta bien y le puede preguntar en el eexamen

El comando fnger permite buscar y mostrar información asociada a los usuarios del sistema de acuerdo
a sus nombres, apellidos o login. La información que muestra fnger para cada usuario es:

El login.
El nombre y los apellidos.
El directorio base.
El shell.
La ofcina y el teléfono.
El teléfono de la casa.
La lista de terminales a través de las que está conectado con la fecha, tiempo sin interactuar (iddle time)
y si está deshabilitada la posibilidad de recibir mensajes.
La fecha y hora del últiimo nuevo mensaje electrónico recibido y desde cuando no accede al buzón.
El contenido del fchero .plan en el directorio base.

Página 43 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO HOSTNAME

Nos devuelve el nombre de nuestro host o máquina.

COMANDO TOP

Nos permite ver un listado de los procesos que están corriendo en nuestra máquina y los recursos
que están utilizando.

COMANDO DATE

Nos devuelve la hora y la fecha del sistema.

COMANDO CAL ya no se puede usar, seria ncal


ncal -3
Nos da el calendario del mes actual.

COMANDO CLEAR

Borra la pantalla.

COMANDO UNAME. man uname para mas parametros

Nos da información sobre nuestra máquina. (SO, arquitectura, etc.).

Página 44 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDOS DE RED

COMANDO PING

El comando ping permite enviar paquetes ICMP (Internet Control Message Protocol) del tpo
ECHO_REQUEST a otra computadora, con el objetiivo de saber si esta es alcanzable a través de la red.
Además muestra un resumen estadístiico acerca del porciento de paquetes perdidos y las velocidades
de trasmisión. Este comando se ejecuta por defecto sostenidamente por lo que para interrumpirlo se
debe hacer Ctrl-c.

Sintaxis: ping [opciones] <máquina> este comando sigue y siguue no es es como el de windows que es hasta 4

Algunas opciones:

-c <n> envía n paquetes exactamente.


-i <n> espera n segundos entre los envíos.
-s <n> envía paquetes de n bytes.
-q sólo despliega el sumario final.

COMANDO IFCONFIG

El comando ifconfg permite confgurar por parte de root las interfaces de red. Los usuarios distintos de
root lo pueden invocar también con fnes informatiivos. Para ello deben especificar el camino completo
(/sbin/ifconfig) pues por defecto este no está en el path de los usuarios comunes. Sin argumento ifconfig
despliega información acerca de la confguración y funcionamiento actuales de las interfaces de red
activas.

La orden ifconfg realmente modifca el fichero /etc/networking/interfaces. Podemos editar


directamente ese fichero para modifcar las propiedades de la red. Para reiniciar todo el sistema de red
y volver a cargar dicho fchero, podemos o bien reiniciar totalmente la maquina con un shutdown –r
now o bien podemos reiniciar únicamente el entorno de red con la orden /etc/init.d/networking restart.

A continuación veremos algunos ejemplos del uso de ifconfig.

Ver la confguración de red de un adaptador de red: ifconfg, invocado sin argumentos mostrará el
detalle de todas las interfaces activas. Si como argumento pasamos el nombre de una interfaz,
veremos los detalles específicos de una interfaz.

ifconfig
ifconfig eth0

Ver un detalle de todas las interfaces (incluidas las deshabilitadas):

ifconfig -a

Deshabilitar una interfaz:

ifconfig eth0 down

Habilitar una interfaz:

ifconfig eth0 up

Página 45 I.S.O. Linux. Introducción. Usuarios y grupos.


Asignar una dirección IP a una interfaz:

ifconfig eth0 [Link]

Cambiar la máscara de subred:

ifconfig eth0 netmask [Link]

Cambiar la dirección de broadcast:

ifconfig eth0 broadcast [Link]

Asignar dirección IP, máscara y broadcast al mismo tiiempo:

ifconfig eth 0192.168.0.2 netmask [Link] broadcast


[Link]

Cambiar el MTU (unidad máxima de transmisión)

ifconfig eth0 mtu XX

Activar modo promiscuo: Por defecto cuando una tarjeta de red recibe un paquete comprueba si dicho
paquete le pertenece y si no lo es lo descarta. En modo promiscuo, la tarjeta no descarta ese paquete
y acepta todos los paquetes. El modo promiscuo se utiliza especialmente para capturar y analizar el
tráfico de una red.

ifconfig eth0 promisc

Para devolverla a su modo normal

ifconfig eth0 -promisc

Todos estos cambios que realizamos con ifconfg no son permanentes, sino que se pierden cuando
reiniciamos la máquina. Para hacer dichos cambios permanentes hay que introducirlos en el fchero
/etc/network/interfaces.

COMANDO ROUTE

Este comando nos permite gestionar las tablas de enrutamiento que utiliza nuestro sistema.

Este comando no solo nos permite ver las rutas, sino también modifcarlas. Evidentemente tenemos que
saber muy bien que es lo que estamos haciendo ya que en caso contrario lo más normal es que nos
quedemos sin red.

Página 46 I.S.O. Linux. Introducción. Usuarios y grupos.


COMANDO IP

Este comando, mucho más reciente que los comandos de red vistos anteriormente, se supone que viene
para sustituirlos ya que permite realizar sus mismas funciones y algunas más. Vamos a ver unas pocas
posibilidades de este comando, que tiene muchísimas más como podéis comprobar con un man ip.

Por ejemplo, para comprobar la confguración actual de nuestros interfaces de red (lo que hace ifconfg
por defecto) escribiríamos el siguiente comando: ip addr list

También podemos usar el comando ip link show para ver la información en capa 2 (data link layer)
de las interfaces de red del sistema:

Podemos activar o desactvar interfaces de red con ip link set

Con ip link podemos establecer muchas confguraciones del interfaz. Así, por ejemplo, para establecer el
modo promiscuo usamos el comando:

ip link set dev eth0 promisc on

Con ip addr add podemos especificar la IP, máscara y la IP de broadcast:

ip addr add [Link]/24 broadcast [Link] dev eth2

Y para eliminar la IP:

ip addr del [Link]/24 dev eth2

Podemos ver la tabla de rutas con ip route show:

Podemos ver la tabla ARP con ip neighbor show:

Página 47 I.S.O. Linux. Introducción. Usuarios y grupos.

También podría gustarte