LINUX

آموزش لینوکس

LINUX

آموزش لینوکس

LINUX

این وبلاگ به بحث پیرامون لینوکس و امنیت و زبان برنامه نویسی تحت لینوکس می پردازد.

طبقه بندی موضوعی

مدیریت فایل

سه شنبه, ۱۳ خرداد ۱۳۹۳، ۰۳:۲۶ ب.ظ

همه داده ها در یونیکس در فایل سازماندهی میشوند. همه فایل ها نیز در دایرکتوری سازماندهی میشوند. و همه این دایرکتوری ها در ساختار درختی تعریف میشوند. وقتی شما با یونیکس یا لینوکس کار میکنند بیشتر وقت شما صرف کار کردن با فایل ها میشود. در این بخش از آموزش قصد دارم کار با فایل ها رو به شما آموزش بدم.


در یونیکس ما سه بخش از فایل ها رو داریم:

۱) فایل های معمولی یا Ordinary Files

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


۲) دایرکتوری ها یا Directories

دایرکتوری ها میتوانند در خود دو دسته از فایل های ساده و مخصوص رو نگه داری کنند. برای کاربرانی که با ویندوز یا mac کار گردند میتونم بگم که تقریبا دایرکتوری ها همون فولدر ها هستند.


۳) فایل های مخصوص یا Special Files

بعضی فایل های مخصوص هم در یونیکس وجود داره که ازون ها برای دسترسی به سخت افزار درایو های هارد  مودم ها و ... استفاده میشود.



لیست کردن فایل ها

برای لیست کردن فایل ها و دایرکتوری هایی که در دایرکتوری که در اون حضور دارید وجود دارند از دستور ls باید استفاده کرد.

$ls
bin        hosts  lib     res.03
ch07       hw1    pub     test_results
ch07.bak   hw2    res.01  users
docs       hw3    res.02  work


دستور ls به شما اختیارات دیگری هم میدهد که مثلا بتوانید همین خروجی را با جزئیات بیشتری مشاهده نمایید. برای این کار از l- باید استفاده کنید:

$ls -l
total 1962188
drwxrwxr-x  2 amrood amrood      4096 Dec 25 09:59 uml
-rw-rw-r--  1 amrood amrood      5341 Dec 25 08:38 uml.jpg
drwxr-xr-x  2 amrood amrood      4096 Feb 15  2006 univ
drwxr-xr-x  2 root   root        4096 Dec  9  2007 urlspedia
-rw-r--r--  1 root   root      276480 Dec  9  2007 urlspedia.tar
drwxr-xr-x  8 root   root        4096 Nov 25  2007 usr
drwxr-xr-x  2    200    300      4096 Nov 25  2007 webthumb-1.01
-rwxr-xr-x  1 root   root        3192 Nov 25  2007 webthumb.php
-rw-rw-r--  1 amrood amrood     20480 Nov 25  2007 webthumb.tar
-rw-rw-r--  1 amrood amrood      5654 Aug  9  2007 yourfile.mid
-rw-rw-r--  1 amrood amrood    166255 Aug  9  2007 yourfile.swf
drwxr-xr-x 11 amrood amrood      4096 May 29  2007 zlib-1.2.3
$

حالا به توضیح پیرامون تمامی ستون هایی که در خروجی از چپ به راست مشاهده میکنید میپردازم:

۱) ستون اول: این ستون به ارائه اطلاعاتی درباره اجازه های دسترسی به هر فایل یا دایرکتوری ارائه میکند که در ادامه به توضیح ستون اول خواهم پرداخت.


۲) ستون دوم: تعداد بلاک های حافظه تخصیص داده شده به فایل یا دایرکتوری خاص را نشان میدهد.


۳) ستون سوم: مالک یا مالکان فایل یا دایرکتوری را نشان میدهد که بیانگر کابریست که این فایل را ایجاد کرده است.


۴) ستون چهارم: این ستون مشخص میکند که مالک فایل یا دایرکتوری عضو کدام گروه می باشد.


۵) ستون پنجم: این ستون اندازه فایل یا دایرکتوری مورد نظر را بر حسب بایت میدهد.


۶) ستون ششم: این ستون تاریخ و زمان که فایل ایجاد یا آخرین زمانی که اصلاح شده است را نشان میدهد.


۷) ستون هفتم: نام فایل یا دایرکتوری را نمایش میدهد.


همانطور که ملاحظه میکنید در ستون اول مقادیری وجود دارد که میخوام اون ها رو برای شما شرح بدم. در ستون اول اولین حرفی رو که میبینید ممکنه یکی از حالات زیر رو داشته باشه: (باقی حروف که مربوط به سطح دسترسی هست در آینده شرح داده خواهد شد)

 * - : نمایانگر فایل معمولی مانند فایل های متنی یا اسکی یا باینری های قابل اجرا یا hard link ها می باشد.


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


* c  : بیانگر فایل کاراکتری مخصوص می باشد. میتواند شامل دیوایس های خام ورودی و خروجی مانند درایو های هارد فیزیکی باشد.


* d : بیانگر دایرکتوری می باشد که خود ممکن است شامل چند دایرکتوری و فایل باشد.


* l : بیانگر فایل های سیمبولیک لینک می باشد. که به فایل های معمول لینک میدهد.


* p : بیانگر نام های پایپ شده می باشد. یک مکانیزمی برای ارتباطات بین پروسه ایست.


* a : بیانگر سوکت استفاده شده برای ارتباطات بین پروسه ایست.


کاراکترهای Meta

متا کاراکتر ها معنی خاصی در یونیکس دارند. از کاراکترهای متا میتوان به * و ? اشاره کرد. ما از ستاره برای بیان ۰ یا تعداد کاراکتر نامشخص و از علامت سوال برای بیان فقط یک کاراکتر استفاده میکنیم.

برای مثال ls ch*.doc نمایانگر لیست کردن هر فایلی که ابتدای آن ch و انتهای آن با doc. می باشد.

ls ch*.doc
ch01-1.doc   ch010.doc  ch02.doc    ch03-2.doc 
ch04-1.doc   ch040.doc  ch05.doc    ch06-2.doc
ch01-2.doc ch02-1.doc

 

و اگر دستور ls *.doc را استفاده کنیم خروجی آن برابر با لیست کردن تمام فایل هاییست که در انتهای آنها حتما عبارت doc. وجود دارد.


فایل های مخفی

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


* profile. : اسکریپت آغازین محیط sh  یا Bourne shell می باشد.

* kshrc. : اسکریپت آغازین محیط ksh یا Korn shell می باشد.

* cshrc. : اسکریپت آغازین محیط csh یا C shell می باشد.

* rhost. : فایل تنظیماتی مربوط به شل از راه دور می باشد.


برای اینکه بتوانید علاوه بر دیدن فایل های معمولی فایل های مخفی را هم ببینید باید به صورت زیر عمل کنید:

$ ls -a
.         .profile       docs     lib     test_results
..        .rhosts        hosts    pub     users
.emacs    bin            hw1      res.01  work
.exrc     ch07           hw2      res.02
.kshrc    ch07.bak       hw3      res.03
$

تک نقطه بیانگر Current Directory  و دونقطه بیانگر Parent Directory  می باشد.


ایجاد فایل

شما میتوانید با ابزاری به نام vi یا vim که یک ویرایشگر متن می باشد فایل را ایجاد و در آن متن مورد نظر خود را تایپ کنید. بعد از باز شدن فایل برای اینکه بتوانید در محیط باز شده تایپ کنید لازم است یک بار کلید i یا insert را بفشارید و متن خود را تایپ کنید:

This is unix file....I created it for the first time.....
I'm going to save this content in this file.


حال برای خارج شدن از حالت ادیت می بایست یک بار کلید Esc را بزنید. برای خارج شدن از آن محیط باید  ترکیبی از کلید های Shift + zz را بزنید و یا عبارت !wq: را تایپ کنید و سپس اینتر را بقشارید.

برنامه vim خود دارای آموزش های مفصلی می باشذ که در آینده ان شالله برای شما بخشی از اون ها رو قرار خواهم داد.

نمایش محتویات فایل
در یونیکس اگر میخواهید محتویات یک فایل چند خطی را ببینید میتوانید از دستور cat استفاده کنید.
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
$


حال اگر میخواهید شماره خط های فایل نیز برای شما به نمایش در آید باید از b- استفاده کنید:

$ cat -b filename
1   This is unix file....I created it for the first time.....
2   I'm going to save this content in this file.
$


تعداد کلمات در فایل

شما میتوانید در یونیکس تعداد کلمات را در یک فایل بشمارید. نکته قابل ذکر این است که تمامی دستورات در کنار هم میتوانند برای نوشتن یک اسکریپت بش بسیار به شما کمک کنند. این کار توسط دستوری به نام wc ممکن است.

$ wc filename
2  19 103 filename
$


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


دستور کپی - تغییر نام و حذف فایل

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

$ cp source_file destination_file

این دستور یک کپی از فایل اول با نام فایل دوم میسازد.


حال اگر میخواهید فایلی را تغییر نام بدهید باید از دستور mv استفاده کنید.

$ mv old_file new_file


همچنین برای حذف کردن فایل میتوانید از دستور rm استفاده کنید که توصیه میشود هنگام استفاده از این دستور خیلی مراقب باشید. چون من خیلی ها رو دیدم که حواسشون نبوده و خطاهای بزرگی بواسطه استفاده کردن از این دستور مرتکب شدند. برای اطمینان بیشتر میتونید در کنارش از i- استفاده کنید که قبل از حذف شدن فایل از شما سوال بپرسه که آیا مطمانید از حذف این فایل یل خیر.

$ rm filename
$ rm filename1 filename2 filename3


Standard Unix Streams

در شرایط معمولی هر برنامه یونیکس شامل ۳ stream می باشد.


۱) stdin : منظور از آن Standard input یا ورودی استاندارد می باشد که در فایل تشریحی مقدار 0 به آن تخصیص می یابد که به آن STDIN نیز گفته میشود. هر سیستم یونیکس یا لینوکس مقدار پیش فرض ورودی را از STDIN میخواند.


۲) stdout : منظور از آن Standard Output یا خروجی استاندارد می باشد که در فایل تشریحی مقدار 1 به آن تخصیص می یاید که به آن STDOUT نیز گقته میشود. هر سیستم یونیکس یا لینوکس مقدار پیشفرض خروجی استاندارد را در STDOUT می نویسد.


۳) stderr : منظور از آن Standard Error یا خطای استاندارد می باشد که در فایل تشریحی مقدار 2 به آن تخصیص می یابد که به آن STDERR نیز گفته میشود. هر سیستم یونیکس یا لینوکس پیام پیشفرش خطا را در STDERR می نویسد.




نظرات  (۰)

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

ارسال نظر

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