Вы находитесь на странице: 1из 63

INDICE:

1
2
3
4
5
6
7
8

Informacin del Sistema


Apagar (Reiniciar o Cerrar Sesin)
Archivos y Directorios
Encontrar archivos
Montando un sistema de ficheros
Espacio de Disco
Usuarios y Grupos
Permisos en Ficheros (Usa + para colocar permisos y -
para eliminar)
9 Atributos especiales en ficheros (Usa + para colocar
permisos y - para eliminar)
10 Archivos y Ficheros comprimidos
11 Paquetes RPM (Red Hat, Fedora y similares)
12 Actualizador de paquetes YUM (Red Hat, Fedora y
similares)
13 Paquetes Deb (Debian, Ubuntu y derivados)
14 Actualizador de paquetes APT (Debian, Ubuntu y
derivados)
15 Ver el contenido de un fichero
16 Manipulacin de texto
17 Establecer caracter y conversin de ficheros
18 Anlisis del sistema de ficheros
19 Formatear un sistema de ficheros
20 Trabajo con la SWAP
21 Salvas (Backup)
22 CD-ROM
23 Trabajo con la RED ( LAN y Wi-Fi)
24 Redes de Microsoft Windows (SAMBA)
25 Tablas IP (CORTAFUEGOS)
26 Monitoreando y depurando
27 Otros comandos tiles

INFORMACIN DEL SISTEMA


1
2
3
4
5
6

arch: mostrar la arquitectura de la mquina (1).


uname -m: mostrar la arquitectura de la mquina (2).
uname -r: mostrar la versin del kernel usado.
dmidecode -q: mostrar los componentes (hardware) del sistema.
hdparm -i /dev/hda: mostrar las caractersticas de un disco duro.
hdparm -tT /dev/sda: realizar prueba de lectura en un disco
duro.
7 cat /proc/cpuinfo: mostrar informacin de la CPU.
8 cat /proc/interrupts: mostrar las interrupciones.
9 cat /proc/meminfo: verificar el uso de memoria.
10 cat /proc/swaps: mostrar ficheros swap.
11 cat /proc/version: mostrar la versin del kernel.
12 cat /proc/net/dev: mostrar adaptadores de red y estadsticas.
13 cat /proc/mounts: mostrar el sistema de ficheros montado.
14 lspci -tv: mostrar los dispositivos PCI.
15 lsusb -tv: mostrar los dispositivos USB.
16 date: mostrar la fecha del sistema.
17 cal 2011: mostrar el almanaque de 2011.
18 cal 07 2011: mostrar el almanaque para el mes julio de 2011.

19 date 041217002011.00: colocar (declarar, ajustar) fecha y hora.


20 clock -w: guardar los cambios de fecha en la BIOS.

APAGAR (REINICIAR SISTEMA O


CERRAR SESIN)
1
2
3
4
5
6
7
8
9

shutdown -h now: apagar el sistema (1).


init 0: apagar el sistema (2).
telinit 0: apagar el sistema (3).
halt: apagar el sistema (4).
shutdown -h hours:minutes &: apagado planificado del
sistema.
shutdown -c: cancelar un apagado planificado del sistema.
shutdown -r now: reiniciar (1).
reboot: reiniciar (2).
logout: cerrar sesin.

ARCHIVOS Y DIRECTORIOS
1 cd /home: entrar en el directorio home.
2 cd ..: retroceder un nivel.
3 cd ../..: retroceder 2 niveles.
4 cd: ir al directorio raz.
5 cd ~user1: ir al directorio user1.
6 cd : ir (regresar) al directorio anterior.
7 pwd: mostrar el camino del directorio de trabajo.
8 ls: ver los ficheros de un directorio.
9 ls -F: ver los ficheros de un directorio.
10 ls -l: mostrar los detalles de ficheros y carpetas de un directorio.
11 ls -a: mostrar los ficheros ocultos.
12 ls *[0-9]*: mostrar los ficheros y carpetas que contienen nmeros.
13 tree: mostrar los ficheros y carpetas en forma de rbol
comenzando por la raz.(1)
14 lstree: mostrar los ficheros y carpetas en forma de rbol
comenzando por la raz.(2)
15 mkdir dir1: crear una carpeta o directorio con nombre dir1.
16 mkdir dir1 dir2: crear dos carpetas o directorios
simultneamente (Crear dos directorios a la vez).
17 mkdir -p /tmp/dir1/dir2: crear un rbol de directorios.
18 rm -f file1: borrar el fichero llamado file1.
19 rmdir dir1: borrar la carpeta llamada dir1.
20 rm -rf dir1: eliminar una carpeta llamada dir1 con su contenido
de forma recursiva. (Si lo borro recursivo estoy diciendo que es
con su contenido).
21 rm -rf dir1 dir2: borrar dos carpetas (directorios) con su
contenido de forma recursiva.
22 mv dir1 new_dir: renombrar o mover un fichero o carpeta
(directorio).
23 cp file1: copiar un fichero.
24 cp file1 file2: copiar dos ficheros al unsono.
25 cp dir /* .: copiar todos los ficheros de un directorio dentro del
directorio de trabajo actual.
26 cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual
de trabajo.
27 cp -a dir1: copiar un directorio.

28 cp -a dir1 dir2: copiar dos directorio al unsono.


29 ln -s file1 lnk1: crear un enlace simblico al fichero o directorio.
30 ln file1 lnk1: crear un enlace fsico al fichero o directorio.
31 touch -t 0712250000 file1: modificar el tiempo real (tiempo de
creacin) de un fichero o directorio.
32 file file1: salida (volcado en pantalla) del tipo mime de un fichero
texto.
33 iconv -l: listas de cifrados conocidos.
34 iconv -f fromEncoding -t toEncoding inputFile > outputFile:
crea una nueva forma del fichero de entrada asumiendo que est
codificado en fromEncoding y convirtindolo a ToEncoding.
35 find . -maxdepth 1 -name *.jpg -print -exec convert {}
-resize 8060 thumbs/{} \;: agrupar ficheros
redimensionados en el directorio actual y enviarlos a directorios en
vistas de miniaturas (requiere convertir desde ImagemagicK).

ENCONTRAR ARCHIVOS
1 find / -name file1: buscar fichero y directorio a partir de la raz
del sistema.
2 find / -user user1: buscar ficheros y directorios pertenecientes al
usuario user1.
3 find /home/user1 -name \*.bin: buscar ficheros con extensin .
bin dentro del directorio / home/user1.
4 find /usr/bin -type f -atime +100: buscar ficheros binarios no
usados en los ltimos 100 das.
5 find /usr/bin -type f -mtime -10: buscar ficheros creados o
cambiados dentro de los ltimos 10 das.
6 find / -name \*.rpm -exec chmod 755 {} \;: buscar ficheros
con extensin .rpm y modificar permisos.
7 find / -xdev -name \*.rpm: Buscar ficheros con extensin .rpm
ignorando los dispositivos removibles como cdrom, pen-drive, etc.

8 locate \*.ps: encuentra ficheros con extensin .ps ejecutados


primeramente con el command updatedb.
9 whereis halt: mostrar la ubicacin de un fichero binario, de
ayuda o fuente. En este caso pregunta dnde est el comando
halt.
10 which halt: mostrar la senda completa (el camino completo) a un
binario / ejecutable.

MONTANDO UN SISTEMA DE
FICHEROS
1 mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2.
Verifique primero la existencia del directorio / mnt/hda2; si no
est, debe crearlo.
2 umount /dev/hda2: desmontar un disco llamado hda2. Salir
primero desde el punto / mnt/hda2.
3 fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo
est ocupado.
4 umount -n /mnt/hda2: correr el desmontaje sin leer el fichero
/etc/mtab. til cuando el fichero es de solo lectura o el disco duro
est lleno.
5 mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).

6 mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.


7 mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o
un dvdrom.
8 mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable /
dvdrom (un dvd).
9 mount -o loop file.iso /mnt/cdrom: montar un fichero o una
imagen iso.
10 mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de
ficheros FAT32.
11 mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una
memoria (sin especificar el tipo de sistema de ficheros).

ESPACIO DE DISCO
1 df -h: mostrar una lista de las particiones montadas.
2 ls -lSr |more: mostrar el tamao de los ficheros y directorios
ordenados por tamao.
3 du -sh dir1: Estimar el espacio usado por el directorio dir1.
4 du -sk * | sort -rn: mostrar el tamao de los ficheros y directorios
ordenados por tamao.
5 rpm -q -a qf %10{SIZE}t%{NAME}n | sort -k1,1n: mostrar
el espacio usado por los paquetes rpm instalados organizados por
tamao (Fedora, Redhat y otros).
6 dpkg-query -W -f=${Installed-Size;10}t${Package}n |
sort -k1,1n: mostrar el espacio usado por los paquetes
instalados, organizados por tamao (Ubuntu, Debian y otros).

USUARIOS Y GRUPOS
1 groupadd nombre_del_grupo: crear un nuevo grupo.
2 groupdel nombre_del_grupo: borrar un grupo.
3 groupmod -n nuevo_nombre_del_grupo
viejo_nombre_del_grupo: renombrar un grupo.
4 useradd -c Name Surname -g admin -d /home/user1 -s
/bin/bash user1: Crear un nuevo usuario perteneciente al grupo
admin.
5 useradd user1: crear un nuevo usuario.
6 userdel -r user1: borrar un usuario (-r elimina el directorio
Home).
7 usermod -c User FTP -g system -d /ftp/user1 -s
/bin/nologin user1: cambiar los atributos del usuario.
8 passwd: cambiar contrasea.
9 passwd user1: cambiar la contrasea de un usuario (solamente
por root).
10 chage -E 2011-12-31 user1: colocar un plazo para la contrasea
del usuario. En este caso dice que la clave expira el 31 de
diciembre de 2011.
11 pwck: chequear la sintaxis correcta el formato de fichero de
/etc/passwd y la existencia de usuarios.
12 grpck: chequear la sintaxis correcta y el formato del fichero
/etc/group y la existencia de grupos.
13 newgrp group_name: registra a un nuevo grupo para cambiar el
grupo predeterminado de los ficheros creados recientemente.

PERMISOS EN FICHEROS (USA +


PARA COLOCAR PERMISOS Y -
PARA ELIMINAR)
1 ls -lh: Mostrar permisos.
2 ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
3 chmod ugo+rwx directory1: colocar permisos de lectura ,
escritura (w) y ejecucin(x) al propietario (u), al grupo (g) y a otros
(o) sobre el directorio directory1.
4 chmod go-rwx directory1: quitar permiso de lectura ,
escritura (w) y (x) ejecucin al grupo (g) y otros (o) sobre el
directorio directory1.
5 chown user1 file1: cambiar el dueo de un fichero.
6 chown -R user1 directory1: cambiar el propietario de un
directorio y de todos los ficheros y directorios contenidos dentro.
7 chgrp group1 file1: cambiar grupo de ficheros.
8 chown user1:group1 file1: cambiar usuario y el grupo
propietario de un fichero.
9 find / -perm -u+s: visualizar todos los ficheros del sistema con
SUID configurado.
10 chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El
usuario que corriendo ese fichero adquiere los mismos privilegios
como dueo.
11 chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero
binario.
12 chmod g+s /home/public: colocar un bit SGID en un directorio
similar al SUID pero por directorio.
13 chmod g-s /home/public: desabilitar un bit SGID en un
directorio.
14 chmod o+t /home/public: colocar un bit STIKY en un directorio.
Permite el borrado de ficheros solamente a los dueos legtimos.
15 chmod o-t /home/public: desabilitar un bit STIKY en un
directorio.

ATRIBUTOS ESPECIALES EN
FICHEROS (USA + PARA
COLOCAR PERMISOS Y - PARA
ELIMINAR)
1 chattr +a file1: permite escribir abriendo un fichero solamente
modo append.
2 chattr +c file1: permite que un fichero sea comprimido /
descomprimido automaticamente.
3 chattr +d file1: asegura que el programa ignore borrar los
ficheros durante la copia de seguridad.
4 chattr +i file1: convierte el fichero en invariable, por lo que no
puede ser eliminado, alterado, renombrado, ni enlazado.
5 chattr +s file1: permite que un fichero sea borrado de forma
segura.

6 chattr +S file1: asegura que un fichero sea modificado, los


cambios son escritos en modo synchronous como con sync.
7 chattr +u file1: te permite recuperar el contenido de un fichero
an si este est cancelado.
8 lsattr: mostrar atributos especiales.

ARCHIVOS Y FICHEROS
COMPRIMIDOS
1
2
3
4
5
6
7

bunzip2 file1.bz2: descomprime in fichero llamado file1.bz2.


bzip2 file1: comprime un fichero llamado file1.
gunzip file1.gz: descomprime un fichero llamado file1.gz.
gzip file1: comprime un fichero llamado file1.
gzip -9 file1: comprime con compresin mxima.
rar a file1.rar test_file: crear un fichero rar llamado file1.rar.
rar a file1.rar file1 file2 dir1: comprimir file1, file2 y dir1
simultneamente.
8 rar x file1.rar: descomprimir archivo rar.
9 unrar x file1.rar: descomprimir archivo rar.
10 tar -cvf archive.tar file1: crear un tarball descomprimido.
11 tar -cvf archive.tar file1 file2 dir1: crear un archivo
conteniendo file1, file2 ydir1.
12 tar -tf archive.tar: mostrar los contenidos de un archivo.
13 tar -xvf archive.tar: extraer un tarball.
14 tar -xvf archive.tar -C /tmp: extraer un tarball en / tmp.
15 tar -cvfj archive.tar.bz2 dir1: crear un tarball comprimido
dentro de bzip2.
16 tar -xvfj archive.tar.bz2: descomprimir un archivo tar
comprimido en bzip2
17 tar -cvfz archive.tar.gz dir1: crear un tarball comprimido en
gzip.
18 tar -xvfz archive.tar.gz: descomprimir un archive tar
comprimido en gzip.
19 zip file1.zip file1: crear un archivo comprimido en zip.
20 zip -r file1.zip file1 file2 dir1: comprimir, en zip, varios archivos
y directorios de forma simultnea.
21 unzip file1.zip: descomprimir un archivo zip.

PAQUETES RPM (RED HAT, FEDORA


Y SIMILARES)
1 rpm -ivh package.rpm: instalar un paquete rpm.
2 rpm -ivh nodeeps package.rpm: instalar un paquete rpm
ignorando las peticiones de dependencias.
3 rpm -U package.rpm: actualizar un paquete rpm sin cambiar la
configuracin de los ficheros.
4 rpm -F package.rpm: actualizar un paquete rpm solamente si
este est instalado.
5 rpm -e package_name.rpm: eliminar un paquete rpm.
6 rpm -qa: mostrar todos los paquetes rpm instalados en el
sistema.
7 rpm -qa | grep httpd: mostrar todos los paquetes rpm con el
nombre httpd.

8 rpm -qi package_name: obtener informacin en un paquete


especfico instalado.
9 rpm -qg System Environment/Daemons: mostar los
paquetes rpm de un grupo software.
10 rpm -ql package_name: mostrar lista de ficheros dados por un
paquete rpm instalado.
11 rpm -qc package_name: mostrar lista de configuracin de
ficheros dados por un paquete rpm instalado.
12 rpm -q package_name whatrequires: mostrar lista de
dependencias solicitada para un paquete rpm.
13 rpm -q package_name whatprovides: mostar la capacidad
dada por un paquete rpm.
14 rpm -q package_name scripts: mostrar los scripts comenzados
durante la instalacin /eliminacin.
15 rpm -q package_name changelog: mostar el historial de
revisions de un paquete rpm.
16 rpm -qf /etc/httpd/conf/httpd.conf: verificar cul paquete rpm
pertenece a un fichero dado.
17 rpm -qp package.rpm -l: mostrar lista de ficheros dados por un
paquete rpm que an no ha sido instalado.
18 rpm import /media/cdrom/RPM-GPG-KEY: importar la firma
digital de la llave pblica.
19 rpm checksig package.rpm: verificar la integridad de un
paquete rpm.
20 rpm -qa gpg-pubkey: verificar la integridad de todos los
paquetes rpm instalados.
21 rpm -V package_name: chequear el tamao del fichero,
licencias, tipos, dueo, grupo, chequeo de resumen de MD5 y
ltima modificacin.
22 rpm -Va: chequear todos los paquetes rpm instalados en el
sistema. Usar con cuidado.
23 rpm -Vp package.rpm: verificar un paquete rpm no instalado
todava.
24 rpm2cpio package.rpm | cpio extract make-directories
*bin*: extraer fichero ejecutable desde un paquete rpm.
25 rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm: instalar
un paquete construido desde una fuente rpm.
26 rpmbuild rebuild package_name.src.rpm: construir un
paquete rpm desde una fuente rpm.

ACTUALIZADOR DE PAQUETES YUM


(RED HAT, FEDORA Y SIMILARES)
1 yum install package_name: descargar e instalar un paquete
rpm.
2 yum localinstall package_name.rpm: este instalar un RPM y
tratar de resolver todas las dependencies para ti, usando tus
repositorios.
3 yum update package_name.rpm: actualizar todos los paquetes
rpm instalados en el sistema.
4 yum update package_name: modernizar / actualizar un paquete
rpm.
5 yum remove package_name: eliminar un paquete rpm.
6 yum list: listar todos los paquetes instalados en el sistema.

7 yum search package_name: Encontrar un paquete en


repositorio rpm.
8 yum clean packages: limpiar un cach rpm borrando los
paquetes descargados.
9 yum clean headers: eliminar todos los ficheros de
encabezamiento que el sistema usa para resolver la dependencia.
10 yum clean all: eliminar desde los paquetes cach y ficheros de
encabezado.

PAQUETES DEB (DEBIAN, UBUNTU


Y DERIVADOS)
1
2
3
4
5
6
7
8

dpkg -i package.deb: instalar / actualizar un paquete deb.


dpkg -r package_name: eliminar un paquete deb del sistema.
dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
dpkg -l | grep httpd: mostrar todos los paquetes deb con el
nombre httpd
dpkg -s package_name: obtener informacin en un paquete
especfico instalado en el sistema.
dpkg -L package_name: mostar lista de ficheros dados por un
paquete instalado en el sistema.
dpkg contents package.deb: mostrar lista de ficheros dados
por un paquete no instalado todava.
dpkg -S /bin/ping: verificar cul paquete pertenece a un fichero
dado.

ACTUALIZADOR DE PAQUETES APT


(DEBIAN, UBUNTU Y DERIVADOS)
1 apt-get install package_name: instalar / actualizar un paquete
deb.
2 apt-cdrom install package_name: instalar / actualizar un
paquete deb desde un cdrom.
3 apt-get update: actualizar la lista de paquetes.
4 apt-get upgrade: actualizar todos los paquetes instalados.
5 apt-get remove package_name: eliminar un paquete deb del
sistema.
6 apt-get check: verificar la correcta resolucin de las
dependencias.
7 apt-get clean: limpiar cache desde los paquetes descargados.
8 apt-cache search searched-package: retorna lista de paquetes
que corresponde a la serie paquetes buscados.

VER EL CONTENIDO DE UN
FICHERO
1 cat file1: ver los contenidos de un fichero comenzando desde la
primera hilera.
2 tac file1: ver los contenidos de un fichero comenzando desde la
ltima lnea.
3 more file1: ver el contenido a lo largo de un fichero.
4 less file1: parecido al commando more pero permite salvar el
movimiento en el fichero as como el movimiento hacia atrs.
5 head -2 file1: ver las dos primeras lneas de un fichero.

6 tail -2 file1: ver las dos ltimas lneas de un fichero.


7 tail -f /var/log/messages: ver en tiempo real qu ha sido
aadido al fichero.

MANIPULACIN DE TEXTO
1 cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt:
sintaxis general para la manipulacin de texto utilizando PIPE,
STDIN y STDOUT.
2 cat file1 | command( sed, grep, awk, grep, etc) >
result.txt: sintaxis general para manipular un texto de un fichero
y escribir el resultado en un fichero nuevo.
3 cat file1 | command( sed, grep, awk, grep, etc)
result.txt: sintaxis general para manipular un texto de un fichero
y aadir resultado en un fichero existente.
4 grep Aug /var/log/messages: buscar palabras Aug en el
fichero /var/log/messages.
5 grep ^Aug /var/log/messages: buscar palabras que comienzan
con Aug en fichero /var/log/messages
6 grep [0-9] /var/log/messages: seleccionar todas las lneas del
fichero /var/log/messages que contienen nmeros.
7 grep Aug -R /var/log/*: buscar la cadena Aug en el directorio
/var/log y debajo.
8 sed s/stringa1/stringa2/g example.txt: reubicar string1
con string2 en ejemplo.txt
9 sed /^$/d example.txt: eliminar todas las lneas en blanco
desde el ejemplo.txt
10 sed / *#/d; /^$/d example.txt: eliminar comentarios y lneas
en blanco de ejemplo.txt
11 echo esempio | tr [:lower:] [:upper:]: convertir minsculas
en maysculas.
12 sed -e 1d result.txt: elimina la primera lnea del fichero
ejemplo.txt
13 sed -n /stringa1/p: visualizar solamente las lneas que
contienen la palabra string1.

ESTABLECER CARACTER Y
CONVERSIN DE FICHEROS
1 dos2unix filedos.txt fileunix.txt: convertir un formato de
fichero texto desde MSDOS a UNIX.
2 unix2dos fileunix.txt filedos.txt: convertir un formato de
fichero de texto desde UNIX a MSDOS.
3 recode ..HTML < page.txt > page.html: convertir un fichero de
texto en html.
4 recode -l | more: mostrar todas las conversiones de formato
disponibles.

ANLISIS DEL SISTEMA DE


FICHEROS
1 badblocks -v /dev/hda1: Chequear los bloques defectuosos en el
disco hda1.
2 fsck /dev/hda1: reparar / chequear la integridad del fichero del
sistema Linux en el disco hda1.

3 fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero


del sistema ext 2 en el disco hda1.
4 e2fsck /dev/hda1: reparar / chequear la integridad del fichero del
sistema ext 2 en el disco hda1.
5 e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero
del sistema ext 3 en el disco hda1.
6 fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero
del sistema ext 3 en el disco hda1.
7 fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero
sistema fat en el disco hda1.
8 fsck.msdos /dev/hda1: reparar / chequear la integridad de un
fichero del sistema dos en el disco hda1.
9 dosfsck /dev/hda1: reparar / chequear la integridad de un
fichero del sistema dos en el disco hda1.

FORMATEAR UN SISTEMA DE
FICHEROS
1 mkfs /dev/hda1: crear un fichero de sistema tipo Linux en la
particin hda1.
2 mke2fs /dev/hda1: crear un fichero de sistema tipo Linux ext 2
en hda1.
3 mke2fs -j /dev/hda1: crear un fichero de sistema tipo Linux ext3
(peridico) en la particin hda1.
4 mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32
en hda1.
5 fdformat -n /dev/fd0: formatear un disco flooply.
6 mkswap /dev/hda3: crear un fichero de sistema swap.

TRABAJO CON LA SWAP


1 mkswap /dev/hda3: crear fichero de sistema swap.
2 swapon /dev/hda3: activando una nueva particin swap.
3 swapon /dev/hda2 /dev/hdb3: activar dos particiones swap.

SALVAS (BACKUP)
1 dump -0aj -f /tmp/home0.bak /home: hacer una salva
completa del directorio /home.
2 dump -1aj -f /tmp/home0.bak /home: hacer una salva
incremental del directorio /home.
3 restore -if /tmp/home0.bak: restaurando una salva
interactivamente.
4 rsync -rogpav delete /home /tmp: sincronizacin entre
directorios.
5 rsync -rogpav -e ssh delete /home ip_address:/tmp: rsync a
travs del tnelSSH.
6 rsync -az -e ssh delete ip_addr:/home/public /home/local:
sincronizar un directorio local con un directorio remoto a travs de
ssh y de compresin.
7 rsync -az -e ssh delete /home/local ip_addr:/home/public:
sincronizar un directorio remoto con un directorio local a travs de
ssh y de compresin.
8 dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr dd
of=hda.gz: hacer una salva de un disco duro en un host remoto
a travs de ssh.

9 dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco


duro a un fichero. (En este caso el disco duro es sda y el fichero
file1).
10 tar -Puf backup.tar /home/user: hacer una salva incremental
del directorio /home/user.
11 ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr cd
/home/share/ && tar x -p: copiar el contenido de un directorio
en un directorio remoto a travs de ssh.
12 ( tar c /home ) | ssh -C user@ip_addr cd /home/backuphome && tar x -p: copiar un directorio local en un directorio
remoto a travs de ssh.
13 tar cf . | (cd /tmp/backup ; tar xf ): copia local conservando
las licencias y enlaces desde un directorio a otro.
14 find /home/user1 -name *.txt | xargs cp -av targetdirectory=/home/backup/ parents: encontrar y copiar todos
los ficheros con extensin .txt de un directorio a otro.
15 find /var/log -name *.log | tar cv files-from=- | bzip2 >
log.tar.bz2: encontrar todos los ficheros con extensin .log y
hacer un archivo bzip.
16 dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia
del MRB (Master Boot Record) a un disco floppy.
17 dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la
copia del MBR (Master Boot Record) salvada en un floppy.

CD-ROM
1 cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast
-force: limpiar o borrar un cd regrabable.
2 mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en
disco.
3 mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen
comprimida iso de cdrom en disco.
4 mkisofs -J -allow-leading-dots -R -V Label CD -iso-level 4
-o ./cd.iso data_cd: crear una imagen iso de un directorio.
5 cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
6 gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom : quemar una
imagen iso comprimida.
7 mount -o loop cd.iso /mnt/iso: montar una imagen iso.
8 cd-paranoia -B: llevar canciones de un cd a ficheros wav.
9 cd-paranoia -3: llevar las 3 primeras canciones de un cd a
ficheros wav.
10 cdrecord scanbus: escanear bus para identificar el canal scsi.
11 dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un
dispositivo, como un CD.

TRABAJO CON LA RED ( LAN Y WIFI)


1 ifconfig eth0: mostrar la configuracin de una tarjeta de red
Ethernet.
2 ifup eth0: activar una interface eth0.
3 ifdown eth0: deshabilitar una interface eth0.
4 ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar
una direccin IP.

5 ifconfig eth0 promisc: configurar eth0en modo comn para


obtener los paquetes (sniffing).
6 dhclient eth0: activar la interface eth0 en modo dhcp.
7 route -n: mostrar mesa de recorrido.
8 route add -net 0/0 gw IP_Gateway: configurar entrada
predeterminada.
9 route add -net 192.168.0.0 netmask 255.255.0.0 gw
192.168.1.1: configurar ruta esttica para buscar la red
192.168.0.0/16.
10 route del 0/0 gw IP_gateway: eliminar la ruta esttica.
11 echo 1 > /proc/sys/net/ipv4/ip_forward: activar el recorrido
ip.
12 hostname: mostrar el nombre del host del sistema.
13 host www.example.com: buscar el nombre del host para
resolver el nombre a una direccin ip(1).
14 nslookup www.example.com: buscar el nombre del host para
resolver el nombre a una direccim ip y viceversa(2).
15 ip link show: mostar el estado de enlace de todas las interfaces.
16 mii-tool eth0: mostar el estado de enlace de eth0.
17 ethtool eth0: mostrar las estadsticas de tarjeta de red eth0.
18 netstat -tup: mostrar todas las conexiones de red activas y sus
PID.
19 netstat -tupl: mostrar todos los servicios de escucha de red en el
sistema y sus PID.
20 tcpdump tcp port 80: mostrar todo el trfico HTTP.
21 iwlist scan: mostrar las redes inalmbricas.
22 iwconfig eth1: mostrar la configuracin de una tarjeta de red
inalmbrica.
23 whois www.example.com: buscar en base de datos Whois.

REDES DE MICROSOFT WINDOWS


(SAMBA)
1 nbtscan ip_addr: resolucin de nombre de red bios.
2 nmblookup -A ip_addr: resolucin de nombre de red bios.
3 smbclient -L ip_addr/hostname: mostrar acciones remotas de
un host en windows.

TABLAS IP (CORTAFUEGOS)
1 iptables -t filter -L: mostrar todas las cadenas de la tabla de
filtro.
2 iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
3 iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
4 iptables -t nat -F: limpiar todas las reglas de la tabla nat.
5 iptables -t filter -X: borrar cualquier cadena creada por el
usuario.
6 iptables -t filter -A INPUT -p tcp dport telnet -j ACCEPT:
permitir las conexiones telnet para entar.
7 iptables -t filter -A OUTPUT -p tcp dport http -j DROP:
bloquear las conexiones HTTP para salir.
8 iptables -t filter -A FORWARD -p tcp dport pop3 -j ACCEPT:
permitir las conexiones POP a una cadena delantera.
9 iptables -t filter -A INPUT -j LOG log-prefix DROP INPUT:
registrando una cadena de entrada.

10 iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE:


configurar un PAT (Puerto de traduccin de direccin) en eth0,
ocultando los paquetes de salida forzada.
11 iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp
dport 22 -j DNAT to-destination 10.0.0.2:22: redireccionar
los paquetes diriguidos de un host a otro.

MONITOREANDO Y DEPURANDO
1 top: mostrar las tareas de linux usando la mayora cpu.
2 ps -eafw: muestra las tareas Linux.
3 ps -e -o pid,args forest: muestra las tareas Linux en un modo
jerrquico.
4 pstree: mostrar un rbol sistema de procesos.
5 kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
6 kill -1 ID_Processo: forzar un proceso para recargar la
configuracin.
7 lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
8 lsof /home/user1: muestra una lista de ficheros abiertos en un
camino dado del sistema.
9 strace -c ls >/dev/null: mostrar las llamadas del sistema hechas
y recibidas por un proceso.
10 strace -f -e open ls >/dev/null: mostrar las llamadas a la
biblioteca.
11 watch -n1 cat /proc/interrupts: mostrar interrupciones en
tiempo real.
12 last reboot: mostrar historial de reinicio.
13 lsmod: mostrar el kernel cargado.
14 free -m: muestra el estado de la RAM en megabytes.
15 smartctl -A /dev/hda: monitorear la fiabilidad de un disco duro a
travs de SMART.
16 smartctl -i /dev/hda: chequear si SMART est activado en un
disco duro.
17 tail /var/log/dmesg: mostrar eventos inherentes al proceso de
carga del kernel.
18 tail /var/log/messages: mostrar los eventos del sistema.

OTROS COMANDOS TILES


1 apropos keyword: mostrar una lista de comandos que
pertenecen a las palabras claves de un programa; son tiles
cuando t sabes qu hace tu programa, pero de sconoces el
nombre del comando.
2 man ping: mostrar las pginas del manual on-line; por ejemplo,
en un comando ping, usar la opcin -k para encontrar cualquier
comando relacionado.
3 whatis keyword: muestra la descripcin de lo que hace el
programa.
4 mkbootdisk device /dev/fd0 `uname -r`: crear un floppy
boteable.
5 gpg -c file1: codificar un fichero con guardia de seguridad GNU.
6 gpg file1.gpg: decodificar un fichero con Guardia de seguridad
GNU.
7 wget -r www.example.com: descargar un sitio web completo.
8 wget -c www.example.com/file.iso: descargar un fichero con la
posibilidad de parar la descargar y reanudar ms tarde.

9 echo wget -c www.example.com/files.iso | at 09:00:


Comenzar una descarga a cualquier hora. En este caso empezara
a las 9 horas.
10 ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas
por el programa ssh.
11 alias hh=history: colocar un alias para un commando hh=
Historial.
12 chsh: cambiar el comando Shell.
13 chsh list-shells: es un comando adecuado para saber si tienes
que hacer remoto en otra terminal.
14 who -a: mostrar quien est registrado, e imprimir hora del ltimo
sistema de importacin, procesos muertos, procesos de registro de
sistema, procesos activos producidos por init, funcionamiento
actual y ltimos cambios del reloj del sistema.
Desde <http://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberiasconocer/>

ac

Imprime estadsticas acerca del tiempo que han estado co


usuarios.

adduser

Ver useradd.

alias

Crea atajos de comandos, lista los alias actuales.

apt-get

Herramienta de actualizacn/instalacin remota de paque


sistemas basados en debian.

arp

Permite obtener/manipular la lista de direcciones MAC/Ip


sistema ve.

arping

Enva ARP REQUEST a otros equipos en la red.

arptables

Firewall similar en funciones a iptables pero para control d


protocolo arp.

at

Programa trabajos, comandos, scripts para su ejecucin p

atq

Lista los trabajos programados pendientes de ejecutar por


at.

10

awk

Anlisis y procesamiento de patrones en archivos y listado

11

basename

Permite eliminar la ruta del nombre de un archivo.

12

bc

Calculadora y lenguaje matemtico, muy potente.

13

biosdecode

Informacin sobre el BIOS.

14

blkid

Muestra atributos de dispositivos de bloque (discos, usb, e


como LABEL y UUID, entre otros.

15

bzcat

Descomprime archivos comprimidos o empaquetados med

16

bzip2

Compresor / descompresor de archivos.

17

bzmore

Permite ver el contenido de archivos comprimidos o empa


mediante bzip2.

18

cal

Despliega un calendario.

19

cat

Muestra el contenido de archivos y concatena archivos.

20

cd

Cambiar de directorio.

21

cfdisk

Herramienta de particionamiento de discos, usada en siste


principalmente.

22

chage

Permite cambiar la informacin (expiracin, caducidad, et


contrasea de un usuario.

23

chattr

Cambia atributos extendidos de archivos y directorios

24

chfn

Cambia la informacin usada en finger.

25

chgrp

Cambia el grupo de un archivo(s) o carpetas(s).

26

chkconfig

Controla/consulta el modo en que los servicios se ejecutan


inicio del sistema.

27

chmod

Cambia los permisos de un archivo(s) o carpetas(s).

28

chown

Cambia el propietario de un archivo(s) o carpetas(s).

29

chpasswd

Actualiza passwords o contraseas en modo batch. Puede


contraseas de grupos de usuarios.

30

chroot

Ejecuta comandos de root en un shell restringido a un dire


subdirectorios.

31

chsh

Cambia tu shell por defecto o shell de login.

32

cleanlinks

Limpia enlaces simblicos que no tengan relacin y tambi


directorios vacios.

33

clear

Limpia la terminal.

34

cmp

Compara dos archivos byte por byte.

35

convertquota

Convierte de los viejos formatos quota.user y quota.group


nuevos formatos de aquota.user y aquota.group.

36

cpio

Copia, crea, comprime y extrae archivos en distintos form


equipos o localmente.

37

crontab

Administra archivos cron para los usuarios y root.

38

curl

Permite descargar o transferir url's.

39

cut

Remueve secciones (columnas principalmente) de cada ln


archivo o archivos.

40

date

Muestra/establece la fecha y hora actual.

41

dc

Calculadora interactiva.

42

dd

Convierte y copia archivos y sistemas de archivos.

43

ddate

Muestra la fecha en formato del calendario Discordante.

44

df

Muestra el uso de espacio de discos duros o particiones.

45

diff

Busca y muestra diferencias entre archivos.

46

dig

Utilera para consultas a servidores DNS.

47

dircolors

Configuracin de colores para el comando ls.

48

dirs

Permite mostrar, manipular la lista de directorios utilizado


(ver popd y pushd)

49

dmesg

Muestra los mensajes del arranque del sistema (boot).

50

dmidecode

Lista hardware del equipo directamente del BIOS. (tambi

51

dos2unix

Convierte archivos de formato MS-DOS a formato Unix/Lin

52

du

Muestra el uso de espacio de archivos y directorios.

53

dump

Permite la creacin de respaldos para los sistemas de arch


ext3.

54

echo

Imprime una lnea de texto, variables, o contenido a un ar

55

edquota

Administra el control de cuotas de disco de usuario y grup

56

egrep

Es igual que el comando 'grep -E', para uso de expresione

57

eject

Desmonta y expulsa un medio removible, como cdroms.

58

env

Ejecuta un programa en un entorno modificado.

59

ethtool

Permite desplegar o cambiar valores de una tarjeta de red

60

exit

Sale del shell o terminal actual.

61

expect

Permite crear secuencias de dilogos y programar sesione


interactivas con otros comandos o scripts.

62

export

Exporta el valor de una variable.

63

exportfs

Mantiene una lista de sistemas de archivos del tipo NFS qu


exportados.

64

expr

Evaluador de expresiones matemticas.

65

factor

Encuentra los nmeros primos de un nmero dado.

66

fc

Lista, edita y reejecuta comandos previamente ejecutados

67

fdisk

Herramienta para particionar discos, comn a casi todas la

68

fgrep

Es igual que 'grep -F' para uso de expresiones regulares e


de archivos y listados.

69

file

Determina el tipo de archivo.

70

find

Bsqueda de archivos, multitud de opciones de bsqueda.

71

findfs

Busca un sistema de archivos por UUID o LABEL (etiqueta

72

findsmb

Lista informacin sobre equipos que respondan a paquete


una red Windows. (Parte del paquete Samba)

73

finger

Muestra informacin sobre los usuarios del sistema.

74

fortune

Imprime un adagio al azar.

75

fping

Permite mandar paquetes ICMP (pings) a mltiples equipo


red y determinar si estn vivos o no.

76

free

Muestra el espacio usado y libre de memoria RAM y Swap

77

fsck

Herramienta para verificar/reparar sistemas de archivos.

78

fuser

Identifica procesos utilizando archivos o conexiones (sock

79

gawk

Anlisis y procesamiento de patrones en archivos y listado


gnu)

80

gcc

Compilador de C y de C++ de GNU.

81

gedit

Editor de textos de gnome.

82

gpasswd

Permite la administracin del archivo /etc/group

83

gpg

Herramienta de encriptacin y de generacin de certificad


seguridad (opengpg).

84

grep

Busca patrones de cadenas dentro de archivos.

85

groupadd

Crea un nuevo grupo en el sistema.

86

groupdel

Elimina un grupo en el sistema.

87

groupmod

Modifica un grupo en el sistema.

88

groups

Imprime los grupos a los que pertenece un usuario.

89

gzip

Comprime/expande archivos.

90

halt

Apaga el equipo.

91

hdparm

Establece y muestra caractersticas sobre los discos duros

92

head

Despliega las primera lneas de un archivo.

93

help

Ayuda sobre los comandos internos de bash.

94

history

Muestra el historial de comandos del usuario.

95

host

Utileria de consulta a sevidores DNS.

96

hostname

Despliega el nombre del equipo.

97

htpasswd

Administra archivos de usuario/contrasea para autentific


de Apache.

98

hwclock

Muestra/Establece la fecha/hora del bios o hardware. (Fec


sistema con date)

99

id

Muestra el UID (User ID) y GID (Group ID) del usuario

100

ifconfig

Muestra/Configura las interfaces de red del sistema.

101

ifstat

Pequea utileria que permite observar estadsticas de las


red en tiempo real.

102

init

Control de inicializacin de un nivel de ejecuccin.

103

insmod

Inserta mdulos en el kernel.

104

ipcalc

Realiza clculos simples sobre direcciones IP.

105

ipcount

Identificacin de rangos de red, clculo de IP's.

106

iptab

Muestra una tabla de direcciones IP de acuerdo al prefijo C

107

iptables

Herramienta de configuracin del firewall de Linux.

108

iptraf

Analizador de trfico de red en modo de texto.

109

iwconfig

Configura una tarjeta de red inalmbrica.

110

iwlist

Obtiene informacin detallada de una tarjeta inalmbrica.

111

jobs

Muestra los trabajos del usuario en suspensin o en backg

112

kate

Editor de textos de KDE.

113

kill

Termina procesos, mas correctamente enva seales a pro

114

killall

Termina procesos del mismo nombre o conjunto.

115

last

Muestra informacin de los ltimos usuarios logueados.

116

lastb

Muestra informacin de los ltimos intentos fallidos de log

117

less

Muestra el contenido de un archivo, permite bsquedas y


haca atrs y adelante.

118

ln

Crea enlaces (accesos directos) suaves y duros de archivo


directorios.

119

locale

Informacin especfica sobre las variables de entorno loca

120

locate

Indexa y busca archivos. Mas seguro utilizar slocate.

121

losetup

Define y controla dispositivos del tipo 'loop'.

122

lpq

Muestra los documentos para imprimir en la cola de impre

123

lpr

Aade un documento a la cola de impresin.

124

ls

Lista archivos y directorios.

125

lshw

Lista hardware del equipo directamente del BIOS. (tambi


dmidecode)

126

lsmod

Muestra el estatus de los mdulos en el kernel.

127

lsof

Muestra archivos abiertos de un programa en ejecuccin,


usuario, proceso, etc.

128

lspci

Lista los dispositivos pci del sistema.

129

lsusb

Lista los dispositivos usb del sistema.

130

mail

Enva y recibe correos.

131

man

Muestra el manual del comando indicado.

132

mc

Manejador de archvivos con soporte de mouse en modo d


todas las distro lo tienen.

133

mcedit

Editor de textos de mc.

134

md5sum

Comprueba (y genera) archivos con firma de certificacin

135

mkdir

Crea directorios.

136

mkfs

Construye un sistema de archivos de Linux.

137

mkpasswd

Generador de contraseas. (Paquete del programa 'expect

138

modinfo

Muestra informacin acerca de los mdulos del kernel.

139

modprobe

Herramienta que aade/remueve mdulos del kernel.

140

more

Paginador similar a less pero menos funcioanal, ya que sa


no retocede.

141

mount

Monta dispositvos de almacenamiento en particiones indic

142

mtools

Conjunto de utilidades para acceder a discos DOS desde L

143

mv

Mueve archivos y directorios.

144

netstat

Herramienta de red que muestra conexiones, tablas de ru


estadsticas de interfaces, etc.

145

nice

Ejecuta un programa con una prioridad de ejecuccin disti


normal.

146

nohup

Ejecuta un programa inmune a los hangups y sin salida a


terminal.

147

openssl

Control, administracin, generacin de certificados de seg

148

partprobe

Indica al sistema operativo de los cambios indicados en /e

149

passwd

Cambia la contrasea del usuario indicado.

150

ping

Manda un echo_request (solicitud de eco) a un equipo en

151

pkill

Manda seales a procesos basado en sus atributos.

152

popd

Remueve entradas (directorios utilizados) de la lista de dir


utilizados en la pila. (ver dirs y pushd)

153

pr

Formatea o convierte archivos de texto para imprimirlos.

154

ps

Muestra los procesos del sistema o del usuario o ambos.

155

pstree

Muestra los procesos en forma de rbol.

156

pushd

Agrega entradas (directorios utilizados) en la lista de direc


o stack). (ver dirs y popd)

157

pwck

Verifica la integridad del archivo /etc/passwd

158

pwconv

Agrega o establece la proteccin shadow el archivo /etc/p

159

quota

Permite ver el uso de cuotas por usuario.

160

quotacheck

Crea, verifica, administra sistemas de cuotas de disco

161

quotaoff

Desactiva el control de cuotas de discos.

162

quotaon

Activa el control de cuotas de discos para usuarios y grupo

163

rdesktop

Abre terminales grficas ha?ia equipos Windows.

164

reboot

Reinicia el equipo.

165

renice

Cambia la prioridad de un proceso o programa en ejecucc

166

repquota

Reporte de uso de cuotas de disco.

167

resolveip

Resuelve la ip del dominio o host que se indique.

168

rev

Invierte las lneas de un archivo.

169

rm

Borra o elimina archivos.

170

route

Muestra/altera la tabla de ruteo IP.

171

rpm

Programa para la instalacin/actualizacin/eliminacin de


distros basadas en redhat.

172

runlevel

Muestra el nivel de ejecucin actual y anterior del sistema

173

scp

Copia archivos entre equipos, parte del paquete openssh (


de comunicacin encriptado).

174

screen

Administrador de terminales virtuales.

175

sed

Editor en lnea que filtra y transforma archivos.

176

service

Ejecuta/detiene servicios en modo manual.

177

set

Muestra o establece el entorno de variables para el usuari

178

sha1sum

Comprueba (y genera) archivos con firma de certificacin

179

shopt

Habilita o deshabilita variables opcionales del comportami


shell.

180

shred

Elimina archivos de manera segura e irrecuperable.

181

shutdown

Apaga o reinicia el equipo.

182

sort

Ordena lneas de archivos y listas

183

ss

Utileria similar a netstat pero ms bsica, listados rpidos


establecidos.

184

ssh

Programa de login remoto seguro, programa del paquete o


(protocolo de comunicacin encriptado).

185

startx

Inicia una sesin X.

186

su

Cambia del usuario actual al indicado.

187

sudo

Permite indicar que usuario ejecuta que comandos de root

188

sync

Forza bloques en memoria a discos, actualiza el superbloq

189

tac

Igual que cat, muestra y/o concatena archivos pero al rev

190

tail

Muestra la parte final de un archivo.

191

tailf

Sinnimo del comando tail -f, permite ver en tiempo real l


de un archivo, es decir, conforme se va escribiendo, til pa
monitorear bitcoras.

192

tar

Herramienta empaquetadora/compresora de archivos.

193

testparm

Revisa archivos smb.conf de samba por errores o correcio

194

time

Devuelve el tiempo en que se ejecut el comando o progr


indicado.

195

top

Muestra los procesos del sistema de manera interactiva y

196

touch

Crea archivos vacios, cambia fechas de acceso y/o modific


archivos.

197

tput

Cambia valores o capacidades de la terminal, en base a te

198

traceroute

Imprime la ruta de los paquetes de red hasta el destino in

199

tty

Imprime el nombre de la terminal en la que se esta.

200

tzselect

Permite establecer una zona o huso horario.

201

umask

Establece una mscara de permisos para cuando se crean


y archivos.

202

umount

Desmonta sistemas de archivos.

203

unalias

Elimina alias de comandos, creados con el comando alias.

204

uname

Despliega informacin del sistema.

205

uniq

Omite o reporta sobre lneas repetidas en un archivo o list

206

units

Convertidor de unidades de un sistema a otro, soporta de


sistemas de medicin.

207

up2date

Herramienta de actualizacin/instalacin remota de paque


en redhat, centos).

208

uptime

Muestra que tanto tiempo lleva prendido el equipo.

209

urpme

Programa del paquete urpmi para desinstalar o eliminar p

210

urpmi

Herramienta de actualizacin/instalacin remota de paque


basadas en rpm (usada en mandriva).

211

useradd

Aade usuarios.

212

userdel

Elimina usuarios.

213

usermod

Modifica informacin de usuarios.

214

users

Muestra los nombres de usuario de todos los usuarios con


actualmente al sistema.

215

vi

Editor visual de pantalla, editor de textos, que encuentras


las distros Linux.

216

vim

Igual que el vi pero mejorado.

217

visudo

Editor para el archivo de configuracin /etc/sudoers de su

218

vmstat

Proporciona informacin sobre la memoria virtual.

219

Muestra quien esta conectado al sistema y que esta hacie

220

wall

Manda un mensaje a todas las terminales.

221

warnquota

Configura /etc/warnquota.conf como complemento de me


cuotas de disco.

222

wc

Cuenta palabras, lneas, caracteres de un archivo o listado

223

wget

Descargador de archivos desde Internet, no interactivo.

224

whatis

Descripcin corta, en una lnea de un comando o program

225

whereis

Localiza el binario, fuentes y/o librerias, y documentacin


comado.

226

which

Muestra la ruta completa de un comando.

227

who

Muestra quien esta conectado al sistema.

228

whoami

Muestra el usuario actual.

229

xhost

Control de acceso para sesiones X.

230

xkill

Mata o termina a un cliente X, es decir, a un programa gr

231

yes

Imprime una cadena repetidamente hasta que sea termin


matado el comando.

232

yum

Herramienta de actualizacin/instalacin remota de paque


basadas en rpm (usada en fedora, redhat y derivados).

233

zcat

Descomprime / muestra archivos comprimidos con gunzip


a utilizar gunzip -c)

234

zenity

Despliega varios tipos de dilogos en X desde una termina

235

zless

Permite mostrar el contenido de archivos comprimidos.

236

zmore

Permite mostrar el contenido de archivos comprimidos

Desde <http://www.linuxtotal.com.mx/?cont=info_admon_002>

Sintaxis cd nombre_directorio; permite ingresar en un nombre del


directorio especifico
Sintaxis cp nombre_archivo nueva_ruta; permite copiar un archivo
especifico a una nueva ruta del sistema.
Sintaxis mkdir nombre_directorio;permite crear un directorio en el
sistema.
Sintaxis mkdir -p nombre_directorio;permite crear un directorio oculto
en el sistema.
Comando date;permite conocer la hora y fecha actual del sistema.
Sintaxis touch archivo; permite crear un archivo vaco en el sistema
GNU/Linux.
Sintaxis mv nombre_archivo nueva_ruta; permite cortar el archivo
hacia una nueve ruta del sistema.
Sintaxis rm -Rf nombre_archivo | directorio; permite borrar de forma
forzada y recursiva un archivo o directorio especifico.
Comando hostname; permite conocer informacin del equipo anfitrin.
Sintaxis comando &; permite ejecutar un comando en segundo plano.
Comando chkconfig; permite conocer informacin sobre los niveles de
ejecucin de los scripts ubicados en el directorio /etc/rc.d/init.d
Sintaxis service servicio|demonio start | stop | restart |
reload; permite iniciar, detener, reiniciar o recargar un servicio activo en
el servidor GNU/Linux.
Sintaxis free -m; permite conocer el espacio libre en memoria del
sistema.
Sintaxis du -h; permite conocer el tamao de un archivo o directorio
especifico.
Sintaxis df -h; permite conocer el espacio en disco disponible.
Comando halt; permite apagar el sistema.
Sintaxis shutdown -h Hora; permite apagar el sistema a la hora que se
indique. Slo recordar si t sistema se encuentra en horario militar, es
decir, 1:00 PM = 13:00, etc.
Comando reboot; permite reiniciar el sistema.
Sintaxis find / -name archivo; permite buscar un archivo especifico
desde la raz del sistema GNU/Linux.
Sintaxis mount -t vfat /dev/sdb1 /media/usbdisk; permite montar
una unidad de tipo USB SATAcomo primario esclavo en el directorio de
nombre usbdisk con sistema de archivos vfat.
Sintaxis umount -t vfat /dev/sdb1 /media/usbdisk; permite
desmontar una unidad de tipo USBSATA como primario esclavo en el
directorio de nombre usbdisk con sistema de archivos vfat.
Sintaxis rpm -Uvh nombre_paquete; permite actualizar un paquete
especifico.

Sintaxis rpm -ivh nombre_paquete; permite instalar un paquete


especifico.
Sintaxis uname -a; permite conocer la versin actual del kernel linux.
Sintaxis man comando;permite conocer a detalle los parmetros de
cada comando en GNU/Linux.
Sintaxis ls -lh; permite listar los ficheros de forma paginada.
Sintaxis ls -la; permite listar propiedades y atributos.
Sintaxis ls -d */; permite listar directorios solamente.
Sintaxis ln -s ruta_del_directorio nuevo_enlace; permite crear un
enlace simblico.
Sintaxis stat -f archivo; permite mostrar el estado del sistema del
archivo.
Sintaxis fc -l; permite mostrar un listado de los ltimos comandos
ejecutados.
Sintaxis eject cdrom; permite abrir la bandeja del la Unidad del CD
ROM.
Sintaxis eject -t cdrom; permite cerrar la bandeja del la Unidad del CD
ROM.
Sintaxis wc archivo; permite mostrar el nmero de palabras, lneas y
caracteres de un archivo.
Sintaxis tar -cxvf archivo.tar.tgz; permite empaquetar y comprimir un
archivo.
Sintaxis tar -zxvf archivo.tar.tgz; permite desempaquetar y
descomprimir un archivo.
Sintaxis md5sum archivo.iso > archivo.iso.txt; permite generar la
suma de comprobacin md5 de un archivo.
Comando uptime; permite mostrar el tiempo de funcionamiento,
nmero de usuarios conectados, la carga media y la hora del sistema.
Comando ntpd ; permite ajustar el reloj de forma gradual la
sincronizacin con servidores NTP
Sintaxis su | su -; permite cambiar de usuario en el sistema GNU/Linux.
Sintaxis passwd usuario; permite cambiar la contrasea a un usuario
especfico, sino se define al usuario asignara nueva contrasea al usuario
root del sistema, para este ltimo caso debe poseer privilegios de root.
Sintaxis adduser usuario; permite crear un nuevo usuario en el sistema
GNU/Linux.
Sintaxis addgroup grupo; permite crear un nuevo grupo en el sistema
GNU/Linux.
Sintaxis adduser usuario grupo; permite agregar un usuario existente
a un grupo existente.
comando deluser usuario; permite borrar un usuario existente del
sistema GNU/Linux.
Sintaxis deluser usuario grupo; permite borrar un usuario existente de
un grupo especfico.
Sintaxis delgroup grupo; permite eliminar un grupo existente del
sistema GNU/Linux.
Sintaxis id usuario; permite mostrar informacin sobre UID, GID,
GROUPS del usuario usuario.
Sintaxis tail -f /var/log/messages; permite ver las bitcoras del
sistema GNU/Linux.
Comando jobs; permite listar los procesos en segundo plano.
Sintaxis sleep 10 comando; permite retardar por 10 segundos la
ejecucin de un comando.
Sintaxis fdisk -l; permite mostrar las particiones del sistema GNU/Linux.

Comando lsmod; permite mostrar los mdulos cargados en el sistema


GNU/Linux.
Comando lspci; permite mostrar los dispositivos conectados a la tarjeta
madre mediante bus PCI.
Comando lsusb; permite mostrar los buses USB y los dispositivos
conectados.
Comando bc; permite abrir la calculadora desde consola.
Sintaxis dmidecode -q; permite leer directamente la informacin del
BIOS directamente y regresa un listado completo de todo el hardware del
sistema GNU/Linux.
Sintaxis genrica de instalacin de un programa:
1. Desempaquetar el programa; puede ser tar.gz o tgz
2. ./configure o bien ./configure -prefix = ruta; asignar ruta de
ubicacin donde se instalar el programa.
3. make o makeall; compilar el programa.
4. make install; instalar el programa.
Red

Comando ping ; permite conocer si un host esta activo en la red.


Sintaxis ifconfig eth0 up | down; permite activar (up) o bajar (down) la
tarjeta de red eth0 del sistema.
Sintaxis route add default gateway direcion_IP; permite establecer
la pasarela por defecto del servidor.
Comando top;permite ver varios recursos del sistema, como por
ejemplo, cantidad de memoria del sistema, uso del CPU en proceso, etc, .
Para salir del men del comando se oprime la tecla q sin las comillas.
Sintaxis kill nombre_proceso; permite detener (matar) un proceso en
el sistema.
Sintaxis tarceroute direccion_IP o dominio;permite conocer el trazo
de ruta desde un equipo a otro.
Sinatxis netstat -atu | grep nmero_Puerto; permite conocer las
conexiones activas en TCP y UDP de un puerto especfico.
Sintaxis whois dominio; permite mostrar informacin sobre un dominio
especifico.
Comando iptraf; permite monitorizar el trafico de red.
Comando nmap; permite escanear puertos de un dominio o direccin IP,
debe tener el consentimiento del administrador del servidor o servidores.
Sintaxis talk usuario; establece comunicacin entre un usuario del
sistema GNU/Linux.
Sintaxis telnet Direccion_IP puerto; permite conocer si un puerto
especifico se encuentra abierto o en escucha.
Sintaxis dig dominio; permite conocer informacin de un dominio en
particular.
Sintaxis traceroute dominio; permite conocer la ruta hasta el dominio
en cuestin.
Comando tcpdump; permite mostrar el contenido del trafico de red.
Lenguajes de Programacin.

Sintaxis gcc -c programa.c -o programa; permite compilar


el programa.c y nombrar el archivo ejecutable como programa.
Sintaxis ./programa; permite ejecutar el archivo de nombre programa,
siempre y cuando el archivo tenga permisos de ejecucin, es decir, chmod
+x nombre_archivo.
Desde <http://www.enlinux.org/comandos-basicos-en-gnulinux-centos/>

Para visualizar las particiones que tenemos en nuestro disco:


#df -h
Realizar verificacin del un disco o particin, requiere que antes se
desmonte:
#umount <la ubicacin del disco>
#fsck -fy <la ubicacin del disco>
Ejemplo:
#fsck -fy /dev/sda2
Nota: Podemos ver otras opciones dando el comando fsck help
Para dar formato a una particion podemos utilizar el siguiente comando
(suponiendo que como sistema de archivos vamos a asigarle un EXT3):
#mkfs.ext3 <la ubicacin del disco>
Ejemplo:
#mkfs.ext3 /dev/sda1
Se encuentran tambin disponibles las siguientes herramientas para asignacin de
formato:

mkfs.ext2

mkfs.vfat (fat32)

mkfs.msdos (fat16)

mkswap
Si necesitamos dar formato de bajo nivel, asignando ceros a cada uno de los
sectores:
#dd if=/dev/zero of=<la ubicacion del disco>
Ejemplo:
#dd if=/dev/zero of=/dev/sda
Para mirar que procesos estn utilizando que particiones:
lsof
Para ver la versin y otra informacin de nuestro Kernel:
#uname -a
Crear usarios y asignar contraseas:
#useradd <nombre del usuario>
#passwd <nombre del usuario>
Para borrar un usuario:
#userdel <nombre del usuario>

Si se desea borrar el usuario y todos los archivos contenidos, dentro de la sesion lo


hacemos asi:
#userdel -r <nombre del usuario>
Para agregar grupos:
#groupadd <nombre del grupo>
Asignar un usuario a un grupo existente:
#gpasswd -a <usuario> <grupo>
Mirar valores predefinidos para un usuario, tales como: Grupo al que
pertenece, fecha de expiracion de cuentas etc:
#nano /etc/default/useradd
Para utilizar los manuales de los mandatos:
#man <mandato>
Ejemplo:
man ls
Nota: Para salir de la utilidad man debemos presionar la letra q. Para buscar algo
dentro del manual utilizamos el carcter /
Para verificar si tenemos ipv6 habilitado:
#cat /proc/sys/net/ipv6/conf/all/disable_ipv6
Exportar Sbin a un usuario
#export PATH=/sbin:$PATH

Nota: 0 significa que est habilitado y el 1 de deshabilitado


Para mirar que numero de proceso esta utilizando una determinada
aplicacin:
Nota: Como ejemplo voy a mirar que numero de proceso esta utilizando dhclient:
#nano /var/run/dhclient.pid
Borrar logs, en el ejemplo borraremos los logs de apache:
#echo > /var/log/apache2/access.log
Bajar compiladores:
#yum install gcc gcc-c++ kernel-devel
Permitir en VMware a nuestra tarjeta de red, para que podamos ponerla en
modo promiscuo, desde el usuario root digitamos:
#chmod a+rw /dev/vmnet0
COMANDOS RPM
Verificar paquetes en los repositorios:
#yum search <nombre del paquete>
Consultar informacin acerca de un paquete:
#yum info <nombre del paquete>Eliminar paquetes:
#yum remove <nombre del paquete>
Verificar que paquetes hay disponibles en los repositorios:
#yum list available | less
Mostrar todos los paquetes instalados en el sistema:
#yum list installed | less
Verificar que paquetes pueden ser actualizados:
#yum list updates | less
Hacer limpieza de los datos que estn almacenados en /tmp:

#yum clean all


Reconstruir la base de datos de los RPM:
#rpm rebuilddb
Verificar si un paquete en especifico esta instalado:
#rpm -q <nombre del paquete>
Si adems queremos tener informacin mas tcnica o especifica del paquete,
ejecutamos:
#rpm -qi <nombre del paquete>
Mirar que componentes se han instalado con un paquete:
#rpm -ql <nombre del paquete>
Mirar en orden cronolgico de ms nuevo a ms viejo, que paquetes estn
instalados:
#rpm qa last | less
Verificar si un paquete ha sido alterados, o eliminados:
#rpm V <nombre del paquete>
Verificar si las firmas digitales de un paquete RPM no estn corruptas,
podemos ejecutar el siguiente comando:
#rpm K <nombre del paquete>Para instalar un RPM, verificar el estado de la
instalacin, y mostrarla detalladamente:
#rpm -ivh <nombre del paquete>
Si se requiere forzar la instalacin o reinstalacin de un paquete lo hacemos
con:#rpm -ivh force <nombre del paquete>
Verificar las dependencias de un paquete:
#rpm qp requires <nombre del paquete>
Para recuperar permisos originales de un paquete o directorio a travs de
RPM:
#rpm setperms <nombre de paquete>
Comando para verificar servicios, tambin sirve para activarlos o desactivarlos:
#chkconfig list > Lista los servicios que estn corriendo
#chkconfig mysqld on > Habilita el servicio de mysqld
Para eliminar un usuario y eliminar todos los ficheros y directorios ligado a l debe
ejecutarse el siguiente comando:
#userdel r exxteban
Creacin de grupos
#groupadd r <nombre del grupo>
Eliminar grupo:
#groupdel <nombre del grupo que vamos a eliminar>
Asignar un usuario a un grupo:
#gpasswd a <nombre de usuario> <nombre del grupo>
****Los valores por defecto que se crean al configurar un nuevo usuario con
el comando userdd se encuentran en la ruta /etc/default/useradd *****
Veamos como evitar que un usuario pueda ingresar a una consola o terminal, y fuera
de esto, que le aparezca un mensajede advertencia:
Despues de creado el usuario entramos a /etc/passwd, y luego buscamos el usuario
en las lneas que normalmente debera aparece /bin/bash, ponemos /sbin/nologin.
A continuacin creamos el fichero /etc/nologin.txt, y all ponemos el mensaje que
deseemos:

#nano /etc/nologin.txt

Ingresamos el texto que queremos que se imprima en la pantalla, el usuario intentar


acceder a una terminal, y listo, esto no interfiere en nada en el resto de servicios, como
correo, internet, FTP etc.
Buscar solo las lneas que contengan la palabra rootdentro del fichero
/etc/crontab:
cat /etc/crontab | grep root

Si queremos mostrar todo menos la palabra root, lo hacemos con el siguiente


comando:
cat /etc/crontab | grep-v root
Comando chattr Este comando es bastante til para implementar en
servidores syslog.
Podemos hacer que determinado fichero o directorio sea inmutable, sea que no se
pueda eliminar, ni modificar, con el siguiente comando
Chattr +i fichero.txt
Si queremos deshacer los cambios lo hacemos con:
Chattr i fichero.txt
CONFIGURACION DE IP VIRTUALES

Debemos crear un Nuevo fichero de la siguiente forma, y en la siguiente


ruta:
vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
De esta forma estamos creando una interfaz virtual en la eth0 que seria la
tarjeta de red real, es algo muy parecido a las subinterfaces que
configuramos en un router.
Para hacer permanente la interfaz de red virtual en eth0:0 utilice un editor de texto el
fichero
/etc/sysconfig/network-scripts/ifcfg-eth0:0 y ponga el siguiente
contenido (Respete
maysculas y minsculas!):
DEVICE=eth0:0
IPADDR=192.168.1.101
NETMASK=255.255.255.0
Desactivar IPV6 si no es necesario:
#vi /etc/modprobe.conf
Deshabilitamos los siguientes parmetros:
alias ipv6 of
alias net-pf-10
Comando para verificar si el cable de red est realmente conectado a una interfaz:
#ethtool eth0 | grep Link detected
Hacer un dhcp-release en LINUX
#dhclient r
Definir servidor DNS, manualmente:
#echo nameserver <di rip del server> > /etc/resolv.conf
Verificar si hay resolucin de nombres de dominio:
#host www.google.com
Desde <https://humanliks.wordpress.com/empezando-en-centos/>

Comandos Basicos para CentOS Linux


La maquina que utilizar para ejemplos ser CentOS Linux...
Aqu dejo la lista de comandos ms indispensables para Linux:
Comando: ls
list: listar. Es el primer comando que todos deben aprender. Nos muestra el contenido de
la carpeta que le indiquemos despus. 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

Adems 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 lo que ocupa, etc:
# ls -l
Adems se pueden observar los argumentos. Adems de mostrar tambin los ocultos:
# ls -la
Comando cd
change directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En
las absolutas le indicamos toda la ruta desde la raz (/). Por ejemplo, estemos donde
estemos, si escribimos en consola
# cd /etc/squid
nos llevar a esa carpeta directamente. Del mismo modo si escribimos
# cd /
nos mandar a la raz del sistema de ficheros.
Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos
actualmente. Imagine que estamos en /home y queremos ir a una carpeta que se llama
temporal dentro de nuestra carpeta personal. Con escribir
# cd /home/indiara/temporal

Y qu sucede si escribimos tan slo


# cd
S, slo cd. Esto lo que hace es que te lleva a tu carpeta personal directamente y
estemos donde estemos. Es algo realmente muy prctico, muy simple y que no todos
conocen.
Comando mkdir
make directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos.
Nuevamente podemos usar rutas absolutas y relativas.
Por ejm: creamos la carpeta prueba dentro de mi carpeta personal:
# mkdir /home/indiara/prueba
Si ya estamos en nuestra carpeta personal. Por ejem: /home/indiara
# mkdir prueba
Comando 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. Para borrar un archivo.
Por ejem: borramos la carpeta anteriormente creada:
# rm /home/indiara/prueba
Si ya estamos en nuestra carpeta personal: /home/ indiara
# rm prueba (todo esto con una carpeta vaca)
Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso
contener ms:
# rm -r nombre_carpeta
Otras opciones: -f no te pide una confirmacin para eliminar o -v va mostrando lo que
va borrando.
Comando cp
copy: copiar. Copia el archivo indicado donde le digamos. Aqu podemos tambin jugar
con las rutas, tanto para el fichero origen, como en el del destino. Tambin podemos
poner el nombre que le queremos poner a la copia. Por ejemplo, si estuviramos en
/etc/squid y quisiramos hacer una copia de seguridad de squid .conf en nuestra carpeta
personal:
# cp squid.conf /home/carpetapersonal/squid.conf.backup
Comando mv
move: mover. Es igual que el anterior, slo 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/prueba.html /home/carpetapersonal/prueba.html
Otro uso muy prctico 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 prueba.html prueba1.html
Comando find
find: encontrar. Busca el archivo o carpeta que le indiques:
# find / -name prueba
El comando anterior buscara en todos los sitios las carpetas y archivos que se llamen
prueba. Si tuviramos la seguridad de que se encuentra en /var por ejemplo, se lo
indicaramos:
# find /var -name prueba
Si no estamos muy seguros del nombre podemos indicrselo con comodines.
Supongamos que el nombre de lo que buscamos contiene prue, en la misma carpeta de
antes:

# find /var -name *prue*


Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas
de ms de 1500 KB:
# find / -size +1500
O los archivos/carpetas contienen el nombre prue y tienen menos de 1000 KB:
# find / -name *prue* -size -1000
Comando clear
clear: despejar. Limpia la pantalla/consola quedndola como si acabramos de abrirla.
# clear
Comando ps
process status: estado de los procesos. Nos muestra lo que queramos saber de los
procesos que estn corriendo en nuestro sistema. Cada proceso est identificado con un
nmero 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 ms informacin:
# ps aux
Comando 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 (numero de proceso)
Comando useradd
useradd: permite aadir nuevos usuarios al sistema, adems de establecer la informacin
por defecto de los nuevos usuarios que se aadan. Se encuentra enlazado
simblicamente por el nombre adduser. Ambos se pueden usar indistintamente:
Por ejm: crear los usuarios: indiara y pablo
# useradd indiara crea el usuario indiara con las propiedades por defecto.
# useradd pablo crea el usuario pablo con las propiedades por defecto.
Comando userdel
userdel: estecomando permite eliminar definitivamente un usuario del sistema.
# userdel indiara eliminar el usuario indiara y borra su directorio base.

Comando passwd
passwd: este comando permite cambiar el password de un usuario. Si se invoca sin
argumentos se asume el usuario actual.
# passwd indiara coloca una contrasea para el usuario indiara .
Desde <http://indirios.blogspot.pe/2012/03/comandos.html>

Comandos Basicos para CentOS Linux


La maquina que utilizar para ejemplos ser CentOS Linux...
Aqu dejo la lista de comandos ms indispensables para Linux:
Comando: ls
list: listar. Es el primer comando que todos deben aprender. Nos muestra el contenido de
la carpeta que le indiquemos despus. 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
Adems 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 lo que ocupa, etc:
# ls -l
Adems se pueden observar los argumentos. Adems de mostrar tambin los ocultos:
# ls -la
Comando cd
change directory: cambiar directorio. Podemos usarlo con rutas absolutas o relativas. En
las absolutas le indicamos toda la ruta desde la raz (/). Por ejemplo, estemos donde
estemos, si escribimos en consola
# cd /etc/squid
nos llevar a esa carpeta directamente. Del mismo modo si escribimos
# cd /
nos mandar a la raz del sistema de ficheros.

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

Y qu sucede si escribimos tan slo


# cd
S, slo cd. Esto lo que hace es que te lleva a tu carpeta personal directamente y
estemos donde estemos. Es algo realmente muy prctico, muy simple y que no todos
conocen.
Comando mkdir
make directory: hacer directorio. Crea una carpeta con el nombre que le indiquemos.
Nuevamente podemos usar rutas absolutas y relativas.
Por ejm: creamos la carpeta prueba dentro de mi carpeta personal:
# mkdir /home/indiara/prueba
Si ya estamos en nuestra carpeta personal. Por ejem: /home/indiara
# mkdir prueba
Comando 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. Para borrar un archivo.
Por ejem: borramos la carpeta anteriormente creada:
# rm /home/indiara/prueba
Si ya estamos en nuestra carpeta personal: /home/ indiara
# rm prueba (todo esto con una carpeta vaca)
Para borrar una carpeta que contiene archivos y/o otras carpetas que pueden incluso
contener ms:
# rm -r nombre_carpeta
Otras opciones: -f no te pide una confirmacin para eliminar o -v va mostrando lo que
va borrando.
Comando cp
copy: copiar. Copia el archivo indicado donde le digamos. Aqu podemos tambin jugar
con las rutas, tanto para el fichero origen, como en el del destino. Tambin podemos
poner el nombre que le queremos poner a la copia. Por ejemplo, si estuviramos en
/etc/squid y quisiramos hacer una copia de seguridad de squid .conf en nuestra carpeta
personal:
# cp squid.conf /home/carpetapersonal/squid.conf.backup

Comando mv
move: mover. Es igual que el anterior, slo 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/prueba.html /home/carpetapersonal/prueba.html
Otro uso muy prctico 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 prueba.html prueba1.html
Comando find
find: encontrar. Busca el archivo o carpeta que le indiques:
# find / -name prueba
El comando anterior buscara en todos los sitios las carpetas y archivos que se llamen
prueba. Si tuviramos la seguridad de que se encuentra en /var por ejemplo, se lo
indicaramos:
# find /var -name prueba
Si no estamos muy seguros del nombre podemos indicrselo con comodines.
Supongamos que el nombre de lo que buscamos contiene prue, en la misma carpeta de
antes:
# find /var -name *prue*
Tiene otras opciones. Por ejemplo podemos decirle que encuentre los archivos/carpetas
de ms de 1500 KB:
# find / -size +1500
O los archivos/carpetas contienen el nombre prue y tienen menos de 1000 KB:
# find / -name *prue* -size -1000
Comando clear
clear: despejar. Limpia la pantalla/consola quedndola como si acabramos de abrirla.
# clear
Comando ps
process status: estado de los procesos. Nos muestra lo que queramos saber de los
procesos que estn corriendo en nuestro sistema. Cada proceso est identificado con un
nmero 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 ms informacin:

# ps aux
Comando 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 (numero de proceso)
Comando useradd
useradd: permite aadir nuevos usuarios al sistema, adems de establecer la informacin
por defecto de los nuevos usuarios que se aadan. Se encuentra enlazado
simblicamente por el nombre adduser. Ambos se pueden usar indistintamente:
Por ejm: crear los usuarios: indiara y pablo
# useradd indiara crea el usuario indiara con las propiedades por defecto.
# useradd pablo crea el usuario pablo con las propiedades por defecto.
Comando userdel
userdel: estecomando permite eliminar definitivamente un usuario del sistema.
# userdel indiara eliminar el usuario indiara y borra su directorio base.
Comando passwd
passwd: este comando permite cambiar el password de un usuario. Si se invoca sin
argumentos se asume el usuario actual.
# passwd indiara coloca una contrasea para el usuario indiara .
Desde <http://indirios.blogspot.pe/2012/03/comandos.html>

EL SHELL: COMANDOS BSICOS DE LINUX


Cualquier usuario de Linux acabar antes o despus relacionndose con el sistema
empleando el modo texto, y no los entornos grficos. Este modo se basa en la
ejecucin de una serie de comandos, que son interpretados por un programa o
shell. Linux dispone de varios de estos programas pero el ms habitual es
conocido como bash o Bourne Shell. Si Linux se ha arrancado en modo texto el
sistema arranca de forma directa el shell y queda a la espera de introduccin de
nuevos comandos. Si se ha arrancado en modo grfico se puede acceder al shell de
dos formas:

Se puede acceder al shell del sistema presionando alguna de las siguientes


combinaciones de teclas:
<ctrl>+<alt>+<F1>

<ctrl>+<alt>+<F2>

<ctrl>+<alt>+<F3>

<ctrl>+<alt>+<F4>

<ctrl>+<alt>+<F5>

<ctrl>+<alt>+<F6>
Esto hace que el sistema salga del modo grfico y acceda a alguna de las seis
consolas virtuales de Linux, a las cuales tambin se puede acceder cuando se
arranca en modo de texto. Para volver al modo grfico hay que presionar

<ctrl>+<alt>+<F7> o

<ctrl>+<alt>+<F8>

La segunda forma es ms cmoda y menos radical permitiendo acceder al shell


desde el mismo entorno grfico. Para esto hay que abrir un programa llamado
terminal o consola, por ejemplo: kconsole (en el entorno KDE), xterm, gnometerminal (en GNOME), etc.
Introduccin
Existen una serie de nociones bsicas que hay que tener en cuenta a la hora de
introducir los comandos. En primer lugar citaremos las siguientes:

Los comandos hay que teclearlos exactamente.

Las letras maysculas y minsculas se consideran como diferentes.

En su forma ms 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 carcter puede ser fcilmente 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<tab> Linux rellenar el resto del contenido hasta escribir cd
Programas. Por el contrario al escribir cd D<tab> escribir cd Documentos

Sintaxis de los comandos

Los comandos tienen la siguiente sintaxis:


# programa arg1 arg2 ... argn
Se observa que, en la ``lnea de comandos'', se introduce el programa seguido de
uno o varios argumentos. As, el intrprete ejecutar el programa con las opciones
que se hayan escrito.

Cuando se quiere que el comando sea de varias lneas, se separa cada lnea con el
carcter barra invertida (\). Adems, cuando se quiere ejecutar varios comandos en
la misma lnea, los separa con punto y coma (;). Por ejemplo:
# make modules ; make modules_install
En los comandos, tambin se puede utilizar los comodines:

El asterisco (*) es equivalente a uno o ms caracteres en el nombre de un


archivo. Ejm: ls *.c lista todos los archivos con extensin c.

El signo de interrogacin (?) es equivalente a un nico carcter. Ej.: ls curso.te?


lista el archivo curso.tex completando el ltimo carcter.

Un conjunto de caracteres entre corchetes es equivalente a cualquier carcter del


conjunto. Ej.: ls curso_linux.t[aeiou]x lista curso_linux.tex seleccionando la e del
conjunto. .
o

Alias

Un ``alias'' es un nombre alternativo para un comando. As, en lugar de escribir el


comando propiamente dicho, escribiramos el alias de dicho comando.
Un alias se puede definir por varios motivos, por ejemplo:

Dar nombres familiares a comandos comunes:


alias md='mkdir'
Creara un alias para el comando mkdir, similar al de DOS.

Dar nombres a comandos largos:


alias tbz2='tar -cv --use-compress-program=bzip2 -f'
Creara un alias para el comando tar para que use el compresor bzip2 en lugar de
gzip.
Para no tener que escribir todos los alias siempre que entremos al sistema,
escribiramos dicho alias en el archivo /.bash_profile
Directorios en Linux:
Bajo Linux el espacio de archivos que es visible a los usuarios est basado en una
estructura de rbol, con la raz en la parte superior ( / ). El directorio ms alto, /, es
conocido como directorio raz.
/

bin dev etc


seccion01
seccion02

home

lib

usr

proc

root sbin

var

Por lo general, la mayor parte del sistema operativo reside en dos sistemas de
archivos: el sistema de archivos raz, conocido como /, y el sistema de archivos
montado bajo /usr
El directorio bin contiene programas ejecutables conocidos como binarios. Estos
programas son archivos de sistema esenciales. Muchos de los comandos como ls,
son en realidad programas que se encuentran en este directorio.
El directorio sbin tambin se utiliza para guardar archivos binarios de sistema. La
mayora de los archivos de este directorio se usa para propsitos de la
administracin del sistema.
El directorio etc. contiene muchos de los archivos de configuracin del sistema
Linux. Son los archivos que personalizan Linux. P. ej. el archivo de contraseas,
passwd, se encuentra aqu.
Las bibliotecas compartidas que emplean los programas cuando se ejecutan estn
guardadas en el directorio /lib. Mediante el uso de estas bibliotecas compartidas,
muchos programas pueden utilizar el mismo cdigo, y estas bibliotecas se pueden
guardar en un lugar comn, reduciendo el tamao de los programas al momento de
su ejecucin.
El directorio /dev contiene archivos especiales conocidos como archivos de
dispositivo, los cuales se usan para tener acceso a todo tipo de hardware del
sistema. Por ejemplo, el archivo /dev/mouse se utiliza para la lectura de entrada
del mouse.
/proc es un sistema de archivos virtual. Se usa para leer de la memoria
informacin de procesos.
El directorio /home es el directorio base para los directorios personales de los
usuarios.
El directorio /var guarda los archivos que tienden a cambiar de tamao a lo largo
del tiempo. Por lo general, los diversos archivos de bitcora de sistema se
encuentran bajo este directorio. El directorio /var/spool y sus subdirectorios se
utilizan para guardar datos que son de manera transitiva, como el correo y las
noticias recin recibidas o puestas en cola para transmisin a otro sitio.
El directorio /usr y sus subdirectorios contienen algunos de los programas ms
importantes del sistema. Por lo general, los subdirectorios de /usr contienen los
grandes paquetes de software que se instalan.
/usr/bin

Se guardan ah muchos de los programas ejecutables de Linux

/usr/etc

Archivos de configuracin miscelneos

/usr/include

Archivos de inclusin para el compilador de C.

/usr/lib

Bibliotecas para los programas durante el enlace

/usr/man

Pginas del manual de Linux

/usr/src

Ah se almacena el cdigo fuente de diferentes programas del sistema

/usr/local

Est diseado para la personalizacin local del sistema. Por lo general, gran parte
local se instala en los subdirectorios de este directorio.

Algunos Comandos Sencillos de LINUX


Passwd
Para efectuar el cambio o la introduccin de un password o contrasea o agregar
alguna a una cuenta que no la tenga. Primero se especifican la nueva y antigua
contrasea, y luego se verifica la nueva.
El proceso a seguir es el siguiente:
(current) UNIX password: (se teclea la contrasea actual; no aparece en pantalla)
New UNIX password: (se teclea la nueva contrasea; no aparece en pantalla)
Retype new UNIX password: (se teclea de nuevo la nueva contrasea
comprobando que se ha tecleado bien. Si no coincide no se cambia produce el
cambio).
Changing password for <user>
Enter old password : password
Enter new password:password
Re-type new password:password
date Muestra por pantalla el da y la hora.
cal 1949 Muestra el calendario del ao 1949.
cal 05 1949 Muestra el calendario de mayo de 1949.
who Indica qu usuarios tiene el ordenador en ese momento, en qu terminal estn
y desde qu hora.
whoami Indica cul es la terminal y la sesin en la que se est trabajando.
man comando
Todos los manuales de Linux estn dentro del propio sistema operativo, y
este comando permite acceder a la informacin correspondiente al comando
comando. Por ejemplo con man who aparecer por pantalla y de forma
formateada por pginas, la explicacin del comando who. Se puede navegar
a travs de estas pginas con los cursores del teclado, y presionando q para
salir.
man ls: muestra la informacin sobre el comando de visualizacin de la
pantalla.
man dir: muestra la informacin sobre el comando que contiene los
directorios.
man mkdir: muestra la informacin sobre la creacin de archivos.
man rmdir: muestra la informacin sobre borrar ficheros.

man pico: muestra la informacin sobre el uso de este editor de texto.

clear
Este comando limpia la consola.
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.
Listado del contenido de directorios: comando ls
Una de las acciones ms habituales a la hora de trabajar es mostrar el contenido de
un directorio, como se ha visto existen herramientas grficas con este fin, no
obstante el shell incluye un programa con este mismo fin: ls, ls Muestra los
nombres de los ficheros y subdirectorios contenidos en el directorio en el que se
est. Slo se obtienen los nombres de los ficheros, sin ninguna otra informacin.
ls -a Muestra todos los ficheros incluyendo algunos que ordinariamente estn
ocultos para el usuario (aquellos que comienzan por un punto). Se recuerda que el
fichero punto . indica el directorio actual y el doble punto .. el directorio padre,
que contiene, al actual.
ls -l Esta es la opcin de lista larga: muestra toda la informacin de cada fichero
incluyendo: protecciones, tamao y fecha de creacin o del ltimo cambio
introducido,...
ls -c Muestra ordenando por da y hora de creacin.
ls -t Muestra ordenando por da y hora de modificacin.
ls -r Muestra el directorio y lo ordena en orden inverso.
ls subdir Muestra el contenido del subdirectorio subdir.
ls -l filename Muestra toda la informacin sobre el fichero.
ls --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 sustitucin o metacarcteres (*) y (?). El
carcter * representa cualquier conjunto o secuencia de caracteres. El carcter ?
representa cualquier carcter, pero slo uno. 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.

Creacin de subdirectorios. Comando mkdir


El comando mkdir (make directory) permite a cada usuario crear un nuevo
subdirectorio:
mkdir subdir1
donde subdir es el nombre del directorio que se va a crear.
mkdir -p, --parents: crea los directorios padre que faltan para cada argumento.
mkdir --verbose: muestra un mensaje para cada directorio creado.
mkdir -help: muestra un mensaje de salida estndar de ayuda
Borrado de subdirectorios. Comando rmdir
Este comando borra uno o ms directorios del sistema (remove directory), siempre
que estos subdirectorios estn vacos. Por ejemplo:
rmdir subdir1
donde subdir es el nombre del directorio que se va a eliminar.
rmdir -p: borra el archivo aunque tenga mas componentes en el.
rmdir --help: muestra un archivo de ayuda.
rm --versin: muestra el tipo de versin con el que esta trabajando la mquina.

Cambio de directorio. Comando cd


Este comando permite cambiar de directorio a partir del directorio actual de
trabajo. Por ejemplo,
cd /home/Pedro En este ejemplo pasamos del directorio actual de trabajo al nuevo
directorio
/home/Pedro, que ser desde ahora nuestro nuevo directorio.
cd dire Nos traslada al subdirectorio dire (que deber existir como subdirectorio
en el directorio actual).
cd .. Retrocedemos un nivel en la jerarqua de directorios. Por ejemplo, si estamos
en /home/Pedro y usamos este comando, pasaremos al escalafn inmediatamente
superior de la jerarqua de directorios, en este caso a /home.
Nota: al contrario que en MS-DOS en Linux no existe la forma cd.. sin espacio
entre cd y los dos puntos.
cd Nos sita nuevamente en el directorio personal del usuario.
Situacin actual. Comando 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.
Acceso a unidades de disco
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 disposicin del usuario en el directorio
de Linux que se elija. Por ejemplo para acceder al CD-ROM se tecleara 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 ms usuales son: iso9660 en el caso de un CD-ROM, vfat en el
caso de Windows, y ext2 en el caso de Linux), /dev/cdrom indica el dispositivo
que se va a montar. Todos los dispositivos estn 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 disposicin del
usuario el contenido del CD-ROM. Para montar disquetes se suele utilizar el
directorio /mnt/floppy.
De todas formas el usuario siempre puede crear un directorio vaco 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. En este ltimo caso debera
escribir:
umount /mnt/cdrom
Para utilizar el comando mount de la forma anterior hace falta ser administrador o
root. Para que un usuario comn 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 lnea:
/dev/fd0 /mnt/floppy vfat user,noauto 0 0
Tambin 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 (p. ej. Linux Mandrake) que
realizan este proceso de forma automtica 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.
Copia de ficheros. Comando cp
Este comando tiene la siguiente forma,
cp file1 file2
y hace una copia de file1 y le llama file2. Si file2 no exista, lo crea con los
mismos atributos de file1. Si file2 exista 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.
cp -f: borra los ficheros ya existentes en un destino dado.
cp -i: pregunta si deseas sobreescribir ficheros.
cp -p: preserva los permisos, el propietario y el grupo de los ficheros.
cp -r: copia directorios recursivamente y hace lo correcto cuando se encuentran
objetos distintos de ficheros.
Traslado y cambio de nombre de ficheros. Comando mv
Este comando tiene una forma similar al anterior,
mv file1 file2
El comando mv realiza la misma funcin que el anterior (cp) pero adems destruye
el fichero original. En definitiva traslada el contenido de file1 a file2; a efectos del
usuario lo que ha hecho es cambiar el nombre a file1, llamndole file2. De igual
forma,
mv file1 file2 namedir
traslada uno o ms ficheros (file1, file2,...) al directorio namedir conservndoles
el nombre. El comando,
mv namedir1 namedir2
cambia el nombre del subdirectorio namedir1 por namedir2.
mv -i: con esta variacin al mover o renombrar algn fichero el comando pide
una confirmacin si ya hay un fichero destino.
mv -f: este comando no pide confirmacin.
mv -f, --force:borra todos los ficheros de destino existentes, sin preguntar al
usuario.
mv -v, --verbose: con este comando se borra el nombre de cada fichero antes de
moverlo.
mv -u, --pdate: no mueve un fichero que tenga un destino con el mismo tiempo de
modificacin.
Hay que recalcar que el comando mv sirve as mismo para cambiar el nombre de
los ficheros.
Enlaces a ficheros. Comando ln
En Linux un mismo fichero puede estar repetido con ms de un nombre, ya que
con el comando cp se pueden realizar cuantas copias se desee del fichero. Pero, a
veces, es ms prctico tener un mismo fichero con varios nombres distintos, y lo
que es ms importante, poder acceder a l desde ms de un directorio. En Linux
esto recibe el nombre de enlaces mltiples a un fichero. El ahorro de espacio de
disco es importante al poder compartir un fichero ms de un usuario. Estos enlaces

son muy prcticos a la hora de utilizar ficheros que pertenecen a directorios


distintos. Gracias a los enlaces se puede acceder a muchos ficheros desde un
mismo directorio, sin necesidad de copiar en ese directorio todos esos ficheros. La
forma de este comando es,
ln file1 file2
A partir de este momento el fichero file1 tiene dos nombres: file1 y file2. A
diferencia de los comandos cp y mv, este comando toma ms precauciones, ya que
advierte previamente si el nombre file2 est ocupado, y en este caso no se ejecuta.
ln panacea subdir/panacea
Despus de este comando el fichero panacea tendr el mismo nombre, pero a
efectos del usuario estar colocado en dos sitios distintos: en el directorio actual y
en el subdirectorio subdir. Los ficheros enlazados a otro se borran como los
ficheros normales. Si se borra el fichero original permanece su contenido en los
ficheros enganchados.
Borrado de ficheros. Comando rm
Este comando tiene las formas siguientes,
rm file1 file2
Este comando elimina uno o ms ficheros de un directorio en el cual tengamos
permiso de escritura. Con este comando resulta facilsimo borrar ficheros intiles,
y desgraciadamente, tambin los tiles. Por eso es conveniente y casi
imprescindible emplear lo opcin -i, de la forma siguiente:
rm -i file1 file2
Con esta opcin, Linux pedir confirmacin para borrar cada fichero de la lista, de
si realmente se desea su destruccin o no. Se recomienda usar siempre este
comando con esta opcin 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 de sustitucin (* y ?), como por ejemplo,
rm fich*
que borrara todos los ficheros del directorio actual que comiencen por fich. El
comando
rm *
borrar todos los ficheros del directorio actual, mientras que
rm -i *
realiza una labor anloga, pero con previa confirmacin.
rm -f: no pide la configuracin.
rm -i: pide la configuracin.
rm -r: borra los rboles de directorios.
rm -v, --vorse: muestra el nombre del fichero antes de borrarse.

rm --versin: muestra en la salida estndar informacin sobre la versin.


Caractersticas de un fichero. Comando file
Este comando realiza una serie de comprobaciones en un fichero para tratar de
clasificarlo. Su formato es:
file fich
Tras su ejecucin este comando muestra el tipo del fichero e informacin al
respecto del mismo.
Cambio de modo de los ficheros comandos chmod, chown y chgrp
Los permisos de cada fichero se pueden ver con el comando ls -l. Para cambiar los
permisos de un fichero se emplea el comando chmod, que tiene el formato
siguiente:
chmod [quien] oper permiso files
quien Indica a quien afecta el permiso que se desea cambiar. Es una combinacin
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 operacin que se desea hacer con el permiso. Para dar un permiso se
pondr un +, y para quitarlo se pondr un -.
permiso Indica el permiso que se quiere dar o quitar. Ser una combinacin
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 el comando
es:
chmod a -r fichero.txt
chmod + hase que los permisos sealados se aadan.
chmod - hase que los permisos seleccionados se retiren.
chmod = hase que los permisos del fichero sean nicos.
chmod -r. cambia permisos de directorios.
chmod -c, --changes: muestra un mensaje antes de cambiar el permiso a un
fichero.
Los permisos de lectura, escritura y ejecucin 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.
Por otra parte, el comando chown se emplea para cambiar de propietario ("change
owner") a un determinado conjunto de ficheros. Este comando slo lo puede
emplear el actual propietario de los mismos. Los nombres de propietario que
admite Linux son los nombres de usuario, que estn almacenados en el fichero
/etc/passwd. La forma general del comando chown es la siguiente:
chown newowner file1 file2 ...

chown -r: cambia propietario de directorios.


chown -c, --changes: muestra los ficheros cuyos propietarios cambian.
chown -f, --silent, -quiet: no muestra mensajes de error sobre ficheros que no
puedan cambiarse.
chown -help: muestra un mensaje de ayuda.
Anlogamente, 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 estn almacenados en el fichero /etc/group.
Exit
Termina la sesin de Linux en una terminal
More
Exhibe pantallas completas de un archivo de texto. Filtro de fichero para la
visualizacin en terminales.
more -num: especifica el tamao de la pantalla.
more -p: limpia toda la pantalla.
more -u: suprime el subrayado.
more -l: deshabilita el avance de pgina.
more -s: reducir mltiples lneas en blanco a una.
mail
Manda y recibe correos electrnicos.
mail -v: cambia al modo verbose.
mail -i: ignora los bloques de interrupcin.
mail -i: fuerza al mail correr en un modo interactivo.
mail -c: manda copias a la lista de usuarios.
mail -f: lee el contenido de los archivos especificados.
Pico
Pico es un simple editor de texto.
ctrl -k :borra texto seleccionado
ctrl -h: muestra la opcin de comandos.
ctrl -m: muestra el funcionamiento del ratn.
ctrl -c: enable files name completion.
pine

Programa diseado para enviar o recibir correos electrnicos.


adress: manda correos a una direccin dada.
pine -attach file: manda correos a una lista de archivos.
pine -file: abre archivos de texto.
pine -h: ayuda
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, ste comando
da el espacio de disco utilizado en bloques. Para obtener la informacin en bytes
se debe emplear el comando con la opcin h: du -h
El comando df por el contrario informa del espacio usado por las particiones del
sistema que se encuentren montadas.
Visualizacin sin formato de un fichero. Comando cat
Este comando permite visualizar el contenido de uno o ms ficheros de forma no
formateada. Tambin permite copiar uno o ms ficheros como apndice 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 segn el orden especificado,
el contenido de los ficheros indicados.
cat file1 file2 >file3 El contenido de los ficheros file1 y file2 es almacenado en
file3.
cat file1 file2 >>file3 El contenido de file1 y file2 es aadido al final de file3.
cat >file1 Acepta lo que se introduce por el teclado y lo almacena en file1 (se crea
file1). Para terminar se emplea <ctrl>d
Comando head
head -7 filename escribe las 7 primeras lneas del fichero filename
Visualizacin de ficheros con formato. Comando pr
Este comando, a diferencia de cat, imprime por consola el contenido de los
ficheros de una manera formateada, por columnas, controlando el tamao de
pgina y poniendo cabeceras al comienzo de las mismas. Est muy en relacin con
el comando lp de salida por impresora. Las formas ms importantes que admite
son las siguientes:
pr file Produce una salida estndar de 66 lneas por pgina, con un
encabezamiento de 5 lneas (2 en blanco, una de identificacin y otras 2 lneas en
blanco).
pr -ln file Produce una salida de n lneas por pgina (cuando el tamao de papel de
impresora, por ejemplo, tiene un nmero de lneas distinto de 66)
pr -p file Hace una pausa para presentar la pgina, hasta que se pulsa <return>
para continuar
pr -t file Suprime las 5 lneas del encabezamiento y las del final de pgina.

pr -wn file Ajusta la anchura de la lnea a n posiciones.


pr -d file Lista el fichero con espaciado doble.
pr -h `caracteres` file el argumento o cadena de caracteres `caracteres` se
convertirn en la cabecera del listado.
pr +n file Imprime el fichero a partir de la pgina n.
Adems 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 idntico a
file1, pero con formato por pginas y columnas.
Visualizacin de ficheros pantalla a pantalla. Comandos more y less
Estos comandos permiten visualizar un fichero pantalla a pantalla. El nmero de
lneas por pantalla es de 23 lneas de texto y una ltima lnea 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 visualizacin) se pulsa <ctrl>d o q. Por ejemplo: more file
El comando less es muy similar al anterior pero permite el desplazamiento a lo
largo del texto empleando las teclas de cursores pudiendo desplazarse hacia arriba
o abajo de un fichero.
Bsqueda en ficheros. Comandos grep, fgrep y egrep
El comando grep localiza una palabra, clave o frase en un conjunto de directorios,
indicando en cules de ellos la ha encontrado. Este comando rastrea fichero por
fichero, por turno, imprimiendo aquellas lneas que contienen el conjunto de
caracteres buscado. Si el conjunto de caracteres a buscar est compuesto por dos o
ms palabras separadas por un espacio, se colocar el conjunto de caracteres entre
apstrofes ('). Su formato es el siguiente:
grep 'conjuntocaracteres' file1 file2 file3
siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y
file31 los ficheros donde se debe buscar. Veamos un nuevo ejemplo:
grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f
Este comando buscar TRIANGULARIZACION MATRIZ entre las lneas de los
ficheros matrix.f y scaling.f. Este comando permite seleccionar, entre todas las
lneas de uno o ms ficheros, aquellas que contienen un motivo que satisface una
expresin regular determinada.
grep [-opcin] expresin_regular [referencia...]
Las opciones principales son:
c lo nico que se hace es escribir el nmero de las lneas que satisfacen la
condicin.
i no se distinguen maysculas y minsculas.
l se escriben los nombres de los ficheros que contienen lneas buscadas.
n cada lnea es precedida por su nmero en el fichero.
s no se vuelcan los mensajes que indican que un fichero no se puede abrir.
v se muestran slo las lneas que no satisfacen el criterio de seleccin.

A continuacin se muestra una serie de ejemplos.


grep d text lneas que comienzan por d.
grep [d] text lneas que no comienzan por d.
grep -v C file1 > file2 quita las lneas de file1 que comienzan por C y lo copia
en file2.
Comandos tar y gzip
Tanto el comando tar como gzip son ampliamente empleados para la difusin de
programas y ficheros en Linux. El primero de ellos agrupa varios ficheros en uno
solo o "archivo", mientras que el segundo los comprime. En conjunto estos dos
programas actan de forma muy similar a programas como Winzip. 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 aadir al archivo tar. Si
se desea extraer los ficheros se emplea
tar xpvf nombre_archivo.tar fichero1
Al contrario que tar que agrupa varios ficheros en uno, gzip comprime un nico
fichero con lo que la informacin se mantiene pero se reduce el tamao 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. Si lo que se desea es descomprimir un fichero se emplea entonces:
gzip d fichero.gz
recuperando el fichero inicial. Como se ha comentado al principio es tpico
emplear tar y gzip de forma consecutiva, para obtener ficheros con extensin
tar.gz o tgz que contienen varios ficheros de forma comprimida (similar a un
fichero zip). El comando tar incluye la opcin z para estos ficheros de forma que
para extraer los ficheros que contiene:
tar zxf fichero.tar.gz
Comandos de impresin.
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 continuacin en la impresora por
defecto. Por el contrario,
lpr nombre_fichero
imprime en la impresora por defecto el fichero indicado.
REDIRECCIONES Y TUBERAS
Redirecciones
Los comandos de Linux tienen una entrada estndar (nmero 0) y dos salidas
estndar (nmero 1 para la salida normal del comando, y nmero 2 para la salida
de los mensajes de error que se puedan producir en su ejecucin). Por defecto
tanto la entrada como las salidas estndar de los comandos son la propia terminal,
a no ser que por la propia naturaleza del comando se den en l los nombres de

algunos ficheros que hagan el papel de entrada y de salida. Por ejemplo, en el


comando
cp file1 file2
file1 es la entrada y file2 es la salida; aqu no intervienen las entradas y salidas
estndar. Sin embargo, cuando utilizamos por ejemplo el comando ls (listado de
directorio), la salida de este comando se dirige hacia la terminal. Si queremos que
la salida de este comando se dirija a un fichero llamado file, podramos escribir,
ls >file
el (>) es uno de los llamados operadores de redireccin y dirige la salida estndar
hacia el fichero indicado a continuacin; si este fichero no existe, se crea en ese
momento. Otros operadores de redireccin son el operador (<) que redirige la
entrada estndar desde un determinado fichero, y el operador (>>) que redirige la
salida estndar hacia otro fichero, pero aadiendo dicha salida al final de ese
fichero, sin sobrescribir el contenido original. Por ejemplo, si cada vez que
entramos en el sistema ejecutamos el comando,
date >>archivo
tendremos un fichero llamado archivo que contiene informacin sobre todas las
veces que hemos entrado en el sistema. Otro ejemplo, para aadir al fichero file2
al final de file1 y al conjunto llamarle file3, sera
cat file1 file2 >file3
o, si quisiramos que el fichero resultante fuera el mismo file1,
cat file2 >>file1
Un ejemplo en redireccin a la entrada podra ser el siguiente,
mail juan <carta
que enva al usuario juan el contenido del fichero carta.
Tuberas
Siguiendo con los ejemplos anteriores, si quisiramos enviar a juan una lista de
nuestros ficheros podramos utilizar los comandos,
ls >fichero
mail juan <fichero
rm fichero
Es decir que hemos conectado la salida estndar de ls con la entrada estndar de
mail, a travs de un fichero transitorio filelist. Linux permite hacer esta operacin
directamente, sin pasar por el fichero de almacenamiento transitorio: esto se hace
mediante el concepto de tubera (pipe), que consiste en empalmar la salida
estndar de un comando con la entrada estndar de otro. Para el ejemplo anterior
esto se hace en la forma,
ls | mail juan
Con el operador de tubera (|) se pueden empalmar tantos comandos como se
desee.
Bifurcacin o T (comando tee)

A veces interesa que la salida de un comando, adems de redirigirse a un


determinado fichero, se bifurque tambin hacia la terminal, con objeto de observar
inmediatamente el resultado. Esto se consigue con el operador tee, que podra
emplearse de la siguiente forma:
ls | tee file
la salida de ls se bifurca hacia la terminal y hacia file.
Si quisiramos que la salida de este comando se aadiera al final de file,
deberamos utilizar la opcin -a,
ls | tee -a file
Redireccin de la salida de errores
Los mensajes de error se dirigen a la salida nmero 2, que normalmente es
tambin la terminal. A veces, por ejemplo cuando se quiere ejecutar un comando
en background (ejecutar un comando en background es lanzar su ejecucin y
recuperar el control de la terminal sin esperar a que termine, lo cual se hace
aadiendo el carcter & al final del comando), interesa evitar que los mensajes de
error aparezcan en la pantalla, pues en ella habremos empezado a hacer otra cosa.
Supongamos por ejemplo que queremos compilar y montar en background un
conjunto de ficheros, dirigiendo los listados a un fichero llamado listados, y los
mensajes de error a un fichero llamado errores. Lo haramos en la forma,
gcc prueba.c 2>errores
con lo cual la salida 2 (errores) se redirige hacia el fichero errores. Para redirigir
la salida estndar de errores al mismo fichero que la salida estndar se emplea un
comando como:
program <datos.d >resultados.r 2>&1
EJECUCIN DE PROGRAMAS
Ejecucin en el fondo & , kill, nice y nohup
Para ejecutar un programa en el fondo, es decir, recuperando inmediatamente el
control del terminal, basta aadir el carcter & al final del comando de ejecucin:
program <datos.d >resultados.r &
inmediatamente aparecer en el terminal, debajo de esta lnea, un nmero que es el
nmero de proceso de la ejecucin de este programa. Para detener definitivamente
dicha ejecucin (no se puede detener temporalmente) se puede utilizar el comando
kill:
kill nmerodeproceso
La ejecucin de un programa en el fondo no impide que aparezcan en la pantalla
los mensajes de error que se produzcan (a no ser que se haya redirigido la salida
de errores), y que el programa se pare cuando se salga del sistema. Para que el
programa contine ejecutndose an cuando nosotros hayamos terminado la
sesin, hay que utilizar el comando nohup:
nohup program
Si no se utilizan redirecciones todas las salidas del programa se dirigen a un
fichero llamado nohup.out. Cuando se utiliza nohup el ordenador entiende que el
usuario no tiene prisa y automticamente disminuye la prioridad de la ejecucin.
Existe un comando, llamado nice, que permite realizar ejecuciones con baja

prioridad, es decir se le indica al ordenador que puede ejecutar de forma ms lenta


esta aplicacin si existen otras que sean ms urgentes. Se utiliza en las formas,
nice program &
nice nohup program &
Para darle al programa la prioridad mnima habra que utilizar el comando,
nice -19 program &
donde el -19 indica la mnima prioridad.
Comando time
El comando time, precediendo a cualquier otro comando, suministra informacin
acerca del tiempo total empleado en la ejecucin, del tiempo de CPU utilizado por
el programa del usuario, y del tiempo de CPU consumido en utilizar recursos del
sistema. Por ejemplo para saber el tiempo utilizado en la compilacin y montaje
del programa prueba.c utilizaramos el comando,
time gcc prueba.c
Comando top
Linux incluye una aplicacin llamada top cuya finalidad es manipular la ejecucin
de programas de una forma interactiva. Esta aplicacin muestra una lista de los
procesos que se estn ejecutando. Los principales comandos de top son: u que
muestra los procesos que pertenecen a un determinado usuario, k equivalente al
comando kill para matar un proceso y h que muestra la ayuda del programa.
PROGRAMAS DE COMANDOS
El sistema operativo Linux, al igual que otros sistemas operativos, permite realizar
programas de comandos, esto es, programas constituidos por distintos comandos
que podran teclearse interactivamente uno por uno en una terminal, pero que es
muchas veces ms cmodo agruparlos en un fichero, y ejecutarlos con una sola
instruccin posteriormente.
Los comandos de Linux pueden ser externos - que implican la creacin de un
nuevo proceso, cuyo cdigo est en /bin o /usr/bin- e internos - cuyo cdigo est
incluido en el del intrprete shell que los ejecuta.
Una cierta primera forma de agrupar comandos la ofrece Linux por medio del
carcter ;. Por ejemplo, tecleando el comando,
date; ls; who
el ordenador ejecutar sucesivamente los comandos date, ls y who. Tambin
podra crearse con un editor de textos un fichero llamado comandos que
contuviera las lneas siguientes:
date
ls
who
Para ejecutar este fichero de comandos puede teclearse,
sh comandos
o bien convertir el fichero comandos en directamente ejecutable por medio del
comando chmod en la forma,

chmod a+x comandos


de modo que el programa de comandos comandos puede ejecutarse simplemente
tecleando su nombre,
comandos
Los comandos sh comandos y comandos no son enteramente equivalentes. As, el
primero de ellos exige que el fichero comandos est en el directorio de trabajo,
mientras que el segundo slo exige que el fichero comandos est en uno de los
directorios de bsqueda de comandos especificados en la variable PATH.
Cuando se ejecuta un fichero de comandos Linux abre lo que se llama un nuevo
shell, es decir un nuevo entorno para la ejecucin de los comandos. Para que las
variables del caparazn original conserven su valor en el nuevo caparazn es
necesario prepararlas con la sentencia export antes de abrir el nuevo shell. Por
ejemplo, como consecuencia de lo que se acaba de decir, si en el interior de un
fichero de comandos se cambia de directorio con el comando cd, al acabar la
ejecucin de dicho fichero volveremos automticamente al directorio inicial.
Introduccin de comentarios
Para introducir lneas de comentarios en un programa de comandos basta
comenzar dichas lneas con el carcter #. Hay que tomar la precaucin de que este
carcter no sea el primer carcter del fichero de comandos, porque entonces el
ordenador interpreta que el programa est escrito en C-shell (una variante especial
de UNIX desarrollada en la Universidad de Berkeley) y el resultado es
imprevisible. Puede ser buena prctica comenzar todos los ficheros de comandos
con una lnea en blanco.
Variables del shell
UNIX permite definir variables en un fichero de comandos en la forma,
USER=/mnt/mecan/juanto
TERM=hp2392
...
Es una prctica habitual el utilizar nombres con letras maysculas para las
variables del caparazn. Para recuperar el valor de una variable hay que precederla
con el carcter . Por ejemplo, utilizando en otra parte del programa TERM, en
dicho lugar se sustituira TERM por su valor, esto es, hp2392. El shell del Linux
tiene definidas para cada usuario unas variables estndar. Para averiguar cules
son basta teclear el comando siguiente,
set
Para definir otras variables propias de cada usuario puede utilizarse el fichero
.profile, que es un fichero de comandos propio de cada usuario que se ejecuta
automticamente al hacer el login. Para definir variables que contengan espacios
en blanco deben encerrarse entre caracteres (') o ("), como por ejemplo,
FECHA="31 de Diciembre de 1986"
ms adelante se ver la diferencia entre el carcter (') y el carcter (").
Comando echo
El comando echo imprime un determinado texto en la terminal. Un ejemplo de
utilizacin de dicho comando puede ser el siguiente:

echo Me gusta el sistema operativo UNIX


El comando echo es de gran utilidad en los ficheros de comandos. Cuando el texto
que se desea escribir en la terminal contiene alguno de los caracteres especiales de
UNIX ( * ? [ ] > >> < & ; \ ' ) hay que tomar precauciones especiales
desconectando su significado. Una forma de hacerlo es precediendo dicho carcter
con la barra invertida (\). As, para escribir mediante el comando echo tres
asteriscos, utilizaramos
echo \*\*\*
si no utilizramos la barra invertida, el asterisco se interpretara como un carcter
de sustitucin y se imprimira el nombre de todos los ficheros del directorio. Otra
forma de anular el significado de los caracteres especiales es encerrando el texto a
escribir mediante comillas (") o entre apstrofos normales ('). Los apstrofos (')
anulan el significado de todos los caracteres comprendidos entre ellos. As pues, el
triple asterisco lo podramos escribir con el comando,
echo '***'
Las comillas (") son menos restrictivas, y anulan el significado de todos los
caracteres excepto los tres siguientes: ( ` \). Esto es muy importante porque si VAR
es el nombre de una variable, y VAR aparece en un comando echo entre apstrofos
se escribe VAR, mientras que si aparece entre comillas se escribe el valor de la
variable, al cumplir el carcter su cometido.
El carcter (\) tiene otros significados, adems del ya visto de anular el significado
especial de otros caracteres. As, sirve como indicador de que un comando
contina en la lnea siguiente. Cuando se utiliza en la definicin interactiva de un
comando, en la lnea siguiente aparece el prompt secundario (>), que indica que se
debe seguir tecleando el comando. Cuando en un comando echo aparecen los
caracteres (\c) y (\n) quiere decir, respectivamente, que no se cambie de lnea y
que se salte de lnea, al escribir por la pantalla.
El carcter apstrofo inverso o acento grave (`) tiene tambin un significado
especial. Cuando en un comando echo aparece el nombre de otro comando
encerrado entre apstrofos inversos (por ejemplo, `date`, `who`, `ls`, ...), el
nombre de dicho comando se sustituye por el resultado que genera al ejecutarse
interactivamente. Un ejemplo podra ser el siguiente:
echo "Los usuarios del sistema son \n\n `who`"
El lector puede hacer la prueba y observar el resultado correspondiente.
Parmetros de los ficheros de comandos
A los ficheros de comandos pueden pasrseles como parmetros un conjunto de
una o ms variables. Dentro del fichero de comandos estas variables o parmetros
se conocen con los nombres 0, 1, 2, ..., 9. La variable 0 representa el propio
nombre del fichero de comandos, y 1, 2, ..., 9 son los nombres de los parmetros
propiamente dichos.
Vamos a comenzar viendo un ejemplo muy sencillo de programa de comandos al
que se le pasa slo una variable o parmetro. El comando de borrar de Linux rm
no confirma la operacin de borrado si no se le pone la opcin (-i). Esto es
peligroso porque uno fcilmente puede olvidarse de teclear dicha opcin y borrar
lo que no quera borrar. Vamos a crear un fichero de comandos llamado del que
incluya dicha opcin. Dicho fichero podra estar formado por,

echo "Quiere borrar el fichero 1?"


rm -i 1
Despus de darle a este fichero el correspondiente permiso de ejecucin con el
comando chmod, podramos borrar con confirmacin el fichero file tecleando, del
file.
Dentro del fichero de comandos, 0 valdra del y 1 valdra file.
Un programa de comandos ms complicado y que utiliza dos parmetros podra
ser el contenido en el fichero cambio, que intercambia el nombre de dos ficheros:
mv 1 ficheropufo
mv 2 1
mv ficheropufo 2
Este fichero se ejecutara en la forma,
cambio file1 file2
En este ejemplo 0 es cambio, 1 es file1 y 2 es file2. En realidad a un fichero de
comandos se le pueden pasar todos los argumentos que se deseen, aunque slo hay
nombre especfico para los nueve primeros (ms el propio nombre del comando).
El nmero de argumentos que se le pasa est contenido en la variable #. La
variable * contiene el conjunto de todos los parmetros. Un nuevo ejemplo puede
aclarar algo ms este punto.
Si el programa del que hemos hecho previamente lo hubiramos utilizado en la
forma:
del *.f
tericamente debera de borrar, con confirmacin, todos los ficheros Fortran del
directorio. En la prctica no es as, porque (*.f) no representa un nico argumento
sino muchos argumentos (todos los ficheros Fortran del directorio). Como
resultado slo se borra el primer fichero Fortran. Para borrar todos e indicarnos
adems cuntos ficheros hay, el fichero del podra estar compuesto por los
siguientes comandos:
echo "Hay # programas Fortran \n"
rm -i *
El comando shift hace posible utilizar y distinguir parmetros que estn ms a la
derecha del noveno lugar en la llamada al programa de comandos. En efecto,
cuando se llama al comando shift, 2 se convierte en 1, 3 en 2, etc, y lo que hubiera
sido 10 en 9, con lo cual ya se puede referenciar. El comando shift deja inalterado
0 y puede utilizarse tantas veces como se desee.
Otras posibilidades de los ficheros de comandos
Los ficheros de comandos tienen muchas ms posibilidades que las que se han
apuntado en esta Introduccin: pueden leer variables, preguntar por la existencia
de un fichero y por si es ejecutable o no, y admiten construcciones lgicas del tipo
IF, DO, DO WHILE, etc. Para utilizar estas posibilidades acudir al manual
correspondiente.
COMPILANDO PROGRAMAS EN LINUX

Linux como cualquier sistema Unix que se precie incluye un compilador de C y


C++. Esto no implica que se est limitado a estos dos lenguajes de programacin.
Por el contrario existen una gran cantidad de compiladores gratuitos para los
lenguajes ms importantes.
El compilador de C/C++ de Linux es un compilador de lnea de comandos, esto
es, no dispone de ninguna interfaz grfica que facilite la programacin y
compilacin del cdigo. Existen eso s editores de texto capaces de mostrar la
sintaxis del cdigo resaltada como kwrite, aunque la compilacin hay que
realizarla manualmente a travs de una consola o terminal.
Compilacin y linkado
El primer paso para crear un programa, por ejemplo en C++, es crear el fichero de
cdigo fuente, y guardarlo en un fichero de texto por ejemplo e1.cpp. Tras esto
hay que compilar el programa. Para esto se emplear el comando g++, de la
siguiente forma:
g++ e1.cpp
Con lo que conseguiremos que se compile el programa. Con este comando hemos
conseguido que se cree un programa llamado a.out en el directorio de trabajo.
Para ejecutarlo emplearemos
./a.out
Normalmente no desearemos que el programa se llame a.out sino que tenga un
nombre ms significativo, como ejemplo_1, para conseguirlo emplearemos:
g++ -o ejemplo_1 e1.cpp
Si queremos ejecutar el programa emplearemos ./ejemplo_1. Si el programa
escrito realiza emplea alguna funcin que no se encuentre en la librera estndar
hay que incluirla en la orden de compilacin, por ejemplo:
g++ -o ejemplo_2 e2.cpp -lname
Donde name es el nombre de la librera. Por defecto estas se guardan en un fichero
cuyo nombre es
libname.so, cuya localizacin suele ser /usr/lib.
Si el programa no est escrito en C++ sino en C las opciones de compilacin son
las mismas salvo que en lugar del programa g++ se emplear el comando gcc.
gcc o ejemplo_3 e3.c
Comando make
Este comando sirve para organizar la compilacin y el enlazado de programas
complicados que dependen de muchos mdulos y libreras diferentes. Cuando se
ejecuta este comando, se construye un nuevo ejecutable volviendo a compilar slo
aquellos ficheros fuente que son ms recientes que el los ficheros compilados
correspondientes, teniendo en cuenta para ello las fechas de ltima modificacin
de cada fichero. Este comando se basa en un fichero ASCII (llamado por defecto
makefile) que contiene una relacin de dependencias entre los distintos mdulos,
as como las acciones que hay que realizar para poner a punto cada mdulo, es
decir para pasar de un fuente a un objeto, por ejemplo. Este comando tiene la
siguiente forma general:
make [f makefilename] [arg_opt] [exe_name]

El fichero makefile (con ste o con otro nombre invocado por medio de la opcin
f) contiene cuatro tipos de lneas diferentes:
Lneas de comentario, que comienzan por el carcter (#). Si en una lnea
cualquiera aparece el carcter (#), se ignora todo lo que aparece a continuacin de
dicho carcter en dicha lnea.
Lneas de definicin de macros. Tienen la forma general,
IDENTIFICADOR = cadena_de_caracteres
Si en alguna otra lnea aparece (IDENTIFICADOR), dicha ocurrencia se sustituye
por cadena_de_caracteres. No es necesario que el nombre del identificador est
escrito con maysculas, pero es una costumbre bastante extendida el hacerlo as.
Mediante el uso de macros se pueden representar brevemente pathnames o listas
de nombres de ficheros largos. Si el identificador tiene una sola letra, no hace falta
poner los parntesis. El comando make tiene una serie de macros definidas por
defecto que se pueden listar con el comando make p.
Lneas describiendo las relaciones de dependencia. Tienen la forma,
file.o fila.o ... : file1.cpp file2.cpp ...
La lista de ficheros que estn a la izquierda del carcter (:) dependen de los
ficheros que estn a la derecha. En estas lneas se realiza la sustitucin habitual de
los caracteres (?*[])
Lneas de comandos shell, comenzando siempre por un tabulador. Estas lneas
representan las acciones que hay que realizar para actualizar los ficheros
dependientes, segn las relaciones de dependencia descritas en la lnea anterior. En
una misma lnea de comandos puede haber varios comandos separados por un
carcter (;), y de este modo se ejecutan en un mismo proceso; si hay varias lneas
de comandos, cada lnea se ejecuta en un proceso diferente. Estos comandos shell
(compilaciones, etc.) se ejecutan o no segn las fechas de los ficheros
correspondientes. Hay tambin una lista de dependencias implcitas y de
macrodefiniciones standard que se pueden obtener con el comando make -p (la
salida de este comando puede tener varios cientos de lneas). A continuacin se
presentan algunos ejemplos de ficheros makefile.
A continuacin se muestran una serie de ejemplos
# Esto es un ejemplo de fichero makefile
# Definiciones de macros
ma = ma27ad.o ma27bd.o ma27cd.o
TEST: test.o (ma)
xlf o TEST O (ma)
test.o: test.f
xlf c O test.f
ma27ad.o: ma27ad.f
xlf c O ma27ad.f
ma27bd.o: ma27bd.f
xlf c O ma27bd.f
ma27cd.o: ma27cd.f
xlf c O ma27cd.f

Hay informaciones que no es necesario dar por que se suponen por defecto. Por
ejemplo, si el fichero objeto (.o) y el fichero C (.c) o C++ (.cpp) tienen el mismo
sufijo, no hace falta definir esas relaciones de dependencia, que por otra parte son
triviales.
Bsqueda avanzada en ficheros. Expresiones regulares
A veces se desea encontrar las lneas de un fichero que contienen una palabras o
palabras determinadas. Cuando el texto que se desea encontrar es nico, lo que
hay que hacer es ponerlo tal cual en la seccin del comando que define la
bsqueda, por ejemplo
grep "PATATAS" Lista_de_la_compra.txt
Sin embargo, en otras ocasiones el texto que se desea buscar no es nico, es decir,
no est unvocamente determinado como en el ejemplo anterior, sino que debe
cumplir unas ciertas condiciones, como la de estar escrito con maysculas,
comenzar por determinado carcter, estar a principio o final de lnea, etc. Este
problema se puede resolver en muchos comandos de Linux por medio de las
expresiones regulares que se van a presentar a continuacin.
Las expresiones_regulares son una forma de describir patrones para la bsqueda
de unas determinadas lneas dentro de uno o ms ficheros ASCII. Se trata pues de
encontrar las lneas cuyo contenido cumple ciertas condiciones, que se definen en
la expresin_regular.
Caracteres especiales
En una expresin_regular se pueden utilizar algunos caracteres que tienen un
significado especial.
Son los siguientes:
[ comienzo de la definicin de un conjunto de caracteres
. un carcter cualquiera, excepto el <eol>
* un conjunto de caracteres cualesquiera, excepto el primer carcter de una
expresin o inmediatamente despus de la secuencia \(
] terminacin de la definicin de un conjunto de caracteres
- sirve para definir el conjunto de caracteres que van del que le precede al que le
sigue. Si va detrs del [ o delante del ], no es especial
comienzo de lnea, si est al comienzo de la expresin
conjunto complementario (el que no cumple la condicin), si est justo despus
del [ que abre la definicin de un conjunto
fin de lnea, cuando est al final de una expresin.
\ quita el significado especial a un carcter, excepto en la definicin de un
conjunto de caracteres
Expresiones regulares de un solo carcter
Se trata de buscar palabras o conjuntos de un solo carcter, que cumple ciertas
condiciones. A continuacin se presentan algunos ejemplos:
\* representa el carcter *
. cualquier carcter, excepto el <eol>

[a-f] un carcter cualquiera entre la a y la f


[A-Z] cualquier letra mayscula
[a-d] cualquier carcter que no sea una letra entre la a y la d
[:clase:] donde clase puede ser: digit (cifra del 0 al 9), xdigit (cifra hexadecimal),
alpha (letra cualquiera), upper (letra mayscula), lower (letra minscula), alnum
(letra o dgito cualquiera),
space (un espacio en blanco), cntrl (carcter de control), punct (un carcter de
puntuacin) y print (carcter imprimible).
Expresiones regulares generales
Se pueden formar de acuerdo con las siguientes reglas:
- una expresin regular de un slo carcter
[a-z] cualquier letra minscula
- una expresin regular de un slo carcter, seguida del carcter *, representando
entonces todas las palabras de longitud positiva o nula que se pueden construir con
los caracteres aceptados por la una expresiones regulares de un slo carcter
[a-z]* cualquier palabra escrita con minsculas
- concatenando (poniendo una a continuacin de la otra) dos expresiones regulares
construidas previamente
[a-z][A-Z] cualquier palabra de dos letras, de las cuales la primera es
minscula y la segunda mayscula
- Una expresin_regular definida en la forma \(expresiones regulares\) representa
la propia expresiones regulares (es decir, definida ella sola), pero define una forma
de referirse luego a esa expresiones regulares. En efecto las expresiones regulares
definidas de esta forma quedan afectadas por un nmero del 1 al 9, y es posible
luego hacer referencia a una expresiones regulares por medio del nmero que le
corresponde, en la forma \nmero. Si \nmero va seguido de un *, esa
subexpresin puede repetirse un nmero cualquiera de veces.
\(.*\)\1\1 Al comienzo de la lnea, un campo formado por un carcter cualquiera
que se repite las veces que sea, volviendo a aparecer dos veces mas antes de que se
acabe la lnea. Esta expresin detectara las lneas que contienen palabras (o
conjuntos de palabras) triples.
- una expresiones regulares de un slo carcter seguida de \(entero\) representa
entero apariciones consecutivas de alguno de los caracteres aceptados por la
expresiones regulares de un slo carcter. Si va seguida de \(entero,\) representa
un nmero mnimo de entero apariciones consecutivas. Si va seguida de \(entero1,
entero2\) representa un mnimo de entero1 y un mximo de entero2 apariciones
consecutivas. Los nmeros enteros deben estar comprendidos entre 0 y 255.
- toda expresin que comienza con indica que los caracteres buscados deben
estar a comienzo de la lnea
[a-z]* selecciona las lneas que slo contienen letras minsculas
- toda expresin que termina con indica que los caracteres buscados deben estar a
final de la lnea

[a-z]\{3\}[a-z]\{3\} selecciona las lneas que comienzan con tres minsculas,


terminan con tres caracteres cualesquiera pero que no son minsculas, y no tiene
ningn otro carcter entre medio.

Comando/Sintaxis

Descripcin

Ejemplos

cat fich1 [...fichN]

Concatena y muestra un archivos

cat /etc/passwd

diff [-e]arch1 arch2

Encuentra diferencia entre archivos diff foo.c newfoo.c

du [-sabr] fich

Reporta el tamao del directorio

du -s /home/

find dir test accin

Encuentra archivos.

find . -name ``.bak'' -prin

grep [-cilnv] expr archivos

Busca patrones en archivos

grep mike /etc/passwd

head -count fich

Muestra el inicio de un archivo

head prog1.c

ln [-s] fich acceso

Crea un acceso directo a un


archivo

ln -s /users/mike/.profile

tail -count fich

Muestra el final de un archivo

tail prog1.c

vi fich

Edita un archivo.

vi .profile

at [-lr] hora [fecha]

Ejecuta un comando mas tarde

at 6pm Friday miscript

echo string

Escribe mensaje en la salida


estndar

echo ``Hola mundo''

finger usuario

Muestra informacin general sobre finger nn@maquina.aca.


un usuario en la red

id

Nmero id de un usuario

id usuario

kill [-seal] PID

Matar un proceso

kill 1234

man comando

Ayuda del comando especificado

man gcc
man -k printer

ps [axiu]

who / rwho

Muestra informacin sobre los


procesos

ps -ux

que se estn ejecutando en el


sistema

ps -ef

Muestra informacin de los


usuarios

who

conectados al sistema.