Comandos de Unix, para usuarios de MS-DOS

Para los que conocen el manejo del sistema DOS (Disk Operating System - Sistema operativo de disco, el cual es un derivado del CP/M, Control Program/Monitor), y que por necesidades de su trabajo tienen que usar algún sistema operativo Unix, como es el GNU Linux, esta lista de comandos les servirá para ir conociendo algunas equivalencias con los comandos DOS y así como unos nuevos, que les servirá para el manejo del sistema.

1. Comandos básicos similares DOS y Unix

Cambiar de directorio (carpeta, ruta, path)

cd cd( nota: cd.. no sirve. Usar cd ..(Con espacio).

Crear un directorio

md mkdir

Remover un directorio

rd rmdir

Remover un directorio con todo y archivos y carpetas dentro del mismo:

rm −R

Listar archivos de un directorio

dir ls (dir funciona como ls −l −color)

Copiar archivos

cp

Mover y renombrar archivos y carpetas

mv

Invocar al shell

bash, tcsh, zsh, etc. (En Unix hay varios shells, a diferencia del COMMAND.COM)

Ayuda sobre un comando

man

Limpiar la pantalla

clear

Comprimir archivos y carpetas

gunzip

Almacenar historial de archivos

No es requerido, todo lo que teclees se almacena automáticamente

Invocar la ayuda rápida de un comando en especial:

comando −−help.

Ver el contenido de un archivo de texto

cat

Editar el contenido de un archivo de texto

edit pico, vi, emacs, etc. (El pico es el más fácil de usar)

Mostrar y editar la fecha y hora

date (Imprime la fecha y hora). date −−set la define.

Comparar las discrepancias entre dos archivos de texto

cmp cmp,diff(Imprime las diferencias entre dos archivos)

Mostrar en la salida estándar una cadena de caracteres

echo Cadena de caracteres (Entrecomillado)

Enviar un pulso a otra máquina en la red

ping

Trazar la ruta a otra máquina en la red

traceroute

Ver las variables de ambiente

set


2. Comandos propios de Unix

Cambiar permisos de acceso a un fichero o folder.

chmod

Los permisos se especifican mediante tres números. El primero simboliza los permisos del propietario del archivo, el segundo los permisos del grupo al que pertenece el archivo, y los tres últimos son los permisos para todo el mundo. Si pasamos cada uno de estos números a binario, ocuparán tres bits. Los permisos se estructuran en tres tipos: Lectura(r), Escritura(w), y ejecución(x).

Cambiar al propietario de un archivo o directorio

chown : Cambia el usuario propietario de un archivo. Sólo root (el administrador del equipo) puede ejecutar este comando.

Cambiar grupo de trabajo de un archivo o directorio

chgrp : Cambia el grupo efectivo de un archivo.

Cambiar a administrador del sistema desde cualquier usuario.

su

Ver los procesos que el sistema operativo está ejecutando, (incluye pid)

ps

Descargar un proceso en ejecución, o forzar a que termine:

kill : Mata el proceso especificado por PID.

Si falla, kill −9 lo mata incondicionalmente.

Reiniciar el sistema operativo y el equipo

reboot

Apagar el equipo

halt

Muestra los módulos cargados en memoria.

lsmod

Descarga de memoria un módulo, pero sólo si no está siendo usado.

rmmod

Carga en memoria un módulo.

insmod

Comprimir en formato gz

gzip

Para descomprimir un archivo en formato tgz (tar.gz)

gzip −cd Archivo.tar.gz | tar xvf − (Con guión al final)

Montar alguna unidad o dispositivo de datos (red/disquete/memoria usb, etc) al sistema:

mount /dev/

Sólo root puede ejecutar este comando, a no ser que se especifique otro usuario en el archivo /etc/fstab.

Desmontar la unidad

umount

Configurar el sistema operativo e instalar software:

YaST / yum / rug / zipp

Localizar un archivo de comandos

whereis

Localizar un archivo específico:

find

Localizar una cadena de texto en un archivo:

grep

Ordenar un texto:

sort

Detiene el desplazamiento de líneas de pantalla a pantalla

more

Cargar un archivo de texto para mostrarlo pantalla por pantalla

less

Compilar un módulo de un programa, con sus librerías:

make

Mostrar ruta del directorio actual

pwd

Imprimir encabezado de un archivo

head

Crear un enlace simbólico o físico a un archivo:

ln

ln −s /MisDocumentos/documento.txt texto
haría un enlace simbólico con nombre texto al archivo documento.txt.

Imprimir

lpr

Contabilizar las palabras de un archivo:

wc

Usuarios en línea en el equipo:

who

Arrancar programa de correo:

mail

3. Filtros y Manipulación de archivos

Redirección de salida(>)

Redirige la salida de un comando a un fichero.

ls > fichero.txt

Se creará un archivo fichero.txt. Si miramos su contenido (cat fichero.txt) veremos que contiene exactamente lo que veríamos al ejecutar el comando dir.

Redirección de entrada(<)

Dirige la entrada estándard de un comando desde un fichero.

Si hacemos: grep /root < fichero.txt

De existir una línea que contenga esa cadena en el archivo antes creado, fichero.txt se imprimirá en pantalla la línea completa. Si no, no devolverá nada.

Ejecución secuencial(;)

Ejecuta varios comandos dentro de una sola línea de comandos.

Ejemplo: mv archivo1 aux ; mv archivo2 archivo1; mv aux archivo1

Redirección de salida estándard de error(>&)

Si utilizamos un comando y salen varias pantallas con mensajes de error o si por ejemplo
dejamos trabajando nuestro terminal ejecutando varias órdenes y queremos al volver mirar si todo ha sido correcto, hacemos:

comando >& fichero.txt

Ejecución asíncrona(&)

Ejecuta en paralelo el/los comandos introducidos.

Ejemplo: make programa_enorme.c & make programa_enorme2.c &

Compilará los dos programas a la vez, y además nos dejará el shell libre para poder seguir ejecutando mandatos.

OR lógico( || )

Se ejecutan de forma secuencial los mandatos introducidos hasta que uno de ellos
devuelva un valor 0(verdadero)

Ejemplo: test −d archivo || lpr archivo

Sólo imprime el archivo si no es un directorio.

AND lógico (&&)

Se ejecutan de forma secuencial los mandatos introducidos hasta que uno de ellos devuelva un valor distinto de 0(falso).

Ejemplo: test −f archivo && lpr archivo

Imprime el fichero sólo si se trata de un fichero ordinario.

Tuberías(pipes)( | ): Se ejecutan los comandos de forma secuencial, pero redirigiéndose la salida de cada uno al siguiente comando.

Ejemplo1: dir | sort | less

Imprime la lista de los ficheros del directorio actual de trabajo ordenados alfabéticamente y línea a línea.

Ejemplo2: head −100 carta | grep Juan | sort | lpr

Imprime en orden alfabético las líneas que, estando entre las 100 primeras del archivo carta contengan la cadena de caracteres Juan.

Además el shell es una herramienta de programación muy versátil y completa. Proporciona una serie de mandatos compuestos que permiten escribir programas estructurados de forma condicional o incluso bucles (ciclos).

Entre estos mandatos están el if, case, until, while, for, etc. Además de la posibilidad de definir funciones de forma similar a la sintaxis de C, y variables. Esto permite hacer unos programas llamados Shell Scripts, que equivalen a los archivos .BAT de MS−DOS, pero con una sintaxis de programación mucho más completa.

Caracteres especiales:

La sintaxis de los shell de Linux permite definir los nombres de archivos con todo tipo de caracteres, pero hay una serie de caracteres especiales como el espacio, o símbolos como ( ; | > < ), etc. que no se pueden especificar así como así en un nombre de archivo. Para proteger estos caracteres se usan los caracteres (\), () y (`).Un ejemplo:

Si queremos borrar un archivo que se llama mio;tuyo nombre;>raro debemos poner:

rm mio\;tuyo\ nombre\;\>raro

o bién (mas cómodo):

rm mio;tuyo nombre;>raro

El carácter tilde(~) se usa en el shell de Linux para especificar el directorio HOME de cada usuario en vez de, por ejemplo: /home/Informática/Explotación/Manuelva/

Además para cambiar a nuestro directorio HOME basta con ejecutar cd sin argumentos.

Variables de entorno

En unix las variables de entorno son mas importantes que en MS−DOS. La principal razón es la variable PATH, que como todos sabemos contiene los directorios donde el shell debe buscar para encontrar cualquier comando xterno al shell. Esto es igual que en MS−DOS, pero en Linux toda la demás información que aparece con el comando set es usada continuamente por los diferentes programas.

Entre la información que aparece por allí, tenemos el shell(COMMAND.COM) que se usa por defecto, el nombre de usuario, el pid de nuestro propio shell, la configuración del servidor de ventanas, y un largo etcétera que será más o menos largo según los programas que usemos.

Para exportar nuevas variables primero se definen. Por ejemplo, si queremos que nuestro gestor de ventanas sea el KDE por defecto, simplemente haremos:

WINDOWMANAGER=/opt/kde/bin/startkde
Si ahora escribimos set en la línea de comandos, vemos que lo que hemos hecho no ha afectado a la variable de entorno WINDOWMANAGER. Para que el cambio tenga efecto, hay que exportarla al sistema; Esto se hace:

export WINDOWMANAGER

Si queremos que cualquiera de estas variables exista cada vez que entremos con nuestro usuario, habrá que añadirla al archivo .profile en nuestro directorio home.

Archivos importantes:

En Linux, como en MS−DOS o cualquier sistema operativo, existen una serie de archivos con información para mantener el sistema. Archivos como el AUTOEXEC.BAT o el CONFIG.SYS, el IO.SYS, etc. contienen la forma de configurar el arranque de nuestro ordenador, o hasta de algún programa, como el WIN.INI, etc...

A continuación se hace un breve resumen de estos archivos en Linux:

En cada directorio personal: /home/Usuario/

.xinitrc: Archivo de inicio del entorno de ventanas. Es propio de cada usuario.

.profile: Es el equivalente al AUTOEXEC.BAT de MS−DOS, pero con la particularidad de que en Linux este archivo es diferente para cada usuario. Se trata de un shell script, y hay que crearlo a mano, pues no se crea por defecto.

.bash_history: Es un archivo de seguridad en el que se graba cada comando que ejecuta un usuario durante varias sesiones seguidas.

En el directorio de configuración: /etc/

profile: Es el equivalente al AUTOEXEC.BAT; se ejecuta al arrancar.

fstab: Archivo que contiene el montaje de los dispositivos, los puntos de montaje, opciones de automontaje en el arranque, permisos, etc.

lilo.conf: Archivo de configuración del cargador del sistema operativo lilo(Linux loader), encargado del arranque de Linux y los demás s.s.o.o.

resolv.conf: Archivo de configuración de la resolución de nombres de red.

hosts: Archivo de configuración de redes(Ver documento adjunto).

En otros directorios:

/var/adm/backup: Cada vez que se hacen cambios en el sistema, se nos da la posibilidad de guardar una copia de seguridad de todos los archivos susceptibles de variar. Aquí se guardan dichos cambios en formato tar.gz

/opt/: Aquí se guardan los programas considerados opcionales, como son el navegador Netscape, o el entorno de ventanas KDE.

/vmlinuz: Es el núcleo del sistema operativo. Puede llamarse de otra forma.

/mnt/: Aquí se suelen montar las particiones o dispositivos que tenga el sistema.

/usr/doc/Howto: Múltiples ayudas catalogadas por temas.

/usr/doc/packages: Conjunto de README, y documentos varios para cada paquete instalado, en formato texto, postscript, html, etc.

En el directorio /proc:

Si miramos el contenido de cualquiera de estos archivos( cat ), obtendremos información útil sobre nuestro sistema:

devices: Información sobre los dispositivos que el sistema reconoce.

ioports: Info. sobre las direcciones de entrada/salida de los dispositivos.

interrupts: Info. sobre las interrupciones usadas por el sistema.

dma: Info. sobre los canales de acceso directo a memoria del sistema.

En el directorio de los dispositivos: ( /dev)

hda: Disco primario maestro.

hdb: Disco primario esclavo.

hdc: Disco secundario maestro.

hdd: Disco secundario esclavo.

fd0: Disquetera.

mouse: Contiene un enlace al puerto del ratón(tty0, psaux, etc)

modem: Enlace al puerto del módem(tty0, tty1, etc)

lpd: Impresora.

fb0: Frame buffer device. Es un dispositivo que controla la tarjeta gráfica a bajo nivel, sin necesidad de entorno gráfico.

No hay comentarios.:

Publicar un comentario