شرتکات فوکوس روی پنجره ایمکس

خوب، امروز پست شاهین در مورد استفاده از ایمکس به عنوان ترمینال رو دیدم. یه مدت خودم هم این فکر رو تو سرم داشتم، ولی تنبلی نمیذاره کاری بکنیم ;)‏

خوب، این پست رو میخونم. همه جا تا multi-term خوب و خوش پیش میره. ولی وقتی به تنظیمات i3 میرسم، یه چیز جالب یادم میفته: دسکتاپ من i3 نیست! چاره چیه؟
باید پنجره ایمکس رو طوری بکنم که با یه شرتکات بیاد و بره. اوپن باکس به هیچ وجه تو مدیریت پنجره‌ها از طریق خط فرمان خوب نیست. پس باید یه راه دیگه پیدا کنم. با یه سرچ، به یه ابزار داخلی X میرسم: xdotool. کمی تو راهنماش میچرخم و چیزهایی رو که لازم هستن پیدا میکنم. چیزایی مثل مینیمایز کردن، بالا آوردن و گرفتن آی‌دی پنجره. خوب، فقط مونده این‌ها رو ترکیب بکنیم. یه اسکریپت کوتاه می‌نویسیم:
‎#! /bin/bash

id="$(xdotool search –name –limit 1 emacs@$HOST)"‎
active="$(xdotool getactivewindow)"‎

if [ "$id" = "" ]; then
zenity –error –title "Error" –text "No emacs is running\!"‎
exit 1
fi

if [ $id != "$active" ]; then
xdotool windowmap $id
xdotool windowfocus $id
else
xdotool windowminimize $id
fi

اول بگم که اگه بخواین این رو کپی کنین، یه سری کاراکتر برای درست نشون دادن این کد گذاشتم. پس اگه بخواین کپیش کنین، اول چک کنین ببینین کاراکتر اضافی دارین یا نه.
خوب، میشه گفت هرکسی با یه نگاه میتونه بگه این اسکریپت چیکار میکنه. ولی به هر حال توضیح میدم. اولین سطر که میگیم با بش اجرا کن. بعد، آی‌دی پنجره‌ای رو که اسمش emacs@HOSTNAME هست، میگیرم (HOSTNAME همون اسم کامپیوتره منه) که همون پنجره ایمکسه و میذارم تو متغیر id. بعد، آی‌دی پنجره فعال رو میگیرم و اونو هم میندازم تو متغیر active. حالا چک میکنم ببینم اصلا پنجره ایمکسی هست یا نه. اگه نباشه با zenity یه ارور میدم و میزنم بیرون. حالا یه if دیگه میذارم که ببینم پنجره فعال همون ایمکسه یا نه. اگه باشه، مینیمایزش میکنم و اگه نباشه، میارمش بالا و روش فوکوس میکنم.
خوب، حالا این رو تو یه فایل میریزم و یه شرتکات دلخواه براش تعیین میکنم و تمام.
ولی من شخصا زیاد از ترمینال ایمکس خوشم نیومد. بعضی شرتکات‌ها رو ساپورت نمیکنه (که نباید هم بکنه. به هر حال شرتکات‌های خودشه دیگه!) و بعضی کارهای دیگه هم نمیشن.
ولی به هر حال این کد رو نگه میدارم تا شاید یه روز برای برنامه دیگه‌ای، مثل GoldenDict، ازش استفاده بکنم 😉

یه گیگ‌بازی کوچولو: دانلود ده تا فایل پی‌دی‌اف از «ستاد سلام »

دیروز، کسی از گوگل پلاس، که یادم نیست کی بود، این لینک رو از ستاد سلام شیر کرده بود. درمورد چیزایی مثل حقوق زنان هست. می‌خواستم تمام فایل‌های پی‌دی‌اف رو دانلود بکنم، ولی در شأن یه گیک نیست که تک به تک بشینه فایل‌ها رو دانلود بکنه 😉 پس یکی دو خط کد می‌زنیم.
اول، باید یه فایل اچ‌تی‌ام‌ال از اون صفحه ستاد سلام بگیرم:
wget "http://www.setadsalam.net/paper-tools/trakt-nevisi" -O trakt_nevisi.html

حالا، باید لینک‌ها رو از فایل جدا کنیم و بذاریم تو یه فایل دیگه:
cat trakt_nevisi.html | grep -Po ‹href="(.*?)\.pdf"› | cut -d\" -f2 | uniq | sed "s|^|http://www.setadsalam.net|g" | tee URLs

خلاصه این کد اینه که اول با grep و cut آدرس‌ها رو از فایل جدا می‌کنیم، بعد چون هر آدرس یه بار هم تکرار شده، تکراری‌ها رو حذف می‌کنیم و بعد، به خاطر این که اولشون اسلش (/) هست و نه آدرس سایت، آدرس ستاد سلام رو هم به اولش اضافه می‌کنیم. بعدش هم با tee آدرس‌ها رو تو فایل URLs میذاریم.
خوب، حالا فقط دانلودشون مونده:
wget -i URLs
با آپشن ‎-i به wget میفهمونیم که باید آدرس‌ها رو از فایل URLs بگیره.
حالا برای اطمینان، تعداد فایل‌ها رو بررسی می‌کنیم:
‎ $ ls *.pdf | wc -l
‎10
خوب، ده تا کلیک صرفه‌جویی شد 😉

پی‌نوشت: این پست و پست قبلی رو با ایمیل به وردپرس فرستادم. واسه همین تا وقتی که بتونم سد فیلترینگ رو رد بکنم، این دو مطلب و شاید مطالب بعدی رو به دسته خاصی نمی‌تونم اضافه بکنم.

مسابقه‌ی سیتو: چرا گنو/لینوکس را دوست دارم؟

مسابقه: چرا گنو/لینوکس را دوست دارم

اول بگم که قالب وبلاگ عوض شده. از تم پیش‌فرض وردپرس خسته شده بودم.

وبسایت سیتو (که یه فروشگاه برای وسایل لینوکسی هست و برای همایش‌ها و مسبقات زیادی کمک کرده) مسابقه‌ای برگذار کرده که برای شرکت در اون، باید مطلبی تو وبلاگ (یا شبکه‌های اجتماعی مختلف) بنویسیم و بدیم بهشون.

بذارین دلیل دوست داشتن لینوکس رو از طریق آشنایی باهاش شروع کنم. اوایل من اصلا نمیدونستم لینوکس چی هست. ولی یه روز یکی بهم فدورا هدیه کرد. پرس و جو کردیم دیدیم فدورا برای شروع زیاد خوب نیست! پس رفتیم سراغ اوبونتو. دانلود شد، ولی هیچوقت نصب نکردم. تا اینکه ۶ ماه بعدش، مینت رو نصب کردم. اول فقط برای امتحان بود. بعد برای کلاس گذاشتن! بعدش، کم‌کم با فلسفش هم آشنا شدم. خوشم اومده بود. اون موقع من سی‌شارپ کار میکردم، به همین خاطر سخت بود مهاجرت به لینوکس. باید هرچیزی بلد بودم ول میکردم. پس ویندوز رو نگه داشته بودم برای وقتایی که برنامه نویسی میکردم. ولی در عین حال، شروع کردم به یادگیری پایتون. خوب بود. کم‌کم از سی‌شارپ دور شدم.

وقتی این‌ها رو یاد میگرفتم، شروع کردم به یادگیری خط فرمان. دوست داشتم کمتر از موس استفاده کنم. طوری که الان غیر از وبگردی، برای تقریبا هیچ کاری از موس استفاده نمیکنم. ولی بعد از شروع، با دیدن پست‌های جادی، فهمیدم که دنیای خط فرمان خیلی وسیع‌تر از اون چیزیه که من فکر میکردم. اسکریپت‌نویسی رو دوست داشتم. خوشم میومد که کارهای بزرگ رو با چند خط کد تموم کنم. پس این‌دفعه جدی‌تر شدم. دیگه برای فان یاد نمیگرفتم. برای راحت‌کردن زندگی مجازیم بودن. پایتون، پرل، شل‌اسکریپتینگ. همشون عالی بودن. ولی شل‌اسکریپتینگ به نظرم خیلی بهتر بود. ابزارهای مختلف رو ترکیب بکنی و یه نتیجه بدی بیرون. فوق‌العادست.

به جایی رسیده بودم که دیگه فایل‌منیجرها هم برام بی‌معنی شده بودن. غیر از مرورگر و چند تا برنامه چت و کلاینت شبکه‌های اجتماعی، تقریبا از هیچ برنامه گرافیکی استفاده نمیکردم. برام لذت‌بخش بود. دوست داشتم همه چیز رو خودم بسازم.

اوایل با Cinnamon و Mate بودم. بعد دیگه خسته شدم. رفتم به طرف KDE، گنوم، Xfce و یونیتی. Xfce عالی بود. ولی باز هم برای منی که عاشق ساختن دسکتاپم بودم، خوب نبود. رفتم سراغ مدیرپنجره‌ها. تو وبلاگ شاهین خونده بودم که Awesome خوبه. نصبش کردم، ولی چون درک خوبی از مدیرپنجره‌ها نداشتم، نفهمیدم چطور باید کار بکنم. ولش کردم. فکر میکردم هنوز برام زوده. چند ماه رو با Xfce گذروندم. بعد مینت رو پاک کردم و فدورا نصب کردم و از گنوم ۳ استفاده کردم. واقعا تجربه‌ی بدی بود. از دست فدورا کلافه شده بودم، پس اوبونتو نصب کردم و دسکتاپم شد یونیتی. جالب بود که بعد از این‌همه مدت، اولین بار بود که اوبونتو نصب کرده بودم. بعد از اون، به طور اتفاقی چند تا مقاله درمورد اوپن باکس خوندم. به نظر خوب میومد. نصبش کردم. با راهنمای ایمان، نصب و کانفیگش کردم. عالی بود. موندگار شدم.

بعد از مدتی، از اوبونتو خسته شدم. مشکلات زیادی داشت. البته هنوز برای یه کاربر تازه‌کار گزینه خوبی بود. دنبال توزیع دیگه‌ای گشتم. می‌خواستم بین دبین، آرچ و اسلکور یکی رو انتخاب بکنم. حجم دبین زیاد بود و دانلودش طول میکشید. تازگی زیادی هم برام نداشت. به شاهین چند تا ایمیل درمورد اسلکور زدم. فهمیدم که توزیعی بدون مخازن نرم‌افزاری پر، به کارم نمیاد. آرچ هم خاطره خوبی نداشت برام. (اول کار یه بار نصبش کرده بودم و چون بلد نبودم گراب رو کانفیگ بکنم، گیر کرده بودم تو آرچ، اونم بدون گرافیک. البته گرافیک داشتم، ولی فقط X خالی که به خاطر مشکل با GTK، هیچ چیزی درست کار نمیکرد. حتی Xfce) ولی دلو زدم به دریا و دوباره آرچ نصب کردم. میدونستم که این‌بار گراب برام مشکلی ایجاد نمیکنه. چون بلدش بودم.

عالی بود! بهتر از اون چیزی که فکرشو میکردم. اوپن‌باکس رو کانفیگ کردم و خیلی بهتر از قبل شد. آرچ توزیع همیشگیم شده بود. از همه‌ی چیزهایی که به دردم میخوردن خبر داشتم. احساس امنیت میکردم. این که همه چیز رو درمورد سیستم‌عاملی که باهاش کار میکنین بدونین، فوق‌العاده بود.

الان لینوکس همه چیز من هست. عاشقشم. دوست دارم یادش بگیرم، توسعش بدم و درموردش بنویسم. دوست دارم با گیک‌ها آشنا بشم. کسایی که مثل من فکر میکنن. جالب اینجاست که بیشتر لینوکسی‌ها، از نظر سطح فکری هم بالا هستن. برنامه‌نویس، هکر، کتاب‌خون. لینوکسی‌ها سطح فکری بالایی دارن. نمیگم ویندوزی‌ها اینطور نیستن، ولی از نظر درصد، لینوکسی‌ها بالاترن. من دوست دارم با کسایی که گسترده‌تر فکر میکنن باشم. کسایی که سنت‌ها رو میذارن کنار و با عقلشون تصمیم میگیرن. اونایی که کسی رو مجبور به کاری نمیکنن. منتقدها. طرفدارهای آزادی. اینا کسایی هستن که من میخوام باهاشون باشم.

ترجمه: من بچه‌هام رو با خط فرمان به بار آوردم… و اونا عاشقشن

امروز داشتم فید ریدرم رو چک میکردم که این پست خوب رو توی لایف‌هکر دیدم. حیف بود ترجمش نکنم. ببخشید اگه ترجمش زیاد خوب نشده.

دو سال قبل، پسر سه ساله من جِیکوب (Jacob) و من اولین کامپیوتر اون رو باهمدیگه ساختیم. من روش دبین نصب کردم، ولی به هیچ وجه GUI نذاشتم. این خط فرمان بود و سرگرمی زیادی تو این دو سال با خودش آورد. صورت متعجبی از مردم میبینم وقتی که توضیح میدم پسر من از سه سالگی میتونسته به شل لینوکس لاگین بکنه. به خصوص وقتی میگم زیاد هم سخت نبود. به جای یاد دادن بالا آوردن Xbox، اون یاد گرفته که چطور بش رو باز بکنه. من اینو دوست دارم.

تازگیا، جیکوب (الان ۵ سالست) مدت زمان زیادی رو باهاش سپری نمیکنه. من فکر کنم اون هنوز تو مرحله‌ای نیست که محدودیت‌هاش رو رد بکنه، ولی داره خسته میشه. پس فکر کردم بهتره GUI رو به یه روش محدود شروع بکنم تا بهش اجازه بدم عکس و ویدیو از دوربین اسباب‌بازی Vtechش بگیره (اون ویدیو‌ها و عکس‌های low-res (کم پژوهش؟)ی داره که با USB1 میشه گرفتشون). جیکوب با مفهوم GUI آشنا هست، چون تو کامپیوتر Terah (احتمالا همسرشه) (گنوم ۲) و من (Xfce و xmonad) رو دیده.

پس شب قبل، اولیور (Oliver) دو ساله و من رفتیم به زیرزمین به جستجوی موس. مطمئن بودم که من یه موس PS/2 قدیمی اونجا داشتم که خوب کار میکرد. هر دو پسر بهم کمک کردن که تو اتاق بازی، سیم اون رو وصل کنیم به کامپیوتر. خیلی هیجان‌زده شدن وقتی کامپیوتر بالا اومد و چراغ قرمز زیر موس رو دیدن. خیلی سخته توضیح بدم چقدر هیجان‌زده بودن. یادمه منم موقعی که اولین موسم رو خریدم اینقدر هیجان‌زده بودم (فکر کنم یه کم سنم بالاتر بود).

به جیکوب کمک کردم که برای اولین بار با یوزر ریشه (root) لاگین بشه (جیکوب نوشت root، من پسورد رو زدم و شروع کردم به توضیح دادن که چرا داریم به کامپیوتر میگیم که ما یوزر ریشه هستیم). جیکوب و اولیور چند خط دستور apt-get زدن. وقتی منتظر بودیم برنامه دانلود بشه، من مجبور بودم به سوال‌های تکراری «چطور موس قراره کار بکنه؟» و «نصب یعنی چی؟» جواب بدم.

بالاخره تموم شد و من به جیکوب گفتم بنویسه startx. من عمدا دسکتاپ نصب نکردم. اون بمونه برا بعد. جیکوب اینتر رو زد. صفحه ۵ ثانیه سیاه شد و X اومد. کلمه «هیجان‌زده» نمیتونه توضیح بده که اونا تو چه حالی بودن. اون به نوبت با موس بازی میکردن. عاشق این شده بودن که چطور آیکون سطل‌زباله، آشغال رو تو خودش نشون میداد (با Xfce شروع کردم).

ولی اونا فقط موس رو یاد میگرفتن، و کلی چیز درمورد GUI وجود داره که برای کسی که هنوز با موس حرفه‌ای نیست، سخته. کلیدهای بستن پنجره کوچیک بودن و پنجره‌ها خیلی راحت میتونستن رو و زیر پنل‌ها و منوها برن. وقتی من نشستم و درموردش فکر کردم، دیدم این نوع طراحی GUI یه چیزی که «همیشه همونجور کار بکنه» ارائه نمیده که برای یه بچه مناسب باشه.

و اون موقع به فکرم رسید: بهترین GUI برای یه بچه xmonad (یه Tiling WM که میتونه تقریبا به طور کامل به وسیله کیبورد استفاده بشه و نیازی به موس نباشه) هست. نه دسکتاپی، و نه فایل‌منیجری. فقط یه مدیر پنجره با راه کلاسیک X. بله!

پس بعد از اینکه پسرا رفتن به تختشون، من xmonad رو نصب کردم. من رو اکانت جیکوب یه .xsession‎ ساده گذاشتم که یه xmonad و یه ترمینال اجرا بکنه.

امروز، جیکوب بهم گفت که میخواد کامپیوترش عینا مثل مال من باشه. دقیقا چیزی که میخواستم! ولی وقتی اون با هیجان startx رو زد، گفت این دقیقا مثل مال من نیست. او اوه! مثل اینکه میخواست والپیپرش هم مثل مال من باشه. واو! فهمیدم که xli (؟) تو پنجره روت اجرا میشه و من باید یه خط دیگه به .xsession اضافه میکردم. شوق بیشتر!

جیکوب خیلی سریع تو استفاده از کلیدهای میانبر xmonad ماهر شد. Alt-Shit-C برای بستن یه پنجره. Alt-Shift-Q برای بازگشت سریع به «صفحه سیاه بزرگ».  Alt-Shift-Enter برای باز شدن یه پنجره ترمینال.

ما thunar (فایل‌منیجر Xfce) رو اجرا کردیم و دوربین جیکوب رو وصل کردیم. اون داشت از دیدن عکس‌ها و ویدیوهای اون لذت میبرد. ولی اونوقت من لذت اصلی روز رو براش آوردم: پیشنهاد دادم که براش Tuxpaint رو نصب بکنم. این احتمالا برنامه مورد علاقش هست.

اون بی‌صبرانه apt-get رو که 1m30s برای Tuxpaint و لایبرری‌هاش پایین میومد نگاه کرد. بعد اجراش کردیم و اون خواست که شام رو برای بازی با Tuxpaint رد بکنه، تو «کامپیوتر مخصوص خودش».

من برای مدت زیادی فکر میکردم چطور GUI رو شروع بکنم. توجه میکردم که بچه‌هایی که از Commodores یا TRS-80s یا DOS استفاده میکردن، خیلی بیشتر در مورد کارکرد کامپیوترشون میدونستن تا کسایی که تو همون سن از ویندوز یا مک استفاده میکردن. من نمیخواستم که پسرامون مرحله یاد گرفتن کارکرد تکنولوژی که باهاش کار میکنن رو رد بکنن. من با این راه‌حلم خوش‌حالم. اون‌ها هنوز برای اجرای برنامه‌ها از کامندها استفاده میکنن، تا وقتی که از برنامه‌های گرافیکی بیشتر از برنامه‌های تحت خط‌فرمان استفاده بکنن.

موقع خواب، جیکوب ازم خیلی جدی پرسید:

– بابا، من چطور Tuxpaint رو دوباره اجرا بکنم؟

– اول لاگین بکن و بنویس startx. اونوقت میتونی از موس استفاده بکنی.

جیکوب با سرش اشاره میکنه و با یه قیافه متفکرانه…

– و؟

من ادامه میدم،

– تو ترمینال مینویسی tuxpaint، و اون بالا میاد.

جیکوب سرش رو برای بار دوم خیلی جدی تکون میده و این اطلاعات بسیار مهم رو به حافظه‌ی بلند‌مدتش میسپاره. بعد کمی هیجان‌زده میشه و فریاد میکشه «عالیه!»، و به خواب فرو میره.

و بالاخره… مهاجرت به OpenBox

دیروز تصمیم گرفتم اوپن‌باکس رو کانفیگ بکنم بالاخره. از ساعت 6 7 عصر تا چهار نصف شب مشغولش بودم. ولی ارزشش رو داشت. برای اولین بار فهمیدم توی دسکتاپم چی میگذره و از کدوم برنامه‌ها استفاده میشه. یه اسکرین‌شات هم از دسکتاپم گرفتم:

ابزارهای استفاده شده هم اینا هستن:

پنل بالایی: fbpanel

بار پایینی: wbar

آیکون‌های دسکتاپ: idesk

بکگراند صفحه: با feh تنظیم شده. والپیپر هم از سایت HD Wallpapers هست.

برنامه‌های GTK رو با lxappearance تنظیم کردم که با تم Oxygen باز بشن.

تم اوپن‌باکسم هم Thebear هست.

برای کانفیگ هم از آموزش ایمان کمک گرفتم.

اینم یه دلیل برای دوست داشتن لینوکس! همه چیز دست خودمونه و میتونیم هرچیزی رو تنظیم کنیم.

هک بازی‌ها در لینوکس یا چرا نرم‌افزارهای آزاد؟

توی لینوکس، برنامه‌ها از فایل‌ها برای ذخیره اطلاعاتشون استفاده میکنن. بازی‌ها هم همینطور. واسه همین، اطلاعات بازی‌ها از جمله امتیازو تعداد مراحل رفته شده رو میشه از این فایل‌ها تعیین کرد. مثلا من بازی Chromium B.S.U رو طوری کردم که تا مرحله 25 باز باشه. درحالی که تا به حال نتونستم مرحله 13 رو رد کنم! چطور؟ خیلی ساده، از این فایل:

~/.chromium-bsu

معمولا این فایل‌های تنظیمات توی دایرکتوری خانه هستن. ولی بعضی مواقع توی /etc هم قرار میگیرن.

توی ویندوز هم میشه بازی‌ها رو هک کرد، ولی فقط وقتی ممکنه که یه کرکر حرفه‌ای و برنامه‌نویس اسمبلی و این چیزا باشیم.
معمولا همه میگن لینوکس خیلی سخته. ولی به نظر من، وقتی دانش ابتدایی رو داشته باشیم و بدونیم که لینوکس چطور کار میکنه و بتونیم مشکلاتمون رو حل کنیم، بقیه کارها و تنظیمات و اینجور چیزا خیلی ساده‌تر از ویندوز هستن. این یه نمونه کوچیک برای بازی‌ها بود. ولی چیزای بیشتری هم وجود دارن. مثلا من فکر نکنم کسی بتونه توی ویندوز کاری بکنه که پارتیشن‌هایی که خودش میخواد هنگام بوت مونت شه و بقیه رو هروقت خواست مونت کنه. درحالی که توی لینوکس این از طریق فایل /etc/fstab خیلی ساده ممکنه. لینوکس، چیزی هست که اولین روزها ازش دلخور میشین، چون همه چیز «خودکار» نیست و باید بعضی چیزها رو خودمون تنظیم کنیم. بعد از حرفه‌ای‌تر شدن این یه مزیت به حساب میاد و به همین دلیله که بیشتر کاربرای حرفه‌ای (درواقع اونایی که میخوان بیشتر از کامپیوترشون سر در بیارن) به توزیع‌هایی مثل آرچ و اسلکور کوچ میکنن.
این که ما بتونیم انتخاب کنیم چی به چی باشه، حق انتخابه که همیشه خوبه و درواقع، بخشی از «فرهنگ گنو/لینوکس» هست. ولی توی ویندوز و مک، مایکروسافت و اپل میگن «ما هرچی بگیم خوبه، پس شما مجبورین از اون استفاده کنین». توی لینوکس و بقیه سیستم‌عامل‌های آزاد و کلا نرم‌افزارهای آزاد، شما حق دارین به سیستمتون بگین «من اینو دوست دارم / لازم دارم و میخوام سیستمم اینطوری باشه» و خودتون رو از دست انحصارطلبی‌های مایکروسافت و اپل خلاص بکنین.

پس، گنو/لینوکس خوبه، چون به شما حق انتخاب و آزادی میده.

بیشترین کامندهای مورد استفاده من

امروز یه چیزی به ذهنم رسید. اینکه ببینم از۵۰۰ تا کامند توی هیستوری، کدومشون استفاده بیشتری داشتن؟

خوب، اول تمام تاریخچه رو میریزم به یه فایل:

history > history

بعد این کامند(ها) رو میزنم:

afterpc@apcubuntu 05:10:16 PM  ~ $ cat history | awk ‹{ print $2 }› | sort | uniq -c | tr -s ‹ ‹ | sed «s/ //» | grep [0-9][0-9]› ‹ | sort | tac

اول بگم چی میگذره اینجا. cat، فایل history رو میخونه و میده به awk. اونم دومین کلمه که میشه همون کامندمون. بعد sort به ترتیب حروف الفبا مرتب میکنه و اونیکی میگه که هر کلمه چند بار تکرار شده. بعد tr همه اسپیس‌ها که دو بار یا بیشتر کنار هم اومدن پاک میکنه و فقط یکی میذاره و اون sed میاد اون یدونه رو هم پاک میکنه. بعد با grep دورقمی‌ها رو جدا میکنم و دوباره با sort مرتب میکنم و با tac برعکس میکنم که بیشترها بالا باشن.
و نتیجه:

79 c
76 ls
38 sudo
23 rm
21 downloader
18 emacs
18 cat
14 echo
11 man

واو! جالبه! c که درواقع یه alias (اسم مستعار) clear هست، بیشتر از همه استفاده شده! ls هم با سه تا تفاوت! بعدی sudo هست. بعدش rm! زیادی پاک میکنم انگار! اوه! اسکریپتی که با اون دانلودام رو شروع میکنم رتبه پنجمه! بعدش ایمکس و cat و echo. بین پونصد کامند، یازده‌تاش هم man هست. زیادی دوست دارم یاد بگیرم یا فقط سرسری یه نگاه میندازم میرم؟ 🙂