Contenido relevante:
SCJP: Intro, cap1, cap2, cap3, cap4, cap5, cap6, cap7, cap8
Eclipse: Instalacion, Primer error, Mas...
Linux: Adm archivos, User, Com, Compresion, RAID, Compiz, Mas...
Java: Instalacion JDK (Java), Mas...

SCJP - Sun Certified Java Programmer - Tips

En estas entregas, voy a poner tips que resumi de este libro.
(Mas que recomendable!)

Author: Bert Bates, Kathy Sierra
Publisher: McGraw-Hill Osborne
ISBN-10: 0072253606
ISBN-13: 9780072253603


Mi idea no es que con esta info puedan dar el examen, pero si un repaso luego de haber estudiado, es solo un RESUMEN.

Me lo hice para mi, y pensé en "porque no compartirlo?" (puede no ser muy "técnico" u "objetoso" al principio.)

Son datos rápidos de que no me tengo que olvidar en el momento de la certificación.
Es un gran trabajo hacer este resumen, espero que les sea util, luego publicare mi score a ver si realmente me sirvió :)

Ni se les ocurra mencionar la orto grafia!, si pueden criticar y mejorar errores de concepto y demases.

Sin mas, estos son los capitulos:
Capitulo1: parte 1, parte 2, parte 3, parte 4, parte 5

SCJP C1P5: Declaracion de variables/metodos y acceso (2)

Capitulo 1, parte 5
viene de:
parte 4

Variables "Final":
No se pueden modificar, son CONSTANTES.
final class Food ... no se puede heredar.
final void method()... no se puede sobreescribir
final int size = 40; ... no se puede cambiar

Variables Transient:
Solo se aplica a variables de instancia.
ver capitulo 6

Variables Volatile:
solo se aplica a variables de instancia.
ver capitulo 9

Static variables:
Lo que se puede declarar con el modificador static:
Methods
Variables
Clases anidadas
Initialization blocks

Que NO se puede declarar static:
Constructores (ya que solo se utiliza cuando se instancia la clase al que corresponde)
Classes (que no esten anidadas)
Interfaces
Metodos locales dentro de inner classes
Local variables


Enum:
Es un "tipo" de clases especializada para contener constantes enumeradas.
declaracion:
enum numeros {UNO, DOS, TRES};
solo se puede declarar fuera de una clase o dentro como variable de instancia (nonlocal)
es opcional el punto y coma final.

Tambien puede tener constructor y miembros, de la misma manera que una clase comun.


CAPITULO UNO FINALIZADO, ENHORABUENA SI LEISTE TODOS!!!

SCJP C1P4: Declaracion de variables/metodos y acceso

Capitulo 1, parte 4
viene de: parte 3

Constructor:
* Nunca devuelven tipo
* Mismo nombre que la clase
* Modificadores: public o private
(Luego lo veremos mas en detalle)

Declaracion de variable:
Variables tipo primitivas: 8 tipos, de las cuales seis son numéricas
Variables tipo Referencias: Objects y todo lo que heredan de este (o sea, todos)

Rangos:

Type
Bits
Bytes
Minimum
Maximum
byte
8
1
-128
127
short
16
2
-32768
32767
int
32
4
-2147483648
2147483647
long
64
8
-263
263 -1
float
32
4
n/an/a
double
64
8
n/a
n/a

Variable Argument Lists (var-args) (lista de argumentos variables):
Con esta implementacion, a partir de java 5, se puede enviar por medio de un argumento un numero indeterminado de objetos del mismo tipo.
Reglas:
* Tiene que ser de un tipo o primitiva
* Se utiliza tres puntos seguido en la declaración "..."
* Puede haber otros parámetros en los argumentos del metodo
* Solo un parámetro de este tipo
* Tiene que ser el ultimo parámetro
Ejemplo:
abstract void pepe2(int a, String... b);
(Luego lo veremos mejor)

Variables de instancia:
Son las variables de la clase, también son conocidas como "field", "attribute" y "properties".
* Se puede usar cualquier modificador de acceso
* Solo pueden utilizar un modificador de no-acceso: final, transient, static
* No se pueden utilizar modificadores de no-acceso: abstract, syncronized, strictfp, native

Variables locales:
Son aquellas que se declaran dentro de algún método, no se puede utilizar la mayoría de los modificadores, solo final.
Estas variables no se almacena en la memoria heap, solo en el stack (hasta que termine el bloque donde se declaró)

Modificadores posibles:
Local Variables
Variables (non-local)
Methods
final
final
public
protected
private
static
transient
volatile
final
public
protected
private
static
abstract
syncronized
strictfp
native


Tecnicas:
shadowing: utiliza el mismo nombre una variable local que una de instancia, y se utiliza solamente en ese mismo metodo,
ejemplo:
class testServer{
int count = 9;
public void login(){
int count = 10;
system.out.println("count "+ count);
}
}

this: para referirse a una variable de instancia o local y no de argumento, se "debe" utilizar la palabra this, que también le da mejor legibilidad al código,
ejemplo:
class testServer{
int a;
public void setA(int a){
this.a = a;
system.out.println("a: "+ a);
}
}


Array:
Coleccion de objetos del mismo tipo "empaquetados" en una variable y con un indice
Thread[] thread; //valido
Thread thread[]; //valido pero feo
thread = new Thread[3]; // prepara espacio ("alloca") para 3 elementos
thread[1] = new Thread(); // para crear las instancias

Thread[] thread2 = {new Thread(),new Thread()}; //valido 2 elementos nuevos, crea el array y las instancias

Thread[] thread3 = new Thread[]{new Thread(),new Thread()}; //valido, pero no se suele usar

pueden tener mas de una dimencion, o sea arrays de arrays
String[][] variosNombres;

* No se puede "allocar" memoria anticipadamente, esto no ese puede hacer: Thread[3] threads;


NOTA: De todas maneras se recomienda utilizar clases del tipo Collection, que luego veremos en detalle.

continua en: parte 5

SCJP C1P3: Declaracion de interfaces

Capitulo 1, parte 3
viene de: parte 2


Declaración de interfaces

Una interfaz es un contrato, no dice como va a hacer, simplemente se especifica los requerimientos.
Es 100% abstracta, no se define nada, es solo declarativa

* Todos los métodos de las interfaces, implícitamente son públicos y abstractos, no es necesario declararlo
* Todas las variables definidas deben ser public, final y static, o sea, solo puede tener constantes
* Los métodos no pueden ser static, final, strictfp o native
* Una interfaz puede extender de una o varias interfaces
* Una interfaz no puede implementar otra interfaz o clase
* Se declara con la palabra "interface"
* Los tipos de interfaz pueden ser polimorficas

Declaracion de miembros de clase
Access:
Igual que los modificadores de clases, pero para los métodos hay un modificador mas: "protected", en interfaces no.
Public, protected, default, private

Protected
Es igual a default, con la salvedad de que no es visible desde otros packages, solo son visibles si se esta heredando. En otras palabras los métodos protected solo son visibles por medio de la herencia, o desde el mismo package, usado para declarar metodos que tienen funcionalidad solo a travez de la herencia.

Es recomendable usar la metodología de los beans (atributos = setters/getters)
Los metodos privados de una superclase "no se pueden" sobreescribir

Nonaccess:
Final, Abstract, Syncronized, Native, Strictfp
Final: Prohíbe sobrescribir el método (también se pueden usar final en la linea de la declaración de un método, como argumento de una variable)
Abstract: SOLO se utiliza en clases abstractas y no contiene implementacion, con esto se fuerza a que las clases que extienden deban implementar dicho metodo.
Algo a tener en cuenta es que como no lleva implementacion, la declaración es sin llaves y termina con punto y coma
abstract void pepe2();
Syncronized: Este modificador fuerza a que solo un thread a la vez pueda acceder a dicho método.
Native: Con este modificador se puede codificar en C y compilar a nivel maquina, no maquina virtual.
Strictfp: Fuerza a que se utilize la norma IEEE754 para los cálculos con coma flotante (float)

continua en: parte 4

SCJP C1P2: Declaracion de clases

Capitulo 1, parte 2
viene de: parte 1

Declaracion de clases
Nomenclatura:
* Solo puede haber un clase publica por archivo
* Los comentarios pueden estar al comienzo o al final del archivo
* El nombre del archivo debe coincidir con el nombre de la clase public
* La linea del package debe estar en la primera linea, arriba de todo el codigo.
* Puede contener varias clases no publicas
* Los imports deben estar debajo del package y arriba de la declaración de la clase
* Los imports y el package son para todo el archivo sin importar cuantas clases contenga
* Las clases no publicas no deben tener el mismo nombre del archivo

Modificadores:
De acceso: default, public, protected, private
De no-acceso: strictfp, final, abstract
De acceso:
Default: sin ningun moficador de acceso explicito, solo permite acceso al package donde se encuentra, y solo en ese nivel.
Public: acceso desde cualquier package, se encuentra en el JU (java universe)
Luego detallare los otros modificadores de acceso.

No-acceso:
strictfp: utiliza una norma IEEE754 para numeros flotantes
final:Se utiliza para no permitir herencia de la clase
abstract: nunca se inicializa, su unica razon de ser es, para que se pueda heredar de ella, para representar "cosas" genericas que todos los descendientes deberian implementar/tener

tip: cuando se declaran metodos en una clase abstracta no deben tener llaves (si es que no tiene contenido)
tip: Las clases abstractas pueden tener metodos abstractos, las clases concretas no pueden tenerlos.

no se pueden marcar con abstract y final modificadores a la vez

Continua en: parte3

SCJP C1P1: Convenciones, Identificadores y propiedades

Capitulo 1, parte 1:

***
Declaracion y control de acceso
***

Identificadores (variables) y JavaBeans


* Las variables deben comenzar con letra o caracter $ o _
* Después del primer carácter, puede contener cualquier combinación de letras o caracteres: $ _ numéricos
* No hay limites de caracteres para los nombres de las variables
* No se pueden usar keywords de java (plabras reservadas)
* Los nombres de las variables son case sensitive

Convenciones de sun:
Usar la tabulacion para las estructuras de código
Utilizar camelCase: Cada palabra concatenada su primera letra debe estar en mayuscula.

Classes:
* Primera letra debe ser mayúscula, luego utilizar camelCase.
* Suelen ser sustantivos

Interfaces:
* Suelen ser adjetivos, casi siempre en ingles termina con "ble"
Ejemplo:
Runnable
Serializable

Metodos:
* Primera letra en minúscula, luego camelCase
* Suele ser verbo-sustantivo
Ejemplo:
getBalance
doCalculation
setCustomerName

Variables:
* Primera letra en minúscula, luego camelCase
* nombres lo mas corto posible, pero que tenga un buen significado, pensar en utilizar combinaciones de nombres que sean facil de recordar.

Constantes:
* nombre en mayúscula
* utilizar como separador de palabras el underscore

JavaBeans:
Propiedades o atributos.
Se utilizan propiedades (variables con métodos propios de lectura y escritura, mas conocido como: setters and getters)
Ejemplo de invocaciones:
setPropiedad(valor);
getPropiedad();

Return: Si lo que devuelve no es booleano, se debe utilizar "get"+variable, de lo contrario, si es booleano se puede utilizar "is"+variable
isTrue();

Ejemplo:
private int size;
public int getSize(){
return size:
}
public void setSize(int n){
size=n;
}
* utilizar public para los métodos
* private para las variables

Métodos Listener

* Para registrar listeners utilizar el prefijo "add"
* Para eliminar el registro utilizar el prefijo "remove"
* Todos los Listener deben contener la palabra "Listener" al final del metodo

continua en: part2

Eclipse & java error - Ubuntu 7.10 Gutsy Gibbon

Bajamos a eclipse (3.3) y lo dejamos en un dir temporal, luego le cambiamos los permisos y descomprimimos.

Si lo ejecutamos dara un error como este:

JVM terminated. Exit code=13
/usr/bin/java
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-jar /media/work/ides/Eclipse33L/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar
-os linux
-ws gtk
-arch x86
-showsplash
-launcher /media/work/ides/Eclipse33L/eclipse
-name Eclipse
--launcher.library /media/work/ides/Eclipse33L/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.1.R33x_v20070828/eclipse_1020.so
-startup /media/work/ides/Eclipse33L/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar
-exitdata 220011
-vm /usr/bin/java
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-jar /media/work/ides/Eclipse33L/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20070828.jar

Significa que falta instalar una nueva version o mas completa de java, seguir con este tutorial.
Una vez instalado el JDK, lo unico que tenemos que hacer es bajar de la web a y ponerle

Ubuntu 7.10 (Gutsy Gibbon) Tips

Algunos tips interesantes:

Ingresar como admin: sudo -s , o sudo -i
Abrir terminal:
gnome-terminal

Instalacion JDK (JAVA) - Ubuntu 7.10 Gutsy Gibbon

Instalacion de java:
Bajar el bin desde http://java.sun.com/javase/downloads/index_jdk5.jsp (por ej: JDK 5.0 Update 13, Linux self-extracting file) a /usr/local/ u otro.

Cambiar permisos (ver permisos, chmod) y luego ejecutarlo (lo descomprime)
chmod +x jdk-1_5_0_12-linux-i586.bin

Luego es necesario avisarle al SO que tenemos otro "JAVA", por defecto viene uno "basico".

Se puede hacer de dos maneras, con comandos o con una GUI:
1) Utilizamos el comando:
sudo update-alternatives --install /usr/bin/java java /home/crystian/dev/java/jdk1.5.0_12/bin 70

Comando: update-alternatives
Parametro de instalcion: --install
Lugar original del enlace: /usr/bin/java
Nombre del enlace: java
Ubicacion del JDK: /home/crystian/dev/java/jdk1.5.0_12/bin
Prioridad: 70 (cuanto mas alto, mas prioridad tendra)

Luego ejecutamos:
sudo update-alternatives --config java
nos aparece una lista, seleccionamos (poniendo el numero de la fila) la nueva entrada.

2) Con GUI
Si no te llevas bien con los comandos, tenes a galternatives, esta aplicacion es con interfaz grafica, para bajar y utilizar:
sudo aptitude install galternatives
sudo galternatives
Buscar y seleccionar "java", ir a "añadir" el directorio del nuevo SDK, aparecerá en la lista (el numero de prioridad cuanto mas alto tiene mas prioridad), verificar que quede seleccionado el nuevo jdk.

Con eso estaria instalado y listo, para comprobar ejecutar: java -version

Recomendacion:
seria util tambien crear las variables del entorno de java:
sudo vi /etc/bash.bashrc:
agregar al final:
export JAVA_HOME=directorio raiz donde está jdk
export PATH=$JAVA_HOME/bin:$PATH

Mostrar texto en el booteo- Ubuntu 7.10 Gutsy Gibbon

A esto se lo conoce como: verbose booting process.

Entrar a la consola:
Editar el archivo menu.lst con: sudo nano /boot/grub/menu.lst
Debajo de todo suelen aparecer los sistemas operativos configurados en grub, buscamos el de ubuntu y le sacamos el parametro final "quiet spalsh"
Reiniciamos y listo!


:)

Enlaces Linux - Ubuntu 7.10 Gutsy Gibbon

Enlaces duros y simbolicos:

ln archivo archivo2, crea un enlace duro llamado fichero2 apuntando al inodo de fichero (solo archivos)
ln -s archivo archivo2, crea un enlace simbólico, puede apuntar a un archivo o un directorio.
si se borra algún archivo "duro", no se borra físicamente el archivo hasta que no se borren todos los enlaces. los simbólicos se pueden borrar pero quedaria huérfanos

ls -i, para ver el N del inodo
ls -l, para ver cantidad de enlaces (segunda columna) y en los simbólicos se ve a donde apuntan por medio de "->" en la ultima columna

Comandos de compresion / descompresion de linux

Existen varias opciones de compresión de ficheros en Linux: gzip, bz2, rar, zip, y
todos ellos se pueden combinar con el empaquetar o archivador TAR.

tar
Archivador, agrupa ficheros en uno, además se le puede decir que comprima:

tar cfp resultado.tar /etc /var
guarda el contenido de /etc y /var dentro del fichero resultado.tar

tar xfp resultado.tar
saca todo el contenido de resultado.tar

tar zcfp usr.tgz /usr
archiva y comprime con gzip el directorio /usr

tar jcfp usr.tgz /usr
archiva y comprime con bzip2 el directorio /usr

tar zxfp usr.tgz
Descomprime el fichero anterior

gzip/gunzip, zip/unzip, rar/unrar
Compresor/Descompresor. Los ficheros comprimidos con gzip o con zip no se
descomprimen igual. Un fichero comprimido con el winzip habría que abrirlo con el unzip en linux.

gzip fichero
comprime fichero, le ańade la extensión gz

gunzip fichero.gz
descomprime ficheros gz.

zip -r9 todo.zip directorio/
comprime el directorio en el fichero todo.zip

unzip: descomprime para ficheros zip

bz2/bunzip2
Compresor cańero, comprime bastante más que gzip, aunque tarda y chupa mas cpu

bz2 fichero
comprime fichero, le ańade la extensión bz2

bunzip2 fichero.bz2
descomprime

tar jcfp usr.tar.bz2 /usr
archiva y comprime con bz2

GRACIAS: Ińigo Tejedor & Pello Altadill (PDF)
http://4party.cuatrovientos.org

Comandos de comunicacion de Linux

telnet
Descripción: Establece conexiones a puertos TCP
Ejemplo: telnet localhost 25

mesg
Descripción: Establece si se aceptan mensajes a través de write o talk.
Ejemplo: mesg -y

write
Descripción: envía mensajes a otros usuarios.
Ejemplo: write jrmorris pts/0

wall
Descripción: envía un mensaje a todos los usuarios conectados al sistema
Ejemplo: wall “a cascarla el sistema”

ifconfig
Descripción: =interface config. configuracion de interfaces de red, modems, etc.
Ejemplos: ifconfig, ifconfig eth0 ip netmask 255.255.255.0

route
Descripción: gestiona las rutas a otras redes.
Ejemplos: route, route -n

iptraf
Descripción: muestra en una aplicacion de consola TODO el trafico de red IP, UDP, ICMP.
Permite utilizar filtros, y es SUMAMENTE UTIL para diagnostico y depuracion de firewalls
Ejemplos: iptraf

tcpdump
Descripción: vuelca el contenido del trafico de red.
Ejemplos: tcpdump, tcpdump -u

ping
Descripción: heramienta de red para comprobar entre otras cosas si llegamos a
un host remoto.
Ejemplos: ping www.rediris.es

traceroute
Descripción: herramienta de red que nos muestra el camino que se necesita para llegar a otra maquina.
Ejemplos: traceroute www.rediris.es

mail
Descripción: envio y lectura de correo electronico.
Ejemplos: mail pepe@cuatrovientos.org < style="font-weight: bold;">wget
Descripción: programa para descargar ficheros por http o ftp.
Ejemplos: wget http://www.rediris.es/documento.pdf

lynx
Descripción: navegador web con opciones de ftp, https.
Ejemplos: lynx www.cuatrovientos.org, lynx --source
http://www.cuatrovientos.org/script.sh | sh

ftp
Descripción: cliente FTP.
Ejemplos: ftp ftp.cuatrovientos.org

whois
Descripción: whois de dominios.
Ejemplos: whois cuatrovientos.org

sniffit
Descripción: Sniffer o husmeador de todo el trafico de red. No suele venir
instalado por defecto.
Ejemplos: sniffit -i


GRACIAS: Ińigo Tejedor & Pello Altadill (PDF)
http://4party.cuatrovientos.org

Comandos de administración de Linux

Comandos de administración: usuarios, procesos, kernel

sysctl
Descripción: Configurar los parámetros del kernel en tiempo de ejuecución.
Ejemplos: sysctl -a

ulimit
Descripción: muestra los limites del sistema (maximo de ficheros abiertos, etc..)
Ejemplos: ulimit

adduser
Descripción: ańadir usuario de sistema.
Ejemplos: adduser pepe, adduser -s /bin/false pepe

userdel
Descripción: = eliminar usuario de sistema
Ejemplos: userdel pepe

usermod
Descripción: = modificar usuario de sistema
Ejemplos: usermod -s /bin/bash pepe

df
Descripción: = disk free. espacio en disco disponible. Muy util.
Ejemplos: df, df -h

uname
Descripción: =unix name. Informacion sobre el tipo de unix en el que estamos,
kernel, etc.
Ejemplos: uname, uname -a

netstat
Descripción: la informacion sobre las conexiones de red activas.
Ejemplos: netstat, netstat -ln, netstat -l, netstat -a

ps
Descripción: =proccess toda la informacion sobre procesos en ejecucion.
Ejemplos: ps, ps -axf, ps -A, ps -auxf

pstree
Descripción: =proccess tree, muestra los procesos en forma de árbol
Ejemplos: pstree

kill
Descripción: envía seńales a procesos. La más común es la de matar el proceso.
Ejemplo: kill -9 34 (la seńal -9 es KILL y mata el proceso numero 34)

free
Descripción: muestra el estado de la memoria RAM y el SWAP.
Ejemplos: free

vmstat
Descripción: muestra el estado de la memoria virtual
Ejemplos: vmstat, vmstat -s

du
Descripción: =disk use. uso de disco. Muestra el espacio que esta ocupado en
disco.
Ejemplos: du *, du -sH /*, du -sH /etc

lsof
Descripción: muestra los ficheros(librerias, conexiones) que utiliza cada proceso
Ejemplos: lsof, lsof -i, lsof | grep fichero

lsmod
Descripción: Muestra los modulos de kernel que estan cargados.
Ejemplos: lsmod

insmod
Descripción: instala modulos de kernel
Ejemplo: insmod e1000, insmod usb_core

modprobe
Descripción: Trata de instalar un modulo, si lo encuentra lo instala pero de forma temporal.
Ejemplos: modprobe ip_tables, modprobe eepro100

rmmod
Descripción: Elimina modulos del kernel que estan cargados
Ejemplos: rmmod

fdisk
Descripción: sirve para gestionar las particiones de una unidad de disco
Ejemplos: fdisk /dev/hda , fdisk -l /dev/sda


GRACIAS: Ińigo Tejedor & Pello Altadill (PDF)
http://4party.cuatrovientos.org

Comandos de administracion de archivos en Linux

Estos son los comandos tipicos/comunes de administracion de archivos de linux/unix

cd

Descripción: =chage dir. comando para cambiarnos de directorio.
Ejemplos: cd, cd /ruta/de/directorio, cd ../../directorio/

pwd
Descripción: nos dice en qué directorio nos encontramos actualmente
Ejemplos: pwd

ls
Descripción: =list. listar contenido de directorios.
Ejemplos: ls, ls -l, ls -fl, ls --color

cp
Descripción: =copy. copiar ficheros/directorios.
Ejemplos:cp -rfp directorio /tmp, cp archivo archivo_nuevo

rm
Descripción: =remove. borrar ficheros/directorios.
Ejemplos: rm -f fichero, rm -rf directorio, rm -i fichero

mkdir
Descripción: =make dir. crear directorios.
Ejemplos: mkdir directorio

rmdir
Descripción: =remove dir. borrar directorios, deben estar vacios.
Ejemplos: rmdir directorio

mv
Descripción: =move. renombrar o mover ficheros/directorios.
Ejemplos: mv directorio directorio, mv fichero nuevo_nombre, mv fichero a_directorio

nano
Descripción: editor de fichero muy simple. Vi o emacs son para la 31337.
Ejemplo: nano -w

clear
Descripción: limpia la pantalla. Ctrl-L tiene el mismo efecto.

exit
Descripción: termina la sesión del shell. Ctrl-D tiene el mismo efecto

date
Descripción: gestión de fecha de sistema, se puede ver y establecer.
Ejemplos: date, date 10091923

history
Descripción: muestra el historial de comandos introducidos por el usuario.
Ejemplos: history | more

more
Descripción: muestra el contenido de un fichero con pausas cada 25 lineas.
Ejemplos: more fichero
Al hacer more:
/cadena : podemos hacer búsqueda de cadena
f : adelante
b: volver arriba
v: iniciar vi en la linea que estamos
Nota: estas opciones también sirven para el comando man

grep
Descripción: filtra los contenidos de un fichero.
Ejemplos:cat fichero | grep cadena, grep -il “cadena” directorio/

cat
Descripción: muestra todo el contenido de un fichero sin pausa alguna.
Ejemplos: cat fichero

chmod
Descripción: cambia los permisos de lectura/escritura/ejecucion de ficheros/directorios.
Ejemplos: chmod +r fichero, chmod +w directorio, chmod +rw directorio -R,
chmod -r fichero
chmod +x fichero : da permiso de ejecucion

chown
Descripción: =change owner. cambia los permisos de usuario:grupo de
ficheros/directorios.
Ejemplos: chown root:root fichero, chown pello:usuarios directorio -R

tar
Descripción: =Tape ARchiver. archivador de ficheros.
Ejemplos: tar cvf fichero.tar directorio , tar xvf fichero.tar, tar zcvf fichero.tgz
directorio, tar zxvf fichero.tgz

gunzip
Descripción: descompresor compatible con ZIP.
Ejemplos: gunzip fichero

rpm
Descripción: gestor de paquetes de redhat y fedora. Para instalar o actualizar software de sistema.
Ejemplos: rpm -i paquete.rpm, rpm -qa programa, rpm --force paquete.rpm, rpm -q --info programa

dpkg
Descripción: gestor de paquetes de Debian. Para instalar o actualizar software en el sistema.
Ejemplos: dpkg -i paquete.deb

alias
Descripción: para crear alias de comandos. Útil para comandos largos.

mount
Descripción: montar unidades de disco duro, diskette, cdrom.
Ejemplos: mount /dev/hda2 /mnt/lnx, mount /dev/hdb1 /mnt -t vfat

umount
Descripción: desmontar unidades.
Ejemplos: umount /dev/hda2, umount /mnt/lnx

who
Descripción: muestra los usuarios de sistema que han iniciado una sesion.
Ejemplos: who, w, who am i

sort
Descripción: ordena el contenido de un fichero.
Ejemplos: cat /etc/numeros | sort, ls | sort

ln
Descripción: =link. para crear enlaces, accesos directos.
Ejemplos: ln -s /directorio enlace

tail
Descripción: muestra el final (10 lineas) de un fichero.
Ejemplos:tail -f /var/log/maillog, tail -100 /var/log/maillog | more

head
Descripción: muestra la cabecera (10 lineas) de un fichero.
Ejemplos: head fichero, head -100 /var/log/maillog | more

file
Descripción: nos dice de que tipo es un fichero.
Ejemplos: file fichero, file *

cmp
Descripción: compara dos ficheros y nos dice si son distintos
Ejemplos: cmp fichero1 fichero2

file
Descripción: nos dice de que tipo es un fichero.
Ejemplos: file fichero, file *

diff
Descripción: muestra las diferencias entre dos ficheros. Muy usado para parchear software.
Ejemplos: diff fichero1 fichero2

wc
Descripción: word count, calcula número de palabras y otros datos similares de un fichero.
Ejemplos: wc fichero, wc -l fichero


GRACIAS: Ińigo Tejedor & Pello Altadill (PDF)
http://4party.cuatrovientos.org