منبع اصلی نوشتار زیر در این لینک قرار دارد

تغییر پوسته (Shell) پیشفرض در لینوکس (یونیکس)


در سیستم عامل های مبتنی بر یونیکس مانند توزیع های لینوکسی و سیستم عامل های مبتنی بر BSD و … از چندین پوسته یا Shell استفاده می کنند. هر کدام ویژگی های خودشان را دارند که شاید پر کاربردترین آنها BASH باشند. در لینوکس و هر سیستم عامل یونیکسی دیگر فایلی در مسیر etc/ به نام shells وجود دارد که فهرست پوسته های نصب شده را نگه می دارد. وظیفه شِل گرفتن دستور از کاربران و تفسیر آنها و در نهایت نشان دادن پاسخ به کاربر است. در این پست چگونگی اطلاع از شِل پیشفرض و تغییر آن به یک پوسته دیگر گفته می شود.زمانی که کاربری را در لینوکس ایجاد می کنید (با دستور useradd) با سوئیچ s- می توانید شِل پیشفرض را مشخص کنید و اگر پوسته ای را مشخص نکنید، پوسته bash بعنوان پیشفرض انتخاب می شود.

useradd -s /bin/sh user1

هر کاربری با اجرای یکی از دستور های زیر می تواند پوسته پیشفرضش را پیدا کند.

echo $0

OUTPUT:bash

echo $SHELL

OUTPUT:/bin/bash

grep YOUR_USERNAME /etc/passwd

اولین و دومین دستور بالا یک متغیر محیطی هستند و در سومین دستور باید بجای YOUR_USERNAME نام کاربری خودتان را بنویسید تا از فایل etc/passwd/ خط مربوط به شما مانند زیر نشان داده شود. در خط زیر با رنگ قرمز پوسته پیشفرض من bash است مشخص شده است.

amir:x:1000:100:Amir Nami:/home/amir:/bin/bash

اما برای تغییر پوسته پیشفرضتان می توانید یکی از دستور های زیر استفاده کنید. فرض کنید می خواهید پوسته پیشفرضتان را به bin/sh/ تغییر دهید.

exec /bin/sh

اکنون دستور زیر را اجرا کنید و خواهید دید که پوسته پیشفرض تغییر کرده است.

echo $0

echo $SHELL

همچنین می توانید از دستور chsh که مخفف Change Shell است نیر استفاده کنید.دستور chsh را به تنهایی اجرا کنید. بعد از اجرای دستور زیر از شما در خواست ورود پسوردتان می شود. سپس درخواست ورود یک پوسته داده می شود.

chsh

\"\"

تنها کاربر root می تواند پوسته تمامی کاربران را با دستور زیر تغییر دهد.

chsh USERNAME

همچنین کاربر root با استفاده از دستور usermod به همراه سوئیچ s-، پوسته یک کاربر را با دستور زیر تغییر دهد.

usermod -s NEW_SHELL USERNAME

اما چگونه مسیر پوسته ها را پیدا کنیم. همانطور که گفته شد، فایل etc/shells/ فهرستی از پوسته های نصب شده را نگه می دارد.

cat /etc/shells

\"\"

و یا اینکه از دستور which استفاده کنید.

which sh

bin/sh/

which bash

bin/bash/



برچسب ها : , , , , , , , , , , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد