هام جدا لمستخدمي بريد الياهو من الأعضاء



>>>>>>>>>> للتسجيل في الموقع أضغط هنا <<<<<<<<<<


عـودة للخلف   منتديات كتاب العرب > كلية تكنولوجيا المعلومات > نظام التشغيل لينوكس > دروس وشروحات اللينوكس


الرد على الموضوع
 
خيارات الموضوع طريقة العرض
  #11  
قديم 2006-03-18, 06:46 PM
 
Arab Penguin .. أنت رائع بحق ..

شرح وافي كافي و لا أحلى منه ..

بس انتظر أخلص تنزيل و تحميل السوزي .. و راح أجيلك و نشوف الموضوع ماشي كيف ..

تحياتي لك أيها المبدع

الرد باقتباس
  #12  
قديم 2006-03-29, 10:30 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

جزاك اللة الف خير اخوي على الشرح الاكثر من رائع

الرد باقتباس
  #13  
قديم 2006-04-09, 01:37 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

إبداع و مشكووور

الرد باقتباس
  #14  
قديم 2006-04-12, 07:29 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

Gazakom Allah 7'ayeraa. Excellent information ...

الرد باقتباس
  #15  
قديم 2006-04-13, 05:02 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

قبل أن أخوض فى درس اليوم أريد فقط أن نرجع الى الأمر CD لكى نفصل بين أمرين مهمين جدا فلو سألتك سؤالا بسيطا يا أخى الكريم ما الفرق بين الأمرين التاليين:
cd ahmed
cd /home/ahmed
أرجو يا أخى أن تعيرنى الأهتمام قليلا :-
الأول يقوم بتغيير المجلد أو Directory الحالى الى المجلد ahmed الموجود فى نفس المجلد الحالى
للتوضيح أكثر :
لو أنك مثلا فى المجلد var ( ويمكن أن تعرف المسار الحالى أو المجلد الحالى كما قلنا سابقا من خلال الأمر pwd ) وأردت تنفيذ الأمر الأول يجب أن يكون لديك مجلد يسمى ahmed داخل هذا المجلد (var ) وهو يسمى فى هذه الحالة بالمجلد الأب .
أما الأمر الثانى فهو يقوم بتغيير المسار الحالى أو المجلد الحالى الى المجلد home/ahmed/ أى الى المجلد ahmed الموجود داخل المجلد home ويمكنك تنفيذ هذا الأمر وأنت فى أى مجلد .
فى المرة السابقة توقفنا عند أمر ln وقلنا أنه يقوم بعمل Shortcut او link لملف أو مجلد من المجلدات وطلبت منك أن تراجع هذا الأمر بنفسك وهذا الأمر لا أريدك أن تعرف عنه الكثير من الخيارات ربما الخيار الوحيد الذى ستستخدمه هو s- وهو يقوم بعمل symbolic links بدلا من hard link .
كود:
[ahmed@localhost ahmed]$ ln -s /etc/fstab  /home/ahmed
[ahmed@localhost ahmed]$
ولو قمت بعمل listing للمجلد ahmed لرأيت اللينك موجود :
كود:
[ahmed@localhost ahmed]$ ls
Desktop/  fstab@  tmp/
[ahmed@localhost ahmed]$
نستكمل الحديث عن الاوامر الأساسية والمهمة فى نظام التشغيل لينوكس :
الأمر find :
يستخدم الأمر find للبحث عن الملفات والمجلدات الموجودة لديك أو بعبارة أخرى يقوم بعمل Search على أى ملف تريده وفى أى مكان تريد أن يبحث فيه ويستخدم هكذا :
كود:
[ahmed@localhost ahmed]$ find   [المكان المراد البحث فيه]  -name [اسم الملف المراد البحث عنه]
مثال :
لو أننا نريد أن نبحث عن الملف javac فى المجلد usr/java/ سنقوم بالأتى :
كود:
[ahmed@localhost ahmed]$ find   /usr/java   -name   javac
/usr/java/jdk1.5.0_04/bin/javac
[ahmed@localhost ahmed]$
تلاحظ أنه قام بالبحث ثم طبع المسار لهذا الملف كاملا كما تلاحظ .
مثال آخر :
نريد أن نبحث عن الملف bash1 فى المجلد usr/ :
كود:
[ahmed@localhost ahmed]$ find /usr/bin -name bash1
/usr/bin/bash1
[ahmed@localhost ahmed]$
تلاحظ أنه قام بإيجاد المسار لهذا الملف وقام بطبعه كاملا .
ويجب هنا أن نذكر بعض الخيارات الأخرى التى تجعل عملية البحث أكثر مرونة وقوة مثل البحث عن الملفات عن طريق التاريخ !!!!!
مثال :
فى المثال السابق قمنا بالبحث عن طريق الأسم فقط لكن هنا سنقوم بالبحث عن طريق النوع أو الخصائص مثل البحث عن الأوامر أو البرامج التى لم يتم استخدامها فى خلال ال ٧ أيام الماضية أستخدم الأمر find مع الخيار type- كما يلى :
[ahmed@localhost ahmed]$ find /usr/bin -type f -atime +7
والنتيجة كما لاحظت تكون كبيرة ( ربما لديك تكون صغيرة ) ولذلك سأعرض منها جزءا قليلا
كود:
........................
........................
/usr/bin/xdvizilla
/usr/bin/mytool
/usr/bin/uniconv
/usr/bin/uniprint
/usr/bin/yudit
/usr/bin/progen
/usr/bin/tmake
/usr/bin/cu
/usr/bin/uucp
/usr/bin/uulog
/usr/bin/uuname
/usr/bin/uupick
/usr/bin/uustat
/usr/bin/uuto
/usr/bin/uux
/usr/bin/ukxim
/usr/bin/unikey
/usr/bin/acpi
/usr/bin/acroread
/usr/bin/genkdmconf
/usr/bin/kdm_config
/usr/bin/kdm_greet
/usr/bin/krootimage
[ahmed@localhost ahmed]$
لاحظ أننا وضعنا عدد الأيام بعد الخيار atime- .
كما أن أمر find يدعم ال wild card مثل (*,? ) :
مثلا يا سيدي لو أنك تريد أن تبحث عن كل الملفات التى تنتهى بالإمتداد so.
كود:
[ahmed@localhost ahmed]$ find /usr/lib   -name  *.so
ويجب أن تعلم أن الأمر find لديه الكثير من الخيارات لا يمكننى أن أناقشها الآن لأننى سأتطرق الى أوامر أخرى بعد ذلك أكثر فاعلية من الأمر find ليس فى كل المهام ولكن فى مهام معينة تتعلق بالأوامر والبرامج وقبل أن أنتقل الى هذه النقطة أذكر لكم خيارا جديدا للأمر find أسمه xdev- وهو يقوم بتحديد مجال البحث للأمر find فى مجلد معين من مجلدات النظام .
أرجو أن تأخذ قسطا من الراحة أو تطبيق ما قمنا بشرحه من أوامر حتى الآن حتى تثبت المعلومة .
استمر>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

الرد باقتباس
  #16  
قديم 2006-04-13, 05:05 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

الأمر Whereis

يستطيع هذا الأمر البحث بسرعة عن الملفات وخصوصا الأوامر ويقوم بعرض معلومات عنها كما سنرى:

بالتأكيد تتذكر الأمر find الذى شرحناه للتو . الآن أنا أريد أن أعرف أين يقع هذا الأمر فى جهازى وأين يوجد الmanual الخاص به :
كود:
[ahmed@localhost ahmed]$ whereis find
find: /bin/find /usr/bin/find /usr/share/man/man1/find.1.bz2
[ahmed@localhost ahmed]$
نجد أن الأمر قام بعرض مسار الأمر find كاملا وهو المجلد usr/bin/ و أيضا فى bin/ وأن ال manual pages له موجودة فى /usr/share/man/man1/ .

ولعرض النسخة الbinary فقط من الامر whereis استخدم الخيار b- هكذا :
كود:
[ahmed@localhost ahmed]$ whereis -b find
find: /bin/find /usr/bin/find
[ahmed@localhost ahmed]$
نستنتج من ذلك أن الأمر whereis يقوم بتحديد مكان الأوامر وال man وهذا الأمر أسرع من أمر find لأنه يبحث فى أماكن معينة مثل usr/bin/ أو usr/sbin/ أو bin/ لذلك فهو أسرع فى عملية البحث .
الأمر locate :

اذا لم يكفيك find و whereis فى عمليات البحث التى تجريها فلا تقلق يا عزيزى فأخونا لينوكس أو بالأحرى أخونا Shell يفكر فيما تفكر فيه ويحاول أن يوفر لك كل ما تحتاجه وما لا تحتاجه أيضا .
أمر locate يقوم باستخدام قاعدة بيانات لأسماء الملفات وأماكنها وبذلك نكون قد وفرنا الوقت فى عمليه البحث فبدلا من أن يتم البحث فى جميع الملفات الموجودة فى الجهاز أو التى حددتها يقوم الأمر بالبحث فى قاعدة البيانات التى بناها والتى تحتوى على أسماء كل الملفات على جهازك .

وقبل أن تقوم باستخدام هذا الأمر لأول مرة يجب أولا أن تقوم بعمل قاعدة البيانات !!!
ايه ؟؟؟
مش أنت ياعم لسة بتقول أن ال shell ده مرن وسهل ؟ قاعدة بيانات ايه الى عايزنى أعملها ؟
أقول لك لا تقلق يا عزيزى والله العظيم أخونا shell مظلوم بس أصبر شوية .
شوف يا سيدي كل ما عليك هو أن أنت تدخل لحساب ال Super User أو Root وذلك بالأمر su كما قلنا سابقا وبعد ذلك تدخل ال password وبعدها أكتب الأمر updatedb وأنتظر لحظات لكى يقوم بعمل قاعدة البيانات وبعدها يكون الملف الذى يحتوى على أسماء ومسارات الملفات موجود لديك ويمكنك بعدها استخدام الأمر locate بسهولة .
مثال نريد أن نبحث عن الملفات التى يكون امتدادها so :
كود:
[ahmed@localhost ahmed]$ locate *.so
طبعا رأيت النتيجة بنفسك ورأيت ايضا سرعة البحث وقارنه باستخدام أمر find .
ويجب أن أشير هنا الى موضوع أو ملحوظة أجلتها قليلا وجاء وقتها وهى أنك تستطيع تعرف معلومات مختصرة عن أى أمر عن طريق الخيار help-- حيث يعطيك نبذة عن الأمر وعن الخيارات الموجودة مع هذا الأمر وكذلك وظيفة كل خيار :
مثلا لو أردت اظهار بعض المعلومات المختصرة عن الأمر ls :
كود:
 [ahmed@localhost ahmed]$ ls -- help
سيعطيك هذه النتيجة
كود:
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not hide entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               print the author of each file
  -b, --escape               print octal escapes for nongraphic characters
      --block-size=SIZE      use SIZE-byte blocks
  -B, --ignore-backups       do not list implied entries ending with ~
  -c                         with -lt: sort by, and show, ctime (time of last
                               modification of file status information)
                               with -l: show ctime and sort by name
                               otherwise: sort by ctime
  -C                         list entries by columns
      --color[=WHEN]         control whether color is used to distinguish file
                               types.  WHEN may be `never', `always', or `auto'
  -d, --directory            list directory entries instead of contents,
                               and do not dereference symbolic links
  -D, --dired                generate output designed for Emacs' dired mode
  -f                         do not sort, enable -aU, disable -lst
  -F, --classify             append indicator (one of */=@|) to entries
      --format=WORD          across -x, commas -m, horizontal -x, long -l,
                               single-column -1, verbose -l, vertical -C
      --full-time            like -l --time-style=full-iso
  -g                         like -l, but do not list owner
  -G, --no-group             inhibit display of group information
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
      --si                   likewise, but use powers of 1000 not 1024
  -H, --dereference-command-line
                             follow symbolic links listed on the command line
      --dereference-command-line-symlink-to-dir
                             follow each command line symbolic link
                               that points to a directory
      --indicator-style=WORD append indicator with style WORD to entry names:
                               none (default), classify (-F), file-type (-p)
  -i, --inode                print index number of each file
  -I, --ignore=PATTERN       do not list implied entries matching shell PATTERN
  -k                         like --block-size=1K
  -l                         use a long listing format
  -L, --dereference          when showing file information for a symbolic
                               link, show information for the file the link
                               references rather than for the link itself
  -m                         fill width with a comma separated list of entries
  -n, --numeric-uid-gid      like -l, but list numeric UIDs and GIDs
  -N, --literal              print raw entry names (don't treat e.g. control
                               characters specially)
  -o                         like -l, but do not list group information
  -p, --file-type            append indicator (one of /=@|) to entries
  -q, --hide-control-chars   print ? instead of non graphic characters
      --show-control-chars   show non graphic characters as-is (default
                             unless program is `ls' and output is a terminal)
  -Q, --quote-name           enclose entry names in double quotes
      --quoting-style=WORD   use quoting style WORD for entry names:
                               literal, locale, shell, shell-always, c, escape
  -r, --reverse              reverse order while sorting
  -R, --recursive            list subdirectories recursively
  -s, --size                 print size of each file, in blocks
  -S                         sort by file size
      --sort=WORD            extension -X, none -U, size -S, time -t,
                               version -v
                             status -c, time -t, atime -u, access -u, use -u
      --time=WORD            show time as WORD instead of modification time:
                               atime, access, use, ctime or status; use
                               specified time as sort key if --sort=time
      --time-style=STYLE     show times using style STYLE:
                               full-iso, long-iso, iso, locale, +FORMAT
                             FORMAT is interpreted like `date'; if FORMAT is
                             FORMAT1<newline>FORMAT2, FORMAT1 applies to
                             non-recent files and FORMAT2 to recent files;
                             if STYLE is prefixed with `posix-', STYLE
                             takes effect only outside the POSIX locale
  -t                         sort by modification time
  -T, --tabsize=COLS         assume tab stops at each COLS instead of 8
  -u                         with -lt: sort by, and show, access time
                               with -l: show access time and sort by name
                               otherwise: sort by access time
  -U                         do not sort; list entries in directory order
  -v                         sort by version
  -w, --width=COLS           assume screen width instead of current value
  -x                         list entries by lines instead of by columns
  -X                         sort alphabetically by entry extension
  -1                         list one file per line
      --help     display this help and exit
      --version  output version information and exit

SIZE may be (or may be an integer optionally followed by) one of following:
kB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.

By default, color is not used to distinguish types of files.  That is
equivalent to using --color=none.  Using the --color option without the
optional WHEN argument is equivalent to using --color=always.  With
--color=auto, color codes are output only if standard output is connected
to a terminal (tty).

Report bugs to <bug-coreutils@gnu.org>.
[ahmed@localhost ahmed]$
معلومات جيدة تعتبر فى كثير من الأحيان أفضل من استخدام الman .

وهناك أيضا أمر يسمى whatis يقوم بعرض معلومات مختصرة عن الأوامر وهو كالأمر السابق locate يحتاج الى قاعدة بيانات خاصة به ويجب تكوين هذه القاعدة قبل استخدام هذا الأمر لأول مرة بالدخول الى حساب المستخدم root وكتابة الأمر makewhatis وانتظر بعض الوقت لكى يكون القاعدة .
وبعدها استخدم الامر whatis بسهولة .
مثال :
نريد أن نعرف معلومات أو وظيفة أمر ما أكتب الأمر whatis متبوعا بأسم الأمر الذى تريده هكذا :
كود:
[ahmed@localhost ahmed]$ whatis ls
ls                   (1)  - list directory contents
[ahmed@localhost ahmed]$

/////////////////////////////////////////////////////////

[ahmed@localhost ahmed]$ whatis find
find                 (1)  - search for files in a directory hierarchy
[ahmed@localhost ahmed]$
ربما لم يخطر ببالك هذا السؤال :
أنا لا أريد أن أعرف وظيفة الأمر ؟؟ أنا لدى الوظيفة فعلا ولكنى لا أعرف ما هو الأمر !!!!!!!
أو ربما يكون السؤال بصيغة أخرى :
أنا لا أعرف الأمر الذى أريد أن أستخدمه لعمل وظيفة معينة ؟؟؟

أيا كان صيغة السؤال فالإجابة موجودة :-
لدينا أمر جميل جدا اسمه apropos وهو يستخدم الdatabase التى يستخدمها الأمر whatis لكن بطريقة مختلفة .
مثال :
لو لديك الوظيفة أو المهمة وهى مثلا تريد أن تبحث Search فى الجهاز عن ملف معين ولا تعرف كيف تقوم بوظيفة البحث هذه ولا تعرف ما هو الأمر أو الأوامر التى تستخدمها ماذا تفعل اذن؟؟؟

الإجابة : سينصحك أحد أصدقاءك العباقرة ويقول لك سيبك من النظام ( المعفن ) ده ياعم هو فيه أحسن من الويندوز اللى الواحد بيبقى قاعد زى الباشا وهو بيعمل كل حاجة !

ربما يكون جزء من نصيحة صديقك العبقرى صحيحا لكن صديقك هذا لا يعرف الكثير من المعلومات الدقيقة .
ايه يا سيدى اللى أنت عايز تعمله ؟؟
ج: أنا عايز أعمل search .
خلاص يا عم أكتب الأمر apropos متبوعا بكلمة Search وشوف النتيجة .
كود:
[ahmed@localhost ahmed]$ apropos search
هل رأيت النتيجة !

كود:
apropos              (1)  - search the whatis database for strings
badblocks            (8)  - search a device for bad blocks
bsearch              (3)  - binary search of a sorted array
find                 (1)  - search for files in a directory hierarchy
gnome-search-tool    (1)  - the GNOME Search Tool
hcreate [hsearch]    (3)  - hash table management
hdestroy [hsearch]   (3)  - hash table management
hsearch              (3)  - hash table management
lfind [lsearch]      (3)  - linear search of an array
lkbib                (1)  - search bibliographic databases
lookbib              (1)  - search bibliographic databases
look [Search::Dict]  (3pm)  - search for key in dictionary file
lsearch              (3)  - linear search of an array
lsearch              (n)  - See if a list contains a particular element
manpath [man]        (1)  - determine user's search path for man pages
Net::LDAP::Reference (3pm)  - search reference
Net::LDAP::Search    (3pm)  - Object returned by Net::LDAP search method
res_search [resolver] (3)  - resolver routines
Search::Dict         (3pm)  - search for key in dictionary file
strcspn [strspn]     (3)  - search a string for a set of characters
strpbrk              (3)  - search a string for any of a set of characters
strspn               (3)  - search a string for a set of characters
tdelete [tsearch]    (3)  - manage a binary tree
tfind [tsearch]      (3)  - manage a binary tree
tsearch              (3)  - manage a binary tree
twalk [tsearch]      (3)  - manage a binary tree
wcschr               (3)  - search a wide character in a wide-character string
wcscspn              (3)  - search a wide-character string for any of a set of wide characters
wcspbrk              (3)  - search a wide-character string for any of a set of wide characters
wcsrchr              (3)  - search a wide character in a wide-character string
whatis               (1)  - search the whatis database for complete words
wmemchr              (3)  - search a wide character in a wide-character array
zgrep                (1)  - search possibly compressed files for a regular expression
zipgrep              (1)  - search files in a ZIP archive for lines matching a pattern
bsearch              (3)  - binary search of a sorted array
hcreate [hsearch]    (3)  - hash table management
hdestroy [hsearch]   (3)  - hash table management
hsearch              (3)  - hash table management
lfind [lsearch]      (3)  - linear search of an array
lsearch              (3)  - linear search of an array
res_search [resolver] (3)  - resolver routines
strcspn [strspn]     (3)  - search a string for a set of characters
strpbrk              (3)  - search a string for any of a set of characters
strspn               (3)  - search a string for a set of characters
tdelete [tsearch]    (3)  - manage a binary tree
tfind [tsearch]      (3)  - manage a binary tree
tsearch              (3)  - manage a binary tree
twalk [tsearch]      (3)  - manage a binary tree
wcschr               (3)  - search a wide character in a wide-character string
wcscspn              (3)  - search a wide-character string for any of a set of wide characters
wcspbrk              (3)  - search a wide-character string for any of a set of wide characters
wcsrchr              (3)  - search a wide character in a wide-character string
wmemchr              (3)  - search a wide character in a wide-character array
[ahmed@localhost ahmed]$
ومن الملاحظ أنه قد أظهر أول أمر من الأوامر التى تقوم بالبحث وهو الأمر apropos !!
ارجو أن تكون قد أدركت هذا الواقع .

ويجدر بنا الأشارة هنا أنه يمكنك استخدام أمر man السابق لكى يقوم بنفس مهمة الأمر apropos ولكن الأمر man نستخدمه هنا مع الخيار k- ولكن سيكون البحث بطىء قليلا ....
جرب هذا
كود:
[ahmed@localhost ahmed]$ man -k search
والنتيجة

كود:
apropos              (1)  - search the whatis database for strings
badblocks            (8)  - search a device for bad blocks
bsearch              (3)  - binary search of a sorted array
find                 (1)  - search for files in a directory hierarchy
gnome-search-tool    (1)  - the GNOME Search Tool
hcreate [hsearch]    (3)  - hash table management
hdestroy [hsearch]   (3)  - hash table management
hsearch              (3)  - hash table management
lfind [lsearch]      (3)  - linear search of an array
lkbib                (1)  - search bibliographic databases
lookbib              (1)  - search bibliographic databases
look [Search::Dict]  (3pm)  - search for key in dictionary file
lsearch              (3)  - linear search of an array
lsearch              (n)  - See if a list contains a particular element
manpath [man]        (1)  - determine user's search path for man pages
Net::LDAP::Reference (3pm)  - search reference
Net::LDAP::Search    (3pm)  - Object returned by Net::LDAP search method
res_search [resolver] (3)  - resolver routines
Search::Dict         (3pm)  - search for key in dictionary file
strcspn [strspn]     (3)  - search a string for a set of characters
strpbrk              (3)  - search a string for any of a set of characters
strspn               (3)  - search a string for a set of characters
tdelete [tsearch]    (3)  - manage a binary tree
tfind [tsearch]      (3)  - manage a binary tree
tsearch              (3)  - manage a binary tree
twalk [tsearch]      (3)  - manage a binary tree
wcschr               (3)  - search a wide character in a wide-character string
wcscspn              (3)  - search a wide-character string for any of a set of wide characters
wcspbrk              (3)  - search a wide-character string for any of a set of wide characters
wcsrchr              (3)  - search a wide character in a wide-character string
whatis               (1)  - search the whatis database for complete words
wmemchr              (3)  - search a wide character in a wide-character array
zgrep                (1)  - search possibly compressed files for a regular expression
zipgrep              (1)  - search files in a ZIP archive for lines matching a pattern
bsearch              (3)  - binary search of a sorted array
hcreate [hsearch]    (3)  - hash table management
hdestroy [hsearch]   (3)  - hash table management
hsearch              (3)  - hash table management
lfind [lsearch]      (3)  - linear search of an array
lsearch              (3)  - linear search of an array
res_search [resolver] (3)  - resolver routines
strcspn [strspn]     (3)  - search a string for a set of characters
strpbrk              (3)  - search a string for any of a set of characters
strspn               (3)  - search a string for a set of characters
tdelete [tsearch]    (3)  - manage a binary tree
tfind [tsearch]      (3)  - manage a binary tree
tsearch              (3)  - manage a binary tree
twalk [tsearch]      (3)  - manage a binary tree
wcschr               (3)  - search a wide character in a wide-character string
wcscspn              (3)  - search a wide-character string for any of a set of wide characters
wcspbrk              (3)  - search a wide-character string for any of a set of wide characters
wcsrchr              (3)  - search a wide character in a wide-character string
wmemchr              (3)  - search a wide character in a wide-character array
[ahmed@localhost ahmed]$
وبذلك نكون تقريبا قد غطّينا أو وضعنا أساسيات البحث عن الملفات وعن الأوامر وبذلك نستطيع أن ننتقل الى مواضيع أخرى مثل ضغط وفك ضغط الملفات وغيرها من المواضيع المهمة .
أرجو أن تكون قد استفدت يا أخى الكريم من هذا الدرس وأرجو الله تعالى أن يعيننى ويساعدنى فى أنجاز باقى الدروس وكذلك مساعدتى على اخراجها بشكل ملائم ودقيق .

كود:
والى اللقاء بإذن الله تعالى .

الرد باقتباس
  #17  
قديم 2006-04-13, 05:08 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

ضغط وفك ضغط الملفات

سأحاول بإذن الله تعالى تقديم بعض الأساسيات فى موضوع ضغط وفك ضغط الملفات والأرشيفات وستكون فاتحة جيدة لك فى أمر مهم جدا .

أولا يجب أن نتطرق الى ما هى الأرشيفات وكيف أقوم بعملها ؟
كلمة أرشيف تعنى مجموعة من الملفات والمجلدات موجودة مع بعضها البعض فى مكان واحد . ويتم التعامل معها على أنها ملف واحد !

كيفية عمل الأرشيف Archive :
لعمل أرشيف من الملفات أو المجلدات أو الأثنين معا بإستخدام الأمر tar وهو يعنى Tape ARchive .

وهذا البرنامج له جذور عميقة فى الحاسب الآلى قبل ظهور ال Hard disks أو Floppy drives أو CD-ROM's فكانت البرامج أو Software عموما يوزع ويخزن على الشرائط المغناطيسية وكان من أول البرامج التى تم استخدامها على الحاسب لقراءة المعلومات المخزنة على هذه الشرائط هو قارىء الأشرطة أو Tape reader وتم تطوير البرنامج بمرور الوقت وتم استخدام البرنامج فى عمل الPackaging أو التعبئة للبرامج المستخدمة على اللينوكس ( لاحظ أن معظم التوزيعات مثل Redhat و Fedora و Mandrake تستخدم برنامج rpm وهناك توزيعات أخرى لديها نظام تعبئة Packaging خاص بها مثل deb الموجود فى ال Debian ) .

يمكنك عمل أرشيف من النوع tar عن طريق الأمر tar :
مثال
سنقوم الآن بعمل مجلد سنسميه مثلا arabteam وقم بعمل 3 ملفات بداخله وسمها file1 ,file2 ,file3 هكذا :
كود:
[ahmed@localhost ahmed]$ mkdir arabteam
[ahmed@localhost ahmed]$ cd arabteam
[ahmed@localhost arabteam]$ touch file1 file2 file3
[ahmed@localhost arabteam]$
قم بعمل مجلد داخل المجلد arabteam وسميه Sub_arabteam ويجب أن تلاحظ أن هذا المجلد يعتبر مجلد فرعى من المجلد الرئيسى .
وقم أيضا بعمل ثلاث ملفات جديدة file21 ,file22 ,file23 داخل المجلد الفرعى sub_arabteam .

كود:
[ahmed@localhost arabteam]$ mkdir sub_arabteam
[ahmed@localhost arabteam]$ cd sub_arabteam
[ahmed@localhost sub_arabteam]$ touch file21 file22 file23
[ahmed@localhost sub_arabteam]$
أكتب الأمر tree متبوعا arabteam لكى ترى الشجرة التكوينة للمجلد arabteam :

كود:
[ahmed@localhost sub_arabteam]$ cd ../..
[ahmed@localhost ahmed]$ tree arabteam
arabteam
|-- file1
|-- file2
|-- file3
`-- sub_arabteam
    |-- file21
    |-- file22
    `-- file23

1 directory, 6 files
[ahmed@localhost ahmed]$
تلاحظ أن المجلد arabteam يحتوى على ٦ ملفات و مجلد فرعى واحد .

نرجع الى موضوعنا فنحن نريد عمل أرشيف وليكن عمل أرشيف من المجلد arabteam .
حسنا قم بكتابة الأمر tar متبوعا بالخيار c- ( وهو يعنى create) وكذلك الخيار f- ( وهو يعنى file) ثم أسم الأرشيف وليكن arabteam.tar وفى النهاية اسم المجلد المراد عمل الأرشيف منه هكذا :

كود:
[ahmed@localhost ahmed]$ tar -cf arabteam.tar arabteam
[ahmed@localhost ahmed]$
وهكذا قد تم عمل الأرشيف ولو أردت أن ترى ما يحدث أثناء عمل الأرشيف استخدم الخيار v- هكذا :
كود:
[ahmed@localhost ahmed]$ tar -cvf arabteam.tar arabteam
arabteam/
arabteam/file1
arabteam/file2
arabteam/file3
arabteam/sub_arabteam/
arabteam/sub_arabteam/file21
arabteam/sub_arabteam/file22
arabteam/sub_arabteam/file23
[ahmed@localhost ahmed]$
فهو يقوم بإطلاعك على ما يقوم بإضافته من مجلدات و ملفات أثناء عمل الأرشيف .
ولو كنت تريد أضافة عدد معين فقط من الملفات ولا تريد إضافة ملفات أخرى موجودة داخل أحد المجلدات الفرعية أو تحت المجلد الرئيسى :

استخدم الخيار cwf ولا حظ أن الترتيب مهم يعنى cwf لا تساوى fwc :
كود:
[ahmed@localhost ahmed]$ tar -cwf arabteam.tar arabteam
add `arabteam'?y
add `arabteam/file1'?n
add `arabteam/file2'?n
add `arabteam/file3'?y
add `arabteam/sub_arabteam'?y
add `arabteam/sub_arabteam/file21'?y
add `arabteam/sub_arabteam/file22'?n
add `arabteam/sub_arabteam/file23'?y
[ahmed@localhost ahmed]$
ماذا لو أردت عرض أحد الأرشفة يعنى لو أردت عرض ما يحتويه أرشيف ما :
أستخدم الخيار tf- هكذا :
ولاحظ أيضا الترتيب فى الخيارات مهم .
كود:
[ahmed@localhost ahmed]$ tar -tf  arabteam.tar
arabteam/
arabteam/file3
arabteam/sub_arabteam/
arabteam/sub_arabteam/file21
arabteam/sub_arabteam/file23
[ahmed@localhost ahmed]$
بذلم نكون أنتهينا من طريقة عمل وعرض محتويات الأرشيف ننتقل الآن الى الخطوة العكسية وهى كيفية استخراج محتويات الأرشيف.

أولا لكى تستخرج محتويات أرشيف ما استخدم الخيار -x مع الخيار v- وكذلك الخيار f- لكى يصبح الخيار كله xvf- ( ملحوظة : دائما اجعل الخيار f هو الأخير اذا اتى معه خيار آخر ) :
كود:
[ahmed@localhost ahmed]$ tar -xvf arabteam.tar
arabteam/
arabteam/file3
arabteam/sub_arabteam/
arabteam/sub_arabteam/file21
arabteam/sub_arabteam/file23
[ahmed@localhost ahmed]$
ولو أردت استخراج ملف واحد أو عدد قليل من الملفات الموجودة فى الأرشيف استخدم الخيار w مع الخيارات السابقة :
كود:
[ahmed@localhost ahmed]$ tar -xvwf arabteam.tar
extract `arabteam'?y
arabteam/
extract `arabteam/file3'?y
arabteam/file3
extract `arabteam/sub_arabteam'?y
arabteam/sub_arabteam/
extract `arabteam/sub_arabteam/file21'?n
extract `arabteam/sub_arabteam/file23'?y
arabteam/sub_arabteam/file23
[ahmed@localhost ahmed]$
ولو كان هذا مملا وكنت تعرف الملف الذى تريد استخراجه فقط فلا تقلق اتبع التالى :
مثلا لو أنك تريد استخراج الملف file23 الموجود داخل المجلد الفرعى sub_arabteam فقم بكتابة الأمر tar متبوعا بالخيار xf- متبوعا باسم الأرشيف متبوعا بمسار الملف الذى تريد استخراجه :
كود:
[ahmed@localhost ahmed]$ tar -xf arabteam.tar arabteam/sub_arabteam/file23
[ahmed@localhost ahmed]$
Cpio Archive
أمر cpio يستطيع نسخ الملفات من أو الى أرشيف تم عمله باستخدام برنامج tar أو ارشيف جديد من النوع cpio .
لكن هناك ميزة فى cpio وهى أنه متوافق مع ال tar يعنى يقوم بنفس وظائف الtar بالإضافة الى وظائف أخرى خاصة به ولكن نادر جدا لو رأيت برنامج أو ملفات أرشيفية معموله بهذا البرنامج Cpio لذلك اذا أردت المزيد عنه اقرأ الhelp أو ال man pages الخاصة به .

ضغط الملفات باستخدام gzip
أمر gzip لضغط الملفات هذا الأمر ليس لتوفير المساحة فقط ولكن بضمه مع ال tar يصبحان أكثر هيئات تعبئة وضغط برامج اللينوكس .
بالتأكيد أو ربما دخلت يوما ما الى ألأنترنت لكى تبحث عن برنامج ما وبالتأكيــــــــــــــــــــد وجدته وقمت بتنزيله على جهازك وفى النهايه وجدت أن الملف ينتهى بالإمتداد tar.gz. أو tgz. أو ربما وأنت تبحث فى جهازك وجدت الكثير من الوثائق Documentations الموجودة على جهازك مضغوطة بهذه الضيغة ( لاحظ أن gzip يقوم بضغط الملفات من النوع text بنسبة تتراوح بين 60-70 % ) .

ويجب أن نشير الى نقطة مهمة قبل أن نبدأ باستخدام gzip وهى أنه يمكنك أن تضغط ملفات عادية أو تقوم بضغط الأرشيفات من النوع tar .

أولا لكى نضغط أرشيف من النوع tar :
أكتب الأمر gzip متبوعا بإسم الأرشيف :
كود:
[ahmed@localhost ahmed]$ gzip arabteam.tar
[ahmed@localhost ahmed]$
ولو قمت بعمل list للمجلد ahmed ستجد بداخله الملف المضغوط الجديد

كود:
[ahmed@localhost ahmed]$ ls
arabteam/        CppEssentials.pdf  fstab@       tmp/
arabteam.tar.gz  Desktop/           messege.txt
[ahmed@localhost ahmed]$
لكن أين الأرشيف arabteam.tar ؟؟؟
الأجابة هى أن الأمر gzip يقوم بحذف الملف الأصلى بعد ضغطه .

تلاحظ من النتيجة السابقة أن الأمر gzip قام بضغط الأرشيف السابق لكنه وضع له الإمتداد gz. فأصبح أسم الملف الجديد arabteam.tar.gz لكن ليس gz. هو الإمتداد الوحيد فقط لكن هناك gzip. ولكن ال Default أو الإمتداد الإعتيادى هو gz.
أما بالنسبة لضغط الملفات غير الأرشيفات أستخدم الأمر gzip متبوعا بإسم الملف :
كود:
gzip  filename
ويمكنك أيضا تحديد مستوى ضغط الملف كالآتى :
كود:
[ahmed@localhost ahmed]$ gzip -9 arabteam.tar
[ahmed@localhost ahmed]$
حيث ٩ هو مستوى الضغط وسأحاول تغطيه هذه النقطة لاحقا .

هناك خيارا آخرا لكى تغير به الإمتداد للملف المضغوط فكما قلنا سابقا أن الملف المضغوط يخرج بالإمتداد gz. فلو أردنا أن يخرج بالإمتداد gzip. مثلا فماذا نفعل ؟
فقط استخدم الخيار S- وهو يعنى ال suffix متبوعا بالإمتداد المطلوب هكذا :
كود:
[ahmed@localhost ahmed]$ gzip -S .gzip arabteam.tar
[ahmed@localhost ahmed]$ ls
arabteam/          CppEssentials.pdf  fstab@       tmp/
arabteam.tar.gzip  Desktop/           messege.txt
[ahmed@localhost ahmed]$
وهناك خيار آخر يجب علي أن أذكره وهو الخيار l- وهو يعنى list ويستخدم لعرض حجم الملفات المضغوطة وغير المضغوطة :

كود:
[ahmed@localhost ahmed]$ gzip -l arabteam.tar.gzip
compressed  uncompr. ratio uncompressed_name
      214     10240  98.2% arabteam.tar.gzip
[ahmed@localhost ahmed]$
وهناك أيضا الخيار tv- وهو يتأكد من أن الملف المضغوط فى حالة سليمة أم لا فإن لم يجد أى خطأ فإنه يعطيك ok
كود:
[ahmed@localhost ahmed]$ gzip -tv arabteam.tar.gzip
arabteam.tar.gzip:       OK
[ahmed@localhost ahmed]$
فى الدرس القادم بإذن الله تعالى سنتكلم عن كيفية فك ضغط الملفات المضغوطة وعن سبل آخرى لضغط الملفات .
كود:
سبحان الله وبحمده سبحان الله العظيم

الرد باقتباس
  #18  
قديم 2006-07-30, 02:42 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

جزاك الله خيرا

الرد باقتباس
  #19  
قديم 2006-08-05, 11:21 PM
الصورة الشخصية لـ keko_ferkeko  
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

جزاك الله عنا خيرا أخوي..
شكـــ1000ـــر ..
و بانتظار المزيد..

الرد باقتباس
  #20  
قديم 2006-09-11, 02:14 PM
 
رد: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس

مشكور بس برضه انا مفهمتش حاجه وعايز حد يعلمنى يا ريت تكلمنى بالله عليك
SemSem_Adel2010@hotmail.com

الرد باقتباس
الرد على الموضوع

مواقع النشر (المفضلة)


يتصفح الموضوع حالياً : 1 (0 عضو و 1 ضيف)
 
خيارات الموضوع
طريقة العرض

قوانين المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاح
كود [IMG] متاح
كود HTML مغلق
Trackbacks are مغلق
Pingbacks are مغلق
Refbacks are مغلق

مواضيع مشابهة للموضوع: مقدمة عن أنواع الشيل وبعض الأوامر الهامة فى لينوكس
الموضوع الكاتب القسم الردود آخر مشاركة
من فضلكم أريد بعض الكتب الهامة لى sicosad قسم العلوم العام 3 2007-07-16 09:30 PM
Glest - RTS Warcraft III لعبة جميلة جدا جدا تعتمد على اصدار الأوامر ؟؟؟؟؟؟ ghanou الألعاب 3 2007-05-11 04:50 PM
كتاب حاسب جديد: تعلم أول برنامج فى العالم لأصدار الأوامر للجهاز بأ محب الله ورسوله مكتبة كتب الحاسب 0 2007-03-06 11:07 PM
تعلم أول برنامج فى العالم لأصدار الأوامر للجهاز بأستخدام الرسم محب الله ورسوله قسم الكمبيوتر العام 6 2005-11-07 10:51 AM



الساعة الآن +3: 05:31 AM.


Please seek an excuse for Arabsbook.com it is not responsible for the coming of topics by members and put the responsibility entirely on the subject's owner , and Arabsbook.com is open forum for members to put different subjects in striving for a review of topics, according to general laws for the protection of property . If there are any company or institution has a problem with one of the topics, please contact us.
Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.