LINUX GNU BLOG

Software libre y diseño web
Nov242013

Conceptos básicos de la consola de GNU/Linux, trabajando con ficheros

consola

Este es un artículo dedicado a todos aquellos que hace poco que habéis llegado a GNU/Linux y/o no tenéis práctica con la tan temida consola. Voy a intentar explicar de forma fácil algunos conceptos básicos y como realizar las tareas mas comunes con la consola.

1. El directorio de trabajo

Al abrir la consola esta se situará en un directorio concreto, normalmente suele ser en el home del usuario que la abre. Por ejemplo, si nuestro usuario se llama “juan” y abre una consola, estará situado en /home/juan. Pues bien el directorio en el que está situada la consola en cada momento es lo que llamaremos directorio de trabajo.

2. Saber cual es nuestro directorio de trabajo

Para saberlo, tan solo hay que usar el comando pwd, este nos devolverá el directorio de trabajo actual del siguiente modo:

[juan@juan-pc ~]$ pwd
/home/juan
[juan@juan-pc ~]$

3. Cambiar el directorio de trabajo actual

Para hacer esto se usa un comando llamado cd. Por ejemplo, si queremos ir a la carpeta imágenes situada en el directorio de trabajo actual lo haríamos del siguiente modo:

[juan@juan-pc ~]$ cd imágenes

El modo en que hemos cambiado de directorio, es mediante una ruta relativa, es decir, le hemos dicho a la consola que queremos ir a la carpeta imágenes, que se encuentra en el directorio de trabajo actual. Si quisiéramos ir a una carpeta que se encuentre en otro lugar, lo podemos hacer indicando la ruta completa. Por ejemplo, imaginemos que estamos en /home/juan y queremos ir a /etc, podemos hacerlo de dos formas, indicando una ruta relativa al directorio de trabajo actual (usamos .. para “subir” un directorio):

[juan@juan-pc ~]$ cd ../../etc

O también podemos hacerlo indicando la ruta completa:

[juan@juan-pc ~]$ cd /etc

Para gustos colores, cada uno es libre usar el modo que quiera para ir de un directorio a otro, habrá situaciones en las que será mas cómodo indicar una ruta relativa y otras en las que será mejor usar la ruta completa.

4. Obtener un listado de los ficheros que hay en un directorio

El comando ls, nos será de mucha ayuda en este caso, si ponemos simplemente ls, obtendremos un listado de los ficheros y directorios que hay en el directorio actual, pero también podemos indicarle la ruta del directorio que queremos ver. Por ejemplo, imaginemos que estamos en /home/juan, para ver los ficheros y directorios que contiene lo podemos hacer de este modo:

[juan@juan-pc ~]$ ls

O también de este otro:

[juan@juan-pc ~]$ ls /home/juan

5. Ver el contenido de un fichero

Para esta tarea usaremos el comando cat, tan solo hay que indicarle que fichero queremos ver. Por ejemplo, estamos en /home/juan y queremos ver el contenido del fichero /etc/fstab, lo haríamos así:

[juan@juan-pc ~]$ cat /etc/fstab

6. Eliminar un fichero

En este caso el comando es rm, tan solo hay que especificar a continuación el nombre del archivo que queremos eliminar. Por ejemplo, estamos en /home/juan y queremos eliminar la imagen /home/juan/imágenes/basura.jpg, lo haríamos del siguiente modo:

[juan@juan-pc ~]$ rm imágenes/basura.jpg

7. Eliminar una carpeta

El comando para eliminar una carpeta es completamente análogo a rm (para eliminar ficheros), se trata de rmdir. Por ejemplo, si estamos en /home/juan y queremos eliminar la carpeta /home/juan/ficheros temporales

[juan@juan-pc ~]$ rmdir ficheros\ temporales

Algunos habréis notado que el nombre de la carpeta tiene un espacio, eso puede ser un problema a la hora de escribir la ruta, pues no se aceptan espacios, el modo de hacerlo es anteponer una barra inversa justo antes del espacio, como se puede ver en el ejemplo.

8. Obtener derechos de super usuario

En GNU/Linux, para editar los ficheros del sistema es necesario tener permisos de super usuario, para ello se usa el comando su, si estamos en Ubuntu, será sudo su. Después de introducir ese comando se nos pedirá la contraseña de super usuario o, en el caso de Ubuntu, la contraseña de nuestro usuario, tras eso, ya tendremos permisos de super usuario y lo podremos saber porque en vez de un dolar al principio de la línea, habrá una almohadilla. Por ejemplo:

[juan@juan-pc ~]$ su
Contraseña:
[root@juan-pc juan]# 

Hay que tener en cuenta que al introducir la contraseña, esta no se verá en pantalla, hay que hacerlo “a ciegas”.

9. Editar un fichero de texto

A veces es necesario editar algunos ficheros del sistema, para ello se requiere tener permisos de super usuario y lo más “cómodo” es hacer desde una consola con permisos de super usuario. Para editar ficheros desde consola hay multitud de comandos, voy a explicar como usar nano. Imaginemos que queremos editar el fichero /et/fstab, lo haríamos del siguiente modo.

Abrimos el editor nano indicándole que queremos edita el fichero /etc/fstab:

[root@juan-pc juan]# nano /etc/fstab

A continuación podremos usar el cursor para movernos por el fichero y editarlo. Al terminar, pulsamos Ctrl+O y Enter para guardar los cambios y Ctrl+X para salir del editor.

Por ahora esto es todo, acepto propuestas para hablar sobre otras tareas interesantes. Por último, a continuación os dejo algunos artículos relacionados que podrían ser de utilidad:

Política de comentarios

Dada la importancia de los comentarios como espacio de participación, te pedimos por favor que leas detenidamente y cumplas con las siguientes normas de participación.

16 respuestas para “Conceptos básicos de la consola de GNU/Linux, trabajando con ficheros

aldobelus

Hola. Me gusta el blog, lo acabo de descubrir a pesar de llevar unos años en esto de GNU.
Te quiero comentar sobre lo de sudo su. Según tengo entendido, es mejor “hacerse” superusuario con el comando sudo -i. Al menos a mí me resulta bien desde que lo hago. Esta idea la encontré en Ubuntu-guía, donde Juanetebitel comenta:

Con este comando cargamos una shell de root, y lo más importante, eliminamos las variables de entorno del usuario y cargamos las del root, cosa que no pasa con “sudo -s”, que si bien nos da una shell de root, no elimina las variables del usuario.

Y a mí me parece lógico. Saludos


Yoyo

Buen post, Elías.

Por cierto, @aldobelus

Yo, en distros sin root activado siempre me logeaba como root con sudo -s, no conocía lo de sudo -i y veo que llevas razón.

Acá hice la prueba en mi Manjaro, primero con sudo -i luego sudo -s y finalmente, como Manjaro si trae la cuenta root activada, con su – que siempre uso para logearme como root http://i.imgur.com/nv044PG.png

Yo en distros con root activado siempre me logeo para ser root con su – (con guión detrás de su) en vez de con su solo. Si le añades el guión es lo mismo que con sudo -i

Gracias por el apunte y si puedes pasar el link de juanetebitel te lo agradecería

Saludos!


Aldo Belus

Yoyo, aquí tienes el enlace por el que preguntabas. También está este otro, que no tiene desperdicio, aunque puede uno acabar mareado de tanto “sudar”:-)!


Yoyo

@AldoBelus

Gracias 😉


Elías R.M.

Hola aldobelus,

Gracias por tu comentario, es muy instructivo.

Hay dos razones por las que he optado por mantener las variables de entorno.

La primera es por simplicidad. Hay que tener en cuenta que este post está dedicado a principiantes y se agradece que los comandos sean lo mas simples posible.

Y la segunda, comodidad. Si hacemos su -, nos veremos trasladados al home de root, entre otras cosas, y eso puede obligarnos a cambiar de directorio para volver al lugar en el que estábamos antes de solicitar permisos de super usuario. De nuevo, creo que es mejor mantener las variables de entorno, sobretodo para principiantes.

Saludos


Liamngls

Pues yo siempre uso sudo seguido del usuario y el comando, para cambiar la shell como decís lo que hago es abrir directamente un terminal de root pero no suelo hacerlo, no sé por qué xD


Gibran Barrera

yo igual en Debian esta opción no esta marcada por defecto pero con editar /etc/sudoers y agregar tu usuario y todos los privilegios vasta

root ALL=(ALL) ALL
Tu_usuario ALL=(ALL) ALL


Elías R.M.

Hola Gibran Barrera,

No soy nada partidario de usar sudo y mucho menos de configurarlo como propones (otorgándole todos los permisos).

Ese comando, tras la primera ejecución, en la que pide la contraseña, otorga un periodo de gracia, durante el cual no volverá a solicitarla. Durante ese periodo, cualquier script hecho con malas intenciones puede apoderarse por completo del sistema, obteniendo privilegios de super usuario […]

Saludos


Liher

En lo del periodo de gracia seria mejor que no existiera, habria mas seguridad


José Miguel

Es lo que hay, por eso nunca lo uso.


dmacias

Yo soy como Liamngls, rara vez uso la terminal como root sólo para lo estrictamente necesario, para lo demás sudo


Gibran Barrera

Solo falta la parte de la actualización de la distro, un poco de expresiones regulares y listo novatos al dominio del terminal.


Elías R.M.

Hola de nuevo Gibran Barrera,

Tomo nota de lo que propones, ampliaré el post.

Muchas gracias.

Saludos


Guizans

Hola.

Tengo una pequeña duda con el comando “ls”. ¿Hay alguna forma de que si hay muchos archivos en la carpeta, me salgan de otra forma que no sea en listado? Es que me resulta muy incómodo tener que usar el ratón para hacer scroll.

Muchas gracias.


Elías R.M.

Hola Guizans,

Puedes probar con ls -m, así verás la lista de ficheros uno detrás del otro y separados por comas. De este modo puede resultar mas difícil de leer, pero no tendrás que hacer tanto scroll.

También puedes usar ls -C, que muestra el listado en varias columnas, aprovecha bien el espacio y es mas legible.

Saludos


Deja un comentario

Tu dirección de correo electrónico no será publicada.