Terminal

Principales Comando de Linux

Introducción


Es un programa que trabaja sobre el sistema operativo (llegando a ser parte de el)

Permite al usuario interactuar de forma directa con el sistema.

Los primeros interpretes de comandos nacieron cuando aun no existian sistemas gráficos

Utilizan un ambiente de texto

También existen los shell gráficos (explorer.exe , nautilus, etc)

A pesar de que mayoritariamente se utilizan sistemas gráficos los shell de texto siguen utilizándose ampliamente sobre todo en sistemas Unix/Linux.


Algunos intérpretes de comandos

  • Texto
    • command.com
    • sh
    • bash
    • csh
  • Gráficos
    • explorer
    • nautilus
    • konqueror


BASH

  • Para ejecutar el interprete de comandos:
    • Ejecutar una consola virtual (CTRL-ALT F1) e ingresar al sistema
    • Ejecutar un Terminal (Boton derecho -> ejecutar terminal)
  • Por defecto en GNU/Linux se utiliza bash
    • Shell desarrollado por GNU, bajo GPL
    • Cuando se ejecuta aparece el símbolo $
    • Este simbolo nos indica que el intérprete está esperando por algún comando
    • Bash permite la ejecución de instrucciones dentro de un programa (shellscript)


Shorcuts de bash, permite un manejo más eficiente

CTRL + l: Limpia la pantalla, tiene el mismo efecto del comando clear

CTRL + d: Finaliza la Shell, tiene el mismo efecto que el comando exit

Flecha Arriba: retrocede en el historial de comandos.

Flecha Abajo: Avanza en el historial de comandos.

CTRL + r: Entra al modo Busqueda Historial, en este modo se autocompletan las ordenes que se encuentren en el historial de comandos.

SHIFT + RePag: Retrocede en una pagina la salida del shell, cumple la misma funcion de la barra scroll que tienen algunos terminales.

SHIFT + AvPag: Avanza en una pagina la salida del shell.

TAB: Autocompletar comandos.

Comando Para Privilegios.

  • sudo command # ejecuta command como raíz
  • sudo su # abrir shell raíz
  • sudo su user # abrir shell como usuario
  • sudo -k # olvidar tu contraseña sudo
  • gksudo command # visual sudo dialog (GNOME)
  • kdesudo command # visual sudo dialog (KDE)
  • sudo visudo # editar /etc/sudoers
  • gksudo nautilus # gestor ficheros raíz (GNOME)
  • kdesudo konqueror # gestor ficheros raíz (KDE)
  • passwd # cambiar tu contraseña

Comandos Network

  • ifconfig # muestra información de red
  • iwconfig # muestra información de wireless
  • sudo iwlist scan # escanea redes inalámbricas
  • sudo /etc/init.d/networking restart # resetear la red
  • (file) /etc/network/interfaces # configuración manual
  • ifup interface # traer interface online
  • ifdown interface # deshabilitar interface

Comandos de Display

  • sudo /etc/init.d/gdm restart # resetear X (Gnome)
  • sudo /etc/init.d/kdm restart # resetear X (kDE)
  • (file) /etc/X11/xorg.conf # mostrar Configuracion
  • sudo dpkg-reconfigure -phigh xserver-xorg # resetear configuración X
  • Ctrl+Alt+Bksp # resetear X display si congelado
  • Ctrl+Alt+FN # cambiar a tty N
  • Ctrl+Alt+F7 # cambiar de nuevo a X display

Comandos de Servicio del Sistema

  • start service # iniciar trabajo service (Upstart)
  • stop service # parar trabajo service (Upstart)
  • status service # comprobar si service está ejecutando (Upstart)
  • /etc/init.d/service start #iniciar service (SysV)
  • /etc/init.d/service stop # parar service(SysV)
  • /etc/init.d/service status # comprobar service(SysV)
  • /etc/init.d/service restart # resetear service(SysV)
  • runlevel # obtener runlevel actual

Comandos para Cortafuegos

  • ufw enable # encender el cortafuegos
  • ufw disable # apagar el cortafuegos
  • ufw default allow # permitir todas las conexiones por defecto
  • ufw default deny # drop all connections by default
  • ufw status # reglas y estado actual
  • ufw allow port # permitir tráfico en port
  • ufw deny port # bloquear port
  • ufw deny from ip # bloquear dirección ip

Comandos de Sistema

  • Recovery # Escribir “REISUB” mientras se
  • mantiene Alt y SysRq (PrintScrn) con aprox. 1
  • segundo entre cada letra. Tu sistema reiniciará
  • lsb_release -a # obtener la versión de Ubuntu
  • uname -r # obtener versión del kernel
  • uname -a # obtener toda la información del kernel

Comandos para Gestor de Paquetes

  • apt-get update # refrescar actualizaciones disponibles
  • apt-get upgrade #actualizar todos los paquetes
  • apt-get dist-upgrade # actualizar versión
  • apt-get install pkg # instalar pkg
  • apt-get remove pkg # desinstalar pkg
  • apt-get autoremove # eliminar paquetes obsotletos
  • apt-get -f install # intentar arreglar paquetes
  • dpkg –configure -a # intentar arreglar paquetes rotos
  • dpkg -i pkg.deb # instalar archivo pkg.deb
  • (file) /etc/apt/sources.list # lista de repositorios APT

Comandos Para Paquetes Especiales

  • ubuntu-desktop # Entorno Ubuntu estándar
  • kubuntu-desktop # escritorio KDE
  • xubuntu-desktop # escritorio XFCE
  • ubuntu-minimal # núcleo utilidades Ubuntu
  • ubuntu-standard # utilidades estándar Ubuntu
  • ubuntu-restricted-extras # no libres, pero utiles
  • kubuntu-restricted-extras # ídem KDE
  • xubuntu-restricted-extras # ídem XFCE
  • build-ess
  • ential # paquetes usados para compilar
  • linux-image-generic # última imagen genérica del kernel
  • linux-headers-generic #últimas cabeceras

Comandos de Aplicaciones

  • nautilus # gestor de ficheros (GNOME)
  • dolphin # gestor de ficheros (KDE)
  • konqueror # Navegador web (KDE)
  • kate #editor de texto (KDE)
  • gedit # editor de texto (GNOME)

Comandos básicos



  • Son los comandos para realizar diversas tareas (copiar, mover, borrar, renombrar, crear directorios, crear archivos, cambiar propiedades, etc).

  • Todo comando permite el uso de "opciones", estas modificaran el comportamiento del comando.

  • Es posible combinar estos comandos para realizar tareas complejas.

  • Como convención se utilizara "$" para indicar que el comando debe ejecutarse en bash.


Ejemplo: ejecutar el comando para listar archivos/directorios

$ ls -lar


El comando es "ls"

Las opciones son "lar"


ls (listar directorios y archivos)


Muestra el contenido de un directorio en particular


Opciones:




  • l: Escribe (en formato de una sola columna) los permisos del fichero, el numero de enlaces que tiene, el nombre del propietario, el grupo al que pertenece, el tamaño (en bytes), una marca de tiempo y el nombre del fichero. De forma predeterminada la marca de tiempo que se muestra es el de la ultima modificación.

  • a: Incluye en el listado archivos ocultos (cuyos nombres comienzan con ".").

  • h: Human-readable, indica una letra al lado del tamaño, pudiendo ser K: Kilobytes, M: Megabytes, G: Gigabytes.

  • F: Permite difereciar los tipos de archivos de los directorios, donde los directorios con un caracter "/" al final del nombre, los archivos ejecutables con un "*" y los enlaces simbolicos con una "@".

  • R: Realiza un listado recursivo dentro de cada directorio.


Al utilizar la opción "l" muestra:

|Permisos | Enlaces | Dueño | Grupo | Tamaño | Fecha | Nombre|


Descripción:


  • Permisos: El Primer carácter indica el tipo de archivo el que puede ser "-"(archivo), "d"(directorio) o "l"(enlace simbólico), las 9 letras restantes se dividen en tres conjuntos de tres caracteres cada uno (rwx donde r=lectura, w=escritura, x=ejecucion, -=sin permiso), donde el primer conjunto representa los permisos para el usuario, el segundo conjunto representa los permisos para el grupo y el tercer conjunto representa los permisos para el resto de los usuarios del sistema.

  • Enlaces: Numero de enlaces.

  • Dueño: Nombre del usuario propietario del archivo.

  • Grupo: grupo al que pertenece el archivo.

  • Tamaño: Tamaño del archivo en Bytes.

  • Fecha: fecha y hora de creacion del archivo o ultima modificacion.




cd (Cambiar de directorio)


Con este comando se puede navegar por el sistema de archivos


Para ingresar a un directorio:

$ cd nombre_directorio


Para retroceder al directorio padre

$ cd ..


Para ir a cualquier directorio (utilizando el nombre absoluto)

$ cd /dir1/subdir/dirfinal


Para ir al directorio /etc/apt/

$ cd /etc/apt


Para ir al directorio de la cuenta

$ cd /home/linux


$ cd

pwd (Mostrar directorio de trabajo)


¿Como saber en que lugar del árbol de directorio nos encontramos ?


Se debe usar el comando "pwd"

$ pwd

du (peso de un directorio)


Para ver el peso de un directorio (incluyendo sus subdirectorios) se utiliza "du"


¿Cuanto pesa el directorio /home/linux ?

$ du -sh /home/linux


Para ver el espacio disponible de disco se usa el comando "df"

$ df -h

mkdir (crear directorios)


El comando "mkdir" creará un/os directorio/s


Uso:

$ mkdir directorio1 directorio2 directorio3 ...

rmdir (borrar directorios)


Se puede indicar a "mkdir" para que crear una serie de subdirectorios


Para crear los siguientes directorios: asignaturas/2005/informatica/codigos

$ mkdir -p asignaturas/2005/informatica/codigos


Para borrar un directorio se usa rmdir (el directorio debe estar vacio)

touch (crear archivos vacios)


El comando "touch" crear un/os archivo/s vacio/s


Uso:

$ touch arch1.txt arch2.c arch3.java ...


cp (copiar archivos y directorios)


El comando "cp" permite copiar archivos y directorios


Uso:

$ cp archivo_origen lugar_archivo_destino


Ejemplo: copiar /etc/apt/source.list en la cuenta

$ cp /etc/apt/source.list /home/linux


Tambien se le puede indicar como 2do parametro el directorio actual (donde se esta posicionado, para verificar use pwd), usando "."

$ cp /etc/apt/source.list .


Para copiar un directorio se debe utilizar la opción revursiva "r"

$ cp -r directorio_origen destino


mv (mover/renombrar archivos)


El comando "mv" permite el mover (corta, pegar) como renombrar un archivo o directorio


Uso:

$ mv origen destino


Si el destino es otro directorio "mueve"


Si el destino es el mismo directorio "renombra"

rm (borrar archivos y directorios)


El comando "rm" borra archivos y directorios; Puede borrar mas de un archivo

$ rm archivo1 archivo2 archivo3 ...


Para borrar un directorio incluyendo todo su contenido se debe usar la opción "r"

$ rm -r directorio


Si no queremos que confirme el eliminar se usa la opción "f" (usar con mucho cuidado)

$ rm -rf directorio


ln (Enlaces simbólicos)


El comando "ln" crea enlaces, utilizando la opción "s" se crean enlaces simbólicos


Uso:

$ ln -s archivo enlace_a_archivo


$ ln -s directorio enlace_a_directorio


Ejecutar aplicaciones


En la "Shell" no es posible asociar extensiones a programas.


Para abrir un archivo debe ejecutarse primero la aplicación.


Se debe utiliza la ruta absoluta.


P. E: ejecutar la calculadora "gcalctool" que se encuentra en /usr/bin

$ /usr/bin/gcalctool


Algunas veces es posible utilizar solo el nombre de la aplicacion

$ gcalctool


Para saber que comando ejecuta un icono del panel ver sus propiedades


Boton derecho -> propiedades -> Comando:...

Permisos


Para visualizar los permisos de un archivo/directorio "ls -l"


t p g o

d rwx rwx rwx


t=tipo, p=propietario, g=grupo, o=otros.


  • La información es la misma que entrega nautilus

  • Tipo de usuario:
    • propietario


    • grupo


    • otros



  • Permiso:
    • r: lectura


    • w: escritura


    • x: ejecución




chmod (cambia permisos)



  • Para facilitar el cambio de permisos se utiliza el sistema octal

  • Se utiliza un dígito para el tipo de usuario, por lo que se usan 3
    • El primero para el "propietario" (el más significativo)


    • El segundo para el "grupo"


    • El tercero para "otros"



  • Cada digito se forma utilizando el siguiente código octal:


Tipo de Permiso: Codigo Octal:


  • Sin Permiso 0

  • Permiso de Ejecucion (x) 1

  • Permiso de Escritura (w) 2

  • Permiso de Lectura (r) 4



Ejemplo:


  • Al archivo "datos.txt" se le desea dar el siguiente permiso
    • Propietario: Lectura, escritura, ejecución


    • Grupo: Lectura, ejecución


    • Otros: Lectura




Propietario Grupo Otros


Lectura = 4 Lectura = 4 Lectura = 4

Escritura = 2 Escritura = 0 Escritura = 0

Ejecucion = 1 Ejecucion = 1 Ejecucion = 0

Total = 7 Total = 5 Total = 4



    • El comando a ejecutar:
      • $ chmod 754 datos.txt






Empaquetado



  • Cuando se distribuye un archivo en Unix/Linux se utilizanormalmente el formato tar.gz, (archivo.tar.gz)

  • El archivo se encuentra en dos formatos:

  • Empaquetado en la herramienta gnu tar, con la aplicación tar.

  • Comprimido en formato gz, con la aplicación gzip.

  • Se usa debido a que tar "recuerda" los permisos de archivos ydirectorios

  • El comando tar solo empaqueta (los reune en un solo archivo)

  • Se deben efectuar 2 pasos
    • Empaquetar


    • Comprimir




Para empaquetar se usa el comando

$ tar -cvf directorio.tar directorio_a_empaquetar




    • c : Empaquetar


    • v : Modo verbose (muestra lo que realiza el comando)


    • f : El lugar donde empaquetara (archivo.tar)




Para empaquetar el directorio ejemplos

$ tar -cvf ejemplos.tar ejemplos


Empaquetar/Comprimir



Para comprimir el archivo se suelen utilizar 2 programas distintos:


  • gzip (es el más extendido, su extensión es ".gz" )

  • bzip2 (más reciente, su extensión es "bz2")


gzip (generará ejemplos.tar.gz)

$ gzip ejemplos.tar


bzip2 (generará ejemplos.tar.bz2)

$ bzip2 ejemplos.tar


Empaquetar y Comprimir a la Vez

$ tar -zcvf archivo.tar.gz /directorio_destino

$ tar -jcvf archivo.tar.bz2 /directorio_destino


Desempaquetar/Descomprimir


Para volver a los archivos originales se debe


  • Descomprimir

  • Desempaquetar


Descomprimir/Desempaquetar


ejemplos.tar.gz

$ gunzip ejemplos.tar.gz

$ tar -xvf ejemplos.tar


ejemplos.tar.bz2

$ bunzip2 ejemplos.tar.bz2

$ tar -xvf ejemplos.tar


Se aprecia que la opción de tar "x"(desempaquetar) reemplaza a "c"


Desempaquetar y Descomprimir a la Vez

$ tar -zxvf archivo.tar.gz

$ tar -jxvf archivo.tar.bz2


Acceso Remoto



  • Mediante Internet podemos conectarnos a un equipo en cualquier lugar

  • Se utiliza la arquitectura cliente/servidor

  • Algunos de los protocolos
    • telnet
    • rsh
    • ssh



  • Actualmente por seguridad sólo se utiliza ssh
    • SSH :secure shell
      • Los datos viajan encriptados
      • Debe existir un Servidor de ssh en el destino
      • Para realizar la conexión debemos utilizar un cliente de ssh (ssh, putty, etc)






SSH


Nota: actualmente las direcciones aqui mostradas no existen.


Funciona en base a clave pública/privada,


Para ejecutar el cliente ssh en el terminal( consola, o shell)

$ ssh login@servidor


o

$ ssh -l login servidor


Para conectarse al servidor kalku con la cuenta juaramir

$ ssh juaramir@kalku.face.ubiobio.cl


o

$ ssh -l juaramir kalku.face.ubiobio.cl


Acceso remoto: Envio de archivos



  • Para enviar/recibir existen diversos protocolos , al igual que la conexión remota
    • ftp, sftp, scp (en realidad trabaja sobre ssh)



  • Por razones de seguridad se utiliza scp o sftp


La sintaxis en consola es la siguiente (es similar a cp)


Copiar un archivo

$ scp login@servidor:nombre_archivo .


Copiar un directorio

$ scp -r login@servidor:directorio .


Enviar un archivo

$ scp archivo login@servidor:


Enviar un directorio

$ scp -r directorio login@servidor:


Modo Grafico


Desde gnome 2.8 en adelante es posible enviar/recibir archivos por medio de nautilus


Se debe lanzar la conexión

Lugares -> Conectar con el servidor


Crear la conexión con los datos requeridos

protocolo, servidor, directorio, login, nombre conexión


Luego de haber creado la conexión, esta aparecerá en el escritorio o:

Lugares -> Servidores de red


Hacer doble click para conectarse (solicitará la clave)


Lo siguiente es utilizarlo como si fuera un directorio más del sistema

Comandos: cat, more, less



  • Estos comandos permiten visualizar un archivo de texto
    • cat: muestra todo el archivo
    • more: muestra el archivo línea por línea (enter) o página por página (barra espacio), para salir se debe presionar "q"
    • less: igual que more, pero permite retroceder




Editores de texto: vim, gedit


Para manipular un archivo de texto se debe utilizar un editor


Algunos de los disponibles en linux son:

vim


gedit


vim es un editor de textos, en modo consola


gedit es un editor de textos en modo gráfico


Bueno Aquí concluye este laaargo manual, espero les sea de utilidad.


Algunos Comandos:


Comandos básicos


(para mas información "man comando")

man páginas del manual (es un help muy potente)

ls listar (como dir)

rm borrar un fihero

cp copiar un fichero

pwd te dice el directorio en el que estás

cd directorio te sitúa en directorio

cd .. baja al directorio de nivel inferior

chown, chgrp, chmod, touch comandos para manejo de atributos de ficheros

find, locate buscar ficheros

cat, more, head listar ficheros (como type)

split partir ficheros

grep buscar texto en ficheros (muy potente)


Comandos para comunicaciones y redes

who lista de usuarios conectados

finger información sobre usuario

mail sencillo programa de correo

write manda un mensaje a la pantalla de un usuario

mesg bloqueo de mensajes de write

wall mensaje a todos los usuarios

talk establecer una charla con otro usuario

banner saca letrero en pantalla con el texto que se le pase

cal saca el calendario en pantalla

clear limpia la pantalla

date saca fecha y hora actuales

passwd cambiar contraseña de un usuario


Entorno gráfico xwindow

Iniciar X startx

Abrir nuevas sesiones startx -- :2 , :3 , :4 , etc.

Configuración de XF86 /etc/X11/XF86Config

Configuración de servidor X /etc/X11/Xserver

Configurar X XF86Setup (entorno gráfico, tienes que instalar xserver_vga) /usr/sbin/xbase-configure (entorno línea de comandos)

Salir de las X ctrl-alt-backspace

Fichero donde está el programa que arranca las X /etc/X11/window-managers


Comprimir y descomprimir

Descomprimir un *.tar.gz tar -xvzf


Descomprimir un *.tar (el tar es un tar_gz al que se le ha pasado gunzip) tar -xvf


Descomprimir un *.gz gzip -d

Empaquetar sin comprimir tar

Comprimir ficheros empaquetados gzip


Manejo de las unidades de diskettes y Cd-Rom

Montar diskette mount -t msdos /dev/floppy /mnt (/dev/floppy = /dev/fd0)

Montar Cd-Rom mount -t iso9660 /dev/cdrom /mnt (/dev/cdrom = /dev/hdb)

Listar unidad montada ls /mnt

Desmontar todo umount /mnt

Formatear floppy superformat /dev/fd0 hd (msdos) (hay que tener instalado fdutils) superformat /dev/fd0 sect=21 cyl=83

mkfs.ext2 /dev/fd0 (crea sistema de ficheros ext2)


Manejo de ficheros

Enlace simbólico entre ficheros ln -sf /dev/ttyS0 /dev/mouse (puerto serie 1)

ln -sf /dev/ttyS1 /dev/modem (puerto serie 2)


Número de inodo ls -i


Número de enlaces de un fichero ls -l


Borrar enlaces rm fichero (si no tiene enlaces borra el fichero)


Borrar directorios rm -r


Ver espacio libre en disco df (disco entero)

du -sh (directorios y ficheros)

Buscar un fichero find / -name mime.types (la / es la raiz donde quieres buscar)


Instalación y manejo de paquetes en Debian

dpkg -i Instalar paquete

dpkg --info Información del paquete

dpkg -c Muestra la lista de ficheros contenidos

dpkg --contents Lista todos los ficheros contenidos con sus directorios

dpkg -f Muestra información de versión del paquete

dpkg --unpack Desempaqueta

dpkg --purge Borra un paquete incluidos los ficheros de configuración

dpkg -r Borra un paquete pero no borra los ficheros de configuración

dpkg -L Lista el paquete si está instalado

dpkg -l Lista los paquetes instalados


Convertir paquetes de RedHat a Debian

alien -d fichero.rpm convierte fichero rpm a deb

alien -d fichero.tgz convierte fichero tgz a deb

alien -i fichero.rpm convierte fichero rpm a deb y lo instala

alien -i fichero.tgz convierte fichero tgz a deb y lo instala