آموزش خط فرمان: قسمت بیست و چهارم، اوکتال (Octal) چیست؟

نوشته شده توسط فرشید نوتاش حقیقت.

اعداد مبنای هشت، برای بیان اعداد در کامپیوترها استفاده می‌شود. اما کامپیوتر تمام عمل شمارش خود را بر مبنای ۲ یعنی صفر و یک انجام می‌دهد. یعنی سیستم شمارش کامپیوتر فقط دو عدد صفر و یک را دارد. پس اگر از صفر شروع به شمارش کند اینگونه شمارش می‌شود: ۰، ۱، ۱۰، ۱۱، ۱۰۰، ۱۰۱، ۱۱۰، ۱۱۱، ۱۰۰۰، ۱۰۰۱، ۱۰۱۰، ۱۰۱۱ و …

حال که با باینری (مبنای ۲) آشنا شدید درک اوکتال راحت‌تر خواهد بود. در سیستم عددگذاری اوکتال (مبنای هشت)، هشت رقم در سیستم شمارش وجود دارد. در نتیجه شمارش اینگونه خواهد بود: ۰، ۱، ۲، ۳، ۴، ۵، ۶، ۷، ۱۰، ۱۱، ۱۲، ۱۳، ۱۴، ۱۵، ۱۶، ۱۷، ۲۰، ۲۱ و …

در کنار سیستم شمارش اوکتال شمارش هگزادسیمال را هم داریم که از شماره‌های ۰ تا ۹ به علاوه حروف A تا F به منظور شمارش استفاده می‌کند.

اما همانطور که پیش‌تر هم اشاره شد کامپیوتر تمام محاسبات خود را بر مبنای ۲ انجام می‌دهد پس چرا باید از اوکتال و هگزا دسیمال استفاده کنیم؟ پاسخ این سوال برمی‌گردد به راحتی برای انسان‌ها. در موارد زیادی بخش‌های کوچکی از داده بر روی الگوی کوچک بیت قرار می‌گیرند. مثلاً الگوی رنگ RGB که در نرم‌افزار فتوشاپ و دیگر سیستم‌های رنگی در کامپیوتر استفاده می‌شود را در نظر بگیرید. در نمایشگرهای بیشتر کامپیوترها هر پیکسل رنگی شامل سه جزء رنگی است.

۸ بیت قرمز، ۸ بیت سبز، ۸ بیت آبی. برای مثال یک زنگ آبی زیبا از ۲۴ رقم باینری تشکیل می‌شود به این صورت:

۰۱۰۰۰۰۱۱۰۱۱۰۱۱۱۱۱۱۰۰۱۱۰۱

در اینجا برای راحتی انسان، مدل دیگری از سیستم اعداد به کار خواهد آمد. هر رقم هگزا دسیمال معادل ۴ رقم باینری است. پس ما با به کار بردن یک عدد فقط ۶ رقمی هگزادسیمال (۴۳۶FCD) می‌توانیم به کامپیوتر بفهمانیم که منظورمان همان عدد ۲۴ رقمی باینری است.

در این وضعیت هم ما به نتیجه دلخواه خود می‌رسیم که نیازی به حفظ کردن ۲۴ رقم باینری نداریم. همین کار را می‌توانیم در مثال استفاده اوکتال برای دسترسی‌ها در لینوکس به کار ببریم. در آموزش بعدی که دسترسی‌ها شرح داده خواهند شد این موضوع ملموس‌تر خواهد شد.

تغییر وضعیت دسترسی فایل (Change File Mode)

به منظور تغییر دسترسی یا تغییر وضعیت (Mode) یک فایل یا یک پوشه از فرمان chmod استفاده می‌شود. Chmod سرنام واژگان Change Mode به معنی تغییر حالت (تغییر دسترسی) است. به یاد داشته باشید که برای تغییر وضعیت یک فایل یا پوشه مالک فابل یا کاربر root قادر به انجام این کار خواهد بود. فرمان chmod دو شیوه منحصر به فرد برای انجام این کار را استفاده می‌کند: ۱- نمایش با اعداد مبنای هشت ۲- نمایش سمبولیک.

نمایش با اعداد مبنای هشت (Octal Representation)

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

با مشاهده جدول زیر مفهوم ذکر شده، ملموس‌تر خواهد بود:

با به کار بردن سه رقم اوکتال ما می‌توانیم وضعیت دسترسی فایل را به ترتیب برای کاربر (User)، گروه (Group) و همگان (World) تعیین کنیم.

به مثال زیر توجه کنید:

برای تبدیل هر زمان که کاراکتری وجود داشته باشد به جای آن عدد ۱ و هر زمان که کاراکتری نباشد (علامت -) به جای آن صفر می‌گذاریم. به عنوان مثال rw- می‌شود ۱۱۰

در مثال فوق یک فایل با نام foo.txt ایجاد کردیم و سپس وضعیت دسترسی آن را با استفاده از فرمان ls –l foo.txt مشاهده می‌کنیم. –rw-rw-r—کاراکتر اول از سمت چپ (-) یعنی اینکه این یک فایل عادی است. سپس rw- یعنی عدد باینری ۱۱۰ که معادل اوکتال آن می‌شود ۶. به همین صورت دوباره rw- که می‌شود ۱۱۰ باینری یعنی ۶ اوکتال و در نهایت r— یعنی عدد ۱۰۰ باینری برابر با ۴ اوکتال.

پس اگر بخواهیم دسترسی آن را به شیوه الگوی اوکتال بیان کنیم، می‌شود ۶۶۴. حال چگونه این مقدار را تغییر دهیم؟ به سادگی با به کاربردن فرمان chmod و سپس مقدار دسترسی بر مبنای الگوی اوکتال و در آخر نام فایل که می‌شود فرمان chmod 600 foo.txt.

در آخر با به کار بردن فرمان ls -l foo.txt مشاهده می‌شود که دسترسی ما به -rw——- یعنی الگوی عدد اوکتال ۶۰۰ تغییر کرد.

دقت نمایید که وقتی دسترسی فایل را با استفاده از فرمان ls –l مشاهده می‌کنید اولین رقم از سمت چپ نشانگر نوع فایل است و آن را با رقم‌های دسترسی اشتباه نگیرید.

نمایش سمبولیک (Symbolic Representation)

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

  1. کسی که تغییر بر روی آن تأثیر می‌گذارد.
  2. عملیاتی که انجام خواهد شد.
  3. دسترسی که تنظیم خواهد شد.

برای اختصاص و تعیین شخصی که تغییر بر روی آن تاثیر خواهد گذاشت از ترکیب کاراکترهای u ، g ، o و a استفاده می‌کنیم.

جدول زیر این کاراکترها را توصیف می‌کند:

در صورتی که هیچ کاراکتری به این منظور اختصاص نیابد معنی آن all به معنی همه گروه‌های دسترسی خواهد بود.

عملیات ممکن است کاراکتر (+) باشد که نشانگر این است که یک دسترسی اضافه شده است. اگر کاراکتر (-) استفاده شود یعنی اینکه یک دسترسی کم شده و اگر کاراکتر (=)  استفاده شود یعنی اینکه فقط دسترسی‌های اختصاص یافته بایستی اعمال شوند و دیگر دسترسی‌ها حذف خواهند شد. دسترسی‌ها طبق معمول با کاراکترهای r ، w و x اختصاص می‌یابند.

جدول زیر لیستی از برخی مثال‌های نشان‌گذاری سمبولیک دسترسی‌های را نشان می‌دهد:

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

تنظیم وضعیت دسترسی با استفاده از رابط گرافیکی (GUI) در لینوکس

اکنون که دیدیم چگونه با استفاده از خط فرمان دسترسی پوشه‌ها و فایل‌ها را تغییر دهیم، بهتر می‌توانیم رابط گرافیکی که به این منظور در نظر گرفته شده است را درک کنیم. هم در Nautilus (GNOME) و هم در Konqueror (KDE) با کلیک راست کردن بر روی یک فایل و یا پوشه و انتخاب گزینه Properties در زبانه  Permissions این مطلوب، قابل رویت خواهد بود.

در این وضعیت ما می‌توانیم تنظیمات دسترسی را برای مالک (Owner)، گروه (Group) و همگان (World) تعریف کنیم. در صورت وجود با کلیک کردن بر روی گزینه دسترسی‌های پیشرفته (Advanced Permissions) یک پنجره جدید گشوده خواهد شد که به ما اجازه می‌دهد تنظیمات هر مشخصه را به صورت جداگانه تعیین کنیم.

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت بیست و چهارم، اوکتال (Octal) چیست؟ اولین بار در لینوکس سیزن پدیدار شد.


دیدگاهی بنویسید