sábado, 17 de diciembre de 2016

Cambiando el prompt de mi lxterminal

Me gusta lxterminal por que es liviana además que tiene características de configuración muy agradables (colores, opacidad , fuente, tamaño de fuentes..) , además de la facilidad de copiar y pegar y de poder tener varias pestañas en una misma ventana.

hoy tuve la necesidad de cambiar el prompt ya que el path era muy largo y no me dejaba ver la sentencia que estaba escribiendo aun que maximice la ventana de la lxterminal me resultaba incomodo tener el path tan largo.

Las sentencias que cambia el prompt en linux esta configurado en una variable del sistema que se denomina PS1. si quiere ver lo que almacena actualmente la variable PS1, abra una terminal y digite la sentencia.

echo $PS1

Esta carpeta almacena sentencias de escape: Esta es la combinaciones de caracteres que consisten en una barra diagonal inversa (\) seguida de una letra o una combinación de dígitos.

Estas son las sentencias mas comunes

  • \a un caracter ASCII de ring
  • \d la fecha actual en formato "dia_sem mes día", "dom nov 18"
  • \e un caracter ASCII de escape
  • \h el nombre del equipo hasta el primer ., ejemplo linuxtotal de linuxtotal.com.mx
  • \H el nombre del equipo
  • \n nueva línea (salto de linea)
  • \r retorno de carro, enter
  • \s el nombre del shell
  • \t el tiempo actual en formato de 24 horas HH:MM:SS
  • \T el tiempo actual en formato de 12 horas HH:MM:SS
  • \@ el tiempo actual en formaro de 12 horas con am/pm
  • \u el usuario actual
  • \v la version de bash
  • \V el número de release de batch, versión + parche
  • \w el directorio de trabajo actual, path
  • \W el nombre del directorio actual
  • \! el número en el historial del comando
  • \# el número de comando de este comando
  • \$ si el usuario es root (UID=0) se indica un '#', un usuario normal '$'
  • \\ diagonal
  • \[ inicio de una secuencia de caracteres no imprimibles
  • \] fin de la secuencia de caracteres no imprimibles

Puede cambiar el prompt desde la terminal para la sección actual cuando cierre y abra de nuevo la terminal volverá al predeterminado esto lo logra poniendo la siguiente sentencia en la terminal

$PS1="\h:\w \n\u@\$"

como verán las comillas son necesarias en la sentencia  y el carácter $ es necesario antes de PS1, ya que eso le indica al sistema que es una variable a la que se le asignara ese valor.

si quiere cambiar permanentemente el prompt para no estar modificando cada ves que ingrese modifique el archivo /home/usuario/.bashrc con su editor de texto preferido y cambie la linea siguiente


if [ "$color_prompt" = yes ]; then

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

else

   PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w \$ '

fi

En mi caso lo de la siguiente manera


if [ "$color_prompt" = yes ]; then

    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\n\$ '

else

   PS1='${debian_chroot:+($debian_chroot)}\h:\w \n\u@\$ '

fi
lo que hice fue agregar una linea nueva después de que aparezca el path. y me se visualiza asi:


Bueno espero les sirvan a los que requieran cambiar el prompt, pruebe cambiar las sentencias en la terminal asta que encuentre el prompt que requieran y una ves lo tengan hágalo permanente, modificando el archivo  .bashrc.



Algunas cosas que hago despues de instalar Debian desde cero

Siempre que instalo Debian desde cero me tengo la necesidad de buscar las cosas que hice para configurarlo e ver los programas mas habituales para instalar y me quita tiempo andar buscando por lo que decidí hacer esta entrada para que me sirva en la próxima instalación, bueno a darle a la configuración

Primero que nada instalo Debian limpio solo con el sistema base y sin acceso a internet para que no se dilate en la instalación.

Segundo procedo con configuración básica para la instalación de paquetes.

Revisión de las interfases que contiene el equipo, Para esto me logueo como root (#).

#ifconfiga -a 
O
#ip a 


Procedo a configurar la interfaz que utilizare para actualización del sistema e instalación de los paquetes.

# nano /etc/network/interfaces

la interfase que utilizare es eth0 así que la configuración me quedara de la siguiente manera

# The loopback network interface 

auto lo 
iface lo inet loopback 

#interfas a eth0 
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Guardo el archivo /etc/network/interfaces y reinicio la interfases de red
# /etc/init.d/networking restart

y procedo a configura el /etc/apt/sources.list para especificar los repositorios a utilizar. En mi caso uso los repositoris unestables (sid) y me queda de la siguiente manera.

# nano /etc/apt/sources.list

#debian 
deb http://ftp.us.debian.org/debian/ sid main contrib non-free

#multimedia 
deb http://www.deb-multimedia.org sid main non-free

Guardo el archivo /etc/apt/sources.list y reinicio la interfases

Configuro el uso de RAM y memoria de intercambio modificando el archivo /etc/sysctl.conf considerando la cantidad de memoria RAM que dispongo. Si tengo menos de 3gb de ram pero no menos de 2gb dejo la configuración swappiness=30 pero si tengo 4gb o mas swappiness=10 procedemos de la siguiente manera


#nano /etc/sysctl.conf

Modificamos o agregamos la linea vm.swappiness dejando de la siguiente manera según la RAM vm.swappiness=10

Guardamos y modifico el /etc/fstab dependiendo de la memoria, disco duro y particiones que tenga.

#nano /etc/fstab

Si tengo mas de 4gb de memoria y tendo un disco duro hd entonces configuro para que los archivos temporales se vallan a memorio agregando la linea
 tmpfs  /tmp tmpfs defaults,noatime,mode=1777,size=2G 0  0
Pero si tengo un disco ssd o menos de 4gb de memoria omito la linea anterior. Si tengo una partición ntfs primero busco el UUID de la siguiente manera

# blkid
/dev/sda5: UUID="2C0000BBCF13F706D1" TYPE="ntfs" PARTLABEL="datos" PARTUUID="1c9bc98b-fc05-4a9e-ad8b-ae89ac7061fe"
una ves que tenga reconocido el UUID de la partición con el formato ntfs y queda la linea de la siguiente manera. 
UUID= 2C0000BBCF13F706D1     /media/wdatos     ntfs-3g  auto,rw,users,umask=000   0   0
Guardamos el archivo /etc/fstab y para que los cambios sean efectivo reinicio el equipo.

Tercero procedo a la actualización del sistema.

#apt update

Instalo el key de deb-multimedia para poder actualizar el repositorio www.deb-multimedia.org

# apt install deb-multimedia-keyring

En una ocasión me decía que no existía el paquete y tuve que descárgalo directo de http://deb-multimedia.org/pool/main/ y después procedí a instalar de la siguiente manera.

 
#dpkg -i deb-multimedia-keyring_2016.8.1_all.deb 

una ves que esta instalado el key procedo a actualizar
 
#apt update
#apt install apt-listchanges apt-listbugs
#apt full-upgrade

Actualizo las veces que sean necesaria apt full-upgrade Cuarto procedo a la instalación de paquetes según mis necesidades, en mi caso uso mas paquetes de programación y diseño. Escritorio Me gusta mas cinnamon pero dependiendo de la cantidad de memoria en el equipo así he tenido que instalar el escritorio,  cuando tengo menos de 4gb de RAM instalo XFCE o LXDE, en una ocasión instale JWM en un equipo viejo que tenia 64mb ram.

Bueno procedo a instalar el escritorio con lo basico para que inicie con lo que yo utilizo

#apt install xservers-xorg slim cinnamon-core plank rox-filer lxterminal lxtask gparted sysv-rc-conf

Instalo lxterminal por que me resulta mas amigable que la que instala cinnamon que es gnome-terminal si no especifico la terminal la se instala automáticamente gnome-terminal, como gestor de usuario instalo slim por que consume menos recursos y es un paquete que solo lo ves al iniciar y después no lo vuelves a ver así que no busco uno picoton si no uno que no me consuma mucha RAM. Sysv-rc-conf lo instalo para configura los servicios que se cargan después de la instalación del escritorio ya que se instalan algunos servicios que no los utilizo como el caso saned. En algunos equipos me pide instalar firmware para ello busco el firmware que necesita el equipo y lo instalo en mi caso me pidió el realtek

#apt install firmware-realtek

Basicos de compilacion
Paquetes básicos necesarios para compilar aplicaciones o drivers

#apt install linux-headers-$(uname -r) build-essential  module-assistant checkinstall make automake cmake autoconf git git-core cmake subversion automake 

Herramientas de compresión/descompresión


#apt install file-roller p7zip-full p7zip-rar rar unrar zip unzip unace bzip2 arj lhasa jlha-utils lzip

Multimedia
Para la reproducción de DVDs hay que instalar un paquete que está en el repositorio multimedia.

#apt install libdvdcss2

Reproductores multimedia


#apt install parole vlc audacious recordmydesktop gtk-recordmydesktop

Herramientas multimedia
#apt install brasero brasero-cdrkit soundconverter acetoneiso

Codec
#apt install libav-tools libavcodec-extra libavcodec-extra57 ffmpeg libavcodec57 libavdevice57 libavfilter6 libavformat57

Codec propietarios vantantes viejos
Para los sistemas de 64 bits:
# apt install w64codecs

Para los sistemas de 32 bits:
# apt install w32codecs

Paquetes gestion de grafico
#apt install gimp  inkscape ink-generator scribus gimp-plugin-registry gimp-texturize gimp-data-extras gimp-gap darktable rawtherapee sweethome3d libreoffice gpaint gpicview evince gnome-screenshot

Ide de lenguajes de programacion
#apt install netbeans gambas3 bluefish glade lazarus qtcreator geany anjuta ninja-ide

Internet


#apt install firefox-esr firefox-esr-l10n-es-es deluge amule icedove icedove-l10n-es-es midori

Herramientas


#apt install catfish hardinfo testdisk gufw gparted bleachbit gdebi synaptic lm-sensors conky wine virtualbox virtualbox-guest-x1 virtualbox-ext-pack virtualbox-guest-additions-iso gigolo manpages-es-extra cryptkeeper dkms rsync grsync gnome-commander aptoncd testdisk foremost autopsy

Finalizado la instalación de los paquetes de herramientas detectar los sensores para iniciar al conky

#dpkg-reconfigure locales
#sensors-detect

Oficina tipografías
#apt install libreoffice libreoffice-l10n-es abiword gnumeric ttf-mscorefonts-installer fonts-freefont-otf
#fc-cache -fv

Otros de interes


#apt-get install menulibre
#apt-get install geary

Espero les sirva a otros y bueno me gustaría su comentario 

domingo, 5 de junio de 2016

Aprovechando equipos viejitos con servidor web ligero (Lighttpd) en Debian

Tengo un equipo viejo pero viejo re viejo, que lo utilizaba como pisa papeles, un día se me ocurrió entrar a la programación en java con un servidor de base de datos relacional como mysql, como se que Linux no necesita mucho recursos pues decidí aprovechar el equipo viejo las cuales tiene las siguientes característica:

Pc ACER S series
Procesador 486  400MHZ
RAM           128 MB
DiscoDuro      3.5 GB

Al instalar el servidor de base de datos necesitaba un cliente de base de datos amigable y pense en phpmyadmin, pero para eso necesitaba un servidor web y por las características del equipo un servidor web ligero. ahi entra el servidor Lighttpd

Bueno procedemos con la instalación 

#aptitude install lighttpd

Asta ahi ya tenemos un servidor web sencillo que atiende html, pero no atiende php no trabajaría phpmyadmin a como tenemos el servidor necesitaríamos protocolo para interconectar programas interactivos con el servidor para los cuales instalaremos php5-cgi y php5-curl.

#aptitude install php5-cgi php5-curl

Abilitamos la funcion de php5-cgi ,Editamos el archivo /etc/php5/cgi/php.ini y reemplazamos la línea:


cgi.fix_pathinfo=0  

por:

cgi.fix_pathinfo=1

Habilitamos el módulo mod_fastcgi en lighttpd ejecutamos la siguiente sentencia:

#nano /etc/lighttpd/lighttpd.conf
agregamos la linea

fastcgi.server = (".php" => (("bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))
 Guardamos y ejecutamos
#lighty-enable-mod fastcgi

Reiniciamos lighttpd para que los cambios tenga efecto con la siguiente sentencia

#/etc/init.d/lighttpd restart

Asta aqui ya tenemos trabajando el servidor web habilitado para que de soporte a php.

Ahora una configuraciones  necesarias para la administración del servidor editamos de nuevo lighttpd.conf

#nano /etc/lighttpd/lighttpd.conf
nos aseguramos que estén la siguientes lineas
server.document-root        = "/home/usuario/www"

server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )

server.errorlog             = "/var/log/lighttpd/error.log"

index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )

  • Por defecto en Debian el Document Root se encuentra en: /var/www. aqui son almacenadas las paginas web, para evitar estar dando permisos de root es recomendable direccionar a la carpeta de usuario.
  • Por defecto los logs se encuentran en: /var/log/lighttpd, y son rotados semanalmente.
Adicionalmente es conveniente saber que
  • Las configuraciones adicionales disponibles se encuentran en /etc/lighttpd/conf-available/.
  • Las configuraciones adicionales habilitadas se encuentran en /etc/lighttpd/conf-enabled/.
  • Podemos habilitar una configuración disponible mediante el comando lighttpd-enable-mod nombremod que creará un enlace simbólico en la carpeta conf-enabled apuntando al archivo correspondiente de conf-available.
  • Podemos deshabilitar configuraciones adicionales con lighttpd-disable-mod nombremod.
Para tener el servidor web ya esta todo pero como la idea principal era dar uso a phpmyadmin hay que instalarlo con la siguiente sentencia

#aptitude install phpmyadmin
Se responde a las pantallas que irán apareciendo y listo.


Instalacion y configuración de Slim en debian


Buscando un administrador de session minialiesta me encontre con Slim, muy bueno por cierto amigable para la configuración, no muy vistoso , pero me dije en todo el tiempo que utilizo la computadora Slim solo lo veo en el inicio despues no lo veo asta el proximo arranque de la PC, asi que no me afectara lo poco vistoso de Slim si me ahorro unos kb de RAM

Iniciamos



aptitude update aptitude upgrade aptitude install slim 

una ves instalado procedemos a configurar para eso editamos el archivo /etc/slim.conf

leafpad /etc/slim.conf //utiliso leafpad en ves de nano por que me es mas amigable al copiar y pegar

# Ruta al servidor X y argumentos (si es necesario)
# Nota: -xauth $authfile es automáticamente añadido
default_path /bin:/usr/bin:/usr/local/bin
default_xserver /usr/bin/X
#xserver_arguments -dpi 75

# Comandos para apagar, conectarse, etc.
halt_cmd /sbin/shutdown -h now
reboot_cmd /sbin/shutdown -r now
console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
#suspend_cmd /usr/sbin/suspend

xauth_path /usr/bin/xauth
authfile /var/run/slim.auth

# Activar el bloqueo numérico cuando slim se inicie. Valores válidos: on (activar) |off (desactivar)
# numlock on

# Ocultar el cursor del ratón (nota: no funciona con muchos administradores de ventanas).
# Valores válidos: true (activar) |false (desactivar)
# hidecursor false

# Este comando es ejecutado después de conectarse.
# usted puede añadir las variables %session y %theme
# para la ejecución de comandos específicos en .xinitrc
# dependiendo de la sesión y tema elegidos.
#
# NOTA: si su sistema no tiene bash usted necesita ajustar
# el comando de acuerdo con su shell preferido,
# i.e. for freebsd use:
# login_cmd exec /bin/sh - ~/.xinitrc %session
login_cmd exec /bin/bash -login ~/.xinitrc %session

# Comandos a ejecutar al iniciar y terminar una sesión.
# Estos pueden usarse para registrar una sesión X11 con
# sessreg. Usted puede utilizar la variable %user

# sessionstart_cmd some command
# sessionstop_cmd some command

# Iniciar en modo daemon. Valores válidos: yes (sí) | no
# Tenga en cuenta que esto será sobreescrito con la
# opción de línea de comando, "-d"
# daemon yes

# Directorio de sesiones disponibles .
# El actual nombre de sesión es reemplazado en el login_cmd
sessiondir            /usr/share/xsessions/

# Ejecutado cuando se presione F11 (requiere imagemagick)
screenshot_cmd import -window root /slim.png

# mensaje de bienvenida. Variables disponibles: %host, %domain
welcome_msg Bienvenido a %host

# mensajes de apagado y reinicio
shutdown_msg El sistema se está apagando...
reboot_msg El sistema se está reiniciando...

# usuario por defecto
#default_user simone

# Enfocar la pantalla de contraseña en el inicio cuando el parámetro 'default_user' esté activado.
# Ajustar a "yes" para activar esta opción. Valores válidos: yes (sí) | no
#focus_password no

# Acceso automático para el usuario por defecto (sin tener que escribir
# la contraseña). Ajustar a "yes" para activar esta opción. Valores válidos: yes (sí) | no
#auto_login no

# tema actual, utilizar una lista separada por comas, para una carga
# aleatoria de los temas.
current_theme default

# Archivo de bloqueo
lockfile /var/run/slim.lock

# Archivo log
logfile /var/log/slim.log
Combiene modificar las sentencias al gusto claro

welcome_msg         Welcome to %host
# numlock on
# hidecursor false
sessiondir            /usr/share/xsessions/
#default_user simone#focus_password no
current_theme default

En mi caso modifique las siguientes sentencias, lo que hace que en la pantalla de slim en ves de Welcome to host.. me aparesca Bienvenido host, que en ves de que me pregunte por el nombre de usuario solo me pregunte por la clave del usuario y que me presente un thema mas a mi gusto

welcome_msg         Bienvenido %host
default_user myusuario
focus_password yes
current_theme debian-lines
Los temas que se instalan por defecto se encuentra en  /usr/share/slim/theme, los listo a continuacion:
debian-joy    debian-moreblue        debian-spacefun
debian-lines  debian-moreblue-orbit  default
si tiene varios gestores de escritorios instalados para definir el predeterminado edite los archivos de ejecucion que se encuentra en /usr/share/xsessions/ los que pudieran ser xfce.desktop, cinnamon.desktop etc..... en mi caso tengo cinnamon como predeterminando por el cual el contenido del archivo cinnamon.desktop lo tengo asi:

[Desktop Entry]
Name=Default Xsession
Comment=This session logs you into Cinnamon
Exec=cinnamon-session-cinnamon
TryExec=/usr/bin/cinnamon
Icon=
Type=Application


como podran ver name espesifico que es el gestor de escritorio que slim tome por defecto.


martes, 10 de mayo de 2016

Como cambiar la etiqueta enp1s0 a las etiquetas originales eth0 de insterfas de red

Instalando Debian stretch me encontré que la etiqueta de interfase de red eth0 había sido cambiada por enp1s0, lo cual el sistema Systemd introdujo predecibles de interfaz de nombres de red, que asigna automáticamente los nombres estáticos a los dispositivos de red.


Las interfaces son ahora en el prefijo (ethernet), WL (WLAN), o ww (WWAN) seguido de un identificador generado automáticamente, creando una entrada como enp1s0.

Para regresar a las etiquetas eth0 o la que ya estamos acostumbrados a usar desactivamos esa conducta con el parametro net.ifnames = 0 en el archivo de configuracion del grub /boot/grub/grub.cfg

#nano /boot/grub/grub.cfg

Cambiamos la linea GRUB_CMDLINE_LINUX_DEFAULT="quiet " por GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames = 0" . guardamos actualizamos grub.

#update-grub

Reiniciamos el equipo y editamos el archivo de interfaces /etc/network/interfaces, quedando de la siguiente manera


#nano /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

Guardamos, reiniciamos los servicios de red y verificamos

# /etc/init.d/networking restart
#ifconfig



Con eso ya tenemos las etiqueta de interfaces de red como debe ser, para verificar que etiqueta están disponibles si tiene mas de una conexión de red ejecute la siguiente sentencia

ifconfig -a

domingo, 8 de mayo de 2016

Cuando las unidades extraibles usb las monta como solo lectura

Estaba respaldando una información en una memoria usb (pandrive) y resulta que me manda un mensaje de error "unidad de solo lectura", utilizo Debian Sid con el entorno de escritorio xfce. la falla pensaba que le correspondía a a thunar o a xfce en el modulo que monta automáticamente las unidades extraíble.

Revisando por la red recordé que las memorias usb están en formato ntfs y que no tenia instalado controlador para ese formato procedí a instalar el controlador ntfs-3g y listo ya puedo leer y escribir las pendrive.

instalación


# apt-get install ntfs-3g

Desmonte y cierren el thunar, vuelvan a insertar el pendrive y todo tiene que marchar bien

saludos

Cambiando el prompt de mi lxterminal

Me gusta lxterminal por que es liviana además que tiene características de configuración muy agradables (colores, opacidad , fuente, tamaño ...