Conociendo Linux

28 Octubre, 2008

Recuperar una sesión de consola: Screen

Archivado en: Comandos, SSH — Etiquetas:, — Garbu @ 2:53 am

Aquellos que les guste conectarse remotamente a una máquina y recuperar el aspecto y estado de la última conexión que se hizo, están de enhorabuena, según leo en Tux Training es posible hacerlo mediante el comando screen instalado en la máquina remota.

El comando es muy sencillo, suponemos que desde la maquina cliente queremos recuperar la conexión SSH que hicimos anteriormente que hemos dejado abierta en la maquina remota. Para capturar esa sesión procedemos a realizar la siguiente llamada desde la maquina cliente:

ssh -t maquina_remota “screen -d -r”

# Introducimos el password y voilá, ya tenemos el control de la sesión que dejamos abierta

Visto en Tux Training

16 Octubre, 2008

Desactivando el altavoz interno desde la consola en Ubuntu

Archivado en: Comandos, SSH — Etiquetas:, — Garbu @ 1:35 pm

Si estas cansado de esos pitiditos que suele dar tu máquina, sobre todo si estás corriendo un servidor y pita cuando menos te lo esperas a altas horas de la noche, puedes seguir las siguientes instrucciones para desactivarlo:

# A) Desactivarlo para la sesión actual

sudo modprobe -r pcspkr

# B) Desactivarlo para siempre

# Editamos el fichero /etc/modprobe.d/blacklist y añadimos la siguiente linea al final

blacklist pcspkr

Para hacer la prueba en ambos casos, podeis generar pitidos con el paquete beep que instalareis haciendo sudo apt-get install beep y que podeis lanzar simplemente escribiendo beep en la consola

Fuente: Eric Biven’s Blog

14 Octubre, 2008

El manual ahora en castellano

Archivado en: Comandos, Enlaces Interesantes, Paquetes, SSH — Etiquetas:, , , — Garbu @ 3:21 am

Pues si hace unos días publicabamos como mejorar el aspecto del manual dandole un poquito de color, desde CasiDiablo nos comentan una manera de que hacer mas legible el manual para aquellos que el inglés se les atraviese. Por cierto, puede convivir con los colorines.

Aquí las instrucciones: El Manual en Español

8 Octubre, 2008

Otra lista de comandos para la consola

Archivado en: Comandos, Enlaces Interesantes, SSH — Etiquetas:, , — Garbu @ 2:08 am

Pues de rebote me he encontrado con ésta entrada y no he podido evitar registrarla en el blog, no me digas que no es interesante, muchos de esos comandos tan útiles desde la consola:

¿Qué versión del kernel tengo?

$ uname -r
2.6.17.13-smp

¿Qué versión de X tengo instalada?

$ X -version 2>&1 | sed ‘/^$/d’ | head -n1
X Window System Version 6.9.0

¿Tengo aceleración por hardware en mi placa de video?

$ glxinfo | grep “direct rendering”
direct rendering: Yes

¿Qué procesador(es) tiene mi compu?

$cat /proc/cpuinfo | grep “model name”
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz
model name : Intel(R) Pentium(R) 4 CPU 3.00GHz

¿Cuál es la frecuencia del(los) procesador(es)?

$ cat /proc/cpuinfo | grep “cpu MHz”
cpu MHz : 3000.586
cpu MHz : 3000.586

¿Que porcentaje del disco(s) esta usado/libre?

$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 10G 6.5G 3.5G 65% /
/dev/sda2 10G 4.9G 5.2G 49% /home

¿Cual es la temperatura del CPU?

$ cat /proc/acpi/thermal_zone/THRM/temperature
temperature: 43 C

¿Cual es el nombre de la maquina?

$ hostname
amd64

¿Cual es la MAC de la placa de red?

$ /sbin/ifconfig | awk ‘/HWaddr/ {print $5}’
00:XX:XX:XX:XX:XX

¿Cuanta memoria tiene disponible la compu?

$ free -m | sed -n ‘2,2p’ | awk ‘{print $2 ” MB”}’
494 MB

¿Cuánta memoria está usando la compu?

$ free -m | sed -n ‘3,3p’ | awk ‘{print $3 ” MB”}’
297 MB

¿Cuanta memoria está libre?

$ free -m | sed -n ‘3,3p’ | awk ‘{print $4 ” MB”}’
195 MB

¿Hace cuanto que está encendida la compu?

$ uptime | cut -d, -f1 | cut -d” ” -f3-

¿Qué proceso está consumiendo más CPU?

$ ps -eo pcpu,pid,user,args | sort -k1 -r -n | head -2
%CPU PID USER COMMAND
2.1 10346 zarpele /usr/lib/opera/9.27-20080331.6/opera -style Plastik

¿Qué dispositivos tengo en los bus PCI?

$ /sbin/lspci
00:00.0 Host bridge: Intel Corporation 915G/P/GV/GL/PL/910GL Express Memory Controller Hub (rev 04)
00:01.0 PCI bridge: Intel Corporation 915G/P/GV/GL/PL/910GL Express PCI Express Root Port (rev 04)
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Express Chipset Family Graphics Controller (rev 04)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FB/FW (ICH6/ICH6W) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

¿Qué dispositivos tengo en los bus USB?

$ /sbin/lsusb
Bus 5 Device 1: ID 0000:0000
Bus 3 Device 1: ID 0000:0000
Bus 2 Device 1: ID 0000:0000
Bus 1 Device 1: ID 0000:0000
Bus 4 Device 2: ID 03f0:1d17 Hewlett-Packard
Bus 4 Device 1: ID 0000:0000

¿Cuál es el nombre de usuario que tengo?

$ whoami
zarpele

¿A que grupos del sistema pertenezco?

$ groups
users floppy audio video cdrom

¿Cuánto espacio de disco usa mi cuenta?

du -sh $HOME
3.6G /home/eternauta

¿Que versión del compilador de C tengo instalado?

$ gcc –version | head -n1
gcc (GCC) 3.4.6

¿Qué librerías utiliza el programa xxx (por ejemplo mplayer)?

$ ldd /usr/bin/mplayer
linux-gate.so.1 => (0xffffe000)
libdvdnav.so.4 => /usr/lib/libdvdnav.so.4 (0xb7ecc000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7e9c000)
libmad.so.0 => /usr/lib/libmad.so.0 (0xb7e87000)
libdv.so.4 => /usr/lib/libdv.so.4 (0xb7e5f000)
libtheora.so.0 => /usr/lib/libtheora.so.0 (0xb7e31000)
libogg.so.0 => /usr/lib/libogg.so.0 (0xb7e2c000)
libpng.so.3 => /usr/lib/libpng.so.3 (0xb7df1000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7ddf000)
libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7dc2000)
libasound.so.2 => /usr/lib/libasound.so.2 (0xb7d02000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb7cfe000)
libxmms.so.1 => /usr/lib/libxmms.so.1 (0xb7cf1000)
libmpcdec.so.5 => /usr/lib/libmpcdec.so.5 (0xb7ce3000)

¿Qué hora y día es hoy?

$ date
Fri Oct 3 12:56:14 ART 2008

¿Tienés un calendario de este mes?

$ cal
October 2008
Su Mo Tu We Th Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Fuente: Taringa

Truco para navegar por los directorios mediante la linea de comandos

Archivado en: Archivos y Directorios, Comandos, SSH — Etiquetas:, , — Garbu @ 1:22 am

Algunas de las veces que estamos en linea de comandos no hacemos mas que cambiar y cambiar de carpeta, y muchas veces tenemos que volver a la carpeta anterior, para lo cual no nos queda otra que volver a introducir la ruta exacta.

Pues resulta que si que tenemos otra opción y mucho mas facil, introduciendo el siguiente comando:

cd -

Nos volvemos a situar en la carpeta anterior a la que estamos actualmente. Pongamos un ejemplo para que se entienda mejor:

user@ubuntu-server:~$ pwd

/home/user

user@ubuntu-server:~$ cd /etc/apache2/

user@ubuntu-server:/etc/apache2$ ls

apache2.conf  envvars     mods-available  ports.conf       sites-enabled

conf.d        httpd.conf  mods-enabled    sites-available

user@ubuntu-server:/etc/apache2$ cd -

/home/user

user@ubuntu-server:~$

Está claro que este tip es bastante util, pero hay que acostumbrarse a usarlo !!

Fuente: spsneo.com/blog/

4 Octubre, 2008

Papelera de reciclaje en la linea de comandos: Alias

Archivado en: Archivos y Directorios, Comandos, SSH — Etiquetas:, , — Garbu @ 8:43 pm

Por accidente o por desgracia, alguno ya se habrá dado cuenta que si usamos el comando rm para borrar un archivo, éste desaparece para siempre, por mucho que lo busques en la papelera de reciclaje.

Si no eres amigo de que ésto pase, puedes crearte tu propio comando que elimine un archivo mandandolo a la papelera de reciclaje, usando la util instruccion alias

Por ejemplo, vamos a crear el comando borrar, lo definiriamos desde el terminal de la siguiente manera:

alias borrar=”mv -t ~/.local/share/Trash/files –backup=t”

Ahora ya podemos usar este comando para borrar archivos sin miedo a perderlos para siempre, o por lo menos con el margen de duda de habernos equivocado:

borrar archivo

Para que podamos usar este atajo siempre que iniciemos nuestra máquina, tenemos que agregar la declaración de alias en una línea en el fichero oculto /home/nuestro_usuario/.bashrc

Fuente: Ubuntu Kung Fu

Buscar en el historial de comandos

Archivado en: Comandos, SSH — Etiquetas:, — Garbu @ 3:05 pm

Este es un tip rápido para aquellos que olvidais comandos que habeis usado anteriormente.

Como bien sabeis, ejecutando el comando history podemos ver los comandos que hemos ejecutado anteriormente, ya sea en la misma sesión o en dias anteriores.

Cuantas veces habremos desgastado la tecla cursor arriba en busca de ese comando que pusimos y que ahora no recordamos.

Pues bien, si conocemos alguna parte de ese comando podemos hacer una búsqueda del mismo, y con un poco de suerte encontraremos el comando original.

Para acceder a la denominada búsqueda inversa, pulsamos simplemente Control R y escribiremos el texto que pueda relacionar con nuestro comando, y con algo de suerte éste aparecerá, será cuando pulsemos Enter para ejecutarlo directamente o bien cursor derecha o cursor izquierda si lo que queremos es editarlo antes de lanzarlo.

Siempre es mejor ésto que buscar en todo el historial secuencialmente, ¿ no ?

Por cierto, si acabamos hartos de nuestro historial, siempre podremos borrarlo con:

history -c

O bien que nunca vuelva a registrarse el historial

export HISTSIZE=0

Fuente y algún ejemplo en inglés en : The Geek Stuff

Música remotamente: VLC en modo comandos

Archivado en: Comandos, Programas, SSH — Etiquetas:, , — Garbu @ 1:03 pm

Las últimas versiones de VLC nos traen una curiosa y puede que interesante curiosidad para mas de uno. Se trata de que podemos lanzar la aplicación desde la linea de comandos, pudiendo abrir cualquier archivo multimedia soportado por la aplicación. Está claro que los videos se visualizarán en un entorno gráfico, pero la música no hara falta que tengamos las X lanzadas.

Suponiendo que ya tenemos VLC instalado, abrimos una consola y escribimos lo siguiente:

vlc -I ncurses

# Nos abrirá el reproductor VLC en modo terminal.

# Presionando h podemos ver una lista de todos los posibles comandos, los mas interesantes son:

B -> Explorador de archivos

a -> Subir Volumen

z -> Bajar Volumen

Barra Espaciadora -> Pausar/Reproducir

# Uno de los comandos mas útiles, es lanzar todos los mp3’s contenidos en una carpeta “Musica” como si fuera una lista de reproducción

vlc -I ncurses ~/Musica/*.mp3

Como veis, nada nuevo bajo el sol, aunque como bien digo, puede que tenga mas utilidad de la que pensamos, espero que a alguno le pueda venir bien el tip.

Fuente e Imagen: spsneo

2 Septiembre, 2008

Actualizar tus máquinas remotamente con SSH

Archivado en: Comandos, Paquetes, SSH — Etiquetas:, , — Garbu @ 2:19 pm

Una de las ventajas de poder conectarnos remotamente a nuestras máquinas Linux mediante SSH es que podemos aprovechar las horas muertas en cuanto a consumo de conexión a internet se refiere para realizar por ejemplo, las actualizaciones del sistema.

Para ello necesitamos obviamente tener acceso a nuestras maquinas a traves de internet o desde la red local en el caso que fuera asi, y logicamente tener APT instalado en la maquina remota. Pasemos a la acción:

# Conectar a nuestra máquina

ssh IP_Maquina_Remota

# Despues de meter login con permisos y password, lanzamos la orden para actualizar las fuentes

sudo apt-get update

# Ahora solo falta ejecutar la instalacion de lo que hemos de descargar

sudo apt-get upgrade

Hay que tener en cuenta que si el proceso de instalacion de las actualizaciones va a ser largo, es conveniente no cerrar la conexion SSH, y aparte que la máquina remota tenga buena conexión a internet para que no haya cortes y ninguna actualización se quede a medias.

Fuente: Infected Project

25 Agosto, 2008

Administrar tu máquina remotamente: OpenSSH

Archivado en: Comandos, SSH — Etiquetas:, , , — Garbu @ 3:55 pm

Hasta ahora hemos repasado varios de los comandos más útiles o frecuentes en Linux que como bien sabeis se ejecutan desde consola o terminal de nuestra máquina. Los comandos suelen tener equivalente a evento gráfico pero en muchos casos es preferible hacerlo desde la consola, con el fin de depurar o agilizar cualquier proceso que necesitemos.

También es muy práctico usar los comandos de consola cuando el interfaz gráfica no responde o simplemente no es posible, como en el caso de una conexión remota a traves de Internet o en una LAN.

Es aquí donde interesa instalar en nuestra máquina un servidor SSH, que no es mas que un demonio que añadiremos a nuestro sistemas con el fin de que podamos acceder a él desde otros equipos remotos en modo consola con el fin de administrar, consultar o utilizar nuestro equipo desde cualquier otro, simplemente se requiere un emulador de SSH como puede ser putty para Windows o cualquier terminal para Linux.

Para ello una de las herramientas más difundidas es OpenSSH, el cual podemos instalar en nuestra máquina de la siguiente manera:

sudo apt-get install openssh-server

Tras lo cual, y por increible que parezca, ya tenemos nuestro servidor SSH funcionando a pleno rendimiento, con los certificados RSA y DSA necesarios y la configuracion estandar. Si tu equipo es crítico se recomiendas revisar la configuración del servidor SSH para establecer un puerto de conexión distinta o bien filtrar otros parámetros como el acceso remoto de root ( hay scripts de gente que intenta acceder a esa cuenta ), el puerto de conexión entrante y el X11 forwarding.

Todo ello se puede hacer a través de la edición fichero /etc/ssh/sshd_config de la siguiente manera:

#Acceder al fichero de configuración con un editor ( en mi caso desde consola usando nano )

sudo nano /etc/ssh/sshd_config

#Una vez dentro de nano pulsamos Control W y buscamos la ocurrencia PermitRootLogin y vemos que tiene el siguiente aspecto:

PermitRootLogin yes

#Asi que para deshabilitar acceso remoto del root editamos la linea dejandolo asi:

PermitRootLogin no

#Ahora buscamos la cadena Port y nos encontramos con:

Port 22

#Y si queremos cambiar el puerto pues es tan simple como sustituir el número por el nuevo, por ejemplo el 2022

Port 2022

#Deshabilitar X11 Forwarding es claramente intuitible. Buscamos la linea X11Forwarding y nos encontramos con:

X11Forwarding yes

#Para deshabilitarlo:

X11Forwarding no

Comentar que X11 Forwarding sirve para poder ejecutar aplicaciones gráficas de una máquina A desde una máquina B a traves de un cliente de terminal que soporte conexion ssh con X11. Dejar abierto X11 Forwarding está catalogado como una posible vulnerabilidad pero a su vez es necesaria para ejecutar varios programas.

Ya tenemos configurado y asegurado el servidor SSH, asi que lo único que nos queda es darle uso. Podemos probar que todo esta OK previamente abriendo un terminal en la misma máquina y ejecutando:

ssh localhost

Si nos solicita usuario y password, es que todo va bien y si logueamos ( no con el root por lo anterior mencionado ) recibiremos un mensaje de bienvenida al servidor SSH.

Ahora podemos repetir la misma operación desde cualquier équipo de la red, desde un Linux a traves de la consola con el comando:

ssh direccion_IP_servidorSSH

#Donde direccion_IP_servidorSSH es la dirección IP de la máquina que corre OpenSSH

Tambien podemos acceder al mismo desde un equipo bajo Windows, instalandonos previamente un programa que interprete SSH, yo recomiendo putty

Si nos atrevemos hasta podemos habilitar en nuestro NAT del Router con el que tengamos acceso a internet una regla de tal manera que las conexiones entrantes a traves del puerto 22 ( o el que hayamos configurado para SSH ) accedan a nuestra maquina servidor de SSH, con lo cual podremos acceder desde cualquier estación de trabajo de Internet a nuestro equipo.

Por curiosidad, si hemos dejado el X11 Forwarding en modo Yes podemos llevar a cabo la ejecución de programas gráficos en nuestro servidor SSH que se visualizarán en nuestra máquina que lleve a cabo la conexión. Para lanzar, por ejemplo, xclock que es la aplicación que muestra la hora de manera gráfica, ejecutaremos:

ssh -X direccion_IP_ServidorSSH

xclock

#Ante lo cual se abrirá un reloj gráfico con la hora de la máquina servidor, no con la que tengas en la máquina desde la que hagas la conexión. Compruebalo!.

Más adelante hablaremos más de OpenSSH, en concreto de los siguientes aspectos:

  • Cambiar el mensaje de bienvenida
  • Copia de archivos mediante SSH
  • Administración remota de manera gráfica a través de SSH: FreeNX y Nomachine
  • etc…

Fuentes utilizadas: UbuntuGeek y LinuxQuestions

Blog de WordPress.com.