NDG Linux Unhatched
NDG Linux Unhatched
NDG Linux Unhatched
Los Argumentos
comando [opciones…] [argumentos…]
Un argumento se puede utilizar para especificarle al comando sobre qué actuar. Al comando ls puede dársele el nombre de
un directorio como argumento, y mostrará el contenido de ese directorio. En el siguiente ejemplo, el directorio Documents (o
«documentos» en espaňol) se utilizará como argumento:
sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt
o en espaňol:
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 -r imprimirá 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
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?
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):
Recuerda que las opciones múltiples pueden ser introducidas por separado o combinadas:
aptitude -v -v moo
aptitude -vv moo
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.
sysadmin@localhost:~$
Después de cambiar de directorios, también puede confirmarse la nueva ubicación en el nuevo prompt, que de nuevo aparece
en azul.
sysadmin@localhost:/etc/calendar$
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:
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:
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.
Utiliza esta ruta como el argumento para el comando cd para retroceder al directorio de inicio del usuario sysadmin.
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:
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$
sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art
Para considerar
Una ruta de acceso puede también dividirse en múltiples comandos cd. El siguiente conjunto de comandos lograría los
mismos resultados:
cd School
cd Art
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 ~
Listado de Archivos
El comando ls se utiliza para listar el contenido de un directorio. Ya lo has visto usado un par de veces antes en los ejemplos,
pero esta página te ayudará a estar cómodo al utilizarlo.
ls [OPCIONES] [ARCHIVO]
De forma predeterminada, cuando el comando ls se utiliza sin opciones o argumentos, listará los archivos en el directorio
actual:
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Para conocer los detalles de un archivo, como el tipo de archivo, los permisos, la propiedad o la fecha y hora, realiza un
listado largo utilizando la opción -l para el comando ls. A continuación, vamos a ver un listado del directorio /var/log como
un ejemplo, puesto que proporciona una salida variada:
sysadmin@localhost:~$ ls -l /var/log/
total 832
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.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----- 1 syslog adm 380 Jul 28 03:45 auth.log
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp
-rw-r----- 1 syslog adm 324 Jul 28 03:45 cron.log
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
drwxr-xr-x 2 root root 4096 Jun 30 06:53 fsck
-rw-r----- 1 syslog adm 106 Jul 28 03:45 kern.log
-rw-rw-r-- 1 root utmp 292584 Jul 28 03:45 lastlog
-rw-r----- 1 syslog adm 18703 Jul 28 03:46 syslog
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Jul 28 03:45 wtmp
Cada línea corresponde a un archivo dentro del directorio. La información puede dividirse en campos separados por espacios.
Los campos son los siguientes:
Tipo de archivo
El primer campo en realidad contiene diez caracteres, donde el primer carácter indica el tipo de archivo y los
siguiente nueve especifican los permisos. Los tipos de archivo son:
El primer archivo alternatives.log es un archivo regular -, mientras que el segundo archivo apache2 es un
directorio d.
Los Permisos
Los permisos indican de qué manera determinados usuarios pueden acceder a un archivo. Sigue leyendo para
aprender más acerca de los permisos.
Este número indica cuántos vínculos físicos apuntan a este archivo. Los vínculos físicos están más allá del alcance
de este módulo, pero se cubren en el curso de NDG Linux Essentials.
Usuario Propietario
Grupo Propietario
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
Esto indica el momento en el que el contenido del archivo se modificó por última vez.
Nombre de archivo
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 -l para 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:
sysadmin@localhost:~$ ls -l -S /var/log
total 840
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
-rw-rw-r-- 1 root utmp 292584 Jul 27 23:10 lastlog
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
-rw-r----- 1 syslog adm 27014 Jul 28 00:10 syslog
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.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
-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 -r /var/log
wtmp lastlog faillog cron.log auth.log alternatives.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 usuario, el comando su abre un nuevo shell como usuario root, que
proporciona privilegios administrativos.
Observa
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 especificada de tres maneras:
su -
su -l
su --login
Después de ejecutar el comando su, se requiere una contraseña. En nuestras máquinas virtuales, la contraseña para ambas
cuentas, la de root y, sysadmin es netlab123. Si la olvidas, ésta se muestra cada vez que se inicia una nueva máquina
virtual. Como medida de seguridad, la contraseña no será visible cuando la vas introduciendo.
sysadmin@localhost:~$ su -
Password:
root@localhost:~#
Observa que el prompt de comando ha cambiado para reflejar que has iniciado la sesión como usuario root. Para cerrar la
sesión y volver a la cuenta sysadmin, utiliza el comando exit. Observa que el prompt cambia de nuevo:
root@localhost:~# exit
exit
sysadmin@localhost:~$
Para evitar que se ejecuten los comandos sensibles, hemos configurado el comando Steam Locomotive (o «locomotora de
vapor» en español), el comando de sl, que requiere acceso de administrador. Si el comando se ejecuta como sysadmin,
fallará:
sysadmin@localhost:~$ sl
sl: Permission denied
Utiliza el comando su para cambiar a la cuenta de root y ejecuta el comando de sl con acceso administrativo:
sysadmin@localhost:~$ su -
Password:
root@localhost:~# sl
(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/ \_/
root@localhost:~# exit
exit
sysadmin@localhost:~$
El Comando sudo
sudo [OPCIONES] COMANDO
El comando sudo 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 como argumento para el comando sudo. Igual que el
comando su, el comando sudo asume por defecto que la cuenta del usuario root debe utilizarse para ejecutar comandos.
Para considerar
El comando sudo puede ser usado para utilizar temporalmente otras cuantas también. Para especificar otro usuario de cuenta
utiliza la opción -u.
Ejecuta el comando sl como el usuario root poniendo sudo delante de éste:
sysadmin@localhost:~$ sudo sl
Password:
Nota:
Recuerda que la contraseña es netlab123. El prompt de la contraseña no aparecerá de nuevo mientras el usuario continúa
ejecutando comandos sudo con diferencia de menos de cinco minutos.
Una vez que el comando haya terminado y el prompt no haya cambiado, sigues registrado como sysadmin. El
comando sudo 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 accidentalmente ejecute un comando como root. La intención de ejecutar un
comando es clara; el comando se ejecuta como root si tiene como prefijo el comando sudo. De lo contrario, se ejecuta el
comando como un usuario normal.
Los Permisos
Los permisos determinan en que manera los diferentes usuarios pueden interactuar con un archivo o directorio. Cuando se
lista un archivo con el comando ls -l, la salida incluye información de permiso. Por ejemplo, vamos a usar un script
llamado hello.sh ubicado en el directorio Documents:
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
A continuación vas a ver una revisión de los campos correspondientes a los permisos.
El primer carácter de esta salida indica el tipo de un archivo. Recuerda que si el primer carácter es un -, entonces es un
archivo regular. Si el carácter era una d, entonces es un directorio.
Después del carácter del tipo de archivo, se muestran los permisos. Los permisos se dividen en tres grupos de tres
caracteres:
Propietario
- rw- rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
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 otros permisos no tienen ningún efecto.
El usuario que posee el archivo y a quién se aplican estos permisos, puede ser determinado por el campo de user
owner:
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
Grupo
-rw- rw- r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
El segundo conjunto para el grupo propietario del archivo. Si tu cuenta actual no es el usuario propietario del
archivo y eres miembro de un grupo que posee el archivo, entonces se aplicará el segundo grupo de los tres
permisos y los otros permisos no tendrán ningún efecto.
El grupo de este archivo puede ser determinado por el campo group owner:
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
Otro
-rw-rw- r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
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 miembro del grupo que posee el archivo, se te aplicaran
el tercer conjunto de permisos.
Los Tipos de Permisos
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 de los archivos y de los directorios, tal como se muestra en la
siguiente tabla:
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.
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 chmod realmente 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:
sysadmin@localhost:~$ cd ~/Documents
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:
Símbolo Significado
Símbolo Significado
Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres actuar.
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:
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:
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
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
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
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.original
-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:
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! )
--------------
\
\
<(^)
( )
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 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:
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:
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
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.
¡Pingüinos en el Espacio! NASA utiliza Linux. La Estación Espacial Internacional funciona en Linux. Hemos migrado las
funciones clave de Windows a Linux porque necesitábamos un sistema operativo estable y fiable. El Mars Rover
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.
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
School alpha-second.txt letters.txt os.csv zoo.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
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:
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:
Argumento Descripción
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
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.
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.
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
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:
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.
[^ ] No el carácter especificado
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:
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
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:
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.
Para el ejemplo siguiente, primero examina el archivo alfa-first.txt. El comando cat se puede utilizar para imprimir el
contenido de un archivo:
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$:
Una vez más, la posición de este carácter es importante, el $ debe ser el último carácter en el patrón para que sea eficaz
como un ancla.
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 letra r seguida por exactamente dos caracteres (que pueden ser
cualquier carácter menos un salto de línea) y luego la letra f:
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:
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:
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:
Para encontrar todas las líneas en el archivo profile.txt que incluyen un número, utiliza el patrón [0123456789] o [0-
9]:
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:
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.
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:
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*.
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.
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 presiona Ctrl-D cuando estés listo para regresar al prompt.
Observa
Usa el siguiente commando cd para regresar al directorio de inicio:
sysadmin@localhost:~/Documents$ cd ~
Apagar
El comando shutdown (o «apagar» en español) se encarga de que el sistema se apague de una manera segura. Cinco
minutos antes de que se apague el sistema se les notifica a todos los usuarios conectados que el sistema se apagará y los
nuevos registros se bloquearán.
Observa
El comando shutdown requiere acceso de administrador. Cambiate a la cuenta root para esta sección usando el siguiente
comando. Utiliza la contraseña netlab123.
sysadmin@localhost:~$ su -
Password:
root@localhost:~#
¡Nuestras máquinas virtuales no se apagarán! Siéntete en libertad de utilizar el comando, pero ten en cuenta que después de
la cuenta regresiva haya terminado, solamente regresarás a el prompt en lugar de apagar el sistema. Puede que tengas que
pulsar Entrar para invocar de regreso el prompt del comando.
A diferencia de otros comandos utilizados para apagar el sistema, el comando shutdown requiere un argumento de tiempo
especificando cuando debe comenzar el apagado. Los formatos de este argumento de tiempo puede ser la palabra now (o
«ahora» en español), una hora del día en el formato hh:mm o el número de minutos de retraso en el formato +minutes.
Para considerar
El reloj de nuestro sistema puede estar configurado para una zona horaria diferente a la tuya. Para verificar la hora en la
terminal, utiliza el comando date. En nuestras máquinas, el formato predeterminado de la salida del comando date (o
«fecha» en español) es como sigue:
weekday month day hour:minute:second UTC year
Las letras UTC presentes en la salida indican que el tiempo se muestra como Hora Universal Coordinada.
root@localhost:~# date
Fri Jan 22 01:50:07 UTC 2016
root@localhost:~# shutdown 01:51
El comando shutdown también tiene un argumento opcional de mensaje indicando que aparecerá un mensaje en las
terminales de todos los usuarios. Por ejemplo:
Observa
Sal de la cuenta root utilizando el comando exit:
root@localhost:~# exit
logout
Configuración de la Red
El comando ifconfig significa «interface configuration» (o «configuración de la interfaz» en español) y se utiliza para mostrar la
información de configuración de red.
ifconfig [OPCIONES]
Nota:
El comando iwconfig es similar al comando ifconfig, pero está enfocado a las interfaces de red inalámbrica.
No todas las configuraciones de red son importantes para este módulo, pero es importante observar en la salida de abajo la
dirección IPv4 del dispositivo de red principal eth0 es 192.168.1.2 y que el dispositivo está activo (UP):
sysadmin@localhost:~$ ifconfig
Para considerar
El dispositivo lo se conoce como el dispositivo de loopback (o «ciclo invertido» en español). Es un dispositivo de red especial
utilizado por el sistema cuando éste envía los datos basados en red a sí mismo.
El comando ifconfig también puede ser utilizado para modificar temporalmente la configuración de red. Normalmente estos
cambios deben ser permanentes, por lo que utilizando el comando ifconfig para hacer tales cambios es algo bastante raro.
La ejecución de un comando resulta en algo que se llama un proceso. En el sistema operativo Linux, los procesos se ejecutan
con los privilegios del usuario que ejecuta el comando. Esto permite que procesos se limiten a ciertas capacidades basadas
en la identidad del usuario.
Aunque haya excepciones, generalmente el sistema operativo diferenciará los usuarios en el criterio de que si son
administradores. Típicamente los usuarios regulares, como el usuario sysadmin, no pueden controlar los procesos de otro
usuario. Los usuarios que tienen privilegios administrativos, como la cuenta root, pueden controlar los procesos de cualquier
usuario, incluyendo detener cualquier proceso de usuario.
Puedes utilizar el comando ps para listar procesos.
ps [OPCIONES]
sysadmin@localhost:~$ ps
PID TTY TIME CMD
80 ? 00:00:00 bash
94 ? 00:00:00 ps
El comando ps muestra los procesos que se están ejecutando en la terminal actual por defecto. En el ejemplo, la línea final es
el proceso creado por ejecutar el comando ps. La salida incluye las siguientes columnas de información:
PID: El identificador del proceso, que es único para el proceso. Esta información es útil para controlar el proceso
por su número de ID.
TTY: El nombre del terminal en el que se ejecuta el proceso. Esta información es útil para distinguir entre los
diferentes procesos que tienen el mismo nombre.
TIME: La cantidad total de tiempo del procesador utilizado por el proceso. Típicamente, los usuarios regulares no
utilizan esta información.
CMD: El comando que inició el proceso.
En lugar de ver sólo los procesos que se ejecutan en el terminal actual, los usuarios pueden querer ver cada proceso
ejecutado en el sistema. La opción -e muestra todos los procesos:
sysadmin@localhost:~$ ps -e
PID TTY TIME CMD
1 ? 00:00:00 init
33 ? 00:00:00 rsyslogd
37 ? 00:00:00 cron
39 ? 00:00:00 sshd
56 ? 00:00:00 named
69 ? 00:00:00 login
79 ? 00:00:00 bash
94 ? 00:00:00 ps
Normalmente, también se utiliza la opción -f ya que proporciona más detalles en la salida del comando, incluyendo las
opciones y los argumentos. Busca el comando ps en la última línea, la columna CMD ahora incluye las opciones utilizadas:
sysadmin@localhost:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:16 ? 00:00:00 /sbin??? /init
syslog 33 1 0 19:16 ? 00:00:00 /usr/sbin/rsyslogd
root 37 1 0 19:16 ? 00:00:00 /usr/sbin/cron
root 39 1 0 19:16 ? 00:00:00 /usr/sbin/sshd
bind 56 1 0 19:16 ? 00:00:00 /usr/sbin/named -u bind
root 69 1 0 19:16 ? 00:00:00 /bin/login -f
sysadmin 79 69 0 19:16 ? 00:00:00 -bash
sysadmin 95 79 0 19:43 ? 00:00:00 ps -ef
Habilidades de Linux están en demanda! El 97% de los gerentes de contratación están buscando reclutar profesionales de
Linux en los próximos seis meses. El 88% afirma que es difícil encontrar a estos candidatos
Administración de Paquetes
Administración de Paquetes es un sistema que instala, actualiza, consulta o quita el software dentro de un sistema de
archivos. En Linux hay muchos sistemas de administración de paquetes de software diferentes, pero los dos más populares
son Debian y Red Hat. Las máquinas virtuales para este curso utilizan Ubuntu, un derivado de Debian.
En el nivel más bajo del sistema de administración de paquetes de Debian está el comando dpkg. Este comando puede ser
complicado para los usuarios principiantes de Linux, por lo que una herramienta de paquetes avanzada, apt-get, un
programa front-end para la herramienta dpkg, facilita más la administración de los paquetes.
Observa
Muchos de los comandos de la administración de paquetes requieren acceso de administrador, por lo que vienen precedidos
por el comando sudo. Utiliza la contraseña netlab123 cuando el sistema te lo pida.
Instalación de los Paquetes
Los archivos del paquete se instalan comúnmente descargándolos directamente desde los repositorios ubicados en los
servidores de Internet. Los repositorios de Debian contienen más de 65,000 diferentes paquetes de software. Antes de
instalar un paquete, es una buena práctica utilizar la actualización de la lista de paquetes con el comando apt-get.
Para buscar las palabras clave dentro de estos paquetes, puede utilizar el comando apt-cache search.
La palabra clave que se utiliza debe coincidir con parte del nombre o la descripción del paquete que hay que localizar. Se
pueden utilizar varias palabras clave para aclarar aún más la búsqueda; por ejemplo, el término para la búsqueda web
server (o «servidor web» en español) proporcionaría mejores resultados que las palabras web o server por sí solas.
Para encontrar los paquetes asociados con la palabra clave cow:
Cuando hayas encontrado el paquete que quieres instalar, puedes instalarlo con el comando apt-get install:
Para considerar
¡El comando cowsay es una vaca que habla configurable! Usa una palabra o frase como argumento:
sysadmin@localhost:~$ cowsay 'NDG Linux Unhatched'
_____________________
< NDG Linux Unhatched >
---------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Recomendamos poner el argumento entre comillas simples para evitar que el shell interprete los caracteres especiales.
Actualización de Paquetes
El comando apt-get install también puede actualizar un paquete, si el paquete está instalado y un paquete con una
versión más reciente está disponible. Si el paquete no está en el sistema, se instala; Si está en el sistema, se actualiza.
La actualización de todos los paquetes del sistema debe hacerse en dos pasos. Primero, actualiza el caché de todos los
paquetes disponibles con apt-get update. Después, ejecuta el comando apt-get upgrade con el que se actualizarán
todos los paquetes y sus dependencias.
apt-get update
apt-get upgrade
sysadmin@localhost:~$ sudo apt-get update
[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done
sysadmin@localhost:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Por ejemplo, para depurar completamente el cowsay, ejecuta el siguiente comando. Escriba Y cuando se le solicite:
El comando passwd se utiliza para actualizar la contraseña de un usuario. Los usuarios sólo pueden cambiar sus propias
contraseñas, mientras que el usuario root puede actualizar la contraseña de cualquier usuario.
Por ejemplo, ya que estamos registrados como el usuario sysadmin, podemos cambiar la contraseña de esa cuenta. Ejecuta
el comando passwd. Se te pedirá que ingreses la contraseña actual una vez y la nueva contraseña dos veces. Por razones de
seguridad, ninguna salida se visualizará mientras estás introduciendo la contraseña. La salida se muestra como sigue:
sysadmin@localhost:~$ passwd
Changing password for sysadmin.
Si el usuario quiere ver la información del estado acerca de su contraseña, puede utilizar la opción -S:
El usuario root puede cambiar la contraseña de cualquier usuario. Si el usuario root quiere cambiar la contraseña para
el sysadmin, ejecutaría el siguiente comando:
Observa
Sal de la cuenta root utilizando el comando exit:
root@localhost:~# exit
logout
Editor de Texto
El editor de texto principal para Linux y UNIX es un programa llamado vi. Si bien existen numerosos editores disponibles para
Linux que van desde el pequeño nano hasta el masivo editor emacs, el editor vi posee varias ventajas:
El editor vi está disponible en cada distribución de Linux en el mundo. Esto no es cierto en el caso de otros
editores.
El editor vi se puede ejecutar en una CLI (interfaz de línea de comandos) y en una GUI (interfaz gráfica de
usuario).
Aunque se hayan añadido nuevas características al editor vi, las funciones básicas han existido durante décadas.
Esto significa que si alguien aprendió el editor vi en la década de los 1970, podría utilizar una versión moderna sin
ningún problema. Aunque ahora parezca trivial, puede no parecer tan trivial dentro de veinte años.
Para considerar
La forma correcta de pronunciar vi editor es editor vee-eye (o «vi-ay» en español). Las letras vi se refieren a visual pero los
desarrolladores nunca lo habían pronunciado de esta manera, más bien como la letra v seguida por la letra i pronunciándose
«vi-ay».
En realidad, la mayoría de los sistemas Linux no incluyen el original vi, sino su versión mejorada conocida como vim que se
refiere a vi improved (o «vi mejorado» en español). La mayoría de las distribuciones de Linux probablemente oculten este
hecho. En su mayor parte, el vim funciona igual que el vi, pero tiene características adicionales. Para los temas que se
tratarán en este curso, trabajaremos con vi o vim.
Para empezar a usar el vi, simplemente introduce el comando seguido de la ruta de acceso al archivo que quieres editar o
crear:
sysadmin@localhost:~$ vi newfile.txt
Hay tres modos que utiliza el vi: modo de comando, modo de inserción y el modo ex.
[número] movimento
Movimiento Resultado
h Un carácter a la izquierda
Movimiento Resultado
l Un carácter a la derecha
^ Principio de la línea
$ Final de la línea
Nota:
Desde la actualización al vim, es también posible utilizar las teclas de flecha ←↓↑→ en vez de hjkl.
Estos movimientos pueden tener un número prefijo para indicar cuántas veces hay que realizar el movimiento. Por
ejemplo, 5h movería el cursor cinco caracteres a la izquierda, 3w movería el cursor tres palabras a la derecha.
Para mover el cursor a un número de línea específica, introduce ese número de línea seguido por el carácter G. Por ejemplo,
para llegar a la quinta línea del archivo, introduce 5G. 1G o gg se puede utilizar para ir a la primera línea del archivo, mientras
que una sola G te llevará a la última línea. Para averiguar en qué línea está el cursor, utiliza CTRL-G.
Estándar Vi Significado
Los movimientos que conociste en la página anterior se utilizan para especificar dónde la acción va a ocurrir, siempre a partir
de la posición actual del cursor. Cualquiera de los siguientes formatos generales para los comandos de acción es aceptable:
Eliminar
La acción de eliminar borra el texto indicado de la página y lo guarda en el búfer. El búfer es el equivalente de «portapapeles»
en Windows o Mac OSX. La siguiente tabla proporciona algunos ejemplos:
Acción Resultado
Acción Resultado
Cambiar
La acción de cambiar es muy similar a eliminar, el texto se elimina y se guarda en el búfer, sin embargo el programa se
conecta para introducir el modo que permite hacer los cambios de texto de inmediato. La siguiente tabla proporciona algunos
ejemplos:
Acción Resultado
Jalar
La acción de jalar guarda el contenido en el buffer sin eliminarlo. La siguiente tabla proporciona algunos ejemplos:
Acción Resultado
Poner
La acción de poner, pone el texto guardado antes o después de la posición del cursor. Observa que estas son las dos únicas
opciones, la acción poner no utiliza los movimientos como los anteriores comandos de acción.
Acción Resultado
Buscar en el vi
Otra función estándar que ofrecen los procesadores de texto es «find» («buscar» en español). A menudo, las personas
utilizan CTRL+F o buscan en el menú edición. El programa vi utiliza «search» (o «explorar» en español). «Search» (explorar)
es más poderoso que «find» (buscar), ya que soporta patrones de texto literal y las expresiones regulares.
Para explorar el texto hacia delante desde la posición actual del cursor, utiliza el / para comenzar a explorar el texto,
introduce el término de búsqueda y luego presiona la tecla Entrar para iniciar la exploración del texto. El cursor se moverá a
la primera coincidencia que se encuentra.
Para pasar a la próxima coincidencia con el mismo patrón, presiona la tecla n. Para volver a la coincidencia anterior, pulsa la
tecla N. Si llegas al final o al comienzo del documento, automáticamente ira el otro lado del documento.
Para empezar a buscar hacia atrás desde la posición del cursor, empieza introduciendo ?, después introduce el patrón buscar
las coincidencias y pulse la tecla Entrar.
Modo de Inserción
El modo de inserción se utiliza para añadir texto al documento. Hay varias maneras de entrar al modo de inserción desde el
modo comando, cada una se distingue según dónde se iniciará la inserción del texto. La siguiente tabla incluye las más
comunes:
Entrada Propósito
Modo Ex
Originalmente, el editor vi fue llamado el editor ex. El nombre vi fue la abreviatura del comando visual en el editor ex que
cambió al editor al modo «visual».
En el modo normal original, el editor ex sólo permitía a los usuarios ver y modificar una línea a la vez. En el modo visual, los
usuarios podían ver la parte del documento que cabía en la pantalla. Puesto que la mayoría de los usuarios prefiere el modo
visual a edición en modo línea, el archivo de programa ex fue vinculado a un archivo de vi, para que los usuarios pudieran
arrancar el ex directamente en modo visual al correr el enlace de vi.
Finalmente, el archivo de programa fue renombrado al vi y el editor ex se convirtió en un enlace al editor vi.
Cuando se utiliza el modo ex en el editor vi, es posible ver o cambiar la configuración, así como llevar a cabo los comandos
relacionados con los archivos tales como abrir, guardar o anular los cambios en un archivo. Para pasar al modo ex, introduce
el carácter : en el modo comando. La tabla siguiente lista algunas acciones comunes llevadas a cabo en el modo ex:
Entrada Propósito
:w nombre del Guardar una copia del archivo actual como nombre
archivo de archivo
Un análisis rápido de la tabla anterior revela que si un signo de exclamación ! se agrega a un comando, éste intenta forzar la
operación. Por ejemplo, imagina que estás realizando cambios en un archivo en el vi editor y luego intenta a salir con :q,
sólo para ver que el comando falla. El editor vi no se quiere cerrar sin guardar los cambios realizados en un archivo, pero
puedes forzar el cierre con el comando ex :q!.
Para considerar
Aunque el modo ex ofrece varias maneras de guardar y salir, también existe ZZ disponible en el modo comando; éste es el
equivalente de :wq. Hay muchas más funciones superpuestas entre el modo ex y el modo comando. Por ejemplo, el modo ex
se puede utilizar para acceder a cualquier línea del documento introduciendo : seguido por el número de línea, mientras
que G se puede utilizar en el modo comando tal como viste más arriba.
Observa
Si tienes un texto de archivo abierto, ciérralo ejecutando el comando :q!. Esto hará salir sin guardar los cambios en el
archivo.
El siguiente paso
Esperamos que hayas disfrutado esta breve introducción al mundo de Linux. El contenido se alinea con el conocimiento de
Linux cubierto por los objetivos del examen CompTia A+ Linux, ¡pero hay mucho más! ¡Obtén el nivel de certificación Linux
para progresar en tu carrera!
Si quieres ampliar tus conocimientos en Linux, Cisco Networking Academy ofrece también tres cursos de Linux. NDG Linux
Essentials es perfecto para los principiantes para entender los conceptos básicos, mientras NDG Linux Series ofrece a los
principiantes temas más profundos.
Traducción imagen: NDG Linux Essentials (“NDG elementos escenciales de Linux”) Aprender los fundamentos del sistema
operativo Linux y línea de comandos y conceptos básicos de código abierto.
El curso NDG Linux Essentials está diseñado para prepararte para el certificado profesional Linux Professional Institute Linux
Essentials Professional Development Certificate, que valida una comprensión demostrada de:
FOSS (Free Open Source Software o «Software de Código Abierto Gratuito»), las distintas comunidades y licencias
Conocimiento de las aplicaciones de código abierto en el trabajo que se relaciona con los equivalentes de código
cerrado
Los conceptos básicos de hardware, procesos, programas y los componentes del sistema operativo Linux
Cómo trabajar en la línea de comandos y con los archivos
Cómo crear y restaurar las copias y los archivos comprimidos
Permisos del sistema de seguridad, permisos usuarios/grupos y archivo para los directorios públicos y privados
Cómo crear y ejecutar scripts simples
Para obtener el certificado Linux Essentials Professional Development Certificate debes completar el curso Linux Essentials
(LPI-010) que abarca:
El certificado Linux Essentials Professional Development Certificate es el comienzo de tu camino para convertirte en un
profesional certificado en Linux. Puedes encontrar información sobre las certificaciones de Linux Professional Institute
en http://www.lpi.org.
No te preocupe si tienes poca o ninguna experiencia en Linux. Este curso es el punto de partida perfecto diseñado para
enseñarte todos los conceptos desde cero. Sin embargo, si este material no es lo suficientemente desafiante para ti, puedes
empezar con el curso introductorio más riguroso NDG Introduction to Linux I. («NDG Introducción a Linux I» en español).
Los cursos de NDG Introduction to Linux están diseñados para prepararte para la certificación de nivel 1, Linux Professional
Institute Level 1 Certification. LPIC-1 es una certificación profesional de servidor Linux para los administradores de Linux que
avala tu capacidad para realizar las siguientes tareas:
Para obtener la certificación LPIC-1 debes pasar el Examen 101 y 102. NDG Introduction to Linux I está diseñado para
prepararte para el examen 101, que cubre:
NDG Introduction to Linux II se alinea con los objetivos del examen 102, y cubre:
Shells, Scripting y manejo de datos
Interfaces y equipos de escritorio
Tareas Administrativas
Servicios esenciales del sistema
Fundamentos de redes
Seguridad
La certificación LPIC-1 es la primera de las tres certificaciones profesionales de LPI. Puedes encontrar información sobre
todas las certificaciones de Linux Professional Institute en http://www.lpi.org.
IT Essentials
Para más información sobre las habilidades fundamentales de computación y la formación para los empleos de nivel de
entrada, consulta el resto del curso IT Essentials, alineado a la certificación de CompTia A+.
IT Essentials (“Esenciales de TI”) Aprender a construir y configurar una computadora y conectarse de forma segura a una red,
sus primeros pasos para una carrera de TI.
IT Essentials cubre las habilidades básicas de computación y la formación para los empleos TI de nivel entrada. El plan de
estudios de IT Essentials incluye prácticas de laboratorio que proporcionan experiencia práctica. Las herramientas virtuales te
ayudan a perfeccionar tus habilidades de resolución de problemas y poner en práctica lo que aprendes.