Professional Documents
Culture Documents
COMANDOS LINUX
1. INTRODUCCION
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.
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.
2. NOCIONES BASICAS
En una terminal:
pasos:
Programas
Documentos_proyecto
Documentos_privados
3. COMANDOS BASICOS
$ ls (List)
Nos muestra el contenido de la carpeta que le indiquemos después.
$ ls /etc
$ ls
$ ls –a
Para mostrar los archivos y carpetas junto con los derechos que tiene, lo
que ocupa, etc:
$ ls -l
ocultos:
$ ls -la
$ cd (change directory)
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
$ cd /
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 veis hemos obviado el /home inicial ya que si no lo
introducimos toma como referencia el directorio donde estamos, que es
ese.
$ 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.
$ mkdir /home/tu_cuenta/pepino
Si ya estamos en /home/tu_cuenta…
$ mkdir pepino
$ rm (remove)
Borra el archivo o la carpeta que le indiquemos.
$ rm nombre_archivo
$ rm nombre_carpeta
Para borrar una carpeta que contiene archivos y/o otras carpetas que
pueden incluso contener más:
$ rm -r nombre_carpeta
$ cp (copy)
7
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)
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
Busca el archivo o carpeta que le indiques.
Tiene otras opciones. Por ejemplo podemos decirle que encuentre los
archivos/carpetas de más de 1500 KB:
$ clear
Limpia la pantalla/consola quedándola como si acabáramos de abrirla.
$ clear
$ ps (process status)
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
$ ps aux
$ kill (matar)
Elimina el proceso que le indiquemos con su PID.
$ kill
9
$ kill -9
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:
$ passwd (password)
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 (super-user)
Aunque el comando suele relacionarse con "super user" realmente parece
ser que viene de "switch user" o "substitute user".
10
$ 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
$ sudo passwd
Podréis cambiar la contraseña de root (la del super-usuario).
$ sudo passwd
$ 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
$ 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.
$ aptitude (aptitude)
En el fondo juega con las siglas de apt para crear aptitude
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 update
$ aptitude upgrade
$ dpkg (depackage)
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.
$ dpkg -i nombre_paquete
$ dpkg -r nombre_paquete
$ Alien (Alien)
Aunque Debian -y por extensión Ubuntu- dispone de una ingente cantidad
14
* deb (Debian)
* slm (Stampede)
* tgz (Slackware)
* pkg (Solaris)
$ alien -d pepino.rpm
$ man (manual)
15
$ man nombre
$ aptitude –help
$ passwd (password)
Podemos cambiar la contraseña empleando la orden passwd.
$ passwd
$ date
Muestra por pantalla el día y la hora, permitiendo, además, el cambio de la
misma). Sintaxis:
$ date [opcion][formato]
16
$ cal
Muestra el calendario del mes o año actual actual. Sintaxis:
$ cal [mes][año]
Ejemplos:
$ cal
$ cal 1949
$ cal 05 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
$ finger
17
$ uname
Proporciona el nombre del sistema en el que se está trabajando. Sintaxis:
$ uname [-opciones]
$ 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 [comando]
$ clear
18
$ clear
$ echo
Muestra por pantalla los argumentos que le pasamos. Sintaxis:
$ 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 ESPECIFICOS
Para reconfigurar las X (gráfica):
$ sudo reboot
$ aplay -l
$ lspci -vv
5. CARACTERES COMODIN(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.
$ ls *n*
20
$ ls *
$ ls tm?
$ ls tabla[123]a
$ ls ??base[A-Z][5-9]*
$ ls
Permite mostrar el contenido de un directorio. ls Muestra los nombres de
los ficheros y 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]
Parámetros:
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
$ 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 [directorio]
$ 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
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).
$ mount /floppy
$ umount /floppy
Una vez seguidos los pasos anteriores cualquier usuario podrá "montar"
un disquete escribiendo el siguiente comando:
$ mount /mnt/floppy
$ mount /mnt/floppy
$ umount /mnt/floppy
Donde "xX" es la partición que queremos desmontar. Por ej. "sda5" que
es la partición "5" del disco duro "a".
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:
$ mv
Se utiliza para el traslado y cambio de nombre de ficheros. Sintaxis:
$ mv file1 file2
$ mv namedir1 namedir2
Hay que recalcar que el comando mv sirve así mismo para cambiar el
nombre de los ficheros.
$ rm
Se utiliza para 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]
$ 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.
$ file
Este comando realiza una serie de comprobaciones en un fichero para
28
$ file fichero
$ 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
$ cat >file1
$ 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:
29
$ pr file
$ pr -ln file
$ pr -p file
Hace una pausa para presentar la página, hasta que se pulsa para
continuar.
$ pr -t file
$ pr -wn file
$ pr -d file
$ pr -h `caracteres` file
$ pr +n file
$ pr -dt file.
se crea un fichero nuevo llamado file2 que es idéntico a file1, pero con
formato por páginas y columnas.
$ more
$ 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.
$ grep
El comando grep localiza una palabra, clave o frase en un conjunto de
31
$ 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:
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:
$ du -h
hola
35
CTRL+ D
$ ln pruebaln penlace
$ ls –i pruebaln penlace
$ cat >>pruebaln
adios
CTRL+ D
$ cat pruebaln
$ cat penlace
$ cat >>penlace
CTRL+ D
$ cat penlace
$ cat pruebaln
$ rm pruebaln
$ cat penlace
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.
$ ln penlace pruebaln
2 – Con la orden ls –li vemos que ambos tienen el mismo inodo, y que
este inodo tiene dos enlaces.
$ ln –s penlace penlacesim
$ cat >>penlace
CTRL+ D
$ cat penlacesim
$ rm penlace
$ cat pruebaln
$ cat penlacesim
$ rm penlacesim
$ rm pruebaln
$ tar
Este comando agrupa varios ficheros en uno solo o “archivo”, mientras
que el segundo los comprime. En conjunto estos dos programas actúan de
forma muy similar a programas como Winzip. Su sintaxis es:
$ tar [opciones][ficheros]
donde fichero1, fichero2 etc. son los ficheros que se van a añadir al archivo
tar. Si se desea extraer los ficheros se emplea:
$ cd /
no guardamos la ruta, por lo que para extraer los ficheros tendremos que
situarnos en ella:
40
$ cd /
$ cd /etc
$ 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 –d fichero.gz
$ gunzip fichero.gz
comando tar incluye la opción z para estos ficheros de forma que para
extraer los ficheros que contiene:
$ chmod
$ chown
$ 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:
Grupo dueño (g), formado por todos los usuarios que son miembros
de un grupo asociado al archivo.
Tipos de permisos:
Tamaño en bytes.
$ chmod
Para cambiar los permisos de un fichero se emplea el comando chmod, que
tiene el formato siguiente:
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
43
$ chmod a -r fichero.txt
$ 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:
$ 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…
Ejemplo:
simmd:x:501:501:simmd:/home/simmd:/bin/bash
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.
Sin embargo, existen varias utilidades que nos permiten crear usuarios de
una forma mucho más cómoda e intuitiva:
Seleccionamos:
b) Entorno linuxconf:
c) Useradd/Adduser
$ useradd usuario
$ adduser usuario
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.
$ chfn –f
GRUPOS:
49
id: muestra UID y GID del usuario y los grupos a los que pertenece el
usuario conectado al sistema. Sintaxis:
$ id
$ id usuario