میتوانید کاری کنید که سیستم های لینوکس تان عملکرد خوبی داشته باشند، در برابر خطراتی که یکپارچگی سیستم را تهدید می کنند، مقاومت کنند، در مقابل حمله هکرها مقاومت کنند، مشکلات را گزارش دهند، و کاربر هرطور با آنها رفتار کند، آنها خوب و آرام کار کنند. اما، آیا می توانید کاری کنید که کارهای مسخره انجام دهند؟ بیایید به یک سری ابزار عجیب و غریب که احتمالاً چیزی از آنها نشنیده اید، نگاهی بیاندازیم.
9 فرمان عجیب لینوکس
Shuf
فرمان Shuf – کوتاه شده ی “Shuffle” است و خطوط فایل را از راهی تقریبا تصادفی میشناسد. مثلاً یک فایل میتواند شامل روزهای هفته باشد و می توانیم آنها را از ۵۰۴۰ راه مختلف ( ۷ * ۶ * ۵ * ۴ * ۳ * ۲ ) دوباره بچینیم. احتمالاً راه خوبی هم هست که مشخص کنیم طی چند هفته ی آینده نوبت کیست که شیرینی بیاورد!
$ shuf Days-of-Week
Monday
Tuesday
Wednesday
Saturday
Thursday
Sunday
Friday
$ shuf Days-of-Week
Sunday
Saturday
Wednesday
Tuesday
Thursday
Monday
Friday
نیازی نیست نتیجه ی کل shuffle را هم ببینید، میخواهید بفهمید کدامیک از همکارانتان طی هفته شیرینی می آورند؟ نیازی به کشیدن کل آن نیست. فقط خروجی را به سه فرمان shuf با گزینه ی –n مثل زیر، محدود کنید:
$ shuf -n 3 staffJamesKevinMay
میتوانید بازه ای از اعداد را هم shuffle کنید:
$ shuf -i 2-11811794210563
و میتوانید از یک بازه ی خیلی بزرگ عددی، یک سری اعداد به خصوص را انتخاب کنید:
$ shuf -n 5 -i 1-1000859521494982
Rev
فرمان rev در لینوکس خطوط را معکوس می کند، چه به عنوان دستور استاندارد تایید شده باشد، چه در یک فایل ذخیره شده باشد.
$ echo Hello, World! | rev!dlroW ,olleH$ rev Days-of-WeekyadnuSyadnoMyadseuTyadsendeWyadsruhTyadirFyadrutaS
Tac
فرمان tac در لینوکس هم تقریبا مثل فرمان معکوس است و معکوس آن کلمه cat می شود. محتوای یک فایل را نشان میدهد، ولی با ترتیب برعکس. احتمالاً خیلی وقتها ممکن است این فرمان به کار بیاید، وجود این فرمان هنوز هم برای من عجیب است.
$ tac Days-of-WeekSaturdayFridayThursdayWednesdayTuesdayMondaySunday
Sl
و اگر tac به اندازه کافی عجیب نبود، فرمان sl را هم داریم که کسانی را تنبیه کند که به جای /s اشتباهی s/ را تایپ کردند. تنبیهشان چیست؟ یک قطار ( مثلا لوکوموتیو ) که از صفحه آنها عبور می کند.
(@@) ( ) (@) ( ) @@ () @
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)— | H\________/ | | =|___ ___|
/ | | H | | | | ||_| |_||
| | | H |__——————–| [___] |
| ________|___H__/__|_____/[][]~\_______| |
|/ | |———–I_____I [][] [] D |=======|__
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|
|/-=|___|= || || || |_____/~\___/
\_/ \O=====O=====O=====O_/ \_/
Look
فرمان look میتواند اوقاتی که میخواهید کلماتی با رشته های به خصوص پیدا کنید مفید باشد. در مثال زیر، به دنبال کلماتی می گردیم که با رشته ی “fun” شروع شده باشند.
$ look fun | head -11
fun
funambulant
funambulate
funambulated
funambulating
funambulation
funambulator
funambulatory
funambule
funambulic
funambulism
اما look چیزهای دیگری را هم پیدا می کند:
$ look sandra
Sandra
sandra
Sandrakottos
فرمان look از فایل کلمات سیستم شما استفاده می کند (usr/share/dict/words) و فقط کلماتی را پیدا می کند که با رشته ی دلخواه شما “شروع” می شود. فرمان grep –i در اکثر موارد تطبیق های بیشتری پیدا می کند.
Yes
فرمان yes شما را در حلقه ای می اندازد که همان رشته را دوباره و دوباره تکرار می کند. گاهی وقت ها میتواند مفید باشد، اما به هر حال، فرمان مسخره ای به نظر می رسد. گاهی مردم از آن استفاده می کنند تا هر مقدار پاسخ “yes” ای که مورد نیاز اسکریپت باشد را تهیه کنند.
رفتار پیشفرض yes فراهم کردن حلقه ی بی انتهایی از پاسخ های “y” است:
$ yes | head -4
y
y
y
y
البته در میتوانید رشته ی مورد نظر خود را هم بگذارید:
$ yes Please loop forever | head -11Please loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop foreverPlease loop forever
Cowsay
احتمالاً عجیب ترین فرمانی که لینوکس دارد فرمان cowsay است که یک گاو را با کد ASCII نشان میدهد و هر آنچه را که شما بخواهید می گوید. اینجا یک مثال وجود دارد. توجه کنید که دکمه Escape به علامت آپستروف ( ‘ ) اجازه میدهد نمایش داده شود.
$ cowsay I don\’t moo for just anyone
_____________________________
< I don’t moo for just anyone >
—————————–
\ ^__^
\ (oo)\_______
(__)\ )\/\
||—-w |
|| ||
Factor
فرمان عجیب ولی نه چندان مسخره ی دیگر، فرمان factor است که از عددی که به آن بدهید ضریب و عامل مشترک میگیرد. الان عددی وارد کردم که دو ضریب داشت:
$ factor 33431
33431: 101 331
با فرمان expr هم می توانید عکس این کار را انجام دهید و از درست بودن آن مطمئن شوید:
$ expr 101 \* 331 33431
Figlet
آخرین فرمان عجیب که میخواهم درباره آن صحبت کنم figlet نام دارد، از تعداد کمی کاراکترهای بزرگ شده ی کیبرد استفاده میکند تا متون را مثل بنر درست کند.
$ figlet Show me!
____ _ _
/ ___|| |__ _____ __ _ __ ___ ___| |
\___ \| ‘_ \ / _ \ \ /\ / / | ‘_ ` _ \ / _ \ |
___) | | | | (_) \ V V / | | | | | | __/_|
|____/|_| |_|\___/ \_/\_/ |_| |_| |_|\___(_)
نکته ی خیلی جالب درباره فرمان figlet این است که چه گزینه هایی در دسترس است. یک نفر زمان زیادی گذشته تا مطمئن شود این فرمان خروجی درستی می دهد. گزینه ها شامل تفاوت فونت ها، تطبیق خطی، مجموعه کاراکترها و غیره می شود. در فرمان زیر، میگوییم از پهنای صفحه ی 40 استفاده کن و خروجی را در مرکز صفحه قرار بده.
$ figlet -w 40 -c Can you do this?
____
/ ___|__ _ _ __ _ _ ___ _ _
| | / _` | ‘_ \ | | | |/ _ \| | | |
| |__| (_| | | | | | |_| | (_) | |_| |
\____\__,_|_| |_| \__, |\___/ \__,_|
|___/
_ _ _ _ ___
__| | ___ | |_| |__ (_)__|__ \
/ _` |/ _ \ | __| ‘_ \| / __|/ /
| (_| | (_) | | |_| | | | \__ \_|
\__,_|\___/ \__|_| |_|_|___(_)
اینجا مثالی از این است که ورودی کجا از فایل گرفته می شود، فونت اسکریپت استفاده می شود، و پهنای صفحه کنترل می شود که بیش از یک روز هفته در هر خط نداشته باشیم – خروجی خلاصه می شود.
$ figlet -f script -w 60 -p < Days-of-Week
() |
/\ _ _ __| __,
/ \| | / |/ | / | / | | |
/(__/ \_/|_/ | |_/\_/|_/\_/|_/ \_/|/
/|
\|
,__ __
/| | | |
| | | __ _ _ __| __,
| | | / \_/ |/ | / | / | | |
| | |_/\__/ | |_/\_/|_/\_/|_/ \_/|/
/|
\|
به من گفته شده که figlet ( که بهار 1991 ساخته شد) به چند ماه قبل از لینوکس باز میگردد و در گستره ی وسیعی از سیستم های عامل قابل دسترسی است.
امیدوارم که این اطلاعات برای شما سرگرم کننده بوده باشد.
منبع: gotoclass