Alexandre González (xota) alex _QUITAESTO_ rianxosencabos _DOT_ com
Se puede copiar, modificar o distribuir este manual bajo las condiciones de la licencia GNU General Public License ( GNU GPL ) Si se desea hacer una copia total o parcial del documento se deberá adjuntar debidamente la identidad del autor así como la dirección www.debianitas.net en las partes superior e inferior del manual. El autor no se hace responsable de los daños producidos por la utilización de la información del documento.
Bueno... muchos de vosotros os pasareis este how-to por los forros, pero, aprovechando unos viejos apuntes del FP y los nuevos de la universidad voi a dar un repaso a la línea de comandos... esa gran olvidada por los nuevos linuxeros; digan lo que digan a mi me resulta más rápido moverme por ella que por las ventanitas de las X, sea cual sea el gestor.
Para probarlos supongo que sabrás que te tienes que ir a una consola Ctrl+Alt+Número o abrir una en las X: xterm, gnome-terminal, konsole, Eterm...
Lo mínimo:
Permite crear otros comandos que sustituirán a los habituales para dar más rapidez, comodidad o lo que te plazca. Por ejemplo: alias ls="ls --color=always" haría que cada vez que pusieses ls te lo devolviera a colores, otro ejemplo muy interesantes es alias rm="rm -i" con lo cuál el rm siempre te preguntaria si realmente deseas borrar lo que le has mandado.
"Borra" la pantalla, lo que realmente hace es poner el cursor en la parte superior y ocultar el resto. Lo puedes ver pulsando Shift+Arriba.
Muestra o cambia la fecha y hora del pc. Tiene muchísimas opciones: man date.
Imprime una cadena de texto.
MUY importante, quizás el más importante. muestra ayuda sobre los comandos, su sintáxis es man [comando], si no estás familiarizado con él, te recomiendo un man man.
Cambia tu contraseña, si estás como root, puedes usarla de la formas passwd [usuario] para cambiar su contraseña.
Muestra los usuarios conectados en ese momento.
Te dice como que usuario estás conectado.
Vamos a ver como movernos por nuestro entorno:
Cambia a un directorio
Permite ver el contenido de un directorio. Con la opción -l muestra información detallada, y con la opción -a los archivos ocultos.
Crea un directorio, su sintáxis es mkdir [directorio]. No se puede usar para un fichero/directorio los siguientes caracteres: !¡¿?{}[]()$;:,"\/*<>&#|
Muestra el directorio en el que te encuentras actualmente.
Borra un directorio vacio, personalmente utilizo el comando rm -rf [directorio] que borrará el directorio y todo lo del interior.
Permite visualizar el contenido de un fichero.
Copia un fichero o varios, su sintaxis es: cp [archivo_origen1 archivo_origen2 ... archivo_origenN] [archivo/directorio_destion]. Con la opción -r puedes copiar directorios.
Permite mover o renombrar uno o varios ficheros (si son varios, tan sólo permite mover a un directorio). Sintaxis: mv [fich1 fich2 ... fichN] [dir_final].
Borra un fichero o directorio. Para borrar un directorio debes darle la opción -r.
Estos caracteres especiales permiten reemplazar uno o varios caracteres. El * sustituye a cualquier carácter una o más veces, en cambio el ? solo sustituye un carácter.
Ejemplos con el comando ls:
*: mostraría todo, sería igual a poner ls a secas.
pep?.jpg: mostraría todos los archivos que comenzasen por pep tubiesen un carácter cualquiera y luego la extensión .jpg
*pep*.jpg: mostraría todos los archivos que en medio tubiesen la cadena pep y luego de extensión .jpg
Si no estais familiarizados con ellos os parecerán dificiles, pero no lo son. Hay 3 tipos de permisos: para el usuario, para el grupo y para otros. Vamos a verlo en un ls:
---------- 1 xota xota 0 2004-11-09 16:15 ejemplo
drwx------ 8 xota xota 568 2004-11-09 14:25 evolution
lrwxrwxrwx 1 xota xota 15 2004-10-15 14:30 gcc -> /datos/xota/gcc
lrwxrwxrwx 1 xota xota 24 2004-07-02 18:02 public_html -> /datos/xota/public_html/
drwxr-xr-x 2 xota xota 200 2004-10-15 21:17 Templates
Si os fijais en el primer fichero: "ejemplo" hay 10 barritas, esto es porque no tiene ningún permiso. La primera de las barras indica que tipo de fichero es: directorio (d), link (l)... el grupo de 3 que está a continuación indica los permisos para el propietario (en este caso xota), los siguientes 3 para el grupo (también xota) y los últimos 3 para el resto de usuarios del sistema. Así en resumen podemos ver entonces que ejemplo es un fichero normal (no tiene nada en la primera barra) y no tiene permisos; evolution es un directorio y solo tiene permisos para el usuario xota, los 2 siguientes son links y tienen permisos para todos (todos los links los tienen) y el último es un directorio con todos los permisos para el usuario, permisos de lectura y ejecución para el grupo (esto es, pueden entrar a curiosear pero no crear/borrar ningún fichero en él) y lo mismo para el resto de usuarios.
Ahora vamos a cambiar permisos, hay dos formas:
Quizás es la más sencilla, pero para mi, no la más rápida. Tienes que aprenderte 7 letras:
r: permisos de lectura
w: permiso de escritura
x: permiso de ejecución
a: todos: usuario, grupo y otros
u: usuario/propietario
g: grupo
o: otros
Ahora solo queda combinarlos con el comando chmod, lo primero que tienes que indicar es a quién le vas a cambiar los permisos luego un + para ponerselos y un - para quitarselos, es decir, si p.e. quieres dar permiso de lectura y escritura sobre el fichero ejemplo a todos los usuarios debes escribir: chmod a+rw ejemplo.
Aquí solo tienes que aprenderte 3 números que debes sumar o restar a tu antojo, el primero pertenecerá al usuarios, el segundo al grupo y el tercero a otros.
4: permiso de lectura
2: permiso de escritura
1: permiso de ejecución
Ahora si quieres hacer lo mismo del ejemplo anterior deberías escribir: chmod 666 ejemplo y listo ;)
Para hacer esto puedes usar un comando o dos ;) ¿Qué crees que es lo mejor?
chown: permite cambiar propietario y grupo de un fichero. Su sintáxis es: chown propietario:grupo [fichero].
chgrp: tan solo permite cambiar el grupo de un fichero, su sintáxis es como la del comando anterior.
Para crear un usuario en linux lo único que debes hacer es escribir adduser [login], si no le das ningún parámetro este programa creará un grupo llamado igual que el usuario, si no siempre puedes crear un grupo con groupadd [grupo] y luego indicarselo como parámetro.
Estos 2 programas son muy completos y prácticos así que man adduser y man groupadd no vendría nada mal ;)
Se utilizan del modo [comando] [operador] [comando/fichero] y son los siguientes:
>: Redirige la salida del comando de la izquierda al fichero de la derecha. Si el fichero no existe lo crea y si existe lo reemplaza. Ejemplo: ls > salida-ls.
>>: Funciona igual pero añade el contenido al final del fichero si este existe.
<: Hace que la entrada del comando de la izquierda sea tomada del fichero que aparece a la derecha. Por ejemplo, con ls < salida-ls te buscará los ficheros que estan en el fichero salida-ls.
|: Hace que la salida del comando de la izquierda sea la entrada del comando de la derecha. Por ejemplo: cat salida-ls | grep evolution.
Los filtros son comandos que reciben una entrada, la procesan y producen una salida.
Es 1 filtro que deja pasar todo ;) Es decir, pones cat [fichero] y te muestra el contenido de este.
Extrae campos de una lista de archivos. Por ejemplo: cut -d: -f1 /etc/passwd te mostrará los usuarios del sistema.
Muestra las n primeras lineas de un fichero, si no se le indica nada, serán 10.
Permite unir ficheros a partir de un campo común o campo clave. Asume que ambos ficheros están ordenados por el campo clave.
Ejemplo (como root, cuidado! ;p): # join -1 1 -2 1 -t: /etc/passwd /etc/shadow mostrará las líneas de /etc/passwd justo con su correspondiente en /etc/shadow.
Lo mismo que more pero permite moverse para arriba y para abajo.
Muestra la información pantalla a pantalla.
Hace lo contrario, los pega. paste -d: [fichero1] [fichero2]
Muestra las n últimas lineas de un fichero, si se pone la opción -f mostrará los cambios en ese fichero.
Con la opción -[n] muestras las n últimas y con la opción +[n] muestra todas menos las n últimas.
Permite mostrar la salida por pantalla y al mismo tiempo guardarla en un fichero. Por ejemplo: ls | tee salida-ls mostrará en pantalla la salida del comando ls y en el fichero guardará lo mismo.
Traduce un carácter por otro.
Por ejemplo: tr a A < [fichero] cambiaría las "a" minúsculas por "A" mayúsculas. Es imprescindible indicar el fichero de entrada con el redireccionador <.
Elimina líneas repetidas, asume que la entrada está ordenada, si no lo está puede devolver entradas repetidas, es decir, si en un fichero tenemos:
linea1
linea2
linea2
linea1
Y le aplicamos el comando uniq nos devolverá dos veces linea1 (no están juntas) y linea2 en cambio nos la devolverá una vez ya que están seguidas.
Opciones importantes para este comando serían -u que devuelve las líneas que no se repiten; -d las que se repiten pero solo aparecen una vez y -c muestra el número de veces que se repite la línea.
Permite contar carácteres, palabras y líneas.
Permite ordenar un fichero (por pantalla).
Por ejemplo, con sort -t: +1 /etc/passwd ordenará la salida del fichero /etc/passwd por nombre de usuario.
Con la opción -n la ordenación es por número y no por carácter, es decir: 1, 2, 30, 4000, 3 si estubiera sin la opción -n el 3 ese iría en la última posición (tal como está). Y con la opción -r das la vuelta al orden.
Permite buscar archivos que cumplan determinadas condiciones (buscamos en las propiedades y no en su contenido).
Su sintáxis es find [donde_buscar] [parámetros].
Por ejemplo para buscar un fichero por nombre: find [ruta] -name [fichero], los parámetros más importantes son:
-type [tipo, p.e. d=directorio, f=fichero, l=link...]
-size [número_en_bloques]
-user [usuario]
-print, muestra la información por pantalla.
-exec [comando], con las {} te refieres al comando, y debes acabar esta instrucción con un \; es decir para hacer un cat de lo encontrado p.e. hariamos: find /etc -name passwd -exec cat {} \; ejecutaría un cat /etc/passwd cuando lo encontrara.
Permite buscar patrones en archivos.
Sus opciones más importante son:
-V: muestras las líneas que NO contienen lo que tengo.
-c: cuenta el número de líneas que contienen lo que busco.
-l: muestra el nombre de fichero/s que en su interior contien lo que busco.
-i: no distingue entre mayúsculas y minúsculas.
Expresiones regulares:
.: sustituye cualquier carácter
*: significa 0,1 o más repeticiones del carácter anterior.
[]: cualquiera de los carácetres contenidos entre corchetes pero solo uno con un ^ niegas, p.e. [^bv]aca nos mostraría cualquier cosa menos una b o v al principio.
^: principio de línea.
$: final de línea
Ejemplos:
egrep -v . [fichero]: muestra las líneas vacias del fichero.
egrep -v ^$ [fichero]: hace lo mismo.
egrep ^e.*e [fichero]: muestras todas las líneas que comienzan y acaban con la letra e.
Debian nos gusta a todos porque tiene un estupendo programa llamado apt que dicen tiene poderes de supervaca (yo no se que quiere decir esto), este programa sirve para gestionar los paquetes (programas): instalarlos, borrarlos, configurarlos, buscarlos... La forma más normal que tendrás de usar estos programas son:
Actualiza el cache de los paquetes de nuestra máquina local, es decir, busca nuevas versiones (solo busca, no instala).
Hacen más o menos lo mismo, actualizan nuestra distribución a los paquetes más nuevos que existen en el momento.
Busca por ti el paquete que necesitas.
Muestra información sobre el paquete: versión, dependecias...
Te instala el paquete que le pidas, buscandote las dependencias y advirtiendote del espacio que necesita, que instalará a mayores...
Se que en esta sección me he quedado un poco corto, pero ya sabes, siempre tienes el man y una licencia GNU/GPL en este documento por si quieres ampliarlo ;)
Si has llegado hasta aquí leyendo y probando todos los comandos estarás hecho un experto! jaja, que va, todavía te queda mucho por andar, pero tienes una buena filosofía, papate todos los manuales que encuentres, googlea mazo, usa el comando man más que ningún otro y cuando creas que los sepas todo... te estarás equivocando ;)
Espero que os sirviese para algo este documento, a mi me ha gustando/costado bastante hacerlo así que espero que me digais que os ha parecido en la dirección que aparece en el copyright. Un saludo y mucha suerte en vuestra odisea por el lado oscuro de la fuerza.