• No se han encontrado resultados

NDG Linux Unhatched

N/A
N/A
Protected

Academic year: 2021

Share "NDG Linux Unhatched"

Copied!
66
0
0

Texto completo

(1)

NDG Linux Unhatched

NDG Linux Unhatched

2017

2017

(2)

Sintaxis Básica de Comando

Sintaxis Básica de Comando

Este módulo aborda exclusivamente la CLI o

Este módulo aborda exclusivamente la CLI o Command Line Interface (o «Interfaz de la Command Line Interface (o «Interfaz de la LíneaLínea de Comandos»), en lugar de

de Comandos»), en lugar de la GUI o Graphical User Interface (o la GUI o Graphical User Interface (o «Interfaz Gráfica de Usuario)«Interfaz Gráfica de Usuario) con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta que suele ser el método primario usado para administrar los pequeños dispositivos de baja que suele ser el método primario usado para administrar los pequeños dispositivos de baja potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un

potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un

entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal. kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal.

¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI ¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI («interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando («interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada, se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada, manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo, manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo, y entonces causa que la computadora realice un trabajo.

y entonces causa que la computadora realice un trabajo.

Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic en la Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic en la terminal de la derecha. Introduce

terminal de la derecha. Introducelsls y presiona y presionaEntrarEntrar. El resultado debe parecerse al. El resultado debe parecerse al siguiente ejemplo:

siguiente ejemplo:

El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador que creó el comando piensa que va a describir mejor la función del comando. Por ejemplo, el que creó el comando piensa que va a describir mejor la función del comando. Por ejemplo, el comando

comandolsls muestra una lista de información acerca de los archivos. Asociando el nombre del muestra una lista de información acerca de los archivos. Asociando el nombre del comando con algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente comando con algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente los comandos.

los comandos. Para considerar Para considerar

Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así que Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así queLSLS es es incorrecto y se producirá un error, pero

incorrecto y se producirá un error, perolsls es correcto y se ejecutará. es correcto y se ejecutará. sysadmin@localhost

sysadmin@localhost::~~$$ LS LS

-bash: LS: command not found

-bash: LS: command not found

La mayoría de los comandos sigue un patrón simple de sintaxis: La mayoría de los comandos sigue un patrón simple de sintaxis: comando [opciones…] [argumentos…]

(3)

Sintaxis Básica de Comando

Sintaxis Básica de Comando

Este módulo aborda exclusivamente la CLI o

Este módulo aborda exclusivamente la CLI o Command Line Interface (o «Interfaz de la Command Line Interface (o «Interfaz de la LíneaLínea de Comandos»), en lugar de

de Comandos»), en lugar de la GUI o Graphical User Interface (o la GUI o Graphical User Interface (o «Interfaz Gráfica de Usuario)«Interfaz Gráfica de Usuario) con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta que suele ser el método primario usado para administrar los pequeños dispositivos de baja que suele ser el método primario usado para administrar los pequeños dispositivos de baja potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un

potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un

entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal. kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal.

¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI ¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI («interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando («interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada, se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada, manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo, manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo, y entonces causa que la computadora realice un trabajo.

y entonces causa que la computadora realice un trabajo.

Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic en la Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic en la terminal de la derecha. Introduce

terminal de la derecha. Introducelsls y presiona y presionaEntrarEntrar. El resultado debe parecerse al. El resultado debe parecerse al siguiente ejemplo:

siguiente ejemplo:

El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador que creó el comando piensa que va a describir mejor la función del comando. Por ejemplo, el que creó el comando piensa que va a describir mejor la función del comando. Por ejemplo, el comando

comandolsls muestra una lista de información acerca de los archivos. Asociando el nombre del muestra una lista de información acerca de los archivos. Asociando el nombre del comando con algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente comando con algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente los comandos.

los comandos. Para considerar Para considerar

Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así que Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así queLSLS es es incorrecto y se producirá un error, pero

incorrecto y se producirá un error, perolsls es correcto y se ejecutará. es correcto y se ejecutará. sysadmin@localhost

sysadmin@localhost::~~$$ LS LS

-bash: LS: command not found

-bash: LS: command not found

La mayoría de los comandos sigue un patrón simple de sintaxis: La mayoría de los comandos sigue un patrón simple de sintaxis: comando [opciones…] [argumentos…]

(4)

Típicamente, las opciones alteran el comportamiento del comando y los argumentos son Típicamente, las opciones alteran el comportamiento del comando y los argumentos son elementos o valores para el comando a actuar. Aunque haya algunos comandos en Linux que elementos o valores para el comando a actuar. Aunque haya algunos comandos en Linux que no son completamente consistentes con esta sintaxis, la mayoría de

no son completamente consistentes con esta sintaxis, la mayoría de los comandos usa estalos comandos usa esta sintaxis o algo similar.

sintaxis o algo similar.

En el ejemplo anterior, el comando

En el ejemplo anterior, el comandolsls fue ejecutado sin opciones ni argumentos, cuando este fue ejecutado sin opciones ni argumentos, cuando este es el caso, su comportamiento por defecto es devolver una lista de archivos contenidos dentro es el caso, su comportamiento por defecto es devolver una lista de archivos contenidos dentro del directorio actual.

del directorio actual. sysadmin@localhost

sysadmin@localhost::~~$$ ls ls

Desktop Documents Downloads Music Pictures Public Templates Videos

Desktop Documents Downloads Music Pictures Public Templates Videos

Los Argumentos

Los Argumentos

comando [opciones…] [

comando [opciones…] [argumentosargumentos…]…]

Un argumento se puede utilizar para especificarle al comando sobre qué actuar. Al Un argumento se puede utilizar para especificarle al comando sobre qué actuar. Al comando

comandolsls puede dársele el nombre de un directorio como argumento, y mostrará el puede dársele el nombre de un directorio como argumento, y mostrará el contenido de ese directorio. En el siguiente ejemplo, el directorio

contenido de ese directorio. En el siguiente ejemplo, el directorio

Documents

Documents

 (o (o «documentos» en espaňol) se utilizará como argumento:

«documentos» en espaňol) se utilizará como argumento: sysadmin@localhost

sysadmin@localhost::~~$$ ls Documents ls Documents

School

School alpha-second.txt alpha-second.txt food.txt food.txt linux.txt linux.txt os.csvos.csv

Work

Work alpha-third.txt alpha-third.txt hello.sh hello.sh longfile.txt longfile.txt people.csvpeople.csv

adjectives.txt

adjectives.txt alpha.txt alpha.txt hidden.txt hidden.txt newhome.txt newhome.txt profile.txtprofile.txt

alpha-first.txt

alpha-first.txt animals.txt animals.txt letters.txt letters.txt numbers.txt numbers.txt red.txtred.txt

La salida resultante es una lista de archivos que están en el directorio

La salida resultante es una lista de archivos que están en el directorio

Documents

Documents

.. Ya que Linux es un sistema de código abierto (o «open source» en inglés), hay algunos Ya que Linux es un sistema de código abierto (o «open source» en inglés), hay algunos secretos interesantes que los desarrolladores le han añadido. Por ejemplo, el

secretos interesantes que los desarrolladores le han añadido. Por ejemplo, el comando

comandoaptitudeaptitude es una herramienta de gestión de paquetes disponible en algunas es una herramienta de gestión de paquetes disponible en algunas distribuciones de Linux. Este comando acepta

distribuciones de Linux. Este comando acepta

moo

moo

 como argumento: como argumento: sysadmin@localhost

sysadmin@localhost::~~$$ aptitude moo aptitude moo

There are no Easter Eggs in this program.

There are no Easter Eggs in this program. o en espaňol:

o en espaňol:

sysadmin@localhost:~$

(5)

No hay sorpresas en este programa.

Hay más trucos de los que se ven a simple vista. ¡Sigue leyendo!

Li nux es de códig o abierto!  Linux es desarrollado por una comunidad, usted ve y contribuye al código fuente!

(6)

Las Opciones

comando [opciones…] [argumentos…]

Las opciones se pueden utilizar para modificar el comportamiento de un comando. En la

página anterior, se utilizó el comando ls para listar el contenido de un directorio. En el ejemplo siguiente, vamos a utilizar la opción -l para el comando ls, que resulta en una salida

«Visualización larga», lo que significa que la salida da más información sobre cada uno de los archivos listados

sysadmin@localhost :~$ ls -l total 32

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos

A menudo se elige un carácter mnemotécnico (tecla de acceso) para su propósito, tal como eligiendo la letra l  para largo o r  para el reverso. Por defecto el comando ls imprime los resultados en orden alfabético, así que añadiendo la opción -rimprimirá los resultados en el orden alfabético inverso.

sysadmin@localhost :~$ ls -r

Videos Templates Public Pictures Music Downloads Documents Desktop

Las opciones múltiples pueden utilizarse a la vez, o bien como opciones separadas como la -l - r o combinadas -lr. La salida de todos estos ejemplos sería la misma:

ls -l -r ls -rl ls -lr

Como se explicó anteriormente, la opción -l da salida a un formato de listado largo mientras que la -r invierte la lista. El resultado del uso de ambas opciones es un listado largo dado en orden inverso:

sysadmin@localhost :~$ ls -l -r total 32

(7)

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop

sysadmin@localhost :~$ ls -rl total 32

drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop

En definitiva, los comandos pueden utilizar muchas combinaciones de opciones y argumentos, así pues las posibilidades para cada comando serán únicas. ¿Recuerdas la sorpresa de la de la opción aptitude?

sysadmin@localhost :~$ aptitude moo

There are no Easter Eggs in this program.

Es posible alterar el comportamiento de este comando utilizando las opciones. Observa lo que sucede cuando se agrega la opción -v (verbose o «salida detallada» en español):

sysadmin@localhost :~$ aptitude -v moo

There really are no Easter Eggs in this program.

sysadmin@localhost:~$ aptitude -v moo

Realmente no hay sorpresas en este programa.

Combinando las múltiples opciones -v, podemos obtener una variedad de respuestas:

sysadmin@localhost :~$ aptitude -vv moo

(8)

sysadmin@localhost :~$ aptitude -vvv moo Stop it!

sysadmin@localhost:~$ aptitude -vv moo

¿No te dije que no hay sorpresas en este programa? sysadmin@localhost:~$ aptitude -vvv moo

¡Para!

Recuerda que las opciones múltiples pueden ser introducidas por separado o combinadas:

aptitude -v -v moo aptitude -vv moo

(9)

Imprimiendo un Directorio de Trabajo

Para descubrir dónde estás ubicado actualmente en el sistema de archivos, puedes utilizar el comando pwd. El comando pwd imprime el directorio de trabajo, tu ubicación actual en el sistema de archivos:

pwd [OPCIONES]

Para considerar

¡Aún no enciendas tu impresora! En los inicios de la informática la salida de línea de

comandos sería enviada a las impresoras físicas. Este método fue reemplazado por pantallas de video que pueden mostrar la información más rápidamente. Todavía usamos la

palabra imprimir (o «print» en inglés) a pesar de que la salida sólo se está visualizando en la pantalla.

sysadmin@localhost :~$ pwd /home/sysadmin

La salida del comando anterior indica que el usuario está actualmente en su carpeta de inicio, que se muestra en el sistema de archivos a continuación.

Para considerar

Observa que nuestras máquinas virtuales emplean un prompt que muestra el directorio actual de trabajo, acentuado con el color azul. En el primer prompt abajo, el

~

 azul es equivalente a

/home/sysadmin

, que representa el directorio de inicio del usuario.

(10)

Después de cambiar de directorios, también puede confirmarse la nueva ubicación en el nuevo prompt, que de nuevo aparece en azul.

(11)

Cambiando Directorios

Los archivos se utilizan para almacenar datos tales como texto, gráficos y programas. Los directorios se utilizan para guardar archivos y proporcionar una estructura de organización  jerárquica. La imagen de abajo muestra una versión abreviada de la estructura del sistema de

archivos en las máquinas virtuales.

Al iniciar una máquina virtual nueva, abriendo el curso o después usando el botón reiniciar, estás registrado como usuario

sysadmin

 en tu directorio de inicio:

(12)

Para navegar por la estructura del sistema de archivos, utiliza el comando de cd(change directory o «cambiar directorio» en español) para cambiar directorios.

cd [opciones] [ruta]

Si nos fijamos en el gráfico anterior, el directorio

Documents

 está ubicado en el

directorio

home

, donde se encuentra actualmente. Para moverte a un directorio desde tu ubicación actual, utilizalo como argumento para el comando cd:

sysadmin@localhost :~$ cd Documents

sysadmin@localhost :~/Documents$

Los directorios equivalen a las carpetas en Windows y Mac OS. Al igual que estos sistemas operativos más populares, una estructura de directorios de Linux tiene un nivel superior. No se llama «Mi PC», sino más bien el directorio root  (o «raíz» en español) y está representado por el carácter

/

. Para moverse al directorio raíz, utiliza el carácter

/

 como argumento para el comando cd.

sysadmin@localhost :~$ cd /

El argumento para el comando cd es más que sólo el nombre de un directorio, en realidad es una ruta de acceso (o «path» en inglés). Una ruta de acceso es una lista de directorios

separados por el carácter

/

. Por ejemplo,

/home/sysadmin

 es la ruta de acceso a tu directorio de inicio:

(13)

Si piensas en el sistema de archivos como un mapa, las rutas de acceso son las indicaciones paso a paso; pueden ser utilizadas para indicar la ubicación de cualquier archivo dentro del sistema de archivos. Hay dos tipos de rutas de acceso: absoluta y relativa. Las rutas absolutas comienzan con el directorio raíz del sistema de archivos, las rutas relativas se consideran a partir de tu ubicación actual en el sistema de archivos.

Las Rutas Absolutas

Una ruta absoluta te permite especificar la ubicación exacta de un directorio. Siempre empieza en el directorio raíz, por lo tanto siempre comienza con el carácter

/

. La ruta al directorio de inicio

/home/sysadmin

 es una ruta absoluta. La ruta comienza en el directorio raíz

/

, pasa al directorio

home

 y luego al directorio

sysadmin

. Siguiendo este camino en una interfaz gráfica de usuario (GUI) como tu computadora de casa, se vería algo como esto:

Utiliza esta ruta como el argumento para el comando cd para retroceder al directorio de inicio del usuario

sysadmin

.

(14)

sysadmin@localhost :/$ cd /home/sysadmin

sysadmin@localhost :~$

Si no hay salida, esto significa que el comando tuvo éxito. Sigue adelante y confírmalo mediante el comando pwd:

sysadmin@localhost :~$ pwd /home/sysadmin

Las Rutas Relativas

Una ruta de acceso relativa da instrucciones a un archivo con respecto a tu ubicación actual en el sistema de archivos. Las rutas relativas no empiezan con el carácter

/

, empiezan con el nombre de un directorio. Observa de nuevo el primer ejemplo del comando cd. El argumento es un ejemplo de la ruta de acceso relativa más simple: el nombre de un directorio en tu ubicación actual.

sysadmin@localhost :~$ cd Documents

sysadmin@localhost :~/Documents$

La siguiente imagen muestra un mapa de los archivos contenidos en el directorio

sysadmin

. Actualmente estás ubicado en el directorio

Documents

 y quieres moverte al directorio

Art

:

(15)

Una ruta de acceso relativa comienza con el directorio actual. Sin embargo, no lo incluye en la ruta. Primero pasa al directorio

School

, y luego al directorio

Art

. Utiliza el carácter

/

 para separar los nombres de directorio. El resultado

School/Art

 es una ruta relativa desde el directorio

Documents

 al directorio

Art

.

Utiliza la ruta relativa como un argumento para el comando cd para entrar al directorio

Art

.

sysadmin@localhost :~/Documents/ $ cd School/Art

sysadmin@localhost :~/Documents/School/Art $

(16)

sysadmin@localhost :~/Documents/School/Art $ pwd /home/sysadmin/Documents/School/Art

Para considerar

La salida del comando pwd es la ruta absoluta al directorio

School

. También indicado como:

Para considerar

En el ejemplo anterior el comando cd había seguido la ruta de acceso

School/Art

:

cd School/Art

Una ruta de acceso puede también dividirse en múltiples comandos cd. El siguiente conjunto de comandos lograría los mismos resultados:

(17)

cd School cd Art

Los Accesos Directos o Atajos

El Carácter ..

Sin importar en qué directorio estás,

..

 siempre representa un directorio superior relativo al directorio actual. Para moverte desde el directorio

Art

 de regreso al directorio

School

:

sysadmin@localhost :~/Documents/School/Art $ cd ..

sysadmin@localhost :~/Documents/School $

El Carácter « . »

Sin importar en qué directorio estás, el carácter

.

 siempre representa tu directorio actual. Para el comando cd este acceso directo no es muy útil, pero será muy útil para otros comandos. El carácter ~

El directorio de inicio del usuario actual está representado por el carácter

~

. Como se mencionó anteriormente, siempre comienzas como un usuario

sysadmin

, y su inicio se encuentra en

/home/sysadmin

. Para volver a tu directorio de inicio en cualquier momento puedes ejecutar el siguiente comando:

sysadmin@localhost :~/Documents/School $ cd ~

Los tipos de archivo son:

Símbolo Tipo de Archivo Descripción

d

para un directorio Archivo que se

usa para guardar otros archivos.

-

para un archivo regular Incluye archivos leíbles, imágenes, archivos binarios y archivos comprimidos

(18)

Símbolo Tipo de Archivo Descripción

l

para un enlace

simbólico

Apunta a otro archivo

s

para la ranura Permite la

comunicación entre procesos

p

para una barra

vertical Permite la comunicación entre procesos

b

para un archivo de bloque Permite la comunicación con el Hardware

c

para un archivo de carácter Permite la comunicación con el Hardware  Los Permisos d rwxr-xr-x 1 root ro ot 0 Apr 11 21: 58 upstart

Los permisos indican de qué manera determinados usuarios pueden acceder a un archivo. Sigue leyendo para aprender más acerca de los permisos.

 Cuenta de Vínculo Físico

-rw-r--- 1 syslog adm 23621 Aug 23 15:1 7 auth.log

Este número indica cuántos vínculos físicos apuntan a este archivo. Los vínculos físicos están más

(19)

Símbolo Tipo de Archivo Descripción

allá del alcance de este módulo, pero se cubren en el curso de NDG Linux Essentials.  Usuario Propietario -rw-r--- 1 syslog adm 416 Aug 22 15:43 kern.log

El usuario

syslog

 es el propietario de este archivo. Cada vez que se crea un archivo, la propiedad se asigna automáticamente al usuario que lo creó.

 Grupo Propietario

-rw-rw-r-- 1 root ut mp 292584 Aug 20 18: 44 lastlog

Indica el grupo propietario de este archivo

 Tamaño del Archivo

-rw-r--- 1 syslog a dm 1087150 Aug 23 15 :17 syslog.1

El tamaño del archivo en bytes. En el caso de un directorio, realmente podría ser un múltiplo del tamaño de bloques utilizado para el sistema de archivos.

 Fecha y hora

drwxr-xr-x 1 root roo t 32 Jul 17 03:36 fs ck

Esto indica el momento en el que el contenido del

(20)

Símbolo Tipo de Archivo Descripción

archivo se modificó por última vez.

 Nombre de archivo

-rw-r--r-- 1 root roo t 47816 Jul 17 03:36

bootstrap.log

El último campo contiene el nombre del archivo o

directorio. Para considerar

En el caso de los vínculos

simbólicos, se mostrará el nombre del vínculo junto con una flecha y la ruta de acceso del archivo original.

lrwxrwxrwx. 1 root root 22 Nov 6 2012 /etc/grub.conf

-> ../boot/grub/grub.conf

Los vínculos simbólicos están más allá del alcance de este módulo, pero están cubiertos en el

curso NDG Linux Essentials.

Ordenación

Por defecto la salida del comando ls está ordenada alfabéticamente por nombre de archivo. Puede ordenarse por otros métodos.

Observa

Las opciones en los siguientes ejemplos se combinarán con la opción -lpara que los detalles pertinentes de los archivos se muestran. Observa los campos correspondientes a la opción de la búsqueda.

La opción -t ordenará los archivos por fecha y hora:

(21)

Símbolo Tipo de Archivo Descripción sysadmin@localhost :~$ ls -l t /var/log total 840 -rw-r--- 1 syslog adm 2 7014 Jul 28 00:10 syslog -rw-r--- 1 syslog adm 380 Jul 27 23:10 auth.log -rw-rw-r-- 1 root utmp 29 2584 Jul 27 23:10 lastlog -rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp -rw-r--- 1 syslog adm 324 Jul 27 23:10 cron.log -rw-r--- 1 syslog adm 106 Jul 27 23:10 kern.log drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck -rw-r--r-- 1 root root 1 7869 Mar 14 17:48 alternati ves.log -rw-r--- 1 root adm 8 5083 Mar 14 17:48 dmesg -rw-r--r-- 1 root root 3 2064 Mar 14 17:48 faillog -rw-r--r-- 1 root root 31 5196 Mar 14 17:48 dpkg.log drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2 drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt -rw-r--r-- 5 root root 4 7816 Mar 2 23:10 bootstrap .log -rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart

(22)

Símbolo Tipo de Archivo Descripción

La opción -S ordenará los archivos por tamaño del archivo:

sysadmin@localhost :~$ ls -l -S /var/log total 840 -rw-r--r-- 1 root root 31 5196 Mar 14 17:48 dpkg.log -rw-rw-r-- 1 root utmp 29 2584 Jul 27 23:10 lastlog -rw-r--- 1 root adm 8 5083 Mar 14 17:48 dmesg -rw-r--r-- 5 root root 4 7816 Mar 2 23:10 bootstrap .log -rw-r--r-- 1 root root 3 2064 Mar 14 17:48 faillog -rw-r--- 1 syslog adm 2 7014 Jul 28 00:10 syslog -rw-r--r-- 1 root root 1 7869 Mar 14 17:48 alternati ves.log drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2 drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart -rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp -rw-r--- 1 syslog adm 380 Jul 27 23:10 auth.log -rw-r--- 1 syslog adm 324 Jul 27 23:10 cron.log -rw-r--- 1 syslog adm 106 Jul 27 23:10 kern.log

(23)

Símbolo Tipo de Archivo Descripción

-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp

La opción -r invierte el orden de cualquier tipo de orden. Observa la diferencia cuando se añade al ejemplo anterior: sysadmin@localhost :~$ ls -l Sr /var/log total 840 -rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp -rw-r--- 1 syslog adm 106 Jul 27 23:10 kern.log -rw-r--- 1 syslog adm 324 Jul 27 23:10 cron.log -rw-r--- 1 syslog adm 380 Jul 27 23:10 auth.log -rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2 -rw-r--r-- 1 root root 1 7869 Mar 14 17:48 alternati ves.log -rw-r--- 1 syslog adm 2 7014 Jul 28 00:10 syslog -rw-r--r-- 1 root root 3 2064 Mar 14 17:48 faillog -rw-r--r-- 5 root root 4 7816 Mar 2 23:10 bootstrap .log -rw-r--- 1 root adm 8 5083 Mar 14 17:48 dmesg

(24)

Símbolo Tipo de Archivo Descripción

-rw-rw-r-- 1 root utmp 29 2584 Jul 27 23:10 lastlog -rw-r--r-- 1 root root 31 5196 Mar 14 17:48 dpkg.log

Los números en el campo de tamaño de archivo cambian de descendente a ascendente. Si se utiliza sólo la opción -r, se listarán los archivos en orden alfabético inverso: sysadmin@localhost :~$ ls -r /var/log wtmp lastlog faillog cron.log auth.log al ternatives.log

upstart  kern.log dpkg.log btmp apt

syslog fsck  dmesg bootstrap.log apache2

Acceso Administrativo

Hay muchos comandos de Linux que lidian con la información sensible como contraseñas, hardware del sistema, u operan bajo otras circunstancias excepcionales. Previniendo que los usuarios habituales ejecuten estos comandos ayuda a proteger el sistema. Iniciar la sesión como el usuario root proporciona acceso de administrador, lo que permite la ejecución de algunos de los comandos privilegiados.

El Comando

su

su OPCIONES USUARIO 

El comando su te permite actuar temporalmente como un usuario diferente. Esto se logra mediante la creación de un nuevo shell. Por defecto, si no se especifica una cuenta de

(25)

usuario, el comando

usuario, el comandosu abre un nuevo shell como usuario root, que proporciona privilegiossu abre un nuevo shell como usuario root, que proporciona privilegios administrativos

administrativos Observa

Observa

Se recomienda utilizar la opción login shell, ya que el login shell configura un shell Se recomienda utilizar la opción login shell, ya que el login shell configura un shell completamente nuevo con la configuración del nuevo usuario. Esta opción puede ser completamente nuevo con la configuración del nuevo usuario. Esta opción puede ser especificada de tres maneras:

especificada de tres maneras:

su su -su -l su -l su --login su --login

Para evitar que se ejecuten l

Para evitar que se ejecuten los comandos sensibles, hemos configurado el comando os comandos sensibles, hemos configurado el comando SteamSteam Locomotive (o «locomotora de vapor» en español), el comando de

Locomotive (o «locomotora de vapor» en español), el comando deslsl, que requiere acceso de, que requiere acceso de administrador. Si el comando se ejecuta como

administrador. Si el comando se ejecuta como

sysadmin

sysadmin

, fallará:, fallará: sysadmin@localhost sysadmin@localhost::~~$$ sl sl sl: Permission denied sl: Permission denied El Comando sudo El Comando sudo

sudo [OPCIONES] COMANDO sudo [OPCIONES] COMANDO

El comando

El comando sudosudo permite que el usuario ejecute un comando como otro usuario sin crear un permite que el usuario ejecute un comando como otro usuario sin crear un nuevo shell. En cambio, para ejecutar un comando con privilegios de administrador, utilizalo nuevo shell. En cambio, para ejecutar un comando con privilegios de administrador, utilizalo como argumento para el comando

como argumento para el comandosudosudo. Igual que el comando. Igual que el comandosusu, el comando, el comandosudosudo asume asume por defecto que la cuenta del usuario root debe utilizarse para ejecutar comandos.

por defecto que la cuenta del usuario root debe utilizarse para ejecutar comandos. Para considerar

Para considerar El comando

El comando sudosudo puede ser usado para utilizar temporalmente otras cuantas también. Para puede ser usado para utilizar temporalmente otras cuantas también. Para especificar otro usuario de cuenta utiliza la opción

especificar otro usuario de cuenta utiliza la opción-u-u..

Una vez que el comando haya terminado y el prompt no haya cambiado, sigues registrado Una vez que el comando haya terminado y el prompt no haya cambiado, sigues registrado como

como

sysadmin

sysadmin

. El comando. El comandosudosudo sólo proporciona acceso administrativo para la ejecución sólo proporciona acceso administrativo para la ejecución del comando especificado. Esto es una ventaja, ya que reduce el riesgo de que un usuario del comando especificado. Esto es una ventaja, ya que reduce el riesgo de que un usuario accidentalmente ejecute un comando como

accidentalmente ejecute un comando como

root

root

. La intención de ejecutar un comando es. La intención de ejecutar un comando es clara; el comando se ejecuta como

clara; el comando se ejecuta como

root

root

 si tiene como prefijo el comando si tiene como prefijo el comandosudosudo. De lo. De lo contrario, se ejecuta el comando como

(26)

Los Permisos

Los Permisos

Los permisos determinan en que manera los diferentes usuarios pueden interactuar con un Los permisos determinan en que manera los diferentes usuarios pueden interactuar con un archivo o directorio. Cuando se lista un archivo con el comando

archivo o directorio. Cuando se lista un archivo con el comandols -lls -l, la salida incluye, la salida incluye información de permiso. Por ejemplo, vamos a

información de permiso. Por ejemplo, vamos a usar un script llamadousar un script llamado

hello.sh

hello.sh

 ubicado en el ubicado en el directorio

directorio

Documents

Documents

:: Observa

Observa

Utiliza el siguiente comando para cambiar al directorio

Utiliza el siguiente comando para cambiar al directorio

Documents

Documents

:: sysadmin@localhost

sysadmin@localhost::~~$$ cd ~/Documents cd ~/Documents

sysadmin@localhost

sysadmin@localhost::~/Documents~/Documents$$ ls -l hello.sh ls -l hello.sh

-rw-rw-r-- 1

-rw-rw-r-- 1 sysadmin sysadmin sysadmin sysadmin 21 21 Aug Aug 1 1 02:35 hello.sh02:35 hello.sh

A continuación vas a ver una revisión de los campos correspondientes a los permisos. A continuación vas a ver una revisión de los campos correspondientes a los permisos.

Campo del Tipo de

Campo del Tipo de

Archivo

Archivo

-- rw-rw-r-rw-rw-r-- 1 - 1 sysadmisysadmin syn sysadmin sadmin 21 21 Aug Aug 1 01 02:35 2:35 hello.shhello.sh

El primer carácter de esta salida indica el tipo de un archivo. Recuerda que si el primer El primer carácter de esta salida indica el tipo de un archivo. Recuerda que si el primer carácter es un

carácter es un

-

-

, entonces es un archivo regular. Si el carácter era una, entonces es un archivo regular. Si el carácter era una

d

d

, entonces es un, entonces es un directorio.

directorio.

Campo de los Persmisos

Campo de los Persmisos

-- rw-rw-rrw-rw-r-- -- 1 1 sysadmisysadmin n sysadmisysadmin n 21 21 Aug Aug 1 1 02:35 02:35 hello.shhello.sh

Después del carácter del tipo de archivo, se muestran los permisos. Los permisos se dividen Después del carácter del tipo de archivo, se muestran los permisos. Los permisos se dividen en tres grupos de tres ca

en tres grupos de tres caracteres:racteres:

Propietario

Propietario

-- rw-rw-rw-r-- rw-r-- 1 1 sysadmin sysadmin sysadmin sysadmin 21 21 Aug Aug 1 1 02:35 02:35 hello.shello.shh

El primer grupo para el usuario que posee el archivo. Si tu cuenta actual es el usuario El primer grupo para el usuario que posee el archivo. Si tu cuenta actual es el usuario propietario del archivo, entonces se aplicará el primer grupo de los tres permisos y los propietario del archivo, entonces se aplicará el primer grupo de los tres permisos y los otros permisos no tienen ningún efecto.

otros permisos no tienen ningún efecto.

El usuario que posee el archivo y a quién se aplican estos permisos, puede ser El usuario que posee el archivo y a quién se aplican estos permisos, puede ser determinado por el campo de

(27)

-rw-rw--rw-rw-r-- r-- 1 1 sysadmisysadmin n sysadmin sysadmin 21 21 Aug Aug 1 1 02:35 02:35 hello.shello.shh

Grupo

Grupo

-rw--rw-rw-rw- r-- r-- 1 1 sysadmin sysadmin sysadmin sysadmin 21 21 Aug Aug 1 1 02:35 02:35 hello.shello.shh

El segundo conjunto para el grupo propietario del archivo. Si tu cuenta actual no El segundo conjunto para el grupo propietario del archivo. Si tu cuenta actual noeses el el usuario propietario del archivo y

usuario propietario del archivo yereseres miembro de un grupo que posee el archivo, miembro de un grupo que posee el archivo, entonces se aplicará el segundo grupo de los tres permisos y los otros permisos no entonces se aplicará el segundo grupo de los tres permisos y los otros permisos no tendrán ningún efecto.

tendrán ningún efecto.

El grupo de este archivo puede ser determinado por el campo

El grupo de este archivo puede ser determinado por el campogroup owner group owner ::

-rw-rw--rw-rw-r-- r-- 1 1 sysadmisysadmin n sysadmisysadmin n 21 21 Aug Aug 1 1 02:35 02:35 hello.shello.shh

Otro

Otro

-rw-rw--rw-rw-r-- r-- 1 1 sysadmin sysadmin sysadmin sysadmin 21 21 Aug Aug 1 1 02:35 02:35 hello.shello.shh

El último conjunto para todos los demás, cualquier usuario a quien no le aplican los El último conjunto para todos los demás, cualquier usuario a quien no le aplican los otros dos conjuntos de permisos. Si no eres el usuario propietario del archivo o un otros dos conjuntos de permisos. Si no eres el usuario propietario del archivo o un miembro del grupo que posee el archivo, se te aplicaran el tercer conjunto de miembro del grupo que posee el archivo, se te aplicaran el tercer conjunto de permisos.

permisos.

Los Tipos de Permisos

Los Tipos de Permisos

Hay tres permisos diferentes que pueden colocarse en un archivo o directorio: permiso de Hay tres permisos diferentes que pueden colocarse en un archivo o directorio: permiso de lectura, escritura y ejecución. La manera en que estos permisos se aplican difiere en el caso lectura, escritura y ejecución. La manera en que estos permisos se aplican difiere en el caso de los archivos y de los directorios, tal como se muestra en la siguiente tabla:

de los archivos y de los directorios, tal como se muestra en la siguiente tabla: Permiso

Permiso Efectos Efectos en en el el archivo archivo Efectos Efectos en en el el directoriodirectorio

read (o read (o «leer» en «leer» en español) español) ( (

r

r

))

Permite que el contenido del Permite que el contenido del archivo se lea o copie.

archivo se lea o copie.

Sin permiso de ejecución en el Sin permiso de ejecución en el directorio, permite un listado no directorio, permite un listado no detallado de los archivos. Con detallado de los archivos. Con permiso de ejecutar, el

permiso de ejecutar, el comando

comandols -lls -l puede puede

proporcionar una lista detallada. proporcionar una lista detallada.

write (o write (o «escribir» «escribir» en español) en español) Permite modificar y Permite modificar y sobrescribir el contenido. sobrescribir el contenido. Permite añadir o quitar los Permite añadir o quitar los archivos de un directorio. archivos de un directorio.

Para que este permiso funcione, Para que este permiso funcione, el directorio debe también tener el el directorio debe también tener el permiso de ejecución.

(28)

Permiso Efectos en el archivo Efectos en el directorio

execute (o «ejecutar» en español)

Permite que un archivo se ejecute como un proceso, aunque los archivos de script también requieren permiso de lectura.

Permite a que un usuario se cambie al directorio si el directorio padre tiene también permiso de escritura.

Para considerar

Entender los permisos que se aplican es una habilidad importante en Linux. Por ejemplo, considera el siguiente grupo de permisos:

-r--rw-rwx. 1 sysadmin staff 999 Apr 10 2013 /home/sysadmin/test

En este escenario, el usuario

sysadmin

 acaba teniendo menos acceso a este archivo que los miembros del grupo

staff

 o cualquier otro. El usuario

sysadmin

 sólo tiene permisos de

r--

. No importa si el usuario

sysadmin

 es un miembro del grupo

staff

; una vez se ha

establecido la propiedad del usuario, se aplicarán sólo los permisos del usuario propietario.

Cambiar los Permisos de Archivo

El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. Sólo el usuario

root

 o el usuario que posee el archivo puede cambiar los permisos de un archivo. Para considerar

¿Por qué el comando se llama chmod en vez de

chperm

? A los permisos se les solía referir como modos de acceso, por lo que el comando chmodrealmente significa cambiar los modos de acceso. (o «change the modes of access» en inglés)

Hay dos métodos para cambiar los permisos con el comando chmod: simbólico y octal . El método simbólico es bueno para cambiar un conjunto de permisos a la vez. El método octal o numérico requiere el conocimiento del valor octal de cada uno de los permisos y requiere que todos los tres conjuntos de permisos (usuario, grupo, otros) se especifiquen cada vez. Para la simplicidad, se cubrirá sólo el método simbólico. Para aprender más sobre el método octal puedes consultar el curso NDG Linux Essentials.

Observa

Utiliza el siguiente comando para cambiar al directorio

Documents

:

(29)

El Método Simbólico

chmod [<COJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO

Para utilizar el método simbólico del chmod primero tienes que indicar que conjunto de permisos vas a cambiar:

chmod [ <CONJUNTO DE PERMISOS> <ACCIÓN><PERMISOS>]... ARCHIVO

Símbolo Significado

u

Usuario: El usuario que posee el archivo.

g

Grupo: El grupo que posee el archivo.

o

Otros: Cualquiera que no sea el usuario propietario o miembro del grupo propietario.

a

Todos: Se refiere al usuario, grupo y otros.

A continuación, especifica un símbolo de acción:

chmod [<CONJUNTO DE PERMISOS> <ACCIÓN> <PERMISOS>]... ARCHIVO

Símbolo Significado

+

Agregar el permiso, si es necesario

=

Especificar el permiso exacto

-

Quitar el permiso, si es necesario

Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres actuar.

(30)

Símbolo Significado

r

lectura

w

escritura

x

ejecución

Por último, un espacio y los nombres de los archivos para asignar los permisos.

chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO

El archivo

hello.sh

 utilizado en los ejemplos en la página anterior es una secuencia de comandos. Un script es un archivo que puede ser ejecutado, similar a un comando:

sysadmin@localhost :~/Documents$ ls -l hello.sh

-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh

Sin embargo en la actualidad, el permiso de ejecución no está configurado para ninguno de los grupos de permisos:

-rw - rw - r- - 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh

Tratar de ejecutar este script con la siguiente sintaxis resultará en error:

sysadmin@localhost :~/Documents$ ./hello.sh -bash: ./hello.sh: Permission denied

Puesto que el sistema inició la sesión como el usuario

sysadmin

, y el

sysadmin

 es el dueño de este archivo, proporcionar al usuario propietario el permiso de ejecución debe permitirte ejecutar este script. Al usar el comando chmod con el carácter

u

 para representar el conjunto de permisos del propietario usuario, el carácter

+

 para indicar que se añade un permiso, y el carácter

x

 para representar el permiso de ejecución, el comando se debe ejecutar como sigue:

sysadmin@localhost :~/Documents$ chmod u+x hello.sh

Si no arroja una salida, esto significa que el comando se ha ejecutado correctamente. Comprueba Confirme comprobando los permisos usando el comando ls -l:

sysadmin@localhost :~/Documents$ ls -l hello.sh

-rwxrw-r-- 1 root sysadmin 112 Aug 1 03:48 hello.sh

(31)

-rw x rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh

Por último, trata de ejecutar el script otra vez. Utiliza la sintaxis del comando que se muestra a continuación:

./hello.sh

sysadmin@localhost :~/Documents$ ./hello.sh ______________ ( Hello World! ) ---\ \ <(^) ( ) Para considerar

Observa que para ejecutar la secuencia de comandos en el ejemplo anterior, la combinación de caracteres

. /

 fue colocada delante del nombre del script.

./ hello.sh

Esto indica que el «comando» debe ejecutarse desde el directorio actual.

Cambiar la Propiedad de Archivo

El propietario de un archivo es el usuario que lo crea. El comando chown se utiliza para cambiar la propiedad de los archivos y directorios. Cambiar el usuario propietario requiere acceso de administrador, un usuario normal no puede utilizar este comando para cambiar el usuario propietario de un archivo, ni siquiera para pasar la propiedad de uno de sus propios archivos a otro usuario. Sin embargo, el comando chown también permite cambiar la

propiedad del grupo, que se puede lograr a través del

root

 o el propietario del archivo. Para cambiar el usuario propietario de un archivo, se puede utilizar la siguiente sintaxis. El primer argumento

[OWNER]

 especifica que el usuario debe ser el nuevo dueño. El segundo argumento

FILE

 especifica de qué archivo está cambiando de propiedad.

chown [OPCIONES] [DUEÑO] ARCHIVO

Observa

(32)

sysadmin@localhost :~$ cd ~/Documents

Actualmente todos los archivos en el directorio

Documents

 son propiedad del

usuario

sysadmin

. Esto se puede verificar mediante el uso del comando ls -l. Recuerda que la tercera columna indica al usuario propietario.

sysadmin@localhost :~/Documents$ ls -l total 148

drwxrwxr-x 2 sysadmin sysadmin 4096 Aug 1 03:40 School drwxrwxr-x 2 sysadmin sysadmin 4096 Aug 1 03:40 Work

-rw-r--r-- 1 sysadmin sysadmin 39 Mar 14 17:48 adjectives.txt -rw-r--r-- 1 sysadmin sysadmin 90 Mar 14 17:48 alpha-first.txt

-rw-r--r-- 1 sysadmin sysadmin 89 Mar 14 17:48 alpha-first.txt.origina l

-rw-r--r-- 1 sysadmin sysadmin 106 Mar 14 17:48 alpha-second.txt -rw-r--r-- 1 sysadmin sysadmin 195 Mar 14 17:48 alpha-third.txt -rw-r--r-- 1 sysadmin sysadmin 390 Mar 14 17:48 alpha.txt

-rw-r--r-- 1 sysadmin sysadmin 42 Mar 14 17:48 animals.txt -rw-r--r-- 1 sysadmin sysadmin 14 Mar 14 17:48 food.txt -rwxrw-r-- 1 sysadmin sysadmin 112 Aug 1 03:48 hello.sh -rw-r--r-- 1 sysadmin sysadmin 67 Mar 14 17:48 hidden.txt -rw-r--r-- 1 sysadmin sysadmin 10 Mar 14 17:48 letters.txt -rw-r--r-- 1 sysadmin sysadmin 83 Mar 14 17:48 linux.txt -rw-r--r-- 1 sysadmin sysadmin 66540 Mar 14 17:48 longfile.txt -rw-r--r-- 1 sysadmin sysadmin 235 Mar 14 17:48 newhome.txt -rw-r--r-- 1 sysadmin sysadmin 10 Mar 14 17:48 numbers.txt -rw-r--r-- 1 sysadmin sysadmin 77 Mar 14 17:48 os.csv

-rw-r--r-- 1 sysadmin sysadmin 59 Mar 14 17:48 people.csv -rw-r--r-- 1 sysadmin sysadmin 110 Mar 14 17:48 profile.txt -rw-r--r-- 1 sysadmin sysadmin 51 Mar 14 17:48 red.txt

Para cambiar al propietario del script

hello.sh

 al usuario

root

, utiliza

root

como primer argumento y

hello.sh

 como segundo argumento. No olvides utilizar el comando sudo para obtener los privilegios de administrador necesarios. Utiliza la contraseña netlab123 cuando se solicite:

sysadmin@localhost :~/Documents$ sudo chown root hello.sh [sudo] password for sysadmin:

(33)

Confirma que el usuario propietario ha cambiado introduciendo el comando ls -l. Utiliza el nombre de archivo como argumento para limitar la salida:

sysadmin@localhost :~/Documents$ ls -l hello.sh

-rwxrw-r-- 1 root sysadmin 112 Aug 1 03:48 hello.sh

El campo de usuario propietario ahora es

root

 lo que indica que el cambio fue exitoso. Para considerar

Trata de ejecutar el script de

hello.sh

 otra vez. ¡Se produce un error! ¿Por qué?

sysadmin@localhost :~/Documents$ ./hello.sh -bash: ./hello.sh: Permission denied

Sólo el usuario propietario tiene el permiso de ejecución, y ahora el usuario

root

 es el usuario propietario. Ahora, este archivo requiere acceso de administrador para que se ejecute. Utiliza el comando sudo para ejecutar el script como usuario

root

.

sysadmin@localhost :~/Documents$ sudo ./hello.sh [sudo] password for sysadmin:

______________ ( Hello World! ) ---\ \ <(^) ( )

Mover los Archivos

El comando mv sirve para mover un archivo desde una ubicación en el sistema de archivos a otra.

mv ORIGEN DESTINO 

El comando mv requiere al menos dos argumentos. El primer argumento es la fuente, una ruta para el archivo que se va a mover. El segundo argumento es el destino, una ruta hacia dónde

(34)

se moverá el archivo. Los archivos que se quieren copiar a veces se denominan fuente y la ubicación a dónde se van a colocar las copias se denominan destinos.

Observa

Utiliza el siguiente comando para cambiar al directorio

Documents

:

sysadmin@localhost :~$ cd ~/Documents

Para mover el archivo

people.csv

 al directorio

Work

, utiliza el nombre de archivo como la fuente y el nombre del directorio como destino:

sysadmin@localhost :~/Documents$ mv people.csv Work

Si se mueve un archivo de un directorio a otro sin especificar un nuevo nombre para el archivo, se conservará su nombre original. El paso anterior puede confirmarse mediante el comando ls en el directorio

Work

:

sysadmin@localhost :~/Documents$ ls Work people.csv

El comando mv puede mover varios archivos, siempre que el argumento final proporcione al comando el destino. Por ejemplo, para mover tres archivos en al directorio

School

:

sysadmin@localhost :~/Documents$ mv numbers.txt food.txt alpha.txt School

sysadmin@localhost :~/Documents$ ls School

Art Engineering Math  alpha.txt food.txt numbers.txt

Mover un archivo dentro del mismo directorio es una manera eficaz de cambiar el nombre. Por ejemplo, en el siguiente ejemplo el archivo

animals.txt

 recibe un nombre nuevo

de

zoo.txt

:

mv animals.txt zoo.txt

sysadmin@localhost :~/Documents$ ls

School alpha-second.txt hidden.txt newhome.txt Work alpha-third.txt letters.txt os.csv

adjectives.txt animals.txt linux.txt profile.txt alpha-first.txt hello.sh longfile.txt red.txt

sysadmin@localhost :~/Documents$ mv animals.txt zoo.txt

sysadmin@localhost :~/Documents$ ls

School alpha-second.txt letters.txt os.csv

Work alpha-third.txt linux.txt profile.txt adjectives.txt hello.sh longfile.txt red.txt alpha-first.txt hidden.txt newhome.txt zoo.txt

(35)

Para Considerar

Los permisos pueden tener un impacto en los comandos de la administración de archivos, como el comando mv. Mover un archivo requiere permisos de escritura y ejecución en ambos directorios, el origen y el destino.

Copiar Archivos

Crear copias de los archivos puede ser útil por muchas razones:

 Si se crea una copia de un archivo antes de hacer cambios, es posible volver al

archivo original.

 Es útil para transferir un archivo a los dispositivos de medios extraíbles.

 Una copia de un documento existente puede utilizarse como una plantilla para un

nuevo documento.

cp [OPCIONES ] ORIGEN DESTINO 

Observa

Utiliza el siguiente comando para cambiar al directorio

Documents

:

sysadmin@localhost :~$ cd ~/Documents

El comando cp se utiliza para copiar los archivos. Igual que el comando mv, éste también requiere al menos dos argumentos: un origen y un destino. Por ejemplo, para copiar el archivo

/etc/passwd

 al directorio actual, utiliza el siguiente comando:

sysadmin@localhost :~/Documents$ cp /etc/passwd .

Nota:

El segundo argumento es el carácter

.

 Recuerda de la sección de Cambiar de Directorios que es un acceso directo que representa el directorio actual.

El resultado de ejecutar el comando anterior crearía una copia del contenido del

archivo

/etc/passwd

 en el directorio

Documents

, ya que es el directorio actual. Esto puede confirmarse mediante el comando

ls

:

sysadmin@localhost :~/Documents$ ls

(36)

Work alpha-third.txt linux.txt passwd

adjectives.txt hello.sh longfile.txt profile.txt alpha-first.txt hidden.txt newhome.txt red.txt

Para Considerar

Los permisos pueden tener un impacto en los comandos de la administración del archivo, como el comando cp. Para copiar un archivo, es necesario tener el permiso de ejecución para acceder al directorio en el cuál se encuentra el archivo y el permiso de lectura para el archivo que se está copiando.

También es necesario tener el permiso de escritura y de ejecución en el directorio al que se está copiando el archivo. Por lo general, hay dos ubicaciones donde siempre debe tener los permisos de escritura y ejecución en los directorios: el directorio home y el directorio

/tmp

.

Copiar Archivos

El comando dd es una utilidad para copiar los archivos o las particiones enteras a nivel de bit.

dd [OPCIONES ] OPERANDO

Este comando tiene varias características útiles, incluyendo:

 Puede utilizarse para clonar o eliminar (limpiar) los discos completos o las particiones.  Se puede utilizar para copiar los datos sin procesar (o «raw data» en inglés) a los

dispositivos extraíbles, tales como las unidades USB y CDROM.

 Puede hacer copia de seguridad y restaurar el MBR (Master Boot Record o «Registro

de Arranque Maestro» en español).

 Se puede utilizar para crear un archivo de un tamaño específico que se llena con ceros

binarios y se puede utilizar después como un archivo de intercambio (memoria virtual). Examinemos el siguiente ejemplo, el comando dd crea un un archivo

llamado

/tmp/swapex

 con 50 bloques de ceros que tienen un megabyte de tamaño:

 sysadmin@localhost :~$ dd if=/dev/zero of=/tmp/swapex bs=1M count=50  500+0 records in

 500+0 records out

 524288000 bytes (524 MB) copied, 0.825745 s, 635 MB/s

El comando dd utiliza argumentos especiales para especificar cómo va a funcionar. A continuación se ilustran algunos de los argumentos más comúnmente utilizados:

(37)

Argumento Descripción

if

Archivo de entrada: El archivo de entrada del que se hace la lectura.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

En el ejemplo se lee del archivo

/dev/zero

, un archivo especial que contiene un número ilimitado de ceros.

of

Archivo de salida: El archivo de salida para ser escrito.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

bs

Tamaño del bloque: El tamaño de bloque utilizado. De forma predeterminada, el valor se da en bytes. Utiliza los siguientes sufijos para especificar otras unidades:

K

,

M

,

G

 y

T

 para kilobytes, megabytes, gigabytes y terabytes, respectivamente.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

El ejemplo utiliza un tamaño de bloque de un megabyte.

count

Cantidad: El número de bloques a leer desde el archivo de entrada.

dd if=/dev/zero of=/tmp/swapex bs=1M count=50

El comando de ejemplo lee 50 bloques. Para considerar

Cuando se copia el dispositivo entero no hay que especificar tamaño de bloque o cantidad. Por ejemplo, para clonar un disco duro (

/dev/sda

) a otro (

/dev/sdb

) ejecuta el siguiente comando:

dd if=/dev/sda of=/dev/sdb

(38)

El comando rm se utiliza para borrar los archivos y directorios. Es importante tener en cuenta que los archivos y directorios borrados no entran a la "papelera de reciclaje" como en el caso de lo sistemas operativos de escritorio. Cuando se elimina un archivo con el comando rm, casi siempre se elimina de manera permanente.

rm [OPCIONES ] ARCHIVO 

Observa

Utiliza el siguiente comando para cambiar al directorio

Documents

:

sysadmin@localhost :~$ cd ~/Documents

Sin opciones, el comando rm se utiliza típicamente para borrar los archivos regulares:

sysadmin@localhost :~/Documents$ rm linux.txt

sysadmin@localhost :~/Documents$ ls linux.txt

ls: cannot access linux.txt: No such file or directory

El comando rm ignorará los directorios que debía eliminar; para eliminar un directorio utiliza la opción recursiva del parámetro, ya sea la opción -r o -R. Sólo ten cuidado puesto que esto eliminará todos los archivos y todos los subdirectorios:

sysadmin@localhost :~/Documents$ rm Work rm: cannot remove 'Work': Is a directory

sysadmin@localhost :~/Documents$ rm -r Work

Advertencia:

El comando rm elimina los archivos de manera permanente. Para repetir los ejemplos anteriores, restablece la terminal utilizando el botón reset.

Para considerar

Los permisos pueden tener un impacto en los comandos de la administración de archivo, como el comando rm.

Para eliminar un archivo en un directorio, el usuario debe tener permiso de escritura y permiso de ejecución en un directorio. Los usuarios normales normalmente sólo tienen este tipo de permiso en su directorio home y sus subdirectorios.

(39)

Filtrado de Entrada

El comando grep es un filtro de texto que buscará las entradas y devolverá las líneas que coinciden con el patrón determinado.

grep [OPCIONES ] PATRÓN  [ARCHIVO ]

Observa

Utiliza el siguiente comando para cambiar al directorio

Documents

:

sysadmin@localhost :~$ cd ~/Documents

Si el siguiente ejemplo falla, repita el ejemplo de la Sección 11:

sysadmin@localhost :~/Documents$ cp /etc/passwd .

Por ejemplo, el archivo

passwd

 que acabamos de copiar en el directorio

Documents

, contiene los detalles sobre las cuentas de sistema especiales y cuentas de usuario en el sistema. Este archivo puede ser muy grande, sin embargo el comando grep se pude utilizar para filtrar la información sobre un usuario específico, como el usuario

sysadmin

.

Utiliza

sysadmin

 como el argumento del patrón y

passwd

 como el argumento del archivo:

sysadmin@localhost :~/Documents$ grep sysadmin passwd

sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin

El comando anterior devuelve la línea del

passwd

 que contiene el patrón

sysadmin

. Nota:

Esta línea es la entrada

/etc/passwd

 que pertenece al usuario

sysadmin

 y proporciona información que está fuera del alcance de este curso. Para más información sobre este archivo, puedes consultar el curso NDG Linux Essentials.

El ejemplo anterior utiliza un término de búsqueda simple como el patrón, sin embargo grep puede interpretar patrones de búsqueda mucho más complejos.

(40)
(41)

Las expresiones regulares tienen dos formas comunes: la básica y la extendida. La mayoría de los comandos que usan las expresiones regulares pueden interpretar las expresiones regulares básicas. Sin embargo, las expresiones regulares extendidas no están disponibles para todos los comandos y normalmente se requiere una opción de comando para que funcionen correctamente.

La siguiente tabla resume los caracteres de las expresiones regulares básicas: Los Caracteres Regex Básicos Significado

.

Cualquier carácter individual

[ ]

Cualquier carácter especificado

[^ ]

No el carácter especificado

*

Cero o más de los carácter previos

^

Si

^

 es el primer carácter en el patrón, entonces el patrón debe estar al principio de la línea que debe coincidir, de lo contrario solo un literal

^

.

$

Si

$

 es el último carácter en el patrón, entonces el patrón debe estar al final de la línea que debe coincidir, de lo contrario solo un literal

$

.

La siguiente tabla resume las expresiones regulares extendidas, que se deben utilizar con el comando egrep o la opción -E con el comando grep:

Los Carácteres Regex Extendidos Significado

+

Uno o más de los patrones previos

(42)

Los Carácteres Regex Extendidos Significado

{ }

Especificar las coincidencias mínimas, máximas o exactas del patrón anterior

|

Alternancia - una «o» lógica

( )

Permite crear grupos

Este curso sólo incluye las expresiones regulares básicas. Para obtener más información sobre las expresiones regulares extendidas, puedes ver los cursos NDG Linux

Essentials y NDG Introduction to Linux

 Previous  Next

(43)

Patrones Básicos

Las expresiones regulares son patrones que sólo determinados comandos pueden interpretar. Las expresiones regulares pueden ampliarse para que coincidan con ciertas secuencias de caracteres en el texto. Los ejemplos que aparecen en esta página harán uso de las

expresiones regulares para demostrar su poder cuando se utilizan con el comando grep. Además, estos ejemplos proporcionan una demostración muy visual de cómo funcionan las expresiones regulares, el texto que coincide con los patrones de búsqueda se mostrará en rojo.

Observa

Utiliza el siguiente comando cd para cambiar al directorio

Documents

.

sysadmin@localhost :~$ cd ~/Documents

La más simple de todas las expresiones regulares utiliza solamente los caracteres literales, como en el ejemplo de la página anterior:

sysadmin@localhost :~/Documents$ grep sysadmin passwd

sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin

Los Caracteres de Anclaje

Los caracteres de anclaje son una de las maneras de utilizar las expresiones regulares para reducir los resultados de búsqueda. Por ejemplo, el patrón

root

aparece muchas veces en el archivo

/etc/passwd

:

sysadmin@localhost :~/Documents$ grep 'root' passwd root:x:0:0:root:/root:bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

Para evitar que el shell los malinterprete como caracteres especiales, estos patrones deben protegerse por comillas fuertes, lo que significa simplemente ponerla entre comillas simples. El primer carácter de anclaje

^

 se utiliza para asegurar que un patrón aparezca al principio de la línea. Por ejemplo, para encontrar todas las líneas en

/etc/passwd

 que comienzan

con

root

, utiliza el patrón

^root

. Ten en cuenta que

^

 debe ser el primer carácter en el patrón para que sea eficaz.

sysadmin@localhost :~/Documents$ grep '^root' /etc/passwd root:x:0:0:root:/root:bin/bash

(44)

Para el ejemplo siguiente, primero examina el archivo

alfa-first.txt

. El comando cat se puede utilizar para imprimir el contenido de un archivo:

sysadmin@localhost :~/Documents$ cat alpha-first.txt A is for Animal B is for Bear C is for Cat D is for Dog E is for Elephant F is for Flower

El segundo carácter de anclaje

$

 se puede utilizar para un patrón que aparece al final de la línea para reducir resultados de búsqueda de manera eficiente. Para encontrar las líneas que terminan con una

r

 en el archivo

alfa-first.txt

, utiliza el patrón

r$

:

sysadmin@localhost :~/Documents$ grep 'r$' alpha-first.txt B is for Bear

F is for Flower

Una vez más, la posición de este carácter es importante, el

$

 debe ser el últimocarácter en el patrón para que sea eficaz como un ancla.

Coincidir un solo carácter con «.»

En los ejemplos siguientes se utiliza el archivo

red.txt

:

sysadmin@localhost :~/Documents$ cat red.txt red reef rot reeed rd rod roof reed root reel read

Una de las expresiones más útiles es el

.

 Coincidirá con cualquier carácter excepto el carácter que define un salto de línea. El patrón

r..f

 encuentra cualquier línea que contiene la

(45)

letra

r

 seguida por exactamente dos caracteres (que pueden ser cualquier carácter menos un salto de línea) y luego la letra

f

:

sysadmin@localhost :~/Documents$ grep 'r..f' red.txt reef

roof

El mismo concepto puede ser repetido utilizando otras combinaciones. El siguiente ejemplo encontrará palabras de cuatro letras que inician con

r

 y terminan con

d

:

sysadmin@localhost :~/Documents$ grep 'r..d' red.txt reed

read

Este carácter puede ser utilizado cualquier número de veces. Para encontrar todas las palabras que tengan al menos cuatro caracteres puedes usar el siguiente patrón:

sysadmin@localhost :~/Documents$ grep '....' red.txt reef reeed roof reed root reel read

La línea no tiene que ser una coincidencia exacta, simplemente tiene que contener el patrón, como se ve aquí cuando se busca

r..t

 en el archivo

/etc/passwd

:

sysadmin@localhost :~/Documents$ grep 'r..t' /etc/passwd root:x:0:0:root:/root:/bin/bash

operator:x:1000:37::/root:

Coincidir con un solo carácter utilizando [ ]

Los corchetes

[ ]

 buscan coincidencias con un sólo carácter de una lista o rango de posibles caracteres contenidos dentro de los corchetes.

Por ejemplo, del contenido del archivo

profile.txt

:

sysadmin@localhost :~/Documents$ cat profile.txt Hello my name is Joe.

(46)

I am 37 years old. 3121991

My favorite food is avocados. I have 2 dogs.

123456789101112

Para encontrar todas las líneas en el archivo

profile.txt

 que incluyen un número, utiliza el patrón

[0123456789]

 o

[0-9]

:

sysadmin@localhost :~/Documents$ grep '[0-9]' profile.txt I am 37 years old.

3121991

I have 2 dogs. 123456789101112

Por otro lado, para encontrar todas las líneas que contienen caracteres no numéricos, introduce un

^

 como el primer carácter dentro de los corchetes. Este carácter niega los caracteres incluidos en los corchetes:

sysadmin@localhost :~/Documents$ grep '[^0-9]' profile.txt Hello my name is Joe.

I am 37 years old.

My favorite food is avocados. I have 2 dogs.

Nota

No confundas

[^0-9]

 para buscar líneas que no contienen números. En realidad la búsqueda coincidirá con las líneas que contienen caracteres no numéricos . Observa el archivo original para ver la diferencia. La tercera y sexta líneas contienen sólo números, no contienen

caracteres no numéricos, por lo que esas dos líneas no coinciden con el patrón de búsqueda. Cuando otros caracteres de expresiones regulares se colocan dentro de los corchetes, se consideran caracteres literales. Por ejemplo, el carácter

.

 normalmente coincide con cualquier carácter, pero si se coloca dentro de los corchetes, entonces sólo coincidirá con sí mismo. En el siguiente ejemplo, sólo las líneas que contienen el carácter

.

 coincidirán.

sysadmin@localhost :~/Documents$ grep '[.]' profile.txt Hello my name is Joe.

I am 37 years old.

My favorite food is avocados. I have 2 dogs.

(47)

Coincidir con un carácter repetido o con patrones

usando *

El carácter de expresión regular

*

 se utiliza para que coincida con cero o más apariciones del carácter o patrón que le precede. Por ejemplo

e*

 coincidirá con cero o más apariciones de la letra

e

:

sysadmin@localhost :~/Documents$ cat red.txt red reef rot reeed rd rod roof reed root reel read

sysadmin@localhost :~/Documents$ grep 're*d' red.txt red

reeed rd reed

También es posible que coincida con cero o más ocurrencias de una lista de caracteres utilizando los corchetes. El patrón

[oe]*

 utilizado en el siguiente ejemplo coincidirá con cero o más ocurrencias del carácter

o

 o bien el carácter

e

:

sysadmin@localhost :~/Documents$ grep 'rpass*d' red.txt red

reeed rd rod reed

Cuando se usa solo con un carácter,

*

 no es muy útil. Cualquiera de los siguientes patrones coincidirá con cualquier  cadena o línea en el archivo:

.* e* b* z*

.

(48)

sysadmin@localhost :~/Documents$ grep 'z*' red.txt red reef rot reeed rd rod roof reed root reel read

sysadmin@localhost :~/Documents$ grep 'e*' red.txt red reef rot reeed rd rod roof reed root reel read

Esto es porque

*

 puede coincidir con cero ocurrencias de un patrón. Para que el

*

 sea útil, es necesario crear un patrón que incluya más de un carácter antes de

*

. Por ejemplo, los

resultados anteriores se pueden refinar añadiendo otra letra e para que el patrón

ee*

 coincida de manera efectiva con cada línea que contenga al menos una

e

.

sysadmin@localhost :~/Documents$ grep 'ee*' red.txt red

reef reeed reed reel

(49)

read

Entrada estándar

Si no se proporciona un nombre de archivo, el comando grep leerá desde la entrada estándar, que normalmente es la información proporcionada mediante el teclado por el usuario que ejecuta el comando. Esta acción proporciona una experiencia interactiva con el

comando grep ya que el usuario teclea la entrada y el comando grep la va filtrando. Siéntete libre de probarlo, solo presionaCtrl-Dcuando estés listo para regresar al prompt.

Observa

Usa el siguiente commando cd para regresar al directorio de inicio:

Referencias

Documento similar

- Mientras esté tomando este medicamento o antes de empezar, es posible que su médico le indique realizarse análisis de sangre u orina para controlar sus niveles

Mediante la comunicación de efectos adversos usted puede contribuir a proporcionar más información sobre la seguridad de este medicamento... Conservación

Zaldiar está indicado en el tratamiento sintomático del dolor de intensidad de moderada a intensa siempre que su médico crea que la combinación de tramadol y

- Si se administran de forma simultánea Hemovás y medicamentos para la hipertensión, puede ser necesario ajustar la dosis por lo que debe informar al médico

Para prescribir la dosis correcta de ACEDIUR, es especialmente importante que su médico sepa si está tomando otros fármacos que reducen la tensión arterial,

 Si ha tenido alguna vez problemas de corazón: debe tener cuidado al utilizar este tipo de medicamento, si usted ha nacido con, o tiene antecedentes familiares de

Este medicamento está indicado para el tratamiento de la presión arterial elevada (hipertensión esencial) cuando su presión arterial no se ha controlado adecuadamente con cada uno

Pueden aparecer los efectos típicos de las preparaciones de cortisona pudiendo afectar a todas las partes del cuerpo, particularmente si usted usa Intestifalk