پرش به محتویات

۵.۳ مدیریت فایل‌ها - مقدماتی

فایل‌های پیکر بندی درbash

می‌دانیم کلیه متغیرهای محلی و alias ها با هر بار خاموش کردن سیستم از بین می‌روند. برای اینکه تغییرات در این متغیرها با هر بار ورود به سیستم تعریف شوند؛آنها را در یکی از فایل‌های پیکربندی bash وارد و ذخیره می‌کنند.

فایل /etc/profile

فایل /etc/bashrc یا /etc/bash.bashrc

فایل ~/.bash.profile بعد از /etc/profile اجرا می‌شود.

فایل ~.bash_login در صورتی که فایل بالا نباشد اجرا می‌شود .

فایل ~/.bashrc

دستورات اولیه کار با خط فرمان

دستور ls : گرفتن لیستی از پوشه یا فایل

  $ ls /home/user
  Desktop      Download    ls    Pictures    Templates
  Documents    Music     Public     Videos

دستور touch : ساخت فایل و تغییر زمان

دستور mkdir : ساخت پوشه

دستور rmdir : حذف پوشه خالی

دستور rm : حذف فایل وپوشه

دستور mv : انتقال فایل و پوشه

دستور cp : کپی کردن فایل و پوشه

دستور cd: تغییر شاخه

دستور pwd : نمایش شاخه جاری

wildcards یا file globbing

کاراکتر مفهوم
* هر تعداد کاراکتر و یا هیچ
? دقیقاً یک کاراکتر
[characters] دقیقا یکی از حروف؛ در مجموعه وجود داشته باشد
[characters!] دقیقاً یکی از حروف؛ در مجموعه وجود نداشته باشد
[a-z] [1-9] یکی از حروف یا اعداد موجود در این رنج؛ در مجموعه وجود داشته باشد
[a-z!] [!1-9] یکی از حروف یا اعداد موجود در این رنج؛ در مجموعه وجود نداشته باشد
{string1,string2...} یک رشته که در مجموعه باشد

مثال:

نمایش لیستی از فایل‌هایی که با کلمه test شروع می‌شوند:

  $ ls test *

کپی فایل‌های test1 و test2 و test3 از شاخه جاری به شاخه خانگی:

  $ cp test[1-3] /home/lpi

کپی فایل test به شاخه خانگی lpi و linux :

  $ cp test /home/{lpi,linux}

این دستور پیغام خطا می‌دهد:

  $ cp: omiting directory 'lpi'

زیرا دستور cp تنها یک مسیر (که آخرین مسیر است) را به عنوان مقصد قبول می‌کند و بقیه را به عنوان مبدأ در نظر می‌گیرد.

در ادامه به معرفی چند دستور دیگر می‌پردازیم:

دستور gzip : جهت فشرده‌سازی

  gzip[options] file1 file2 …

این دستور فشرده‌سازی را به صورت مجزا انجام می‌دهد ودر مقابل هر فایل؛ یک فایل با پسوند gz ایجاد کرده و سپس فایل اصلی پاک می‌شود.با گزینه های ۱- و ۹- می‌توان میزان فشرده‌سازی را مشخص کرد.

برای خروج از حالت فشرده می‌توان از گزینه -d استفاده کرد که معادل دستور gunzip است.

  $ gzip -9 debian-cd-i386.iso

دستور bzip2 : جهت فشرده‌سازی

  bzip2[options] file1 file2 …

این دستور نیز فشرده‌سازی را به صورت مجزا نجام می‌دهد و در مقابل هر فایل؛ یک فایل با پسوند bz ایجاد کرده و سپس فایل اصلی را پاک می‌کند.که برای جلوگیری از پاک شدن فایل اصلی از گزینه -k استفاده می‌شود.همچنین با گزینه های ۱- تا ۹- می‌توان میزان فشرده‌سازی را مشخص کرد.برای خروج از حالت فشرده‌سازی از گزینه -d استفاده می‌شود.

  $ bzip2 -9 debian-cd-i386.iso

دستور tar : جهت تهیه آرشیو

  tar[options] [archivefile] [file and directories]

از این دستور جهت full backup و incremental backup استفاده می‌شود.که از گزینه های زیر می‌توان استفاده کرد:

گزینه توضیحات
c ساختن آرشیو
x باز کردن آرشیو
v حالت verbos
f معرفی فایل آرشیو
p حفظ permission ها
-newer انتخاب فایل جدیدتر از تاریخ داده شده
j فشرده‌سازی با فرمت bz2
z فشرده‌سازی با فرمت gunzip یا همان gz bz2

جهت گرفتن full bachup:

  $ sd /home
  $ tar -cvpf lpi_home.tar lpi

جهت گرفتن incremental backup :

  $ tar –newer “ 2013-02-17 23:59:00” -cvf lpi_home_18.tar lpi

جهت فشرده‌سازی آرشیو:

  $ tar -cvjpf lpi_home.tar.bz2 lpi
  $ tar -cvzpf lpi_home.tar.gz lpi

در مثال اول بعد از تهیه آرشیو؛ فایل به صورت bz2 و در مثال دوم به صورت gz فشرده می‌شود.

جهت باز کردن آرشیو:

در مسیری که می‌خواهیم فایل را از حالت آرشیو خارج کنیم وارد شده و سپس دستورات زیر را استفاده می‌کنیم:

  $ tar -xvjpf lpi_home.tar.bz2
  $ tar -xvzpf lpi_home.tar.gz

دستور gunzip : جهت خارج کردن از حالت فشرده

می‌توان آرشیو را بدون باز کردن از حالت فشرده خارج کرد:

  $ gunzip lpi_home.tar.gz
  $ ls
  lpi_home.tar

  $ bunzip -d lpi_home.tar.bz2
  $ ls
  lpi_home.tar

دستور file : جهت تعیین نوع فایل

  file <filename>

این دستور نوع فایل را نمایش می‌دهد.که گزینه -z نوع فایل داخل zip را مشخص می‌کند.

  $ file filename.gz
  filename.gz: gzip compressed data,was “filename.gz”,from unix,last modified:web feb 22 17:38:11 2013, max compression

دستور cpio : جهت تهیه آرشیو

  cpio -o > filename.cpio
  cpio -i < ilename.cpio

این دستور امکان فشرده‌سازی ندارد وبرای این کار باید از دستورات gzip و bzip2 استفاده کرد.

  $ find -name *.txt | cpio -ov > text.cpio
  $ cpio -iduv < text.cpio

دستور dd : جهت گزارش خطوط تکراری

  dd[options]

این دستور جهت کپی کردن فایل استفاده می‌شود.به کمک گزینه bs اندازه بلاک داده که در هر دفعه خوانده می‌شود ؛ با گزینه count تعداد بلاک داده که کپی می‌کند و با گزینه skip تعداد بلاک داده که در ابتدا رد می‌کند ؛ مشخص می‌شود .

  $ dd if=/dev/scdo of=dvdname.iso
  $ dd bs=512 count=1 if=/dev/sda of=mbr.img
skip