آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

آموزش لینوکس

در این وبلاگ مطالبی در خصوص سیستم عامل لینوکس به اشتراک گذاشته می شود.

Shell یا رابط کاربری (User Interface) :

پنجشنبه, ۲۸ فروردين ۱۳۹۹، ۱۱:۴۸ ق.ظ

رابط کاربری، تعیین کننده کیفیت و نحوه ی تعامل کاربر با سیستم عامل می باشد.

به بیان ساده می توان گفت: Shell دستور را از کاربر دریافت و آن را به زبان قابل فهم برای هسته سیستم عامل تبدیل می کند.

در تصویر زیر شکل ارتباط کاربران با یک سیستم کامپیوتری قابل مشاهده می باشد.

 

                                      shell  

 

بصورت کلی دو نوع رابط کاربری وجود دارد.

GUI (Graphical User Interface) :

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

* توزیع های جدید سیستم عامل لینوکس (بخصوص در نسخه ی Desktop) دارای رابط کاربری گرافیکی می باشند، که امکان کار را برای کاربران مبتدی فراهم و همچنین در برخی موارد موجب افزایش سرعت کاربران حرفه ای می شود. در ضمن وجود رابط گرافیکی برای برخی کارها ضروری می باشد، بطور مثال کاربر جهت خواندن فایلهای از نوع pdf، به رابط گرافیکی نیاز دارد.

 

                

 

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

* وجود Desktop های مختلف در سیستم عامل لینوکس به کاربران این امکان را داده است تا در انتخاب گزینه ی مورد نظر شان آزاد باشند. اسامی تعدادی از Desktop های رایج عبارتند از :

Gnome , KDE , Cinnamon , Mate , Unity , XFCE , Pantheon , Deepin

 

CLI (Command Line Interface) :

در این حالت کاربران برای کار با سیستم عامل از دستورات متنی استفاده می کنند.

* انواع رابط متنی :

اسامی تعدادی از رابط های متنی در اینجا قابل مشاهده می باشد.

sh , csh , ksh , tcsh , bash , pdksh , ssh , zsh , dash , psh , mksh , fish

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

* بطور مثال وجود خصوصیاتی مانند راهنمای کاربری دستورات، تاریخچه دستورات، پشتیبانی از کاراکترهای خاص، مدیریت و کنترل Job ها، ویرایش دستور تایپ شده و ... سبب برتری این رابط ها نسبت به یکدیگر می باشد.

& تصویر زیر بیانگر موارد گفته شده در بالا می باشد.

 

           

 

* در حال حاضر بسیاری از توزیع های لینوکس بصورت پیش فرض از رابط متنی bash استفاده می کنند.

BASH Shell = Bourne Again SHell

* با بیان چند مثال با دستوراتی در خصوص رابط متنی کاربر آشنا می شویم.

نکته : دستورات و مثالهای زیر بر روی سیستم عامل Red Hat Enterprise Linux 7.5 ، با رابط متنی Bash و کاربر root اعمال گردیده اند.

 

& نمایش Shell جاری :

 با اجرای یکی از دستورات زیر، Shell جاری نمایش داده می شود.

[root@class ~]# echo $SHELL

/bin/bash

 

[root@class ~]# echo $0

bash

* متغیر صفر حاوی نام فرآیند در حال اجرا می باشد. رابط متنی که در اختیار کاربر قرار دارد، برنامه ایست که همواره در حال اجرا می باشد.

 

[root@class ~]# cat /proc/$$/cmdline

bash

 

& نمایش شماره نسخه BASH جاری :

برای دیدن شماره نسخه BASH جاری، می توان یکی از دستورات زیر را اجرا کرد.

[root@class ~]# echo $BASH_VERSION

4.2.46(2)-release

 

[root@class ~]# bash --version

GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

Copyright (C) 2016 Free Software Foundation, Inc.

License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

 

This is free software; you are free to change and redistribute it.

There is NO WARRANTY, to the extent permitted by law.

 

*همچنین می توان در خط فرمان از کلیدهای ترکیبی کنترل x,v  استفاده نمود.

[root@class ~]# Ctrl + x   and  Ctrl + v

GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)

 

& نمایش Shell هایی که بر روی سیستم نصب می باشند :

با اجرای یکی از دستورات زیر لیست Shell هایی که بر روی سیستم نصب و قابل پشتیبانی هستند نمایش داده می شود.

[root@class ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/ksh

/bin/tcsh

/bin/csh

/bin/dash

/bin/zsh

/bin/mksh

 

[root@class ~]# chsh -l

/bin/sh

/bin/bash

/sbin/nologin

/bin/ksh

/bin/tcsh

/bin/csh

/bin/dash

/bin/zsh

/bin/mksh

* برای استفاده از دستور chsh نیاز است تا پکیج util-linux-user بر روی سیستم نصب باشد.

 

& تغییر Shell :

حالت اول : با روش زیر رابط متنی بصورت ناپایدار و فقط در همان Session تغییر می کند.

[root@class ~]# echo $0

bash

[root@class ~]# sh

-sh-4.4# echo $0

sh

-sh-4.4# /bin/bash

[root@class ~]# echo $0

bash

 

حالت دوم : با اجرای یکی از روش های زیر رابط متنی بصورت دائمی تغییر می کند.

[root@class ~]# chsh

Changing shell for root.

New shell [/bin/bash]: /bin/zsh

Shell changed.

Logout Session & Create New Session

* خط اول خروجی مشخص می کند که تغییر رابط متنی برای کاربر root خواهد بود. در خط دوم و داخل براکت مقدار Shell فعلی کاربر نشان داده شده و همچنین کاربر می تواند نسبت به تغییر Shell اقدام نماید. باید توجه داشت که این تغییر در Session های جدید کاربر root، اعمال می شود.

 

* برای تغییر رابط متنی کاربر masih می توان بصورت زیر عمل نمود.

[root@class ~]# chsh masih

Changing shell for masih.

New shell [/bin/bash]: /bin/sh

Shell changed.

 

* با استفاده از سوییچ s می توان تغییر رابط متنی کاربر root را به یکباره انجام داد.

[root@class ~]# chsh -s /bin/sh

Changing shell for root.

Shell changed.

 

* با استفاده از گزینه Shell نیز می توان تغییر رابط متنی کاربر masih را به یکباره انجام داد. ( سوئیچ s و گزینه shell در دستور chsh عملکرد یکسان دارند)

[root@class ~]# chsh --shell /bin/sh masih

Changing shell for masih.

Shell changed.

 

& با استفاده از دستور usermod نیز می توان Shell را تغییر داد.

* فایل passwd از دایرکتوری etc حاوی اطلاعات کاربران می باشد. وضعیت کاربر masih را مشاهده می کنید.

[root@class ~]# grep masih /etc/passwd

masih:x:1001:1001::/home/masih:/bin/bash

* با دستور زیر رابط متنی کاربر masih تغییر می کند.

[root@class ~]# usermod --shell /bin/zsh masih

[root@class ~]# grep masih /etc/passwd

masih:x:1001:1001::/home/masih:/bin/zsh

 

& با استفاده از ویرایش فایل passwd نیز می توان اینکار را انجام داد. فایل را با ویرایشگر باز نموده و نام رابط متنی جدید را جایگزین عبارت قبلی نمایید. باید توجه داشت که فقط کاربر root می تواند فایل passwd را ویرایش نماید.

[root@class ~]# vi /etc/passwd

masih:x:1008:1008:masih:/home/masih:/bin/tcsh

 

& نصب Shell جدید :

* برای استفاده از یک رابط متنی کافیست پکیج مربوطه را بر روی سیستم نصب نمایید. با دستور زیر رابط متنی zsh بر روی سیستم نصب و قابل استفاده می گردد.

[root@class ~]# yum install zsh

 

 

۹۹/۰۱/۲۸
عیسی اسداله پور

نظرات  (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی