Ejercicios prácticos con Raspberry Pi

Tekst
Loe katkendit
Märgi loetuks
Kuidas lugeda raamatut pärast ostmist
Šrift:Väiksem АаSuurem Aa

Para saber más

Consulte también el Capítulo 3.14.

3.5 Copiar un archivo o una carpeta
Problema

Desea copiar un archivo utilizando una sesión de terminal.

Solución

Utilice el comando cp para copiar archivos y directorios.

Observaciones

Por supuesto, usted puede copiar archivos utilizando el Administrador de archivos y sus opciones de copiar y pegar (Capítulo 3.2).

El ejemplo más simple de copiar en una sesión de terminal es hacer una copia de un archivo dentro de su directorio de trabajo. El comando cp va seguido por el archivo que se va a copiar y luego por el nombre que se le va a dar al nuevo archivo.

Por ejemplo, el ejemplo siguiente crea un archivo llamado myfile.txt y después hace una copia de él con el nombre myfile2.txt. Puede encontrar más información sobre el truco de crear un archivo usando el comando > en el Capítulo 3.9.

$ echo "hello" > myfile.txt

$ ls

myfile.txt

$ cp myfile.txt myfile2.txt

$ ls

myfile.txt myfile2.txt

Aunque en este ejemplo ambas rutas de archivo son las del directorio actual, las rutas del archivo pueden estar en cualquier parte del sistema de archivos donde tenga acceso de escritura. El siguiente ejemplo copia el archivo original en un área /tmp, que es una ubicación para archivos temporales. No ponga nada importante en esa carpeta.

$ cp myfile.txt /tmp

Tenga en cuenta que, en ese caso, el nombre que se va a dar al nuevo archivo no se especifica, solo se especifica el directorio donde va a ir. Esto creará una copia de myfile.txt en /tmp con el mismo nombre de myfile.tmp.

A veces, en lugar de copiar solo un archivo puede que desee copiar todo un directorio lleno de archivos y posiblemente otros directorios. Para copiar dicho directorio debe utilizar la opción -r (recursivo). Esto copiará el directorio y todo su contenido.

$ cp -r mydirectory mydirectory2

Siempre que esté copiando archivos o carpetas, si no tiene permiso, el resultado del comando le dirá eso. Tendrá que cambiar los permisos de la carpeta en la que está copiando (Capítulo 3.14) o copiar los archivos con privilegios de superusuario (Capítulo 3.12).

Para saber más

Consulte también los Capítulos 3.6 y 3.11.

3.6 Renombrar un archivo o carpeta
Problema

Desea cambiar el nombre de un archivo mediante una sesión de terminal.

Solución

Utilice el comando mv para renombrar archivos y directorios.

Observaciones

El comando mv (mover) se utiliza de manera similar al comando cp, a excepción de que el archivo o carpeta que se está moviendo simplemente se renombra en lugar de hacer un duplicado.

Por ejemplo, para simplemente renombrar un archivo de my_file.txt a my_file.rtf, utilice el comando:

$ mv my_file.txt my_file.rtf

Cambiar el nombre de un directorio es igual de sencillo y no necesita la opción recursiva -r que usó al copiar.

Para saber más

Consulte también los Capítulos 3.5 y 3.11.

3.7 Editar un archivo
Problema

Desea ejecutar un editor desde la línea de comandos para cambiar un archivo de configuración.

Solución

Utilice el editor nano incluido con la mayoría de las distribuciones de Raspberry Pi.

Observaciones

Para usar nano simplemente escriba el comando nano seguido del nombre o ruta del archivo que quiere editar. Si el archivo no existe, se creará cuando lo guarde desde el editor. Sin embargo, esto solo ocurrirá si tiene permisos de escritura en el directorio donde intente crear el archivo.

Desde su directorio de inicio escriba el comando nano my_file.txt para editar o crear el archivo nano my_file.txt. La Figura 3.4 muestra nano en acción.

Figura 3.4. Editar un archivo con nano.

No puede utilizar el ratón para situar el cursor; utilice las teclas de flecha en su lugar.

El área de la parte inferior de la pantalla muestra una serie de comandos a los que puede acceder manteniendo pulsada la tecla Ctrl y la letra indicada. La mayoría de estos no son muy útiles. Los que probablemente utilice más son:

Ctrl-X

Salir. Se le pedirá que guarde el archivo antes de salir de nano.

Ctrl-V

Siguiente página. Piense en ello como una flecha apuntando hacia abajo. Esto le permite moverse una pantalla cada vez a través de un archivo grande.

Ctrl-Y

Página anterior.

Ctrl-W

Dónde está. Esto le permite buscar un trozo de texto.

También hay algunas opciones del tipo cortar y pegar, pero en la práctica es más fácil utilizar el portapapeles normal desde el menú al que se accede con un clic derecho.


Figura 3.5. Usar el portapapeles en nano.

Usar este portapapeles también le permite copiar y pegar texto entre otras ventanas de su navegador.

Cuando esté listo para guardar los cambios en el archivo y salir de nano, utilice el comando Ctrl-X. Escriba Y para confirmar que desea guardar el archivo. nano muestra el nombre del archivo como el nombre predeterminado para guardarlo. Pulse Intro para guardar y salir.

Si desea abandonar los cambios que ha realizado, introduzca N en lugar de Y.

Para saber más

Los editores son cuestión de gustos personales. Muchos editores están disponibles para Linux y funcionan perfectamente en Raspberry Pi. El editor vim (vi mejorado) tiene muchos fans en el mundo de Linux. Está incluido también en las distribuciones populares de Raspberry Pi. Sin embargo, no es un editor fácil para principiantes. Puede ejecutarlo de la misma manera que nano, pero utilizando el comando vi en lugar de nano. Hay más detalles sobre el uso de vim en http://newbiedoc.sourceforge.net/text_editing/vim.html.en.

3.8 Visualizar el contenido de un archivo
Problema

Desea visualizar el contenido de un archivo pequeño sin editarlo.

Solución

Use el comando cat o more para ver el archivo. Por ejemplo:

$ more myfile.txt

This file contains

some text

Observaciones

El comando cat muestra todo el contenido del archivo, aunque sea más largo de lo que cabría en la pantalla.

El comando more solo muestra una pantalla de texto a la vez. Pulse la barra espaciadora para mostrar la siguiente pantalla.

Para saber más

También puede utilizar cat para concatenar (unir) un número de archivos (Capítulo 3.31).

Otro comando popular relacionado con more es less. less es como more a excepción de que permite moverse hacia atrás en el archivo y también hacia delante.

3.9 Crear un archivo sin utilizar un editor
Problema

Desea crear un archivo de una línea sin tener que utilizar un editor.

Solución

Utilice los comandos > y echo para redirigir lo que escribe en la línea de comandos a un archivo. Por ejemplo:

$ echo "file contents here" > test.txt

$ more test.txt

file contents here


El comando > sobrescribe un archivo existente, así que úselo con precaución.

Observaciones

Puede ser útil para crear un archivo.

 

Para saber más

Para usar el comando more para ver archivos sin usar un editor, consulte el Capítulo 3.8. Para usar > para capturar otros tipos de salida del sistema, consulte el Capítulo 3.30.

3.10 Crear un directorio
Problema

Desea crear un nuevo directorio utilizando el terminal.

Solución

El comando mkdir creará un nuevo directorio.

Observaciones

Para crear un directorio, utilice el comando mkdir. Pruebe el siguiente ejemplo:

$ cd ~

$ mkdir my_directory

$ cd my_directory

$ ls

Debe tener permiso de escritura en el directorio en el que intenta crear el nuevo directorio.

Para saber más

Para obtener información general sobre el uso del terminal para navegar por el sistema de archivos, véase el Capítulo 3.4.

3.11 Eliminar un archivo o un directorio
Problema

Desea eliminar un archivo o un directorio utilizando el terminal.

Solución

El comando rm (eliminar) borrará un archivo o directorio y su contenido. Debe ser utilizado con extrema precaución.

Observaciones

Eliminar un solo archivo es simple y seguro. El siguiente ejemplo eliminará el archivo my_file.txt del directorio personal:

$ cd ~

$ rm my_file.txt

$ ls

Debe tener permisos de escritura en el directorio en el que está intentando realizar la eliminación.

También puede utilizar el comodín * para eliminar archivos. Este ejemplo eliminará todos los archivos que comiencen por my_file. en el directorio actual:

$ rm my_file.*

También puede eliminar todos los archivos del directorio escribiendo:

$ rm *

Si desea eliminar de manera recursiva un directorio y todo su contenido, incluidos los directorios que contiene, puede utilizar la opción -r:

$ rm -r mydir


Al eliminar archivos desde una ventana de terminal, recuerde que no tiene la red de seguridad de una papelera de reciclaje desde la que se pueden recuperar archivos eliminados. Además, en términos generales, no se le dará la opción de confirmar; los archivos se eliminarán inmediatamente. Esto puede ser totalmente devastador si se combina con el comando sudo (Capítulo 3.12).

Para saber más

Consulte también el Capítulo 3.4.

Si le preocupa la eliminación accidental de archivos o carpetas, puede forzar el comando rm mediante la configuración de un alias de comando (Capítulo 3.35).

3.12 Realizar tareas con privilegios de superusuario
Problema

Algunos comandos no funcionan porque no tiene suficientes privilegios. Necesita ejecutar comandos con privilegios de superusuario.

Solución

El comando sudo (Super User DO) le permite realizar acciones con privilegios de superusuario. Simplemente debe prefijar el comando con sudo.

Observaciones

La mayoría de las tareas que desea realizar en la línea de comandos normalmente se pueden realizar sin privilegios de superusuario. Las excepciones más comunes aparecen cuando se instala un nuevo software o se editan archivos de configuración.

Por ejemplo, si intenta usar el comando apt-get update, recibirá varios mensajes de permiso denegado:

$ apt-get update

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)

E: Unable to lock directory /var/lib/apt/lists/

E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)

E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?

El mensaje del final —are you root?— le da juego. Si ejecuta el mismo comando con el prefijo sudo, el comando funcionará correctamente:

$ sudo apt-get update

Get:1 http://mirrordirector.raspbian.org wheezy InRelease [12.5 kB]

Hit http://archive.raspberrypi.org wheezy InRelease

Get:2 http://mirrordirector.raspbian.org wheezy/main Sources [6,241 kB]

Hit http://archive.raspberrypi.org wheezy/main armhf Packages

Ign http://archive.raspberrypi.org wheezy/main Translation-en_GB

Ign http://archive.raspberrypi.org wheezy/main Translation-en

40% [2 Sources 2,504 kB/6,241 kB 40%]

Si tiene una gran cantidad de comandos para ejecutar como superusuario y no quiere tener que prefijar cada uno con sudo, puede usar el siguiente comando:

$ sudo sh

#

Tenga en cuenta cómo cambia el indicador de $ a #. Todos los comandos posteriores se ejecutarán como superusuario. Cuando desee volver a ser un usuario normal, introduzca el comando:

# exit

$

Para saber más

Para saber más sobre los permisos de archivos, véase el Capítulo 3.13. Para instalar el software utilizando apt-get, véase el Capítulo 3.17.

3.13 Entender los permisos de archivo
Problema

Ha visto caracteres extraños en algunos nombres de archivo cuando aparecen en la lista. Usted quiere saber lo que significan.

Solución

Para ver los permisos y la información de propiedad relativa a los archivos y directorios, utilice el comando ls con la opción -l.

Observaciones

Ejecute el comando ls -l y verá un resultado como el siguiente:

$ ls -l

total 16

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file1.txt

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file2.txt

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file3.txt

drwxr-xr-x 2 pi pi 4096 Apr 23 15:23 mydir

La Figura 3.6 muestra las diferentes secciones de la información del listado. La primera sección contiene los permisos. En la segunda columna, el número 1 indica cuántos archivos están involucrados. Este campo solo tiene sentido si la entrada de la lista es para un directorio; si es un archivo será casi siempre 1. Las dos entradas siguientes (ambos pi) son el propietario y el grupo del archivo. El tamaño de la entrada (la quinta columna) indica el tamaño del archivo en bytes. La fecha cambiará cada vez que se edite o cambie el archivo. Y, por último, la entrada final es el nombre real del archivo o directorio.

Figura 3.6. Permisos de archivo.

La cadena de permisos se divide en cuatro secciones (Tipo, Propietario, Grupo y Otros). La primera sección es el tipo de archivo. Si se trata de un directorio, será el carácter d; si es solo un archivo, la entrada será un -.

La siguiente sección de tres caracteres especifica los permisos de propietario para ese archivo. Cada carácter es un indicador que está o no. Así que si el propietario tiene permisos de lectura habrá una r en la primera posición del primer carácter. Si tiene permisos de escritura habrá una w en la segunda ranura. La tercera posición, que es

en este ejemplo, puede ser x si el archivo es ejecutable (un programa o script).

La tercera sección tiene los mismos tres indicadores, pero para cualquier usuario del grupo. Los usuarios pueden organizarse en grupos. Por lo tanto, en este caso, el archivo tiene un usuario pi y un grupo de propiedad pi. Si hubiera otros usuarios en el grupo pi, tendrían los permisos especificados ahí.

La sección final especifica los permisos para cualquier otro usuario que no sea pi ni del grupo pi.

Dado que la mayoría de la gente solo utilizará Raspberry Pi como usuario pi, los permisos de mayor interés están en la primera sección.

Para saber más

Para cambiar los permisos de archivo véase el Capítulo 3.14.

3.14 Cambiar los permisos de archivo
Problema

Necesita cambiar los permisos en un archivo.

Solución

El comando chmod se utiliza para modificar los permisos de archivo.

Observaciones

Las razones más comunes por las que puede que desee cambiar los permisos de archivo son tener que editar un archivo con permiso de solo lectura y darle a un archivo permisos de ejecución para que pueda ejecutarse como un programa o un script (secuencia de comandos).

El comando chmod le permite añadir o quitar permisos a un archivo. Hay dos sintaxis para hacer esto; una requiere el uso de octal (base 8) y el otro está basado en texto. Utilizaremos el método de texto, que es más fácil de entender.

El primer parámetro de chmod es el cambio que se va a realizar, y el segundo el archivo o carpeta a la que debe aplicarse. El parámetro de cambio toma la forma del ámbito de permiso (+, –, = para añadir, quitar y establecer, respectivamente) y, a continuación, el tipo de permiso.

Por ejemplo, el siguiente código dará derechos de ejecución (x) al archivo para el propietario del archivo file2.txt.

$ chmod u+x file2.txt

Si ahora enumeramos el directorio, podemos ver que el permiso x se ha añadido:

$ ls -l

total 16

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file1.txt

-rwxr--r-- 1 pi pi 5 Apr 24 08:08 file2.txt

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file3.txt

drwxr-xr-x 2 pi pi 4096 Apr 23 15:23 mydir

Si queremos agregar permisos de ejecución para el grupo u otros usuarios, podríamos usar g y o, respectivamente. La letra a añadirá el permiso a todos.

Para saber más

Para obtener más información sobre los permisos de archivo consulte el Capítulo 3.13. Véase el Capítulo 3.15 para cambiar la propiedad del archivo.

 

3.15 Cambiar la propiedad del archivo
Problema

Quiere cambiar la propiedad de un archivo.

Solución

El comando chown (cambio de propietario) se utiliza para modificar la propiedad de un archivo o directorio.

Observaciones

Como hemos descubierto en el Capítulo 3.13, cualquier archivo o directorio tiene un propietario y un grupo asociado a él. Puesto que la mayoría de los usuarios de Raspberry Pi solo tendrán el usuario pi, no necesitamos preocuparnos de los grupos.

De vez en cuando, encontrará archivos en su sistema que han sido instalados con un usuario diferente a pi. Si este es el caso, puede cambiar la propiedad del archivo utilizando el comando chown.

Para cambiar el propietario de un archivo utilice chown seguido del nuevo propietario y grupo, separados por dos puntos, y después el nombre del archivo.

Probablemente verá que necesita privilegios de superusuario para cambiar la propiedad. En este caso prefije el comando con sudo (Capítulo 3.12).

$ sudo chown root:root file2.txt

$ ls -l

total 16

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file1.txt

-rwxr--r-- 1 root root 5 Apr 24 08:08 file2.txt

-rw-r--r-- 1 pi pi 5 Apr 23 15:23 file3.txt

drwxr-xr-x 2 pi pi 4096 Apr 23 15:23 mydir

Para saber más

Para obtener más información sobre los permisos de archivo, consulte el Capítulo 3.13. También puede consultar el Capítulo 3.14 para cambiar los permisos de archivo.