Logo
  • Entries
  • Comments
  • Popular
Recent Posts
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • July 2007
Recent Comments
  • Makendra It's always a pleasure to hear from someone with eexrpitse....
  • Rubén Ortiz Hola dependerá de varias cosas pero la respuesta sería NO. ...
  • jose miguel perea Buenos días, ¿La replicación entre maestro y esclavo es i...
  • Rubén Ortiz Si lo hacéis legal, con VMware el único problema son los cos...
  • Angel Hola, estamos valorando implementar baremetal para crear un ...
Popular Articles
  • Declaro la guerra al mosquito Tigre (35)
  • Phpbb3 - encode error converter (19)
  • MySQL - Variables básicas a configurar (17)
  • Reinicio programado Windows 2003 Server (16)
  • Plesk - Evitar el SPAM (10)
  • Home
  • Contacta
  • Hosting Linux
  • Legal
  • Sobre mí – About me

Linux LPI – Apuntes IV

Posted by Rubén Ortiz on Dec 2, 2008 in Linux | 0 comments

Con cierto retraso retomo mi traspaso de apuntes del curso de LPI1 al blog. Mejor tarde que nunca. Es hora de comenzar a estudiar! En este post me entretengo con el grep y el vi.

Grep

Grep busca en los archivos indicados las líneas que contengan el texto que buscamos. Cuando encuentra una línea con el texto, la copia a la sálida estándar (por defecto) o cualquiera otro tipo de salida que hayas configurado con opciones.

grep [-modificador] patron archivo

Ejemplo:

Buscamos el string “root” en el fichero /etc/passwd

1
2
3
<strong># grep root /etc/passwd</strong>
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

Buscamos el string “root” en el fichero /etc/passwd y que nos muestre el número de línea

1
2
3
<strong># grep -n root /etc/passwd</strong>
1:root:x:0:0:root:/root:/bin/bash
12:operator:x:11:0:operator:/root:/sbin/nologin

Buscamos en el mismo fichero cualquier línea que no incluya el string “root” y a su vez, con la pipe descartamos del primer resultado todos aquellos que tengan el string “nologin”

1
2
3
4
5
<strong># grep -v root /etc/passwd | grep -v nologin</strong>
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
news:x:9:13:news:/etc/news:

Nos muestra la cantidad de veces que ha encontrado un resultado válido

1
2
<strong># grep -c root /etc/passwd</strong>
2

Expresiones regulares (que no reguleras :P )

Buscamos las líneas que comienzen por el string root

1
2
<strong># grep ^root /etc/passwd</strong>
root:x:0:0:root:/root:/bin/bash

Buscamos a un usuario que no tiene shell asignado

1
2
<strong># grep :$ /etc/passwd</strong>
news:x:9:13:news:/etc/news:

Clases de carácteres

Buscamos una línea que contenga cualquiera de los carácteres f,y

1
2
3
4
5
6
<strong># grep [yf] /etc/group</strong>
sys:x:3:root,bin,adm
tty:x:5:
ftp:x:50:
nobody:x:99:
floppy:x:19:

Buscamos una palabra que empiece por r y acabe por t y contenga dos carácteres

1
2
3
<strong># grep  '\' /etc/passwd</strong>
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

–color=auto es útil para resaltar las resultados encontrados

1
<strong># grep  --color=auto '\' /etc/passwd</strong>

Expresiones regulares

. cualquier carácter
* cualquier número de apariciones
+ una o más apariciones
? de 0 a 1 aparaciones
{a,b} entre ‘a’ y ‘b’ apariciones
{a} a apariciones
{,b} 0 y b apariciones
[abc] carácter a,b,c
[a-z] carácter de la ‘a’ a la ‘z’
$ final de línea
^ inicio

Parámetros

-i case insensitive, tanto maýusculas como minúsculas
-v busca lo contrario
-n muestra el número de línea
-r recursivo

Vi

# vi texto.txt

Tiene dos modos de trabajo, comandos y insertar. Para pasar a modo insertar, tecleamos ‘i’, para volver a modo comandos, ‘Esc’. Las formas de entrar en el modo edición son:

  • i: la forma de entrar más común, deja el cursor en la posición actual. Cualquier tecleo empuja las letras a partir del cursor a la derecha.
  • I: la i mayúscula hace lo mismo pero deja el curso al inicio de la línea actual
  • a: la letra a hace lo mismo que la i, sólo que desplaza el cursor un carácter a la derecha
  • A: la a mayúscula, se mueve al final de la línea actual y luego actua como si pulsaramos a
  • o: abre una nueva línea debajo de la línea actual. Si estamos en la línea 3, y picamos o, mueve la 4 una línea abajo conviertiéndola en 5 y deja una nueva línea 4.
  • O: abre una línea nueva en la línea actual. Si estamos en la 3, la 3 se convierte en 4 y tenemos una nueva línea 3.

H,J,K,L hacen de teclas de dirección
‘x’ borra letra
‘x’ + SHIFT borra letra anterior
’0′ inicio de línea
‘W’ palabra sigiuente
‘B’ palabra anterior

Borrar
d+c = caracter
d+w = palabra
d+d = linea

Copiar
y+c = caracter
y+w = palabra
y+d = linea

Pegar
d+c = caracter
d+w = palabra
d+d = linea

w, guardar.
wq guardar y salir
w! fuerza guardar
q salir
q! salir sin guardar

Modo Insertar

i carácter actual
I inicio de línea
a carácter actual
A final de línea
o abre una línea nueva antes de la actual
O abre una línea nueva después de la actual

Buscar
tecleamos / y el texto a buscar
n busca siguiente
N busca anterior

Reemplazar
Rangos / cadena_original /sustituto /flags

:%s sustituye todo el documento

Normalmente se puede añadir un número delante
:10x, :10dd, etc

Split
:split, trocea la ventana en dos partes.
:vsplit trocea verticalmente

CTRL+W+(teclas dirección) para moverse entre ventanas

Ejecutar comando y muestra output

1
:![comando]

Ayuda

1
:help

Links:

  • http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_04_02.html

Leave a Reply

Click here to cancel reply.

Nube de Tags

apache bare metal benchmark cacti centos dell drupal esxi General gripe A Hardware humor IIS kayako Linux lpi lyric Lyrics memcached mysql nginx openfiler OpenVZ openx Parallels php Phpbb plesk postgresql proftpd raid SQL Server ssh svn trac ubuntu varnish Virtualizacion Virtuozzo Virtuozzo Linux Warphammer.net Windows windows 2003 wordpress zabbix

Categorias

  • 2003 Server
  • Apache 2.X
  • benchmark
  • Centos
  • Cuanto (Luser) Cabron
  • ESXi
  • General
  • Hardware
  • IIS
  • Lighttpd
  • Linux
  • Lyrics
  • MySql
  • Nginx
  • OpenVZ
  • Parallels
  • Parallels Bare Metal
  • Php
  • Phpbb
  • Plesk
  • PostgreSQL
  • Prestashop
  • Software
  • SQL SERVER
  • Ubuntu
  • Varnish
  • Virtualizacion
  • Virtuozzo
  • Virtuozzo Windows
  • VMWare
  • Warphammer.net
  • Windows
  • Wordpress

Blogroll

  • David Toribio
  • EasyCompany.es
  • Marius Duch
  • Series
  • Warphammer.net

Recursos

  • Backup Plesk9
  • CentOS 5 32 bits RPMs
  • CentOS 5 64 bits RPMs
  • Lighttpd
  • MySQL Tunner
  • OpenVZ – Panel – PROXMOX
  • OpenVZ – Panel – VTONF
  • OpenVZ Wiki
  • Parallels Virtual Automation Resources
  • Plesk 8 Docs
  • Plesk 9 Docs
  • Plesk Hacker
  • Port80 – Compression Check
  • Virtuozzo DOCS
  • Virtuozzo Lin Commands
  • Virtuozzo Win Commands
  • Virtuozzo Windows Docu

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org
Designed by Elegant Themes | Powered by Wordpress