راهنمای کامل خط فرمان لینوکس – بخش پنجم(3124 مجموع کلمات موجود در متن) (12607 بار مطالعه شده است)  ایجاد
فایلها و دایرکتوری ها
به
عنوان یک کاربر لینوکس ، همانطور که در
بالا اشاره کردم، بیشتر فایلها و دایرکتوری
های خود را در دایرکتوری خانگی خود ایجاد
و ذخیره خواهید کرد.
در
اینجا با چند دستور که در این زمینه مفید
هستند آشنا میشوید:
cd
: این
دستور مسیر جاری را به مسیر دیگری که
تعیین میکنید تغییر میدهد حتما با مشابه
این دستور در داس کار کرده اید.
pwd
: این
دستور مسیر دایرکتوری فعلی را چاپ میکند.
mkdir
: این
دستور یک دایرکتوری ایجاد میکند.
chmod
: این
دستور برای تغییر مجوزهای فایل و دایرکتوری
بکار میرود.
ls
: این
دستور محتویات یک دایرکتوری یا مسیر را
چاپ میکند.
مشابه
دستور dir
در
داس.
خوب
اکنون به کمی تمرین برای بکارگیری این
دستورات می پردازیم.
در
صورتی که در حالت گرافیکی هستید، همانطور
که قبلا گفته شد، یک پنجره ترمینال باز
کنید.
۱.
برای
حرکت به دایرکتوری خانگی خود از هرجا ،
کافی است دستور cd
را
تایپ کنید.
۲.
برای
حصول اطمینان از قرارگیری در دایرکتوری
خانگی خود، دستور pwd
را
تایپ کنید:
$
pwd
/home/alan
۳.
با
استفاده از دستور mkdir
یک
دایرکتوری به نام test
ایجاد
کنید:
$
mkdir test
۴.
مجوزهای
دایرکتوری ایجاد شده را با استفاده از
دستور ls
بررسی
کنید:
$
ls -ld test
drwxrwxr-x
3 alan alan 4096 May 17 20:14 test
خروجی
فرمان نشان میدهد که test
یک
دایرکتوری بوده و مالک آن کاربری به نام
alan است
که به گروه alan
تعلق
داشته و آخرین بار در ۱۷ ام می در ساعت
۲۰:۱۴
دقیقه تغییر کرده است.
تصور
کنید میخواهید مجوزهای این دایرکتوری را
طوری تنظیم کمنید که افراد دیگری که از
این کامپیوتر استفاده میکنند نتواننند
محتویات دایرکتوری شما را دیده و استفاده
کنند. در
این مورد بیشتر توضیح خواهم داد.
۵.
اکنون
دستور زیر را تایپ کنید:
$
chmod 700 test
این
دستور به شما تمام مجوزهای استفاده و
تغییر دایرکتوری را میدهد در حالی که به
دیگران اجازه حتی مشاهده محتویات این
دایرکتوری نیز داده نخواهد شد.
اگر
مجددا دستور ls
که در
بالا تایپ کردید را بکار ببرید، این بار
مجوزها بصورت drwx------
نمایش
داده خواهد شد.
۶.
در این
مرحله با استفاده از دستور cd
به
دایرکتوری test
وارد
شوید:
$
cd test
هنگامی
که نیاز داشتید تا بدانید دایرکتوری خانگی
شما در چه مسیری قرار دارد میتوانید از
یکی از دو راه زیر استفاده کنید :
متغییر
محیطی HOME
علامت
~
با
تایپ یکی از موارد بالا مقابل اعلان فرمان
، مسیر دایرکتوری خانگی شما نمایش داده
میشود:
$
~
/home/alan
برای
نمایش دایرکتوری خانگی یک کاربر دیگر
کافی است به صورت زیر عمل کنید:
$
~chris
/home/chris
در
حرکت بین دایرکتوری ها و کارکردن در آنها
فرامین دیگری نیز وجود دارند که بسیار
مفید هستند:
$
cp /usr/local/mygame .
دستور
بالا فایل mygame
را به
مسیر جاری (که
دایرکتوری خانگی تان بود)
کپی
میکند.
$
mv mygame ..
دستور
بالا فایل mygame
را به
مسیر بالاتر دایرکتوری خانگی تان (دایرکتوری
home) منتقل
میکند.
استفاده
از کاراکترهای ویژه و عملگرهای خط فرمان
برای
استفاده کارآمد تر از پوسته فرمان ،
کاراکترهای مخصوصی وجود دارند که به
کاراکترهای ویژه و عملگرها موسوم هستند.
با
کاراکترهای مخصوص میتوانید در تایپ کامل
نام یک یا چند فایل صرفه جویی کرده و با
استفاده از عملگرها اطلاعاتی را از یک
فایل یا دستور به یک دستور یا فایل دیگر
هدایت کنید.
استفاده
از کاراکترهای ویژه مخصوص نام فایلها
برای
کم کردن مقدار تایپ و انتخاب آسانتر دسته
ای از فایلها ، پوسته فرمان به شما امکان
استفاده از کاراکترهای ویژه را میدهد.
کاراکترهای
ویژه ای که از آنها میتوانید بین نام
فایلها استفاده کنید عبارتند از :
علامت
ستاره (*)
: میتواند
بجای هر تعدادی از کاراکترها قرار گیرد.
علامت
سوال (?) :
میتواند
بجای یک کاراکتر قرار گیرد.
علامت
دو براکت ([...])
: تمام
کاراکتر های ذکر شده در براکت در انتخاب
فایلها اثر میگذارند.
برای
تمرین بکارگیری این کاراکترها به یک
دایرکتوری خالی (مانند
دایرکتوری test
که
قبلا ایجاد کردید)
رفته
و با استفاده از دستور زیر دسته ای از
فایلهای خالی را ایجاد کنید :
$
touch apple banana grape grapefruit watermelon
حال
برای درک بهتر چگونگی عملکرد کاراکترهای
ویژه از دستور ls
استفاده
میکنیم.
به
خروجی هر فرمان توجه کنید :
$
ls a*
apple
$
ls g*
grape
grapefruit
$
ls g*t
grapefruit
$
ls *e*
apple
grape grapefruit watermelon
$
ls *n*
banana
watermelon
مثال
نخست هر فایلی را که با کاراکتر a
شروع
میشود را نمایش میدهد.
مثال
بعدی تمام فایلهایی را که با g
شروع
میشوند نمایش میدهد.
در
مثال بعدی فایلهایی که با g
شروع
شده و به t
ختم
میشوند نمایش داده میشوند و در دو مثال
بعدی فایلهایی که حاوی e
و n
هستند
نمایش داده میشوند.
به
چند مثال هم در مورد کاراکتر علامت سوال
توجه کنید:
$
ls ????e
apple
grape
$
ls g???e*
grape
grapefruit
در
مثال اول فایلهایی که دارای ۵ حرف بوده و
حرف آخر آنها e
است
نمایش داده میشوند.
در
مثال دوم فایلهایی که با g
شروع
شده و کاراکتر پنجم آنها e
است
را نمایش میدهد.
حال
مثالهایی در مورد براکتها :
$
ls [abw]*
allpe
banana watermelon
$
ls [agw]*[ne]
apple
grape watermelon
در
مثال نخست تمام فایلهایی که با a،
b و
w شروع
میشوند نمایش داده میشود.در
مثال دوم تمام فایلهایی که با a،
g و
w شروع
شده و به n
یا e
ختم
میشوند، نمایش داده میشوند.
استفاده
از کاراکترهای ویژه مخصوص هدایت فایلها
دستورات
ورودی خود را از ورودی استاندارد دریافت
کرده و روی خروجی استاندارد نمایش میدهند.
با
استفاده از لوله بندی که قبلا شرح داده
شد، میتوانستیم خروجی یک دستور را به
ورودی دستور دیگر متصل کنیم.
با
فایلها میتوانید از کاراکترهای کوچکتر
از (>) و
بزرگتر از (<)
برای
هدایت داده ها از/به
فایلها استفاده کنید.
این
کاراکترها عبارتند از:
کاراکتر
> : محتویات
یک فایل را به یک دستور هدایت میکند.
کاراکتر
< : خروجی
یک فرمان را به یک فایل هدایت کرده و در
صورتی که فایلی به همان نام وجود داشته
باشد، آنرا پاک میکند.
کاراکتر
<< :
خروجی
یک دستور را به یک فایل هدایت کرده و در
صورتی که فایلی به همان نام وجود داشته
باشد، اطلاعات به آخر آن اضافه خواهد شد.
برای
درک بهتر به مثالهای زیر توجه کنید:
$
mail root < ~/.bashrc
$
nroff -man /usr/share/man/man1/chmod.1* > /tmp/chmod
$
echo “I finished the project on $(date)” >> ~/projects
در
مثال نخست محتویات فایل .bashrc
در
دایرکتوری خانگی، در یک پیام پست الکترونیک
به کاربر root
کامپیوتر
ارسال میشود.
در
مثال دوم، صفحه کمک دستور chmod
با
استفاده از دستور nroff
فرمت
بندی شده و خروجی به فایل tmp/chmod
ارسال
میشود.
مثال
آخر نیز باعث خواهد شد تا خط زیر به فایل
projects که
در دایرکتوری خانگی کاربر وجود دارد،
اضافه شود:
I
finished the project on Sun May 25 14:25:36 IRST 2003
درک
مجوزهای فایلها (File
Permissions)
پس
از اینکه مدتی با لینوکس کار کردید، مطمئنا
به پیامهایی مانند Permission
Denied برخورد
خواهید کرد.
مجوزهای
فایلها و دایرکتوری ها در لینوکس به این
علت ایجاد شده اند که از دسترسی کاربران
به فایلها و اطلاعات خصوصی کاربران دیگر
جلوگیری به عمل آورده و از فایلهای سیستمی
در مقابل آسیب دیدگی حفاظت کنند.
به این
علت به هر فایل ۹ بیت اضافه میشود که معرف
چگونگی دسترسی شما و دیگران به آن فایل
خواهد بود.
این
بیتها بصورت rwxrwxrwx
نمایش
داده میشوند.
نخستین
سه بیت تعیین کننده دسترسی مالک فایل است.
سه بیت
بعدی برای گروه مالک و سه بیت بعدی برای
تعیین نحوه دسترسی دیگران است.
r نشانگر
خواندن، w
نشانگر
نوشتن و x
نشانگر
اجازه اجرا هستند.
در
صورتی که بجای یکی از این حروف علامت دش
(-) نمایش
داده شود، به این معنی است که این اجازه
غیر فعال است.
برای
نمایش مجوزهای هر فایل یا دایرکتوری
میتوانید از دستور ls
-ld استفاده
کنید. به
مثال زیر توجه کنید :
$
ls -ld ch3 test
-rw-rw-r--
3 alan alan 4096 May 22 15:11 ch3
drwxr-xr-x
3 alan alan 4096 May 17 20:14 test
خط
نخست فایلی را نشان میدهد که دارای مجوز
خواندن و نوشتن برای مالک و گروه است.
سایر
کاربران فقط اجازه خواندن فایل را دارا
هستند. این
به این معنی است که آنها میتوانند فایل
را ببیندن ولی هیچ تغییری نمی توانند در
آن اعمال کنند.
خط دوم
یک دایرکتوری است.
دقت
کنید که مجوزها با حرف d
که به
معنی دایرکتوری است آغاز شده است.
مالک
دایرکتوری دارای اجازه خواندن، نوشتن و
اجرا است.
در
نتیجه تنها مالک میتواند فایلها را در
این دایرکتوری اضافه کرده، تغییر داده و
پاک کند.
بقیه
کاربران تنها اجازه خواندن دارند.
یعنی
میتوانند به این دایرکتوری وارد شده و
محتویات آنرا ببینند.
در
صورتی که شما مالک یک فایل باشید، میتوانید
مجوزهای آنرا مطابق نیاز خودتان تنظیم
کنید. این
کار بوسیله دستور chmod
امکان
پذیر است.
برای
هریک از مجوزهای خواندن، نوشتن و اجرا
عددی در نظر گرفته شده است.
خواندن
۴، نوشتن ۲ و اجرا ۱.
بنابراین
برای اینکه تمام مجوزها را به خودتان
بدهید، مقدار سه بیت نخست باید ۷ تعیین
شود.
(۴+۲+۱).
برای
گروه و سایرین نیز میتوانید بنا به نیازشان
مجوز تعیین کنید.
مجوزها
بین ۷ (مجوز
کامل) و
۰ (هیچ
مجوزی!)
متغییر
هستند.
برای
روشن شدن بهتر مطلب به مثالهای زیر توجه
کنید :
$
chmod 777 files = rwxrwxrwx
$
chmod 755 files = rwxr-xr-x
$
chmod 644 files = rw-r--r--
$
chmod 000 files = --------
هنگامی
که یک فایل ایجاد میکنید، مجوز پیش گزیده
آن ۶۴۴ خواهد بود.
در
مورد دایرکتوری این مجوز ۷۵۵ است.
این
مقادیر پیش گزیده توسط دستور umask
تعیین
میشود.برای
نمایش مقدار umask
دستور
زیر را تایپ کنید:
$
umask
022
کافی
است اعدادی که در دستور umask
مشاهده
میکنید، از ۷ کم کنید.
با این
کار مقادیر پیش گزیده را برای دایرکتوری
مشاهده خواهید کرد.
در
مورد فایلها باید این اعداد را از ۶ کم
کنید. زیرا
در مورد فایلها به طور پیش گزیده مجوز
اجرا (با
مقدار ۱)
غیر
فعال است.
|
نکته
:
برا
تغییر تعداد زیادی از فایلها در یک
زمان باید از گزینه R
دستور
chmod
استفاده
کنید.
این
امکان وجود دارد که با یک فرمان مجوزهای
تمام فایلها و دایرکتور های درون یک
ساختار دایرکتوری را تغییر دهد.
برای
مثال برای تغییر مجوزهای تمام فایلها
و دایرکتور های موجود در مسیر tmp/test
میتوانید
دستور زیر را تایپ کند:
$
chmod -R 777 /tmp/test
|
|
هشدار
:
گزینه
R دستور
chmod
هنگام
اعطا مجوزهای کامل و اعطا مجوز اجرا
بسیار خوب است .
ولی
در صورتی که دستور بالا را بجای مقدار
۷۷۷ با مقدار ۶۴۴ اجرا کنید دیگر نمی
توانید به هیچ یک از دایرکتور های موجود
در آن مسیر وارد شوید.
|
انتقال،
کپی و پاک کردن فایلها
کپی،
انتقال و پاک کردن فایلها بسیار آسان است.
برای
انتقال یک فایل باید از دستور mv
استفاده
کنید. برای
کپی کردن فایلها دستور cp
وجود
دارد و برای پاک کردن فایلها نیز دستور
rm قابل
استفاده است.
به
مثالهای زیر توجه کنید:
$
mv abc def
$
mv abc ~
$
cp abc def
$
cp abc ~
$
rm abc
$
rm *
دستور
نخست نام فایل abc
را به
def تغییر
میدهد.
دستور
دوم این فایل را به دایرکتوری خانگی کاربر
(~)
منتقل
میکند.
دستور
سوم، فایل abc
را به
فایل def
کپی
کرده و دستور چهارم آنرا در دایرکتوری
خانگی کاربر کپی میکند.
دستور
پنجم فایل abc
را پاک
میکند در حالی که دستور ششم تمام محتویات
دایرکتوری جاری را پاک خواهد کرد.
|
نکته
:
برای
کاربر ریشه، دستور rm
به
کمک دستور alias
طوری
تنظیم شده است که برای پاک کردن فایلها
حتما از کاربر ریشه سوال شود.
این
اقدام از پاک شدن تصادفی تعداد زیادی
از فایلها در اثر اشتباه جلوگیری به
عمل میاورد.
|
|