Linux Metacharacters යනු කුමක්ද සහ ඔබ ඒවා භාවිතා කරන්නේ කෙසේද?

විකිපීඩියාවට අනුව, metacharacter යනු චරිත (^), ඩොලර් සංඥාවක් ($) හෝ තරු ලකුණ (*) වැනි විශේෂ අර්ථයක් ඇති ඕනෑම චරිතයකි.

ලිනක්ස් අනුව, මෙම metacharacters හි සාධාරණ සංඛ්යාවක් ඇති අතර ඒවායේ තේරුම වෙනස් වේ. ඔබ විසින් ක්රියාත්මක කරන විධානය හෝ වැඩසටහන අනුව වෙනස් වේ.

මෙටාචාර්කැටික් ලෙස සම්පූර්ණ නැවතුම් (.)

නිහතමානී පුර්ණ නතර කිරීමේදී වර්තමාන තත්ත්වය පරිත්යාග කිරීම සඳහා cd , find හෝ sh, නමුත් awk , grep සහ sed වැනි යෙදීම් තුළ ඕනෑම චරිතයක් භාවිතා කිරීමට භාවිතා වේ.

නිදසුනක් ලෙස, පහත දැක්වෙන විධානය මඟින් වත්මන් ෆෝල්ඩරයෙහි සියළු mp3 ගොනු සොයා ගත හැක.

සොයා ගන්න. -name * .mp3

ඔබ විසින් එම විධාන පුවරුව (pwd) ඉදිරිපත් කරන විට ඔබ විසින් ක්රියාකරනු ලැබුවහොත්, ඔබ ඔබගේ ගෙදර ෆෝල්ඩරය තුළ සංගීත ෆෝල්ඩරයේ ඔබේ mp3 ගොනු රඳවා තබා ගැනිමට උපකල්පනය කරනු ඇත.

දැන් මෙම විධානය දෙස බලන්න:

ps -ef | grep f..efefox

Ps විධානය ඔබේ පරිගණකයේ සියලු ක්රියාදාමයන් ලැයිස්තුගත කරයි. Grep විධානය මඟින් ආදාන රේඛා සහ රටාවක් සොයයි.

එමනිසා, ps-ef විධානය මඟින් ධාවන ක්රියාවලි ලැයිස්තුවක් ලබා දෙයි, එහි f-fox වන ලැයිස්තුවේ ඕනෑම රේඛාවක් සොයන grep වෙත ලබා දෙයි. ඕනෑම චරිතයක් අදහස් කළ හැකිය.

ඔබ සතුව ධාවනය කර ඇත්නම් ඔබට ගැලපෙන තරඟයක් ලබා ගත හැක. ඒ හා සමානව, ඔබ ෆොනෙෆෝස් හෝ නිදහස් ෆේස්බොක්ස් ධාවනය කර ඇති වැඩසටහනක් තිබේ නම් ඒවා නැවත ලබා දෙනු ඇත.

මෙඩිසාරක් ලෙස තරු ලකුණ (*)

තරු ලකුණ සාමාන්යයෙන් සුප්රසිද්ධ metacharacter වන අතර එය රටාවක් සොයන විට 0 හෝ වැඩි ගණනක් අදහස් වේ.

උදාහරණයක් වශයෙන්:

සොයා ගන්න. -name * .mp3

* .mp3 යනුවෙන් අවසන් වන ඕනෑම ගොනු නාමයක් සඳහා තරඟය නැවත ලබා දෙයි. ඒ හා සමානව, මම තරු ලකුණ සඳහා පහත දැක්වෙන දර්ශන ලෙස භාවිතා කළෙමි:

ps -ef | grep F * efox

තරු ලකුණින් ශුන්ය හෝ ඊට වඩා වැඩි නිසා මෙය තරමක් දුරට වෙනස් වන බව සඳහන් කිරීම වටී වේ. එය ෆ්රීටෆොක්ස්, ෆේස්ෆෝක් සහ ෆොනෙෆෝක් සොයා ගැනීමෙන් ද සොයා ගත හැකිය.

කැරට් මෙටා කැරේක් ලෙස (^)

රේඛාව හෝ පේළියක ආරම්භ කිරීම සඳහා කර්තෘ (^) භාවිතා වේ. ඉතින් කොහොමද එය භාවිතා කරන්නේ?

Ls විධානය ෆෝල්ඩරයේ සියලුම ගොනු ලැයිස්තුගත කිරීම සඳහා භාවිතා කරනු ලැබේ:

ඔබට "gnome" වැනි කිසියම් අක්ෂරයකින් ආරම්භ වන ෆෝල්ඩරයක සියලුම ගොනු දැනගැනීමට අවශ්ය නම් එම කැබැතියට අදාලව කර්තෘට භාවිතා කල හැක.

උදාහරණයක් වශයෙන්:

ls | grep ^ gnome

මෙය පමණක් gnome සමඟ ආරම්භ වන ගොනු ලැයිස්තුගත කරයි. ඔබට අවශ්ය නම් ගොනුවේ ඕනෑම ගොනු නාමයක් ඇති නම්, ඔබ නැවතත් එම තරු ලකුණට ආපසු යා යුතුය.

ඉහත උදාහරණයේ දී, ls ගොනු නාමලේඛන ලැයිස්තුවක් ලබා දෙන අතර අනුපිළිවෙලට අනුරූප සඳහා භාවිතා කරන grep සඳහා එම ලැයිස්තුව ලබා දෙයි. ග්රැප්ට් යනු කාටාර් සංකේතය යනු එය පසුව පැමිණෙන චරිත සමග ආරම්භ වන ඕනෑම දෙයක් සොයා ගැනීමට සහ මෙම නඩුවේ දී එය ය.

ඩොලරය සංකේතය මෙටාචාර්කැටික් ($)

ඩොලරය සංකේතය ලිනක්ස් තුළ මෙටාසරක්රික් ලෙස බහු අර්ථ ඇති විය හැක.

අනුරූපවලට ගැලපෙන විට එය කැරට් වලට ප්රතිවිරුද්ධයයි. එය විශේෂිත පෙළකින් අවසන් වන ඕනෑම රටාවකි.

උදාහරණයක් වශයෙන්:

ls | grep png $

මෙය png සමඟ අවසන් කරන සියලුම ගොනු ලැයිස්තුගත කරයි.

බාර් ෂෙල් තුල ඇති පාරිසරික විචල්යයන් වෙත ඩොලරය සංකේතය ද භාවිතා කරයි.

උදාහරණයක් වශයෙන්:

අපනයන සුනඛයා = මල්ලී
echo $ dog

රේඛීය අපනයන සුනඛයා = මල්ලී බල්ලෙක් ලෙස හැඳින්වෙන පරිසර විචල්යයක් නිර්මාණය කරයි. පාරිසරික විචල්යය වෙත ප්රවේශ වීම සඳහා $ සංකේතය භාවිතා කෙරේ. ඩොලර් සංකේතය සමඟ echo $ dog ප්රකාශය නිහඬව පෙන්වන නමුත් එය නොමැතිව, echo dog ප්රකාශය වචනයෙන් සුනුවිසුනු කරයි.

මෙක්සිකෝ

සමහර විට ඔබට metacharacter විශේෂ අර්ථයක් තිබිය යුතුය. ඔබට f.refox ගොනුවක් හෝ ෆයර්ෆොක්ස් යනුවෙන් හැඳින්වෙන ගොනුවක් තිබේ නම් එය කුමක් ද?

දැන් පහත දැක්වෙන විධානය දෙස බලන්න:

ls | grep f.refox

ඔබ සිතන්නේ කුමක්ද? Both.reflex සහ firefox යන දෙකම දෙකම ඔවුන් රටට ගැලපෙන නිසා ආපසු යවනු ලැබේ.

ෆ්රෙෆොක්ස් වෙත නැවත පැමිණීම සඳහා ඔබ සම්පූර්ණයෙන්ම නැවතුම සම්පූර්ණයෙන්ම නැවත්වීමට අවශ්ය වනු ඇත:

ls | grep f \\ refox

පොදු සාධක සහ ඔවුන්ගේ අර්ථයන්

ලිනක්ස් මෙක්සිකෝවේ ලැයිස්තුව
ස්වභාවය අර්ථය
. ඕනෑම චරිතයක්
* Zero හෝ වැඩි චරිත
^ රටාවකින් ආරම්භ වන ඕනෑම රේඛාවක් හෝ අනුලකනයක් (එනම් ^ gnome)
$ රටාවකින් අවසන් වූ ඕනෑම රේඛාව හෝ පේළිය (gnome $)
\ එහි විශේෂ අර්ථය ඉවත් කිරීම සඳහා ඊළඟ චරිතය ඉවතට හැරේ
[] ලැයිස්තුවක් හෝ පරාසයකින් එකක් තෝරන්න (උදා: ["abc", "def"] හෝ [1..9]
+ පෙර හෝ ඊට වැඩි ගණනකට ගැලපීම (එනම් grep a +)
? පෙර ශුන්යය හෝ එක් තරගයක්