Instalar Visual Studio Code en Ubuntu

La versión ligera del popular editor de código de Microsoft hace tiempo que está disponible para diversos sabores de Linux. En principio bastaría con descargar el fichero .deb de la última versión e instalarlo desde el gestor de paquetes, lo que se encargaría ya de instalar el software, las dependencias y añadiría los repositorios. Pero hay gente que ha experimentado problemas en algunas versiones de Ubuntu para hacerlo de la forma simple. ¿Solución? Descargar el paquete .deb de la web e instalar desde línea de comandos.

#El nombre del fichero
#variará según la versión
#que descarguemos
sudo dpkg -i nombredelfichero.deb

#Instalamos dependencias
sudo apt-get install -f 

#Este código agrega
#los repositorios
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

Comandos de red obsoletos en Linux y sus reemplazos

Aunque todavía son muy usados y muchas versiones de Linux, la mayoría, todavía les dan soporte, la realidad es que los comandos ifconfig, netstat, arp, iwconfig, iptunnel, nameif, y route están ya considerados obsoletos. El paquete net-tools, que contenía la mayoría de ellos, lleva tiempo sin mantenimiento y ha sido reemplazado por iproute2.

Veamos una lista con estos reemplazos:

  • arp: ha sido reemplazado por ip n
  • ifconfig: hoy por hoy puede ser sustituído por ip a , por ip link o por ip -s
  • iptunnel: ha sido reemplazado por ip tunnel
  • iwconfig: ha sido reemplazado por iw
  • nameif: hoy por hoy puede ser sustituído por ip link o por ifrename
  • netstat: hoy por hoy puede ser sustituído por ss, y dependiendo de qué datos quisiéramos filtrar también por ip route,ip -s link o ip maddr
  • route: ha sido reemplazado por ip r

¿Cómo listar todos los puertos a la escucha en Linux?

Vamos con un tip linuxero rápido ¿cómo puedo listar todos los puertos a la escucha en un sistema Linux?:

Basta con el siguiente comando:

$ ss -lntu

Las variables con las que lo invocamos son las siguientes:

  • l – le decimos que solo nos muestre los puertos a la escucha.
  • n – pedimos que se nos muestre el puerto.
  • t – activa el listado de puertos TCP.
  • u – activa el listado de puertos UDP.

CBM: Monitor de red en Ubuntu

CBM es un programa que nos permitirá ver el tráfico de red entre todos los dispositivos conectados en Ubuntu, mostrando las interfaces de red disponibles, los bits recibidos y transmitidos y el total del tráfico.

Para instalar en Ubuntu basta con usar este comando:

sudo apt-get install cbm

Y para ejecutar el programa basta con teclear el comando cbm.

cbm ubuntu

Los controles del programa son los siguientes:

  • Arriba/Abajo: Estas flechas nos permiten seleccionar una interfaz para ver sus detalles
  • b: Cambiar entre bits por segundo y Bytes por segundo.
  • +: Incrementa el retraso en la recarga de datos en 100ms.
  • : Decrementa el retraso en la recarga de datos en 100ms.
  • q – Salir del programa

Comandos de información del sistema en Linux

Existen una serie de comandos que nos dan información sobre el estado de nuestro sistema operativo Linux. Son los siguientes abajo listados:

  • date: muestra la fecha y hora actuales.
  • cal: muestra el calendario de este mes.
  • uptime: muestra el tiempo que lleva el equipo funcionando.
  • w: muestra quién está en línea.
  • whoami: muestra con qué usuario estás conectado al sistema.
  • uname -a: muestra la configuración del kernel.
  • cat /proc/cpuinfo: muestra información detallada sobre la CPU.
  • cat /proc/meminfo: muestra información detallada sobre la memoria del equipo.
  • man nombre_de_comando: muestra el manual de uso de un comando.
  • df: muestra el espacio usado del disco.
  • du: muestra el espacio usado del directorio.
  • du -sh: muestra el espacio usado del disco en un formato más legible, en Gigas.
  • whereis aplicación: muestra dónde están los binarios, documentación o código de una aplicacion.
  • which aplicación: muestra las rutas de los ficheros que serán ejecutados si llamamos a ejecución dicha aplicación.

Instalar el JDK8 y JDK9 de Java en Ubuntu, Mint o Debian

Si en su día ya habíamos visto en este blog cómo hacerlo con la versión 7, el procedimiento para instalar Java 8 o Java 9 es, básicamente, el mismo:

El primer paso, añadir el repositorio, es común:

#Añadir el repositorio
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update

Con él ya añadido, instalamos la versión 8:

#Buscar y descargar
#los paquetes de java 8
$ apt-cache search oracle-java8
$ sudo apt-get install oracle-java8-installer

Para la versión 9:

#Buscar y descargar
#los paquetes de java 9
$ apt-cache search oracle-java9
$ sudo apt-get install oracle-java9-installer

¿Y cómo definimos cual será la versión por defecto si tenemos las dos instaladas?

#Así por defecto la 9:
$ sudo apt-get install oracle-java9-set-default
#Así por defecto la 8:
$ sudo apt-get install oracle-java8-set-default

Instalar Microsoft ODBC 17 para SQL-Server en Ubuntu 17.10

Una entrada rápida ¿Cómo se instala el driver ODBC 17 para SQL-Server de Microsoft en un equipo con Ubuntu? No es algo muy habitual usar SQL-Server en Linux, pero por si os interes la cosa va así:

sudo su 
curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

#PARA OTRA VERSIÓN
#CAMBIA EL 17.10 DE LA URL
#POR LO QUE CORRESPONDA
curl https://packages.microsoft.com/config/ubuntu/17.10/prod.list > /etc/apt/sources.list.d/mssql-release.list

exit
sudo apt-get update
sudo ACCEPT_EULA=Y apt-get install msodbcsql
# LO SIGUIENTE ES PARA LOS COMANDOS bcp Y sqlcmd
# ES OPCIONAL PERO MUY RECOMENDABLE
sudo ACCEPT_EULA=Y apt-get install mssql-tools
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
# PARA LOS ENCABEZADOS unixODBC
# ES OPCIONAL, PERO DE NUEVO RECOMENDABLE
sudo apt-get install unixodbc-dev

Linux: script para crear usuarios automáticamente con contraseñas aleatorias desde una lista dada en CSV.

Vamos con un script para automatizar tareas. Tenemos un CSV, le llamaremos user.csv, con los siguientes datos: Nombre, Primer Apellido y Usuario. Algo tal que así

Manuel,Garcia,ManuG1
Pedro,Rodriguez,PredroR2
Maria,Abalo,MariaA45
Josefa,Perez,JosefP21
Marta,Rios,MartaR91

La idea del script es la siguiente: recorre el fichero csv y crea a los usuarios con ese nombre y apellido y ese código de usuario. Asigna una contraseña generada de forma aleatoria y redirige la salida a un fichero para poder notificar a los usuarios creados su usuario y contraseña.

#!/bin/bash

OLDIFS=$IFS
IFS=","

while read firstname lastname userid 
do 
     PS=$(openssl rand -base64 12)   
     useradd -c "${firstname} ${lastname}" -p $PS -d /home/"${userid}" -s /bin/bash "${userid}"            
     echo "Usuario: ${userid} - Contraseña: $PS ....." >> resultado.txt 
done < user.csv

La opción de crear los usuarios con contraseña no es recomendable en todos los ámbitos por temas de seguridad, lo he hecho en este caso porque el ejemplo real en el que lo hice lo había requerido así el cliente, pero según la política y el contexto de seguridad no es algo recomendable en todos los casos porque podrían ser vistas por algún usuario no autorizado, así que aunque la generes así es mejor obligar a los usuarios a cambiarla. Para crearlo sin contraseña en la instrucción useradd quita el parámetro -p $PS, la línea de encima que genera el password (que ya sería inútil) y el $PS en la salida.

Mostrar asteriscos en la consola de Mac o de Linux al escribir una contraseña

Una de las cosas que más despistan cuando se empieza a trabajar con la línea de comandos de sistemas operativos basados en UNIX es que al poner una contraseña no se muestra nada. La parte buena es que si tenemos a alguien mirando por encima de nuestros hombros no le damos una pista de la longitud de nuestra contraseña, la mala es que no sabemos si hemos tecleado mal. Pero ¿se puede hacer que muestre unos asteriscos cuando la introducimos? Se puede:

Lo primero, editar el fichero de sudoers:

sudo visudo

Lo siguiente, buscar la línea que pone esto:

Defaults        env_reset

Lo tercero, modificar la línea para que luzca así:

Defaults        env_reset,pwfeedback

Esto funciona en la mayoría de linux modernos y en los Mac con OS X superior al 10.8, así que si quieres esta ayuda visual seguramente podrás disfrutarla.

Linux: crear una contraseña aleatoria simple

Hemos visto un par de formas de generar claves aleatorias en Linux. Vamos a ver otra que no es especialmente compleja. No es lo más seguro para generar una serie de claves aleatorias ni da un resultado especialmente recordable, pero para un apuro te permite salir del paso en la consola cualquier distribución y sin instalar software:

date|md5sum

Tan simple como esto: tomamos la fecha en tiempo UNIX y le aplicamos la función de resumen md5.