Manual

108
1 1. INTRODUCCIÓN Un intérprete de comandos es un programa que toma la entrada del usuario, por ejemplo las órdenes que teclea, y la traduce a instrucciones. Podemos compararlo con el COMMAND.COM de MS-DOS, que realiza exactamente la misma tarea. El intérprete de comandos (Shell) será una de las interfaces con Linux, y el X Window será otra interfaz que nos permite ejecutar órdenes usando el ratón y el teclado. Cuando accedemos al sistema entramos por defecto en el entorno gráfico de X Windows, el KDE. Para pasar al modo texto (intérprete de comandos) desde el modo gráfico hemos de pulsar las combinaciónes: ctrl+alt+f1 o bien con: f2 f3 f4 f5 f6 Esto hace que el sistema salga del modo gráfico y acceda a alguna de las seis consolas virtuales de Linux, a las cuales también se puede acceder cuando se arranca en modo de texto. Para volver al modo gráfico hay que presionar ctrl+alt+f7 o ctrl+alt+f8 (Según la sesión en modo gráfico a la que deseemos regresar). La segunda forma es más cómoda y menos radical, permitiendo acceder al shell desde el mismo entorno gráfico. Para esto hay que abrir un programa llamado terminal o consola, el kconsole (en el entorno KDE), o los xterm o gnome-terminal (en GNOME). Si estamos usando el entorno por defecto (GNOME), bastará con obtener el menú contextual del escritorio y escoger la opción correspondiente: Además de ser un intérprete interactivo de los comandos que tecleamos, el Shell es también un lenguaje de programación, el cual nos permite escribir guiones que permiten juntar varias órdenes en un fichero. Similar a los ficheros batch de MS-DOS. En Unix existen varios tipos de intérpretes de comandos. Los dos más importantes son: • Sh o Bourne shell: utiliza una sintaxis similar a la usada en los primeros sistemas Unix. • Csh o C shell: utiliza una sintaxis diferente a la de sh, similar al lenguaje de programación C. En Linux también disponemos de varios intérpretes de comandos, con algunas diferencias respecto a los de Unix. Los más usados son: • Bash o Bourne Again Shell: es equivalente a Bourne shell, pero con muchas características avanzadas de la C shell. Cualquier guión (script) escrito para Bourne funcionará en bash. • Tsch (exTended C shell): es una versión extendida del C original. Sólo aparecerán diferencias entre unos y otros a la hora de escribir guiones. Es decir, en lo que respecta a los comandos usuales es indiferente el tipo de intérprete de comandos usado. 2. NOCIONES BÁSICAS

Transcript of Manual

Page 1: Manual

1

1. INTRODUCCIÓN

Un intérprete de comandos es un programa que toma la entrada del usuario, por ejemplo las órdenes que teclea, y la traduce a instrucciones.

Podemos compararlo con el COMMAND.COM de MS-DOS, que realiza exactamente la misma tarea. El intérprete de comandos (Shell) será una de las interfaces con Linux, y el X Window será otra interfaz que nos permite ejecutar órdenes usando el ratón y el teclado. Cuando accedemos al sistema entramos por defecto en el entorno gráfico de X Windows, el KDE. Para pasar al modo texto (intérprete de comandos) desde el modo gráfico hemos de pulsar las

combinaciónes: ctrl+alt+f1 o bien con: f2 f3 f4 f5 f6

Esto hace que el sistema salga del modo gráfico y acceda a alguna de las seis consolas virtuales de Linux, a las cuales también se puede acceder cuando se arranca en modo de texto.

Para volver al modo gráfico hay que presionar ctrl+alt+f7 o ctrl+alt+f8 (Según la sesión en modo gráfico a la que deseemos regresar).

La segunda forma es más cómoda y menos radical, permitiendo acceder al shell desde el mismo entorno gráfico. Para esto hay que abrir un programa llamado terminal o consola, el kconsole (en el entorno KDE), o los xterm o gnome-terminal (en GNOME). Si estamos usando el entorno por defecto (GNOME), bastará con obtener el menú contextual del escritorio y

escoger la opción correspondiente: Además de ser un intérprete interactivo de los comandos que tecleamos, el Shell es también un lenguaje de programación,

el cual nos permite escribir guiones que permiten juntar varias órdenes en un fichero. Similar a los ficheros batch de MS-DOS.

En Unix existen varios tipos de intérpretes de comandos. Los dos más importantes son: • Sh o Bourne shell: utiliza una sintaxis similar a la usada en los primeros sistemas Unix.

• Csh o C shell: utiliza una sintaxis diferente a la de sh, similar al lenguaje de programación C. En Linux también disponemos de varios intérpretes de comandos, con algunas diferencias respecto a los de Unix. Los más

usados son: • Bash o Bourne Again Shell: es equivalente a Bourne shell, pero con muchas características avanzadas de la C shell.

Cualquier guión (script) escrito para Bourne funcionará en bash. • Tsch (exTended C shell): es una versión extendida del C original.

Sólo aparecerán diferencias entre unos y otros a la hora de escribir guiones. Es decir, en lo que respecta a los comandos usuales es indiferente el tipo de intérprete de comandos usado.

2. NOCIONES BÁSICAS

En una terminal:

* Las aplicaciones con nombres compuestos se escriben con guión entre las palabras (ej. compizconfig-settings-manager).

* Para los espacios en blanco se pone un guión inferior (ej. nombre_archivo) * Cuando queremos poner varios comandos seguidos, para ejecutarlos a la vez, dejamos un espacio entre ellos, nunca

una coma (ej. avidemux k3b kde-i18n-es k3b-i18n).

Cuando tecleamos una orden, el intérprete de comandos sigue una serie de pasos: 1. Busca el nombre de la orden y comprueba si es una orden interna.

2. Comprueba si la orden es un alias, es decir, un nombre sustitutorio de otra orden. 3. Si no se cumple ninguno de los casos anteriores, busca el programa correspondiente y lo ejecuta.

4. Si el intérprete de comandos no puede encontrar la orden que hemos tecleado, muestra un mensaje de error. El formato general de una orden en Linux es:

Page 2: Manual

2

comando [-opciones] [argumentos] A la hora de introducir los comandos hay que tener en cuenta las siguientes características:

• Los comandos hay que teclearlos exactamente. • Las letras mayúsculas y minúsculas se consideran como diferentes (Case Sensitive).

• En su forma más habitual (los shells de Bourne o de Korn), el sistema operativo utiliza un signo de $ como prompt para indicar que está preparado para aceptar comandos, aunque este carácter puede ser fácilmente sustituido por otro u otros

elegidos por el usuario. En el caso de que el usuario acceda como administrador este signo se sustituye por #. • Cuando sea necesario introducir el nombre de un fichero o directorio como argumento a un comando, Linux, permite

escribir las primeras letras del mismo y realiza un autorrellenado al presionar la tecla del tabulador. Si no puede distinguir entre diversos casos rellenará hasta el punto en el que se diferencien. Por ejemplo, supongamos una carpeta con los

siguientes directorios: Programas

Documentos_proyecto Documentos_privados

Al escribir cd Pr Linux rellenará el resto del contenido hasta escribir cd Programas. Por el contrario al escribir cd D escribirá cd Documentos_

3. COMANDOS BÁSICOS

* ls -> list: listar. Nos muestra el contenido de la carpeta que le indiquemos después.

Es el primer comando que todo linuxero debe aprender. Por ejemplo. Si queremos que nos muestre lo que contiene /etc: $ ls /etc

Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente: $ ls

Además acepta ciertos argumentos que pueden ser interesantes. Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

$ ls -a Para mostrar los archivos y carpetas junto con los derechos que tiene, lo que ocupa, etc:

$ ls -l Además se pueden solapar los argumentos. Si quisiéramos mostrar los archivos de la misma forma que antes, pero que

muestre también los ocultos: $ ls -la

* cd -> change directory: cambiar directorio.

Podemos usarlo con rutas absolutas o relativas. En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola…

$ cd /etc/apt …nos llevará a esa carpeta directamente. Del mismo modo si escribimos…

$ cd / …nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginad que estamos en /home y queremos ir a una carpeta que se llama temporal dentro de vuestra carpeta personal. Con escribir…

$ cd tu_carpeta/temporal …nos situará allí. Como véis hemos obviado el /home inicial ya que si no lo introducimos toma como referencia el

directorio donde estamos, que es ese. ¿Y qué sucede si escribimos tan sólo…

$ cd

Page 3: Manual

3

Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente y estemos donde estemos. Es algo realmente muy práctico, muy simple y que no todos conocen.

* mkdir -> make directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos.

Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio que queremos crear, o si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre:

$ mkdir /home/tu_cuenta/pepino Si ya estamos en /home/tu_cuenta…

$ mkdir pepino

* rm -> remove: borrar. Borra el archivo o la carpeta que le indiquemos.

Como antes se puede indicar la ruta completa o el nombre del archivo. Esto a partir de ahora lo vamos a obviar, creo que ya ha quedado claro con los dos comandos anteriores.

Para borrar un archivo: $ rm nombre_archivo

Para borrar una carpeta vacía: $ rm nombre_carpeta

Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso contener más: $ rm -r nombre_carpeta

Otras opciones: “-f” no te pide una confirmación para eliminar o “-v” va mostrando lo que va borrando.

* cp -> copy: copiar. Copia el archivo indicado donde le digamos.

Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podéis poner el nombre que le queréis poner a la copia. Por ejemplo, si estuviéramos en /etc/X11 y quisiéramos hacer una copia de

seguridad de xorg.conf en nuestra carpeta personal: $ cp xorg.conf /home/tu_carpeta/xorg.conf.backup

* mv -> move: mover.

Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, puede ser otro distinto al original:

$ mv /etc/pepino.html /home/tu_carpeta/ese_pepino.html Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el

segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:

$ mv pepino.html ese_pepino.html

* find -> find: encontrar. Busca el archivo o carpeta que le indiques:

$ find / -name pepino El comando anterior buscaría en todos los sitios las carpetas y archivos que se llamen pepino. Si tuviéramos la seguridad

de que se encuentra en /var por ejemplo, se lo indicaríamos: $ find /var -name pepino

Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene “pepi”, en la misma carpeta de antes:

$ find /var -name *pepi*

Page 4: Manual

4

Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB: $ find / -size +1500

O los archivos/carpetas contienen el nombre “pepi” y tienen menos de 1000 KB: $ find / -name *pepi* -size -1000

* clear -> clear: despejar. Limpia la pantalla/consola quedándola como si acabáramos de abrirla.

$ clear

* ps -> process status: estado de los procesos.

Nos muestra lo que queramos saber de los procesos que están corriendo en nuestro sistema. Cada proceso está identificado con un número llamado PID. Si hacemos…

$ ps -A …nos mostrará un listado de todos los procesos, su PID a la izquierda y su nombre a la derecha. Si queremos más

información: $ ps aux

* kill -> kill: matar. Elimina el proceso que le indiquemos con su PID:

$ kill En ocasiones el proceso no “muere” del todo, pero se le puede forzar al sistema para que lo mate con seguridad del

siguiente modo: $ kill -9

* sudo -> super-user do: hacer como superusuario.

La cuenta de usuario en Ubuntu es relativamente normal. Tiene derechos de administrador a medias. Me explico, los tiene, pero cada vez que se haga algo importante y de riesgo para el sistema, hay que hacerlo mediante el prefijo “sudo” y

escribiendo después la contraseña. Por ejemplo, algo que hemos hecho muchas veces en los tutoriales es hacer una copia de seguridad del fichero xorg.conf.

Éste está localizado en la carpeta /etc/X11 y ahí ningún usuario puede hacer modificaciones o borrar nada si no es el administrador o tiene derechos como tal, gracias a sudo. Por eso hacíamos siempre:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf Siempre que necesitemos hacer un apt-get/aptitude update o install y acciones de este tipo, tendremos que poner antes el

“sudo”

* passwd -> password: contraseña.

Con este comando podremos cambiar la contraseña de nuestra cuenta. Primero nos pedirá la contraseña actual como medida de seguridad. Después nos pedirá que introduzcamos dos veces seguidas la nueva contraseña.

$ passwd

Page 5: Manual

5

* su -> super-user: superusuario. (aunque el comando su suele relacionarse con "super user" realmente parece ser que

Page 6: Manual

6

viene de "switch user" o "substitute user"

Page 7: Manual

7

Mediante su podremos loguearnos como superusuario. Tras escribirlo nos pedirá la contraseña de root y estaremos como administrador. Podremos hacer todo lo que queramos.

$ su Este comando también nos permite hacer login con otra cuenta distinta. Por ejemplo, imaginemos que tenemos otra

cuenta, además de root y la nuestra, llamada “invitado”. Para hacer login como tal bastaría con poner: $ su invitado

y después escribir la contraseña de esa cuenta.

* sudo passwd -> podréis cambiar la contraseña de root (la del super-usuario).

No es un comando propiamente dicho (es la unión de 2) pero es interesante que lo conozcáis. $ sudo passwd

* apt -> advanced packets tool: herramienta avanzada de paquetes.

Es uno de los comandos más útiles que se han desarrollado en los sistemas GNU/Linux debian o basados en esta distro. Nos permite comprobar actualizaciones, actualizar todo el sistema. También nos ofrece funcionalidad para buscar,

descargar e instalar paquetes con una sola orden. Tenemos variantes, las más usadas son las siguientes:

$ apt-cache search nombre_paquete Busca nombre_paquete para ver si existe literal o aproximadamente ofreciéndonos los paquetes que pudieran ser en caso

de que hayamos puesto un nombre aproximado. $ apt-get update

Actualiza los repositorios que son los que contienen los paquetes. Los repositorios son como las direcciones que contienen nuestros paquetes. apt-get update lo que hace es actualizar el listado de todos esos paquetes, con la dirección

de dónde obtenerlos para que a la hora de hacer la búsqueda y su posterior descarga sea más rápida haciéndolo en nuestro ordenador. $ apt-get upgrade

Actualiza nuestro sistema con todas las posibles actualizaciones que pudiera haber. La actualización no se realiza sólo sobre el propio sistema operativo, sino también sobre las aplicaciones que estén contenidas en los repositorios. Una útil

forma de estar siempre al día. $ apt-get install nombre_paquete

Localizado el nombre del paquete que queremos descargar e instalar, este comando se encargará del proceso. Buscará en nuestro índice (el que se crea con update) de dónde tiene que descargarse el paquete, lo hace y posteriormente lo

instala. $ apt-get remove [--purge] nombre_paquete

Elimina el paquete especificado del sistema. Damite el argumento “–purge” (corchetes = opcional) para que borre también los ficheros de configuración.

$ apt-get autoremove Elimina paquetes que han quedado inservibles tras realizar algún apt-get remove, los llamados huérfanos. Normalmente

tras hacer este último te avisa en un mensaje que lo realices. Todos estos comandos necesitan tener privilegios de administración, así que si no los usáis como root, debéis agregar

primero el conocido “sudo”.

* aptitude -> aptitude: aptitud, habilidad. En el fondo juega con las siglas de apt para crear aptitude.

Es una versión mejorada de apt. Si os habéis fijado en todos los manuales y entradas donde había un proceso de instalación he usado aptitude en lugar de apt. El segundo es quizá el más extendido al ser el que vio la luz primero.

Page 8: Manual

8

aptitude nació como un front-end de apt, es decir, como una especie de aplicación gráfica y en modo texto para realizar todo lo que hace apt. Pero lo cierto es que sus características son mejores.

apt cuando instala algo te puede realizar una sugerencia para que instales algo más que te podría venir bien, pero no lo hace. Hay programas que a la vez usan otros para algunas de sus funciones u opciones. apt no instalaría los segundos,

como mucho te avisaría. Sin embargo aptitude sí que lo instalará porque sabe que de alguna forma es indispensable para el que has pedido.

De la misma forma, si con apt instalas luego ese programa que es usado por otro, cuando desinstalas el principal, no se desinstalará el secundario, aunque éste ya no tenga mucho sentido que esté instalado, y lo mismo sucede con librerías.

aptitude está capacitado para desinstalar lo que él mismo ha instalado como recomendación. Te deja el sistema más limpio tras las desinstalaciones.

Para abrir el interfaz gráfico de aptitude, tan sólo hay que teclearlo: $ aptitude

Sin embargo, también se puede usar exactamente igual que apt, pero con las características que he comentado de aptitude:

$ aptitude search nombre_paquete $ aptitude install nombre_paquete

$ aptitude remove nombre_paquete $ aptitude purge nombre_paquete

$ aptitude update $ aptitude upgrade

Y al igual que antes, necesitaréis usarlo con el sudo delante si no estáis como administrador.

* dpkg -> depackage: despaquetar.

Los paquetes cuando se instalan sufren un proceso de despaquetaje. En el fondo un paquete .deb contiene una serie de scripts de pre-instalación, post-instalación y los archivos en cuestión del paquete.

Este comando lo usaremos para instalar un paquete .deb que ya tengamos descargados en nuestro sistema. En muchas ocasiones hay una aplicación que no está en los repositorios y nos hemos bajado el .deb para instalarlo con el interfaz

gráfico que corresponda (GDebi en el caso de GNOME). En el fondo estas interfaces gráficas están basadas en dpkg. Si queremos instalar un paquete ya descargado mediante

consola usaremos el argumento ‘-i’ (i=install): $ dpkg -i nombre_paquete

Para desinstalarlo ‘-r’ (r=remove): $ dpkg -r nombre_paquete

Para desinstalar el paquete y los ficheros de configuración “–purge” (purgar): $ dpkg -r –purge nombre_paquete

* Alien -> Alien: de otro país, de otro planeta.

Aunque Debian -y por extensión Ubuntu- dispone de una ingente cantidad de paquetes en sus repositorios, puede que alguien tenga algún problema en encontrar una aplicación específica empaquetada como le interesa aunque ha visto el

paquete que quiere para otras distros. alien es bastante práctico para estas situaciones ya que nos permite transformar un paquete de un gestor de paquetes

determinado en otro. Por ejemplo podemos pasar de un .deb (Debian) a un .rpm (Red Hat) y viceversa. Las extensiones soportadas son: * deb (Debian) * rpm (Red Hat)

* slm (Stampede) * tgz (Slackware)

Page 9: Manual

9

* pkg (Solaris) Su uso es sencillo. Lo que debemos saber es el argumento que transformará el paquete original en la extensión objetivo:

* “–to-deb” o “-d” para transformar a .deb * “–to-rpm” o “-r” para transformar a .rpm * “–to-tgz” o “-t” para transformar a .tgz

* “–to-pkg” o “-p” para transformar a .pkg * “–to-slp” para transformar a .slp

Como ejemplo, pasaremos un supuesto paquete de Red Hat llamado “pepino.rpm” a “pepino.deb”: $ alien -d pepino.rpm

* man -> manual: manual. Es otro de los comandos de gran potencia en linux.

Normalmente queda programa o comando viene con un archivo de ayuda muy completo sobre su uso y sus argumentos. Cuando desconozcáis cómo se usa y qué argumentos tiene un comando o aplicación tan sólo tenéis que escribir en

consola: $ man nombre

En ocasiones la información que nos ofrece man puede llegar a ser excesiva. Casi todos los comandos y aplicaicones aceptan el argumento “–help” para que muestre cierta ayuda más resumida. Por ejemplo con aptitude:

$ aptitude –help Todos los comandos que os he mostrado tienen muchos más argumentos. Os he puesto los más usados o necesarios, así

que si hay alguno que os interesa particularmente conocer más de él, tenéis “man” o “–help” para obtener más detalles.

* passwd - Podemos cambiar la contraseña empleando la orden passwd.

Nos pedirá la contraseña anterior (current) y la nueva. Volverá a pedir una segunda vez la nueva para validarla. El usuario root podrá cambiar la contraseña de cualquier otro usuario. Sin embargo, los usuarios no privilegiados solamente podrán

cambiar su propia clave. Sintaxis: passwd

* date - Muestra por pantalla el día y la hora, permitiendo, además, el cambio de la misma. Sintaxis:

date [opcion][formato]

* cal - Muestra el calendario del mes o año actual actual. Sintaxis:

cal [año] Por ejemplo,

• cal muestra el calendario del mes actual. • cal 1949 muestra el calendario del año 1949.

• cal 05 1945 muestra el calendario de Mayo de 1949.

* who - Indica qué usuarios tiene el ordenador en ese momento, en qué terminal están y a qué hora iniciaron la sesión. Sintaxis

who

* whoami - Indica el usuario que está trabajando en la terminal actual. Sintaxis:

whoami

Page 10: Manual

10

* finger - Presenta una información completa de los usuarios conectados a la red. Sintaxis:

finger [-bfilpqsw][login1 login2]

* uname - Proporciona el nombre del sistema en el que se está trabajando. Sintaxis:

uname [-opciones] Como opciones principales tenemos:

-a indica, además, la versión, fecha y tipo de procesador. -m indica, además, el tipo de de procesador.

-r indica, además, la versión. -v indica, además, la fecha.

* logname - Indica el nombre del usuario conectado al sistema (el que ha hecho login). Sintaxis:

logname

* info - Proporciona ayuda resumida acerca de un comando en cuestión. Sintaxis:

info

* clear - Este comando se utiliza para limpiar la pantalla. Sintaxis:

clear

* echo - Muestra por pantalla los argumentos que le pasamos. Sintaxis:

echo [argumento1] [argumento2] ... [argumentoN]

* alias - Asigna un nombre o etiqueta a la ejecución de un comando con sus opciones. Sintaxis:

alias etiqueta=’orden’ La orden alias solamente, muestra todos los alias que hay creados. La orden unalias elimina el alias especificado.

4. COMANDOS ESPECÍFICOS

* Para reconfigurar las X (gráfica):

sudo dpkg-reconfigure xserver-xorg y reiniciamos las X con:

sudo reboot

* Para saber que tarjeta gráfica tengo instalada:

lspci | grep -i vga

* Para saber qué modelo de tarjeta de sonido tengo:

Page 11: Manual

11

lspci | grep -i audio o

aplay -l

* Para saber que modelo de chip tiene la tarjeta de sonido:

cat /proc/asound/card0/codec#* | grep Codec

* Para saber todo el hardware y los controladores que tenemos instalados:

lspci -vv

* Para saber el listado de módulos cargados de sonido:

lsmod | grep snd

5. CARACTERES COMODÍN O WILDCARDS

Una característica importante de la mayoría de los intérpretes de comandos en Linux es la capacidad para referirse a más de un fichero.

Una forma de hacerlo es utilizando caracteres especiales llamados comodines. Al igual que en MS-DOS, el comodín * hace referencia a cualquier carácter o cadena de caracteres en el nombre del

fichero. El intérprete de comandos sustituirá el asterisco por todas las combinaciones posibles provenientes de los ficheros en el directorio al cual nos estamos refiriendo. Se dice que está realizando una expansión de comodines.

El carácter ? es también comodín, aunque solamente expande un carácter. Con ambos caracteres existe una excepción. No afectarán a aquellos ficheros que comienzan por un punto, y que son

ocultos para órdenes como ls. Además, podemos utilizar los corchetes para referirnos a un conjunto de caracteres o

bien un rango de caracteres ASCII. Ejemplos:

$ls *n* muestra todos los archivos y directorios, del directorio actual, que contienen el carácter n $ls * muestra todos los archivos y directorios del directorio actual

$ls tm? muestra todos los archivos y directorios del directorio actual que comienzan por tm y contienen tres caracteres $ls tabla[123]a muestra todos los archivos y directorios del directorio actual que comienzan por tabla, seguidos del carácter

1, 2 ó 3, y terminan en a $ls ??base[A-Z][5-9]* muestra todos los archivos y directorios del directorio actual que comienzan con dos caracteres cualesquiera, seguidos de la cadena base, a continuación una letra mayúscula, seguida de un número del 5 al 9 y por

último una cadena de caracteres (uno, varios o ninguno)

6. ÓRDENES RELACIONADAS CON DIRECTORIOS

Directorio Personal Como se ha visto anteriormente el directorio personal es un directorio con un determinado nombre asignado a un usuario.

Los directorios personales habitualmente son subdirectorios de /home (en algunos casos se utiliza mnt, u otro subdirectorio de orden inferior).

Generalmente el nombre coincide con el del nombre de usuario, aunque puede no ser así, y varios usuarios pueden estar trabajando en el mismo directorio. Cada usuario de Linux puede crear una estructura en árbol de subdirectorios y archivos

tan compleja como desee bajo su directorio personal pero normalmente nunca fuera de él. ls Permite mostrar el contenido de un directorio. ls Muestra los nombres de los ficheros y

Page 12: Manual

12

subdirectorios contenidos en el directorio en el que se está. Sólo se obtienen los nombres de los ficheros, sin ninguna otra información. Sintaxis:

ls [-opciones][fichero] -a Muestra todos los ficheros incluyendo algunos que ordinariamente están ocultos para el usuario (aquellos que

comienzan por un punto). Recordemos que el fichero punto . indica el directorio actual y el doble punto .. el directorio padre, que contiene, al actual.

-l Esta es la opción de lista larga: muestra toda la información de cada fichero incluyendo: protecciones, tamaño y fecha de creación o del último ambio introducido,...

-c Muestra ordenando por día y hora de creación. -t Muestra ordenando por día y hora de modificación. -r Muestra el directorio y lo ordena en orden inverso.

-R Lista también subdirectorios. ls subdir Muestra el contenido del subdirectorio subdir.

-l filename Muestra toda la información sobre el fichero filename. --color Muestra el contenido del directorio coloreado.

Las opciones anteriores pueden combinarse. Por ejemplo: ls -cr Muestra el directorio ordenando inversamente por fechas. El comando ls admite los caracteres de sustitución o * y ?.

Por ejemplo: ls *.gif Muestra todos los nombres de ficheros que acaben en .gif, por ejemplo, dib1.gif, a.gif, etc.

ls file? Muestra todos los ficheros cuyos nombres empiecen por file y tengan un nombre de cinco caracteres, por ejemplo: file1, file2, filea, etc.

mkdir El comando mkdir (make directory) permite a cada usuario crear un nuevo subdirectorio. Sintaxis:

mkdir subdirectorio donde subdirectorio es el nombre del directorio que se va a crear.

rmdir Este comando borra uno o más directorios del sistema (remove directory), siempre que estos subdirectorios estén vacíos. Sintaxis:

rmdir subdirectorio Por ejemplo, rmdir subdir1, donde subdir es el nombre del directorio que se va a eliminar.

cd Este comando permite cambiar de directorio a partir del directorio actual de trabajo. Sintaxis:

cd Veamos algunas opciones:

cd – cambia al último directorio en el que estuvimos antes del actual. cd.. cambia al directorio padre. cd. nos deja donde estamos.

cd Nos sitúa nuevamente en el directorio personal del usuario. cd / cambia al directorio raíz

Nota: al contrario que en MS-DOS en Linux no existe la forma cd.. sin espacio entre cd y los dos puntos. pwd El comando pwd (print working directory) visualiza o imprime la ruta del directorio en el que nos encontramos en este

momento. Este comando es uno de los pocos que no tiene opciones y se utiliza escribiendo simplemente pwd.

7. ACCESO A UNIDADES DE DISCO: MONTAJE Y DESMONTAJE

Linux a diferencia de Windows no utiliza letras ("a:", "c:", "d:", ...) para acceder a las distintas unidades de disco de un ordenador. En Linux para acceder al contenido de una unidad de disco o de un CD-ROM este tiene que haber sido

previamente "montado". El montado se realiza mediante el comando mount, con lo que el contenido de la unidad se pone a disposición del usuario en el directorio de Linux que se elija. La sintaxis de este comando es la siguiente:

Page 13: Manual

13

mount [-t tipo_de_sistema_ficheros] directorio_de_montaje Por ejemplo para acceder al CD-ROM se teclearía el siguiente comando:

mount -t iso9660 /dev/cdrom /mnt/cdrom donde -t iso9660 indica el tipo de sistema que usa la unidad de disco para guardar los ficheros (las más usuales son:

iso9660 en el caso de un CD-ROM, vfat en el caso de Windows, y ext2 (3 o 4) en el caso de Linux), /dev/cdrom indica el dispositivo que se va a montar. Todos los dispositivos están representados por un fichero del directorio /dev; por ejemplo,

en el caso de un disquete será seguramente /dev/fd0, por último /mnt/cdrom es el directorio en el que se pondrá a disposición del usuario el contenido del CD-ROM. Para montar disquetes se suele utilizar el directorio /mnt/floppy (aunque

esto depende de la versión de Linux que utilicemos). En el caso de Ubuntu, el comando mount admite directamente los directorios /cdrom, /cdrom1, /floppy, ... para el montaje

de nuestras unidades, por lo que lo único que habría que escribir, para montar por ejempo la disquetera, sería: mount /floppy

Si omitimos el tipo de sistema de ficheros y/o el dispositivo, Ubuntu toma la información correspondiente del fichero /etc/fstab, el cual contiene información de los distintos sistemas de ficheros del equipo.

De todas formas el usuario siempre puede crear un directorio vacío con el nombre que el elija para montar las unidades de disco que desee donde desee.

Cuando el usuario haya dejado de usar ese disco deberá "desmontarlo" mediante el comando umount antes de sacar el disquete o el CD-ROM. Siguiendo con el ejemplo de la disquetera en Ubuntu, debería escribir:

umount /floppy En principio, para utilizar el comando mount especificando todos los parámetros hace falta ser administrador o root. Para que un usuario común pueda utilizar disquetes, CD-ROM, etc. hay que editar el fichero /etc/fstab. Por ejemplo para que

cualquier usuario pueda acceder a un disquete habrá que indicar la siguiente línea: /dev/fd0 /mnt/floppy vfat user,noauto 0 0

También habrá que asegurarse de que el directorio /mnt/floppy sea accesible por todos los usuarios. Una vez seguidos los pasos anteriores cualquier usuario podrá "montar" un disquete escribiendo el siguiente comando:

mount /mnt/floppy Al igual que antes, el usuario deberá ejecutar el comando umount /mnt/floppy antes de sacar el disquete.

Nota: Existen en la actualidad distribuciones (por ejemplo, SuSE Linux) que realizan este proceso de forma automática, por lo que las unidades de disquete y CD-ROM quedan accesibles a todos los usuarios de una forma sencilla, empleando

los comandos: mount /mnt/floppy umount /mnt/floppy

siempre que /mnt/floppy sea la ruta adecuada. Para desmontar una partición empleamos el comando "umount":

sudo umount /dev/sdxX Donde "xX" es la partición que queremos desmontar. Por ej. "sda5" que es la partición "5" del disco duro "a"

8. ÓRDENES RELACIONADAS CON FICHEROS

cp Copia un fichero o ficheros en otro fichero o directorio. Sintaxis: cp fichero1 [fichero2] ... [ficheroN] destino

donde [ficheroX] es el fichero a copiar y es el fichero o directorio de destino. Podemos utilizar . y .. para referirnos al directorio actual y al directorio padre respectivamente.

Así pues, la orden cp file1 file2, hace una copia de file1 y le llama file2. Si file2 no existía, lo crea con los mismos atributos de file1. Si file2 existía antes, su contenido queda destruido y es sustituido por el de file1. El fichero file2 estará en el

mismo directorio que file1. Tanto file1 como file2 indican el nombre de un archivo, que puede incluir el la ruta al mismo si alguno de ellos no se encuentra en el directorio actual. Otra posibilidad es:

cp file1 file2 namedir que hace copias de file1 y file2 en el directorio namedir.

Page 14: Manual

14

mv Se utiliza para el traslado y cambio de nombre de ficheros. Sintaxis: cp fichero1 [fichero2] ... [ficheroN] destino

Como vemos, este comando tiene una forma similar al anterior. El comando mv realiza la misma función que el cp pero además destruye el fichero original.

Así, si ejecutamos la orden mv file1 file2

en definitiva se traslada el contenido de file1 a file2; a efectos del usuario lo que ha hecho es cambiar el nombre a file1, llamándole file2. De igual forma,

mv file1 file2 namedir traslada uno o más ficheros (file1, file2,...) al directorio namedir conservándoles el nombre.

El comando, mv namedir1 namedir2

cambia el nombre del subdirectorio namedir1 por namedir2. Hay que recalcar que el comando mv sirve así mismo para cambiar el nombre de los ficheros.

rm Borrado de ficheros. Este comando elimina uno o más ficheros de un directorio en el cual tengamos permiso de escritura. Sintaxis:

rm file1 [file2] Con este comando resulta facilísimo borrar ficheros inútiles, y desgraciadamente, también los útiles. Por eso es

conveniente y casi imprescindible emplear lo opción -i, de la forma siguiente: rm -i file1 file2

Con esta opción, Linux pedirá confirmación para borrar cada fichero de la lista, de si realmente se desea su destrucción o no. Se recomienda usar siempre este comando con esta opción para evitar el borrado de ficheros útiles. Por ejemplo, si se teclea, rm -i superfluo aparecerá en pantalla el aviso siguiente: remove superfluo? y habrá que contestar y (yes) o n (not). En este comando se pueden utilizar los caracteres comodines (* y ?), como por ejemplo, rm fich* que borraría todos los

ficheros del directorio actual que comiencen por fich. El comando rm * borrará todos los ficheros del directorio actual.

Otra opción es –r, que borra directorios recursivamente (borran el directorio y todo su contenido). file Este comando realiza una serie de comprobaciones en un fichero para tratar de

clasificarlo, mostrando sus características. Sintaxis: file fichero

Tras su ejecución este comando muestra el tipo del fichero e información al respecto del mismo. Este comando se puede aplicar también a directorios.

cat Visualización sin formato de un fichero. Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada. También permite copiar uno o más ficheros

como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes:

cat filename Saca por pantalla el contenido del fichero filename. cat file1 file2 Saca por pantalla, secuencialmente y según el orden especificado, el contenido de los ficheros indicados.

cat >file1 Acepta lo que se introduce por el teclado y lo almacena en file1 (se crea file1). Para terminar se emplea d pr Visualización de ficheros con formato. Este comando, a diferencia de cat, imprime por consola el contenido de los

ficheros de una manera formateada, por columnas, controlando el tamaño de página y poniendo cabeceras al comienzo de las mismas. Está muy en relación con el comando lp de salida por impresora. Las formas más importantes que admite son

las siguientes: pr file Produce una salida estándar de 66 líneas por página, con un encabezamiento de 5 líneas (2 en blanco, una de

identificación y otras 2 líneas en blanco). pr -ln file Produce una salida de n líneas por página (cuando el tamaño de papel de impresora, por ejemplo, tiene un

número de líneas distinto de 66) pr -p file Hace una pausa para presentar la página, hasta que se pulsa para continuar

pr -t file Suprime las 5 líneas del encabezamiento y las del final de página.

Page 15: Manual

15

pr -wn file Ajusta la anchura de la línea a n posiciones. pr -d file Lista el fichero con espaciado doble.

pr -h `caracteres` file el argumento o cadena de caracteres `caracteres` se convertirán en la cabecera del listado.

pr +n file Imprime el fichero a partir de la página n. Además de los ejemplos anteriores, se pueden combinar varias opciones en un mismo comando, como por ejemplo en: pr

-dt file. La salida de este comando es por la consola, pero puede redireccionarse a otro fichero, por ejemplo, si ejecutamos el comando: pr file1 > file2 se crea un fichero nuevo llamado file2 que es idéntico a file1, pero con formato por páginas y

columnas. Comandos more y less Estos comandos permiten visualizar un fichero pantalla a pantalla. El número de líneas por pantalla es de 23 líneas de

texto y una última línea de mensajes, donde aparecerá la palabra more. Cuando se pulsa la barra espaciadora (el espacio en blanco), se visualizará la siguiente pantalla. Para salir de este comando (terminar la visualización) se pulsa d o q.

El comando more muestra el contenido de los ficheros indicados, una pantalla cada vez. Sintaxis: more fichero1 [fichero2] ... [ficheroN]

La teclas que nos permiten movernos por el fichero son: b va a la página anterior, barra espaciadora va a la página siguiente, flechas de cursor arriba y abajo, q finaliza la ejecución de more.

El comando less es muy similar al anterior pero, además, permite el desplazamiento a lo largo del texto empleando las teclas de cursores pudiendo desplazarse, además, hacia la izquierda o la derecha. Sintaxis:

less fichero1 [fichero2] ... [ficheroN] grep El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cuáles de ellos la ha encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas líneas que contienen el conjunto de

caracteres buscado. Si el conjunto de caracteres a buscar está compuesto por dos o más palabras separadas por un espacio, se colocará el conjunto de caracteres entre apóstrofes ('). Su sintaxis es la siguiente:

grep [-opcion] 'conjuntocaracteres' file1 file2 file3 siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file3 los ficheros donde se debe buscar.

Veamos un nuevo ejemplo: grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f

Este comando buscará TRIANGULARIZACION MATRIZ entre las líneas de los ficheros matrix.f y scaling.f. Las opciones principales del comando son:

c lo único que se hace es escribir el número de las líneas que satisfacen la condición. i no se distinguen mayúsculas y minúsculas.

l se escriben los nombres de los ficheros que contienen líneas buscadas. n cada línea es precedida por su número en el fichero.

s no se vuelcan los mensajes que indican que un fichero no se puede abrir. v se muestran sólo las líneas que no satisfacen el criterio de selección.

A continuación se muestra una serie de ejemplos. grep ‘ˆd’ text líneas que comienzan por d.

grep ‘ˆ[ˆd]’ text líneas que no comienzan por d. grep -v ‘ˆC’ file1 > file2 quita las líneas de file1 que comienzan por C y lo copia en file2.

head Muestra las primeras líneas del contenido de los archivos especificados; por defecto muestra las 10 primeras líneas. Sintaxis:

head [-número] ... Por ejemplo, head -7 texto, escribe por pantalla las 7 primeras líneas del fichero texto.

tail Muestra las primeras líneas del contenido de los archivos especificados; por defecto muestra las 10 primeras líneas. Sintaxis:

tail [-número] ...

9. OTROS COMANDOS BÁSICOS

Page 16: Manual

16

9.1. Espacio ocupado en el disco: Comandos du y df El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y todos los subdirectorios

que cuelgan de él. Para usarlo basta simplemente colocarse en el directorio adecuado y teclear du. Este comando da el espacio de disco utilizado en bloques. Para obtener la información en bytes se debe emplear el

comando con la opción –h: du -h

El comando df por el contrario informa del espacio usado por las particiones del sistema que se encuentren montadas.

9.2. Impresión: Comando lpr El comando lpr se emplea para imprimir una serie de ficheros. Si se emplea sin argumentos imprime el texto que se

introduzca a continuación en la impresora por defecto. Por el contrario, lpr nombre_fichero

imprime en la impresora por defecto el fichero indicado.

9.3. Búsqueda de ficheros. Comando find Con find podemos encontrar archivos (y, por tanto, directorios) basando su búsqueda en distintas características de los

mismos. Sintaxis: find [camino...] [expresión]

El número de opciones de find es muy elevado, por lo que se aconseja acudir al manual para mayor información (man find).

9.4. Enlaces a ficheros. Comando ln Los enlaces nos van a permitir realizar copias de los ficheros con otro nombre, para poder acceder a ellos desde lugares

distintos a su ubicación original, con un ahorro de espacio muy importante con respecto al comando cp. Nuestro sistema identifica a los ficheros mediante un número denominado inodo, que les asigna en el momento de su

creación. Es decir, un directorio lo que contiene realmente es una lista de números de inodo con sus correspondientes nombres de fichero. De esta forma, cada nombre de fichero es un enlace a un inodo particular; por ello, cada inodo está asociado a un conjunto de información guardada en el disco, que puede tener asignados distintos nombres, y a la que podremos acceder

desde distintos lugares del árbol de directorios si así lo deseamos. En este sentido, podremos crear dos tipos distintos de enlaces a ficheros: enlaces duros y enlaces simbólicos.

El comando ln nos servirá para crear ambos tipos de enlaces. ENLACES DUROS (HARD LINKS)

Si utilizamos el comando ln sin especificar ninguna opción, por defecto crearemos un enlace duro. La sintaxis es la siguiente:

ln [nombre del enlace] ln ...

Obviamente, el fichero o ficheros para los que deseamos crear un enlace duro deberán existir. Así mismo, si el último argumento es el nombre de un directorio que existe, crearemos un enlace duro a cada fichero, dentro del directorio, y con

el mismo nombre de fichero. Si solamente especificamos el fichero que queremos enlazar, y no indicamos ningún nombre para el enlace, éste se creará

con el mismo nombre que el fichero a enlazar. Los cambios que realicemos en el fichero enlazado o en el enlace, se reflejarán en el resto, ya que todos tendrán el mismo

número de inodo, y por lo tanto hacen referencia al mismo conjunto de información. La ventaja de utilizar enlaces duros radica en que el comando rm únicamente borrará aquel fichero que le indiquemos. La

información solamente se borrará por completo cuando borremos todos los enlaces a un inodo. La desventaja con respecto a los enlaces simbólicos es que sólo permite crear enlaces dentro del mismo sistema de

ficheros.

Page 17: Manual

17

Los directorios . y .. son enlaces duros al directorio actual y a su directorio padre respectivamente. Ejemplo:

1 – Creamos el fichero pruebaln con la orden cat. $cat > pruebaln

hola CTRL+ D

2 – Creamos un enlace a pruebaln que se llame penlace. $ln pruebaln penlace

3 – Veamos las características de estos ficheros con la orden ls. Utilizamos la opción –i para ver el número de inodo. Ambos tendrán el mismo número de inodo con dos

enlaces. $ls –i pruebaln penlace

4 – Modificamos pruebaln y comprobamos si también se modifica penlace. $cat >>pruebaln

adios CTRL+ D

$cat pruebaln $cat penlace

5 – Modificamos penlace y comprobamos si también se modifica pruebaln. $cat >>penlace

otra vez hola CTRL+ D

$cat penlace $cat pruebaln

6 – Eliminamos pruebaln y comprobamos si penlace permanece y contiene la información correspondiente. $rm pruebaln $cat penlace

7 – Si utilizamos la orden ls –i, vemos que penlace sigue con el mismo número de inodo, que ahora solamente tendrá un enlace.

ENLACES SIMBÓLICOS Si utilizamos la opción –s con el comando ln, es decir ln –s, crearemos un enlace simbólico. La sintaxis en este caso es la

misma que utilizamos para crear enlaces duros. Podemos encontrar una similitud entre este tipo de enlaces y los accesos directos que estamos acostumbrados a crear

con los sistemas Windows. En el caso de los enlaces simbólicos, cada fichero tendrá un número de inodo distinto. Sin embargo, al igual que con los

enlaces duros, todos los cambios que se realicen en uno de los ficheros se verán reflejados en el resto. Si borramos el fichero enlazado, el enlace simbólico perderá toda la información, puesto que su inodo apunta a un número

de inodo que ya no existe. Sin embargo, podremos crear enlaces simbólicos a ficheros de otros sistemas de archivos. Ejemplo:

1 – Aún tenemos el fichero penlace. Creamos un enlace duro a penlace que se llame pruebaln. $ln penlace pruebaln

2 – Con la orden ls –li vemos que ambos tienen el mismo inodo, y que este inodo tiene dos enlaces. $ls -li pruebaln penlace

3 – Creamos un enlace simbólico a penlace que se llame penlacesim. $ln –s penlace penlacesim

4 – Con la orden ls –li vemos que tienen distinto número de inodo. Además, el inodo de penlacesim sólo tiene un enlace, y el inodo de penlace sigue teniendo dos. En la línea correspondiente a penlacesim vemos que aparece el fichero al que

apunta, y la letra l (“ele”) al inicio. $ls -li pruebaln penlace penlacesim

Page 18: Manual

18

5 – Cambiamos penlace y comprobamos si cambia penalcesim. $cat >>penlace otra vez adios

CTRL+ D $cat penlacesim

6 – Por último borramos penlace. Comprobamos que pruebaln permanece y que no podemos ver el contenido de penlacesim, el sistema nos dirá que no existe. Para que desaparezca totalmente tenemos que borrarlo.

$rm penlace $cat pruebaln

$cat penlacesim $rm penlacesim

$rm pruebaln

9.5. Agrupación y compresión de ficheros: Comandos tar y gzip/gunzip Tanto el comando tar como gzip son ampliamente empleados para la difusión de programas y ficheros en Linux.

tar Este comando agrupa varios ficheros en uno solo o “archivo”, mientras que el segundo os comprime. En conjunto estos dos programas actúan de forma muy similar a programas como Winzip. Su sintaxis es:

tar [ficheros] El modo en el que se escriben las opciones de tar es un poco especial. El guión inicial, por ejemplo, no es necesario.

Las opciones más comunes para tar son: -c creación de archivadores nuevos.

-x extracción de archivos de un archivador existente. -v muestra los archivos mientras se agregan o se extraen.

-t muestra el contenido de un archivo tar. -f el siguiente argumento es el archivador a crear, del que queremos extraer archivos o mostrar un listado.

Para crear un nuevo archivo se emplea: tar –cvf nombre_archivo.tar fichero1 fichero2 ...

donde fichero1, fichero2 etc. son los ficheros que se van a añadir al archivo tar. Si se desea extraer los ficheros se emplea:

tar –xpvf nombre_archivo.tar fichero1 ... Veamos algunos ejemplos:

# tar cvf escritorio.tar Desktop empaqueta el contenido de Desktop en un archivador nuevo escritorio.tar

#tar xvf escritorio.tar Desktop/Floppy.desktop extrae del archivo escritorio.tar el fichero indicado

#tar xvf escritorio.tar extrae todo el contenido del archivo escritorio.tar

#tar tvf escritorio.tar muestra un listado largo del contenido del archivo escritorio.tar

Hay que tener en cuenta, a la hora de extraer el contenido de un archivador (al fichero tar resultante se le suele llamar así), si el archivador se creó conservando el nombre del directorio de origen. Es posible que se sobrescriba el contenido

de los ficheros originales. Ejemplo: Nos situamos en el directorio raíz como root. Si archivamos los ficheros / etc/group y /etc/passwd:

#tar cvf backup.tar /etc/group /etc/passwd estamos conservando los nombres del directorio al que pertenecen. Por lo tanto, para extraer estos ficheros nos

tendremos que situar en el directorio raíz: #cd /

#tar xvf backup.tar /etc/group /etc/passwd Sin embargo, si archivamos los ficheros group y passwd estando en /etc:

Page 19: Manual

19

#tar cvf /backup.tar group passwd no guardamos la ruta, por lo que para extraer los ficheros tendremos que situarnos en ella:

#cd / #cd /etc

#tar xvf /backup.tar group passwd gzip/gunzip Al contrario que tar que agrupa varios ficheros en uno, gzip comprime un único fichero con lo que la

información se mantiene pero se reduce el tamaño del mismo. El uso de gzip es muy sencillo:

gzip fichero con lo que se comprime fichero (que es borrado) y se crea un fichero con nombre fichero.gz.

La opción más común es: -1 a –9 grado de compresión, mínimo y máximo respectivamente.

-d descomprimir el fichero .gz Si lo que se desea es descomprimir un fichero se emplea entonces:

gzip –d fichero.gz recuperando el fichero inicial.

Otra posibilidad sería utilizar el comando gunzip para la descompresión, de la siguiente forma: gunzip fichero.gz

Como se ha comentado al principio es típico emplear tar y gzip de forma consecutiva, para obtener ficheros con extensión tar.gz o tgz que contienen varios ficheros de forma comprimida (similar a un fichero zip). El comando tar incluye la opción z

para estos ficheros de forma que para extraer los ficheros que contiene: tar –zxf fichero.tar.gz

9.6. Cambio de modo de los ficheros: comandos chmod, chown y chgrp Cada usuario es dueño de su directorio personal y será dueño también de los archivos que incluya en él.

Un usuario en Linux podrá configurar permisos en sus archivos. Por ello, distinguiremos por un lado tres categorías de usuarios, y por otro los tipos de permisos que cada uno de ellos puede tener sobre un archivo y/o directorio.

Categorías de usuarios • Dueño del archivo (u).

• Grupo dueño (g), formado por todos los usuarios que son miembros de un grupo asociado al archivo. • Resto de usuarios (o), todos los usuarios que no son ni el dueño ni miembros del grupo dueño.

Tipos de permisos • Lectura (r de Read, leer): para un archivo permite leer su contenido, para un directorio permite que se muestren los

archivos que contiene. • Escritura (w de Write, escribir): para un archivo permite que se modifique su contenido, para un directorio permite

agregar y quitar archivos. • Ejecución (x de eXecute, ejecutar): para un archivo permite su ejecución, para un directorio permite que el usuario lo

recorra (que entre y pase por él) – si no tiene permiso de lectura, aunque pueda entrar no podrá ver el contenido. Cuando ejecutamos el comando ls –l, podemos ver la configuración de permisos de los

archivos: • El primer carácter indica el tipo de archivo: “d” si es directorio, “-“ si es un archivo regular, “l” si es un enlace simbólico. • Los siguientes nueve caracteres indican los permisos para el dueño, el grupo dueño y otros (rwxrwxrwx); si aparece un

guión, indica que el permiso correspondiente no está habilitado. • El siguiente número indica el número de vínculos.

• Nombre del dueño y nombre del grupo dueño. • Tamaño en bytes.

• Fecha de la última modificación. • Nombre del archivo.

chmod Para cambiar los permisos de un fichero se emplea el comando chmod, que tiene el formato siguiente:

Page 20: Manual

20

chmod oper permiso files donde:

quien Indica a quien afecta el permiso que se desea cambiar. Es una combinación cualquiera de las letras u para el usuario, g para el grupo del usuario, o para los otros usuarios, y a para todos los anteriores. Si no se da el quien, el

sistema supone a. oper Indica la operación que se desea hacer con el permiso. Para dar un permiso se pondrá un +, y para quitarlo se

pondrá un -. Si quiero dar exactamente unos permisos, pondremos =. permiso Indica el permiso que se quiere dar o quitar. Será una combinación cualquiera de las letras anteriores : r,w,x,s.

files Nombres de los ficheros cuyos modos de acceso se quieren cambiar. Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero llamado fichero.txt el comando a utilizar es:

chmod a -r fichero.txt Los permisos de lectura, escritura y ejecución tienen un significado diferente cuando se aplican a directorios y no a

ficheros normales. En el caso de los directorios el permiso r significa la posibilidad de ver el contenido del directorio con el comando ls; el permiso w da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar y

utilizar un fichero concreto. chown Por otra parte, el comando chown se emplea para cambiar de propietario (“change owner”) a un determinado

conjunto de ficheros. Este comando sólo lo puede emplear el actual propietario de los mismos. Los nombres de propietario que admite Linux son los nombres de usuario, que están almacenados en el fichero /etc/passwd. La forma general del

comando chown es la siguiente: chown newowner file1 file2 ...

chgrp Análogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando chgrp, que tiene una forma general similar a la de chown,

chgrp newgroup file1 file2... Los grupos de usuarios están almacenados en el fichero /etc/group.

10. GESTIÓN DE USUARIOS Y GRUPOS 10.1. Introducción

Ya sabemos que Linux es un sistema multiusuario y por lo tanto distingue diferentes usuarios. Cada usuario recibe una cuenta que incluirá toda la información necesaria (nombre de usuario, directorio inicial, etc.).

Además de las cuentas dadas a personas, existen cuentas especiales definidas por el sistema que tienen privilegios especiales. La más importante es la cuenta raíz (administrador), con el nombre de usuario root.

Normalmente, los usuarios normales están restringidos, de forma que los permisos de los ficheros en el sistema están preparados para que no puedan borrar o modificar ficheros en directorios compartidos por todos los usuarios.

Estas restricciones desaparecen para root. El usuario root puede leer, modificar o borrar cualquier fichero en el sistema, cambiar permisos y pertenencias, etc. Por lo tanto, podemos deducir que la gestión de los usuarios solamente puede

realizarla el usuario root.

10.2. Conceptos de gestión de usuarios La información que el sistema mantiene acerca de cada usuario es la siguiente:

• Nombre de usuario: es un identificador único dado a cada usuario del sistema. Es la cadena de caracteres con la que el usuario se identifica al entrar en el sistema. Se pueden utilizar letras, dígitos y los caracteres _ (guión bajo) y . (punto).

Ejemplo: simmd. • User ID o UID: es un número único dado a cada usuario del sistema. Su número debe ser mayor que el del último

usuario creado en el sistema. • Group ID o GID: número identifica el grupo al que pertenece el usuario. El número ha de ser el mismo para todos los usuarios que formen el grupo. Cada usuario puede pertenecer a uno o más grupos definidos por el administrador del

sistema. Aunque la importancia real de las relaciones de grupo es la relativa a los permisos de ficheros. • Clave: el sistema almacena la contraseña del usuario encriptada. El comando passwd nos permitirá asignar y cambiar las

claves de los usuarios.

Page 21: Manual

21

• Nombre completo: puede ser el nombre real del usuario, su número de teléfono, su dirección, etc. Es decir, guarda información real sobre el sistema.

• Directorio inicial: es el directorio al que accede el usuario al entrar en el sistema. Cada usuario debe tener su propio directorio inicial, normalmente situado bajo /home. En principio será el único directorio en el que el usuario podrá guardar

su información personal, programas, etc. Ejemplo: /home/simmd. • Intérprete de inicio: es el intérprete de comandos que arranca para el usuario cuando se conecta al sistema. Ejemplos:

/bin/bash, /bin/tcsh. El fichero que contiene toda esta información relativa a los usuarios es el fichero / etc/passwd. Este fichero contiene una

línea por cada usuario del sistema, y su estructura es la siguiente: nombre:clave encriptada:UID:GID:nombre completo:directorio de inicio:intérprete

Ejemplo: simmd501:501:simmd:/home/simmd:/bin/bash

En el caso de los grupos, la información sobre ellos se encuentra en el fichero /etc/group. Hay varios grupos definidos en el sistema (root, bin, sys, mail, etc) que se utilizan para permisos de ficheros del sistema. Los usuarios no deben

pertenecer a ninguno de estos grupos. El formato de cada línea del fichero /etc/group es el siguiente:

nombre del grupo:clave:GID:otros miembros La clave del grupo no suele utilizarse.

En /etc/passwd cada usuario tiene un GID. Sin embargo, como los usuarios pueden pertenecer a otros grupos, podemos añadir su nombre de usuario en el campo otros miembros (separados unos usuarios de otros por comas) de todos

aquellos grupos no definidos por el sistema a los que queremos que pertenezca. Podemos conocer a qué grupos pertenece un usuario utilizando la orden groups. (El grupo con GID 100 suele ser el grupo

users).

10.3.Añadir nuevos usuarios y borrar usuarios Podemos añadir usuarios al sistema de varias formas. La más engorrosa de todas es hacerlo a mano. Es decir, añadimos al fichero /etc/passwd la línea correspondiente al usuario. Seguidamente le asignamos una clave con la orden passwd y

finalmente establecemos el dueño, grupo dueño y permisos para el directorio /home/usuario que deberemos crear. Además, debemos actualizar /etc/shadow con pwconv.

Sin embargo, existen varias utilidades que nos permiten crear usuarios de una forma mucho más cómoda e intuitiva: a) Servidor Xwindow. Entorno KDE

Iniciamos una sesión como root en el entorno gráfico. Seleccionamos: Menú K Configuración Usuarios Crear usuarios (variará según la distribución)

Aparecerá un cuadro de diálogo con los usuarios normales que hay creados en el sistema y toda la información correspondiente a cada uno de ellos. Desde aquí podremos añadir, borrar y modificar usuarios y grupos. Una vez

realizados los cambios oportunos debemos guardarlos, como si de un documento se tratase. b) Entorno linuxconf:

Desde una sesión en modo consola podemos escribir la orden linuxconf para acceder a un entorno que nos permite gestionar todo Linux, y por lo tanto la gestión de usuarios.

Entramos en Users, User accounts (cuentas de usuario), y podremos ver todas las cuentas de usuario que están definidas en el sistema.

Para añadir una nueva cuenta, con el tabulador seleccionamos el botón Add. Escribiremos el Login, Full name, group, Home directory, User ID, por ejemplo un cero en Must deep # days y siete en

Warm # days before expiration. Con el tabulador nos posicionamos en el botón Accept. Para salir de linuxconf pulsamos el botón Dismiss y Quit.

c) Useradd/Adduser Las órdenes useradd y adduser también nos permiten añadir nuevas cuentas de usuario desde el modo consola. Podemos

crear un usuario con las características por defecto: #useradd usuario

Page 22: Manual

22

#adduser usuario Habremos creado un usuario sin contraseña. Para habilitar su cuenta comprobamos si en el campo clave de los ficheros

/etc/passwd y /etc/shadow existen signos de admiración cerrada ( ! ), en ese caso debemos borrarlos. Posteriormente establecemos una contraseña si lo deseamos.

Si queremos crear un usuario a nuestra medida utilizaremos la siguiente sintaxis: #useradd/adduser –r -p -u -g -c -d -s

Lo único que nos quedará por hacer será crear el directorio /home del usuario y establecer los permisos pertinentes. Para borrar un usuario desde el modo consola:

#userdel [-r] usuario Si utilizamos la opción –r también eliminaremos el directorio home del usuario o directorio inicial.

Una forma de deshabilitar una cuenta de usuario sin tener que borrarla es escribir ! en el campo clave del usuario en el fichero /etc/shadow o /etc/passwd.

10.4. Otras órdenes para la gestión de usuarios y grupos chfn: permite cambiar el nombre completo del usuario:

#chfn –f groups: muestra todos los grupos a los que pertenece el usuario.

groupadd: permite añadir un nuevo grupo. Sintaxis: #groupadd [-g GID] [-f]

-f obliga al sistema a informar si se producen errores (por ejemplo cuando el grupo que queremos crear ya existe). Si no especificamos un GID, el sistema asigna el menor GID que corresponde a este

grupo. groupdel: borra el grupo cuyo nombre indiquemos junto a la orden.

groupmod: permite modificar el GID y el nombre del grupo. Sintaxis: #groupmod [-g ] [-n ]

id: muestra UID y GID del usuario y los grupos a los que pertenece el usuario conectado al sistema. Sintaxis: #id

#id usuario

La Terminal y los primeros comandos en Ubuntu

En sus inicios el sistema operativo Linux ni siquiera disponía de un entorno gráfico sobre el que ir ejecutando aplicaciones en las tradicionales ventanas (como es el caso de los sistemas Windows). Al igual que en los sistemas Unix originales, todas las operaciones se realizaban mediante distintos tipos de shell, también conocidas como consolas o terminales, programas que interpretan la secuencia de comandos y operandos introducidos y actúan en consecuencia. Hasta la aparición de los entornos gráficos para GNU/Linux, la línea de comandos era la forma más directa de “comunicarse” con el ordenador, de interactuar con el equipo y con sus sistema operativo, ¡y la única!. Esto hizo que durante mucho tiempo se considerara que el manejo de las distribuciones GNU/Linux no era accesible a usuarios poco experimentados. Actualmente, todas las distribuciones GNU/Linux cuentan con herramientas gráficas para la gran mayoría de los programas y, por tanto, no se hace imprescindible utilizar obligatoriamente la consola o Terminal ni acudir a la línea de comandos para realizar la mayor parte de las tareas que te propongas en el sistema. Ello ha supuesto un gran avance para que usuarios que, tradicionalmente no se atreverían a utilizar este sistema, se hayan animado a utilizarlo y, en consecuencia, las distribuciones GNU/Linux hayan comenzado a popularizarse.

Ten en cuenta que este origen aún está presente, en gran medida, en el sistema y que los entornos gráficos que puedes apreciar en Linux son sólo una interfaz que facilita y hace mucho más cómodo el acceso a las distintas funciones del

Page 23: Manual

23

sistema operativo de modo que, con unos cuantos clics de ratón, podrás realizar la acción deseada sin tener que escribir nada, pero que, en un segundo plano, están actuando todos esos comandos y operandos (que no necesitas, de momento, conocer) de modo totalmente transparente para ti, sin que ni siquiera te enteres de ello. El usuario administrador

En GNU/Linux las tareas de administración son desempeñadas por el usuario root (en español, raíz). Los usuarios normales, por razones de seguridad, no tienen este tipo de acceso. Sin embargo, Ubuntu, por defecto, tiene desactivada la cuenta de administrador (root) del sistema para incrementar aún más su seguridad. En su lugar, se concede el acceso administrativo a cada usuario individual. La primera cuenta de usuario que hayas creado en tu sistema durante la instalación (es decir, aquella en la que tecleaste tus datos de usuario) tendrá, de forma predeterminada, privilegios de administración.

De esta manera, siempre que necesites realizar tareas administrativas, de gestión del sistema, de instalación o desinstalación de aplicaciones, de ejecución de aplicaciones que requieran privilegios de administrador, se te solicitará que teclees la contraseña del usuario que creaste en la instalación. El sistema la recordará durante unos 15 minutos (característica diseñada para permitirte realizar varias tareas administrativas sin tener que introducir la contraseña constantemente). Después volverás a ser un usuario normal y corriente para prevenir que determinadas aplicaciones maliciosas dañen el sistema o poder así evitar estropear algo de manera accidental.

La consola o Terminal

Una terminal es algo parecido al Símbolo del sistema de Windows XP. También se llama frecuentemente línea de órdenes, línea de comandos o shell. Trabajar en la línea de comandos no es una tarea ni tan complicada ni tan aburrida como se pudiera pensar. En mi caso, por ejemplo, que me inicié en el uso del ordenador en los tiempos del MS-Dos, no difiere demasiado de lo que realizaba en aquellos tiempos… ¡qué tiempos!. No necesitas tener conocimientos especiales para saber cómo utilizar la línea de comandos pues, al fin y al cabo, es un programa como cualquier otro. Lo que en realidad hace el sistema es ejecutar un intérprete de comandos o shell que hace lo que su nombre sugiere: interpretar. Leerá los comandos que vayamos escribiendo, localizará la aplicación apropiada en el sistema y ejecutará dicha aplicación siguiendo las instrucciones que le hayamos escrito nosotros.

En ciertas ocasiones, deberás utilizar obligatoriamente la Terminal (si el entorno gráfico falla, por ejemplo, o deseas realizar ajustes de configuración con un mayor control sobre el sistema) y toda la potencia de la consola de comandos. Además, con ella no sólo podrás acceder a todas las aplicaciones X Window, sino también a un montón de programas que aún no cuentan con interfaz gráfica, y a los comandos de Linux. Los usuarios más avanzados de GNU/Linux encuentran que resulta mucho más cómodo y rápido trabajar en línea de comandos y lo prefieren a utilizar las correspondientes herramientas gráficas. Y aunque cada vez sea menos usada, resulta muy práctico conocer algo de su manejo básico. Prácticamente cualquier cosa que puedas hacer en modo gráfico la podrás hacer también en modo texto. En ciertos casos, será preferible que acudas a las aplicaciones gráficas (escuchar un CD de audio, grabar un DVD de datos, ver una película, utilizar un procesador de textos, etc., por ejemplo). Pero habrá muchas situaciones en las que la consola de comandos será mucho más eficaz, potente y ágil para aprovechar las posibilidades de GNU/Linux.

Lo primero que debes hacer es lanzar o abrir la Consola o Terminal. Iniciar la Consola o Terminal en Ubuntu es muy sencillo. Vete al menú Aplicaciones - Accesorios - Terminal. Una nueva ventana aparece en pantalla en la que observarás un simple menú en la parte superior y un espacio en blanco ocupando toda la parte inferior de la ventana, en el que teclearás los comandos.

Page 24: Manual

24

Su apariencia es muy similar a la del intérprete de comandos de los sistemas Windows. Y, en esencia, el principio es el mismo, aunque las posibilidades en el caso de GNU/Linux son mucho mayores. La forma de “moverse” por ella es parecida a la de MS-DOS, y muchos comandos son también muy similares.

Como observas en la captura de pantalla anterior, una vez que has ingresado en el sistema, la Terminal te ofrece en primera instancia el denominado prompt del intérprete de comandos. Se trata de una cadena de texto que indica que la Terminal se encuentra preparada para recibir órdenes:

edisue@edisue-laptop:~$

Este prompt, aunque viene configurado por defecto, en el formato que se muestra, es personalizable. Apreciarás el nombre del usuario registrado (en este caso, edisue), y el nombre de la máquina (edisue-laptop) acompañado del directorio en el que estamos situados. Estos últimos caracteres de esta cadena son más especiales de lo que podría pensarse:

* El símbolo ~ representa el directorio personal de trabajo, en este caso /home/edisue. * El carácter $ indica que el usuario que está en ese momento manejando la consola es un usuario normal del sistema. * Si el usuario registrado fuera el root, el símbolo sería #, estaríamos entonces ejecutando comandos con privilegios de superusuario. Por esto cuando en cualquier manual o tutorial te digan que teclees una orden tal como #addsuser, significará que esa orden únicamente puede ejecutarse como root.

Algunas consideraciones a la hora de manejar la Consola o Terminal.

1. Recuerda que en Ubuntu, la primera cuenta de usuario que hayas creado en tu sistema durante la instalación (es decir, aquella en la que tecleaste tus datos de usuario) tendrá, de forma predeterminada, privilegios de administración. En muchas ocasiones en las que teclees alguna orden o comando en la Terminal se te solicitará la contraseña de root, tendrás que teclearla y pulsar Intro. 2. Cuando teclees la contraseña, no te extrañes si no ves nada en pantalla, ni siquiera unos asteriscos, no te preocupes, el sistema está atendiendo a lo que escribes. A esta manera de introducir la contraseña se la conoce como “contraseña sin eco” y es la forma predeterminada de registrarse en una consola.

Page 25: Manual

25

3. GNU/Linux es un sistema case sensitive, es decir, sensible a mayúsculas y minúsculas. Tienes que escribir los comandos de una forma concreta, no pudiendo sustituir mayúsculas por minúsculas, o viceversa, porque para el sistema operativo son caracteres distintos. Por eso, cuando “copies” comandos debes escribirlos siempre tal y como aparecen. 4. En general, el formato de los comandos será una palabra (o una orden) seguida de sus argumentos.

Los primeros comandos

No se trata de hacer un manual avanzado sobre comandos ni de describir pomenorizadamente todos y cada uno de los comandos disponibles en GNU/Linux, sino de enumerarte aquellos que te serán útiles para mantener tu sistema en forma y que, además, son comúnmente utilizados en muchas de las tareas habituales del sistema y, sobre todo, mostrarte ejemplos de utilización. Si deseas recabar mayor información siempre podrás buscar información sobre cada comando en particular en Internet o acudir a la ayuda que el propio Terminal te ofrece tecleando el comando man seguido del nombre del comando a utilizar.

Los primeros mandatos que vas a utilizar serán aquellos que se refieren a la gestión de los archivos del sistema. VER DIRECTORIOS: ls

La orden ls (LiSta) muestra el listado de archivos del directorio en el que estás.

Es un comando similar al “dir” de MS-DOS. Al ejecutarlo se muestra el contenido de un directorio. En el caso de la siguiente captura de pantalla, el directorio personal del usuario /home/edisue/.

En mi carpeta personal se incluyen diferentes archivos baccara.mp3, Unidad_4.pdf… una larga lista de directorios propios Documentos Escritorio, Jclic, PDF…, un enlace a un directorio con permisos de sólo lectura Examples o un archivo comprimido tar, identificados, como ves, por códigos de color.

Como en la inmensa mayoría de comandos disponibles, ls admite ciertos modificadores que permiten ajustar su comportamiento y le ofrece mayores posibilidades.

ls -a

Ofrece información mucho más completa al listar todos los archivos, incluyendo los archivos ocultos

Page 26: Manual

26

Como ves, la lista de archivos es mucho mayor y apreciarás que incluye los archivos ocultos, esos que en la lista empiezan por un punto.

ls -l

Completísimo listado de archivos en formato largo, con información adicional sobre los archivos, como el tamaño o la fecha de creación de cada archivo.

El primero de los campos de la lista está compuesto por una cadena de texto formada por un grupo de diez letras que te suministra datos acerca de los permisos del archivo. Por ejemplo:

drwxr-xr-x referente a Documentos

La primera letra determina qué tipo de fichero es. Si se muestra una d se trata de un directorio. Si, en cambio, aparece un guión es un archivo normal, ya sea de texto, imagen o binario (-rw-r-r– de baccara.mid); la letra l identifica a los enlaces (como es el caso de Examples), etc.

Los nueve caracteres restantes indican los permisos asociados a dichos archivos o directorios y se agrupan en tres grupos de tres letras. Para comprender a qué corresponde cada una, conviene recordar que en Linux cada usuario pertenece a cierto grupo, lo que permite gestionar privilegios de grupo más fácilmente, algo similar a lo que ocurre en Windows y otros sistemas operativos. Así, el primer grupo de tres letras corresponde a los permisos para el propietario del fichero (el que lo ha creado), el segundo a los de todo el grupo del usuario, y el tercero al resto de usuarios que tienen acceso a nuestra máquina. Y cada una de las letras se refiere a los tipos de permiso con que cuentan cada uno de ellos (la secuencia siempre es la misma): r de lectura, w de escritura y x de ejecución. Si el fichero dispone de alguno de esos permisos para cualquiera de los grupos de tres caracteres, aparecerán esas letras. Si no, en su lugar aparecen guiones.

Page 27: Manual

27

En resumen, siguiendo el ejemplo drwxr-xr-x referente a Documentos

* Es un directorio: primera letra d. * Las tres primeras letras rwx indican que el usuario edisue (es decir, yo misma) tiene derecho a leer, modificar y ejecutar los archivos en él contenidos. * Las tres siguientes, r-x, significan que los usuarios que pertenezcan al mismo grupo que “edisue” podrán leer el fichero y ejecutarlo, pero no modificarlo. * Por último, las tres del final, r-x, significan que los demás usuarios podrán leer el fichero y ejecutarlo, pero no modificarlo.

CAMBIAR DE DIRECTORIO: cd (/directorio/ubicación)

La orden cd (CambiarDirectorio/ChangeDirectory) se utiliza para pasar del directorio actual a cualquier otro directorio que especifiques.

Este comando es casi idéntico al de MS-DOS, y sirve para cambiar de directorio. Si lo escribes seguido de una barra, te conducirá al directorio raíz: cd /

Recuerda que, al iniciar la Terminal, se te coloca automáticamente en el directorio home. Para que puedas cambiar a otro directorio, tienes que ejecutar el comando cd seguido por el directorio al cual deseas dirigirte como argumento. Entonces, el directorio nuevo se convierte en el directorio actual. Al nombrar el directorio de destino puedes utilizar rutas absolutas o rutas relativas. Las rutas absolutas son aquellas que empiezan desde el root o raíz representado por la barra / y define la ruta completa a su destino. Por ejemplo:

cd /home/edisue/Música

es un comando que te llevará empezando desde el root /, pasando por el directorio home y edisue, al último directorio Música.

Page 28: Manual

28

En cambio, una ruta relativa empieza desde el directorio de trabajo actual y progresa por la ruta hasta llegar al final de la ruta. Así, en el ejemplo anterior, como nos encontramos en el directorio /home/edisue sólo necesitaremos teclear cd Música para llegar a este subdirectorio. Pero, si el directorio actual es el directorio /home/edisue/Imágenes, recibiremos un error indicando que el directorio Música no existe al utilizar el comando anterior. Este error, muy común por cierto, puede evitarse verificando primero en qué directorio te encuentras y/o crees estar. Para hacer esto, usa el comando pwd (Present Working Directory), sin usar ningún argumento. La salida de este comando es la ruta absoluta a pantalla de tu directorio de trabajo actual.

Para volver al directorio /home tienes dos opciones:

* Utilizar el comando cd tecleando la ruta absoluta al directorio home. Ejemplo: cd /home/edisue * O bien, usar el comando cd sin ningún argumento.

cd ..

Te llevará al directorio padre de aquél en el que estás situado (así irás subiendo sucesivamente de directorio en directorio, por ejemplo). Observa que los dos puntos deben ir separados del comando cd con un espacio, algo que no es obligatorio en Windows.

Si intentas entrar en un directorio o carpeta para el que no tienes permiso, el sistema te negará el acceso a dicho directorio. CREAR DIRECTORIOS: mkdir (nombre del directorio)

La orden mkdir (del inglés MaKeDIRectory) se utiliza para crear directorios, así de simple. El directorio o carpeta adquirirá el nombre que tecleemos a continuación del comando.

mkdir nuevodirectorio

Por ejemplo: Inicia la Terminal Teclea mkdir nuevodirectorio y pulsa la tecla ENTER Observa en modo gráfico cómo se ha generado una nueva carpeta en tu carpeta personal llamada nuevodirectorio

Resulta, por tanto, el mismo efecto que si utilizas la opción del menú contextual del botón derecho del ratón sobre tu directorio personal, pulsas sobre Crear nueva carpeta y tecleas el nombre nuevodirectorio.

Nota. Recuerda siempre comprobar en qué directorio te encuentras en cada momento, para crear nuevos subdirectorios. Puedes utilizar también rutas absolutas o rutas relativas.

Por ejemplo, los siguientes comandos

edisue@edisue-laptop:~$ mkdir /home/edisue/nuevacarpeta edisue@edisue-laptop:~$ mkdir nuevacarpeta

producen los mismos efectos: crear una carpeta en el directorio personal denominada nuevacarpeta.

Con la opción -p también creará los directorios padre, si éstos no existen. Por ejemplo, con la orden

Page 29: Manual

29

mkdir -p audio/MP3/maná

se creará el directorio maná dentro de MP3, que a su vez será un subdirectorio de audio, creando primero éste si no existe, y el siguiente…

Nota: si no utilizas la opción -p el directorio hijo sólo se creará si ya tienes creado en el sistema el directorio padre. En caso de que este no exista, la Terminal te lo indicará con un mensaje indicándote que no existe el fichero o directorio. ELIMINAR ARCHIVOS/DIRECTORIOS: rm (nombre de archivo o directorio)

La orden rm (del inglés ReMove) se utiliza para borrar o eliminar archivos o directorios.

rm baccara.ogg

Sin añadir ningún modificador, rm borra o elimina archivos. En primer lugar, tendrás que “colocarte” en el directorio en el que se encuentra el archivo a borrar. Por ejemplo, utiliza el mandato cd para entrar en el directorio en el que se encuentra, en este caso es un archivo de audio situado en mi directorio personal y, a continuación, teclea la orden anterior.

Nota. Ten mucho cuidado cuando utilices este mandato, eliminar - borrar siempre puede ocasionar pérdidas de información importante si no sabes lo que estás haciendo.

rm -r “nombre de directorio” o rmdir “nombre del directorio”

En este caso la orden borra o elimina directorios. En primer lugar, tendrás que “colocarte” fuera del directorio que deseas eliminar y, a continuación, teclear la orden correspondiente. El directorio debe estar vacío para ser eliminado; en caso contrario, el sistema te indicará que no lo está y no te permitirá eliminarlo.

edisue@edisue-laptop:~$ rm -r prueba

Con este comando se eliminará el directorio prueba (y todo su contenido) presente en mi directorio personal.

Nota. Algunos sistemas piden confirmación a la hora de eliminar archivos o directorios, por lo que si quieres evitar tener que ir respondiendo si a todas las peticiones, puedes añadir el modificador -f que fuerza el borrado. COPIAR ARCHIVOS/DIRECTORIOS: cp (nombre de archivo o directorio) (a directorio o archivo)

La orden cp (CoPiar) copia tanto archivos como directorios. La orden sin ningún modificador añadido copia los archivos que especifiques. Si tecleas la orden, seguida del modificador “r” realizará la copia de cualquier directorio que especifiques.

cp origen destino

Este comando realiza una copia del fichero, ficheros o directorios (o cualquier combinación) desde el origen hasta el destino. Simplemente tienes que darte cuenta de que la última ruta indicada es la del destino. Con un ejemplo lo entenderás mejor. Imagina el siguiente supuesto: tienes en tu carpeta personal un archivo linux.txt que deseas copiar al subdirectorio o subcarpeta linux de la carpeta PDF que está en tu directorio personal. El comando que deberías utilizar es el siguiente:

edisue@edisue-laptop:~$ cp linux.txt /home/edisue/PDF/linux

Page 30: Manual

30

El mismo efecto (copiar el archivo linux.txt en esta ubicación) lo obtendrías tecleando la ruta relativa:

edisue@edisue-laptop:~$ cp linux.txt PDF/linux

Nota. El comando cp realiza una copia del archivo (no lo elimina ni borra de su ubicación original) en el directorio que especifiques.

cp archivo1 /home/edisue/Documentos

Realiza la copia del archivo1 presente en el directorio en el que actualmente estás al directorio Documentos existente en tu directorio personal: el comando realiza una copia exacta del archivo sin borrar el archivo de su ubicación original.

cp -r “nombredeldirectorio” /home/edisue/PDF

Ampliando la tarea imagina ahora que quieres copiar todo el directorio Documentos de tu carpeta personal en el directorio PDF. Para copiar un directorio completo debes utilizar el modificador -r. Por ejemplo, el mandato

edisue@edisue-laptop:~$ cp -r Documentos PDF

copia el directorio Documentos presente en mi carpeta personal en el interior del directorio PDF de mi carpeta personal. CAMBIAR EL NOMBRE A ARCHIVOS Y DIRECTORIOS: mv (nombre de archivo o directorio)

Se trata de un comando de funcionamiento muy similar al anterior. La orden mv (MoVer) mueve o cambia el nombre del archivo o directorio especificado. Utiliza este mandato para mover archivos entre directorios o directorios entre sí, o renombrar archivos y directorios. ¡Pero ten mucho cuidado al usarlo para evitar contratiempos y pérdidas de información!.

Por ejemplo, el comando

mv /home/edisue/PDF/linux Documentos

mueve el directorio linux que se localiza en PDF de mi carpeta personal al directorio Documentos de mi carpeta personal. BUSCAR ARCHIVOS/DIRECTORIOS: locate (nombre del archivo o directorio)

La orden locate buscará en tu equipo el archivo cuyo nombre coincida con el nombre del archivo que especifiques. Esta orden se ejecuta automáticamente una vez al día, si dejas tu equipo encendido. Puedes utilizar comodines para buscar uno o más archivos, como «*» (para todos los archivos) o «?» (que coincide con cualquier carácter).

Si has realizado todas las tareas anteriores, habrás comprobado qué eficazmente resuelve Ubuntu sus tareas de gestión de ficheros y directorios a través de la consola de comandos y aunque el entorno gráfico en GNU/Linux te permita realizar todas ellas con simples clics de ratón puede ser que acabes acostumbrándote a esta diferente manera de interactuar con el sistema. ¡No desprecies su funcionalidad, en algunos momentos la Terminal se te hará imprescindible!.

La Terminal y los primeros comandos en Ubuntu

Page 31: Manual

31

En sus inicios el sistema operativo Linux ni siquiera disponía de un entorno gráfico sobre el que ir ejecutando aplicaciones en las tradicionales ventanas (como es el caso de los sistemas Windows). Al igual que en los sistemas Unix originales, todas las operaciones se realizaban mediante distintos tipos de shell, también conocidas como consolas o terminales, programas que interpretan la secuencia de comandos y operandos introducidos y actúan en consecuencia. Hasta la aparición de los entornos gráficos para GNU/Linux, la línea de comandos era la forma más directa de “comunicarse” con el ordenador, de interactuar con el equipo y con sus sistema operativo, ¡y la única!. Esto hizo que durante mucho tiempo se considerara que el manejo de las distribuciones GNU/Linux no era accesible a usuarios poco experimentados. Actualmente, todas las distribuciones GNU/Linux cuentan con herramientas gráficas para la gran mayoría de los programas y, por tanto, no se hace imprescindible utilizar obligatoriamente la consola o Terminal ni acudir a la línea de comandos para realizar la mayor parte de las tareas que te propongas en el sistema. Ello ha supuesto un gran avance para que usuarios que, tradicionalmente no se atreverían a utilizar este sistema, se hayan animado a utilizarlo y, en consecuencia, las distribuciones GNU/Linux hayan comenzado a popularizarse.

Ten en cuenta que este origen aún está presente, en gran medida, en el sistema y que los entornos gráficos que puedes apreciar en Linux son sólo una interfaz que facilita y hace mucho más cómodo el acceso a las distintas funciones del sistema operativo de modo que, con unos cuantos clics de ratón, podrás realizar la acción deseada sin tener que escribir nada, pero que, en un segundo plano, están actuando todos esos comandos y operandos (que no necesitas, de momento, conocer) de modo totalmente transparente para ti, sin que ni siquiera te enteres de ello. El usuario administrador

En GNU/Linux las tareas de administración son desempeñadas por el usuario root (en español, raíz). Los usuarios normales, por razones de seguridad, no tienen este tipo de acceso. Sin embargo, Ubuntu, por defecto, tiene desactivada la cuenta de administrador (root) del sistema para incrementar aún más su seguridad. En su lugar, se concede el acceso administrativo a cada usuario individual. La primera cuenta de usuario que hayas creado en tu sistema durante la instalación (es decir, aquella en la que tecleaste tus datos de usuario) tendrá, de forma predeterminada, privilegios de administración.

De esta manera, siempre que necesites realizar tareas administrativas, de gestión del sistema, de instalación o desinstalación de aplicaciones, de ejecución de aplicaciones que requieran privilegios de administrador, se te solicitará que teclees la contraseña del usuario que creaste en la instalación. El sistema la recordará durante unos 15 minutos (característica diseñada para permitirte realizar varias tareas administrativas sin tener que introducir la contraseña constantemente). Después volverás a ser un usuario normal y corriente para prevenir que determinadas aplicaciones maliciosas dañen el sistema o poder así evitar estropear algo de manera accidental.

La consola o Terminal

Una terminal es algo parecido al Símbolo del sistema de Windows XP. También se llama frecuentemente línea de órdenes, línea de comandos o shell. Trabajar en la línea de comandos no es una tarea ni tan complicada ni tan aburrida como se pudiera pensar. En mi caso, por ejemplo, que me inicié en el uso del ordenador en los tiempos del MS-Dos, no difiere demasiado de lo que realizaba en aquellos tiempos… ¡qué tiempos!. No necesitas tener conocimientos especiales para saber cómo utilizar la línea de comandos pues, al fin y al cabo, es un programa como cualquier otro. Lo que en realidad hace el sistema es ejecutar un intérprete de comandos o shell que hace lo que su nombre sugiere: interpretar. Leerá los comandos que vayamos escribiendo, localizará la aplicación apropiada en el sistema y ejecutará dicha aplicación siguiendo las instrucciones que le hayamos escrito nosotros.

En ciertas ocasiones, deberás utilizar obligatoriamente la Terminal (si el entorno gráfico falla, por ejemplo, o deseas realizar ajustes de configuración con un mayor control sobre el sistema) y toda la potencia de la consola de comandos. Además, con ella no sólo podrás acceder a todas las aplicaciones X Window, sino también a un montón de programas que

Page 32: Manual

32

aún no cuentan con interfaz gráfica, y a los comandos de Linux. Los usuarios más avanzados de GNU/Linux encuentran que resulta mucho más cómodo y rápido trabajar en línea de comandos y lo prefieren a utilizar las correspondientes herramientas gráficas. Y aunque cada vez sea menos usada, resulta muy práctico conocer algo de su manejo básico. Prácticamente cualquier cosa que puedas hacer en modo gráfico la podrás hacer también en modo texto. En ciertos casos, será preferible que acudas a las aplicaciones gráficas (escuchar un CD de audio, grabar un DVD de datos, ver una película, utilizar un procesador de textos, etc., por ejemplo). Pero habrá muchas situaciones en las que la consola de comandos será mucho más eficaz, potente y ágil para aprovechar las posibilidades de GNU/Linux.

Lo primero que debes hacer es lanzar o abrir la Consola o Terminal. Iniciar la Consola o Terminal en Ubuntu es muy sencillo. Vete al menú Aplicaciones - Accesorios - Terminal. Una nueva ventana aparece en pantalla en la que observarás un simple menú en la parte superior y un espacio en blanco ocupando toda la parte inferior de la ventana, en el que teclearás los comandos.

Su apariencia es muy similar a la del intérprete de comandos de los sistemas Windows. Y, en esencia, el principio es el mismo, aunque las posibilidades en el caso de GNU/Linux son mucho mayores. La forma de “moverse” por ella es parecida a la de MS-DOS, y muchos comandos son también muy similares.

Como observas en la captura de pantalla anterior, una vez que has ingresado en el sistema, la Terminal te ofrece en primera instancia el denominado prompt del intérprete de comandos. Se trata de una cadena de texto que indica que la Terminal se encuentra preparada para recibir órdenes:

edisue@edisue-laptop:~$

Este prompt, aunque viene configurado por defecto, en el formato que se muestra, es personalizable. Apreciarás el nombre del usuario registrado (en este caso, edisue), y el nombre de la máquina (edisue-laptop) acompañado del directorio en el que estamos situados. Estos últimos caracteres de esta cadena son más especiales de lo que podría pensarse:

* El símbolo ~ representa el directorio personal de trabajo, en este caso /home/edisue. * El carácter $ indica que el usuario que está en ese momento manejando la consola es un usuario normal del sistema.

Page 33: Manual

33

* Si el usuario registrado fuera el root, el símbolo sería #, estaríamos entonces ejecutando comandos con privilegios de superusuario. Por esto cuando en cualquier manual o tutorial te digan que teclees una orden tal como #addsuser, significará que esa orden únicamente puede ejecutarse como root.

Algunas consideraciones a la hora de manejar la Consola o Terminal.

1. Recuerda que en Ubuntu, la primera cuenta de usuario que hayas creado en tu sistema durante la instalación (es decir, aquella en la que tecleaste tus datos de usuario) tendrá, de forma predeterminada, privilegios de administración. En muchas ocasiones en las que teclees alguna orden o comando en la Terminal se te solicitará la contraseña de root, tendrás que teclearla y pulsar Intro. 2. Cuando teclees la contraseña, no te extrañes si no ves nada en pantalla, ni siquiera unos asteriscos, no te preocupes, el sistema está atendiendo a lo que escribes. A esta manera de introducir la contraseña se la conoce como “contraseña sin eco” y es la forma predeterminada de registrarse en una consola. 3. GNU/Linux es un sistema case sensitive, es decir, sensible a mayúsculas y minúsculas. Tienes que escribir los comandos de una forma concreta, no pudiendo sustituir mayúsculas por minúsculas, o viceversa, porque para el sistema operativo son caracteres distintos. Por eso, cuando “copies” comandos debes escribirlos siempre tal y como aparecen. 4. En general, el formato de los comandos será una palabra (o una orden) seguida de sus argumentos.

Los primeros comandos

No se trata de hacer un manual avanzado sobre comandos ni de describir pomenorizadamente todos y cada uno de los comandos disponibles en GNU/Linux, sino de enumerarte aquellos que te serán útiles para mantener tu sistema en forma y que, además, son comúnmente utilizados en muchas de las tareas habituales del sistema y, sobre todo, mostrarte ejemplos de utilización. Si deseas recabar mayor información siempre podrás buscar información sobre cada comando en particular en Internet o acudir a la ayuda que el propio Terminal te ofrece tecleando el comando man seguido del nombre del comando a utilizar.

Los primeros mandatos que vas a utilizar serán aquellos que se refieren a la gestión de los archivos del sistema. VER DIRECTORIOS: ls

La orden ls (LiSta) muestra el listado de archivos del directorio en el que estás.

Es un comando similar al “dir” de MS-DOS. Al ejecutarlo se muestra el contenido de un directorio. En el caso de la siguiente captura de pantalla, el directorio personal del usuario /home/edisue/.

En mi carpeta personal se incluyen diferentes archivos baccara.mp3, Unidad_4.pdf… una larga lista de directorios propios

Page 34: Manual

34

Documentos Escritorio, Jclic, PDF…, un enlace a un directorio con permisos de sólo lectura Examples o un archivo comprimido tar, identificados, como ves, por códigos de color.

Como en la inmensa mayoría de comandos disponibles, ls admite ciertos modificadores que permiten ajustar su comportamiento y le ofrece mayores posibilidades.

ls -a

Ofrece información mucho más completa al listar todos los archivos, incluyendo los archivos ocultos

Como ves, la lista de archivos es mucho mayor y apreciarás que incluye los archivos ocultos, esos que en la lista empiezan por un punto.

ls -l

Completísimo listado de archivos en formato largo, con información adicional sobre los archivos, como el tamaño o la fecha de creación de cada archivo.

El primero de los campos de la lista está compuesto por una cadena de texto formada por un grupo de diez letras que te suministra datos acerca de los permisos del archivo. Por ejemplo:

drwxr-xr-x referente a Documentos

La primera letra determina qué tipo de fichero es. Si se muestra una d se trata de un directorio. Si, en cambio, aparece un guión es un archivo normal, ya sea de texto, imagen o binario (-rw-r-r– de baccara.mid); la letra l identifica a los enlaces

Page 35: Manual

35

(como es el caso de Examples), etc.

Los nueve caracteres restantes indican los permisos asociados a dichos archivos o directorios y se agrupan en tres grupos de tres letras. Para comprender a qué corresponde cada una, conviene recordar que en Linux cada usuario pertenece a cierto grupo, lo que permite gestionar privilegios de grupo más fácilmente, algo similar a lo que ocurre en Windows y otros sistemas operativos. Así, el primer grupo de tres letras corresponde a los permisos para el propietario del fichero (el que lo ha creado), el segundo a los de todo el grupo del usuario, y el tercero al resto de usuarios que tienen acceso a nuestra máquina. Y cada una de las letras se refiere a los tipos de permiso con que cuentan cada uno de ellos (la secuencia siempre es la misma): r de lectura, w de escritura y x de ejecución. Si el fichero dispone de alguno de esos permisos para cualquiera de los grupos de tres caracteres, aparecerán esas letras. Si no, en su lugar aparecen guiones.

En resumen, siguiendo el ejemplo drwxr-xr-x referente a Documentos

* Es un directorio: primera letra d. * Las tres primeras letras rwx indican que el usuario edisue (es decir, yo misma) tiene derecho a leer, modificar y ejecutar los archivos en él contenidos. * Las tres siguientes, r-x, significan que los usuarios que pertenezcan al mismo grupo que “edisue” podrán leer el fichero y ejecutarlo, pero no modificarlo. * Por último, las tres del final, r-x, significan que los demás usuarios podrán leer el fichero y ejecutarlo, pero no modificarlo.

CAMBIAR DE DIRECTORIO: cd (/directorio/ubicación)

La orden cd (CambiarDirectorio/ChangeDirectory) se utiliza para pasar del directorio actual a cualquier otro directorio que especifiques.

Este comando es casi idéntico al de MS-DOS, y sirve para cambiar de directorio. Si lo escribes seguido de una barra, te conducirá al directorio raíz: cd /

Recuerda que, al iniciar la Terminal, se te coloca automáticamente en el directorio home. Para que puedas cambiar a otro directorio, tienes que ejecutar el comando cd seguido por el directorio al cual deseas dirigirte como argumento. Entonces, el directorio nuevo se convierte en el directorio actual. Al nombrar el directorio de destino puedes utilizar rutas absolutas o rutas relativas. Las rutas absolutas son aquellas que empiezan desde el root o raíz representado por la barra / y define la ruta completa a su destino. Por ejemplo:

cd /home/edisue/Música

es un comando que te llevará empezando desde el root /, pasando por el directorio home y edisue, al último directorio Música.

Page 36: Manual

36

En cambio, una ruta relativa empieza desde el directorio de trabajo actual y progresa por la ruta hasta llegar al final de la ruta. Así, en el ejemplo anterior, como nos encontramos en el directorio /home/edisue sólo necesitaremos teclear cd Música para llegar a este subdirectorio. Pero, si el directorio actual es el directorio /home/edisue/Imágenes, recibiremos un error indicando que el directorio Música no existe al utilizar el comando anterior. Este error, muy común por cierto, puede evitarse verificando primero en qué directorio te encuentras y/o crees estar. Para hacer esto, usa el comando pwd (Present Working Directory), sin usar ningún argumento. La salida de este comando es la ruta absoluta a pantalla de tu directorio de trabajo actual.

Para volver al directorio /home tienes dos opciones:

* Utilizar el comando cd tecleando la ruta absoluta al directorio home. Ejemplo: cd /home/edisue * O bien, usar el comando cd sin ningún argumento.

cd ..

Te llevará al directorio padre de aquél en el que estás situado (así irás subiendo sucesivamente de directorio en directorio, por ejemplo). Observa que los dos puntos deben ir separados del comando cd con un espacio, algo que no es obligatorio en Windows.

Si intentas entrar en un directorio o carpeta para el que no tienes permiso, el sistema te negará el acceso a dicho directorio. CREAR DIRECTORIOS: mkdir (nombre del directorio)

La orden mkdir (del inglés MaKeDIRectory) se utiliza para crear directorios, así de simple. El directorio o carpeta adquirirá el nombre que tecleemos a continuación del comando.

mkdir nuevodirectorio

Por ejemplo: Inicia la Terminal Teclea mkdir nuevodirectorio y pulsa la tecla ENTER Observa en modo gráfico cómo se ha generado una nueva carpeta en tu carpeta personal llamada nuevodirectorio

Resulta, por tanto, el mismo efecto que si utilizas la opción del menú contextual del botón derecho del ratón sobre tu directorio personal, pulsas sobre Crear nueva carpeta y tecleas el nombre nuevodirectorio.

Nota. Recuerda siempre comprobar en qué directorio te encuentras en cada momento, para crear nuevos subdirectorios. Puedes utilizar también rutas absolutas o rutas relativas.

Page 37: Manual

37

Por ejemplo, los siguientes comandos

edisue@edisue-laptop:~$ mkdir /home/edisue/nuevacarpeta edisue@edisue-laptop:~$ mkdir nuevacarpeta

producen los mismos efectos: crear una carpeta en el directorio personal denominada nuevacarpeta.

Con la opción -p también creará los directorios padre, si éstos no existen. Por ejemplo, con la orden

mkdir -p audio/MP3/maná

se creará el directorio maná dentro de MP3, que a su vez será un subdirectorio de audio, creando primero éste si no existe, y el siguiente…

Nota: si no utilizas la opción -p el directorio hijo sólo se creará si ya tienes creado en el sistema el directorio padre. En caso de que este no exista, la Terminal te lo indicará con un mensaje indicándote que no existe el fichero o directorio. ELIMINAR ARCHIVOS/DIRECTORIOS: rm (nombre de archivo o directorio)

La orden rm (del inglés ReMove) se utiliza para borrar o eliminar archivos o directorios.

rm baccara.ogg

Sin añadir ningún modificador, rm borra o elimina archivos. En primer lugar, tendrás que “colocarte” en el directorio en el que se encuentra el archivo a borrar. Por ejemplo, utiliza el mandato cd para entrar en el directorio en el que se encuentra, en este caso es un archivo de audio situado en mi directorio personal y, a continuación, teclea la orden anterior.

Nota. Ten mucho cuidado cuando utilices este mandato, eliminar - borrar siempre puede ocasionar pérdidas de información importante si no sabes lo que estás haciendo.

rm -r “nombre de directorio” o rmdir “nombre del directorio”

En este caso la orden borra o elimina directorios. En primer lugar, tendrás que “colocarte” fuera del directorio que deseas eliminar y, a continuación, teclear la orden correspondiente. El directorio debe estar vacío para ser eliminado; en caso contrario, el sistema te indicará que no lo está y no te permitirá eliminarlo.

edisue@edisue-laptop:~$ rm -r prueba

Con este comando se eliminará el directorio prueba (y todo su contenido) presente en mi directorio personal.

Nota. Algunos sistemas piden confirmación a la hora de eliminar archivos o directorios, por lo que si quieres evitar tener que ir respondiendo si a todas las peticiones, puedes añadir el modificador -f que fuerza el borrado. COPIAR ARCHIVOS/DIRECTORIOS: cp (nombre de archivo o directorio) (a directorio o archivo)

La orden cp (CoPiar) copia tanto archivos como directorios. La orden sin ningún modificador añadido copia los archivos que especifiques. Si tecleas la orden, seguida del modificador “r” realizará la copia de cualquier directorio que especifiques.

Page 38: Manual

38

cp origen destino

Este comando realiza una copia del fichero, ficheros o directorios (o cualquier combinación) desde el origen hasta el destino. Simplemente tienes que darte cuenta de que la última ruta indicada es la del destino. Con un ejemplo lo entenderás mejor. Imagina el siguiente supuesto: tienes en tu carpeta personal un archivo linux.txt que deseas copiar al subdirectorio o subcarpeta linux de la carpeta PDF que está en tu directorio personal. El comando que deberías utilizar es el siguiente:

edisue@edisue-laptop:~$ cp linux.txt /home/edisue/PDF/linux

El mismo efecto (copiar el archivo linux.txt en esta ubicación) lo obtendrías tecleando la ruta relativa:

edisue@edisue-laptop:~$ cp linux.txt PDF/linux

Nota. El comando cp realiza una copia del archivo (no lo elimina ni borra de su ubicación original) en el directorio que especifiques.

cp archivo1 /home/edisue/Documentos

Realiza la copia del archivo1 presente en el directorio en el que actualmente estás al directorio Documentos existente en tu directorio personal: el comando realiza una copia exacta del archivo sin borrar el archivo de su ubicación original.

cp -r “nombredeldirectorio” /home/edisue/PDF

Ampliando la tarea imagina ahora que quieres copiar todo el directorio Documentos de tu carpeta personal en el directorio PDF. Para copiar un directorio completo debes utilizar el modificador -r. Por ejemplo, el mandato

edisue@edisue-laptop:~$ cp -r Documentos PDF

copia el directorio Documentos presente en mi carpeta personal en el interior del directorio PDF de mi carpeta personal. CAMBIAR EL NOMBRE A ARCHIVOS Y DIRECTORIOS: mv (nombre de archivo o directorio)

Se trata de un comando de funcionamiento muy similar al anterior. La orden mv (MoVer) mueve o cambia el nombre del archivo o directorio especificado. Utiliza este mandato para mover archivos entre directorios o directorios entre sí, o renombrar archivos y directorios. ¡Pero ten mucho cuidado al usarlo para evitar contratiempos y pérdidas de información!.

Por ejemplo, el comando

mv /home/edisue/PDF/linux Documentos

mueve el directorio linux que se localiza en PDF de mi carpeta personal al directorio Documentos de mi carpeta personal. BUSCAR ARCHIVOS/DIRECTORIOS: locate (nombre del archivo o directorio)

La orden locate buscará en tu equipo el archivo cuyo nombre coincida con el nombre del archivo que especifiques. Esta orden se ejecuta automáticamente una vez al día, si dejas tu equipo encendido. Puedes utilizar comodines para buscar uno o más archivos, como «*» (para todos los archivos) o «?» (que coincide con cualquier carácter).

Si has realizado todas las tareas anteriores, habrás comprobado qué eficazmente resuelve Ubuntu sus tareas de gestión

Page 39: Manual

39

de ficheros y directorios a través de la consola de comandos y aunque el entorno gráfico en GNU/Linux te permita realizar todas ellas con simples clics de ratón puede ser que acabes acostumbrándote a esta diferente manera de interactuar con el sistema. ¡No desprecies su funcionalidad, en algunos momentos la Terminal se te hará imprescindible!.

COMANDOS BASICOS DE LINUX

Una de las formas de utilizar Linux es el llamado Modo consola, con una serie de comandos específicos de Linux.

Este modo es bastante utilizado, por lo que es conveniente saber cuales son sus principales comandos y qué es lo que realizan.

Vamos a ver en este tutorial una serie de comandos básicos generales de este modo consola de Linux.

Estos comandos están divididos en varios apartados para una más fácil identificación:

Para el manejo de archivos:

cd - sirve para cambiar el directorio compress - con este comando se comprimen archivos en formato .Z cp - hace una copia de un archivo chmod - cambia los permisos de un archivo o directorio chown - cambia el propietario del archivo o directorio df - muestra el espacio libre en disco du - muestra el espacio utilizado en disco fdformat - formatea un disquete fdisk - se utiliza para particiona unidades file - determina el tipo de archivo a través del análisis parcial de su contenido find - hace una búsqueda a un archivo determinado fsck - examina el sistema de archivos gzip - descomprime un archivo en formato GZip ln - crea un enlace simbólico o físico, dependiendo de la opción ls - lista el contenido de un directorio

Page 40: Manual

40

mkdir - crea un directorio mkfs - crea un nuevo sistema de archivos mkswap - crea un espacio de intercambio more - muestra el contenido de un archivo mount - monta una unidad o partición en el sistema de archivos mv - mueve un archivo y también se utiliza para renombrar pwd - devuelve la cadena correspondiente al directorio actual rm - borra un archivo rmdir - borra un directorio swapon - activa el espacio de intercambio swapoff - desactiva el espacio de intercambio tar - empaqueta o desempaqueta un archivo en formato .tar type - muestra la ubicación de un archivo señalando su "path" umount - desmonta una unidad o partición en el sistema de archivos

Para el manejo de procesos:

free - muestra la memoria libre y utilizada halt - apaga la maquina kill - mata un proceso señalando el número de éste ldd - muestra las librerías necesarias para ejecutar un proceso ps - muestra todos los procesos que se están ejecutando en el sistema pstree - muestra todos los procesos que se están ejecutando en el sistema, pero en forma de árbol reboot - reinicia el sistema shutdown - cierra el sistema top - monitorea procesos y el estado del sistema uname - muestra información del sistema

Para el manejo de usuarios:

adduser - crea una cuenta de usuario chsh - este comando cambia la shell de un usuario groups - muestra el listado de grupos de usuarios del sistema id - muestra la información de usuario y grupo de un determinado usuario logout - se sale del sistema deslogueando al usuarui, peromitiendo iniciar sesión con otro usuario passwd - cambia la contraseña de un determinado usuario su - le da privilegios de root (administrador) a un usuario talk - permite hablar con otros usuarios users - lista los usuarios conectados al sistema who - muestra información de los usuarios conectados al sistema whoami - muestra nuestra información

De red:

ping - manda paquetes esperando una respuesta del lugar que le indiquemos ifconfig - muestras las tarjetas de red (Ethernet) iwconfig - muestra Las tarjetas de red (Wifi) host "destino" - muestra la IP del "destino"

Para el manejo de paquetes:

Page 41: Manual

41

rpm - "opcion" "paquete" - instala o desinstala el "paquete" dependiendo de la opción dpkg - "opcion" "paquete" - instala o desinstala el "paquete" dependiendo de la opción, este comando solo sirve para paquetes debian. tar - "opcion" "paquete" - comprime o descomprime el "paquete" de formato tar.gz, tar.tgz o tar.bz2

Bien, esperamos que este listado les sea de utilidad.

Aclaración sobre este artículo

En el siguiente artículo se incluyen comandos acompañados de opciones/parámetros. Los elementos entre corchetes se han de escribir sin los corchetes a la hora de ponerlos en la consola.

Ejemplo: Mostrar el contenido del fichero carta.txt

En este artículo veríamos:

cat [fichero]

pero en realidad tendremos que escribir en la consola:

cat carta.txt

Ficheros y miscelánea

Comando Acción Comentarios

ls Lista los archivos de un directorio concreto ls -l = Añade información sobre los atributos

ls -a = Lista todos los archivos incluyendo los ocultos

ls -R = Lista el contenido del directorio y todos sus subdirectorios recursivamente

cat [fichero] Muestra el contenido de un ficherocat -n [fichero] = Muestra el contenido de un fichero numerando sus lineas

more [fichero]Muestra un fichero de forma tabulada como una página del man

less [fichero]Similar a more, permite tanto avanzar como retroceder entre las páginas

echo [cadena] Repite la cadenaecho -e [cadena] = Habilita la interpretación de caracteres de escape

stat [fichero] Muestra el estado de un ficherostat -f [fichero] = Muestra el estado del sistema de ficheros

Page 42: Manual

42

tail [archivo] Muestra las ultimas lineas de un archivotail -n [n] [archivo] = Muestra las ultimas n lineas del archivo

head [archivo] Muestra las primeras lineas de un archivohead [n] [archivo] = Muestra las n primeras lineas de un archivo

find [patron] Busca las coincidencias con el patrón dentro del directorio y sus subdirectorios

find [ruta] [patron] = Busca las coincidencias con el patron dentro de la ruta

find [patron] -print = Busca las coincidencias y muestra la ruta completa de estas.

find -size [tam] = Busca aquellos archivos menores que el tamaño señalado

man find = Muestra un listado las múltiples opciones y usos de find

whereis [programa]Busca la ruta donde se encuentra el programa, su ayuda, etc.

grep [opciones] [expresión regular] nombredearchivo

Toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para esa expresión regular. También podemos redireccionar la salida de un determinado comando por medio de una tubería (Alt Gr+ 1) y filtrarla con grep usando la expresión regular como criterio.

grep cadena archivo = Muestra las líneas del archivo que contienen la cadena

ps -ef | grep nombredeproceso = Lista los procesos que se estén ejecutando y que contengan la cadena nombredeproceso

grep palabra * = Muestra todas las líneas que contienen la cadena "palabra" en una lista de archivos (donde "*" representa todos los archivos en el directorio actual)

type [comando] Busca la ruta donde se encuentra el comando

which [programa]Busca la ruta donde se encuentra el programa o comando

pwd Muestra el directorio actual

historyMuestra los comandos utilizados por el usuario en orden cronológico

fc -l Muestra los últimos comandos usados por el usuario

eject [unidad óptica]Expulsa la unidad óptica seleccionada (Podemos encontrarlas en /media)

eject -t [unidad óptica] = Cierra la bandeja de la unidad óptica (cdrom, dvd ...)

cd Cambia al home o al directorio raíz si se lanza como root

cd [ruta] = Se desplaza al directorio especificado en la ruta

cd .. = Se mueve al directorio anterior

cd ../.. = Se mueve dos directorios atrás.

cp [origen] [destino] Copia el archivo origen al directorio destino cp -R [origen] [destino] = Copia un directorio recursivamente (directorio y subdirectorios)

cp -p [origen] [destino] = Copia preservando los

Page 43: Manual

43

permisos y las fechas

cp [archivo] [archivo nombre cambiado] = Copia el archivo y lo cambia de nombre

mv [origen] [destino] Mueve al archivo origen al directorio destino mv [archivo] [archivo_nombre_cambiado] = Cambia de nombre un archivo

mv se parece a cp, excepto que borra el archivo original después de copiarlo. Se puede entender como la utilización conjunta de cp y rm.

mv renombra un archivo (que es el primer parámetro) si el segundo parámetro es un archivo. Si el segundo parámetro es un directorio, mv moverá el archivo al nuevo directorio, manteniendo el mismo nombre simple.

mkdir [directorio] Crea un nuevo directorio dentro del directorio.

rmdir [directorio vacío] Elimina el directorio vacío

rm [archivo] Elimina un archivo completamenterm -r [directorio] = Elimina un directorio recursivamente (directorio y subdirectorios)

ln [archivo]Crea un enlace duro (mismo archivo con distintos nombre)

ln -s [archivo] = Crea un enlace blando

diff [opciones] [fichero1] [fichero2]

Compara los dos ficheros diff -w [fichero1] [fichero2] = Descarta el espacio en blanco cuando compara las lineas

diff -q [fichero1] [fichero2] = Informa solo si los ficheros son distintos

diff -y [fichero1] [fichero2] = Muestra la salida a dos columnas

passwd Permite al usuario cambiar su contraseñasudo passwd = Permite al usuario cambiar o crear la contraseña de root

man comandoMuestra el manual de un comando, un paquete, etc. Resulta muy útil para aprender a utilizar dicho comando, sus modificadores y argumentos.

man aptitude = Nos despliega la ayuda de aptitude, sus opciones y posibilidades.

clear Limpia la pantalla

reset Reinicia la terminal

date Muestra la hora y la fecha en formato completo date -u = Muestra la hora y fecha en formato completo en UTC

date '+format' = Formatea la hora y la fecha -> date '+Dia: %m/%d/%y%n Hora:%H:%M:%S'

man date = Muestra un listado con todos los posibles formatos

who Muestra los usuarios que hay logeados en el sistema

Page 44: Manual

44

whoami Muestra la información del propio usuario

write [user]Permite mandar un mensaje a un usuario conectado al sistema (valido para red), para finalizar pulsar Ctrl+D

mesg Muestra el estado actual de la terminalmesg [y | n] = Esta orden permite al usuario que la ejecuta habilitar (y) o inhibir (n) el permiso de escritura sobre su terminal

mail [usuario]Permite intercambiar correo electrónico con otros usuarios. Similar a write solo que el usuario no necesita estar conectado.

uname Muestra el sistema UNIX sobre el que estamos trabajando

uname -a = Muestra toda la información sobre el tipo de sistema que se esta utilizando

uname -m = Muestra el tipo de arquitectura que se esta utilizando

uname -s = Muestra el nombre del sistema

uname -n = Muesta el nombre por el que se identifica el sistema en la red

uname -r = Muestra la revision (release) del kernel que estamos usuando

uname -v = Muestra la version del kernel que estamos usando

chmod [+|-][rwx] [archivo]

Añade(+) o elimina(-) los permisos de lectura(r), escritura(w) o ejecucion(x) del archivo o directorio.

g|o|a][+|-][rwx] [archivo] = Cambia los persmisos al usuario(u), grupo(g), otros(o) o a todos(a)

chmod [mascara] [archivo] = Cambia los permisos al archivo segun la mascara, donde 000 quita todos los permisos y 777 da todos los permisos.

umaskMuestra los permisos con los que el usuario creara sus archivos por defecto

umask [mascara] = Fija los permisos que tendra por defecto cualquier archivo creado por el usuario. 777 quita todos los permisos y 000 da todos los permisos.

chown [nuevo propietario] [archivos]

Cambia de propietario a los archivos

chgrp [grupo nuevo][archivos]

Cambia de grupo a los archivos

mkfs.msdos /dev/fd0 Formatea en formato MsDos un disquette

fdformat /dev/fd0Formatea en formato MsDos un disquette y despues verifica el formateo

sleep [tiempo]Congela la terminal durante los segundos especificados

Page 45: Manual

45

export [identificador][=valor]

Define, marca y/o asigna el identificador(es) como variables de entorno que seran exportada a los subprocesos que se generen.

unset [identificador]Permite eliminar una variable identificada por su nombre o identificador

|Redirecciona la salida de un comando con la entrada del siguiente comando

Se escribe mediante Alt Gr + 1

alias nombre='comando' Asigna un nombre simbolico a un comando

Ejecutables

Comando Acción Comentarios

sh nombredeejecutable.sh

Ejecuta un archivo ejecutable .sh

bash nombredeejecutable.sh = Otra forma de ejecutar un archivo ejecutable .sh

./nombredeejecutable.sh = Otra forma de ejecutar un archivo ejecutable

.sh

Impresión

Comando Acción Comentarios

lpr fichero Añade el fichero a la cola de impresionlpr -#n fichero = Realiza "n" copias del fichero, donde n es un numero natural (1,2,3,4,5 ...)

lpq Muestra los documentos en la cola

lprmCancela la impresion del documento actual

lprm nCancela la impresion del trabajo n, siendo n un numero natural.

pr +2 l70 -w 80 -h "Comandos" fichero -t

Formatea un archivo de texto para la impresion

-t = No imprimira cabeceras ni pies de pagina

l70 = Establece la longitud de la página de 70 lineas (66 por defecto)

-w 80 = Establece el ancho de linea en 80 caracteres(72 por defecto).

-h "Comandos" = Establece "Comandos" como cabecera de cada página.

pr l70 -d comandos.txt | lprUna vez formateado el texto lo manda a la cola de impresion

Formatos

Page 46: Manual

46

Comando Acción Comentarios

tidy fichero.htmlAnaliza el codigo de un documento html

tidy -m fichero.html = Corrige modificando el codigo del fichero html

tidy -m -asxml fichero.html = Convierte el fichero html a xml

tidy -m -asxhtml fichero.html = Convierte el fichero html a xhtml

tidy -m -ashtml fichero.xhtml = Convierte un fichero xhtml a html

pdftops fichero.pdf fichero.ps

Convierte un fichero pdf a ps

Compresión y descompresión

Comando Acción Comentarios

zip -r fichero.zip ficheros Comprime en formato .zip unzip archivo.zip = Descomprime un .zip

unzip -v archivo.zip = Muestra el contenido de un .zip sin descomprimirlo

rar a -r0 fichero.rar ficheros Comprime los ficheros en formato .rar

unrar e -r archivo.rar = Descomprime el fichero.rar en el directorio actual

unrar x -r archivo.rar ruta_destino = Extrae el fichero.rar en la ruta especificada

unrar v archivo.rar = Muestra el contenido del fichero.rar sin descomprimirlo

gzip -r ficheros Comprime ficheros a gz gzip -d fichero.gz = Descomprime un fichero.gz

gzip -c fichero.gz = Muestra el contenido de un fichero.gz sin descomprimirlo

bzip2 ficheros Comprime ficheros al formato bz2 bzip2 -d fichero.bz2 = Descomprime un fichero.bz2

bzip2 -c fichero.bz2 = Muestra el contenido de un fichero.bz2 sin descomprimirlo

tar -vcf archivo.tar /fichero1 /fichero2 ...

Empaqueta ficheros o directorios en tar

tar -vxf archivo.tar = Desempaqueta el archivo.tar

tar -vtf archivo.tar = Muestra el contenido del archivo.tar sin descomprimirlo

tar -zvcf archivo.tgz directorio

Empaqueta y comprime (tgz) directorios o ficheros

tar -zvxf archivo.tgz = Desempaqueta y descomprime un archivo.tgz

tar -zvtf archivo.tgz = Muestra el contenido de un tgz sin descomprimirlo ni desempaquetarlo

tar -jvcf archivo.tbz2 directorio

Empaqueta y comprime (tbz2) directorios o ficheros

tar -jvxf archivo.tbz2 = Desempaqueta y descomprime el archivo.tbz2

Page 47: Manual

47

tar -jvtf archivo.tbz2 = Muestra el contenido sin desempaquetar ni descomprimir el .tbz2

Renombrado

Comando Acción Comentarios

rename 'y/A-Z/a-z/' *.zip

Cambia mayusculas por minisculas en todos los .zip.

*.zip indica el tipo de archivos a renombrar (llamado con * renombra todos).

A-Z indica el patron a modificar.

a-z indica el patron por el que se modifica.

rename 'y/ /_/' * cambia espacios por _ en todos los archivos.

rename 's/expresión //' *.mp3 = Elimina una expresion de todos los mp3.

Gráficos

Comando Acción Comentarios

glxinfo Informacion sobre OpenGl y Glxglxinfo | grep "direct rendering" = Indica si esta activada la aceleracion 3D

showrgbMuestra los colores reconocidos por el sistema y su codigo RGB

banner textoMuestra un cartel ascii con el texto de forma vertical

banner -w[n] texto = Hace el banner con el tamaño indicado por n, siendo n un numero (Sin los corchetes)

figlet texto Muestra un cartel ASCII con el texto de forma horizontal

figlet -w[n] texto = Similar a banner pero en formato horizontal

figlet -t texto = La salida se mostrara con su anchura maxima

figlet -c texto = La salida se mostrara centrada

xwd > ventana.xwd Captura una ventanaxwd -root -screen > pantalla.xwd = Captura la pantalla

gnome-screenshotCaptura la pantalla en el escritorio gnome

gnome-screenshot --window = Captura la ventana en el escritorio gnome

import -window - ventana.jpgCaptura una ventana en cualquier formato

xwud -in pantalla.xwdMuestra imagenes en formato .xwd

Page 48: Manual

48

identify imagen.gifMuestra las propiedades de una imagen

pdfimages fichero.pdf nombre_para_las_imágenes

Extrae las imagenes de un .pdf

convert *.jpg catálogo.pdfCrea un catalogo pdf con las imagenes

display "vid:*.jpg"Crea un indice grafico con las miniaturas

convert imágen_color.jpg -monochrome imágen_b/n.jpg

Convierte una imagen a blanco y negro

convert imagen_original.ppm imagen_nueva.jpg Cambia el formato de una imagen

convert -sample 100x50 imagen_original.jpg imagen_nueva.jpg

Cambia las dimensiones de una imagen

mogrify -format jpg *.ppmConvierte a .jpg todas las imagenes .ppm

mogrify -format png -sample 20%x20% *.jpgCrea miniaturas de varias imagenes

convert -delay 15 imag1.jpg imag2.jpg imag3.jpg remero.gif

Crea un gif animado con varias imágenes (15 es el tiempo entre imagenes en centésimas)

convert imagen.gif -adjoin imagen.jpgExtrae los fotogramas de un .gif animado

convert -font courier -fill yellow -pointsize 25 -draw 'text 100,250 texto' imagen.jpg imagen_con_txt.jpg

Añade texto a una imagen

Imágenes

Comando Acción Comentarios

mkisofs -R -J -T -o imagen1.iso fichero1

Crea una imagen de un fichero que se encuentre en nuestro disco duro.

dd if=/dev/cdrom of=imagen.isoCrea una imagen del cd-rom y la vuelca en imagen.iso

cat /dev/cdrom > archivo.iso Similar al anterior

nrg2iso imagen.nrg imagen.iso Convierte una imagen .nrg a .isoPara usar este comando es imprescindible instalar el paquete nrg2iso

bin2iso imagen.cue Convierte una imagen .bin o .cue a .isoPara usar este comando es imprescindible instalar el paquete bin2iso

ccd2iso imagen.img imagen.iso Convierte una imagen img/ccd/sub/cue a .iso Para usar este comando es imprescindible

Page 49: Manual

49

instalar paquete ccd2iso

mdf2iso imagen.mdf imagen.iso Convierte una imagen .mdf o .mds a .isoPara usar este comando es imprescindible instalar paquete mdf2iso

mount -t iso9660 -o loop imagen.iso punto_montaje

Monta una imagen .iso

umount punto_montaje Desmonta una imagen

md5sum archivo.iso > archivo.iso.txt

Genera la suma md5 de un archivo .txt

md5sum -w -c archivo.iso.txt Verifica la suma md5 de un archivo

Grabación de CD y DVD

Comando Acción Comentarios

cdrecord -v dev=0,0,0 fs=16M speed=30 imagen.iso Grabar un cd de datos/imagen

cdrecord -v dev=0,0,0 fs=16M speed=30 -eject -isosize /dev/sr1 Copiar un cd de datos/imagen

cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav Grabar un cd de audio

cdrdao copy -v 2 --device 0,0,0 --source-device 0,1,0 --reload \ --eject --on-the-fly --fast-toc --paranoia-mode 0

Copia un cd de audio

cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav -data imagen.iso Graba un cd mixto

cdrecord -v blank=fast Borrar un cd regrabable

growisofs -Z /dev/sr0 -R -J archivo Grabar un cd de datos/imagen

growisofs -M /dev/sr0 -R -J archivoAñade más datos a un dvd multisesión

growisofs -dvd-compat -Z /dev/sr0=imagen.isoGraba una imagen previamente creada

dvdrecord -v dev=0,0,0 blank=fast Borra un dvd regrabable

dvdbackup -M -i/dev/sr0 -o ~/copia_dvd/ Ripea un video dvd

vobcopy -i /dev/sr0 -m -o ~/copia_dvd/ Similar a la anterior

Extracción de CD

Comando Acción Comentarios

cdda2wav -B -H -D /dev/sr1 -s -x

Extrae un disco de audio completo en archivos .wav separados

cdda2wav -H -D /dev/sr1 -s -x -t 5

Extrae la pista número 5

Page 50: Manual

50

cdparanoia -B -d /dev/sr1

Extrae un disco de audio completo en archivos .wav separados

cdparanoia 5 -d /dev/sr1

Extrae la pista número 5

abcde -d /dev/sr1 -N -x -o mp3

Extrae disco completo en archivos mp3 separados (es necesario instalar paquete abcde)

abcde -d /dev/sr1 -N -x -o mpc = Extrae el disco completo en archivos .mpc separados

abcde -d /dev/sr1 -N -x -o ogg = Extrae el disco en archivos .ogg separados

abcde -d /dev/sr1 -N -x -o ogg tracks 1-3 5 = Extrae las 3 primeras canciones y la quinta

Audio

Comando Acción Comentarios

lame -b 192 -m j tema.wav

Convierte una cancion .wav a .mp3 con bitrate de 192Elvalor 192 puede cambiarse y la opción -h indica máxima calidad)

lame -h -m j --nogap *.wav

Convierte todos los archivos .wav a .mp3

oggenc -b 128 -q 5 tema.wav

Convierte un archivo .wav a .ogg con bitrate de 128 (-b 128) y calidad 5 (-q 5) en un rango de 0 a 10.

oggenc *.wav = Convierte todos los wav en un unico fichero ogg

oggenc -a -l -t *.wav = Convierte todos los .wav en sus respectivos ogg

oggdec tema.ogg = Convierte un archivo .ogg a .wav

oggdec *.ogg = Convierte todos los .ogg a .wav

lame -h --decode tema.mp3 tema.wav

Convierte un archivo .mp3 a .wav

mplayer -ao pcm fichero.asf

Convierte un archivo .asf o .wma a .wav

play cancion Reproduce una cancion en la terminal

Varios

Comando Acción Comentarios

man comando Muestra información sobre el comando apropos palabra_clave = Busca dentro de las declaraciones de man la palabra exacta

apropos -e palabra_clave = Busca la palabra exacta

Page 51: Manual

51

cal Muestra el calendario del mes actual cal -my = Muestra el calendario de todo el año

uptimeMuestra la hora,tiempo de funcionamiento,no usuarios conectados y la carga media

tzconfig Permite seleccionar la zona horaria

tzselect Permite seleccionar la zona horaria

date Muestra la fecha del sistema en formato localdate --help = Muestra todas las opciones de date en castellano

hwclock --show Muestra el reloj Hardware o reloj de Bioshwclock -systohc = Pone el reloj Hardware a la hora del sistema

watch -n tiempo comandoEjecuta un comando cada x segundos (defecto = 2)

clear Limpia la pantalla

reset Reinicia la terminal

Ctrl+C Termina un proceso. Ctrl+Z = Suspende temporalmente la ejecución de un programa.

Ctrl+S = Para la transferencia de datos a la terminal.

Ctrl+Q = Resume,reinicia la tranferencia de datos

Ctrl+Alt+F2 = Salir del entorno gráfico a un terminal.(Fnº según gettys activados en /etc/inittab)

Ctrl+Alt+Supr = Estando en una terminal reinicia(si no se indica otra cosa en /etc/inittab)

hostname Muestra el nombre de la maquina

ttyMuestra el nombre del fichero de la terminal conectada a la salida estandar.

/etc/init.d/servicio stop Para un servicio o demonio /etc/init.d/servicio start = Inicia un servicio o demonio

/etc/init.d/servicio restart = Reinicia un servicio o demonio

startx Arranca el entorno grafico

sh script Ejecuta un script

java -jar fichero.jar Ejecuta un programa java

./[archivo.bin]Ejecuta un archivo binario (también puede usarse con scripts)

consolechars -f fuente.psf.gz

Cambiar la fuente de la consola. Las fuentes se encuentran en /usr/share/consolefonts/

reportbug Enviar bugs

Page 52: Manual

52

exit Termina la ejecucion del programa actual

shutdown -t1 -h now Apaga el pc shutdown -t1 -r now = Reinicia el pc

su Entrar como superusuario

adduser usuario Crea un nuevo usuario adduser usuario grupo = Añade un usuario existente a un grupo existente

adduser --no-create-home usuario = Crea un usuario pero sin directorio personal

addgroup grupo Crea un grupo nuevo

deluser usuario Elimina un usuario deluser usuario grupo = Elimina un usuario del grupo especificado

deluser --remove-home usuario = Elimina un usuario y su directorio personal

delgroup grupo = Elimina el grupo

delgroup grupo --only-if-empty = Elimina el grupo solo si no tiene ningun usuario

usermod -l nuevo_login Cambia el nombre del usuariousermod -d nueva_home -m login = Cambia el nombre del usuario (lo crea si no existe) y tranfiere su contenido.

usermod -e AAAA-MM-DD login

Fecha en que la cuenta de usuario sera desactivada

groupmod -n nuevo_nombre grupo

Cambia el nombre de un grupo

locale Muestra la zona geografica configurada

dpkg-reconfigure locales Reconfigura los locales

dpkg-reconfigure console-data

Reconfigura el teclado

loadkeys ruta_mapa_teclado.gz

Carga el mapa de teclado que le indicamos,que estará en: /usr/share/keymaps

locale charmap Muestra el codigo de caracteres en uso

set Muestra las variables locales definidas

env Muestra las variables de entorno definidas

export Muestra las variables de entorno declaradas

Procesos

Comando Acción Comentarios

memtest Hace una comprobacion del estado de la memoria

Page 53: Manual

53

free -m -s 3 Muestra el uso de la memoria-m en megabytes

-s 3 con una demora de 3 segundos

topMuestra información detallada sobre los procesos en curso (tecla z colorea los activos)

pstree Muestra los procesos en curso en forma de arbol

pidof [comando] Muestra el id del comando

killall [proceso] Para el proceso

strace [comando]Muestra las llamadas al sistema originadas por el comando

fuser -v [archivo]Muestra los procesos que estan usando un archivo o directorio

lsof Lista los ficheros abiertos por los procesos

lsof -c [comando] = Lista los ficheros abiertos por un proceso

lsof +D [Directorio] = Lista los procesos que estan usando el directorio

lsof -i :60627 = Muestra los procesos que se encuentren detras del puerto 60627

[comando] & Ejecuta un comando en segundo plano

nohup [comando] &Ejecuta un comando de forma que si cerramos la terminal siga ejecutandose

jobsLista los procesos en segundo plano identificandolo con su numero de tarea

fg no_tarea Pasa un comando a primer plano

bgPasa a segundo plano un proceso que hemos suspendido temporalmente con Ctrl-Z

nice -n prioridad [comando]

Ejecuta un comando con una prioridad determinada

renice prioridad PID_del_proceso

Cambia la prioridad de un proceso en marcha

at [-f script] [tiempo] Ejecuta un script a una hora y/o fecha concretas

atq = Muestra la lista de tareas programadas de forma numerada

atrm no = Elimina una tarea indentificada por su no

batchIgual que at, salvo que batch sólo ejecuta el script si la carga de cpu es inferior al 80%

Disco duro

Page 54: Manual

54

Comando Acción Comentarios

du -h [fichero]Muestra el espacio que ocupa el fichero o directorio

tree -a -s -L 2Igual que el anterior pero lo muestra en forma de arbol

dfMuestra información sobre particiones montadas

df -h = Medida humana

cfdiskMuestra información sobre particiones

mount Muestra un listado de los dispositivos montados

mount punto_montaje = Monta un dispositivo establecido en fstab

umount punto_montaje = Desmonta un dispositivo establecido en el fstab

mount -t [Sistema_Archivos] /dev/[dispositivo] [punto_montaje] = Monta el dispositvo, ej: mount -t ext3 /dev/hda1 /media/disco1

umount /dev/[dispositivo] = Desmonta un disco

fsck /dev/[dispositivo] Chequea y repara el sistema de archivos de una particion no montada

fsck.ext2 -vpf /dev/hdx = Chequea y repara el sistema de archivos de una particion ext2 no montada

fsck.ext3 -vpf /dev/hdx = Igual pero con una particion ext3

mkfs.ext2 /dev/hdXX Crea un sistema ext2 en la particion seleccionada

mkfs.ext3 /dev/hdXX = Crea un sistema ext3 en la particion seleccionada

mkfs.ext2 /dev/fd0 = Crea un sistema ext2 en el disquette

mkswap /dev/hdXXCrea un sistema de ficheros swap en la partición hdXX

tune2fs -O ^has_journal /dev/hdXXConvierte la particion de ext3 a ext2

tune2fs -j /dev/hdXXConvierte la particion de ext2 a ext3

dd if=/dev/hda of=/dev/hdb bs=1MClona el disco hda en el disco hdb en bloques de 1 Megabyte (para no sobrecargar el sistema)

dd if=/dev/hda of=mbr count=1 bs=512

Copia el MBR (Master Boot Sector)

dd if=mbr of=/dev/hda = Restaura el MBR

dd if=/dev/hda2 of=/sector_arranque_hda2 count=1 bs=512

Copia el VBS (Volume Boot Sector)

dd if=sector_arranque_hda2 of=/dev/hda2 = Restaura el VBS

Page 55: Manual

55

Instalación de software

Comando Acción Comentarios

dpkg -i paquete

Instala un paquete

dpkg -r paquete = Desinstala un paquete

dpkg --purge paquete = Desisntala un paquete y sus archivos de configuracion

dpkg --force -r paquete = Fuerza la desinstalacion de un paquete

dpkg --force-all -r paquete = Fuerza aun mas la desinstalacion de un paquete (Puede comprometer el sistema)

dpkg -c paquete = Muestra el contenido de un paquete

dpkg -L paquete = Muestra todos los ficheros que se instalaron con un paquete

dpkg -S fichero = Muestra a que paquete pertenece un fichero

dpkg --get-selections = Muestra un listado con todos los paquetes instalados

dpkg-reconfigure paquete = Reconfigura el paquete

aptitude update

Actualiza la lista de paquetes

aptitude upgrade = Actualiza el sistema (no instala ni elimina paquetes)

aptitude dist-upgrade = Actualiza el sistema eliminando e instalando paquetes si fuera necesario

aptitude install [paquetes] = Instala los paquetes indicados

aptitude reinstall [paquetes] = Reinstala los paquetes indicados

aptitude remove [paquetes] = Elimina los paquetes indicados

aptitude purge [paquetes] = Elimina los paquetes y sus ficheros de configuracion

aptitude download [paquetes] = Descarga los paquetes en el directorio actual

aptitude hold [paquetes] = Bloqua los paquetes indicados

aptitude unhold [paquetes] = Desbloquea los paquetes seleccionados

aptitude unmarkauto [paquetes] = Desmarca paquetes como instalados manualmente

aptitude markauto = Marca paquetes como instalados manualmente

aptitude search [expresion] = Busca un paquete por nombre o expresion

aptitude show [paquetes] = Muestra información detallada de un paquete

aptitude clean = Elimina los paquetes .deb descargados

Información de hardware

Comando Acción Comentarios

sudo lshw Lista tu hardware

Page 56: Manual

56

sudo lshw -C disk Lista tu hardware especifico (en este caso, discos)-C es la abreviatura del comando -class, que hace lo mismo.

sudo lshw -html > nombre_del_archivo.html

Lista tu hardware específico y guarda un archivo .html en tu directorio de usuario con toda la información

Kernel

Comando Acción Comentarios

uname -a Version del kernel

lsmod Lista los modulos cargados

modinfo [módulo] Muestra informacion sobre un modulo

modprobe [módulo] Inserta un modulo y sus dependecias en el kernelmodprobe -r [módulo] = Elimina un modulo del kernel y los que dependen de él

insmod [módulo] Inserta un modulo en el kernel

rmmod [modulo] Elimina un modulo del kernel

echo [módulo] >> /etc/modules

Inserta un modulo en el kernel permanentemente

depmod [modulo] Comprueba las dependencias del modulo

modconf Programa gráfico para cargar módulos

lastMuestra los usuarios conectados y desconectados en los ultimos dias

hdparm /dev/hdX Verifica el DMA de nuestro disco (sustituir "hdX" por nuestro disco correspondiente)

hdparm -I /dev/hdx = Muestra información sobre el disco

hdparm -d1 /dev/hdX = Activar el dma en nuestro disco

lsdev Muestra información sobre los dispositivos

lspci Muestra los dispositivos PCI conectados

lsusb Muestra los dispositivos USB conectados

less /var/log/kern.log Mensajes del nucleo. less /var/log/syslog = Registro de mensajes relativos a la seguridad.

less /var/log/debug = Registro de información de depuración de los programas.

less /var/log/messages = Mensajes del sistema de carácter informativo.

less /var/log/user.log = Información del usuario.

less /var/log/XFree86.0.log = Información sobre

Page 57: Manual

57

las X

less /var/log/Xorg.0.log = Información sobre las X

less /var/log/auth.log = Accesos al sistema(incluye los intentos fallidos).

lastLista los usuarios conectados/desconectados (fichero /var/log/wtmp).

lastbMuestra los intentos de conexión fallidos (fichero /var/log/btmp).

cdda2wav -scanbus Comprobar el interfaz SCSI.

cdrecord -scanbus Comprobar el interfaz SCSI.

cat /proc/meminfo Información sobre la memoria. cat /proc/cpuinfo = Información sobre el procesador.

cat /proc/devices = Información sobre dispositivos en uso.

FTP

Comando Acción Comentarios

ftp Abre la interface de usuario para

el protocolo de transferencia de ficheros (FTP)

open servidor = Conectar con el servidor

append = Anexar a un archivo

? = Imprimir información de ayuda local

bell = Emitir sonido cuando se complete el comando

binary = Establecer transferencia binaria (todas salvo .txt)

bye = Finalizar la sesión ftp y salir

ascii = Establecer tipo de transferencia ascii (sólo para .txt)

cd = Cambiar el directorio de trabajo remoto

close = Finalizar la sesión ftp

ls = Mostrar el contenido del directorio remoto

dir = Mostrar el contenido del directorio remoto

delete = Eliminar archivo remoto

debug = Alternar modo de depuración

get = Recibir archivo

help = Ayuda sobre un comando 1º-help y luego el comando

lcd = Cambiar el directorio de trabajo local

Page 58: Manual

58

mdir = Mostrar el contenido de múltiples directorios remotos

mdelete = Eliminar múltiples archivos

mget = Obtener múltiples archivos

mkdir = Crear directorio en el equipo remoto

mls = Mostrar el contenido de múltiples directorios remotos

mput = Enviar múltiples archivos

open = Conectar a tftp remoto

put = Enviar un archivo

pwd = Imprimir el directorio de trabajo del equipo remoto

quit = Finalizar la sesión ftp y salir

quote = Enviar un comando arbitrario ftp

recv = Recibir archivo

rename = Cambiar el nombre del archivo

rmdir = Quitar directorio en el equipo remoto

remotehelp = Obtener ayuda del servidor remoto

send = Enviar un archivo

status = Muestra el estado actual

trace = Alternar trazado de paquetes

type = Establecer el tipo de transferencia de archivos

user = Enviar nueva información de usuario

verbose = Alternar modo detallado

IRC

Comando Acción Comentarios

irc Deberemos instalar el paquete irssi

(sudo aptitude install irssi)

/server = Lista,añade o elimina servidores.

/server [nombre:puerto:clave] = Conecta con un servidor.

/info [servidor] = Obtener información sobre servidor.

/lusers = Obtener estadísticas del servidor.

/users = Usuarios conectados al servidor.

/links = Lista los servidores de la red actual.

/list = Lista e informa sobre los canales.

Page 59: Manual

59

/admin = Informa sobre el admin. del servidor.

/help [comando] = Muestra la ayuda sobre un comando.

/ison [nick] = Comprobar si un usuario está conectado.

/join [canal] = Unirse a un canal.

/names = Listar usuarios en canales.

/whois [nick] = Muestra información sobre un usuario.

/whowas [nick] = Informa sobre un usuario que ya no está.

/who [patrón] = Muestra información sobre patrón.

/msg NiCK SET PASSWORD [clave] = Cambiar de contraseña(en irc-hispano)

/msg [nick | canal][texto] = Envia un mensaje a un usuario o canal.

/amsg [texto] 'a = Envia un mensaje a todos los canales en los que estás.

/notice [nick | canal] = Envia un mensaje privado a un usuario/os

/query [usuario texto] = Envia un mensaje privado a un usuario.

/ignore = Lista los usuarios ignorados.

/ignore nick = Ignora los mensajes de un usuario.

/unignore [nick | *] = Deja de ignorar el/los mensajes.

/ctcp [nick texto] = Envia un mensaje mediante CTCP

/me [texto] = Envia un mensaje precedido de nuestro nick

/ame [texto] = Envia un mensaje todos los canales en los que estás.

/dcc [chat nick ] = Pide y/o inicia charla con un usuario.

/dcc [close nick] = Cierra charla.

/dcc [send nick fichero] = Ofrece y/o envia un fichero.

/dcc [get nick fichero] = Permite recibir un fichero.

/time = Muestra fecha y hora.

/clear = Limpia la ventana de texto actual.

/away [texto] = Pasar a estado ausente.

/away = Volver de la ausencia.

/nick [nuevonick] = Cambiar el nick.

/nick [nuevonick][clave] = Cambiar un nick registrado.

/nick [nick:contraseña] = Identificarse en irc-hispano.

/part [canal] = Abandonar un canal.

Page 60: Manual

60

/quit = Cerrar todas las conexiones y salir.

Calculadora

Comando Acción Comentarios

bc Abrimos la calculadora bc. 20 + 5.4 = Suma.

77 - 4.2 = Resta.

25.2 * 86 = Multiplica.

47 / 3 = Muestra el cociente de la división.

47 % 3 = Muestra el resto de la división.

4 ^ 2 = Calcula la potencia 4²

sqrt (16) = Calcula la raiz cuadrada de 16

(2*3+2) / sqrt (2^3/2.5) = Un poco de cada.

quit = Salimos de bc.

Redes

Comando Acción Comentarios

/etc/init.d/networking start

Inicia los servicios de red. /etc/init.d/networking restart = Reinicia los servicios de red.

/etc/init.d/networking stop = Para los servicios de red.

ifconfig [interfaz opciones IP]

Información y configuración de interfaces de red. ifconfig = Muestra el estado de los interfaces activos.

ifconfig -a = Muestra el estado de todos los interfaces.

ifconfig ppp0 = Muestra el estado de ppp0

ifconfig eth0 up = Activa eth0.

ifconfig eth0 down = Cierra eth0.

ifconfig eth1 address 192.168.1... = Asigna una dirección al interfaz especificado.

iwconfig Similar a ifconfig pero sólo para interfaces wireless

ifup interface Habilita la interface especificada. ifup eth0

ifup ppp0

Page 61: Manual

61

ifdown interface Deshabilita la interface especificada. ifdown eth0

ifdown ppp0

dhclient eth0/eth1 Inicia conexión dhcp mediante el cliente dhcp-client.

pump -i eth0/eth1 Inicia conexión dhcp mediante el cliente pump.

pppoeconf Programa para configurar conexiones pppoe.

pppconfigPrograma en modo texto para configurar una conexión ppp.

pon Establece la conexión ppp a internet.

plog Monitoriza la conexión ppp.

poff Finaliza la conexión ppp a internet.

finger usuario Informa sobre un usuario conectado al sistema. finger @servidor = Informa sobre todos los usuarios conectados a un servidor (nombre o IP)

finger usuario@servidor = Informa sobre un usuario conectado a un servidor

ping google.com = Verifica la conexión, en este caso con www.google.com (Ctrl+Z pone fin)

traceroute microsoft.esMuestra la ruta que los paquetes de datos han seguido hasta la máquina de destino, en este caso un server de microsoft.es

mtr rediris.es Combinación de ping y traceroute.

whois ubuntu-es.orgInformación sobre un dominio, en este caso el dominio ubuntu-es.org.

host -v -a telefonica.com

Determina la ip de un nombre. En este caso, la IP de telefonica.com.

host -v -a 194.224.55.221 = Determina el nombre de una IP. En este caso, el nombre de 194.224.55.221.

iptraf Monitoriza tráfico de redes (ncurses).

tetherealVersión para consola de ethereal,un analizador del tráfico de red (sniffer).

ettercapSniffer/interceptor/logger para redes LAN con switchs basado en ncurses.

nmap Escáner de puertos.

fail2banEscanea logs como /var/log/auth.log y banea las IP con demasiados errores de conexión.

snortSniffer de paquetes y un detector de intrusiones en una red (NIDS).

aide Detector de intrusiones en un único Servidor, PC o host.

Page 62: Manual

62

(HIDS).

portsentryIDS que detecta escaneos de puertos y reacciona a un ataque.

chkrootkit Detector de rootkit.

w3m

lynx

links

links2

elinks

Navegadores web.elinks es compatible con SSL, con lo que podremos acceder a correo web.

irssi

weeChat-cursesClientes IRC (Internet Relay Chat) )

mutt

mush

pine

elm

Clientes de correo(MUA).

cabberCliente jabber (protocolo libre para mensajería instantánea).

centericqCliente de mensajeria multiprotocolo (ICQ,Yahoo,AIM,MSN,IRC,Jabber)

ncftp Cliente FTP (File Transfer Protocol) basado en ncurses

ftp-sslCliente FTP compatible con cifrado SSL y TSL (dependiendo de la otra parte)

telnet-sslCliente telnet (acceso remoto) compatible con cifrado SSL (dependiendo de la otra parte)

sshCliente SSH (Secure SHell). Acceso remoto cifrado. Forma parte del paquete openssh-client

rtorrent

bittornadoClientes bittorrent.

Bittornado es una versión mejorada del cliente homónimo bittorrent.

talk usuario Entabla una conversacion con un usuario del sistema.talk usuario@sistema = Entabla conversacion con un usuario de otro sistema (entre máquinas UNIX)

mesg -n Anula la notificacion de comunicacion de talk o write.mesg -y = Habilita la llegada de notificaciones de talk o write.

Page 63: Manual

63

write usuario Manda un mensaje a un usuario del sistema.

netstat -napt Saber qué puertos tiene abiertos nuestro sistema. -n = No resuelve las direcciones a sus nombres DNS. Esto hace más rápida la ejecución.

-a = Muestra todos las conexiones,incluídas las que están escuchando.

-p = Muestra el número y nombre del proceso,dueño de dicha conexión.

-t = sólo muestra conexiones tcp

wget [opciones] URL Gestor de descargas. -p = Descarga la web completa.

-r = recursivo.

-k = Convierte los enlaces absolutos en relativos.

-c = Reanuda la descarga de un fichero parcialmente descargado.

-l6 = profundidad de recursión (5 por defecto)

-A formato = formato para descargar.

-nH = hace que no se cree el subdirectorio localhost.

--cut-dirs=n = elimina n número de directorios dentro de la jerarquia.

Obtenido de «http://doc.ubuntu-es.org/index.php?title=Comandos_de_uso_frecuente&oldid=14451»Categoría:

Terminal

Navegación

Página principal Portal de la comunidad Actualidad Cambios recientes Página aleatoria Ayuda

Buscar

  Herramientas

Especial:Buscar Ir Buscar

Page 64: Manual

64

Lo que enlaza aquí Cambios relacionados Páginas especiales Versión para imprimir Enlace permanente

Herramientas personales

Iniciar sesión / crear cuenta

Esta página fue modificada por última vez el 27 dic 2011, a las 01:59. Esta página ha sido visitada 149.347 veces. El contenido está disponible bajo los términos de la Creative Commons Reconocimiento Compartir Igu

PARA EJECUTARLOS DESDE LA TERMINAL

Para ser super usuario : sudo su [despus te pide la contraseña] y listo ya sos root #

######################################################################

sudo apt-get autoclean ( limpia ubuntu de archivos innecesarios)

sudo apt-get autoremove ( limpia los paquetes, huerfanos, innecesarios o con errores)

sudo apt-get update ( actualiza y busca nuevas versiones de los paquetes instalados)

sudo rm nobre-del-archivo-a-borrar ( Borra un fichero)

sudo rmdir nombre-del-directorio-a-borrar ( Borra directorio vacio)

sudo rm -rf nombre-del-directorio-con_archivos-a-borrar ( CUIDADO, borra sin pedir

sudo rm -R directorio: Borra el contenido completo (ficheros/subdirectorios) de directorio

confirmación)

Los anteriores comandos sirven para borrar cosas innecesarios de ubuntu, o para borrar

archivos protegidos. Recuerden tener mucho cuidado con lo que borran.

Además, el directorio en el que nos encontramos siempre es nuestra carpeta personal, en

Page 65: Manual

65

Si el archivo a borrar está en otro lugar, deberan especificar la ruta de acceso. Un

ejemplo:

sudo rm /home/familiamontoya/Escritorio/archivo-a-borrar.pdf

Recuerda cerrar la terminal cada vez que acabes de hacer algo como Superusuario (sudo)

* +[Alt]+[Del]: Shutdown. Apaga el sistema de forma organizada desde una terminal texto.

* +[Alt]+[F1]: Cambia a la primera terminal de texto.

* [ArrowUp]: (Flecha arriba) Va editando la historia de comandos que hemos escrito anteriormente en terminal

texto. para ejecutar.

* +c: Termina el proceso actual.

* +d: Termina la terminal actual.

* +z: Manda el proceso actual -comenzado sin &- a "Background". Lo mismo que si comenzamos el proceso

con & - $ proceso &-.

Lista de comandos mas usados

* hostname: Devuelve el nombre de la máquina.

* uptime: Devuelve la cantidad de tiempo trascurrido desde la última vez que se arrancó el sistema, la cantidad de usuarios trabajando en el sistema y el load average (carga del sistema).

* uname -a: Información sobre el sistema operativo de la máquina.

* dmesg|more: Imprime el "ring buffer" del kernel.

* free -tm: Información sobre la cantidad de memoria disponible y usada.

Page 66: Manual

66

* df -h: Información sobre todo los dispositivos montados en la máquina.

* du: Muestra el espacio que esta ocupado en disco.

* du -bh /|more: Información sobre el espacio ocupado por cada subdirectorio, comenzando en el directorio raiz /.

* ps: Información sobre los procesos del actual usuario, que se están ejecutando.

* ps axu: Información sobre todos los procesos que se estan ejecutando en la máquina.

* top: Información sobre el uso de cpu y memoria de los procesos del sistema.

* cat /proc/cpuinfo: Información sobre el microprocesador.

* cat /proc/interrupts: Información sobre las interrupciones en uso.

* cat /proc/dma: Información sobre dma en uso.

* cat /proc/filesystems: Información sobre los sistemas de archivos que se pueden utilizar (compilados en el kernel).

* /sbin/lsmod: Información sobre los módulos en uso.

* finger usuario: Información sobre el usuario.

* who: Información sobre los usuarios usando el sistema.

* id usuario: Información sobre UID, GID y GROUPS del usuario.

* last: Información sobre los últimos usuarios que han usado el sistema.

* set|more: Información sobre el entorno de usuario actual.

* ping máquina: Para comprobar si tenemos contacto con la máquina máquina (máquina: nombre o IP)

* /sbin/route: Tabla de enrutamiento de nuestro sistema.

* /sbin/ifconfig: Información sobre los distintos dispositivos de red

* netstat: Información valiosa sobre la conexión de red (Este comando tiene muchas posibilidades, ejecutar man netstat

* ls: Lista archivos y directorios, funciona como elcomando dir de DOS.

Page 67: Manual

67

* dir: Idem. anterior.

* cp: Copia archivos/directorios.

* mkdir: Crea directorios.

* mv: Renombrar o mover archivos/directorios.

* date: Indica la fecha y hora del sistema.

* pwd: Indica la ruta absoluta donde se está ubicado.

* history: Muestra el historial de comandos introducidos por el usuario.

* more: Muestra el contenido de un archivo con pausas cada 25 líneas.

* grep: Filtra los contenidos de un archivo.

* diff: Compara archivos.

* wc archivo: Muestra el número de palabras, líneas y caracteres de un archivo.

* wc -c archivo: Muestra el tamaño en bytes de un archivo.

* calendar: Recordatorio de fechas.

* cal: Despliega un calendario.

* cal -my: Calendario completo del año.

* traceroute: Herramienta de red que nos muestra el camino que se necesita para llegar a otra máquina.

* ifconfig: Configuración de interfaces de red, modems, etc.

* route: Gestiona las rutas a otras redes.

* iptraf: Muestra en una aplicación de consola todo el tráfico de red.

* tcpdump: Vuelca el contenido del tráfico de red.

* lsof: Muestra los archivos que utiliza cada proceso.

* lsmod: Muestra los módulos de kernel que están cargados.

* modprobe: Trata de instalar un módulo, si lo encuentra lo instala pero de forma temporal.

* rmmod: Elimina módulos del kernel que están cargados.

Page 68: Manual

68

* sniffit: Husmeador del tráfico de red.

* su: Te conviertes en administrador(root) después de introducir la clave de acceso. Ideal para realizar alguna tarea de administración sin necesidad de salir del sistema y entrar de nuevo como root.

* /usr/sbin/adduser usuario: Registra y crea una cuenta de usuario.

* /usr/sbin/userdel usuario: Borra la cuenta de usuario usuario.

* passwd: Cambia la clave de acceso para el usuario actual. Root puede cambiar la clave de cualquier usuario passwd usuario

* /usr/sbin/groupadd grupo: Crea un nuevo grupo.

* /usr/sbin/groupdel grupo: Borra un grupo.

* more /etc/passwd: Muestra el fichero de claves del sistema. (Si no se usa shadow password)

* more /etc/group: Muestra los grupos registrados en el sistema.

* chmod permisos fichero/directorio: Cambia los permisos de ficheros/directorios

* chown: Cambia los permisos de usuario: grupo de archivos/directorios.

* chgrp: Cambia el grupo de un archivo o directorio.

* umask: Establece que permisos serán deshabilitados para los archivos nuevos.

* lpr archivo: Añade un documento a la cola de impresión.

* lpq: Muestra los documentos en cola de impresión.

* lprm: Cancela la impresión del documento activo.

* tar: Archivador de ficheros.

* gunzip: Descompresor compatible con ZIP.

* mount: Montar unidades de disco duro, diskette, cdrom, etc.

* wget: Programa para descargar archivos por http o ftp.

* lynx: Navegador web con opciones de ftp, https.

* ftp: Cliente FTP.

* whois: Whois de dominios.

Page 69: Manual

69

* who: Muestra los usuarios de sistema que han iniciado una sesión.

* mail: Envío y lectura de correo electrónico.

* sort: Ordena el contenido de un archivo.

* ln: Link para crear enlaces, accesos directos.

* tail: Muestra el final de un archivo.

* head: Muestra la cabecera de un archivo.

* file: Nos dice de que tipo es un archivo.

* cp fichero1 fichero2: Copia fichero1 como fichero2

* mv fichero1 fichero2: Cambia el nombre de fichero1 a fichero2

* mkdir directorio: Crea un subdirectorio

* rmdir directorio: Borra un subdirectorio

* shutdown -t3 -r now: Reinizializa el sistema (hay que hacerlo como root).

* shutdown -t3 -h now: Apaga el sistema (hay que hacerlo como root).

* reboot: Reinicia el sistema.

* poweroff: Apaga el sistema.

* sysctl: Configurar los parámetros del kernel en tiempo de ejecución.

* ulimit: Muestra los límites del sistema (máximo de archivos abiertos, etc...)

* adduser: Añadir usuario de sistema.

* userdel: Eliminar usuario de sistema.

* glxinfo: Información sobre la biblioteca gráfica OpenGL y su extensión GLX.

* showrgb: Lista los colores reconocidos por el sistema y su valor RGB.

* bsdgames: Colección de juegos para consola.

* sl: Tren pasando.

* apt-get moo: La supervaca del apt.

* cowsay muuuuu: Una vaca hablando en su idioma.

Page 70: Manual

70

* cowthink -p ¿¿muuuuu??: Una vaca pensando.

* cowsay -f tux hola: Tux saludando.

* banner (texto): Muestra un cartel en pantalla.

* xwd -root -screen > pantalla.xwd: Capturar la pantalla.

* xwd > ventana.xwd: Capturar la ventana.

* import -window root pantalla.ps (también jpg, png, gif, etc...): Capturar en otros formatos.

* md5sum archivo.iso > archivo.iso.txt: Generar la suma control MD5 de un archivo.

* md5sum -w -c archivo.iso.txt: Verifica la suma control MD5 de un archivo.

COMANDO passwd: El comando passwd se usa para cambiar tu contraseña.

SINTAXIS: La sintaxis es

passwd

OPCIONES:

-a Mostrar los atributos de contraseña para todas las entradas. -l Bloquear la entrada de contraseña por nombre. -d Elimina contraseña por nombre. Al nombre de acceso no se le pedirá contraseña. -f Fuerza al usuario a cambiar la contraseña en el próximo acceso mediante la expiración de la contraseña para el nombre.

EJEMPLO: passwd Introduciendo sólo passwd te permite cambiar la cambiar la contraseña. Después de introducir passwd recibirás la siguiente respuesta:

Current Password: New Password: Confirm New Password: Cada uno de estos datos debe ser introducido correctamente para que la contraseña se cambie satisfactoriamente.

Page 71: Manual

71

Hace poquito instale Ubuntu en mi maquina particionando el disco y compartiendolo con el win7 (que me dan ganas de tirarlo a la mierda aveces pero bue...) y si o si necesitamos usar los comandos en la terminal asi que buscando un poquito encontre esta guia que les va a ser util a mas de uno que tenga ubuntu...espero que les sirva este humilde aporte...Que es bueno para tenerlo hay por si nos surge alguna duda sobre los comandos más usados.

También dispones de una documentación para cada comando. Por ejemplo para ver la documentación del comando ls, tecleamos lo siguiente en un terminal.

man ls

Dicho esto, aqui dejo la lista de comandos más indispensables para Linux:

lslist: listar. Es el primer comando que todo linuxero debe aprender. Nos muestra el contenido de la carpeta que le indiquemos después. Por ejemplo. Si queremos que nos muestre lo que contiene /etc:

$ ls /etc

Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos actualmente:

$ ls

Además acepta ciertos argumentos que pueden ser interesantes. Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

$ ls -a

Para mostrar los archivos y carpetas junto con los derechos que tiene, lo que ocupa, etc:

$ ls -l

Además se pueden solapar los argumentos. Si quisiéramos mostrar los archivos de la misma forma que antes, pero que muestre también los ocultos:

$ ls -la

cdchange directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en consola…

$ cd /etc/apt

…nos llevará a esa carpeta directamente. Del mismo modo si escribimos…

Page 72: Manual

72

$ cd /

…nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginad que estamos en /home y queremos ir a una carpeta que se llama temporal dentro de vuestra carpeta personal. Con escribir…

$ cd tu_carpeta/temporal

…nos situará allí. Como véis hemos obviado el /home inicial ya que si no lo introducimos toma como referencia el directorio donde estamos, que es ese.

¿Y qué sucede si escribimos tan sólo…

$ cd

Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente y estemos donde estemos. Es algo realmente muy práctico, muy simple y que no todos conocen.

mkdirmake directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos. Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio que queremos crear, o si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre:

$ mkdir /home/tu_cuenta/pepino

Si ya estamos en /home/tu_cuenta…

$ mkdir pepino

rmremove: borrar. Borra el archivo o la carpeta que le indiquemos. Como antes se puede indicar la ruta completa o el nombre del archivo. Esto a partir de ahora lo vamos a obviar, creo que ya ha quedado claro con los dos comandos anteriores.

Para borrar un archivo:

$ rm nombre_archivo

Para borrar una carpeta vacía:

rm nombre_carpeta

Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso contener más:

rm -r nombre_carpeta

Page 73: Manual

73

Otras opciones: “-f” no te pide una confirmación para eliminar o “-v” va mostrando lo que va borrando.

cpcopy: copiar. Copia el archivo indicado donde le digamos. Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podéis poner el nombre que le queréis poner a la copia. Por ejemplo, si estuviéramos en /etc/X11 y quisiéramos hacer una copia de seguridad de xorg.conf en nuestra carpeta personal:

$ cp xorg.conf /home/tu_carpeta/xorg.conf.backupmv

move: mover. Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le indiquemos, puede ser otro distinto al original:

$ mv /etc/pepino.html /home/tu_carpeta/ese_pepino.html

Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que lo contiene:

$ mv pepino.html ese_pepino.html

findfind: encontrar. Busca el archivo o carpeta que le indiques:

$ find / -name pepino

El comando anterior buscaría en todos los sitios las carpetas y archivos que se llamen pepino. Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:

$ find /var -name pepino

Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo que buscamos contiene “pepi”, en la misma carpeta de antes:

$ find /var -name *pepi*

Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas de más de 1500 KB:

$ find / -size +1500

O los archivos/carpetas contienen el nombre “pepi” y tienen menos de 1000 KB:

$ find / -name *pepi* -size -1000

clear

Page 74: Manual

74

clear: despejar. Limpia la pantalla/consola quedándola como si acabáramos de abrirla.

$ clear

psprocess status: estado de los procesos. Nos muestra lo que queramos saber de los procesos que están corriendo en nuestro sistema. Cada proceso está identificado con un número llamado PID. Si hacemos…

$ ps -A

…nos mostrará un listado de todos los procesos, su PID a la izquierda y su nombre a la derecha. Si queremos más información:

$ ps aux

killkill: matar. Elimina el proceso que le indiquemos con su PID:

$ kill

En ocasiones el proceso no “muere” del todo, pero se le puede forzar al sistema para que lo mate con seguridad del siguiente modo:

$ kill -9

sudosuper-user do: hacer como superusuario. La cuenta de usuario en Ubuntu es relativamente normal. Tiene derechos de administrador a medias. Me explico, los tiene, pero cada vez que se haga algo importante y de riesgo para el sistema, hay que hacerlo mediante el prefijo “sudo” y escribiendo después la contraseña.

Por ejemplo, algo que hemos hecho muchas veces en los tutoriales es hacer una copia de seguridad del fichero xorg.conf. Éste está localizado en la carpeta /etc/X11 y ahí ningún usuario puede hacer modificaciones o borrar nada si no es el administrador o tiene derechos como tal, gracias a sudo. Por eso hacíamos siempre:

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf

Siempre que necesitemos hacer un apt-get/aptitude update o install y acciones de este tipo, tendremos que poner antes el “sudo”.

passwdpassword: contraseña. Con este comando podremos cambiar la contraseña de nuestra cuenta. Primero nos pedirá la contraseña actual como medida de seguridad. Después nos pedirá que introduzcamos dos veces seguidas la nueva contraseña.

$ passwd

su

Page 75: Manual

75

super-user: superusuario. Mediante su podremos loguearnos como superusuario. Tras escribirlo nos pedirá la contraseña de root y estaremos como administrador. Podremos hacer todo lo que queramos.

$ su

Este comando también nos permite hacer login con otra cuenta distinta. Por ejemplo, imaginemos que tenemos otra cuenta, además de root y la nuestra, llamada “invitado”. Para hacer login como tal bastaría con poner:

$ su invitado

y después escribir la contraseña de esa cuenta.

sudo passwdNo es un comando propiamente dicho, pero es interesante que lo conozcáis. Gracias a la unión de estos dos comandos podréis cambiar la contraseña de root (la del super-usuario).

$ sudo passwd

aptadvanced packets tool: herramienta avanzada de paquetes. Es uno de los comandos más útiles que se han desarrollado en los sistemas GNU/Linux debian o basados en esta distro. Nos permite comprobar actualizaciones, actualizar todo el sistema. También nos ofrece funcionalidad para buscar, descargar e instalar paquetes con una sola orden.

Tenemos variantes, las más usadas son las siguientes:

$ apt-cache search nombre_paquete

Busca nombre_paquete para ver si existe literal o aproximadamente ofreciéndonos los paquetes que pudieran ser en caso de que hayamos puesto un nombre aproximado.

$ apt-get update

Actualiza los repositorios que son los que contienen los paquetes. Los repositorios son como las direcciones que contienen nuestros paquetes. apt-get update lo que hace es actualizar el listado de todos esos paquetes, con la dirección de dónde obtenerlos para que a la hora de hacer la búsqueda y su posterior descarga sea más rápida haciéndolo en nuestro ordenador.

$ apt-get upgrade

Actualiza nuestro sistema con todas las posibles actualizaciones que pudiera haber. La actualización no se realiza sólo sobre el propio sistema operativo, sino también sobre las aplicaciones que estén contenidas en los repositorios. Una útil forma de estar siempre al día.

$ apt-get install nombre_paquete

Page 76: Manual

76

Localizado el nombre del paquete que queremos descargar e instalar, este comando se encargará del proceso. Buscará en nuestro índice (el que se crea con update) de dónde tiene que descargarse el paquete, lo hace y posteriormente lo instala.

$ apt-get remove [--purge] nombre_paquete

Elimina el paquete especificado del sistema. Damite el argumento “–purge” (corchetes = opcional) para que borre también los ficheros de configuración.

$ apt-get autoremove

Elimina paquetes que han quedado inservibles tras realizar algún apt-get remove, los llamados huérfanos. Normalmente tras hacer este último te avisa en un mensaje que lo realices.

Todos estos comandos necesitan tener privilegios de administración, así que si no los usáis como root, debéis agregar primero el conocido “sudo”.

aptitudeaptitude: aptitud, habilidad. En el fondo juega con las siglas de apt para crear aptitude. Es una versión mejorada de apt. Si os habéis fijado en todos los manuales y entradas donde había un proceso de instalación he usado aptitude en lugar de apt. El segundo es quizá el más extendido al ser el que vio la luz primero.

aptitude nació como un front-end de apt, es decir, como una especie de aplicación gráfica y en modo texto para realizar todo lo que hace apt. Pero lo cierto es que sus características son mejores.

apt cuando instala algo te puede realizar una sugerencia para que instales algo más que te podría venir bien, pero no lo hace. Hay programas que a la vez usan otros para algunas de sus funciones u opciones. apt no instalaría los segundos, como mucho te avisaría. Sin embargo aptitude sí que lo instalará porque sabe que de alguna forma es indispensable para el que has pedido.

De la misma forma, si con apt instalas luego ese programa que es usado por otro, cuando desinstalas el principal, no se desinstalará el secundario, aunque éste ya no tenga mucho sentido que esté instalado, y lo mismo sucede con librerías. aptitude está capacitado para desinstalar lo que él mismo ha instalado como recomendación. Te deja el sistema más limpio tras las desinstalaciones.

Para abrir el interfaz gráfico de aptitude, tan sólo hay que teclearlo:

$ aptitude

Sin embargo, también se puede usar exactamente igual que apt, pero con las características que he comentado de aptitude:

$ aptitude search nombre_paquete$ aptitude install nombre_paquete$ aptitude remove nombre_paquete

Page 77: Manual

77

$ aptitude purge nombre_paquete$ aptitude update$ aptitude upgrade

Y al igual que antes, necesitaréis usarlo con el sudo delante si no estáis como administrador.

dpkgdepackage: despaquetar. Los paquetes cuando se instalan sufren un proceso de despaquetaje. En el fondo un paquete .deb contiene una serie de scripts de pre-instalación, post-instalación y los archivos en cuestión del paquete.

Este comando lo usaremos para instalar un paquete .deb que ya tengamos descargados en nuestro sistema. En muchas ocasiones hay una aplicación que no está en los repositorios y nos hemos bajado el .deb para instalarlo con el interfaz gráfico que corresponda (GDebi en el caso de GNOME).

En el fondo estas interfaces gráficas están basadas en dpkg. Si queremos instalar un paquete ya descargado mediante consola usaremos el argumento ‘-i’ (i=install):

$ dpkg -i nombre_paquete

Para desinstalarlo ‘-r’ (r=remove):

$ dpkg -r nombre_paquete

Para desinstalar el paquete y los ficheros de configuración “–purge” (purgar):

$ dpkg -r –purge nombre_paquete

alienA petición de lector.

Alien: de otro país, de otro planeta. Aunque Debian -y por extensión Ubuntu- dispone de una ingente cantidad de paquetes en sus repositorios, puede que alguien tenga algún problema en encontrar una aplicación específica empaquetada como le interesa aunque ha visto el paquete que quiere para otras distros.

alien es bastante práctico para estas situaciones ya que nos permite transformar un paquete de un gestor de paquetes determinado en otro. Por ejemplo podemos pasar de un .deb (Debian) a un .rpm (Red Hat) y viceversa. Las extensiones soportadas son:

* deb (Debian)* rpm (Red Hat)* slm (Stampede)* tgz (Slackware)* pkg (Solaris)

Su uso es sencillo. Lo que debemos saber es el argumento que transformará el paquete original en la extensión objetivo:

Page 78: Manual

78

* “–to-deb” o “-d” para transformar a .deb* “–to-rpm” o “-r” para transformar a .rpm* “–to-tgz” o “-t” para transformar a .tgz* “–to-pkg” o “-p” para transformar a .pkg* “–to-slp” para transformar a .slp

Como ejemplo, pasaremos un supuesto paquete de Red Hat llamado “pepino.rpm” a “pepino.deb”:$ alien -d pepino.rpm

manmanual: manual. Es otro de los comandos de gran potencia en linux. Normalmente cada programa o comando viene con un archivo de ayuda muy completo sobre su uso y sus argumentos. Cuando desconozcás cómo se usa y qué argumentos tiene un comando o aplicación tan sólo tenes que escribir en consola:

$ man nombre

En ocasiones la información que nos ofrece man puede llegar a ser excesiva. Casi todos los comandos y aplicaicones aceptan el argumento “–help” para que muestre cierta ayuda más resumida. Por ejemplo con aptitude:

$ aptitude –help

Todos los comandos que os he mostrado tienen muchos más argumentos. Os he puesto los más usados o necesarios, así que si hay alguno que os interesa particularmente conocer más de él, tenéis “man” o “–help” para obtener más detalles.

ACTUALIZACIÓN:

Déjame comentar algunas cosas que les pueden ser de interés:

Sobre cd:

$ cd -Nos devuelve al último directorio en el que estuviéramos. Lo descubrí por accidente.Es muy práctico cuando queremos editar ficheros en dos lugares.$ cd /etc/X11/$ cd /backup/$ cd -Nos lleva a /etc/X11$ cd -nos devuelve a /backup

Sobre cp:Para copiar un directorio se usa cp -r$ cp -r /etc /backup/Tendremos /backup/etc, y dentro de ese directorio tendremos lo mismo que hay en /etcMuy útil.

Page 79: Manual

79

Sobre mv:Tambien permite mover directorios o renombrarlos$ mv /home/yo/misdocumentos /home/yo/mis_documentos

Sobre kill:apenas lo uso, en su lugar utilizo killall, que permite matar por nombre de proceso, y los procesos llamarse siempre igual (no así sus pid), permite no tener que hacer un ps para saber qué tienes que poner.$ killall firefox-binEso sí, no es útil si tienes varios procesos abiertos con el mismo nombre, puesto que los cerrará todos.También acepta entre killall y el nombre del proceso un -X, donde X es la señal que quieras (9 para matarlo, 15 para que intente cerrar él solo)$ killall -15 firefox-bin (vaya, no va)$ killall -9 firefox-bin

alias: permite crear atajos para comandosej,:

$ alias ll=”ls -l”$ alias instala=”sudo aptitude install”

también se pueden dejar permanentes, para agregar los alias permanentemente editan el archivo:

$ nano /home/usuario/.bashrc

(puede ser nano, kate, gedit)

y agregan al final del archivo sus alias

alias actualiza=”sudo aptitude update”alias upgrade=”sudo aptitude upgrade”alias instala=”sudo aptitude install”alias purge=”sudo aptitude purge”alias show=”sudo aptitude show”alias busca=”sudo aptitude search”alias apagate=”sudo shutdown -h now”

luego cierran la terminal, abren otra y listo.

y hay una pequeña aplicacion que puede ayudar si no nos acordamos de algunos comandos “mc”

para instalar:

$ sudo aptitude install mc

o si tenemos el alias =) :

Page 80: Manual

80

$ instala mc

La Yapa!!!

Si eres novel en esto de Gnu/Linux Ubuntu o eres un desmemoriado como yo y necesitas tener algunas cosas siempre a mano este fondo de escritorio llega caído del cielo. Podemos descargarlo desde el siguiente enlace:

http://gnome-look.org/content/show.php/ubuntu+quick+guide+command+wallpaper?content=88382

Que es de gran utilidad!!!

Page 81: Manual

81

Eso es todo gente, espero que les sirva, si les gusto dejen su comentario y recomienden!!! Saludos!!!

quiero compartir un par de buenas aplicaciones para Ubuntu, así como para otras distribuciones, las cuales mostraran la tierra en tiempo real en tu fondo de escritorio.

La primera aplicación es Real-Time Sunlight Wallpaper.

http://realtimesunlightwallpaper.weebly.com/index.html

Page 82: Manual

82

Ejecutar las siguientes instrucciones desde la terminal:

sudo add-apt-repository ppa:realtime.sunlight.wallpaper/rsw sudo apt-get update sudo apt-get install gtk-sunlight

La segunda (y mi favorita) es xplanetfx.

http://mein-neues-blog.de/xplanetfx/

Ejecutar las siguientes instrucciones desde la terminal:

wget http://repository.mein-neues-blog.de:9000/PublicKey /> sudo apt-key add PublicKey

rm PublicKey

echo "deb http://repository.mein-neues-blog.de:9000/ /" | sudo tee -a /etc/apt/sources.list

sudo apt-get update

Page 83: Manual

83

sudo apt-get install xplanetfx

Fuentes de Información