هر آنچه از ls -l باید بدانید

یکی از کامندهای خیلی پر استفاده‌ی لینوکس ls -l هست که به طور حتم شما هم به خوبی می‌شناسیدش و بارها ازش استفاده کرده‌اید. کار این کامند نمایش لیست‌ طولانی (همراه با مشخصات) فایل‌ها و فولدرهاست. یک نمونه از خروجی این کامند رو در زیر می‌بینید که من بعدا هر ستون این کامند رو ترجمه می‌کنم. (گرچه به احتمال زیاد شما بیشتر ستون‌ها یا شاید همه‌ی اون‌ها رو می‌شناسید.)

drwxr-xr-x.  3 root root    4096 2010-01-02 12:55 alsa
drwxr-xr-x.  2 root root    4096 2009-11-09 22:42 bdevid
lrwxrwxrwx.  1 root root      14 2010-02-13 18:30 cpp -> ../usr/bin/cpp
drwxr-xr-x.  3 root root    4096 2010-02-27 01:04 crda
drwxr-xr-x.  2 root root    4096 2010-01-15 16:51 dbus-1
drwxr-xr-x. 40 root root    4096 2010-03-30 15:14 firmware
drwxr-xr-x.  3 root root    4096 2010-01-04 17:28 i686
drwxr-xr-x.  6 root root    4096 2009-11-09 22:44 kbd
-rwxr-xr-x.  1 root root  179364 2010-01-04 17:59 ld-2.11.1.so
lrwxrwxrwx.  1 root root      12 2010-01-14 14:49 ld-linux.so.2 -> ld-2.11.1.so
lrwxrwxrwx.  1 root root      13 2010-02-05 14:36 ld-lsb.so.3 -> ld-linux.so.2
lrwxrwxrwx.  1 root root      15 2010-01-10 02:56 libacl.so.1 -> libacl.so.1.1.0
-rwxr-xr-x.  1 root root   31444 2009-12-26 23:51 libacl.so.1.1.0
-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.0
-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.1
-rwxr-xr-x.  1 root root   18556 2010-01-04 17:59 libanl-2.11.1.so
lrwxrwxrwx.  1 root root      16 2010-01-14 14:49 libanl.so.1 -> libanl-2.11.1.so
-rwxr-xr-x.  1 root root  964852 2010-01-26 12:14 libasound.so.2.0.0
-rwxr-xr-x.  1 root root   18516 2009-11-26 22:20 libattr.so.1.1.0
-rwxr-xr-x.  1 root root   93248 2009-12-08 19:25 libaudit.so.1.0.0

برای نمونه سطر زیر رو در نظر بگیرید:

-rwxr-xr-x.  1 root root    3508 2009-07-26 23:38 libaio.so.1.0.1

همین‌طور که می‌بینید این سطر به ۱۰ ستون به شکل زیر تقسیم شده:



ستون ۱۰

ستون ۹

ستون ۸

ستون ۷

ستون ۶

ستون ۵

ستون ۴

ستون ۳

ستون ۲

ستون ۱
libaudit.so.1.0.1
2009-11-0823:38

3508

root

root

1

r-x

r-x

rwx

-


ستون اول ممکنه یکی از حالت‌های زیر باشه:
- : فایل
d : فولدر یا directory
l : لینک

ستون‌های دوم، سوم و چهارم مربوط به مجوزهاست. مجوز خواندن (r)، مجوز نوشتن (w) و مجوز اجرا کردن (x) که:
ستون اول مجوزهای صاحب (owner) فایل است.
ستون دوم مجوزهای گروه فایل است.
و ستون سوم مجوزهای سایرافراد (everyone) است.

ستون پنجم نشان‌دهنده‌ی تعداد لینک‌ها یا فولدارهای داخل یک فولدره.

ستون ششم نام صاحب (owner) فایل یا فولدر رو نشان می‌ده.

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

ستون هشتم نشان دهنده‌ی سایز فایل به بایت است. افزودن h- (برگرفته از Human Readable) به همراه l- باعث می‌شه خروجی برای درک بهتر به کیلوبایت، مگابایت و یا گیگابایت باشه.

ستون نهم شامل تاریخ و زمان آخرین باری که فایل ویرایش شده است.

و در ستون دهم هم که نام فایل به نمایش در می‌آد. البته در مورد لینک‌ها نام فایلی که به آن لینک داده شده پس از علامت <- نمایش داده می‌شه.

دو تابع مفید گوگلی برای استفاده در لینوکس

قصد داشتم برای شروع روش تنظیم و استفاده از اکانت جی میل در کنسول لینوکس رو توضیح بدم ولی نوشتنش بیشتر از اونی که فکر می کردم طول کشید. بنابراین فعلا به این پست کوتاه‌تر بسنده می‌کنم.

اینجا قصد دارم دو تا تابع جالب گوگلی رو برای استفاده در کنسول لینوکس معرفی کنم. اولین تابع، برای تصحیح املای یک کلمه یا همون spell checking با استفاده از موتور جستجوی گوگله. حتما دیدید که در هنگام استفاده از موتور جستجوی گوگل در صورت اینکه کلمه‌ای رو اشتباه تایپ کرده باشید، گوگل کلمه درست رو بهتون پیشنهاد می‌کنه. ما می‌خوایم کاری کنیم که با اجرای یک دستور ساده در کنسول، بتونیم املای صحیح یک کلمه رو چک کنیم. برای اینکار کافیه کد زیر رو در کنسول وارد کنید:

spellcheck(){ typeset y=$@;curl -sd "<spellrequest><text>$y</text></spellrequest>" https://www.google.com/tbproxy/spell|sed -n '/s="[0-9]"/{s/<[^>]*>/ /g;s/\t/ /g;s/ *\(.*\)/Suggestions: \1\n/g;p}'|tee >(grep -Eq '.*'||echo -e "OK");}
(اگر دوست دارید همیشه این تابع دم دستتون باشه، می‌تونید کد بالا رو به bashrc./~ اضافه کنید.)

پس از وارد کردن دستور بالا به راحتی می‌تونید با استفاده از دستور زیر املای صحیح یک کلمه رو چک کنید:

spellcheck some_word

تابع دوم، می تونه برای تشخیص زبان یک نوشته، با استفاده از مترجم گوگل استفاده بشه. مشابه کد بالا، کد زیر رو هم میتونید به فایل bashrc./~ اضافه کنید تا بتونید همیشه ازش استفاده کنید.

detectlanguage(){ curl -s "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&amp;q=$(echo "$@" | sed 's/ /%20/g')" | sed 's/{"responseData": {"language":"\([^"]*\)".*/\1\n/'; }

پس از وارد کردن دستور بالا، با استفاده از دستور زیر زبان یک عبارت رو چک کنید:

detectlanguage text_in_an_unknown_language

امیدوارم مفید بوده باشه.

منبع کد اول - منبع کد دوم