× 25 درصد تخفیف سرور مجازی ایران کد تخفیف : irani
مشاهده

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


دستور wget

۱−دانلود یک فایل با wget
با مثال زیر می توانید یک فایل را از اینترنت و آدرس مورد نظرتون دانلود کرده و در دایرکتوری جاری ذخیره کنید.
در هنگام دانلود یک Progress Bar یا همان نوار پیشرفت به شما نشان داده میشود که دارای اطلاعاتی از دانلود است.

هنگام دانلود:
کد:
  
$ wget http://www.openss7.org/repos/tarball....9.2.1.tar.bz2 Saving to: `strx25-0.9.2.1.tar.bz2.1'
31% [=================> 1,213,592 68.2K/s eta 34s
بعد از اتمام دانلود:
کد:
$ wget http://www.openss7.org/repos/tarball....9.2.1.tar.bz2 Saving to: `strx25-0.9.2.1.tar.bz2' 100%[======================>] 3,852,374 76.8K/s in 55s 2009-09-25 11:15:30 (68.7 KB/s) - `strx25-0.9.2.1.tar.bz2' saved [3852374/3852374]
۲−دانلود و ذخیره کردن فایل با نامی دیگر با استفاده از wget -O
به صورت پیشفرض،دستور wget نام کلمه ای که بعد از آخرین اسلش / قرار دارد را به عنوان اسم فایل قرار میدهد که شاید گاهی اوقات مناسب نباشد.
ناصحیح:به عنوان مثال ما فایلی با به صورت زیر دانلود و ذخیره کردیم:
کد:
download_script.php?src_id=7701 wget http://www.vim.org/scripts/download_...hp?src_id=7701
حتی اگر فایل دانلود شده در قالب زیپ هم باشد،به صورت زیر ذخیره و نمایش داده میشود:
کد:
ls download_script.php?src_id=7701
صحیح:شکل صحیح قضیه به این شکل است که ما با کمک دستور wget -o این مشکل را حل کنیم:
۳− تعیین کردن سرعت دانلود با استفاده از wget –limit-rate
زمانیکه ما دستور wget رو اجرا میکنیم به صورت پیش فرض کل پهنای باندمون رو اشغال میکنه،شاید خیلی جاها این کار مناسب نباشه و مشکلاتی رو در پی داشته باشه،با این پیش فرض میتونیم سرعت دانلودمون رو لیمیت کنیم.
۴− ادامه دانلود نیمه تمام مانده با استفاده از wget -c
می تونید فایلی که در اواسط دانلود رو ایست کردید رو با استفاد از این دستور ادامه بدید:
این روش زمانی که یک فایل بزرگ رو دانلود میکنیم و وسطای دانلود یه وقفه به وجود میاد سودمنده…

۵−دانلود در پس زمینه با wget -b
برای دانلود های بزرگ بهتره اونا رو تو پس زمینه قرار بدید :

کد:
$ wget -b http://www.openss7.org/repos/tarball....9.2.1.tar.bz2 Continuing in background, pid 1984. Output will be written to `wget-log'
با استفاده از دستور tail -f میتونید وضعیت دانلودتون رو مشاهده کنید:
کد:
tail -f wget-log Saving to: `strx25-0.9.2.1.tar.bz2.4' 0K .......... .......... .......... .......... .......... 1% 65.5K 57s 50K .......... .......... .......... .......... .......... 2% 85.9K 49s 100K .......... .......... .......... .......... .......... 3% 83.3K 47s 150K .......... .......... .......... .......... .......... 5% 86.6K 45s 200K .......... .......... .......... .......... .......... 6% 33.9K 56s 250K .......... .......... .......... .......... .......... 7% 182M 46s 300K .......... .......... .......... .......... .......... 9% 57.9K 47s
۶−پنهان کردن واسط کاربری و ارائه wget همانند یک مرورگر با استفاده از –user-agent
بسیاری از سایت ها اجازه دانلود فایل رو زمانیکه رابط کاربریتون یک مرورگر نباشه رو نمیدن،در این وضعین میتونید رابط کاربریتون رو همانند مثال زیر تغییر بدین:
کد:
wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" URL-TO-DOWNLOAD
۷−امتحان آدرس دانلود توسط wget –spider
زمانیکه شما میخواید برای دانلودتون برنامه ریزی کنید با از وجود لینک های و آدرس های دانلودتون مطمئن باشید،برای این کار به صورت زیر عمل کنید:
کد:
wget --spider DOWNLOAD-URL
اگه url جواب صحیح بگیرد به صورت زیر خواهد شد:
کد:
wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 200 OK Length: unspecified 1 Remote file exists and could contain further links, but recursion is disabled -- not retrieving.
این یعنی شما میتونید در وقت برنامه ریزی شده دانلودتون رو انجام بدهید،اما اگر شما جواب ناصحیح بگیرد به صورت زیر خواهد بود:
کد:
wget --spider download-url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response... 404 Not Found Remote file does not exist -- broken link!!!
۸− افزایش مقدار، تلاش دوباره برای دانلود یک فایل با wget –tries
اگر سرعت اینترنتتون پایینه و اگه حجم فایل دریافتی بالاست احتمال شکست در دانلود وجود دارد،wget به صورت پیشفرض ۲۰ بار برای دانلود دوباره فایل اقدام میکند که میتونید به صورت زیر این مقدار را افزایش دهید:
کد:
wget --tries=75 DOWNLOAD-URLk!!!
۹−دانلود چندین فایل از آدرس های مختلف با Wget -i
ابتدا آدرس فایلهای که قرار است دانلود شوند را در یک فایل متنی ذخیره می کنیم:
کد:
cat > download-file-list.txt URL1 URL2 URL3 URL4
سپس به عنوان ورودی فایل رو دریافت میکنیم به صورت زیر:
کد:
wget -i download-file-list.txt
۱۰− دانلود کل یک وبسایت با استفاده از wget –mirror
از دستور زیر برای زمانیکه میخوایید یه وبسایت رو کاملا دانلود کرده و به صروت لوکال استفاده کنید:
کد:
wget --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
۱۱−نپذیرفتن فایل تایپ های خاص با wget –reject
کد:
wget --reject=gif WEBSITE-TO-BE-DOWNLOADED
۱۲−ایجاد لاگ فایل جدا گانه با wget -o
کد:
wget -o download.log DOWNLOAD-URL
۱۳−خروج از دانلود زمانیکه حجم فایل دانلود بیش از حد مجاز باشد wget -Q
برای مثال میخوایید زمانیکه حجم فایل دانلود بیش از حد مجاز مثلا بیشتر از ۵ مگ شد از دانلود خارج شود:
کد:
wget -Q5m -i FILE-WHICH-HAS-URLS
۱۴−دانلود فایل هایی با پسوند خاص با wget -r -A
اگه دلتون میخواد کل فایلهای ویدئویی، صوتی ،پی دی اف یا هر چیز دیگه ای که مد نظرتون هست رو از یک سایت دانلود کنید به این صورت عمل کنید:
کد:
wget -r -A.pdf http://url-to-webpage-with-pdfs
/


۱۵− دانلود به صورت FTP با wget
کد:
wget ftp-url
اگه اف تی پی نیاز به یوزنیم یا پسورد داشت به صورت عمل کنید:
کد:
wget --ftp-user=USERNAME --ftp-password=PASSWORD DOWNLOAD-URL
ایجاد فایلها و دایرکتوری ها



  • 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) منتقل میکند.

  • متغییر محیطی OLDPWD : نشاندهنده دایرکتوری جاری قبل از دایرکتوری فعلی است.


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

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

  • علامت ستاره (*) : میتواند بجای هر تعدادی از کاراکترها قرار گیرد.
  • علامت سوال (?) : میتواند بجای یک کاراکتر قرار گیرد.
  • علامت دو براکت ([...]) : تمام کاراکتر های ذکر شده در براکت در انتخاب فایلها اثر میگذارند.

برای تمرین بکارگیری این کاراکترها به یک دایرکتوری خالی (مانند دایرکتوری 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 مشاهده میکنید، از ۷ کم کنید. با این کار مقادیر پیش گزیده را برای دایرکتوری مشاهده خواهید کرد
  • 0
« بازگشت