miércoles, 18 de febrero de 2009

Tips para Linux

Actualizado 17.04.2010
********************************************

COMANDOS BASICOS
COMBINACIONES DE TECLAS
INSTALAR Y/O EJECUTAR PAQUETES Y APLICACIONES
MAS COMANDOS
MONTAJE PARTICIONES
CONFIGURACION DE SISTEMA
INSTALACION DE DISPOSITIVOS

********************************************
COMANDOS BASICOS
********************************************

para ayuda: //anteponer "man" a alguna instruccion
ejemplo:
$ man find //ver ayuda sobre comando find
man man //aprender a usar el manual
man -k texto //busca en las descripciones y titulos de todas las paginas del manual el "texto"

para ingresar texto al shell se usa ' y '.
* para reemplazar cadenas de
para detener un comando en ejecucion: Control+C
--------------------------------------------
>>>> RED >>>>

ping comprueba si hay coneccion con ese ip
nslookup retorna el numero ip asociado al sitio web
ifconfig información de red, direcciones ip
--------------------------------------------
>>>> SISTEMA >>>>

shutdown [hora] ; ej: shutdown 23:32; shutdown -h 60 time (apagar en 60 min)
poweroff apagar la maquina
halt apagar la maquina
reboot reiniciar

fdisk -l Ver Tabla de particiones
df -Th Ver uso de espacio en discos
mount Ver dispositivos montados
mount -a Montar todos(de etc/fstab)
umount /dev/hda1 Desmonta device hda1 (con sudo)

df -m muestra el espacio en los discos (en MB)
free -m ver uso mem ram (-m en MB)
uname -a info del sistema operativo instalado

env muestra las variables de ambiente
export VARIABLE=VALUE setea una variable de ambiente de manera temporal

lshw Muestra información del equipo
hardinfo (gtk) informacion del sistema y el pc. Muy completo
sysinfo (gtk) informacion del sistema

wodim binary.iso Quemar o grabar imagen de Disco iso con el Grabador de Discos.
--------------------------------------------
>>>> ARCHIVOS Y DIRECTORIOS >>>>

pwd //muestra directorio actual
cd //cambia a directorio personal
cd ./home //entra a home desde /
cd .. //sube un direct

ls listar archivos de un dir
ls -a incluir ocultos
ls -l largo con detalles
ls -al ambas cosas
ls -l /dev/disk/by-uuid Mostrar las particiones por su UUID


mkdir /direct //crea el direct
rmdir carpeta //borra carpeta solo si esta vacia

ln -s 'target' name //Crear link simbolico (sin -s es link duro)
ln -s -t 'directorio donde guardar link' 'target' name

mv archivo_origen /destino/nuevo_nombre //mueve y renombra archivo
cp archivo_origen /destino/nuevo_nombre //copia y renombra archivo
cp -rf //copia recursivamente el contenido y pregunta
rm miarchivo //borra
rm -rf miarchivo [ -r :borra recursivamente el contenido | -f : pregunta] //lo borra..

more archivo muestra un archivo en el shell (se sale con q)
less archivo como more pero mejorado (se sale con q)

touch cambio la fecha de los archivos
cat veo el contenido de los archivos o uno varios archivos
split partir ficheros

file fichero indica que tipo de dato tiene el fichero
du /directorio ver peso del dirctorio y todo su contenido

find -name //para buscar un archivo
locate //mejor que find (debe usarse despues de updatedb)
-no se puede especificar el directorio
-busca solo en el nombre , incluyendo en la ruta completa.
updatedb //actualiza el registro de archivos para locate
--------------------------------------------
>>>> BASH >>>>

Completar comandos (los busca en $PATH):
escribir las primeras letras y [tab] 1 o 2 veces:
[tab] ejecuta el comando que coincide en el caso
que exista y sea unico.
[tab][tab] desplega una lista de posibles comandos q coinciden

tambien sirve para autocompletar RUTAS de la misma forma

Historial de comandos:
history muestra las ultimos ~500 comandos tipeados
! ejecuta el comando numero de el historial
! ejecuta el ultimo comando que coincida con
^r cambia el prompt de manera de hacer una busqueda en reversa
(reverse-i-search)`':
escribir el comando y lo completa
presionando ^r seguira buscando sobre el historico en orden inverso

Modificar linea de Prompt:
$PS1 String de prompt primario
$PS2 Strign de prompt secundario

·guardar la actual (respaldo):
SAVE=$PS1
·ejemplos para crear una linea de prompt:
PS1="$ " // $
PS1="\u@\h: \w\$ " // user@host: \ruta_completa$
PS1="\u@\h:\W\$ " // user@host:\directorio$
PS1="\u@ \w\$ " // user@ \ruta_completa$

·Guardar configuracion (agregar variable a ~/.bashrc):
export PS1="\u@ \w\$ "

--------------------------------------------
>>>> PROCESOS >>>>

& colocado al final de la linea de comando ejecuta en segundo plano
top tabla de procesos
ps muestra la lista de procesos del usuario
ps aux muestra la lista de procesos de la maquina
kill mata proceso por ID
killall mata proceso por nombre
time mide el tiempo que tarda un proceso en ejecutarse
fg trae a primer plano un proceso parado o en segundo plano
bg pone un proceso en segundo plano
nice ajusta la prioridad de un proceso de -20 a 19
--------------------------------------------
>>>> PROGRAMAS >>>>

mc navegador de archivos gráfico (en terminal)

nano editor de texto
vi editor de texto
mcedit editor de texto gráfico (en terminal)

yauap reproductor mp3 de terminal (music player)


*********************************************
COMBINACIONES DE TECLAS
*********************************************

MOSTRAR TABLA DE PROCESOS
Ctrl+Esc kde
---------------------------------------
MATAR APLICACION EN KDE
ctrl+alt+esc apuntar y disparar
---------------------------------------
REINICIAR GNOME o KDE sin reiniciar pc
Pulsa 'Ctrl + Alt + Backspace'
-------------------------------------
CAMBIAR A MODO CONSOLA en GNOME?

2. Para cambiar al modo consola
1. Pulsa 'Ctrl + Alt + F1' (F2 - F3)
3. Para volver a GNOME
1. Pulsa 'Ctrl + Alt + F7'
-----------------------------------
ABRIR SESION A TRAVES DE COMANDOS
ctrl+alt+f1 en adelante, sesion en modo consola
ctrl+alt+f7 en adelante, sesion en modo grafico
(pueden tenerse abierta varias veces la misma sesion)

ctrl + alt + left/right //intercambiar escritorio
alt + tab //intercambiar entre ventanas del escritorio
ctrl + tab //firefox. intercambiar tabs
ctrl + '+'/'-' //firefox, gnome-terminal => aumentar/disminuir tama
-------------------------------------------
USO APT-GET y APTITUDE
# apt-get install aplicacion //busca en internet e instala
# apt-get remove aplicacion //desinstala la aplicacion

# apt-get clean //limpia el cache repositorio local de paquetes descargados /var/cache/apt/archives

-----------------------------------------------
ABRIR ARCHIVOS CON UNA APLICACION (DESDE CONSOLA)
$ programa /directorio/archivo

ejemplo editar archivo texto: $kate /home/yo/texto.txt

**************
MAS COMANDOS *
**************

---------------------------------------
COMPROBAR ARCHIVOS USANDO MD5SUM
md5sum retorna la suma md5sum
md5sum -c (--check) compara la suma con la del archivo md5file
---------------------------------------
UNIR ARCHIVOS PDF
pdftk in1.pdf in2.pdf cat output out.pdf
-------------------------------------
AGREGAR NUEVA VARIABLE DE AMBIENTE
export VARIABLE=VALUE setea una variable de ambiente de manera temporal

> editar ~/.bashrc
export VARIABLE=$VARIABLE:valor_adicional:otro_valor
setea la variable conservando el valor anterior
--------------------------------
CONFIGURAR VERSION DE JAVA A UTILIZAR
sudo update-alternatives --config java
--------------------------------
DESCARGAR ARCHIVOS WGET
wget servidor/archivo
--------------------------
COMPRESION ARCHIVOS
rar e //RAR para descomprimir:
tar -cvf archivo.tar ./ //comprime carpeta actual en archivo.tar
tar -xvf archivo.tar //descomprime la carpeta
-----------------------------------------------------------
SSH
-->Conexion:
ssh usuario@direccion.del.servidor.xx
-->Tranferencia archivos: (scp=secure copy), no hay que estar conectados al servidor
scp user@servidor:/carpeta/archivo_ORIGEN /carpeta/local/destino
scp /carpeta/archivo_ORIGEN user@servidor:/carpeta/destino
scp -r ... //para transferir un directorio completo
ejemplo:
scp -r rporras@anakena.dcc.uchile.cl:./Desktop/cc31a /home/rodrigo/ttt

# decargar heroes
scp -r -l 280 rporras@alumnos.dcc.uchile.cl:/temporal/Series/Heroes/Season_2/08 /home/alejandro/Desktop

-->Ver NEWS desde localhost con un lector de noticias
ssh -l rporras -L 7777:news.dcc.uchile.cl:119 anakena.dcc.uchile.cl cat -

-----------------------------------------------------------------------
FORMATEAR PENDRIVE Flash USB memoria (fat)
$ sudo mkfs -t vfat -F 16 -I /dev/sdb
donde sdb es el nombre del device
el pendrive debe estar desmontado umount /dev/sdb

# Modificar la etiqueta (label) del pendrive (fat)
$ sudo dosfslabel /dev/sdb label
-----------------------------------------------------------------------
DD - CREAR IMAGEN DE PENDRIVE (DISCO FLASH USB O UNIDAD DE DISCO) - COPIAR Y RESTAURAR
$ sudo dd if=/dev/sdb of=usb.img # clona todo el disco sdb en usb.img
$ sudo dd if=usb.img of=/dev/sdb # restaura la imagen guardada al disco
-----------------------------------------------------------------------
CAMBIAR A USUARIO ROOT en modo Terminal?

$ sudo -s -H (especifica tu password de usuario)
o
$ su (especifica la password de root)
-------------------------------------------
CREAR PASSWORD ROOT PARA SUDO
$ sudo passwd root
-------------------------------------------
HACER SHELL SCRIPT

se guarda con en formato '.sh'
debe llevar en la primera linea:

#/bin/bash

de ahi en adelante se escriben las ordenes
Comentarios: se parten con #

****************************
MONTAJE PARTICIONES y ISO's
****************************
mount -a montar todo del fstab

PERMANENTE
------------------------------------
Agregar las sgtes. lineas en el archivo /etc/fstab (con editor de texto y como root)
#NTFS modo lectura todos los usuarios
/dev/hda1 /media/win_c ntfs umask=0222 0 0
#NTFS modo escritura (requiere ntfs-3g instalado)
/dev/hda1 /media/windows ntfs-3g defaults,locale=en_US.utf8 0 0
#FAT modo escritura
/dev/hda1 /media/windows vfat iocharset=utf8,umask=000 0 0

TEMPORAL
---------------------------------------
montar xp (ntfs solo lectura) *Ubuntu*
sudo mount /dev/hda1 /media/windows/ -t ntfs -o umask=0222 //1 forma
mount -t ntfs /dev/hda# /media/windows ro,noauto //otra forma
sudo mount /mnt/Disco_C *o* sudo mount /dev/sda1 /mnt/windows/ -t ntfs -o umask=0222 //otra mas

mount /dev/hda? /mnt/ y la particion estara montada (en el caso que no la tuvieras montada la unidad) y ahi te vas a /mnt/ y estaran los archivos de la misma.

MONTAJE DE UN DISCO ISO
sudo mount -t iso9660 -o loop /ruta_imagen/imagen.iso /media/ISO

DESMONTAJE
------------------------
sudo umount /dev/hda1
desmonta el device hda1.

*************************
CONFIGURACION DE SISTEMA
*************************

·CAMBIAR SWAPPINESS (nivel de uso de swap):
ver actual:
cat /proc/sys/vm/swappiness

cambiar:
editar: /etc/sysctl.conf
editar línea: "vm.swappiness=10"

---------------------------------------------------
·CONFIGUAR LOS SERVIDORES DNS:
Editar:
/etc/resolv.conf
(nameserver 192.168.1.1
OPEN DNS: 208.67.222.222 208.67.220.220
VTR 200.83.1.4 200.74.121.11 200.83.1.5

---------------------------------------------------
·CONFIGURAR INTERFAZ DE RED SIN ASISTENTES GRAFICOS
Editar:
/etc/network/interfaces

Para tener red cableada agregar lo siguiente:
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0 #opcional
bradcast 192.168.1.255 #opcional
gateway 192.168.1.1

----------------
·ACTIVAR COMPIZ
$ compiz –replace
$ emerald –replace <– si no aparecen los bordes de las ventanas

-------------------------------------------------
·COMPARTIR INTERNET (como servidor de red local):
ip server: 192.168.0.1
netmask 255.255.255.0

ip cliente: 192.168.0.2 ~ 192.168.0.255 (manual ip fija)
192.168.0.100 ~ 192.168.0.255 (ip variable DHCP)
netmask 255.255.255.0
gateway 192.168.0.1

USANDO FIRESTARTER:
elegir tarjeta que recibe internet y tarjeta que servirá a la red local
activar comparticion de internet
activar dhcp para red local (no se necesita dar manualmente la direccion del servidor al resto de los computadores de la red, sino que la reciben como dhcp, ip variable)

------------------------------------------------------
·CONFIG DE INTERNET:(internet ADSL con tarjeta de red)
pppoeconf
----
si ya te detecto la tarjeta de red

solo abre una consola y escribe pppoeconf y sige los pasos que te salgan en pantalla para configurar tu coneccion :D

----------------------------------------
GRUB

CAMBIAR SIST. OPER. POR DEFECTO EN GRUB

editar: /boot/grub/menu.lst
default 0
//cambiar 0 por la posicion del SO. El numero aumenta cuando hay una linea con 'title', partiendo desde 0.

ADMINISTRANDO GRUB (v 1):

ejecutar grub como root (version 1):
grub> find /boot/grub/stage1 //busca todas las particiones con grub instalado.
grub> root (hd0,1) //selecciona en root una particion
grub> setup (hd0) //instala el grub (desde el root) en la particion (hd0 es MBR)

********************
ESCRITORIO
********************



****************************
INSTALACION DE DISPOSITIVOS
***************************

Instalar tarjeta NVIDIA GeForce 7000M (Acer Aspire 4520):

Usando instalador:

descargar el ultimo driver desde nvidia (driver.run)
cambiar a terminal (runlevel 1) (ctrl+alt+F1)
matar gdm (puede ser necesario desinstalar gdm si molesta mucho):
/etc/init.d/gdm stop (PCLinuxOS: /etc/pam.d/gdm)
ejecutar driver
levantar gdm:
/etc/init.d/gdm start
reiniciar.

Usando repositorio (>= ubuntu 9.10):

sudo add-apt-repository ppa:nvidia-vdpau/ppa #agrega repositorio de nvidia
sudo apt-get update
sudo apt-get install nvidia-190-modaliases nvidia-glx-190 nvidia-settings-190

---------------------------------------------------------
Instalar ESCANER BENQ 3300u
firmware = u176v046.bin

SUSE:
Agregar el escaner en yast o sistema, despues editar el archivo:
/etc/sane.d/snapscan.conf y en la linea que dice:
firmware /ruta/archivo.bin
reemplazar la ruta por la del firmware.

UBUNTU:
Instalar xsane
Copiar el firmware en /usr/share/sane/snapscan/ (recomendado)
Editar /etc/sane.d/snapscan.conf y en la linea que dice:
firmware /ruta/archivo.bin reemplazar la ruta del firmware.
--------------------------------------------
Instalar impresora XEROX PHASER 3116 (en suse 10)

Prender y conectar la impresora de modo que el sistema la reconozca como nuevo dispositivo.
ir a Yast -> Agregar impresora -> elegirla -> elegirle como driver el de la impresora SAMSUNG LM-1710
(esto porque no hay driver de xerox phaser para linux)
--------------------------------------------------------------------------
VIRTUALBOX: INSTALACION DE MAQUINAS VIRTUALES (VIRTUALBOX SUN no open source edition)

Repositorio de virtualbox:
deb http://download.virtualbox.org/virtualbox/debian intrepid non-free
o descargar el .deb

USAR DISPOSITIVOS USB desde linux:

- Despues de instalar agregar el usuario a vboxusers:
sudo gpasswd -a YOURUSERNAME vboxusers
- Encontrar devgid para vboxusers
grep vboxusers /etc/group
- Retornará algo así: vboxusers:x:125:username (en este caso devgid=125)
- Agregar la sgte línea a /etc/fstab:
none /proc/bus/usb usbfs devgid=125,devmode=664 0 0
- Reiniciar

Luego conectar el dispositivo
En VirtualBox seccion USB, agregar filtros para los dispositivos conectados.
-----------------------------------------------------------------------------------
QEMU: EJECUCION DE MAQUINAS VIRTUALES

USANDO ISO:
qemu -m 256 -cdrom binary.iso

USANDO USB/HDD
qemu -hda binary.img

-m MegaBytes de RAM