You are on page 1of 22

Comandos

bsicos en
Linux


Introduccin
En primer lugar es bueno destacar que aqu no aparecen listados todos los
comandos, ni todos los posibles usos de ellos, pero s es una primera
aproximacin a su uso, a conocerlos y a investigarlos.
Comandos Bsicos
Esta es una pequea lista de los comandos ms utilizados, no es que sean los
ms faciles, la verdad es que "no hay comando complicado, slo comandos que
no conocemos".
man
Este comando es el ms til de todos, su funcin es mostrar el manual del
comando que se coloque a continuacin, dependiendo de la distribucin de linux y
de diversos programas, ste estar en tu idioma.
Para saber como utilizarlo, puedes pedir el manual del manual escribiendo
man man
Cuando revisas un manual, como el de "man", es posible que aparezcan algunas
referencias (en la seccin "SEE ALSO" o "VER TAMBIN"), las cuales estn
numeradas, por ejemplo, en el caso de "man", es posible ver:
SEE ALSO:
manpath(1), apropos(1), whatis(1), catman(8), less(1),
setlocale(3), troff(1), nroff(1), man(7), ascii(7), ...
Esta es una lista de contextos relacionados de los cuales tambin puedes pedir
con man, es decir despus de salir de man (con la tecla "q"), puedes escribir por
ejemplo: "man whatis". De esta forma siempre puedes encontrar informacin
relacionada.
ls
Lista o muestra el contenido del directorio actual.
El uso de este comando de forma ms bsica es sin parmetros, de esta forma
lista todos los archivos y directorios ordenndolos en columnas de arrbia a abajo y
de izquierda a derecha.
bin dev home lost+found misc net proc sbin srv tmp var
boot etc lib media mnt opt root selinux sys usr
Obviamente el resultado variar dependiendo de en qu directorio estemos
parados y que cosas tengamos ah.
El parmetro que recibe este comando es alguna expresin regular que
represente lo que deseamos listar, por ejemplo podemos buscar dentro de "todo lo
que comience con b", para ello usamos "b*"
ls b*
Es bueno a estas alturas decir que si existe algn directorio que coincida con "que
comience con b", ls mostrar su contenido; por ejemplo, la salida del comando
anterior regresa lo siguiente:
bin:
alsacard echo mknod sleep
alsaunmute ed mktemp sort
arch egrep more stty
awk env mount su
basename ex mountpoint sync
bash false mv tar
cat fgrep netstat taskset
chgrp fusermount nice tcsh
chmod gawk nisdomainname touch
chown gettext ntfs-3g tracepath
cp grep ntfsmount tracepath6
cpio gtar pgawk traceroute
csh gunzip ping traceroute6
cut gzip ping6 tracert
date hostname ps true
dbus-cleanup-sockets igawk pwd ulockmgr_server
dbus-daemon ipcalc red umount
dbus-monitor kbd_mode redhat_lsb_init uname
dbus-send kill rm unicode_start
dbus-uuidgen link rmdir unicode_stop
dd ln rpm unlink
df loadkeys rvi usleep
dmesg login rview vi
dnsdomainname ls sed view
doexec mail setfont ypdomainname
domainname mailx setserial zcat
dumpkeys mkdir sh zsh

boot:
config-2.6.23.1-49.fc8 initrd-2.6.23.8-63.fc8.img vmlinuz-2.6.23.1-
49.fc8
config-2.6.23.8-63.fc8 lost+found vmlinuz-2.6.23.8-
63.fc8
grub System.map-2.6.23.1-49.fc8
initrd-2.6.23.1-49.fc8.img System.map-2.6.23.8-63.fc8
Existen tambin opciones para este comando, opciones que cambian los datos
que muestra, estos se pueden combinar entre s, los ms comnes son los
siguientes:
-l : Muestra una lista de un archivo (directorio, etc) por linea, muestra el tipo
del fichero, los permisos, el nmero de enlaces duros, el nombre del
propietario, el del grupo al que pertenece, el tamao en bytes, la marca de
tiempo y el nombre del archivo.
-a : Muestra todos los archivos, incluyendo los ocultos (que comienzan con
.)
-d : No muestra el contenido interno de los directorios.
-h : Muestra el tamao en formato humano (Kilos, Megas, etc.)
-v : Ordena los archivos por versin en vez de alfabeticamente.
Ejemplos
ls -l muestra, de izquierda a derecha lo siguiente : el tipo del fichero, los permisos,
el nmero de enlaces al archivo, el nombre del propietario, el del grupo al que
pertenece, el tamao en bytes, la fecha de la ltima modificacin y el nombre del
archivo.
total 150
drwxr-xr-x 2 root root 4096 dic 9 22:20 bin
drwxr-xr-x 4 root root 1024 dic 4 17:08 boot
drwxr-xr-x 12 root root 4240 dic 15 15:15 dev
drwxr-xr-x 126 root root 12288 dic 15 15:41 etc
drwxr-xr-x 12 root root 4096 dic 13 22:56 home
drwxr-xr-x 15 root root 4096 dic 15 04:23 lib
drwx------ 2 root root 16384 dic 2 12:25 lost+found
drwxr-xr-x 2 root root 4096 dic 15 15:15 media
drwxr-xr-x 2 root root 0 dic 15 15:14 misc
drwxr-xr-x 2 root root 4096 ago 13 10:47 mnt
drwxr-xr-x 2 root root 0 dic 15 15:14 net
drwxr-xr-x 2 root root 4096 dic 3 16:29 opt
dr-xr-xr-x 142 root root 0 dic 15 12:14 proc
drwxr-x--- 10 root root 4096 dic 14 00:52 root
drwxr-xr-x 2 root root 12288 dic 11 13:48 sbin
drwxr-xr-x 2 root root 4096 dic 2 12:25 selinux
drwxr-xr-x 3 root root 4096 dic 2 12:45 srv
drwxr-xr-x 12 root root 0 dic 15 12:14 sys
drwxrwxrwt 24 root root 4096 dic 15 18:06 tmp
drwxr-xr-x 14 root root 4096 dic 3 16:24 usr
drwxr-xr-x 22 root root 4096 dic 2 12:48 var
ls -a muestra:
. .autofsck bin dev home lost+found misc net proc
root selinux .suspended tmp var
.. .autorelabel boot etc lib media mnt opt .pulse-cookie
sbin srv sys usr
ls -d b* muestra:
bin boot
Ntese la diferencia con la ejecucin sin la opcin -d
Combinado algunas opciones, podemos ejecutar:
ls -hl que muestra:
total 150K
drwxr-xr-x 2 root root 4,0K dic 9 22:20 bin
drwxr-xr-x 4 root root 1,0K dic 4 17:08 boot
drwxr-xr-x 12 root root 4,2K dic 15 15:15 dev
drwxr-xr-x 126 root root 12K dic 15 15:41 etc
drwxr-xr-x 12 root root 4,0K dic 13 22:56 home
drwxr-xr-x 15 root root 4,0K dic 15 04:23 lib
drwx------ 2 root root 16K dic 2 12:25 lost+found
drwxr-xr-x 2 root root 4,0K dic 15 15:15 media
drwxr-xr-x 2 root root 0 dic 15 15:14 misc
drwxr-xr-x 2 root root 4,0K ago 13 10:47 mnt
drwxr-xr-x 2 root root 0 dic 15 15:14 net
drwxr-xr-x 2 root root 4,0K dic 3 16:29 opt
dr-xr-xr-x 142 root root 0 dic 15 12:14 proc
drwxr-x--- 10 root root 4,0K dic 14 00:52 root
drwxr-xr-x 2 root root 12K dic 11 13:48 sbin
drwxr-xr-x 2 root root 4,0K dic 2 12:25 selinux
drwxr-xr-x 3 root root 4,0K dic 2 12:45 srv
drwxr-xr-x 12 root root 0 dic 15 12:14 sys
drwxrwxrwt 24 root root 4,0K dic 15 18:06 tmp
drwxr-xr-x 14 root root 4,0K dic 3 16:24 usr
drwxr-xr-x 22 root root 4,0K dic 2 12:48 var
cd
Cambia el directorio (o carpeta) actual. Al ejecutarse sin parmetro, normalmente (aun no
he conocido un Linux, Unix o Solaris en que no suceda) cambia al directorio de home (o
directorio base) del usuario en curso. Al entregarle un parmetro (nombre de algn
directorio), se cambia a l. Algunos nombres de directorios especiales son por ejemplo:
. que hace referencia a mi directorio actual,
.. que hace referencia al directorio padre, y
/ que es el directorio raz del sistema.
Cabe destacar que uno puede cambiarse de directorio dando toda la ruta (directa o relativa)
de una carpeta.
Ejemplos
Cambiarse al directorio Escritorio
cd Escritorio
Ir a la raz del sistema
cd /
Ir a la carpeta home que esta dentro de la raz
cd /home
Regresar a mi carpeta
cd
pwd
Muestra el directorio actual regresando toda su ruta desde la raz del sistema.
pwd
cp
Copia dentro del equipo local un archivo o directorio, para ello recibe dos parmetros, el
origen y el destino.
cp origen destino
Existen algunas opciones que se utilizan bastante, no son todas, pero son las ms
frecuentes:
-R : Copia recursiva de directorios.
-i : Pregunta si quiere sobrescribir los que tienen el mismo nombre.
-d : copia los enlaces simblicos en vez de copiar el archivo (o directorio) al que
apunta.
-u : copia sobreescribiendo solamente los archivos ms viejos (una forma de
sincronizacin).
Ejemplos
Copia mi carpeta Escritorio en la carpeta respaldo
cp -R Escritorio respaldo
Copia el archivo xorg.conf ubicado en /etc/X11 en mi carpeta de home
cp /etc/X11/xorg.conf $HOME
mv
Mueve o renombra un archivo o directorio a un nuevo destino.
De que depende cual de las dos acciones ejecuta?
Fcil, depende si existe el destino o no como directorio, en caso contrario renombra
(ojo, si mueves un archivo a otro que ya existe, lo reemplaza)
mv curriculum.pdf Documentos/personales/
Las opciones ms utilizadas de mv son:
-i : pregunta antes de sobreescribir si el destino existe.
-u : no mueve el archivo si existe en el destino uno ms actual.
rm
Borra un archivo o directorio.
rm archivoViejo.txt
Los operadores mas importantes son:
-r : borra recursivamente.
-i : pide confirmar.
-f : por la fuerza.
Nunca hagas lo siguiente aunque es gracioso (para el que observa)
rm -rf $HOME
ni ninguna cosa parecida, preocpate de manejar bien este comando, pues de que borra
borra.
cat
Despliega un archivo por la salida estndar.
cat README.txt
El operador entretenido que tiene es el -n que muestra los nmeros de linea, es especial si
quieres ver que dice la linea que se queja un archivo PHP.
En la mayora de los terminales con las teclas <shift> y <pg up> o <pg dw> nos permite
desplazarnos.
more
Despliega un archivo por la salida estndar agregando pausas por pantalla. Claramente esto
es bastante til cuando el archivo sobrepasa un par de pantallas.
more README.txt
tail
Muestra las ltimas lineas de un archivo. Tal ves te preguntes y para que solo quiero ver
las ltimas lneas?, algunas respuestas posibles a esta pregunta son:
puede ser que ests viendo un archivo secuencial (como un log del sistema) en
donde te interese solamente ver lo que ocurre ahora.
dmesg | tail # <--- ver los avisos ms recientes de mi sistema
ver el progreso de un registro secuencia, gracias al operador ms utilizado, -f
(follow) que deja el canal abierto mirando las ultimas lineas mientras se actualizan.
tail -f /var/log/messages
para concluir presionar <ctrl> + <c>
head
Igual que el anterior, pero muestra solamente las primeras lneas de un archivo. Tal vez te
preguntes, y para qu solamente querra ver las primeras lneas? Algunos casos posibles
son:
Quieres ver si un archivo se trata de lo que crees (en Linux, muchos archivos de
configuracin guardan comentarios descriptivos en las primeras lneas):
head /etc/samba/smb.conf # <-- ser este el archivo de directivas de
samba?
Algunos archivos de registro y salidas de programa guardan informacin
cronolgica "inversa", es decir, los ms recientes primero:
last | head # <-- quines son los ms recientes que se han conectado al
sistema?
No recuerdas con qu opciones compilaste un cdigo fuente?
head config.log
ps
Muestra los procesos en ejecucin.
Entre todos los comandos que hemos visto, este es uno de los que tiene las ms variadas
opciones, pues uno puede ver los procesos en total, por usuario, por grupo de usuario, etc...
Lo ms comn en todo caso es que me interesen mis procesos, para ello se utiliza el
operador -U seguido por el nombre del usuario.
ps -U usuario
lo que retornar algo similar a lo siguiente:
PID TTY TIME CMD
2505 ? 00:00:00 startkde
2561 ? 00:00:00 ssh-agent
2564 ? 00:00:00 dbus-launch
2565 ? 00:00:00 dbus-daemon
2635 ? 00:00:00 start_kdeinit
2636 ? 00:00:00 kdeinit
2639 ? 00:00:00 dcopserver
2641 ? 00:00:00 klauncher
2643 ? 00:00:05 kded
2648 ? 00:00:00 kwrapper
2650 ? 00:00:00 ksmserver
2651 ? 00:00:10 kwin
2653 ? 00:00:05 kdesktop
2658 ? 00:00:13 kicker
2662 ? 00:00:17 artsd
2673 ? 00:00:00 kmix
2675 ? 00:00:17 yakuake
2696 pts/2 00:00:00 bash
2735 ? 00:00:00 firefox
2756 ? 00:00:00 run-mozilla.sh
2761 ? 00:24:08 firefox-bin
2915 ? 00:00:01 knotify
3557 ? 00:00:21 xchat
3660 ? 00:00:04 konqueror
3684 ? 00:00:01 kio_uiserver
4445 pts/2 00:00:00 ps
si le agregamos el operador x podemos ver adems los parmetros de los programas,
ubicacin, entre otros.
La primer columna de lo que retorna es el nmero del proceso.
ps x -U usuario
retorna
PID TTY STAT TIME COMMAND
2505 ? Ss 0:00 /bin/sh /usr/bin/startkde
2561 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --
exit-with-session
2564 ? S 0:00 /usr/bin/dbus-launch --exit-with-session
/etc/X11/xinit/Xclients
2565 ? Ss 0:00 /bin/dbus-daemon --fork --print-pid 4 --print-
address 8 --session
2609 ? S 0:00 /usr/bin/gnome-keyring-daemon
2612 ? Ss 0:01 /usr/bin/gpg-agent -s --daemon
2614 ? Ssl 0:55 /usr/bin/pulseaudio -D
2635 ? S 0:00 start_kdeinit --new-startup +kcminit_startup
2636 ? Ss 0:00 kdeinit Running...
2639 ? S 0:00 dcopserver --nosid
2641 ? S 0:00 klauncher [kdeinit] --new-startup
2643 ? S 0:05 kded --new-startup
2648 ? S 0:00 kwrapper ksmserver
2650 ? S 0:00 ksmserver
2651 ? S 0:10 kwin -session
101bc18c1b6166000119671600300000064280000_1197099738_82464
2653 ? S 0:05 kdesktop
2658 ? S 0:13 kicker
2662 ? S 0:17 /usr/bin/artsd -F 10 -S 4096 -s 60 -m
artsmessage -c drkonqi -l 3 -f
2673 ? S 0:00 kmix -session
101bc18c1b6166000119671952700000064280060_1197099738_69827
2675 ? S 0:17 yakuake -session
101bc18c1b6166000119672904800000029110007_1197099738_71012
2685 ? S 0:00 kalarmd --autostart
2690 ? S 0:00 /usr/libexec/gconfd-2 13
2696 pts/2 Ss 0:00 /bin/bash
2735 ? S 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/firefox -
UILocale es-ES
2756 ? S 0:00 /bin/sh /usr/lib/firefox-2.0.0.10/run-
mozilla.sh
2761 ? Sl 24:15 /usr/lib/firefox-2.0.0.10/firefox-bin -
UILocale es-ES
2915 ? S 0:01 knotify [kdeinit]
3557 ? S 0:21 xchat
3660 ? S 0:04 konqueror --silent
3684 ? S 0:01 kio_uiserver
4423 ? Rl 3:53 /usr/lib/nspluginwrapper/npviewer.bin
4451 pts/2 R+ 0:00 ps x -U usuario
kill
Mata algn proceso. Para entender mejor recomiendo ver man 7 signal que especifica cada
una de las seales, en este pequeo texto utilizaremos la seal 9 (matar) y la seal 15
(terminar).
Por ejemplo, supongamos que de la lista de procesos vistos en el ejemplo de ps deseamos
terminar xchat, cuyo nmero de proceso es 3557
kill -15 3557
lo que cerrar (amablemente) el programa xchat.
Ahora, supongamos que (por esas cosas que rara vez ocurren) se pega xchat y no est
respondiendo, por lo que en ves de cerrarlo, es mejor matarlo (por la fuerza).
kill -9 3557
Mediante kill incluso se pueden detener o reiniciar procesos, no es lo ms habitual, pero de
poder se puede.

Killall
Este comando no esta disponible por defecto en todos los sistemas Unix, pero s
en la mayora de las distribuciones Linux. Mata todos los procesos al los cuales el
usuario tiene acceso. Similar al comando Kill, pero diseado para matar procesos
por sus nombres.
ejemplo:
killall firefox-bin
top
Al igual que ps muestra los procesos, a diferencia de ps, top los ordena por
porcentaje de CPU utilizado (lo que se puede cambiar a porcentaje de memoria,
etc.)
Por ejemplo al ejecutar
top
se vera algo as como lo siguiente, note que se va actualizando.
top - 22:49:02 up 7:34, 1 user, load average: 1.12, 0.85, 0.80
Tasks: 129 total, 2 running, 127 sleeping, 0 stopped, 0 zombie
Cpu(s): 15.3%us, 1.2%sy, 0.2%ni, 80.4%id, 2.5%wa, 0.3%hi, 0.1%si,
0.0%st
Mem: 450000k total, 395052k used, 54948k free, 2848k buffers
Swap: 2096440k total, 81044k used, 2015396k free, 103548k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4423 usuario 20 0 98.3m 42m 9648 R 51.2 9.7 27:22.42 npviewer.bin
2483 root 20 0 123m 46m 3392 S 2.0 10.6 11:58.59 X
2761 usuario 20 0 323m 165m 18m S 2.0 37.6 27:24.50 firefox-bin
1 root 20 0 2112 564 536 S 0.0 0.1 0:01.20 init
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 15 -5 0 0 0 S 0.0 0.0 0:01.43 ksoftirqd/0
Con la opcin -u se le puede especificar el usuario, por ejemplo si solo deseamos
ver los procesos de root ejecutamos
top -u root
que muestra
top - 23:01:35 up 7:46, 1 user, load average: 1.80, 1.48, 1.09
Tasks: 129 total, 2 running, 127 sleeping, 0 stopped, 0 zombie
Cpu(s): 16.4%us, 1.3%sy, 0.2%ni, 79.3%id, 2.5%wa, 0.3%hi, 0.1%si,
0.0%st
Mem: 450000k total, 402064k used, 47936k free, 3240k buffers
Swap: 2096440k total, 81044k used, 2015396k free, 103564k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2483 root 20 0 123m 46m 3392 S 5.6 10.6 12:19.55 X
1 root 20 0 2112 564 536 S 0.0 0.1 0:01.21 init
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
4 root 15 -5 0 0 0 S 0.0 0.0 0:01.47 ksoftirqd/0
5 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
6 root 15 -5 0 0 0 S 0.0 0.0 0:00.29 events/0
top adems recibe comandos mientras est en ejecucin, entre ellos, k es
equivalente a kill, O es para ordenar por otro criterio, q sale, entre otros.
alias
Crea un alias de un comando, esto sirve bastante para escribir menos. Por
ejemplo, podemos crear una alias para ls -al cosa de no escribir a cada rato esos
5 caracteres, podemos crear una alias una ves y de ahi solo usar el alias.
alias ll='ls -al'
y despus de ello solo usamos
ll
Se puede crear un alias para prevenir borrar cosas accidentalmente incorporando
la confirmacin (lo malo es que uno se acostumbra a responder que si)
alias rm='rm -i'
El uso del alias es desde que se crea hasta que se cierra la cuenta, para la
perpetuidad del alias se puede agregar al archivo .bashrc (en el directorio base de
tu usuario)
Comandos Bsicos Avanzados
Estos se denominan as porque generalmente son utilizados para administrar el
sistema.
chmod
Se usa para cambiar los permisos de los archivos y directorios.
Los tipos de permisos son bsicamente 3
r :lectura
w :escritura
x :ejecucin (acceso)
Los permisos los podemos agrupar en
u : usuario
g : grupo
o : otros
Para aadir un permiso se utiliza el + mas y para quitarlo el - menos, y para
asignar quitando otros cambios se usa el =, con esto agregar a todos el permiso
de lectura a un archivo sera as:
chmod ugo+r archivo
si deseamos que todos mis archivos y carpetas sean accedidas y ledas por las
personas de mi grupo, puedo agregar la opcin de recursividad -R
chmod g+rx * -R
Cambio de permisos utilizando nmeros
Es posible asignar un nmero identificatorio a cada tipo de permiso, considerando
lo siguiente:
r = 4 (lectura)
w = 2 (escritura)
x = 1 (ejecucin)
- = 0 (sin permisos)
Cuando asignamos los permisos utilizando nmeros debemos tener en cuenta que
primero se sumarn los valores y dicho resultado es el que se usar.
ejemplos
rw------- (600) Slo el propietario tiene el derecho de leer y escribir.
chmod 600 archivo.txt
rw-r--r-- (644) Slo el propietario tiene los permisos de leer y escribir; el
grupo y los dems slo pueden leer.
rwx------ (700) Slo el propietario tiene los derechos de leer, escribir y
ejecutar el archivo.
rwxr-xr-x (755) El propietario tiene los derechos de leer, escribir y ejecutar;
el grupo y los dems slo pueden leer y ejecutar.
rwx--x--x (711) El propietario tiene los derechos de lectura, escritura y
ejecucin; el grupo y los dems slo pueden ejecutar.
rw-rw-rw- (666) Todo el mundo puede leer y escribir en el archivo. No es
una buena eleccin!
rwxrwxrwx (777) Todo el mundo puede leer, escribir y ejecutar. Tampoco
es buena eleccin!
chgrp
Cambia el grupo a un archivo o carpeta, su uso es simple, se especifica el grupo y
de ah a que se le desea cambiar, al igual que a chmod tiene la opcin -R para
cambiar el grupo de forma recursiva, por ejemplo podemos querer cambiar el
grupo del directorio public_html y su contenido al grupo apache.
chgrp apache public_html -R
chown
Cambia el usuario y grupo a un archivo o directorio, su uso es similar a los
comandos anteriores, por ejemplo podramos copiar una carpeta carpeta como
root dentro del usuario usuario que pertenece al grupo grupo, el paso siguiente es
que usuario pueda disponer de dicha carpeta y archivos interiores, el comando
que debera ejecutar es:
chown usuario:grupo carpeta -R
df
Regresa el espacio disponible y utilizado en disco (por particiones montadas), la
opcin que debe conocer es -h que retorna el espacio en "formato humano" (Kilos,
Megas, etc):
df -h
du
Regresa el tamao de los archivos y carpetas de forma recursiva del lugar en
donde te encuentres parado, al igual como en el comando anterior con la opcin -h
queda en "formato humano":
du -h
Dos opciones de inters son:
-s muestra solamente la suma total de los archivos examinados, esto es
para conocer el espacio total que usa una carptea, por ejemplo:
du -s $HOME/manuales
Te dir que ests usando, por ejemplo, 246736 "unidades" en puros manuales,
usa la opcin "-h" para pasar eso a formato humano:
du -sh $HOME/manuales
Mmmm. 241M (megas), nada mal!
-a es la opcin opuesta, en vez de resumir el espacio ocupado en un solo
nmero, entrega un detalle de cuntas "unidades" (Kilos o Megas con "-h")
usa cada archivo y directorio que encuentre, siendo til para determinar qu
est ocupando todo el espacio de tu pendrive:
du -ah /media/ALL_MY_THESIS
Eso s, si tienes muchos archivos va a ser una larga lista por lo que puedes
examinarla por partes usando "more" o "less".
find
Realiza una bsqueda, el parmetro opcional ms utilizado es el path, mediante
una tubera uno puede filtrar con egrep o con grep.
find
un ejemplo, para buscar desde la raiz del sistema un archivo llamado
"miarchivo.odt"
find / -name 'miarchivo.odt'
grep
Retorna una linea segn un trmino buscado en un archivo segn alguna
expresin regular. La sintaxis general del comando es:
grep lo_que_busco donde_busco

Ejemplos:
buscar el usuario "usuario" en el archivo de registro de usuarios:
grep usuario /etc/passwd
regresara:
usuario:x:500:500::/home/usuario:/bin/bash
ifconfig
Regresa o configura los datos de nuestra(s) tarjeta(s) de red. Su uso bsico es de
consulta, en donde se llama sin parmetros.
ifconfig
retornando algo as como lo siguiente:
eth0 Link encap:Ethernet HWaddr 00:11:22:33:44:55
inet addr:192.168.0.247 Bcast:192.168.0.255
Mask:255.255.255.0
inet6 addr: fe80::214:2aff:fe14:9b4f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2002 errors:0 dropped:0 overruns:0 frame:0
TX packets:1912 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1480919 (1.4 MiB) TX bytes:560964 (547.8 KiB)
Interrupt:20 Base address:0x8c00

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2988 errors:0 dropped:0 overruns:0 frame:0
TX packets:2988 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3501364 (3.3 MiB) TX bytes:3501364 (3.3 MiB)
Normalmenre las tarjetas de red son nombradas como ethX en donde X va del 0
en adelante dependiendo de las tarjetas que tengamos, existen algunas distros
que nombran a la inalambrica como wlanX en donde X es el nmero de tarjeta.
Dependiendo de la distro, es probable que se necesite llamar a ifconfig de la
siguiente manera /sbin/ifconfig.
Notemos que en la primer linea de nuestra tarjeta tenemos el HWaddr seguido de
la mac de nuestra tarjeta, en la segunda linea, encontramos nuestra IP (addr),
broadcast (Bcast) y mascara de red (Mask).
No detallaremos aqu como configurar la red a modo texto, es interesante, pero
ese ya es un tema algo ms avanzado.
ln
Crea un enlace (Acceso directo para los hijos de Windows). Recibe dos
parmetros, origen y destino, normalmente se usa el operador -s simbolico para
crear enlaces simbolicos. Por ejemplo, podemos crear un enlace simbolico en el
Escritorio del directorio Documentos (que se encuentra en paralelo a Escritorio)
ln -s ../Documentos Escritorio
otro operador de ln bastante usado es -f por la fuerza, en que obliga a hacer el
enlace, es muy util si el enlace ya existia y lo queremos sobreescribir.
passwd
Cambia la contrasea, al usarse sin parmetros cambia la contrasea propia, el
parmetro que recibe es el nombre de usuario al que se le desea cambiar la clave
(se requieren permisos de root para ello)
passwd
ping
Solicita un eco desde alguna maquina en la red, muy util para saber si tu conexion
de red esta funcionando.
ping www.google.cl
retorna algo as como
PING www.l.google.com (74.125.47.99) 56(84) bytes of data.
64 bytes from 74.125.47.99: icmp_seq=1 ttl=245 time=162 ms
64 bytes from 74.125.47.99: icmp_seq=2 ttl=245 time=161 ms

--- www.l.google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 161.464/161.841/162.218/0.377 ms
Presiona <ctrl> + <c> para terminar la ejecucin de este comando.
route
Sirve para ver o configurar la(s) puerta(s) de enlace de mi equipo. Su uso bsico
es sin parmetros y es para ver cual es mi puerta de enlace y por que dispositivo
de red est saliendo.
route
debera mostrar algo as como
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
192.168.0.0 * 255.255.255.0 U 0 0 0
eth0
192.168.122.0 * 255.255.255.0 U 0 0 0
virbr0
default 192.168.0.1 0.0.0.0 UG 0 0 0
eth0
La purta de enlace que toma es la que est marcada con default, en nuestro caso
192.168.0.1 conectado por la tarjeta de red eth0
Al igual que con ipconfig, este comando no lo tocaremos ms aqu, pero tiene para
mucho estudio.
scp
Copia archivos de o a maquinas remotas, la sintaxis de este comando es igual a la
de cp, la diferencia es el origen o el destino que pueden ser remotos, para
especificar el usuario y maquina y ruta remota se estila colocar
usuario@maquina:/ruta/remota, despus de presionar enter solicitara la o las
contraseas.
Por ejemplo don Juan Prez usuario de linux en su equipo de casa y en su
notebook, podria copiar las fotos de sus vacaciones (que tiene en su notebook) en
el pc de su casa (obviamente encendido) desde Brasil a Chile sin mayor problema.
scp fotosSaoPablo.tar.bz2
jperez@200.190.22.12:/home/jperez/fotos/vacaciones2007/
jperez@200.190.22.12's password:
la opcin para recursivo es -r con la ere minscula.
El caso ms extrao para usar este comando es por ejemplo para copiar algo
dentro del mismo equipo pero a otro usuario, por ejemplo, un rpm que bajamos
copiarlo al directorio de root.
scp VMware-server-1.0.3-44356.i386.rpm root@localhost:/root/
root@localhost's password:
ssh
Permite acceder a una shell en un equipo remoto, dentro de las opciones
interesantes esta -X que permite ejecutar de forma remota aplicaciones X11 (si el
servidor lo permite).
Por ejemplo, supongamos que Juan Perez, mientras est de vacaciones se entera
que existe una vulnerabilidad en su servidor ftp y que actualizando queda
protegido. Obviamente no va a viajar a Chile interrumpiendo la playa, garotas y
caipiria... lo que hace es conectarse remotamente para actualizar.
ssh jperez@200.190.22.12
Tras lo cual actualiza el ftp.
su
Hecha a correr una shell como otro usuario, es muy practico tener una consola
como un usuario distinto, por ejemplo como root o como un usuario con privilegios
distintos, as uno puede probar sin necesidad de loggearse una y otra vez. Por
ejemplo supongamos que quiero ser jperez lo que har es:
su - jperez
una vez presionado el enter me pedir la contrasea, a menos que sea root o
tenga privilegios especiales. Para convertirme en root basta con teclear
su -
yes
Este comando escribe y mientras no sea cancelado, puede sonar a un comando
intil, pero gracias a las tuberas y redireccionamientos se convierte en un
comando indispensable.
time
Haciendo uso del comando time, sirve para medir el tiempo que demora un
comando en ejecutarse.
root@fenix:/home/knx# time ls
Documentos Downloads Escritorio Imgenes Msica Plantillas
programas

real 0m0.403s
user 0m0.004s
sys 0m0.016s
Tuberas y Redireccionamientos
Las tuberas o pipeline son interesantes, si bien no haremos un uso detallado de
ellas aqu, la idea es dejar el concepto e inquietud para el estudio profundo
personal.
La gracia de esto, es que la salida de un comando puede ser la entrada de otro
(tubera) o bien que en ves de mostrar algo por pantalla (o la salida o entrada
predeterminada) podemos modificar el dispositivo de salida (o entrada).
Tuberas (pipeline)
Transformando el flujo de los datos... se lee de izquierda a derecha, la salida del
comando de la derecha, es la entrada del comando de la izquierda, el smbolo de
la tubera es |
Ejemplo de tubera yes y rm -i
Veamos un ejemplo, supongamos que hemos creado el alias para borrar
confirmando
alias rm='rm -i'
Pero deseo borrar todos los archivos de respaldo (terminados en ~) con lo que
obiamente haria un
rm *~
pero comenzaria a preguntar si quiero borrar cada uno de ellos, a lo que tendra
que ir respondiendo que si (algo bastante tedioso) y terminariamos odiando el rm -
i ...para que ello no ocurra podemos usar una tuberia y decir que si a todo gracias
al comando yes.
yes | rm *~
Esto hara que para cada pregunta de confirmacin, yes le dira que si.
Ejemplo de tubera, bsqueda de archivo
Supongamos que hemos creado un documento en OpenOffice.org (OOo) y que no
sabemos donde lo dejamos (caso ficticio, nunca sucede), recordamos que el ttulo
del documento tenia la palabra resumen, pues se trata del resumen del libro que
hemos ledo, por lo que tenemos dos filtros de bsqueda, la palabra resumen y el
formato odt, con ello hacemos lo siguiente:
find | grep resumen | grep odt
con lo que decimos que buscara, dicha bsqueda se la pasa a grep resumen (para
filtrar) y lo que encuentre grep resumen se lo entrega a grep odt (para el segundo
filtro).

Redireccionamiento
El simbolo que se usa para cambiar la direccin es > para direccionar una salida y
de < para una entrada.
Ejemplo, copiando un archivo con cat
Como vimos anteriormente, cat despliega un archivo en pantalla, para copiar un
archivo usando cat, lo que hacemos es direccionar la salida de pantalla a un
archivo.
cat README.txt > LEEME.txt

Ejemplo, creando un archivo con cat
cat no es un editor de texto, pero cuando no se le entrega el parmetro (uno o
varios archivo), hace un eco de lo que escribimos en pantalla, dicho eco lo
podemos redireccionar a un archivo y as crearlo con lo que estamos escribiendo.
cat > creandoArchivoConCAT.txt
Una vez hecho esto escribe lo que quieras, para terminar de escribir presiona
<ctrl>+<d> lo que enviar un fin de archivo, luego puedes hacer un
cat creandoArchivoConCAT.txt
y ver lo que has escrito.
Dado a que cat despliega uno o varios archivos que se le entregue, estos se
pueden concatenar en uno solo redireccionando la salida, es as como por ejemplo
podemos hacer:
cat capitulo1.txt capitulo2.txt capitulo3.txt > libro.txt


Conclusin
A travs de los comandos se puede hacer de todo bajo Linux, la pequea lista que
tenemos muestra una parte de las grandes potencialidades que se pueden lograr
sabiendo utilizar los comandos, tuberas y redireccionamientos. El desafo est
planteado. El lmite no existe.