تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00

آموزش لینوکس : مدیریت سیستم قسمت 2 : Shell سفارشی : تنظیمات Shell

سید محمد باقر موسوی
سید محمد باقر موسوی
3 پسند
347 بازدید
0 نظر
52 ماه قبل

سلام و وقت بخیر. در این جلسه به بررسی بعضی از تنطیمات shell میپردازیم. برای دیدن اینکه shell چه تنظیمانی دارد از دستور زیر استفاده کنید.

[root@CentOS6 ~]# set -o
allexport      	off
braceexpand    	on
emacs          	on
errexit        	off
errtrace       	off
functrace      	off
hashall        	on
histexpand     	on
history        	on
ignoreeof      	off
interactive-comments	on
keyword        	off
monitor        	on
noclobber      	off
noexec         	off
noglob         	off
nolog          	off
notify         	off
nounset        	off
onecmd         	off
physical       	off
pipefail       	off
posix          	off
privileged     	off
verbose        	off
vi             	off
xtrace         	off

برای روشن کردن یک option از set -o به همراه نام option و برای خاموش کردن آن از set +o و نام آن option استفاده میکنیم.

[root@CentOS6 ~]# set -o allexport //روشن کردن
[root@CentOS6 ~]# set +o allexport //خاموش کردن

این allexport باعث میشود اگر یک با چند subshell درست کردیم، بلافاصله تمام متغیر های شل پدر در آن کپی میشود و دیگر نیاز نیست دستی، تک تک متغیر ها را export کنیم.

[root@CentOS6 ~]# set -o allexport
[root@CentOS6 ~]# var1=amy
[root@CentOS6 ~]# var2=taylor
[root@CentOS6 ~]# bash
[root@CentOS6 ~]# echo $var1; echo $var2
amy
taylor
[root@CentOS6 ~]# 

یا مثلا اگر درون یک subshell باشیم، دکمه کنترل و d را فشار دهیم، از subshell خارج میشود. برای خاموش کردن این shortkey از یک option به نام ignoreeof استفاده میکنیم.

[root@CentOS6 ~]# set -o allexport
[root@CentOS6 ~]# var1=amy
[root@CentOS6 ~]# var2=taylor
[root@CentOS6 ~]# bash
[root@CentOS6 ~]# echo $var1; echo $var2
amy
taylor
[root@CentOS6 ~]# 
[root@CentOS6 ~]# exit
[root@CentOS6 ~]# set -o ignoreeof
[root@CentOS6 ~]# bash
[root@CentOS6 ~]# Use "exit" to leave the shell.  //اینجا کنترل و دی زده بودم که خطا داد
[root@CentOS6 ~]# 
[root@CentOS6 ~]# exit // اینجا کلمه خروج رو نوشتم تا خارج بشه
exit
[root@CentOS6 ~]# 
[root@CentOS6 ~]# 

یا یک option دیگر مثل noclober باعث میشود که نتوان در یک فایل overwrite کرد. البته میتوان با کمی تغییر دستور این overwrite را force کرد ولی این option بیشتر جنبه احتیاطی و هشدار دادن دارد. به مثال توجه کنید.

[root@CentOS6 ~]# ls > file1
[root@CentOS6 ~]# ls > file1
[root@CentOS6 ~]# ls > file1   // قبل از روشن کردن میتوان روی فایل قبلی نوشت
[root@CentOS6 ~]# set -o noclobber
[root@CentOS6 ~]# ls > file1
bash: file1: cannot overwrite existing file   // خطا میدهد که نمیتوانید روی فایلی که محتوا دارد بنویسید
[root@CentOS6 ~]# ls > file2
[root@CentOS6 ~]# ls > file2
bash: file2: cannot overwrite existing file
[root@CentOS6 ~]# ls >| file2   // با گذاشتن یک پایپ این عمل نوشتن رو فایل را فورس کردم
[root@CentOS6 ~]# 

ضمیمه : دستور ls محتویات مسیری که هستیم را نشان میدهد. (امتحان کنید). یعنی نام فایل و ها پوشه های مسیری که در آنیم را نشان میدهد. با < خروجی این دستور رو ریختم تو یه فایل یه اسم مثلا file1 .... حالا با دستور cat file1 محتوبات این فایل را ببینید.

[root@CentOS6 ~]# ls
a                d          file1  nohup.out         proje.sh  Templates  VMwareTools-10.0.6-3595377.tar.gz
anaconda-ks.cfg  Desktop    file2  Pictures          Public    test
b                Documents  IFS    post-install      sfk       Videos
c                Downloads  Music  post-install.log  temp      vm
[root@CentOS6 ~]# ls > file1
[root@CentOS6 ~]# cat file1
a
anaconda-ks.cfg
b
c
d
Desktop
Documents
Downloads
file1
file2
IFS
Music
nohup.out
Pictures
post-install
post-install.log
proje.sh
Public
sfk
temp
Templates
test
Videos
vm
VMwareTools-10.0.6-3595377.tar.gz
[root@CentOS6 ~]# 

پایان قسمت دوم از بخش اول

نویسنده : سید محمد باقر موسوی

منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#دوره_آموزشی_linux_فارسی #نوشتن_shell_script_در_لینوکس #آموزش_لینوکس_فارسی #آموزش_linux_مقدماتی #آموزش_shell_scripting #آموزش_دستورات_مقدماتی_لینوکس #آموزش_shell_scripting_در_لینوکس #دوره_آموزشی_shell_scripting_در_لینوکس #نوشتن_یک_shell_script_ساده
نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...