Mostrando entradas con la etiqueta Bash. Mostrar todas las entradas
Mostrando entradas con la etiqueta Bash. Mostrar todas las entradas

domingo, 7 de abril de 2013

Como eliminar Headers, Imágenes y módulos antiguos del Kernel


En el terminal se ejecuta el siguiente comando:



dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge


Se ingresa la clave de administrador a continuación:

[sudo] password for carlos:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias      
Leyendo la información de estado... Hecho
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
  dkms rtirq-init
Use «apt-get autoremove» para eliminarlos.
Los siguientes paquetes se ELIMINARÁN:
  libc6-dev* libncurses5-dev* linux-headers-3.5.0-21*
  linux-headers-3.5.0-21-lowlatency* linux-headers-3.5.0-23*
  linux-headers-3.5.0-23-lowlatency* linux-headers-3.5.0-24*
  linux-headers-3.5.0-24-lowlatency* linux-headers-3.5.0-25*
  linux-headers-3.5.0-25-lowlatency* linux-headers-3.5.0-26*
  linux-headers-3.5.0-26-lowlatency* linux-headers-3.7.0-4*
  linux-headers-3.7.0-4-generic* linux-headers-lowlatency*
  linux-image-3.5.0-21-lowlatency* linux-image-3.5.0-23-lowlatency*
  linux-image-3.5.0-24-lowlatency* linux-image-3.5.0-25-lowlatency*
  linux-image-3.5.0-26-lowlatency* linux-image-3.7.0-4-generic*
  linux-image-extra-3.7.0-4-generic* linux-image-lowlatency* linux-libc-dev*
  linux-lowlatency* linux-source-3.5.0* nvidia-current*
0 actualizados, 0 se instalarán, 27 para eliminar y 33 no actualizados.
Se liberarán 1.652 MB después de esta operación.
(Leyendo la base de datos ... 390871 ficheros o directorios instalados actualmente.)

El resto se realiza de forma automática.

Esto no es recomendable en caso de que prefieras guardar versiones anteriores de tu kernel por motivos de seguridad. Por lo mismo, no es aconsejable hacerlo sin tener la certeza de que el actual kernel funciona correctamente.


Fuente: http://ubuntugenius.wordpress.com/2011/01/08/ubuntu-cleanup-how-to-remove-all-unused-linux-kernel-headers-images-and-modules/

miércoles, 6 de enero de 2010

Corrigiendo automáticamente errores de escritura al usar "cd"


Fuente: About.com

Muy útil si sueles cometer errores al escribir el nombre de los directorios:
shopt -s cdspell

Con esta opción pequeñas diferencias en el nombre de un directorio serán corregidas. Los errores controlados son caracteres transpuestos, que falten o que sobren. Si se encuentra un error corregible el nombre correcto se imprime y el comando "cd" procede:
carlos@athlon:~$ cd rocumentos
Documentos
carlos@athlon:~/Documentos$

miércoles, 30 de diciembre de 2009

Definiendo el directorio base que usa el comando "cd" con CDPATH


Fuentes: Linux 101 Hacks, softpanorama.org

CDPATH es una variable similar a PATH y provee una lista de rutas que el comando cd buscará ante cualquier parámetro que entregues como directorio. Por lo tanto, si frecuentemente estás entrando a un subdirectorio puedes configurar la variable CDPATH para que incorpore la ruta del subdirectorio en cuestión, de manera que luego puedes entrar a esa carpeta directamente usando el comando cd sin necesidad de ingresar la ruta completa.

Veamos un ejemplo. Supongamos que frecuentemente necesitas ingresar a la carpeta /etc/X11/cursors. Obviamente no es posible ingresar directamente a X11 desde tu ~/
carlos@carlos-laptop:~$ cd cursors
bash: cd: X11: No existe el fichero ó directorio
carlos@carlos-laptop:~$

Para ello añades el subdirectorio pariente de cursors a la variable CDPATH. El comando es el siguiente:
export CDPATH=[subdirectorio]

En el caso que usamos de ejemplo quedaría:
carlos@carlos-laptop:~$ export CDPATH=/etc/X11
carlos@carlos-laptop:~$ cd cursors
/etc/X11/cursors
carlos@carlos-laptop:/etc/X11/cursors$

Para hacer estos cambios permanentes debes agregar la línea siguiente a tu archivo ~/.bash_profile:
export CDPATH=/etc/X11

Para agregar más de un directorio puedes hacerlo de un modo similar a como modificas tu variable PATH. Los añades a tu ~/.bash_profile separando los subdirectorios por ":"del modo siguiente:
export CDPATH=/etc/X11:/etc:/var

También te recomiendo que la agregues en tu ~/.bashrc. La razón de esta recomendación la puedes ver aquí.

En caso de que tengas un subdirectorio en tu ~/ cuyo nombre sea idéntico a un subdirectorio contenido en la lista de CDPATH el comportamiento del comando cd dependerá de si añadiste o no un slash al final de la ruta del directorio. En caso de que lo hayas hecho el comando cd te permitirá cambiar al subdirectorio local. En caso contrario cambiarás al primer directorio listado en la lista de CDPATH cuyo nombre sea coincidente. En este último caso, para entrar al directorio local debes usar el comando:
cd ./nombre_del_directorio

Así de fácil.

domingo, 25 de enero de 2009

Cómo modificar la variable PATH

Fuente:Bash Reference Manual

Para comenzar es necesario tener una idea general de lo que es el Bash. Me voy a limitar a copiar la definición de Wikipedia, sabiendo que existe infinita información disponible en Internet para quienes deseen informarse mejor:

bash es un shell de Unix (intérprete de órdenes de Unix) escrito para el proyecto GNU. Su nombre es un acrónimo de bourne-again shell (otro shell bourne) — haciendo un juego de palabras (born-again significa renacimiento) sobre el Bourne shell (sh), que fue uno de los primeros intérpretes importantes de Unix.

Ahora bien, cuando introducimos un comando en BASH el sistema busca un archivo con ese nombre en todos los directorios contenidos en la variable PATH. En caso de no encontrarlo se retorna un mensaje de error especificando que el comando no ha sido encontrado. Para saber los directorios contenidos en PATH debes escribir en la consola:
echo $PATH

Te retornará algo como esto:
/usr/local/bin:/usr/bin:/bin:/usr/games/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/lib/qt/bin

Cada ruta de directorio aparece separada por dos puntos (:). En caso de que desees agregar directorios a tu PATH puedes hacerlo de dos formas: La primera los hace válidos por el tiempo que dura tu sesión, la segunda los hace permanentes.

Para el primer caso basta escribir en el terminal:
PATH="$PATH:<ruta nueva1>:<ruta nueva2>:...<ruta nuevaN>"

Supongamos que tenemos un usuario que desea agregar dos carpetas a su PATH, ambas contenidas en ~/: la carpeta Scripts y la carpeta compilados. Tendría que escribir en el terminal:
PATH="$PATH:/home/nombreusuario/Scripts:/home/nombreusuario/compilados"

De esa manera ambos directorios se agregan a su variable PATH. Sin embargo, estos cambios no son permanentes y la próxima vez que el usuario acceda a su cuenta todas las modificaciones se habrán perdido.
Para que los cambios sean permanentes es necesario editar un par de archivos: ~/.bash_profile y ~/.bashsrc

~/.bash_profile
Editar este archivo permite especificar una serie de comandos que se ejecutarán en cuanto el usuario acceda a su cuenta. En caso de que el archivo no exista puedes crearlo. Un ejemplo de lo que contiene este archivo es el siguiente:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

BASH_ENV=$HOME/.bashrc
USERNAME=""
PATH=$PATH:/usr/local/pgsql/bin:/usr/local/sbin:/usr/sbin:/sbin
MANPATH=$MANPATH:/usr/local/pgsql/man
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data

export USERNAME BASH_ENV PATH MANPATH PGLIB PGDATA

Los directorios que aparecen asignados a la variable PATH se sumarán a los directorios básicos que asigna el sistema a todos los usuarios. El archivo .bash_profile se carga cada vez que el usuario realiza un login a su cuenta. Para decirlo de un modo más específico, cada vez que Bash es invocado mediante un login shell interactivo (cuando te logeas con tu password)o mediante un shell no interactivo con la opción --login, primero lee y ejecuta los comandos desde el archivo /etc/profile, en caso de que este archivo exista. Luego de leer este archivo busca los archivos ~/.bash_profile, ~/.bash_login y ~/.profile, en ese orden. La idea es que se ejecutarán los comandos del primero de los archivos que sea encontrado y sea legible. Una vez encontrado este archivo no seguirá buscando los demás, por esa razón es que es preferible asegurarse de trabajar con el primer archivo de la lista.

Nota: ~/ se usa para indicar tu directorio home. Si tu usuario es carlos, por ejemplo, ~/ corresponde a /home/carlos/

Sin embargo, si accedemos a un terminal desde un entorno de escritorio como Gnome, KDE o Xfce, nos encontraremos con que el archivo .bash_profile no es leído. En ese caso, además, debemos modificar el archivo .bashrc


~/.bashrc
Cuando se inicia un shell interactivo que no es un login shell, es decir que no requiere que ingreses a tu cuenta con tu clave y nombre de usuario, Bash lee y ejecuta comandos desde ~/.bashrc, si es que ese archivo existe. Un ejemplo del contenido de este archivo sería el siguiente:

alias ll="ls -al --color"
alias nautilus="nautilus --no-desktop"
alias aterm="aterm -fg white -tr"
export PS1='\u[\W]\$ '
export PAGER="most"
export PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin

Esta última linea contiene los directorios que se sumarán a los que cada usuario tiene por defecto.
De esta manera, editando ambos archivos es posible modificar tu variable PATH.

Por supuesto, existe más de un método de hacer todo lo anterior, es cosa de descubrir la forma que prefieras. Se puede, también, modificar los archivos /etc/profile y /etc/bashrc que corresponden a los archivos ~/.bash_profile y ~/.bashrc, pero que afectan a todos los usuarios. Evidentemente que para modificarlos necesitarás permisos de superusuario.