Cales son os metadatos de Linux e como usalos?

Segundo Wikipedia, un metacarácter é calquera personaxe que ten un significado especial, como un quilate (^), un sinal de dólar ($) ou un asterisco (*).

En termos de Linux, hai un bo número destes metadatos e os seus significados varían dependendo do comando ou programa que estea a executar.

A parada completa como metacaracterística (.)

O punto final humilde emprégase para doar a posición actual cando se executan comandos como cd , find ou sh, pero dentro de aplicacións como awk , grep e sed úsanse para denotar calquera carácter.

Como exemplo, o seguinte comando atopará todos os ficheiros mp3 no cartafol actual e debaixo.

atopar. -name * .mp3

Se executas ese comando no teu directorio de traballo actual (pwd) entón probablemente obteñas os resultados devoltos, supoñendo que gardas os teus ficheiros mp3 nunha carpeta de música dentro do teu cartafol persoal.

Agora mira este comando:

ps -ef | grep f..fox

O comando ps enumera todos os procesos en execución no seu computador. O comando grep toma liñas de entrada e busca un patrón.

Polo tanto, o comando ps -ef obtén unha lista de procesos en execución e dálle a grep o que busca calquera liña na lista que ten f. Ofox onde está a. pode significar calquera personaxe.

Se ten firefox en funcionamento, obterá unha coincidencia. Do mesmo xeito, se tes un programa chamado fonefox ou freefox, tamén se devolverán.

O asterisco como metacarácter (*)

O asterisco é un caracter metacharacter máis coñecido e é usado para significar 0 ou máis cando se busca un patrón.

Por exemplo:

atopar. -name * .mp3

O * .mp3 devolve unha coincidencia para calquera nome de ficheiro que remata en .mp3. Do mesmo xeito, podería ter usado o asterisco co comando grep como se mostra a continuación:

ps -ef | grep F * efox

É interesante notar que isto difire ligeramente porque o asterisco significa cero ou máis, así como atopar Firefox, Facefox e Firefox tamén pode atopar flutefox, Ferretfox e mesmo só fefox.

O Carat como un metacarácter (^)

O quilates (^) úsase para denotar o inicio dunha liña ou dunha cadea. Entón como se usa?

O comando ls úsase para listar todos os ficheiros nunha carpeta como segue:

ls

Se desexa coñecer todos os ficheiros nunha carpeta que comeza cunha cadea determinada, como "gnome", entón o quilates pode usarse para especificar esa cadea.

Por exemplo:

ls | grep ^ gnome

Lembre que isto só lista os ficheiros que comezan co gnome. Se desexa que os ficheiros que conteñan un gnome no nome do ficheiro en calquera lugar, entón volverían nuevamente ao asterisco.

No exemplo anterior, o ls devolve unha lista de nomes de ficheiro e pasa esa lista a grep que se usa para a correspondencia de patrón. grep sabe que o símbolo de quilates significa atopar algo que comeza cos personaxes que vén despois e, neste caso, é un gnomo.

O símbolo do dólar como metacarácter ($)

O símbolo do dólar pode ter varios significados como metacarácter dentro de Linux.

Cando se usa para combinar os patróns significa o oposto ao quilate e denota calquera patrón que remata cunha cadea particular.

Por exemplo:

ls | grep png $

Isto lista todos os ficheiros que terminan con png.

O símbolo do dólar tamén se usa para acceder ás variables de entorno dentro do shell bash.

Por exemplo:

can de exportación = molly
eco $ can

O can de exportación de liña = molly crea unha variable de ambiente chamada can e establece o seu valor molly. Para acceder á variábel de entorno úsase o símbolo $. Co símbolo $, a declaración de eco $ dog mostra molly pero sen ela, a declaración do can de eco só mostra o can de palabras.

Escapando de Metacharacters

Ás veces non quere que o metacarácter teña un significado especial. E si tes un ficheiro chamado f.refox e un arquivo chamado firefox.

Agora mira o seguinte comando:

ls | grep f.refox

¿Que pensas que se devolve? Ambos f.refox e firefox son devoltos porque coinciden co patrón.

Para regresar só a f.refox necesitará escapar do punto final para significar un punto final como segue:

ls | grep f \\. refox

Metacarallos comúns e os seus significados

Lista de metacaracteres de Linux
Personaxe Significado
. Calquera personaxe
* Cero ou máis caracteres
^ Coñeza calquera liña ou cadea que comecen cun patrón (ie ^ gnome)
$ Combina calquera liña ou cadea que remata cun patrón (ou sexa, gnome $)
\ Escapa o seguinte carácter para eliminar o seu significado especial
[] Unir unha lista ou intervalo (ou sexa, "abc", "def") ou [1..9]
+ Combina un ou máis precedentes (isto é, grep a +)
¿? Combina cero ou un precedente