Ut6.2 Linux
Ut6.2 Linux
CONTENIDO
Comando ls ......................................................................................................................................... 17
Comando cd........................................................................................................................................ 18
Editor vi .............................................................................................................................................. 22
Comando wc ..................................................................................................................................... .. 27
Comando tr ......................................................................................................................................... 36
Comandos para compactar y agrupar ficheros .................................................................. 38
Comando wall................................................................................................................................... .. 40
Página 2 I.S.O. Linux. Introducción. Usuarios y grupos.
Comandos para desconectarse del sistema .......................................................................... 41
Comando du ....................................................................................................................................... 42
Comando w....................................................................................................................................... .. 43
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.
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.
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.
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
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
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.
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
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.
terminal).
Este fiichero consta de 7 campos separados por el símbolo dos puntos (:).
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
COMANDO USERADD
Ejemplos:
adduser pepe crea el usuario pepe con las propiedades por defecto
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
Ejemplo:
userdel -r pepe elimina al usuario pepe y borra su directorio base. Por defecto
el directorio base se mantiiene
COMANDO PASSWD
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.
Ejemplos:
usermod -G users,disk pepe señala como grupos secundarios de pepe a users y disk
respectiivamente. Sintaxis:
Ejemplos:
groupadd admin
groupdel admin
COMANDO GROUPMOD
Ejemplo: groupmod -n usuarios users cambia el nombre del grupo users a usuarios
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.
Ejemplos:
gpasswd -A pepe admin señala como administrador del grupo admin al usuario pepe
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.
Ejemplos:
su -
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 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.
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.
Ejemplo:
id pepe
COMANDO LS
Sintaxis:
Algunas opciones:
Ejemplos:
ls -hl /etc
ls -R /usr
ls -al
ls -ali ..
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:
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
Una opción:
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.
Algunas opciones:
-i: ejecuta el comando de forma interactiva, o sea, pregunta ante de sobrescribir el destino si
existiiera.
COMANDO CP
Sintaxis:
Algunas opciones:
Ejemplos:
cp /etc/passwd .
cp -i /usr/bin/*sh /
COMANDO RM
Sintaxis:
Algunas opciones:
Ejemplos:
rm prueba
rm -i bin/*
rm -rf temp/
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:
Opción:
Ejemplos:
COMANDO CHGRP
Sintaxis:
Opción:
Ejemplos:
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).
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:
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í.
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.).
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:
Ejemplos:
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.
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:
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:
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:
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:
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
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:
Algunas opciones:
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.
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:
Algunas opciones:
Ejemplo:
uniq -d [Link]
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:
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:
Ejemplos:
wc -l /etc/passwd
wc -w /doc/[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é?
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.
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:
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:
Sintaxis:
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.
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 segundo:
Solución al tercero:
Solución al cuarto:
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.
Algunos ejemplos con estas expresiones regulares, para los cuales usaremos este fichero:
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.
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…
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
Todos los ejemplos hasta ahora no han modifcado los fcheros, sino que nos ha mostrado por pantalla
el resultado del comando sed.
COMANDO TR
Es un comando utilizado para traducir caracteres. Nos permite cambiar unos caracteres por otros,
eliminar caracteres, etc.
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.
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.
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:
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.
Sintaxis:
Algunas opciones:
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.
Algunas opciones:
Ejemplos:
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.
Ejemplos:
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:
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
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:
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.
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.
Algunas opciones:
Ejemplos:
du -h *
du -hsc /usr /home
El comando who muestra los usuarios conectados al sistema ya sea local o remotamente.
Sin argumentos who muestra los logins de los usuarios conectados, porque terminal lo han hecho y en
qué fecha y hora.
Algunas opciones:
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.
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.
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.
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
COMANDO CLEAR
Borra la pantalla.
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:
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.
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
ifconfig -a
ifconfig eth0 up
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.
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.
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:
Con ip link podemos establecer muchas confguraciones del interfaz. Así, por ejemplo, para establecer el
modo promiscuo usamos el comando: