وقتی ما با سیستم کار میکنیم، رویدادهای چند لایهای رخ میدهد که ما به عنوان کاربر فقط بالاترین لایه یعنی پوسته را ملاحظه میکنیم.
به معنای وسیع کلمه، هر رابط کاربری سیستم عامل یونیکسی، پوسته یا shell نامیده میشود، هر برنامهای که عمل کاربر را برای سیستم عامل قابل فهم میکند و در حقیقت واسط بین کاربر و سیستم است در این تعریف میگنجد و shell نامیده میشود. در برخی سیستمعامل ها این برنامه جزیی از سیستم عامل میباشد، در سیستمهای یونیکسی اینطور نیست و یونیکس اولین سیستم عاملی است که رابط مستقل از سیستم عامل را ایجاد نموده است. بنابراین توجه داشته باشیم که پوسته خودش سیستمعامل نیست، بلکه رابط کاربری آن است.
رابطهای کاربری به دو گروه عمده تقسیم میگردند.
رابطهای کاربری گرافیکی، که توانایی نمایش گرافیکهای انتخابی را فراهم نموده و ازطریق ماوس یا هر وسیله اشاره کننده دیگری همچون صفحه نمایشهای لمسی و غیره، ورودی را از کاربر دریافت میکنند و خروجی را نیز به طور معمول در یک محیط گرافیکی باز میگردانند.
گروه دیگر رابطهای کاربری مبتنی بر کاراکتر هستند و دستورات متنی که توسط کاربر تایپ میگردنند را میپذیرند.
اما به طور رایج وقتی از پوسته یا shell سخن گفته میشود، مراد رابط متنی میباشد. و رابطهای کاربری گرافیکی را با نامهای خاص آنها از قبیل gnome یا gnome-shell یا kde و غیره بیان میکنند.
رابط متنی یکی از مهمترین ویژگیهای کلیدی لینوکس است. اگر شما یک کاربر توانای لینوکس رومیزی باشید احتمالاً همواره یک ترمینال باز خواهید داشت و اگر کاربر مبتدی لینوکس هستید، شاید گمان کنید که هرگز از shell استفاده نمیکنید، اما شما نیز همینطور که بیشتر از لینوکس استفاده میکنید بیشتر خواهید خواست که از پوسته استفاده کنید.
اگر شما میخواهید کاربر ماهر لینوکس شوید، باید در خطفرمان آن مهارت لازم را کسب نمایید. زیرا shell از بسیاری جهات قدرت و ظرافت کلیدی لینوکس است. کارهایی را با خط فرمان میتوانید انجام دهید که با هیچ رابط GUI نمیتوانید به سادگی انجام دهید، مهم نیست که kde یا gnome یا سایر رابطهای کاربری گرافیکی چقدر قدرتمند باشند، شما همواره با یک ترمینال کارها را سریعتر و به طور مؤثرتر انجام خواهید داد.