Tema linux sin terminar

490 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
490
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tema linux sin terminar

  1. 1. Inicio del sistema El arranque de un sistema GNU/Linux consta de las siguientes fases: • Ejecución del gestor de arranque (ej.: LILO o GRUB). • Carga y ejecución del kernel. • Ejecución de init (proceso número 1)* Ejecución de scripts de iniciación genéricos en /etc/rcS.d. • Entrada en el runlevel por defecto: ejecución de scripts del runlevel en /etc/rcX.d, donde X el el número del runlevel. A grandes rasgos el proceso ocurre así: al conectar o reiniciar el ordenador, la w:BIOS busca en su configuración el dispositivo de arranque por defecto, el cual suele ser un disco duro, indicado generalmente en la configuración de la BIOS por C. Entonces carga en memoria el primer sector del dispositivo de arranque y le transfiere el control. Cuando se trata de un disco duro, este primer sector es el w:Master Boot Record (MBR) y contiene, además del código cargado por la BIOS, la tabla de particiones del disco. El código en el MBR, generalmente, lee en la tabla de particiones cuál es la partición activa y carga en memoria el primer sector de la misma, transfiriéndole el control. En nuestro caso, este sector estará ocupado por un gestor de arranque que nos permitirá arrancar GNU/Linux u otro sistema operativo. Opcionalmente, puede instalarse el gestor en el MBR, tomando antes el control. Una vez cargado el gestor de arranque, éste se ejecuta, busca el kernel de Linux en una posición conocida del disco, carga el kernel en memoria y le cede el control. El kernel se almacena comprimido en disco, por lo que lo primero que hace el código del kernel que se ejecuta inicialmente es descomprimir el propio kernel y situarlo en memoria. Entonces se ejecuta realmente el kernel y empieza una lista de comprobaciones y activación de módulos internos del mismo Una vez funcionando, el kernel monta el disco principal donde se almacena el sistema operativo (root filesystem y ejecuta el primer proceso: init. La misión de init es ejecutar el resto de procesos del sistema: comprobación de discos, detección/configuración de hardware adicional, apertura de terminales, servidores, etc. Una vez que el kernel se ha cargado en memoria, ejecuta el programa init, que se convierte en el proceso número 1 y se encarga de ejecutar el resto de programas que hacen que el sistema funcione. La operación de init se configura en el fichero /etc/inittab. Empezando en este fichero se puede seguir paso a paso el proceso de arranque (y parada) del sistema. Lo importante a saber aquí es que init no hace demasiado por si mismo, sino que se limita a ejecutar una serie de guiones o scripts que activan ordenadamente los diferentes servicios que hacen funcionar el sistema. En primer lugar se ejecutan por orden alfabético todos los scripts que se encuentren bajo el directorio /etc/rcS.d que comiencen por ’S’ con “start” como argumento. Por convenio estos scripts se nombran comenzando por un número de dos cifras para establecer el orden adecuado. Cada script tiene una función particular, por ejemplo: • S10checkroot.sh comprueba el sistema de ficheros. • S20adjtimex ajusta el reloj del sistema. • S40networking activa los interfaces de red. En realidad, y por convenio, estos scripts no se sitúan directamente en /etc/rcS.d, sino que se guardan en el directorio /etc/init.d y desde ahí se hacen enlaces simbólicos a /etc/rcS.d. De esta forma es más fácil añadir, eliminar y ordenar los componentes. Las tareas realizadas por los scripts en /etc/rcS.d son las básicas para arrancar el sistema. Luego se ejecutan otra serie de scripts correspondientes a un runlevel o nivel de ejecución.
  2. 2. Los runlevels (niveles de ejecución) son un mecanismo para permitir que el ordenador trabaje con diferentes configuraciones de arranque (diferentes servicios, etc.). Los runlevels se numeran del 0 al 6. El 0 se ejecuta para parar el sistema (halt), el 6 para reiniciar (reboot) y el 1 para arrancar en modo single user, que viene a ser una cofiguración mínima para realizar tareas de administración. El resto de los runlevels son para funcionamiento normal. El runlevel por defecto es el 2 (se configura en /etc/inittab), empleando los otros sólo en situaciones especiales. En Debian, los runlevels del 2 al 5 se configuran inicialmente de forma idéntica. Así, el proceso de arranque suele continuar ejecutando los scripts del runlevel correspondiente situados en /etc/rcX.d, donde X es el número del runlevel. La forma de ejecutar estos scripts es análoga al caso anterior, salvo que ahora se ejecutan primero los scripts que comiencen con ’K’ con argumento “stop” y luego los que comienzan con ’S’ con argumento “start”. La idea es que cada script gestione una tarea o servicio. Este servicion se inicia cuando el script se ejecuta con el argumento “start” y se detiene cuando se usa el argumento “stop”. De esta forma en cada runlevel puden detenerse los servicios que no se necesiten y activarse aquellos que interese. Este sistema también facilita el arranque y parada de servicios, ejecutando estos scripts manualmente con el argumento apropiado. En cualquier momento, el administrador puede hacer que el sistema cambie a otro runlevel ejecutando el comando telinit con un argumento numérico indicando el nuevo runlevel. Por ejemplo: # telinit 3 En general, no hay que preocuparse por la configuración del arranque, ya que el sistema de instalación se ocupa automáticamente de actualizar la configuración en función de los paquetes instalados. Cierre del sistema Para detener correctamente un sistema Unix hemos de situar el proceso INIT en un determinado [[w:runlevel|runlevel, generalmente 0 o 6 (podemos comprobarlo simplemente echando un vistazo a /etc/inittab). Para ello, el sistema ofrece al superusuario varios mandatos que pueden ser invocados desde el shell, y que se suelen encontrar en el directorio /sbin/, como shutdown, halt o reboot. Tanto halt como reboot detienen el sistema; la diferencia entre ellos es que la segunda orden lo reinicializa. En principio sólo vamos a poder invocar estas órdenes cuando nos encontremos en los runlevels 0 o 6; si nos encontramos en otro nivel de operación habremos de utilizar shutdown para poder asegurar la estabilidad del sistema. Sin embargo, en la mayoría de Unices no existen problemas por esta causa, ya que INIT detecta el estado actual del sistema, y si no es alguno de los anteriores, invoca de forma automática a shutdown con los parámetros adecuados Shutdown (reinicio) va a detener la máquina de una forma ordenada, siguiendo unos pasos definidos. En primer lugar, notifica el hecho a todos los usuarios conectados (mediante wall) y bloquea el proceso de registro (login). Posteriormente invoca a INIT' en un runlevel 0 (para simplemente detener el sistema), 6 (para reinicializarlo) o incluso 1 (monousuario, para realizar tareas administrativas). Entonces NIT ejecuta el script correspondiente (leído de /etc/inittab), que suele encargarse de eliminar todos los procesos de la máquina, notificar el evento en el fichero de log correspondiente, desmontar los sistemas de ficheros que existan, desactivar el área de swap (intercambio) y, según se haya invocado la orden, detener el sistema o reinicializarlo. La forma habitual (que se da en el 90% de los casos, y por supuesto es la que estudiaremos nosotros) de invocar a shutdown es:
  3. 3. shutdown -r/-h now Con el parámetro -r hacemos un reboot, y con -h un halt (simplemente detenemos el sistema, sin reinicializar). El parametro "now" puede ser substituido por una hora o puede indicarse el tiempo que deberá esperar el sistema para proceder al reinicio/parado del sistema. Algún ejemplo sobre el reinicio del sistema sería: shutdown -h/-r 20:00 shutdown -h/-r +10 Intérprete de órdenes El proceso login (de registro/ingreso) nos asigna un intérprete de mandatos, leído de nuestra entrada en /etc/passwd. Ya sabemos que un shell no es más que un programa del sistema que nos va a permitir relacionarnos con la máquina, introduciéndole órdenes desde el teclado; es la interfaz de usuario que nos ofrece cualquier sistema operativo. En nuestro sistema Unix podemos tener instalados diversos intérpretes de órdenes; en el archivo /etc/shells tenemos los disponibles para cada usuario, incluido el root. Por defecto se asigna el Bourne Again Shell (bash), el más cómodo, que incluye lo mejor de todos los anteriores intérpretes, como el C-Shell (csh) o el Korn Shell (ksh). El bash incluye rodillo de mandatos, histórico de órdenes (en el archivo .bash_history del directorio $HOME de cada usuario), uso de tabuladores para completar órdenes, etc. Cualquier intérprete de Unix nos ofrece un entorno de programación completo con herramientas similares a las de la mayoría de lenguajes de programación secuencial (if, for, while, ...). También nos va a ofrecer una serie de órdenes, denominadas órdenes internas, que no encontramos como archivos ejecutables en el sistema, y que por supuesto no va a ser necesario cargar en memoria para oder ejecutarlas; un ejemplo típico de este tipo de instrucciones es exit: no encontraremos ningún ejecutable en todos los sistemas de ficheros de Unix que se denomine así. En Unix existe el mandato chsh, que permite a cualquier usuario modificar el shell que el sistema le asigna por defecto (recordemos que este dato está grabado en /etc/passwd). En determinados clones, chsh no va a comprobar que el shell sea válido (esto es, que sea una entrada de /etc/shells). Esto puede suponer un problema: imaginemos que un usuario inexperto cambia su shell de entrada a /bin/login; será imposible para él volver a entrar al sistema mediante conexión remota hasta que el administrador modifique la información de /etc/passwd. Por tanto, desde hace algún tiempo la mayoría de Unix del mercado (y por supuesto también GNU/Linux) hacen la comprobación oportuna. Analizando el funcionamiento de chsh, vemos que una de las cosas que realiza es modificar el fichero de contraseñas para cambiar el shell de entrada de un usuario; por tanto, el archivo está «setuidado». Puede ser interesante para nosotros resetear el bit setuid del archivo (chmod -s) para así conseguir un mayor nivel de seguridad del sistema, ya que, como veremos más adelante, es conveniente mantener al míınimo el número de archivos "setuidados" en la máquina. Si lo hacemos así y algún usuario quiere cambiar su intérprete de órdenes cada vez que entre al sistema puede incluir en su .profile una orden como: exec <nuevoshell>
  4. 4. La cuenta de administrador Por razones de seguridad, las tareas administrativas en Ubuntu sólo pueden ser realizadas por usuarios con privilegios especiales. Un usuario normal puede realizar todas las tareas habituales que se necesitan a diario, pero las tareas de administración del sistema solo podrán realizarlas usuarios autorizados. root En GNU/Linux (y Unix en general) existe un superusuario llamado root. Este usuario tiene acceso total al sistema, pudiendo instalar, modificar y eliminar cualquier archivo o programa, trabajar con este usuario es potencialmente peligroso, por lo que solo en recomendable para gente experimentada, que sepa la que hace. Además, solo debería usarse para tareas de administración del sistema, nunca para realizar las actividades habituales de un usuario normal. Por defecto, Ubuntu tiene la cuenta de root parcialmente deshabilitada. No podemos logearnos como root para entrar en el sistema puesto que no tiene definida ninguna contraseña de acceso. Para poder logearnos como root la primera vez deberemos asignarle un password. Esto podemos hacerlo en la aplicación Sistema> Administración> Usuarios y Grupos. O desde la Terminal, Aplicaciones > Accesorios > Terminal Primero nos hacemos root sudo su Y después creamos la contraseña con sudo passwd sudo Independientemente del debate sobre las ventajas e inconvenientes de habilitar la cuenta root, lo cierto es que en Ubuntu, un usuario normal no necesita hacerlo. Se puede autorizar a los usuarios normales para que realicen tareas administrativas mediante el comando sudo. La primera cuenta de usuario que se crea en el sistema durante la instalación, por defecto, está capacitada para usar sudo y realizar las tareas administrativas necesarias. Además, Podemos restringir o permitir el acceso a sudo al resto de usuarios del sistema, con la utilidad de Usuarios y grupos que encontramos en el panel de administración. Cuando ejecute una aplicación que requiera privilegios administrativos, se le pedirá que introduzca su contraseña de usuario. De esta forma se dificulta que aplicaciones maliciosas puedan dañar su sistema, y sirve como un recordatorio de que usted está a punto de realizar acciones administrativas que requieren que usted tenga cuidado. Cada vez que usted escribe su contraseña, el sistema recuerda que durante 15 minutos a fin de que usted no tiene que escribirla de nuevo. Notas • Hay que notar que siempre que usemos sudo el sistema nos pedirá nuestra clave. • La contraseña se guarda por defecto durante 15 minutos. Después de ese tiempo, tendrás que volver a introducir tu contraseña. • Tu contraseña no se mostrará en la pantalla, ni siquiera con los clásicos asteriscos, sin embargo, la estas escribiendo.
  5. 5. • Para ejecutar las utilidades de configuración gráfica con sudo, simplemente lanza las aplicaciones desde el menú. • Para ejecutar un programa utilizando sudo que normalmente se ejecuta como usuario normal, como por ejemplo gedit presiona Alt+F2 y escribe gksudo gedit. • Si eres usuario de Kubuntu, utiliza kdesu en vez de gksudo. • Para utilizar sudo en la línea de comandos, escribe sudo antes del comando. Sistema de archivos El sistema de archivos de Ubuntu está basado en el Filesystem Hierarchy Standard. Este es un estándar que con mayor o menor rigor siguen la mayoría de las distribuciones GNU/Linux y algunos otros sistemas operativos basados en UNIX. Algunas de sus principales características son: • Todo está organizado en una única estructura de directorios. Todo está dentro del directorio raíz, representado por el signo '/'. • Todo es un archivo. Dentro de / está representado todo el sistema, los directorios y archivos presentes en los discos duros y demás dispositivos de almacenamiento montados, todo el hardware de la computadora, todos los procesos en ejecución, etc... • Cada cosa en su sitio y un sitio para cada cosa. Todos los directorios tienen una finalidad concreta, todos los contenidos tienen una ubicación predeterminada según su naturaleza y función. Aunque todo aparente formar parte de un único sistema de archivos en realidad hay varios. Además de los sistema de archivo de disco que contienen los archivos normales, incluye diversos sistemas de archivos virtuales que cumplen diversas funciones. Estructura de directorios Si listamos el contenido del directorio raiz desde la consola obtendremos algo parecido a esto: ls --almost-all bin dev boot doc-pak vmlinuz.old cdrom etc / home initrd.img lib lib64 media mnt proc root selinux srv tmp usr initrd.img.old lost+found opt sbin sys var vmlinuz • El directorio raíz es / → De aquí cuelgan todos los directorios del sistema: • /bin → Aquí tenemos los programas básicos que pueden lanzar todos los usuarios del sistema. • /boot → Aquí tenemos los archivos de configuración del arranque del sistema (como por ejemplo GRUB) el Kernel y un disco RAM para el arranque (initrd). • cdrom → Antiguamente aquí se montaban los CD-ROM's. Actualmente es un enlace a /media/cdrom, está ahí por compatibilidad con programas antiguos. • /dev → Aquí encontramos todos los dispositivos físicos del sistema (todo nuestro
  6. 6. • • • • • • • • • • • • • • hardware). La mayoría de su contenido es generado durante el arranque. • /dev/disk → contiene los archivos que representan las discos y sus particiones. • /dev/psaux → Representa al ratón. • /dev/ram* → Representa la memoria RAM. • /etc → Aquí encontramos los archivos de configuración generales del sistema y los programas. /home → Es un directorio donde tenemos los directorios personales de los usuarios. • /home/(usuario) → Es nuestro directorio personal. Aquí es donde guardaremos nuestros documentos, música, películas, fotos y los archivos de configuración personalizados de los programas que usamos.También podemos referirnos a este directorio por su abreviatura '~' • ~/Desktop → Aquí tenemos nuestro escritorio. • initrd.img → Es un eslace a /boot/initrd-img-xxx, está ahí por compatibilidad con programas antiguos. /lib → Contiene las bibliotecas necesarias para que se ejecuten los programas que tenemos en /bin y /sbin. Si usas un sistema de 64bits tendrás un enlace lib64 que apunte a /lib. /lost+found → Este directorio es usado por el programa fsck, cuando fsck no puede reparar completamente un sistema de archivos, guarda aquí todo lo que no sepa donde ubicar. /media → Aquí encontramos todas las unidades físicas que tenemos montadas. Discos duros, unidades de dvd, pendrive, ... /mnt → Este ha sido el lugar tradicional para montar unidades, ha perdido gran parte de su función en favor de /media pero sigue siendo útil para el montaje puntual de algunas cosas. /opt → Es el lugar apropiado para la instalación de programas que no forman parte de la distro y que pueden no encajar bien en la estructura de /usr /proc → Su contenido representa a las procesos en ejecución. Aquí se encuentra archivos que reciben o envían información al núcleo. Es un sistema de archivos virtual, en realidad en el disco duro ese directorio está vacío. /root → Es el directorio personal del usuario root. /sbin → Aquí se encuentran los ejecutables de los demonios (servicios) instalados en el sistema. /selinux → selinux es un sistema que extiende el sistema de permisos típico de Unix. /srv → Pensado para contener los archivos compartidos por los servidores. No es muy usado. /sys → Contiene información sobre el sistema y el kernel. Es un sistema de archivos virtual, en realidad en el disco duro ese directorio está vacío. /tmp → Este directorio contiene información temporal de los programas. No se conserva su contenido, suele borrarse al arrancar el sistema. /usr → Este directorio contiene los archivos de los programas no esenciales. Es el directorio más grande del sistema. • /usr/X11R6 → Aquí tenemos los programas de X-Window, el servidor gráfico. • /usr/bin → Aquí tenemos programas de uso general para los usuarios. • /usr/doc → Aquí tenemos documentación de los programas.
  7. 7. • /usr/etc → Aquí tenemos archivos de configuración de uso global. • /usr/include → Aquí tenemos las cabeceras de C y C++. Son archivos con extensión .h. Los programadores comprenderán su significado. • /usr/lib → Aquí tenemos las bibliotecas de nuestros programas. • /usr/man → En este directorio encontramos los manuales (man). • /usr/sbin → Este directorio contiene los ejecutables de los demonios correspondientes a los programas de usuario. • /usr/src → Aquí se almacenan los códigos fuentes de nuestros programas. • /var → Este directorio contiene información variable, como registros, datos de los servidores, etc. • vmlinuz → Suele ser un enlace a /boot/vmlinuz-xxx, está ahí por compatibilidad con programas antiguos. Archivos de configuración importantes Cómo editarlos Antes de editar cualquier archivo de configuración es importante que realices una copia de seguridad del mismo. En ocasiones nos surge editar un archivo y no disponemos de entorno gráfico, para ello podemos utilizar algún editor de texto como vi o nano: vi <archivo> nano <archivo> Archivos • /etc/fstab → Este archivo contiene información sobre los dispositivos que se montaran automáticamente durante el arranque del sistema. • /etc/apt/sources.list → Aquí encontramos la lista de repositorios. • /etc/passwd → Este archivo controla el uso de usuarios, en contraseñas, con permisos y grupos que pertenecen a cada usuario, archivo muy importante si uno quiere tener un superusuario además que el ya conocido root. • /boot/grub/menu.lst → Aquí tenemos la configuración de GRUB (gestor de arranque). • /etc/X11/xorg.conf → Este archivo contiene la configuración del entorno gráfico (pantalla, teclado, ratón, tarjeta gráfica ...). • /etc/network/interfaces → interfaces Este archivo contiene los datos de configuración de la red. Comandos de uso frecuente En esta página encontrás comandos que se utilizan habitualmente en la administración de un sistema GNU/Linux (particularmente Ubuntu) a través de la línea de comandos. Ordenados por temática.
  8. 8. Aclaración sobre este artículo En el siguiente artículo se incluyen comandos acompañados de opciones/parámetros. Los elementos entre corchetes se han de escribir sin los corchetes a la hora de ponerlos en la consola. Ejemplo: Mostrar el contenido del fichero carta.txt En este artículo veríamos: cat [fichero] pero en realidad tendremos que escribir en la consola: cat carta.txt Ficheros y miscelánea Comando ls Acción Lista los archivos de un directorio concreto Comentarios ls -l = Añade información sobre los atributos ls -a = Lista todos los archivos incluyendo los ocultos ls -R = Lista el contenido del directorio y todos sus subdirectorios recursivamente cat -n [fichero] = Muestra el contenido de un fichero numerando sus lineas cat [fichero] Muestra el contenido de un fichero more [fichero] Muestra un fichero de forma tabulada como una página del man less [fichero] Similar a more, permite tanto avanzar como retroceder entre las páginas echo [cadena] Repite la cadena echo -e [cadena] = Habilita la interpretación de caracteres de escape stat [fichero] Muestra el estado de un fichero stat -f [fichero] = Muestra el estado del sistema de ficheros tail [archivo] Muestra las ultimas lineas de un archivo tail -n [n] [archivo] = Muestra las ultimas n lineas del archivo head [archivo] Muestra las primeras lineas de un archivo head [n] [archivo] = Muestra las n primeras lineas de un archivo Busca las coincidencias con el patrón dentro del directorio y sus find [ruta] [patron] = Busca las coincidencias con el patron find [patron]
  9. 9. subdirectorios dentro de la ruta find [patron] -print = Busca las coincidencias y muestra la ruta completa de estas. find -size [tam] = Busca aquellos archivos menores que el tamaño señalado man find = Muestra un listado las múltiples opciones y usos de find whereis [programa] Busca la ruta donde se encuentra el programa, su ayuda, etc. grep cadena archivo = Muestra las líneas del archivo que contienen la cadena grep [opciones] [expresión regular] nombredearchivo Toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para esa expresión regular. También podemos redireccionar la salida de un determinado comando por medio de una tubería (Alt Gr+ 1) y filtrarla con grep usando la expresión regular como criterio. type [comando] Busca la ruta donde se encuentra el comando which [programa] Busca la ruta donde se encuentra el programa o comando pwd Muestra el directorio actual history Muestra los comandos utilizados por el usuario en orden cronológico fc -l Muestra los últimos comandos usados por el usuario eject [unidad óptica] Expulsa la unidad óptica seleccionada (Podemos encontrarlas en /media) eject -t [unidad óptica] = Cierra la bandeja de la unidad óptica (cdrom, dvd ...) cd Cambia al home o al directorio raíz si se lanza como root cd [ruta] = Se desplaza al directorio especificado en la ruta ps -ef | grep nombredeproceso = Lista los procesos que se estén ejecutando y que contengan la cadena nombredeproceso grep palabra * = Muestra todas las líneas que contienen la cadena "palabra" en una lista de archivos (donde "*" representa todos los archivos en el directorio actual) cd .. = Se mueve al directorio anterior cd ../.. = Se mueve dos
  10. 10. directorios atrás. cp [origen] [destino] Copia el archivo origen al directorio destino cp -R [origen] [destino] = Copia un directorio recursivamente (directorio y subdirectorios) cp -p [origen] [destino] = Copia preservando los permisos y las fechas cp [archivo] [archivo nombre cambiado] = Copia el archivo y lo cambia de nombre mv [origen] [destino] Mueve al archivo origen al directorio destino mv [archivo] [archivo_nombre_cambiado] = Cambia de nombre un archivo mv se parece a cp, excepto que borra el archivo original después de copiarlo. Se puede entender como la utilización conjunta de cp y rm. mv renombra un archivo (que es el primer parámetro) si el segundo parámetro es un archivo. Si el segundo parámetro es un directorio, mv moverá el archivo al nuevo directorio, manteniendo el mismo nombre simple. mkdir [directorio] Crea un nuevo directorio dentro del directorio. rmdir [directorio vacío] Elimina el directorio vacío rm [archivo] Elimina un archivo completamente rm -r [directorio] = Elimina un directorio recursivamente (directorio y subdirectorios) ln [archivo] Crea un enlace duro (mismo archivo con distintos nombre) ln -s [archivo] = Crea un enlace blando Compara los dos ficheros diff -w [fichero1] [fichero2] = Descarta el espacio en blanco cuando compara las lineas diff [opciones] [fichero1] [fichero2] diff -q [fichero1] [fichero2] = Informa solo si los ficheros son distintos diff -y [fichero1] [fichero2] = Muestra la salida a dos columnas
  11. 11. passwd Permite al usuario cambiar su contraseña sudo passwd = Permite al usuario cambiar o crear la contraseña de root man comando Muestra el manual de un comando, un paquete, etc. Resulta muy útil para aprender a utilizar dicho comando, sus modificadores y argumentos. man aptitude = Nos despliega la ayuda de aptitude, sus opciones y posibilidades. clear Limpia la pantalla reset Reinicia la terminal date Muestra la hora y la fecha en formato completo date -u = Muestra la hora y fecha en formato completo en UTC date '+format' = Formatea la hora y la fecha -> date '+Dia: %m/%d/%y%n Hora:%H:%M: %S' man date = Muestra un listado con todos los posibles formatos who Muestra los usuarios que hay logeados en el sistema whoami Muestra la información del propio usuario write [user] Permite mandar un mensaje a un usuario conectado al sistema (valido para red), para finalizar pulsar Ctrl+D mesg Muestra el estado actual de la terminal mail [usuario] mesg [y | n] = Esta orden permite al usuario que la ejecuta habilitar (y) o inhibir (n) el permiso de escritura sobre su terminal Permite intercambiar correo electrónico con otros usuarios. Similar a write solo que el usuario no necesita estar conectado. uname Muestra el sistema UNIX sobre el que estamos trabajando uname -a = Muestra toda la información sobre el tipo de sistema que se esta utilizando uname -m = Muestra el tipo de arquitectura que se esta utilizando uname -s = Muestra el nombre del sistema
  12. 12. uname -n = Muesta el nombre por el que se identifica el sistema en la red uname -r = Muestra la revision (release) del kernel que estamos usuando uname -v = Muestra la version del kernel que estamos usando chmod [+|-][rwx] [archivo] Añade(+) o elimina(-) los permisos de lectura(r), escritura(w) o ejecucion(x) del archivo o directorio. g|o|a][+|-][rwx] [archivo] = Cambia los persmisos al usuario(u), grupo(g), otros(o) o a todos(a) chmod [mascara] [archivo] = Cambia los permisos al archivo segun la mascara, donde 000 quita todos los permisos y 777 da todos los permisos. umask Muestra los permisos con los que el usuario creara sus archivos por defecto chown [nuevo propietario] [archivos] Cambia de propietario a los archivos chgrp [grupo nuevo][archivos] Cambia de grupo a los archivos mkfs.msdos /dev/fd0 Formatea en formato MsDos un disquette fdformat /dev/fd0 Formatea en formato MsDos un disquette y despues verifica el formateo sleep [tiempo] Congela la terminal durante los segundos especificados export [identificador] [=valor] Define, marca y/o asigna el identificador(es) como variables de entorno que seran exportada a los subprocesos que se generen. unset [identificador] Permite eliminar una variable identificada por su nombre o identificador | Redirecciona la salida de un comando con la entrada del siguiente comando umask [mascara] = Fija los permisos que tendra por defecto cualquier archivo creado por el usuario. 777 quita todos los permisos y 000 da todos los permisos. Se escribe mediante Alt Gr + 1
  13. 13. alias Asigna un nombre simbolico a un nombre='comando' comando Ejecutables Comando Acción sh nombredeejecutable.sh Ejecuta un archivo ejecutable .sh Comentarios bash nombredeejecutable.sh = Otra forma de ejecutar un archivo ejecutable .sh ./nombredeejecutable.sh = Otra forma de ejecutar un archivo ejecutable .sh Impresión Comando Acción Comentarios lpr fichero lpr -#n fichero = Realiza "n" copias del Añade el fichero a la cola de fichero, donde n es un numero natural impresion (1,2,3,4,5 ...) lpq Muestra los documentos en la cola lprm Cancela la impresion del documento actual lprm n Cancela la impresion del trabajo n, siendo n un numero natural. -t = No imprimira cabeceras ni pies de pagina l70 = Establece la longitud de la página de 70 lineas (66 por defecto) pr +2 l70 -w 80 -h Formatea un archivo de texto -w 80 = Establece el ancho de linea en "Comandos" fichero -t para la impresion 80 caracteres(72 por defecto). -h "Comandos" = Establece "Comandos" como cabecera de cada página. pr l70 -d comandos.txt | lpr Una vez formateado el texto lo manda a la cola de impresion Formatos Comando tidy fichero.html Acción Analiza el codigo de un documento html Comentarios tidy -m fichero.html = Corrige modificando el codigo del fichero html
  14. 14. tidy -m -asxml fichero.html = Convierte el fichero html a xml tidy -m -asxhtml fichero.html = Convierte el fichero html a xhtml tidy -m -ashtml fichero.xhtml = Convierte un fichero xhtml a html pdftops fichero.pdf fichero.ps Convierte un fichero pdf a ps Compresión y descompresión Comando Acción Comentarios zip -r fichero.zip ficheros Comprime en formato .zip unzip archivo.zip = Descomprime un .zip rar a -r0 fichero.rar ficheros Comprime los ficheros en unrar e -r archivo.rar = Descomprime el formato .rar fichero.rar en el directorio actual unzip -v archivo.zip = Muestra el contenido de un .zip sin descomprimirlo unrar x -r archivo.rar ruta_destino = Extrae el fichero.rar en la ruta especificada unrar v archivo.rar = Muestra el contenido del fichero.rar sin descomprimirlo gzip -r ficheros Comprime ficheros a gz gzip -d fichero.gz = Descomprime un fichero.gz gzip -c fichero.gz = Muestra el contenido de un fichero.gz sin descomprimirlo bzip2 ficheros Comprime ficheros al formato bz2 bzip2 -d fichero.bz2 = Descomprime un fichero.bz2 bzip2 -c fichero.bz2 = Muestra el contenido de un fichero.bz2 sin descomprimirlo tar -vcf archivo.tar /fichero1 /fichero2 ... Empaqueta ficheros o directorios en tar tar -vxf archivo.tar = Desempaqueta el archivo.tar tar -vtf archivo.tar = Muestra el contenido del archivo.tar sin descomprimirlo tar -zvcf archivo.tgz directorio tar -jvcf archivo.tbz2 directorio Empaqueta y comprime (tgz) directorios o ficheros tar -zvxf archivo.tgz = Desempaqueta y descomprime un archivo.tgz Empaqueta y comprime (tbz2) directorios o tar -jvxf archivo.tbz2 = Desempaqueta y descomprime el archivo.tbz2 tar -zvtf archivo.tgz = Muestra el contenido de un tgz sin descomprimirlo ni desempaquetarlo
  15. 15. ficheros tar -jvtf archivo.tbz2 = Muestra el contenido sin desempaquetar ni descomprimir el .tbz2 Renombrado Comando Acción Comentarios *.zip indica el tipo de archivos a renombrar (llamado con * renombra todos). A-Z indica el patron a modificar. rename 'y/AZ/a-z/' *.zip Cambia mayusculas por minisculas en todos los .zip. a-z indica el patron por el que se modifica. rename 'y/ /_/' * cambia espacios por _ en todos los archivos. rename 's/expresión //' *.mp3 = Elimina una expresion de todos los mp3. Gráficos Comando Acción glxinfo Informacion sobre OpenGl y Glx showrgb Comentarios glxinfo | grep "direct rendering" = Indica si esta activada la aceleracion 3D Muestra los colores reconocidos por el sistema y su codigo RGB banner texto figlet texto Muestra un cartel ascii con el texto de forma vertical banner -w[n] texto = Hace el banner con el tamaño indicado por n, siendo n un numero (Sin los corchetes) Muestra un cartel ASCII con el texto de forma horizontal figlet -w[n] texto = Similar a banner pero en formato horizontal figlet -t texto = La salida se mostrara con su anchura maxima figlet -c texto = La salida se mostrara centrada xwd > ventana.xwd Captura una ventana xwd -root -screen > pantalla.xwd = Captura la pantalla gnome-screenshot Captura la pantalla en el escritorio gnome gnome-screenshot --window = Captura la ventana en el escritorio gnome
  16. 16. import -window - ventana.jpg Captura una ventana en cualquier formato xwud -in pantalla.xwd Muestra imagenes en formato .xwd identify imagen.gif Muestra las propiedades de una imagen pdfimages fichero.pdf nombre_para_las_imágenes Extrae las imagenes de un .pdf convert *.jpg catálogo.pdf Crea un catalogo pdf con las imagenes display "vid:*.jpg" Crea un indice grafico con las miniaturas convert imágen_color.jpg -monochrome imágen_b/n.jpg Convierte una imagen a blanco y negro convert imagen_original.ppm imagen_nueva.jpg Cambia el formato de una imagen convert -sample 100x50 imagen_original.jpg imagen_nueva.jpg Cambia las dimensiones de una imagen mogrify -format jpg *.ppm Convierte a .jpg todas las imagenes .ppm mogrify -format png -sample 20%x20% *.jpg Crea miniaturas de varias imagenes convert -delay 15 imag1.jpg imag2.jpg imag3.jpg remero.gif Crea un gif animado con varias imágenes (15 es el tiempo entre imagenes en centésimas) convert imagen.gif -adjoin imagen.jpg Extrae los fotogramas de un .gif animado convert -font courier -fill yellow -pointsize 25 -draw 'text Añade texto a una imagen 100,250 texto' imagen.jpg imagen_con_txt.jpg Imágenes Comando Acción mkisofs -R -J -T -o imagen1.iso fichero1 Crea una imagen de un fichero que se encuentre en nuestro disco duro. dd if=/dev/cdrom of=imagen.iso Crea una imagen del cd-rom y la vuelca en imagen.iso Comentarios
  17. 17. cat /dev/cdrom > archivo.iso Similar al anterior nrg2iso imagen.nrg imagen.iso Convierte una imagen .nrg a .iso Para usar este comando es imprescindible instalar el paquete nrg2iso bin2iso imagen.cue Convierte una imagen .bin o .cue a .iso Para usar este comando es imprescindible instalar el paquete bin2iso ccd2iso imagen.img imagen.iso Convierte una imagen img/ccd/sub/cue a .iso Para usar este comando es imprescindible instalar paquete ccd2iso mdf2iso imagen.mdf imagen.iso Convierte una imagen .mdf o .mds a .iso Para usar este comando es imprescindible instalar paquete mdf2iso mount -t iso9660 -o loop imagen.iso punto_montaje Monta una imagen .iso umount punto_montaje Desmonta una imagen md5sum archivo.iso > archivo.iso.txt Genera la suma md5 de un archivo .txt md5sum -w -c archivo.iso.txt Verifica la suma md5 de un archivo Grabación de CD y DVD Comando Acción cdrecord -v dev=0,0,0 fs=16M speed=30 imagen.iso Grabar un cd de datos/imagen cdrecord -v dev=0,0,0 fs=16M speed=30 -eject -isosize /dev/sr1 Copiar un cd de datos/imagen cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav Grabar un cd de audio cdrdao copy -v 2 --device 0,0,0 --source-device 0,1,0 --reload --eject --on-the-fly --fast-toc --paranoiamode 0 Copia un cd de audio cdrecord -v dev=0,0,0 fs=16M speed=30 -pad -audio *.wav -data imagen.iso Graba un cd mixto cdrecord -v blank=fast Borrar un cd regrabable growisofs -Z /dev/sr0 -R -J archivo Grabar un cd de datos/imagen growisofs -M /dev/sr0 -R -J archivo Añade más datos a un dvd multisesión Comentarios
  18. 18. growisofs -dvd-compat -Z /dev/sr0=imagen.iso Graba una imagen previamente creada dvdrecord -v dev=0,0,0 blank=fast Borra un dvd regrabable dvdbackup -M -i/dev/sr0 -o ~/copia_dvd/ Ripea un video dvd vobcopy -i /dev/sr0 -m -o ~/copia_dvd/ Similar a la anterior Extracción de CD Comando Acción cdda2wav -B -H -D /dev/sr1 -s -x Extrae un disco de audio completo en archivos .wav separados cdda2wav -H -D /dev/sr1 -s -x -t 5 Extrae la pista número 5 cdparanoia -B -d /dev/sr1 Extrae un disco de audio completo en archivos .wav separados cdparanoia 5 -d /dev/sr1 Comentarios Extrae la pista número 5 abcde -d /dev/sr1 -N -x -o mpc = Extrae el disco completo en archivos .mpc separados abcde -d /dev/sr1 -N -x -o mp3 Extrae disco completo en archivos mp3 separados (es necesario instalar paquete abcde) abcde -d /dev/sr1 -N -x -o ogg = Extrae el disco en archivos .ogg separados abcde -d /dev/sr1 -N -x -o ogg tracks 1-3 5 = Extrae las 3 primeras canciones y la quinta Audio Comando Acción Comentarios lame -b 192 -m j tema.wav Convierte una cancion .wav a .mp3 con bitrate de 192 Elvalor 192 puede cambiarse y la opción -h indica máxima calidad) lame -h -m j --nogap *.wav Convierte todos los archivos .wav a .mp3 oggenc -b 128 -q 5 tema.wav Convierte un archivo .wav a .ogg con bitrate de 128 (-b 128) y calidad 5 (-q 5) en un rango de 0 a 10. oggenc *.wav = Convierte todos los wav en un unico fichero ogg oggenc -a -l -t *.wav = Convierte todos los .wav en sus respectivos ogg
  19. 19. oggdec tema.ogg = Convierte un archivo .ogg a .wav oggdec *.ogg = Convierte todos los .ogg a .wav lame -h --decode Convierte un archivo .mp3 a .wav tema.mp3 tema.wav mplayer -ao pcm fichero.asf Convierte un archivo .asf o .wma a .wav play cancion Reproduce una cancion en la terminal Varios Comando man comando Acción Muestra información sobre el comando Comentarios apropos palabra_clave = Busca dentro de las declaraciones de man la palabra exacta apropos -e palabra_clave = Busca la palabra exacta cal Muestra el calendario del mes actual cal -my = Muestra el calendario de todo el año uptime Muestra la hora,tiempo de funcionamiento,no usuarios conectados y la carga media tzconfig Permite seleccionar la zona horaria tzselect Permite seleccionar la zona horaria date Muestra la fecha del sistema en formato local hwclock --show Muestra el reloj Hardware o reloj hwclock -systohc = Pone el reloj de Bios Hardware a la hora del sistema watch -n tiempo comando Ejecuta un comando cada x segundos (defecto = 2) clear Limpia la pantalla reset Reinicia la terminal Ctrl+C Termina un proceso. date --help = Muestra todas las opciones de date en castellano Ctrl+Z = Suspende temporalmente la ejecución de un programa. Ctrl+S = Para la transferencia de datos a la terminal. Ctrl+Q = Resume,reinicia la
  20. 20. tranferencia de datos Ctrl+Alt+F2 = Salir del entorno gráfico a un terminal.(Fnº según gettys activados en /etc/inittab) Ctrl+Alt+Supr = Estando en una terminal reinicia(si no se indica otra cosa en /etc/inittab) hostname Muestra el nombre de la maquina tty Muestra el nombre del fichero de la terminal conectada a la salida estandar. /etc/init.d/servicio stop Para un servicio o demonio /etc/init.d/servicio start = Inicia un servicio o demonio /etc/init.d/servicio restart = Reinicia un servicio o demonio startx Arranca el entorno grafico sh script Ejecuta un script java -jar fichero.jar Ejecuta un programa java ./[archivo.bin] Ejecuta un archivo binario (también puede usarse con scripts) consolechars -f fuente.psf.gz Cambiar la fuente de la consola. Las fuentes se encuentran en /usr/share/consolefonts/ reportbug Enviar bugs exit Termina la ejecucion del programa actual shutdown -t1 -h now Apaga el pc su Entrar como superusuario adduser usuario Crea un nuevo usuario shutdown -t1 -r now = Reinicia el pc adduser usuario grupo = Añade un usuario existente a un grupo existente adduser --no-create-home usuario = Crea un usuario pero sin directorio personal addgroup grupo Crea un grupo nuevo deluser usuario Elimina un usuario deluser usuario grupo = Elimina un usuario del grupo especificado
  21. 21. deluser --remove-home usuario = Elimina un usuario y su directorio personal delgroup grupo --only-if-empty = Elimina el grupo solo si no tiene ningun usuario delgroup grupo = Elimina el grupo usermod -l nuevo_login Cambia el nombre del usuario usermod -e AAAA-MM-DD login Fecha en que la cuenta de usuario sera desactivada groupmod -n nuevo_nombre grupo Cambia el nombre de un grupo locale Muestra la zona geografica configurada dpkg-reconfigure locales Reconfigura los locales dpkg-reconfigure console-data Reconfigura el teclado loadkeys ruta_mapa_teclad o.gz Carga el mapa de teclado que le indicamos,que estará en: /usr/share/keymaps locale charmap Muestra el codigo de caracteres en uso set Muestra las variables locales definidas env Muestra las variables de entorno definidas export usermod -d nueva_home -m login = Cambia el nombre del usuario (lo crea si no existe) y tranfiere su contenido. Muestra las variables de entorno declaradas Procesos Comando Acción memtest Hace una comprobacion del estado de la memoria free -m -s 3 Muestra el uso de la memoria top Muestra información detallada sobre Comentarios -m en megabytes -s 3 con una demora de 3 segundos
  22. 22. los procesos en curso (tecla z colorea los activos) pstree Muestra los procesos en curso en forma de arbol pidof [comando] Muestra el id del comando killall [proceso] Para el proceso strace [comando] Muestra las llamadas al sistema originadas por el comando fuser -v [archivo] Muestra los procesos que estan usando un archivo o directorio lsof -c [comando] = Lista los ficheros abiertos por un proceso lsof Lista los ficheros abiertos por los procesos lsof +D [Directorio] = Lista los procesos que estan usando el directorio lsof -i :60627 = Muestra los procesos que se encuentren detras del puerto 60627 [comando] & Ejecuta un comando en segundo plano nohup [comando] Ejecuta un comando de forma que si & cerramos la terminal siga ejecutandose jobs Lista los procesos en segundo plano identificandolo con su numero de tarea fg no_tarea Pasa un comando a primer plano bg Pasa a segundo plano un proceso que hemos suspendido temporalmente con Ctrl-Z nice -n prioridad [comando] Ejecuta un comando con una prioridad determinada renice prioridad PID_del_proceso Cambia la prioridad de un proceso en marcha at [-f script] [tiempo] Ejecuta un script a una hora y/o fecha concretas batch Igual que at, salvo que batch sólo ejecuta el script si la carga de cpu es inferior al 80% atq = Muestra la lista de tareas programadas de forma numerada atrm no = Elimina una tarea indentificada por su no
  23. 23. Disco duro Comando Acción du -h [fichero] Muestra el espacio que ocupa el fichero o directorio tree -a -s -L 2 Igual que el anterior pero lo muestra en forma de arbol df Muestra información sobre particiones montadas cfdisk Comentarios Muestra información sobre particiones mount Muestra un listado de los dispositivos montados df -h = Medida humana mount punto_montaje = Monta un dispositivo establecido en fstab umount punto_montaje = Desmonta un dispositivo establecido en el fstab mount -t [Sistema_Archivos] /dev/ [dispositivo] [punto_montaje] = Monta el dispositvo, ej: mount -t ext3 /dev/hda1 /media/disco1 umount /dev/[dispositivo] = Desmonta un disco fsck /dev/[dispositivo] Chequea y repara el sistema de archivos de una particion no montada fsck.ext2 -vpf /dev/hdx = Chequea y repara el sistema de archivos de una particion ext2 no montada fsck.ext3 -vpf /dev/hdx = Igual pero con una particion ext3 mkfs.ext2 /dev/hdXX Crea un sistema ext2 en la particion seleccionada mkfs.ext3 /dev/hdXX = Crea un sistema ext3 en la particion seleccionada mkfs.ext2 /dev/fd0 = Crea un sistema ext2 en el disquette mkswap /dev/hdXX Crea un sistema de ficheros swap en la partición hdXX tune2fs -O ^has_journal /dev/hdXX Convierte la particion de ext3 a ext2 tune2fs -j /dev/hdXX Convierte la particion de ext2 a ext3 dd if=/dev/hda of=/dev/hdb bs=1M Clona el disco hda en el disco hdb en bloques de 1 Megabyte (para no sobrecargar el sistema)
  24. 24. dd if=/dev/hda of=mbr count=1 bs=512 Copia el MBR (Master Boot Sector) dd if=/dev/hda2 Copia el VBS (Volume Boot of=/sector_arranque_ Sector) hda2 count=1 bs=512 dd if=mbr of=/dev/hda = Restaura el MBR dd if=sector_arranque_hda2 of=/dev/hda2 = Restaura el VBS Instalación de software Comando Acción Comentarios dpkg -r paquete = Desinstala un paquete dpkg --purge paquete = Desisntala un paquete y sus archivos de configuracion dpkg --force -r paquete = Fuerza la desinstalacion de un paquete dpkg -i paquete dpkg --force-all -r paquete = Fuerza aun mas la desinstalacion de un paquete (Puede comprometer el sistema) Instala un paquete dpkg -c paquete = Muestra el contenido de un paquete dpkg -L paquete = Muestra todos los ficheros que se instalaron con un paquete dpkg -S fichero = Muestra a que paquete pertenece un fichero dpkg --get-selections = Muestra un listado con todos los paquetes instalados dpkg-reconfigure paquete = Reconfigura el paquete aptitude upgrade = Actualiza el sistema (no instala ni elimina paquetes) aptitude dist-upgrade = Actualiza el sistema eliminando e instalando paquetes si fuera necesario aptitude install [paquetes] = Instala los paquetes indicados aptitude update Actualiza la lista de paquetes aptitude reinstall [paquetes] = Reinstala los paquetes indicados aptitude remove [paquetes] = Elimina los paquetes indicados aptitude purge [paquetes] = Elimina los paquetes y sus ficheros de configuracion aptitude download [paquetes] = Descarga los paquetes en el directorio actual aptitude hold [paquetes] = Bloqua los paquetes indicados
  25. 25. aptitude unhold [paquetes] = Desbloquea los paquetes seleccionados aptitude unmarkauto [paquetes] = Desmarca paquetes como instalados manualmente aptitude markauto = Marca paquetes como instalados manualmente aptitude search [expresion] = Busca un paquete por nombre o expresion aptitude show [paquetes] = Muestra información detallada de un paquete aptitude clean = Elimina los paquetes .deb descargados Información de hardware Comando Acción sudo lshw Lista tu hardware sudo lshw -C disk Lista tu hardware especifico (en este caso, discos) Comentarios -C es la abreviatura del comando -class, que hace lo mismo. sudo lshw -html > Lista tu hardware específico y guarda un nombre_del_archivo.h archivo .html en tu directorio de usuario tml con toda la información Kernel Comando Acción Comentarios uname -a Version del kernel lsmod Lista los modulos cargados modinfo [módulo] Muestra informacion sobre un modulo modprobe [módulo] modprobe -r [módulo] = Elimina Inserta un modulo y sus dependecias en un modulo del kernel y los que el kernel dependen de él insmod [módulo] Inserta un modulo en el kernel rmmod [modulo] Elimina un modulo del kernel echo [módulo] >> Inserta un modulo en el kernel /etc/modules permanentemente depmod [modulo] Comprueba las dependencias del modulo modconf Programa gráfico para cargar módulos
  26. 26. last hdparm /dev/hdX Muestra los usuarios conectados y desconectados en los ultimos dias Verifica el DMA de nuestro disco (sustituir "hdX" por nuestro disco correspondiente) lsdev Muestra los dispositivos PCI conectados lsusb hdparm -d1 /dev/hdX = Activar el dma en nuestro disco Muestra información sobre los dispositivos lspci hdparm -I /dev/hdx = Muestra información sobre el disco Muestra los dispositivos USB conectados less /var/log/kern.log Mensajes del nucleo. less /var/log/syslog = Registro de mensajes relativos a la seguridad. less /var/log/debug = Registro de información de depuración de los programas. less /var/log/messages = Mensajes del sistema de carácter informativo. less /var/log/user.log = Información del usuario. less /var/log/XFree86.0.log = Información sobre las X less /var/log/Xorg.0.log = Información sobre las X less /var/log/auth.log = Accesos al sistema(incluye los intentos fallidos). last Lista los usuarios conectados/desconectados (fichero /var/log/wtmp). lastb Muestra los intentos de conexión fallidos (fichero /var/log/btmp). cdda2wav -scanbus Comprobar el interfaz SCSI. cdrecord -scanbus Comprobar el interfaz SCSI. cat /proc/meminfo Información sobre la memoria. cat /proc/cpuinfo = Información sobre el procesador. cat /proc/devices = Información sobre dispositivos en uso.
  27. 27. FTP Comando ftp Acción Comentarios Abre la interface de usuario para open servidor = Conectar con el servidor el protocolo de transferencia de ficheros (FTP) append = Anexar a un archivo ? = Imprimir información de ayuda local bell = Emitir sonido cuando se complete el comando binary = Establecer transferencia binaria (todas salvo .txt) bye = Finalizar la sesión ftp y salir ascii = Establecer tipo de transferencia ascii (sólo para .txt) cd = Cambiar el directorio de trabajo remoto close = Finalizar la sesión ftp ls = Mostrar el contenido del directorio remoto dir = Mostrar el contenido del directorio remoto delete = Eliminar archivo remoto debug = Alternar modo de depuración get = Recibir archivo help = Ayuda sobre un comando 1º-help y luego el comando lcd = Cambiar el directorio de trabajo local mdir = Mostrar el contenido de múltiples directorios remotos mdelete = Eliminar múltiples archivos mget = Obtener múltiples archivos mkdir = Crear directorio en el equipo remoto mls = Mostrar el contenido de múltiples directorios remotos mput = Enviar múltiples archivos open = Conectar a tftp remoto put = Enviar un archivo pwd = Imprimir el directorio de trabajo del equipo remoto
  28. 28. quit = Finalizar la sesión ftp y salir quote = Enviar un comando arbitrario ftp recv = Recibir archivo rename = Cambiar el nombre del archivo rmdir = Quitar directorio en el equipo remoto remotehelp = Obtener ayuda del servidor remoto send = Enviar un archivo status = Muestra el estado actual trace = Alternar trazado de paquetes type = Establecer el tipo de transferencia de archivos user = Enviar nueva información de usuario verbose = Alternar modo detallado IRC Comando irc Acción Deberemos instalar el paquete irssi (sudo aptitude install irssi) Comentarios /server = Lista,añade o elimina servidores. /server [nombre:puerto:clave] = Conecta con un servidor. /info [servidor] = Obtener información sobre servidor. /lusers = Obtener estadísticas del servidor. /users = Usuarios conectados al servidor. /links = Lista los servidores de la red actual. /list = Lista e informa sobre los canales. /admin = Informa sobre el admin. del servidor. /help [comando] = Muestra la ayuda sobre un comando. /ison [nick] = Comprobar si un usuario está conectado. /join [canal] = Unirse a un canal. /names = Listar usuarios en canales. /whois [nick] = Muestra información sobre un usuario. /whowas [nick] = Informa sobre un usuario que ya no está. /who [patrón] = Muestra información sobre patrón.
  29. 29. /msg NiCK SET PASSWORD [clave] = Cambiar de contraseña(en irc-hispano) /msg [nick | canal][texto] = Envia un mensaje a un usuario o canal. /amsg [texto] 'a = Envia un mensaje a todos los canales en los que estás. /notice [nick | canal] = Envia un mensaje privado a un usuario/os /query [usuario texto] = Envia un mensaje privado a un usuario. /ignore = Lista los usuarios ignorados. /ignore nick = Ignora los mensajes de un usuario. /unignore [nick | *] = Deja de ignorar el/los mensajes. /ctcp [nick texto] = Envia un mensaje mediante CTCP /me [texto] = Envia un mensaje precedido de nuestro nick /ame [texto] = Envia un mensaje todos los canales en los que estás. /dcc [chat nick ] = Pide y/o inicia charla con un usuario. /dcc [close nick] = Cierra charla. /dcc [send nick fichero] = Ofrece y/o envia un fichero. /dcc [get nick fichero] = Permite recibir un fichero. /time = Muestra fecha y hora. /clear = Limpia la ventana de texto actual. /away [texto] = Pasar a estado ausente. /away = Volver de la ausencia. /nick [nuevonick] = Cambiar el nick. /nick [nuevonick][clave] = Cambiar un nick registrado. /nick [nick:contraseña] = Identificarse en irc-hispano. /part [canal] = Abandonar un canal. /quit = Cerrar todas las conexiones y salir. Calculadora Comando bc Acción Abrimos la calculadora bc. Comentarios 20 + 5.4 = Suma.
  30. 30. 77 - 4.2 = Resta. 25.2 * 86 = Multiplica. 47 / 3 = Muestra el cociente de la división. 47 % 3 = Muestra el resto de la división. 4 ^ 2 = Calcula la potencia 4² sqrt (16) = Calcula la raiz cuadrada de 16 (2*3+2) / sqrt (2^3/2.5) = Un poco de cada. quit = Salimos de bc. Redes Comando Acción Comentarios / Inicia los servicios de red. etc/init.d/network ing start /etc/init.d/networking restart = Reinicia los servicios de red. ifconfig [interfaz opciones IP] ifconfig = Muestra el estado de los interfaces activos. Información y configuración de interfaces de red. /etc/init.d/networking stop = Para los servicios de red. ifconfig -a = Muestra el estado de todos los interfaces. ifconfig ppp0 = Muestra el estado de ppp0 ifconfig eth0 up = Activa eth0. ifconfig eth0 down = Cierra eth0. ifconfig eth1 address 192.168.1... = Asigna una dirección al interfaz especificado. iwconfig Similar a ifconfig pero sólo para interfaces wireless ifup interface Habilita la interface especificada. ifup eth0 ifup ppp0 ifdown interface Deshabilita la interface especificada. ifdown eth0 ifdown ppp0 dhclient eth0/eth1 Inicia conexión dhcp mediante el cliente dhcp-client. pump -i eth0/eth1 Inicia conexión dhcp mediante el cliente pump.
  31. 31. pppoeconf Programa para configurar conexiones pppoe. pppconfig Programa en modo texto para configurar una conexión ppp. pon Establece la conexión ppp a internet. plog Monitoriza la conexión ppp. poff Finaliza la conexión ppp a internet. finger usuario Informa sobre un usuario conectado al sistema. finger @servidor = Informa sobre todos los usuarios conectados a un servidor (nombre o IP) finger usuario@servidor = Informa sobre un usuario conectado a un servidor ping google.com = Verifica la conexión, en este caso con www.google.com (Ctrl+Z pone fin) traceroute microsoft.es Muestra la ruta que los paquetes de datos han seguido hasta la máquina de destino, en este caso un server de microsoft.es mtr rediris.es Combinación de ping y traceroute. whois ubuntues.org Información sobre un dominio, en este caso el dominio ubuntu-es.org. host -v -a telefonica.com Determina la ip de un nombre. En este caso, la IP de telefonica.com. iptraf Monitoriza tráfico de redes (ncurses). tethereal Versión para consola de ethereal,un analizador del tráfico de red (sniffer). ettercap Sniffer/interceptor/logger para redes LAN con switchs basado en ncurses. nmap Escáner de puertos. fail2ban Escanea logs como /var/log/auth.log y banea las IP con demasiados errores de conexión. snort Sniffer de paquetes y un detector de intrusiones en una red (NIDS). aide Detector de intrusiones en un único Servidor, PC o host.(HIDS). host -v -a 194.224.55.221 = Determina el nombre de una IP. En este caso, el nombre de 194.224.55.221.
  32. 32. portsentry IDS que detecta escaneos de puertos y reacciona a un ataque. chkrootkit Detector de rootkit. w3m Navegadores web. lynx irssi links weeChat-curses links2 Clientes IRC (Internet Relay Chat) ) elinks mutt elinks es compatible con SSL, con lo que podremos acceder a correo web. Clientes de correo(MUA). cabber mush pine centericq elm Cliente jabber (protocolo libre para mensajería instantánea). Cliente de mensajeria multiprotocolo (ICQ,Yahoo,AIM,MSN,IRC,Jabber) ncftp Cliente FTP (File Transfer Protocol) basado en ncurses ftp-ssl Cliente FTP compatible con cifrado SSL y TSL (dependiendo de la otra parte) telnet-ssl Cliente telnet (acceso remoto) compatible con cifrado SSL (dependiendo de la otra parte) ssh Cliente SSH (Secure SHell). Acceso remoto cifrado. Forma parte del paquete openssh-client Clientes bittorrent. Bittornado es una versión mejorada del cliente homónimo bittorrent. Entabla una conversacion con un usuario del sistema. talk usuario@sistema = Entabla conversacion con un usuario de otro sistema (entre máquinas UNIX) mesg -n Anula la notificacion de comunicacion de talk o write. mesg -y = Habilita la llegada de notificaciones de talk o write. write usuario Manda un mensaje a un usuario del sistema. rtorrent bittornado talk usuario netstat -napt Saber qué puertos tiene abiertos nuestro sistema. -n = No resuelve las direcciones a sus nombres DNS. Esto hace más rápida la ejecución. -a = Muestra todos las conexiones,incluídas las que están escuchando. -p = Muestra el número y nombre del proceso,dueño de dicha
  33. 33. conexión. -t = sólo muestra conexiones tcp wget [opciones] URL Gestor de descargas. -p = Descarga la web completa. -r = recursivo. -k = Convierte los enlaces absolutos en relativos. -c = Reanuda la descarga de un fichero parcialmente descargado. -l6 = profundidad de recursión (5 por defecto) -A formato = formato para descargar. -nH = hace que no se cree el subdirectorio localhost. --cut-dirs=n = elimina n número de directorios dentro de la jerarquia. Permisos El sistema de permisos de Linux es simple y efectivo. Existen tres tipos de permisos:  Ejecución: Si es para un archivo será ejecutable y si es para un directorio significa que podemos pasar por él. Es representado por una X.  Lectura: Si es para un archivo significa que podemos leerlo y si es un directorio es que podemos leerlo también. Es representado por una R.  Escritura: Si es para un archivo será que podemos escribir en él y si es para un directorio significa que podemos crear ficheros dentro de él. Es representado por una W También existen tres tipos de roles sobre los que se aplican estos permisos. Un archivo pertenece a un usuario y a un grupo:  Usuario: El propietario del archivo.  Grupo: Grupo al que pertenece el archivo.  Otros: Los demás usuarios. Veamos un ejemplo: $ ls -l pg_backup.sh -rwxr-x--- 1 pepito usuarios 453 2005-02-17 09:35 pg_backup.sh El archivo pg_backup.sh pertenece al usuario pepito y al grupo usuarios. Los permisos que tiene para el usuario son rwx lo que significa que el usuario pepito puede leer el archivo, escribir en él y ejecutarlo. Por la extensión vemos que es un script, por lo que es normal que se pueda ejecutar. Para el grupo tiene los permisos r-x. Eso significa que los miembros del grupo usuarios pueden leer el archivo y ejecutarlo, pero no modificarlo. Los permisos para los demás usuarios (otros) son ---, por lo que un usuario que no sea pepito ni pertenezca al grupo usuarios no podrá leer, escribir ni ejecutar el archivo.
  34. 34. Consola El comando chmod se usa para designar los permisos de un archivo. Sólo el dueño del archivo y el root pueden cambiar los permisos. La sintaxis de chmod es: chmod {a, u, g, o} {+, -} {r, w, x} nombre del archivo donde: u: corresponde al dueño del archivo g: corresponde al grupo o o a: corresponde al resto de los usuarios, a para todos (all) y o para otros (others) Para autorizar o desautorizar el permiso: +: autoriza -: desautoriza =: resetea los permisos Los tipos de permisos son: r: lectura w: escritura x: ejecución El comando chmod también acepta otros valores para cambiar los permisos. Es probable que hayas visto algo como: sudo chmod 751 [nombre del archivo] Es otro modo de gestionar los permisos; de forma binaria. El sistema es muy simple y cómodo: se considera un bit para lectura (r) otro para escritura (w) y otro para ejecución (x). Las combinaciones posibles son ocho y se muestran en la tabla siguiente: Decimal r w x 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 Un uno equivale a activar y un cero a desactivar los permisos. El equivalente decimal de los permisos se aplica en orden: dueño, grupo y cualquiera (u,g,a). Entonces en el ejemplo anterior el valor 751 actúa: 1. Cediendo todos los permisos al dueño. 2. Cediendo permiso de lectura y ejecución al grupo. 3. Cediendo permiso de ejecución a cualquiera.
  35. 35. Cambio de propietario El cambio de propietario se hace empleando el comando chown : chown (propietario):(grupo) (archivo) Pondremos un ejemplo, supongamos que el usuario gaccardo desea darle una copia del archivo test.sxw al usuario pigu, el usuario pigu debe ser propietario de su copia para poder modificarla. Para esto debe cambiar el propietario y el grupo utilizando el comando chown. Haciendo "ls -l" nos encontramos con un fichero asi: -rwx-rw-r-- gaccardo gaccardo 435 sep 4 11:38 test.sxw Por lo que en este caso el usuario gaccardo (actual propietario) deberá hacer : [gaccardo@servidor priv]chown pigu:pigu test.sxw Si vuelve a hacer "ls -l" encuentra que ha cambiado el actual propietario -rwx-rw-r-- pigu pigu 435 sep 4 11:38 test.sxw Servicios en ubuntu: Para tener la lista completa de servicios, instala sysv-rc-conf: sudo apt-get install sysv-rc-conf Luego ejecútalo: sudo sysv-rc-conf Importante: Los runlevel 0 y 6 tienen una función determinada en linux: Cerrar y reiniciar el sistema, respectivamente. En cambio, el resto de los runlevel, pueden configurarse para arrancar y parar determinados servicios. Ejemplo: El runlevel 0, que cierra el sistema, envía la señal terminar a todos los procesos, desactiva las particiones de intercambio, desmonta los sistemas de ficheros local y remoto, si lo hay, etc. Con independencia del runlevel seleccionado se ejecutarán todos los script/servicios de /etc/rcS.d/ El script /etc/init.d/rc recibe un argumento con el runlevel a arrancar. Va al directorio /etc/rcX.d/, donde X es el runlevel, y en dicho directorio hay enlaces simbólicos que apuntan a scripts en /etc/init.d que son los que realmente arrancan los servicios e inicializan el teclado, sincronizan el reloj hardware, etc Los enlaces simbólicos en /etc/rcX.d empiezan por S o K (start) o (kill), seguidos de dos dígitos y apunta a un script con el mismo nombre pero sin S ni K ni los dos dígitos en /etc/init.d Para que un servicio NO se cargue en el arranque cambiarle en /etc/rcX.d la S, de start, inicial por la K, de kill. sudo mv SnombreServicio KNombreServicio Para que SI se cargue : sudo mv KNombreServicio SNombreServicio Lo que hemos hecho es renombrar el enlace: sudo mv nombreantiguo nombrenuevo, o
  36. 36. más exactamente en linux, mover el archivo dentro del mismo directorio con un nombre nuevo En ambos casos incluir los dos dígitos entre S ó K y el nombre del servicio. Éste número indica el orden en que arrancará el servicio. A un número menor se arrancará antes que otro con uno mayor. Si lo que queremos es parar o arrancar un servicio después del arranque del sistema: /etc/init.d/nombreServicio start/stop En Suse se puede utilizar el comando insserv para hacer también exactamente lo mismo: sudo insserv -r /etc/init.d/nombre_servicio Y para ponerlo: sudo insserv -d /etc/init.d/nombre_servicio Lo que hace insserv es crear o borrar los enlaces directos en el directorio del runlevel por defecto para que arranquen o no. (Crear/borrar del directorio /etc/init.d/rcX.d el enlace a /etc/init.d) Si por un error se borra el script de arranque de un servicio en /etc/init.d pero sigue su enlace en el runlevel por defecto /etc/rcX.d aparecerá un error en el inicio indicando que no puede leer el script XX no existe el fichero

×