Diferencia entre revisiones de «Manual Linux»

De Wiki de BandaAncha.eu
Saltar a: navegación, buscar
(Qué es GNU/Linux (un poco de historia))
(Particiones GNU/Linux)
Línea 78: Línea 78:
 
*........
 
*........
 
*/dev/sdb: Disco duro SCSI nr.2.
 
*/dev/sdb: Disco duro SCSI nr.2.
*/dev/sdb1: Partición primaria 1 en /dev/sdb
+
*/dev/sdb1: Partición primaria 1 en /dev/sdb metete el dedo en el culo
 
*........
 
*........
  
Línea 193: Línea 193:
  
 
Quizás lo más complicado sea la primera parte, ya que la forma para cambiar los privilegios de rwx se pueden hacer de varias formas. La forma más común para cambiar los permisos de rwx será mencionada después de explicar los comandos debido a la extensión de esta.
 
Quizás lo más complicado sea la primera parte, ya que la forma para cambiar los privilegios de rwx se pueden hacer de varias formas. La forma más común para cambiar los permisos de rwx será mencionada después de explicar los comandos debido a la extensión de esta.
 
  
 
== Comandos básicos para usar GNU/Linux ==
 
== Comandos básicos para usar GNU/Linux ==

Revisión del 10:59 16 oct 2009

Sobre este documento
Tipo Manual (How To)
Categoria Linux
Plataforma All GNU/Linux
Dificultad Tux

Bienvenidos al fascinante mundo de GNU/Linux y a todas las posibilidades que este sistema operativo puede llegar a brindaros tanto a nivel personal como empresarial.

Llevo usando como sistema operativo en mis ordenadores GNU/Linux (concretamente, la distribución GNU/Linux Debian) desde el año 1999 aunque ya había tenido contacto con este sistema algunos años atrás. Al igual que muchos de vosotros que estáis leyendo estas lineas ahora cuando veía a muchos de mis amigos manejando “Linux” me quedaba perplejo pensando lo difícil que era, hasta que me explicaron las cosas básicas y me quedé sorprendido con lo sencillo y lógico que es todo.

En este manual os enseñaré lo más básico para manejarse al menos con algo de soltura desde la consola de comandos, ya que el entorno gráfico es muy similar a MS Windows, para crear, eliminar, editar archivos e instalar y desinstalar programas.

Muchos de los que lleváis manejando ordenadores desde el viejo MS-DOS os daréis cuenta de que hay cosas que os suenan y a aquellos que no llevan tanto no os preocupéis, muchos de los comandos que veréis son sencillos de recordar, solamente con un poco de ganas que le pongamos descubriremos que el miedo que le teníamos a la consola era irracional (creerme, yo pasé por esa época también :D).


== Qué es GNU/Linux (un poco de historia) ==una puta mierda

GNU/Linux es el término empleado para referirse al sistema operativo Unix-like que utiliza como base las herramientas de sistema de GNU y el núcleo Linux. Sin embargo, por economía del lenguaje se suele utilizar más el término Linux para referirse a este sistema operativo, a pesar de que Linux sólo es el núcleo del sistema.

Las variantes de estos sistemas se denominan distribuciones GNU/Linux (o distribuciones Linux) y su objetivo es ofrecer una edición que cumpla con las necesidades de determinado grupo de usuarios. Algunas distribuciones son especialmente conocidas por su uso en servidores o supercomputadoras no obstante, es posible instalar Linux en una amplia variedad de ordenadores, ya sean domésticos o portátiles.

Pero vamos a explicar algo de la historia de GNU/Linux:

Fue en 1983 cuando Richard Stallman inició el Proyecto GNU, con el propósito de crear un sistema operativo similar a UNIX y los estándares POSIX (Portable Operating System Interface; la X viene de UNIX). Dos años más tarde, creó la Fundación del Software Libre (FSF) y desarrolló la Licencia pública general de GNU, para dar un marco legal que permitiera difundir el software. De este modo el software fue desarrollado muy rápidamente, y por muchas personas. A corto plazo, se desarrolló una multiplicidad de programas, de modo que a principios de los 90 había casi bastante software como para crear un sistema operativo completo, sin embargo todavía le faltaba un núcleo sobre el que ejecutarse.

De eso debía encargarse el proyecto GNU Hurd, pero Hurd demostró desarrollarse muy inactivamente, porque encontrar y reparar errores era muy difícil, debido a las características técnicas del diseño, esto dejó un nicho crítico abierto, que Linux llenaría muy pronto.

Y fue en 1992 donde Linus Torvalds, un joven de Helsinki, trajo consigo el núcleo que había estado haciendo por aburrimiento, intentando hacer una copia del sistema operativo Minix que era el que usaba. Desde ese momento empezaron a surgir en el mundo las distribuciones GNU/Linux y hasta el día de hoy muchas han caído y otras muchas han surgido para cubrir el hueco que dejaban.

Si alguien lo desea, puede consultar la linea del tiempo de GNU/Linux en este enlace GNU/Linux Time line


Diferencias entre GNU/Linux y Microsoft Windows

Muchos os estaréis preguntando ya a estas alturas que hace a GNU/Linux tan diferente de otros sistemas operativos, o porque mucha gente se empeña en considerarlo EL sistema operativo por encima de otros. En esta sección explicaré las diferencias entre MS Windows (por regla general el sistema operativo más popular y usado) y GNU/Linux, intentaré ser objetivo en este análisis... pero no puedo prometer nada :P

1º) Precio Sé que muchos de los que estáis leyendo esto lo único que tengáis legal en el ordenador será el mIRC y el navegador Netscape (quien lo use) o Mozilla-Firefox... pero seamos sinceros, en teoría usar MS Windows supondría el gasto de una licencia de uso (unos 150 euros en el mejor de los casos).

2º) Personalización MS Windows es idéntico, a nivel del programa, en tu ordenador, el de tu amigo, el de un inglés y el del negrito congoleño. Cuando se instala MS Windows se cargan un montón de características que puede que no te interesen y que solamente sobrecargan el sistema, además de que realiza pocos ajustes para funcionar en tu ordenador. GNU/Linux es todo lo contrario, en un principio carga únicamente lo que necesita para funcionar y luego es el usuario el que se encarga de decirle que más necesita para que lo use, además se adapta al sistema que lo hospeda ya sea un ordenador 386 a un AMD Athlon 2800.

3º) Seguridad MS Windows es conocido entre los expertos por su falta de políticas de seguridad, por mucho que lo intentes siempre hay alguna rebuscada forma para saltarte las restricciones que se pongan al pc (la magnifica librería rundll32 es quizás la más socorrida). GNU/Linux tiene un mejor sistema de restricciones y bloqueos que hace que los usuarios no puedan comprometer la seguridad del sistema.

4º) Virus/Malware En esto muchos no se ponen de acuerdo, si bien es cierto que hay algunos virus para GNU/Linux la mayoría están desarrollados para MS Windows por ser el sistema mayoritario, pero como vimos en el punto 3 mucha culpa de que los sistemas MS Windows se infecten son por culpa del modo de funcionar del sistema operativo.

5º) Programas En esto suele salir perdiendo GNU/Linux, como MS Windows es el sistema más popular la mayoría de las aplicaciones suelen ser para él, pero gracias a mucha gente hay formas de hacerlos funcionar bajo GNU/Linux cuando no hay directamente una instalación válida para este sistema operativo.

Se podrían poner muchas más cosas, o expandir algunas de las ya escritas pero solamente quiero daros unas pequeñas ideas, si deseáis buscar más diferencias seguir leyendo este manual, aprender lo básico del sistema y luego practicar con alguno de los muchos Live-CD que existen en estos momentos.

Particiones GNU/Linux

Al contrario que MS-DOS, Windows, las diferentes particiones en GNU/Linux no se denominan C:, D:, E:, ...., etc, existe una denominación propia:

En los discos IDE

  • /dev/hda: Disco duro IDE como master en el canal IDE 1.
  • /dev/hda1: Partición primaria 1 en /dev/hda
  • /dev/hda2: Partición primaria 2 en /dev/hda
  • .....
  • /dev/hdb: Disco duro IDE como esclavo en el canal IDE 1.
  • /dev/hdb1: Partición primaria 1 en /dev/hdb
  • ........
  • /dev/hdc: Disco duro IDE como master en el canal IDE 2.
  • /dev/hdc1: Partición primaria 1 en /dev/hdc
  • ........
  • /dev/hdd: Disco duro IDE como esclavo en el canal IDE 2.
  • /dev/hdd1: Partición primaria 1 en /dev/hdd
  • ........

En discos SCSI (Memorias USB, discos SATA...)

  • /dev/sda: Disco duro SCSI nr.1.
  • /dev/sda1: Partición primaria 1 en /dev/sda
  • ........
  • /dev/sdb: Disco duro SCSI nr.2.
  • /dev/sdb1: Partición primaria 1 en /dev/sdb metete el dedo en el culo
  • ........

En GNU/Linux cada partición puede representar una carpeta del sistema (que veremos en el punto 2.1) así por ejemplo hda1 puede ser asignado a / (raíz o root), hda2 a /home (carpetas de usuarios). Esta forma de asignar a cada partición un directorio de sistema tiene una ventaja enorme.

Contemplemos el caso de MS Windows, y que por accidente falla el sistema. Si no he tenido la precaución de ir guardando todos mis datos en una partición aparte estos se perderán. Si es mi usuario (la carpeta de Documents and Settings) el que falla tampoco podría guardar nada del resto del sistema ya que no seria accesible.

En cambio con GNU/Linux tenemos soluciones para estos problemas, en la mayoría de las instalaciones la partición /home (donde se guardan los usuarios) no depende del sistema, así que podríamos reinstalar nuestro GNU/Linux sin miedo a perder nuestros datos, y en caso de que sea mi usuario el que falle, no pasa nada, ya que el sistema no se verá comprometido y seguirá funcionando igual para el resto de usuarios. Por eso se recomienda al menos tener 3 particiones básicas en nuestro GNU/Linux: /boot (arranque), / (raíz), /home (usuarios).

Este manual en ingles quizás os pueda ayudar algo más al respecto de las particiones.


Sistema de archivos

Todos estamos familiarizados con los nombres FAT, FAT32 y más recientemente NTFS. Bien, estos nombres ocultan lo que se llama un “sistema de archivo” es decir, la forma que el sistema operativo almacena la información dentro del disco duro.

GNU/Linux y los Unix-like tienen un sistema de archivos, comunmente podemos destacar los siguientes por ser los más usados:

Ext2 second extended filesystem o "segundo sistema de archivos extendido", empezó a funcionar en enero de 1993. El gran problema que tiene Ext2 es que no dispone de journaling (registro por diario) de cambios realizados en archivos, que podría desestabilizar el sistema en caso de reinicio inesperado del sistema.

Ext3 third extended filesystem o "tercer sistema de archivos extendido" vio la luz oficialmente en el año 2001 y desde entonces es el sistema de archivos más usado por defecto en las distribuciones GNU/Linux. Al contrario que Ext2 si dispone de journaling, aunque su velocidad y escalabilidad es menor que sus competidores, como JFS, ReiserFS o XFS, tiene la ventaja de permitir actualizar de ext2 a ext3 sin perder los datos almacenados ni formatear el disco y un menor consumo de CPU.

Ext4 fourth extended filesystem o "cuarto sistema de archivos extendido" ya está entre nosotros oficialmente desde 2008 y reporta muchas ventajas sobre Ext3 como: soporte de volúmenes de hasta 1024 PiB, menor uso del CPU, mejoras en la velocidad de lectura y escritura.

ReiserFS vio la luz en 2001 y tiene el orgullo de ser el primer sistema de ficheros con journaling en ser incluido en el núcleo estándar Linux. Al igual que Ext3, ofrece un sistema de journaling y es mucho más rápido en labores de lectura-escritura que este.

SWAP es lo que se conoce como un área de intercambio, es una zona del disco (un fichero en MS Windows o partición en los sistemas Unix-Like) que se usa para guardar las imágenes de los procesos que no han de mantenerse en memoria física. Aunque puede funcionar bien sin tener ningún área de intercambio, es muy recomendable crearla. La razón es que siempre es bueno quitar de la memoria los procesos poco usados, ya que eso permite usar la RAM para otras tareas, como por ejemplo la memoria caché de las operaciones de entrada/salida, como el acceso al disco.


Estructura de directorios de GNU/Linux

Todos sabemos como guarda las cosas MS Windows (bueno, realmente algunas de ellas), el sistema se instala en la carpeta Windows, por defecto los programas en Archivos de Programa, los documentos del usuario en Documents and Settings\Usuario, etc. El problema es que estas estructuras de archivos de MS Windows cambian según la versión que estemos usando, lo que puede llegar a confundir al usuario hasta que se acostumbre después de un tiempo.

GNU/Linux tiene una estructura de archivos llamada Estándar de jerarquía de ficheros (FHS - Filesystem Hierarchy Standard), esto quiere decir que sea cual sea la distribución GNU/Linux que estemos usando, nos encontraremos con la misma estructura de archivos pudiendo incluso compartir esos directorios entre diferentes distribuciones sin temor a que se pierdan o corrompan los datos por un uso diferente de ellos.

La estructura básica de los directorios GNU/Linux es la siguiente:

  • /bin/ contiene programas básicos del sistema ejecutables
  • /boot/ contiene los ficheros necesarios para el arranque del sistema.
  • /dev/ contiene los ficheros de dispositivos reconocidos por el sistema (disco duro, lectores cd/dvd, sonido, video…).
  • /etc/ contiene ficheros y directorios de configuración específicos de nuestro sistema
  • /home/ directorios personales de los usuarios. Encontraremos una carpeta por cada usuario que haya en el sistema operativo.
  • /lib/ aquí se encuentran las librerías compartidas y los módulos del kernel.
  • /media/ en este directorio se montan los dispositivos como el CD-ROM, dispositivos USB, etc.
  • /opt/ directorio reservado para instalar aplicaciones.
  • /sbin/ contiene los ficheros binarios ejecutables del sistema operativo, en este caso al contrario que /bin/ estos suelen ser para el administrador.
  • /srv/ contiene datos específicos que son servidos por el sistema servidor.
  • /tmp/ directorio de archivos temporales.
  • /usr/ en este directorio se encuentran la mayoría de los archivos del sistema, aplicaciones, librerías, manuales, juegos… Es un espacio compartido por todos los usuarios del sistema.
  • /var/ contiene archivos administrativos y datos que cambian frecuentemente (logs, bases de datos, colas de impresión…)
  • /root/ directorio de root (administrador del sistema).
  • /proc/ directorio especial donde se almacenan datos del kernel e información sobre procesos.
  • /lost+found/ directorio especifico para archivos perdidos. Cada partición tiene el suyo propio independientemente.

Además podemos diferenciar los directorios en cuatro grupos:

Estáticos: /bin, /sbin, /opt, /boot, /usr/bin

Dinámicos: /var/mail, /var/spool, /var/run, /var/lock, /home

Compartibles: /usr/bin, /opt

No compartibles: /etc, /boot, /var/run, /var/lock

Más a fondo podemos encontrar los siguientes directorios, que pueden ser opcionales o específicos de ciertas distribuciones GNU/Linux:

  • /etc/opt/ ficheros de configuración utilizados por programas alojados dentro de /opt/
  • /etc/X11/ ficheros de configuración para el sistema X Window
  • /etc/sgml/ ficheros de configuración para SGML (Opcional)
  • /etc/xml/ ficheros de configuración para XML (Opcional)
  • /usr/bin/ comandos/programas binarios.
  • /usr/include/ ficheros de inclusión estándar (cabeceras de cabecera utilizados para desarrollo).
  • /usr/lib/ bibliotecas compartidas.
  • /usr/share/ datos compartidos independientes de la arquitectura del sistema. Imágenes, ficheros de texto, etc.
  • /usr/src/ códigos fuente
  • /usr/X11R6/ sistema X Window, versión 11, lanzamiento 6
  • /usr/local/ jerarquía terciaria para datos compartidos de solo lectura específicos del ordenador que los comparte.
  • /var/cache/ cache de datos de aplicaciones.
  • /var/crash/ depósito de información referente a caídas del sistema (Opcional)
  • /var/games/ datos variables de aplicaciones para juegos (Opcional)
  • /var/lib/ información de estado variable. Algunos servidores como MySQL y PostgreSQL almacenan sus bases de datos en directorios subordinados de éste.
  • /var/lock/ ficheros de bloqueo.
  • /var/log/ ficheros y directorios de registro del sistemas (logs).
  • /var/mail/ buzones de correo de usuarios (Opcional)
  • /var/opt/ datos variables de /opt/.
  • /var/spool/ colas de datos de aplicaciones.
  • /var/tmp/ ficheros temporales preservados entre reinicios.


Que esperar de los archivos y directorios en GNU/Linux

Antes de meteros en muchos berenjenales creo que lo más propio sería una pequeña explicación de lo que se puede esperar de un directorio o un archivo en los sistemas GNU/Linux.

En GNU/Linux todos los archivos y directorios tienen un permiso de lectura, escritura y ejecución asignado a un propietario y a un grupo de usuarios y solamente esas personas podrán interactuar con dicho archivo o directorio.

Más profundamente, imaginemos que tenemos una habitación totalmente cerrada y con sólo una puerta que tiene una hoja de papel en el centro, la puerta de esa habitación está cerrada con una llave. En principio solo nosotros podremos entrar en esa habitación ya que somos los propietarios de ella, podremos ver (permiso de lectura), escribir (permiso de escritura) y hacer un avioncito (permiso de ejecución) con ella.

Eventualmente podremos darle esa llave a un conjunto de amigos (grupo de usuarios) para que ellos hagan lo mismo que nosotros.

Esto sería la forma de ver que permisos tiene un archivo o directorio dentro de GNU/Linux:

-rw-rw-r-- worked worked 435 sep 4 11:38 dummie.txt
(1)        (2)    (3)    (4) (5)         (6)

Que es lo que quiere decir esto, la primera parte sería los permisos de lectura (r), escritura (w) y ejecución (x) que tiene el archivo diferenciándose en 3 partes: -propietario-grupo-otros. Es decir:

  • - (guión) De que se trata. Un guión significa archivo, una d directorio, l (ele) un enlace, b un enlace roto...
  • rw- El propietario puede leerlo y escribir en él, falta el permiso de ejecución
  • rw- El grupo de usuarios puede leerlo y escribir en él, falta el permiso de ejecución
  • r-- Los demás solamente pueden leerlo, faltan los permisos de escritura y ejecución

La segunda parte es el usuario a quien pertenece ese archivo (worked) y la tercera parte es el grupo de usuarios (worked), la cuarta y quinta parte es la información sobre el tamaño del archivo (435 kilobytes) y la fecha de modificación del archivo (4 de septiembre a las 11:38), la última parte es el nombre del archivo o directorio.

Quizás lo más complicado sea la primera parte, ya que la forma para cambiar los privilegios de rwx se pueden hacer de varias formas. La forma más común para cambiar los permisos de rwx será mencionada después de explicar los comandos debido a la extensión de esta.

Comandos básicos para usar GNU/Linux

Como os indiqué al inicio de este manual, os explicaré como usar los comandos básicos de la consola (lo que podríamos llamar MS-DOS) ya que la interfaz gráfica de GNU/Linux no dista mucho de la de MS Windows o MAC y la forma de usarla es idéntica (para facilitar el acercamiento , lo que es conocido como user-friendly).

Muchos de los comandos que explicaremos en esta sección pueden tener modificadores, parámetros que cambian la forma de actuar de un comando, los modificadores de cada comando estarán en cursiva para mejorar la comprensión.

Dividiré esta parte en comandos que pueden ser ejecutados por un usuario sin privilegios y el administrador de la distribución GNU/Linux, y pondré ejemplos de dichos comandos en cada caso para que veáis lo que muestra en cursiva.

En algunos casos podréis ver un asterisco (*) al lado de un comando, esto quiere decir que puede ser empleado tanto para archivos como para directorios indistintamente aunque aparecerá en ambas secciones, en cada una explicando la forma de actuar y los modificadores que emplean si los tienen.

Os aviso que algunos comandos pueden cambiar la forma de prompt (el mostrar datos en pantalla) pero aunque cambie la forma de presentarlos la ejecución y el resultado final será el mismo. Y desde luego no pondré todos y cada uno de los comandos que puede haber en una distribución de GNU/Linux, ya que algunas tienen sus propias aplicaciones para hacer tareas de administración, por eso solamente pondré y explicaré los comandos genéricos a todos las distribuciones.

En la lista de comandos podréis ver que algunos modificadores se encuentran entre corchetes ( [ ] )y separadas por una barra vertical ( | ), eso quiere decir que se ha de seleccionar una de las opciones que se encuentran disponibles dentro del comando.


Manejo de archivos (usuario | administrador)

cp * Es una abreviatura de "copy", realiza la copia de un archivo, permite el uso de comodines en el origen para realizar la copia. Los modificadores son opcionales.
  • -f Forzar la copia si el destino no puede ser abierto.
  • -p Preservar los privilegios del archivo.
  • -u Copiar únicamente si el archivo es más antiguo que el de destino.

~$ cp -f archivo /ruta/de/destino/

~$ cp -p * /ruta/de/destino/

~$ cp -fp /home/worked/dummie.txt /lost+found/

chmod * Es una abreviatura de “change mode”, cambia los permisos de ejecución, lectura, escritura de un archivo. Permite el uso de comodines.

~$ chmod u[+|-][r|w|x] archivo Se agregan eliminan permisos para propietario.

~$ chmod g[+|-][r|w|x] archivo Se agregan eliminan permisos para grupo.

~$ chmod u+rw-x dummie.txt

chown * Es una abreviatura de “change owner”, cambia el propietario de un archivo. Permite el uso de comodines.

~$ chown propietario:grupo archivo

~$ chown worked:nogroup dummie.txt

file Determina que tipo de archivo es examinando parte de su contenido. Permite el uso de comodines.

~$ file dummie.txt

find Hace una búsqueda de un archivo determinado dentro de una ruta o en toda la raíz del sistema y muestra su localización, permite el uso de comodines.

~$ find directorio -name archivo Buscaría un archivo dentro de un directorio.

~$ find -name archivo Buscaría un archivo en todo el disco.

~$ find /temp -name dummie.txt

head Muestra las primeras lineas de un archivo.
  • -n Donde N es el número de lineas que queremos que devuelva.

~$ head dummie.txt

~$ head -9 dummie.txt (mostrará nueve lineas)

ln * Abreviatura de "link", crea un enlace simbólico (acceso directo) de un archivo.

~$ ln -s origen destino

~$ ln -s /home/worked/dummie.txt /home/worked/d

more Muestra el contenido de un archivo.

~$ more dummie.txt

mv * Abreviatura de "move", tiene dos funciones: mover y renombrar archivos. Permite el uso de comodines.

~$ mv archivo /ruta/de/destino

~$ mv archivo nuevo_nombre

~$ mv dummie.txt /lost+found/ Mueve el fichero a /lost+found/

~$ mv dummie.txt Dummie.txt Renombra el archivo

rm * Abreviatura de "remove", elimina archivos, los modificadores son opcionales. Permite el uso de comodines.
  • -f Fuerza la eliminación del archivo

~$ rm dummie.txt

shred Al contrario que "rm" elimina un archivo de forma segura (no podrá ser recuperado).
  • -f Fuerza la eliminación del archivo
  • -u Sobreescribe el fichero con basura y luego lo borra

~$ shred -u dummie.txt

tail Muestra las últimas lineas de un archivo.
  • -f Lo hace de forma dinámica, mostrando los últimos cambios y necesitas terminarlo usando CONTROL+C

~$ tail dummie.txt

~$ tail -f dummie.txt


Manejo de directorios (usuario | administrador)

cd Es una abreviatura de "change directory".
  • - Sí, es un parámetro... es un truco para devolvernos al último directorio en el que hallamos estado.

~$ cd .. Retrocedemos un directorio ~$ cd /home/worked/directorio Vamos al directorio escrito

cp * Es una abreviatura de "copy", realiza la copia de un directorio, permite el uso de comodines en el origen para realizar la copia. Los modificadores son opcionales.
  • -f Forzar la copia si el destino no puede ser abierto.
  • -p Preservar los privilegios del archivo.
  • -r Copia recursiva, siguiendo la estructura de directorios del interior.

~$ cp -f directorio /ruta/de/destino/ ~$ cp -p * /ruta/de/destino/

~$ cp -fp /home/worked/* /lost+found/

chmod * Es una abreviatura de "change mode", cambia los permisos de ejecución, lectura, escritura de un archivo. Permite el uso de comodines.

~$ chmod u[+|-][r|w|x] directorio Se agregan eliminan permisos para propietario.

~$ chmod g[+|-][r|w|x] directorio Se agregan eliminan permisos para grupo.

~$ chmod u+rw-x /home/worked/directorio

chown * Es una abreviatura de "change owner", cambia el propietario de un archivo. Permite el uso de comodines.

~$ chown propietario:grupo directorio

~$ chown worked:nogroup /home/worked/directorio

ls Es una abreviatura de "list", lista el contenido de un directorio.
  • -al Muestra toda la información sobre archivos y directorios.

~$ ls -al /home/worked/

mkdir Es una abreviatura de "make directory", y sirve para crea un directorio.

~$ mkdir /home/worked/porno

pwd Nos muestra la ruta absoluta sobre la que estamos trabajando.

~$ pwd

rm * Abreviatura de "remove", elimina directorios, el modificador -f es opcional. Permite el uso de comodines.
  • -r Eliminación de un directorio.
  • -f Fuerza la eliminación del directorio si no está vacío.

~$ rm -r /home/worked/porno

rmdir Abreviatura de "remove directory", elimina un directorio previamente vaciado.

~$ rmdir /home/worked/porno


Otros comandos útiles (usuario | administrador)

df Abreviatura de "disk free", nos muestra el espacio libre en el disco.

~$ df

du Abreviatura de "disk used", nos muestra el espacio usado en el disco o de un directorio.
  • -h Muestra los resultados de forma entendible (usando MB, GB...)
  • -u No muestra el tamaño de los subdirectorios, pero los tiene en cuenta.

~$ du -hu /home/worked

free Nos muestra la memoria (tanto física como swap) que tenemos disponible y en uso.

~$ free

grep Podriamos decir que "grep" es un filtro para aquellos comandos que muestran demasiadas cosas en pantalla. Si al comando deseado añadimos "grep "patron"" solamente nos mostrará la linea donde se encuentre ese patrón solicitado.

~$ ps -aux | grep root

kill Mata un proceso o varios al tiempo por el identificador/es de este/os. (mirar "ps")
  • -9 Mata a lo bestia...
  • -15 Intenta que el proceso se cierre por si mismo.

~$ kill [-9|-15] identificador_proceso

logout Desconecta del sistema, o en caso de que estemos usando una cuenta aparte, desconecta esa cuenta (ver "su")

~$ logout

nano Es el editor de archivos por defecto en muchas de las particiones GNU/Linux, la forma de usarlo es sencilla, y el menú muy intuitivo.

~$ nano dummie.txt

netstat Con este comando miraremos las conexiones entrantes, salientes y en espera de la red que está realizando nuestro ordenador. Aunque tiene multitud de modificadores, el más común es "-an", aunque si deseais ver más podeis poner el modificador "--help".

~$ netstat -an

passwd Cambia la contraseña de nuestro usuario.

~$ passwd

ps Abreviatura de "processes", nos muestra todos los procesos del sistema en ejecución junto al PID (process identifier).
  • -a Todos los usuarios
  • -x Procesos sin control de terminal.
  • -u Usuario que lo lanzó y cuando.

~$ ps -aux

su Muchos dicen que es la abreviatura de "super user" (administrador), pero teniendo en cuenta que con este comando se pueden suplantar a otros usuarios del sistema yo prefiero conocerlo como "supplant user".

~$ su - Identificarse como administrador del sistema. ~$ su "usuario" Identificarse como otro usuario del sistema.

top Muestra los procesos del sistema de mayor a menor consumo.

~$ top

who Muestra los usuarios que están actualmente conectados al sistema.

~$ who


mount, orden de montaje de unidades

He dejado este comando para el final, ya que debido a las implicaciones que tiene quería dejar claro las partes anteriores (2.1, 2.2, 2.3) antes de ponerlo.

En GNU/Linux nada funciona si no está "montado" en el sistema, por mucho que el kernel (núcleo Linux) reconozca el dispositivo, si no le hemos dicho en que parte de la jerarquía de ficheros lo queremos usar no estará disponible.

Por ejemplo, si quisiéramos usar la disquetera tendríamos que usar el siguiente comando (asumiendo que la ruta de destino existiera):

~$ mount /dev/fd0 /media/disquetera

Con ese comando, la disquetera estaría disponible para leer/escribir/ejecutar cosas en ella en la ruta /media/disquetera. Como en el ejemplo de la disquetera se podría aplicar a todas las particiones que se usan en el sistema, ahora te estarás preguntando si esto también pasa con las "particiones" que necesita el sistema para arrancar... la respuesta es sí, GNU/Linux necesita también saber que dispositivos va a montar en el arranque. La forma que emplea es un archivo de texto llamado fstab (File Systems TABle) localizado en /etc/ y que es lo primero que lee para saber que montar.

El formato básico de fstab es de 6 columnas separadas por espacios o tabuladores:

<dispositivo> <punto_de_montaje> <sistema_de_archivos> <opciones> <dump-freq> <pass-num>
  • dispositivo, es el directorio lógico (/dev/x) que hace referencia a una partición o recurso.
  • punto_de_montaje, es la carpeta en que se proyectaran los datos del sistema de archivos.
  • sistema_de_archivos, es el algoritmo que se utilizará para interpretarlo.
  • opciones, es el lugar donde se especifica los parámetros que mount utilizará para montado el dispositivo, deben estar separados por comas.
  • dump-freq, es el comando que utiliza dump para hacer respaldos del sistema de archivos, si es cero no se toma en cuenta ese dispositivo.
  • pass-num, indica el orden en que la aplicación fsck (el scandisk de GNU/Linux) revisará la partición en busca de errores durante el inicio, si es cero el dispositivo no se revisa.

Un ejemplo de lo que nos podemos encontrar si vemos el archivo fstab sería el siguiente:

/dev/hda2	/		ext3		defaults			1 1
/dev/hda6	swap		swap		defaults			0 0
none		/dev/pts	devpts		gid=5,mode=620		        0 0
none		/proc		proc		defaults			0 0
 
# Removable media
/dev/cdrom	/media/cdrom	udf,iso9660	noauto,owner,users,ro		0 0
/dev/fd0	/media/floppy	auto		noauto,owner,users		0 0

Donde cada columna representaría un valor que se tendría encuenta a la hora de montar la partición dentro del sistema, según lo explicado anteriormente.

Gracias a fstab, podemos montar unidades definidas dentro de él sin tener que ejecutar toda la orden de "mount" ya que los datos necesarios se encuentran dentro del archivo. Para montar como en el ejemplo anterior la disquetera solamente tendríamos que poner "mount /media/floppy" y se montaría ya en la ruta de destino.

Tomemos el siguiente ejemplo, además de nuestro flamante GNU/Linux tenemos una partición dedicada a windows y queremos recuperar desde nuestro Linux los datos de este, siempre que quisiéramos montar dicha partición tendríamos que poner:

~$ mount /dev/hda1 -t ntfs-3g /media/windows

Agregando una sola linea en el fstab podremos hacer que monte dicha partición directamente en el arranque del sistema, o como en el caso de la disquetera cuando nosotros queramos:

[...]
# Removable media
/dev/cdrom	/media/cdrom		udf,iso9660	noauto,owner,users,ro		0 0
/dev/fd0	/media/floppy		auto		noauto,owner,users		0 0

/dev/hda1	/media/windows	        ntfs-3g      	noauto,rw,users		        0 0

Con esa sencilla linea se crea un "alias" por asi decirlo y cada vez que nosotros le indiquemos "mount /media/windows" la partición de windows estará disponible para ser leída.

Para desmontar cualquier partición (de las removibles, no desmontéis particiones del sistema) basta con darle la siguiente orden "umount PUNTO_MONTAJE":

~$ umount /media/windows (en el caso de la partición de windows)

O si queremos saber que particiones están montadas actualmente con poner el siguiente comando se nos informará de que partición está activa, que sistema de ficheros usa y donde está montada:

~$ mount

Os aconsejo no toquetear mucho el fstab hasta que no tengáis algo más de experiencia, pero al menos ya sabéis como funciona este archivo y las posibilidades que contiene.

Os daré ahora también a modo de referencia cuales son las opciones de montaje de las particiones:

  • defaults: Opciones pre-designadas, como por ejemplo "rw"
  • rw: Read-Write, montar la partición para que sea posible escribir en ella
  • ro: Read-Only, lo propio pero para que no se pueda escribir
  • sw: Cuando una partición actuará de intercambio (swap), se deja esto
  • noexec: Impide la ejecución de cualquier archivo contenido en ese sistema de archivos, es útil por ejemplo si tenemos varios usuarios y no queremos que ejecuten sus cosas.
  • nodev: Para impedir que puedan usarse nodos de dispositivo en el sistema de archivos
  • username=: Generalmente, para smbfs (Samba), para enviar el nombre de usuario correspondiente al servidor donde esté la "unidad" compartida
  • password=: El complementario del anterior.
  • auto: Se montará la partición al arrancar
  • noauto: No se montará al arrancar. Típico para cdroms y demás, que no necesitan ser montados al iniciar el sistema
  • nosuid: No permitir el uso del bit "suid".
  • user: Permitir a un usuario común montar o desmontar el dispositivo. Útil para cdroms, disquetes, etc


Agradecimientos

Quiero agradecer a las distintas páginas y blogs de las que he sacado información para dejar este manual más comprensible al público, al igual que ellas espero que el contenido de este manual sirva a la gente como ayuda para esos momentos de bloqueo y desesperación.

Bueno, con esto doy por terminado el manual de uso básico... espero que esto os ayude a empezar a iniciaros en este (para muchos) magnifico sistema operativo y que si lo veis útil lo distribuyais entre vuestros amigos.

Y no olvideis que esto es una wiki, así que podeis corregir o agregar cosas que penseis que deberian estar ;)