انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: راهنمای مقدماتی خط فرمان گنو/لینوکس (با تکیه بر Bash)  (دفعات بازدید: 100386 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
ساختن کاربر ((user)) و پاک کردن و ایجاد بعضی محدودیت ها
« پاسخ #15 : 22 اردیبهشت 1390، 12:37 ق‌ظ »
دستور df در این مکان به زودی یا به ادامه دستور du  در صفحه اول به زودی





برای ساختن user چندین تا دستور وجود داره که این جا برای ساختن user  دستور
useradd
adduser
داریم و برای پاک کردن user
deluser
userdel
داریم
حالا اگه بخایم که برای یک کاربر محدودیت زمانی و بعضی محدودیتای دیگه بزاریم از دستور
usermod
استفاده میکنیم

useradd

برای ساختن یک کاربر
با این دستور کاربر tia ساخته میشه
useradd tia

برای ساختن یک کاربر به همراه home دایرکتوریش
useradd -m tia
حالا اگه خروجی home دایرکتوریرو بگیرین میبینین که فلدر tia ساخته شده


ساختن کاربر و اضافه کردن اون به لیست کاربرای یک گروه
با این دستور کاربر tia ساخته میشه و به گروه student اضافه میشه
useradd -g student tia

ساختن کاربر و مشخص کردن ادرس home دایرکتوری
با این دستور کاربر tia ساخته میشه و home دایرکتوریش هم میشه ادرسه /var/www/LILI
useradd tia -d /var/www/LILI



adduser

برای ساختن کاربر و دادن هم زمان بعضی اطلاعات مثل شماره تلفن و غیره

root@debian:/# adduser tia
Adding user `tia' ...
Adding new group `tia' (1009) ...
Adding new user `tia' (1008) with group `tia' ...
The home directory `/home/tia' already exists.  Not copying from `/etc/skel'.
adduser: Warning: The home directory `/home/tia' does not belong to the user you are currently creating.
Enter new UNIX password:
Retype new UNIX password:
Sorry, passwords do not match
passwd: Authentication token manipulation error
passwd: password unchanged
Try again? [y/N] y
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for tia
Enter the new value, or press ENTER for the default
Full Name []: tia dada
Room Number []: 1122
Work Phone []: 1212121212
Home Phone []: 121212121
Other []: blablanla
Is the information correct? [Y/n] y
root@debian:/#

اضافه کردن کاربر tia به گروه student
root@debian:/# adduser tia student
Adding user `tia' to group `student' ...
Adding user tia to group student
Done.


deluser

دستور deluser برای پاک کردن کاربرا هستش
پاک کردن کاربر tia
root@debian:/# deluser
Enter a user name to remove: tia
Removing user `tia' ...
Warning: group `tia' has no more members.
Done.
root@debian:/#

بعضی اپشن ها

برای پاک کردن home دایرکتوری
--remove-hom 

برای پاک کردن تمام فایلایی که کاربر مورد نظر صاحبشونه
--remove-all-files

برای پشتیبان گیری از فایلای اون کاربر قبل از پاک کردن
--backup-to <DIR>




userdel


برای پاک کردن کاربر به همراه دایرکتوری خانه
userdel tia -r



usermod

دستور usemod برای گذاشن محدودیت برای یک کاربر هسنش

برای قفل کردن کاربر
usermod -L tia

برای باز کردن قفل کاربر
usermod -U tia

-d
برای تعیین تاریخ برای از کار افتادن کاربر

-s
برای تعیین شل کاربر

کلا تنضیماتش خیلی نیست با --help میتونین تنضیماتشو ببینین اکثرشم احتیاج به توضیح نداره



chage
این دستور هم برای گذاشتن یک سری دیگه از محدودیت ها استفاده میشه
برای گذاشتن محدودیت های دیگه ای مثل تعداد پروسس با حد اکثر تعداد login ها و غیره میتونین از فلدر
/etc/security
استفاده کنین

برای دیدن کاربرای online هم میتونین از دستور
who
یا
w
کنین




« آخرین ویرایش: 06 آبان 1391، 02:17 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور free
« پاسخ #16 : 22 اردیبهشت 1390، 03:47 ب‌ظ »

دستور free



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

با زدن خود دستور free  به تنهایی خروجی شبیه زیر رو دریافت میکنین که بر اساس کیلوبایت است
alieblice@ali:~$ free
             total       used       free     shared    buffers     cached
Mem:       4037504     723244    3314260          0      44752     198608
-/+ buffers/cache:     479884    3557620
Swap:      2096124          0    2096124
alieblice@ali:~$

Mem = مقدار رم مصرفی شما رو با احتصاب disk caching نشون میده ((disk caching در اخر توضیح داده شده ))
-/+ buffers/cache = مقدار رم مصرف شده برایه disk caching و مقدار رم خالی شما بدون احتصاب disk caching رو نشون میدهد
Swap = مقدار فضایه مصرف شده از رم Swap رو نشون میده
توضیح اپشن ها :
= -b   برایه نشون دادن بر اساس بایت است
= -k برایه نشون دادن بر اساس کیلوبایت است
= -m برایه نشون دادن بر اساس مگابایت است
alieblice@ali:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          3942        706       3236          0         43        193
-/+ buffers/cache:        468       3473
Swap:         2046          0       2046
alieblice@ali:~$


= -g  برایه نشون دادن بر اساس گیگابایت است
نکته :  همون طور که در مثال اپشن –m  میبینین مقدار رم 3942 مگابایت است ولی در حالت –g   مقدار 3 رو نشون میده پس کلی نشون میده
alieblice@ali:~$ free -g
             total       used       free     shared    buffers     cached
Mem:             3          0          3          0          0          0
-/+ buffers/cache:          0          3
Swap:            1          0          1
alieblice@ali:~$

= -s برایه خروجی گرفتن به صورت ادامه دار هستش با تعیین مدت رمان (( پشت سر هم اپدیت میشه ))
در زیر هر 3 ثانیه خروجیمون بروز میشه
alieblice@ali:~$ free -s 3
             total       used       free     shared    buffers     cached
Mem:       4037504     726784    3310720          0      44848     200992
-/+ buffers/cache:     480944    3556560
Swap:      2096124          0    2096124

             total       used       free     shared    buffers     cached
Mem:       4037504     726908    3310596          0      44848     200992
-/+ buffers/cache:     481068    3556436
Swap:      2096124          0    2096124

^C
alieblice@ali:~$

= -c برایه تعیین تعداد مرتبه خروجی است که حتما باید با –s  بیاد
مثال:
در زیر 4 بار خروجی میگریم با فاصله زمانی 3 ثانیه
alieblice@ali:~$ free -ms 3 -c 4
             total       used       free     shared    buffers     cached
Mem:          3942        711       3231          0         43        196
-/+ buffers/cache:        471       3471
Swap:         2046          0       2046

             total       used       free     shared    buffers     cached
Mem:          3942        711       3231          0         43        196
-/+ buffers/cache:        471       3471
Swap:         2046          0       2046

             total       used       free     shared    buffers     cached
Mem:          3942        711       3231          0         43        196
-/+ buffers/cache:        471       3471
Swap:         2046          0       2046

             total       used       free     shared    buffers     cached
Mem:          3942        711       3231          0         43        196
-/+ buffers/cache:        471       3471
Swap:         2046          0       2046

alieblice@ali:~$


= -o  به صورت شکل قدیم نشون میده
فرقش اینه که خط -/+ buffers/cache  (( buffer adjusted  )) رو نشون نمیده 


alieblice@ali:~$ free -o -m
             total       used       free     shared    buffers     cached
Mem:          3942        711       3231          0         43        196
Swap:         2046          0       2046
alieblice@ali:~$
   
= -t  مجموع مقداررم swap  و ram سخت افزاری رو نشون میده
نکته  :  اعداد خط -/+ buffers/cache  رو تو جمع حساب نمیکنه
alieblice@ali:~$ free -tm
             total       used       free     shared    buffers     cached
Mem:          3942        712       3230          0         43        196
-/+ buffers/cache:        471       3470
Swap:         2046          0       2046
Total:        5989        712       5277
alieblice@ali:~$

مقدار واقعی مصرف رم شما
در لینوگس 2 نوع مصرف رم داریم
1= رمی که شما مصرف میکنین
2= رمی که شما مصرف میکنین به همراه disk caching
disk caching چیست ؟
disk caching در این جا به عملی می گویند که سیستم میاد مقدار رم خالی شما (( مثلا 2.5 گیگ از 4 گیگ )) که استفاده نمیشه مقداریش رو برایه کش کردن استفاده میکنه اما به محض این که شما اون مقدار فضا (( مثلا 500 مگابایت ))  یا به  مقداری از اون فضا احتیاج پیدا کردین سیستم بلافاصله فضا رو برایه شما خالی میکنه . پس اختلالی در انجام کار ها پیش نمیاره و حتی باعث سریع شدن کار ها بالا رفتن سرعت لود نرم افزارها میشه .
اگه هنوز متوجه نشدین داستان زیر رو بخونین
و برایه دیدن تاثیرش هم ادرس زیر رو نگاه کنین
پس برایه این که بدونین چه مقدار رم خالی دارین باید عددی که در خط -/+ buffers/cache است رو بخونین
که در مثال زیر 3470 مگابایت است
alieblice@ali:~$ free -tm
             total       used       free     shared    buffers     cached
Mem:          3942        712       3230          0         43        196
-/+ buffers/cache:        471       3470
Swap:         2046          0       2046
Total:        5989        712       5277
alieblice@ali:~$
نکته :
در دستور top  مقدار رم مصرفی با احتصاب disk caching نشون داده میشه
در دستور htop  مقدار رم مصرفی  بدون احتصاب disk caching محاصبه میشود
غیر فعال کردن disk caching
حقیقتش نمیدونم که با این کار به طور کامل از کش شدن جلو گیری میکنیم یا تا حدی جلوشو میگیریم ولی در اعداد تغییر چشم گیری ایجاد میشه
دستور زیر رو برایه جلوگیری کردن بزنین
Sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
حالا اگه دوباره دستور  free رو بزنین میبینین که اعداد  زیر ستون هایه   
shared    buffers    cached
نغییر کرده است

در ادرس زیر هم ((جلوگیری از cache شدن ram در لینوکس بطور اتوماتیک))
http://www.forum.persianadmins.ir/showthread.php?t=18296

فایل هایه مربوطه
/proc/meminfo
/proc/sys/vm/drop_caches

منابع:
http://www.forum.persianadmins.ir/showthread.php?t=18296
http://www.linuxatemyram.com/
« آخرین ویرایش: 20 مهر 1391، 04:28 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور uname
« پاسخ #17 : 22 اردیبهشت 1390، 11:47 ب‌ظ »
دستور uname برایه بدست اوردن اطلاعاتی در مورد کرنل مورد استفاده و اطلاعات ساده دیگر مثل نوع معماری سیستم .

اگه در خروجی دستورتون کلمه ی x86_64 بود یعنی  64 بیت است

اگه در خروجی دستورتون یکی از کلمات i386/i486/i586/i686 بود یعنی 32 بیت است


در این جا نمونه خروجی دستورات بر رویه ubuntu 12.04 اجرا شدن.

s-
نام کردنل رو نشون میدهد

$ uname -s
Linux

n-
اسم نود رو میگه که همون اسم هاست یا اسم سیستممون هست
aliali@lp:~$ uname -n
lp

r-
نوع رلیز کرنل رو میگه (( print the kernel release  ))
$ uname -r
3.2.0-32-generic

v-
ورژن کرنل رو میگه
$ uname -v
#51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012
شاید بشه گفت که خروجی اپشن r- برایه این اپشن باید باشه.

m-
اسم سخت افزار سیستم رو میگه
$ uname -m
x86_64

p-
نوع سی پی یو رو میگه
$ uname -p
x86_64

i-
نوع پلت فرم سخت افزار
$ uname -i
x86_64

o-
خروجی دادن سیستم عامل
$ uname -o
GNU/Linux

همون طور که معلومه بعضی از خروجی هایه مثال ها شاید خیلی درست نباشن . خروجی مثال ها بین توزیع هایه مختلف متفاوت هستش.
« آخرین ویرایش: 23 آذر 1391، 09:21 ق‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور top و دستور uptime
« پاسخ #18 : 24 اردیبهشت 1390، 10:00 ب‌ظ »



ین دستور در ترمینال به شما نشون می ده چه برنامه هایی در حال اجرا هستند و چه مقدار cpu و حافظه رو درگیر می کنند . همچنین نشون می ده برنامه ی در حال اجرا از طرف کدوم کاربر اجرا شده به همراه کلی اطلاعات دیگر

شکل کلی خروجی دستور top  به این شکل هستش




دستور top به صورت پیش فرض بر اساس مقدار مصرف cpu  پروسس هارو نشون میده  اگه میخاین که بر اساس مقدار مصرف مموری نشون بده M  ((ام بزرگ )) در حالتی که top در حال اجرا هست رو بزنین


kill کردن یک پروسس

برای این که یک پروسس رو از بین ببرین در حالتی که top در حال اجرا هست دکمه k رو بزنین ((k کوچک)) و عدد pid مربوط به اون پروسس رو بنویسین
PID to kill: 1309
Kill PID 1309 with signal [15]:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent
 5136 root    16   0 38040  14m 9836 S    0  0.2   0:00.39 nautilus


نشون دادن پروسس های مربوط به یک user

اگه میخاین که top فقط پروسس های مربوط به یک user خاص رو نشون بده از u- استفاده کنین
مثلا در اینجا پروسس مربوط به کاربر geek
$ top -u geek

Which user (blank for all): geek
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent


نشون دادن تمام cpu ها و هسته های cpu

خروجی دستور top به صورت پیش فرض اطلاعات cpu رو در ترکیب باهم به صورت زیر نشون میده
top - 20:10:39 up 40 days, 23:02,  1 user,  load average: 4.97, 2.01, 1.25
Tasks: 310 total,   1 running, 309 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.5%us,  0.7%sy,  0.0%ni, 92.3%id,  6.4%wa,  0.0%hi,  0.0%si,  0.0%st

اگه میخاین که اطلاعات رو به صورت کامل و به اضای هر هسته cpu ببینین در موقعی که top  در حال اجرا هست عدد  1 رو بزنین
top - 20:10:07 up 40 days, 23:03,  1 user,  load average: 5.32, 2.38, 1.39
Tasks: 341 total,   3 running, 337 sleeping,   0 stopped,   1 zombie
Cpu0  :  7.7%us,  1.7%sy,  0.0%ni, 79.5%id, 11.1%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu1  :  0.3%us,  0.0%sy,  0.0%ni, 94.9%id,  4.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2 :  3.3%us,  0.7%sy,  0.0%ni, 55.7%id, 40.3%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3 :  5.0%us,  1.0%sy,  0.0%ni, 86.2%id,  7.4%wa,  0.0%hi,  0.3%si,  0.0%st
Cpu4  : 38.5%us,  5.4%sy,  0.3%ni,  0.0%id, 54.8%wa,  0.0%hi,  1.0%si,  0.0%st
Cpu5  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  0.3%us,  0.7%sy,  0.0%ni, 97.3%id,  1.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  5.4%us,  4.4%sy,  0.0%ni, 82.6%id,  7.7%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu8 :  1.7%us,  1.7%sy,  0.0%ni, 72.8%id, 23.8%wa,  0.0%hi,  0.0%si,  0.0%st


بروز شدن خروجی top

خروجی دستور top  به صورت پیشفرض هر 3 ثانیه بروز میشه که اگه میخاین این مدت رو مثلا به یک ثانیه تغییر بدین در موقعی که دستور top در حال اجرا هست دکمه d رو بزنین
Change delay from 3.0 to: 1
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND           
    1 root      20   0  2032  704  612 S    0  0.3   0:01.78 init               
    2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd           
    3 root      RT   0     0    0    0 S    0  0.0   0:00.00 migration/0       


بسته شدن top بعد از نشون دادن تعداد خاصی خروجی

برای این کار از  n- استفاده کنین
در زیر top بعد از 2 بار بروز شدن بسته میشه
$ top -n 2


نشون دادن دستور کامل هر پروسس

هر پروسسی که ایجاد میشه قبلش یک دستور زده شده مثلا همین top که بعد از زدن دستورش پروسسش ایجاد میشه در داخل خروجی خودش دستورشو به اینشکل  نشون میده
به زیر COMMAND توجه کنین

         
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1100 root      20   0  2332 1140  900 R    0  0.4   0:00.06 top

مثال دیگه
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 /usr/sbin/gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 /usr/sbin/gagent -l 0 -u pre


دستور top  در حالت Batch Mode

فرق این حالت با حالت معمولی top اینه که هر بار top به روز میشه اطلاعات جدید زیر اطلاعات قبلی مینویسه
مثلا در زیر top بعد از 3 بار به روز شدن در حالت batch mode بسته میشه
root@debian:/# top -b -n 3 -u tia
top - 13:55:26 up 58 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.1%sy,  0.0%ni, 99.8%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    254672k total,    67884k used,   186788k free,     9432k buffers
Swap:   308216k total,        0k used,   308216k free,    34232k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND         
 1118 tia       20   0  8476 1492  860 S    0  0.6   0:00.01 sshd             
 1119 tia       20   0  4484 1728 1404 S    0  0.7   0:00.00 bash             
 1128 tia       20   0  8052 3608 2568 S    0  1.4   0:00.02 w3m             


top - 13:55:29 up 58 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    254672k total,    67884k used,   186788k free,     9432k buffers
Swap:   308216k total,        0k used,   308216k free,    34232k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND         
 1118 tia       20   0  8476 1492  860 S    0  0.6   0:00.01 sshd             
 1119 tia       20   0  4484 1728 1404 S    0  0.7   0:00.00 bash             
 1128 tia       20   0  8052 3608 2568 S    0  1.4   0:00.02 w3m             


top - 13:55:32 up 58 min,  2 users,  load average: 0.00, 0.00, 0.00
Tasks:  78 total,   1 running,  77 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.2%us,  0.2%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    254672k total,    67884k used,   186788k free,     9436k buffers
Swap:   308216k total,        0k used,   308216k free,    34232k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND         
 1118 tia       20   0  8476 1492  860 S    0  0.6   0:00.01 sshd             
 1119 tia       20   0  4484 1728 1404 S    0  0.7   0:00.00 bash             
 1128 tia       20   0  8052 3608 2568 S    0  1.4   0:00.02 w3m             

root@debian:/#

روش بالا بیشتر برای ذخیره کردن خروجی دستور top در یک فایل متنی استفاده میشه با برای grep کردنش



هدر top

در موقعی که top در حال اجرا هست اگه

l ((ال کوچک )) بزنین  خط اول هدر مربوط به load average ناپدید میشه
t بزنین خط 2م و 3م هدر مربوط به Tasks: و Cpu(s) ناپدید میشه
m بزنین 2 خط اخر هدر مربوط به مموری ناپدید میشه


کاهش دادن تعداد پروسس در  خروجی  top

در حالتی که top در حال اجرا هست n رو بزنین بعد از شما تعداد پروسس رو میپرسه
Maximum tasks = 0, change to (0 is unlimited): 2
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1309 geek   23   0 2483m 1.7g  27m S    0 21.8  45:31.32 gagent
 1882 geek   25   0 2485m 1.7g  26m S    0 21.7  22:38.97 gagent


در اخر هم برای بستن top در حالت اجرا از دکمه   q  ((کیو کوچک)) استفاده کنین

منبع: http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/
چند مثال دیگه تو منبع هست که نگفتم


نرم افزار دیگه ای هم هست که همین کار top رو انجام میده ولی یک مقدار فرق داره
اسم نرم افزار: htop
http://fa.wikipedia.org/wiki/Htop


 
منبع : http://www.thegeekstuff.com/2010/01/15-practical-unix-linux-top-command-examples/
 

-----------------------------------------------------------------------------------------------

دستور uptime

دستور uptime برایه دیدن مدت زمانی که سیستم روشن بوده استفاده میشه. اپشن خاصی نداره و خروجیش به شکل زیر هست :
$ uptime
 21:54:36 up 4 days,  2:44,  1 user,  load average: 0.23, 0.38, 0.43
از خزوجی بالا معلومه که موقعی که دستور اجرا شده ساعت 21:54:36 بوده
مدت زمانی که سیستم روشن بوده 4 روز و 2 ساعت و 44 دقیقه بوده است.
1 user =  تعداد کار بری که هم اکنون در سیتم لوگین هستند رو نشون میده که این جا یک نفر فقط لوگین هست.
load average و اعداد مقابلش نشان دهده مقدار load سیستم هست که از سمت راست به چپ به ترتیب برایه 1 و 5 و 15 دقیقه هستش .

روش هایه دیگری هم برایه دیدن مدت زمانی که سیستم روشن بوده وجود داره مثلا
با استفاده از ps
درواقع مدت زمانی که در دستور uptime هست مدت زمانی هست که pid شماره 1 به وجود امده که این pid مادر تمام pid هایه دیگر هست و به عنوان اولین pid به وجود میاد.

$ ps -p 1 -O pid,etime
  PID   PID     ELAPSED S TTY          TIME COMMAND
    1     1  4-02:56:37 S ?        00:00:04 init [2]
در خروجی بالا uptime ممون 4 روزو 2 ساعت و 56 دقیقه و 37 ثانیه است

با استفاده از /proc/uptime
این فایل فایلی هست که داخلش مدت زمان روشن بودن سیستم ذخیره میشه
$ cat /proc/uptime
356400.89 350924.99
توضیح فرمت فایل :
فرمت فایل یه صورت ثانیه هستش که عدد 356400.89 نمایان گر مدت زمان روشن بودن سیستم بر حصب ثانیه است.
و اون عدد دیگر مدت زمانی که سیستم در حالت استراحت بوده . که به اصطلاح idle میگن.

از طریق دستور top هم میشه مدت اپتایم سیستم رو فهمید.

« آخرین ویرایش: 23 آذر 1391، 09:22 ق‌ظ توسط alieblice »

آفلاین Hadron

  • Full Member
  • *
  • ارسال: 149
  • جنسیت : پسر
Special Characters
« پاسخ #19 : 29 اردیبهشت 1390، 11:39 ق‌ظ »
(این پست در حال گسترش است...)

پس از چندین پست درباره‌ی دستورات خط فرمان، برای تنفس، در اینجا نویسه‌هایی (characters) را که برای شل دارای معنای خاص هستند، معرفی می‌کنیم:
& ; | * ? ' " " [] () $ <> {} # \/ ! ~هم‌چنین Tab و Space نیز برای شل دارای کاربرد حاص هستند.
- از backslash برای دورانداختن ویژگی خاص بودن یک «نویسه‌ی خاص» استفاده می‌شود. برای نمونه نویسه‌ی *، از نظر شل یک نویسه‌ی خاص است، اما ‎\*‎ به شل می‌گوید که با *، مانند سایر نویسه‌های عادی رفتار کند.
- نویسه‌ی |، که با نام pipe شناخته می‌شود، برون‌ده‌ی یک دستور را به دستور دیگر لوله‌کشی می‌کند.

« آخرین ویرایش: 25 مهر 1391، 04:01 ب‌ظ توسط Hadron »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور chmod
« پاسخ #20 : 31 اردیبهشت 1390، 10:51 ق‌ظ »
دستور chmod در این مکان -(در حال تکمیل شدن است)


دست رسی به فایل ها در لینوکس توسط یک سری پارامتر که به اون ها access mode یا mode می گویند قابل انجام هست این مد ها به 3 کلاس  تقسیم میشوند که به صورت زیر است :
User = کاربری که صاحب فایل است
Group = گروهی که صاحب فایل است
Other = تمامی کاربران دیگری که بر رویه سیستم وجود دارند.

معمولا وقتی یک فایلی ساخته میشود صاحب اون (user) فایل کسی هست که اون فایل رو ساخته و گروه فایل (group) نیز گروهی است که اون کاربر به اون تعلق داره و تمام کسانی که به اون گروه تعلق ندارند دیگران (other) گفته میشود.
برایه هرکدام از این کلاس ها 3 نوع دست رسی قابل تنظیم است که به شرح زیر است :


permission                       اجازه برایه دایرکتوری ها                اجازه برایه فایل ها                 نوع حروفی

Read  قابلیت خاندن          سنجیدن محتویات یک فایل مثلا
                                   داشتن توانایی برایه خاندن
                                   محتویات یک فابل با فرمت txt 
                     
Write  قابلیت نوشتن


Execute  قابلیت اجرای
 






--------------------------------------------------------------------------------
((( اگه روش هایی به غیر از روش های زیر دوستان میدونستین به صورت پیقام خصوصی یا زیر همین پست بگین تا اموزشو کامل کنم  - ممنون )))

برای خاموش کردن لینوکس 4 روش وجود داره که هرکدوم مقداری تفاوت با هم دارن مثلا یکی زود تر خاموش میکنه یا یکی به صورت اصولی خاموش میکنه یا یکی همین جوری یک دفعه ای سیستمو میبره پایین .
1- shutdown
2- init 0 یا telinit 0
3-  halt
4- poweroff



1- shutdown


شکل کلی دستور به این شکل هست
shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[/s]
چند مثال

خاموش کردن کامپیوتر قبل از نصفه شب
shutdown -h  23:539

خاموش کردن در همین لحظه
shutdown -h now

خاموش کردن در 25 دقیقه اینده
shutdown -h +25

در دستورای بالا به جای -h که همون دستور halt رو صدا میزنه اگه از -r استفاده کنین کار ریستارت کردنو میکنه



init 0

دستور init یا telinit مربوط به تغییر runlevel ها میشه که 0 برای خاموش کردن و 6 برای ریستازت کردن هستش

برای خاموش کردن
init 0
یا
telinit 0

برای ریستارت کردن عدد صفر در دستورای بالا رو به عدد 6 نغییر بدین




halt


دستور halt  اسم دیگه runlevel 0 هستش که همون کار خاموش کردنو میکنه

برای خاموش کردن سیستم فقط لازم دستور halt رو بزنین
halt

خطر


اگه دستور halt رو با -f و -p بزنین مثل کشیدن کابل برق عمل میکنه !                                                                                                               خطر

halt -fp
دستور بالا تو سیستم های مجازی مثل freez کردن عمل میکنه  سیستمو خاموش نمیکنه  تو vmware player که این جوری بود .



poweroff


اگه خروجی help--  دو دستور  halt و poweroff  رو بگیرین می بینین که هردوشون مثل همن

برای خاموش کردن سیستم
poweroff

دستور 
خطر

بالا هم برای poweroff صدق میکنه

« آخرین ویرایش: 23 آذر 1391، 09:51 ق‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور cat و دستور cut
« پاسخ #21 : 31 اردیبهشت 1390، 11:34 ق‌ظ »



دستور cut در ادامه دستور cat به زودی



دستور cat برایه خواندن و خروجی گرفتن استاندارد فایل ها ی متنی استفاده میشود ک ولی برایه هرنوع فایلی میتونین ازش استفاده کنین حتی برایه عکس ولی خروجیش نا مفهوم میشه 

شکل کلی دستور
       cat [OPTION]... [FILE]...
در مثال هایه زیر از یک فایل متنی به اسم sisi و با محتویات زیر استفاده شده است

THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.



Tree lines above this line is empty.

One lines above this line is empty.
And this is the last line.


اگه دستور cat رو به تنهایی بزنین خروجی مثل متن بالا رو نشون میده نه کم نه زیاد
alieblice@~/Desktop$ cat sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.



Tree lines above this line is empty.

One lines above this line is empty.
And this is the last line.
alieblice@~/Desktop$

شماره گذاری خط ها
خط هارو به دو صورت میشه نام گذاری کرد
 1- تمام خط ها یعنی هم خط هایه پر و هم خط هایه خالی بوسیله n-
خط هایه خالی یعنی خط هایه 4 ,5,6,8
مثال
alieblice@~/Desktop$ cat -n sisi.txt
     1 THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
     2 this line is the 1st lower case line in this file.
     3 This Line Has All Its First Character Of The Word With Upper Case.
     4
     5
     6
     7 Tree lines above this line is empty.
     8
     9 One lines above this line is empty.
    10 And this is the last line.
alieblice@~/Desktop$

2- فقط خط هایه پر رو شماره گذاری مکند  یعنی خط هایه خالی رو شماره گذاری نمیکنه بوسیله  b- 
مثال:
alieblice@~/Desktop$ cat -b sisi.txt
     1 THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
     2 this line is the 1st lower case line in this file.
     3 This Line Has All Its First Character Of The Word With Upper Case.



     4 Tree lines above this line is empty.

     5 One lines above this line is empty.
     6 And this is the last line.
alieblice@~/Desktop$


نشانه گذاری پایان خط ها به وسیله E-

بوسیله این اپشن میتونین پایان هر خط رو با علامت ﷼ مشخص کنین
alieblice@~/Desktop$ cat -E sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.$
this line is the 1st lower case line in this file.$
This Line Has All Its First Character Of The Word With Upper Case.$
$
$
$
Tree lines above this line is empty.$
$
One lines above this line is empty.$
And this is the last line.$
alieblice@~/Desktop$

پاک کردن خط هایه خالی پشت سر هم بوسیله s- (( اس کوچک  ))

اگه به متنی که اول اموزش گذاشته شده توجه کنید وسط متن 3 خط خالی پشت سر هم وجود داره که اگه بخاین اونارو حذف کنین و یک خطو نگه دارین از s-  استفاده کنین
مثال :
alieblice@~/Desktop$ cat -s sisi.txt
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.

Tree lines above this line is empty.

One lines above this line is empty.
And this is the last line.
alieblice@~/Desktop$
همون طور که میبینین 3 خط به یک خط تبدیل شد

نکته :
اگه اسم چند فایلو پشت سر هم تو cat بیاریم همشونو پشت سر هم نشون میده
    cat file1 file2 file3
چند دستور ترکیبی cat

اگه خروجی cat اونقدر زیاده که تو صفحه ترمینالتون جا نمیشه میتونین از این اپشن استفاده کنینی
    cat file1 | less
با دستور زیر میتونین اطلاعات  FILENAME رو به فایل جدید NEWFILENAME انتقال بدین
cat FILENAME > NEWFILENAMEنکته : اگه در دستور بالا فایل NEWFILENAME وجود داشته باشه پاک میشه و فایل جدیدی جاش ایجاد میشه اگه میخاین که این طور نشه و به ادامه اون فایل اضافه بشه از << استفاده کنین

cat FILENAME >> NEWFILENAME
ذخیره خروجی چندین تا فایل در یک فایل
    cat file1 file2 file3 > file4
منابع :
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/cat.htm
http://www.linfo.org/cat.html


« آخرین ویرایش: 23 آذر 1391، 09:55 ق‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور rsync ((گرفتن :پشتیبان backup ))
« پاسخ #22 : 01 خرداد 1390، 02:10 ب‌ظ »



دستور head  و دستور tail در این مکان به زودی
[/b]

دستور rsync برای بکاپ گیری در لینوکس استفاده میشه همچنین قابلیت synchronize دو فایل رو هم داره که این 2 فایل میتونن در یک کامپیوتر یا یکیشون در یک کامپیوتر رموت باشه

چند نکته خوب درمورد rsync

سرعت بالا  : به دلیل این که اول 2 تا فایلو باهم مقایسه میکنه بعد فقط قسمت های تغییر کرده رو بروز یا تغییراتی درشون اءمال میکنه
امنیت  : چون rsync از ssh برای برقراری ارتباط استفاده میکنه از امنیت بالایی برخورداره
مصرف پهنای باند کم : چون از فشرده سازی به صورت block by block استفاده میکند همیشه پهنای باند مصرفی از مقدار فایل تبادل شده کمتر است
در اخر هم پیشنیاز خاصی برای نصبش نیاز نیست

نصب :

برای نصب دستورات زیر رو بزنین
apt-get update
apt-get install rsync

شکل کلی دستور
$ rsync options source destination
Synchronize دو فلدر در یک کامپیوتر
$ rsync -zvr /var/opt/installation/inventory/ /root/temp
building file list ... done
sva.xml
svB.xml
.
sent 26385 bytes  received 1098 bytes  54966.00 bytes/sec
total size is 44867  speedup is 1.63
$

-z بزای فشرده سازی
v- برای نشون دادن مراحل کار
r-  indicates recursive

حالا اگه ls -l هردو فایلو بگیرین میبینین که پرمیشن ها ثابت مانده اند ولی زمان ساخته شدن فایلا تغییر کردن
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 bin  bin  949 Jun 18  2009 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root bin  949 Sep  2  2009 /root/temp/sva.xml


برای این که زمان ساخته شدن فایلا تغییر نکند از a- استفاده کنین
$ rsync -azv /var/opt/installation/inventory/ /root/temp/
building file list ... done
./
sva.xml
svB.xml
.
sent 26499 bytes  received 1104 bytes  55206.00 bytes/sec
total size is 44867  speedup is 1.63
$
حالا اگه خروجی ls -l رو نگاه کنین میبینین که زمان ساخته شدن فایلها بعد از بکاپ گیری یکی هستش
$ ls -l /var/opt/installation/inventory/sva.xml /root/temp/sva.xml
-r--r--r-- 1 root  bin  949 Jun 18  2009 /var/opt/installation/inventory/sva.xml
-r--r--r-- 1 root  bin  949 Jun 18  2009 /root/temp/sva.xml


Synchronize فقط یک فایل که عمل  کپی کردن یک فایل به فلدر دیگر رو انجام میده

$ rsync -v /var/lib/rpm/Pubkeys /root/temp/
Pubkeys

sent 42 bytes  received 12380 bytes  3549.14 bytes/sec
total size is 12288  speedup is 0.99


Synchronize کردن فایل از کامپیوتر local به کامپیوتر remote
local : کامپیوتری که شما الان باهاش کار میکنین ((کامپیوتر محلی))
remote : کامپیوتری که در دور دست هستش

$ rsync -avz /root/temp/ thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/
Password:
building file list ... done
./
rpm/
rpm/Basenames
rpm/Conflictname

sent 15810261 bytes  received 412 bytes  2432411.23 bytes/sec
total size is 45305958  speedup is 2.87

برای انجام این کار احتیاج به username وIP address سیستم  رموت و همچنین ادرس فایل در سیستم رموت که شکل کلی به این شکل میشه
username@machinename:path
path : ادرس دایرکتوری در سیستم رموت
که در دستور بالا به این شکل بود :  thegeekstuff@192.168.200.10:/home/thegeekstuff/temp/

/root/temp/ : ادرس فایل های ارسالی از لوکال به سرور

 
Synchronize سیستم رموت به سیستم خانگی
alieblice@alieblice-desktop:~$ sudo rsync -avz root@172.16.49.128:/var/www/Videos /home/reza
[sudo] password for alieblice:
root@172.16.49.128's password:
receiving incremental file list
created directory /home/reza
Videos/
Videos/.htaccess
Videos/Oggy.001.avi
Videos/Oggy.002.avi
Videos/Oggy.003.avi
Videos/Oggy.004.avi
Videos/Oggy.005.avi

sent 129 bytes  received 347205008 bytes  10063917.01 bytes/sec
total size is 350419831  speedup is 1.01
alieblice@alieblice-desktop:~$

root@172.16.49.128:/var/www/Videos : ادرس سیستم رموت

/home/reza : ادرسی که میخایم فایلا از رموت تو کامپیوتر لوکال شخصی ذخیره شود


دیدن اطلاعاتی در مورد انتقال هر فایل
برای این کار از progress-- استفاده کنین

alieblice@alieblice-desktop:~$ sudo rsync --progress -avz root@172.16.49.128:/var/www/Videos /home/reza
root@172.16.49.128's password:
receiving incremental file list
Videos/
Videos/Oggy.001.avi
    70811648 100%   17.25MB/s    0:00:03 (xfer#1, to-check=4/7)
Videos/Oggy.002.avi
    70343454 100%   11.02MB/s    0:00:06 (xfer#2, to-check=3/7)
Videos/Oggy.003.avi
    70598656 100%   13.04MB/s    0:00:05 (xfer#3, to-check=2/7)
Videos/Oggy.004.avi
    69273600 100%   14.00MB/s    0:00:04 (xfer#4, to-check=1/7)
Videos/Oggy.005.avi
    69392384 100%   12.04MB/s    0:00:05 (xfer#5, to-check=0/7)

sent 110 bytes  received 350537798 bytes  12746833.02 bytes/sec
total size is 350419831  speedup is 1.00
alieblice@alieblice-desktop:~$




ممکنه وقتی که 2 فایلو باهم دارین synce میکنین یکسری فایل در فلدر ی که دارین بکاپ هارو توش ذخیره میکنین ((target )) وجود داشته باشه که در فلدر اصلی ((source)) که ازش بکاپ میگیرین نباشه حالا اگه بخاین که فایلای اضافی که در  target بودنو پاک کنین از delet-- استفاده کنین
ls فولدر source
root@debian:/var/www/Videos# ls
Oggy.003.avi  Oggy.004.avi  Oggy.005.avi
ls فلدر target
alieblice@alieblice-desktop:~$ ls /home/reza/Videos
Oggy.001.avi  Oggy.002.avi  Oggy.003.avi  Oggy.004.avi  Oggy.005.avi
alieblice@alieblice-desktop:~$
alieblice@alieblice-desktop:~$ sudo rsync --progress --delete  -avz root@172.16.49.128:/var/www/Videos /home/reza
root@172.16.49.128's password:
receiving incremental file list
deleting Videos/Oggy.002.avi
deleting Videos/Oggy.001.avi
Videos/
Videos/Oggy.005.avi
    69392384 100%   16.48MB/s    0:00:04 (xfer#1, to-check=0/5)

sent 34 bytes  received 69415891 bytes  9255456.67 bytes/sec
total size is 209264729  speedup is 3.01
alieblice@alieblice-desktop:~$




ممکنه فقط بخاین فایلایی که با کلمه خاصی شروع میشن رو بکاپ بگیرین
که برای این کار از include-- و  exclude--  استفاده کنین
--include 'P*' : فایلایی که با P شروع میشن رو بکاپ بگیر
--exclude '*' : تمام فایلای دیگر رو در نظر نگیر
$ rsync -avz --include 'P*' --exclude '*' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Packages
Providename
Provideversion
Pubkeys

sent 129 bytes  received 10286798 bytes  2285983.78 bytes/sec
total size is 32768000  speedup is 3.19




محدودیت حجمی

برای ایجاد محدودیت حجمی میتونین از
--min-size=SIZE :فقط فایلایی که حجمشون از مقدار در نظر گرفته شده بیشتر است رو انتقال بده
--min-size=SIZE : فقط فایلایی که حجمشون از مقدار در نظر گرفته شده کمتر است رو انتقال بده

دستور زیر فایلای زیر 100 کیلوبایت رو انتقال میده
M for megabytes and G for gigabytes K for kilobyte

$ rsync -avz --max-size='100K' thegeekstuff@192.168.200.10:/var/lib/rpm/ /root/temp/
Password:
receiving file list ... done
./
Conflictname
Group
Installtid
Name
Sha1header
Sigmd5
Triggername

sent 252 bytes  received 123081 bytes  18974.31 bytes/sec
total size is 45305958  speedup is 367.35




rsync خیلی گسترده هستش و پایه اساس خیلی از نرم افزارای بکاپ گیری لینوکس و ویندوز هستش
برای دیدن کامل کارایی که rsync میتونه انجام بدهد به man یا helpش مراجعه کنین

نسخه گرافیکی مختلفی برای لینوکس و ویندوز داره که از ادرس زیر میتونین ببینین
http://en.wikipedia.org/wiki/Rsync


منبع : http://www.thegeekstuff.com/2010/09/rsync-command-examples/
چند مثال دیگه تو منبع هست که نگفتم
« آخرین ویرایش: 23 آذر 1391، 09:56 ق‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور sort
« پاسخ #23 : 01 خرداد 1390، 10:49 ب‌ظ »


دستور sort همون طور که از معنیش معلومه برایه ترتیب کردن حروف بر اساس حروف الفبا و همچنین ترتیب کردن اعداد بر اساس اعداد استفاده میشود
از جایی که اپشن هایه زیادی دارد من این جا فقط اونایی که از همه بیشتر مصرف میشوند و کار راه انداز هستن رو میگم

شکل کلی دستور
sort [OPTION]... [FILE]...
ساده ترین شکل دستور sort به شکل زیر هستش که به صورت پیش فرض ترتیب کردن رو بر اساس حروف انجام میدهد
برایه این مثال اول فایل زیر رو با محتویات زیر بسازید و ذخیره کنید
alieblice@~/Desktop/sisi$ nano lili.txt
X
C
d
c
a
h
g
A
G
H
K
p
برایه ذخیره شدن دکمه کنترل و ایکس رو فشار بدین و سپس دکمه y رو بزنین (( Ctrl+x ))
alieblice@~/Desktop/sisi$

مثال :
alieblice@~/Desktop/sisi$ sort lili.txt
a
A
c
C
d
g
G
h
H
K
p
X
alieblice@~/Desktop/sisi$

ترتیب بر اساس اعداد به وسیله n-
برایه این کار فایل sisi.txt رو به روش بالا با محتویات زیر بسازین
10
30
40
5
7
1
88
2
1390
یک فایل رو به دو صورت میشود به ترتیب اعداد کرد

1=
از این طریق اعداد فقط بر حصب عدد اولشون ترتیب میشن
مثال:
alieblice@~/Desktop/sisi$ sort lili.txt

1
10
1390
2
30
40
5
7
88
alieblice@~/Desktop/sisi$

2=
بر اساس ترتیب شمردن که احتیاج به اپشن n- دارد
مثال:
alieblice@~/Desktop/sisi$ sort -n lili.txt

1
2
5
7
10
30
40
88
1390
alieblice@~/Desktop/sisi$

نکته : اگه خاستین بر عکس ترتیب بشود از اپشن r- استفاده کنین یعنی مثلا در ترتیب اعداد در مثال بالا اول 1390 بعد 88 وبعد 40 و بعد ....


تعیین جدول

برایه تعیین جدول احتیاج به دو چیز داریم یک جدا کننده که به ما میگه چه جوری دو تا جدول از هم جدا میشوند و دیگری شماره جدول
در مثال هایه زیر از متن زیر استفاده شده است

acl Safe_ports port 80 # http
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
tia:x:1000:1000::/home/tia:/bin/bash

به خط زیر توجه کنین
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bashاگه در خط بالا نوع جدا کننده را : در نظر بگیریم خط بالا از 7 قسمت درست شده که ما اینجا به اونا جدول می گفتیم
در مثال زیر میگیم که خطوط رو بر اساس جدول 3وم و نوع جدا کننده : به ترتیب اعداد بکند
alieblice@~/Desktop/sisi$ sort -n -t: -k3 lili.txt
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 80 # http
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
tia:x:1000:1000::/home/tia:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
alieblice@~/Desktop/sisi$
در مثال بالا t- برای تعیین جدا کننده و k- برایه تعیین جدول هستش
اگه خاستین خروجی هایه تکراری پاک شوند از u- استفاده کنین

مثال :
alieblice@~/Desktop/sisi$ sort -nu -t":" -k3 lili.txt
acl Safe_ports port 80 # http
bin:x:2:2:bin:/bin:/bin/sh
games:x:5:60:games:/usr/games:/bin/sh
alieblice:x:1000:1000:alieblice,,,:/home/alieblice:/bin/bash
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
alieblice@~/Desktop/sisi$
همون طور که میبینین این خط به همراه تمام خط هایی که توش جدا کننده پیدا نشده به جز یکی حذف شدند
tia:x:1000:1000::/home/tia:/bin/bash
مثالی دیگر :
در مثال زیر جدا کننده رو یک فاصله (( space )) در نظر میگیریم
 alieblice@~/Desktop/sisi$ sort -t" " -k 4 -nu lili.txt
bin:x:2:2:bin:/bin:/bin/sh
acl Safe_ports port 80 # http
acl Safe_ports port 631 # cups
acl Safe_ports port 777 # multiling http
acl Safe_ports port 873 ## rsync
acl Safe_ports port 901 # SWAT
alieblice@~/Desktop/sisi$

نکته :
یکی از مشکلاتی که دستور sort دارد نوع جدا کننده هستش که نمیشه دو حرفی تعیین کرد یعنی مثلا چیزهایی مثل  " :"    ::"    ":@"  نمیشه تعیین کرد

منبع : LPIC-1_In_Nutshell_Oreilly_Edition3
ادرس دانلود:
http://ubuntuone.com/p/15HZ/



--------------------------------------------------------------------------------------------------
دستور man  برای دیدن راهنمای دستورات و بعضی فایل ها استفاده میشه


اتقال دستور man به صفحه اول قیل از دستور cd (نبود جا برایه دستور man)

یک دستور میتونه چندین تا راهنمای مجزا  ((  چندین صفحه man  )) داشته یاشه که به صورت استاندارد به بخش های زیر تقسیم میشن
Section Description
  1    User programs
2      System calls
3      Library calls
4      Special files (usually found in /dev)
5      File formats
6      Games
7      Miscellaneous
8      System administration

شکل کلی دستور

man [options] [section] name
مثلا دستور
man mkdir اگه بزنین راهنمای mkdirرو میاره

man mkdir
MKDIR(1)                         User Commands                        MKDIR(1)

NAME
       mkdir - make directories

SYNOPSIS
       mkdir [OPTION]... DIRECTORY...

DESCRIPTION
       Create the DIRECTORY(ies), if they do not already exist.

       Mandatory  arguments  to  long  options are mandatory for short options
       too.

       -m, --mode=MODE
              set file mode (as in chmod), not a=rwx - umask

       -p, --parents
              no error if existing, make parent directories as needed

       -v, --verbose
              print a message for each created directory

       -Z, --context=CTX
              set the SELinux security context of each  created  directory  to
              CTX

       --help display this help and exit

       --version
              output version information and exit

AUTHOR
       Written by David MacKenzie.

REPORTING BUGS
       Report mkdir bugs to bug-coreutils@gnu.org
       GNU coreutils home page: <http://www.gnu.org/software/coreutils/>
       General help using GNU software: <http://www.gnu.org/gethelp/>
       Report mkdir translation bugs to <http://translationproject.org/team/>

COPYRIGHT
       Copyright  ©  2010  Free Software Foundation, Inc.  License GPLv3+: GNU
       GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
       This is free software: you are free  to  change  and  redistribute  it.
       There is NO WARRANTY, to the extent permitted by law.

SEE ALSO
       mkdir(2)

       The full documentation for mkdir is maintained as a Texinfo manual.  If
       the info and mkdir programs are properly installed at  your  site,  the
       command

              info coreutils 'mkdir invocation'

       should give you access to the complete manual.

GNU coreutils 8.5                 April 2010                          MKDIR(1)


دیدن man های یک دستور 
man -wa command
مثلا
$ man -wa mkfifo
/usr/share/man/man1/mkfifo.1
/usr/share/man/man3/mkfifo.3

خوب حالا اگه بخاین راهنمای C-language دستور mkfifo رو ببینین باید به manای که عدد 3 رو داره برین که برای این کار دستور به این شکل میشه
$ man 3 mkfifo

اگه بخاین که man تمام راهنما های موجود برای یک دستورو یک جا براتون بیاره از a- استفاده کنین
حالا اگه دستور زیرو بزنین اول man 1 و بعد man 7 رو میاره به این صورت که با بسته شدن man 1 با q ((کیو )) یا Ctrl-C  به man 2 میرود 
man -a man


نکته :
  اگه دستور دیدن مکان man یک دستورو به شکل man -w COMMAND  بزنین فقط مکان  راهنمایی رو که بازدن man COMMAND میبینین رو نشون میده که برای دیدن مکان  همه ی man های یک دستور باید از aw- استفاده کنین .

 
سیرچ کردن تمام صفحات man موجود
برای این کار از k- استفاده کنین
مثلا کلمه apache رو سیرچ میکنیم
ali@172.16.15.149:~$ man -k apache
a2dismod (8)         - enable or disable an apache2 module
a2dissite (8)        - enable or disable an apache2 site / virtual host
a2enmod (8)          - enable or disable an apache2 module
a2ensite (8)         - enable or disable an apache2 site / virtual host
ab (1)               - Apache HTTP server benchmarking tool
apache2 (8)          - Apache Hypertext Transfer Protocol Server
apache2ctl (8)       - Apache HTTP server control interface
apachectl (8)        - Apache HTTP server control interface
check_forensic (8)   - tool to extract mod_log_forensic output from apache lo...
logresolve (1)       - Resolve IP-addresses to hostnames in Apache log files
rotatelogs (8)       - Piped logging program to rotate Apache logs


وقتی که دستور man ls رو میزنین راهنمای ls باز میشه که خود همون صفه باز شده از چند قسمت تشکیل شده که به صورت زیر هستش

Heading Description
Name         The name of the item, along with a description
Synopsis               A complete description of syntax or usage
Description        A brief description of the item
Options      Detailed information on each command-line option (for commands)
Return values     Information on function return values (for programming references)
See also          A list of related items that may be helpful
Bugs         Descriptions of unusual program behavior or known defects
Files         A list of important files related to the item, such as configuration files
Copying or copyright          A description of how the item is to be distributed or protected
Authors      A list of those who are responsible for the item


دستور خلاصه تر از man  هم هست که فقط توضیح کوتاهی از اون دستورو میده
whatis ls
ls (1)               - list directory contents




منبع : LPIC-1_In_Nutshell_Oreilly_Edition3.pdf
ادرس دانلود
http://ubuntuone.com/p/15HZ/
« آخرین ویرایش: 23 آذر 1391، 01:29 ب‌ظ توسط alieblice »

آفلاین Aref.Ariyapour

  • Full Member
  • *
  • ارسال: 203
  • جنسیت : پسر
خوب دوستان عزیز.
من دیدم این دوست عزیزمون alieblice دارن زحمات زیادی میکشن. من هم از همین سایتی که ایشون یه سری Command ها رو آموزش دادن، یه سری اطلاعات و آموزش‌ها رو ترجمه میکنم. امیدوارم که هم کمکی به دوستانی باشه که این تاپیک بسیار مفید رو زنده نگه میدارن و هم اینکه امیدوارم مفیر باشه واسه همه دوستان.
دوستان این وبسایت http://www.thegeekstuff.com/ خیلی وبسایت عالی هستش. من سعی میکنم هر وقت که پستی رو خوندم و جالب دیدم بیام و اینجا هم مطرح کنم.

۵ روش برای شناسایی فایل سیستم
  • df -T

rf@Aref-Ubuntu:~$ df -T

Filesystem    Type   1K-blocks      Used Available Use% Mounted on

/dev/sda1     ext4    28868732    818088  26584176   3% /

none      devtmpfs      505400       688    504712   1% /dev

none         tmpfs      512008       356    511652   1% /dev/shm

none         tmpfs      512008       224    511784   1% /var/run

none         tmpfs      512008         0    512008   0% /var/lock

/dev/sda5     ext4    68246080  30481724  34297656  48% /home

/dev/sda6     ext4    16339372   3596348  11913024  24% /usr

/dev/sdb1     vfat     1003584    937464     66120  94% /media/Receiver Fl

-T در فرمان df نوع فایل سیستم را مشخص میکند.

  • Mount command

از دستور mount به شکل زیر استفاده کنید:
mount | grep "^/dev"
rf@Aref-Ubuntu:~$ mount | grep "^/dev"

/dev/sda1 on / type ext4 (rw,errors=remount-ro,commit=0)

/dev/sda5 on /home type ext4 (rw,commit=0)

/dev/sda6 on /usr type ext4 (rw,commit=0)

/dev/sdb1 on /media/Receiver Fl type vfat (rw,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,shortname=mixed,dmask=0077,utf8=1,showexec,flush)

  • file command

با استفاده از دسترسی root از فرمان file به شکل زیر استفاده کنید. توجه شود که نام device مورد نظر باید به دستور داده شود.
file -sL /dev/sda1
rf@Aref-Ubuntu:~$ sudo file -sL /dev/sda1

[sudo] password for rf:

/dev/sda1: Linux rev 1.0 ext4 filesystem data, UUID=83c2ae51-5ab2-4380-bbc8-910f8148a288 (needs journal recovery) (extents) (large files) (huge files)

  • مشاهده فایل /etc/fstab

اگر یک mountpoin مشخص، طوری تنظیم شده باشد که هنگام بالا آمدن سیستم بخواهد mount شود، میتونیم نوع فایل سیستم اون رو تو fstab ببینیم.

rf@Aref-Ubuntu:~$ cat /etc/fstab

# /etc/fstab: static file system information.

#

# Use 'blkid -o value -s UUID' to print the universally unique identifier

# for a device; this may be used with UUID= as a more robust way to name

# devices that works even if disks are added and removed. See fstab(5).

#

# <file system> <mount point>   <type>  <options>       <dump>  <pass>

proc            /proc           proc    nodev,noexec,nosuid 0       0

# / was on /dev/sda1 during installation

UUID=83c2ae51-5ab2-4380-bbc8-910f8148a288 /               ext4    errors=remount-ro 0       1

/dev/sda5       /home           ext4    defaults        0       2

/dev/sda6       /usr            ext4    defaults        0       2

/dev/sda7       none            swap    sw              0       0



  • استفاده از فرمان fsck

توجه شود که در این روش باید device مورد نظر مشخص شود:
fsck -N /dev/sda1
rf@Aref-Ubuntu:~$ fsck -N /dev/sda1

fsck from util-linux-ng 2.17.2

[/sbin/fsck.ext4 (1) -- /] fsck.ext4 /dev/sda1

و در آخر اینکه اگر شما دسترسی root را ندارید، اما میخواهید که فایل سیستمتان را شناسایی کنید، از:
/sbin/fsck -N استفاده کنید.
ممنون از همه دوستان عزیز
موفق باشید
That's me in the corner
That's me in the spotlight, I'm
Losing my religion

آفلاین doomhammer65ir

  • High Hero Member
  • *
  • ارسال: 1572
  • جنسیت : پسر
    • IRAN Backup
پرونده ای است که هر آن بدان چیزی افزوده میشود ( همچو log file )‌ میخواهیم بپاییمش :
tail -f logfilename-----------------------
میخواهیم تنها خطهای یکتا ( و اگر چند خط تکراریست تنها یکی از آن خطها ) را ببینیم :
( چیزی مانند distinct در sql )
uniq filename

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور wc , دستور uniq , دستور write
« پاسخ #26 : 08 خرداد 1390، 11:38 ب‌ظ »
دستور uniq n در ادامه  دستور wc و write در این مکان به زودی

دستور wc برایه شمردن تعداد کلمه ها , تعداد خط ها و تعداد حرف ها استفاده میشود

اگر خود دستور wc رو بر رویه یک فایل اجرا کنین تعداد خط کلمه و حروف رو به شما می دهد.
$ wc /var/log/dmesg
  1974  16587 131873 /var/log/dmesg

در خروجی بالا 1975 تعداد خط و 16587 تعداد کلمه و 131873 تعداد چرکتر ها که با مقدار بایت هم برابر هست.

اپشن هایه دستور wc
اپشن c-
برا نشون دادن مقدار بایت فایل
$ wc -c /var/log/dmesg
131873 /var/log/dmesg

اپشن m-
برایه شموردن تعداد چرکتر
$ wc -m /var/log/dmesg
131873 /var/log/dmesg

اپشن l-
برایه نشون دادن تعداد خط ها
$ wc -l /var/log/dmesg
1974 /var/log/dmesg

L- ال بزرگ
برایه دیدن طولانی ترین خط
$ wc -L /var/log/dmesg
195 /var/log/dmesg
در بالا طولانی ترین خطمون 195 چرکتر است

اپشن w-
برایه شمردن تعداد کلمه ها
$ wc -w /var/log/dmesg
16587 /var/log/dmesg


 

----------------------------------------------------------------------------------------------------------------------------



دستور write برای  چت کردن در ترمینال با کاربرای دیگر که login شده اند استفاده میشه که خیلی هم ساده هستش و اپشنی هم نداره

شکل کلی دستور
write user [tty]
برای بر قراری ارتباط با یک کاربر دستورو به این شکل بزنین
alieblice@alieblice-desktop:~$ write alieblice
write: alieblice is logged in more than once; writing to pts/4
salamm

در بالا میبینین که گفته  write: alieblice is logged in more than once; writing to pts/4
یعنی کاربر alieblice بیشتر از یک ترمینال باز شده داره که همه این ترمینال ها میتونه مال یک نفر یا چند نفر باشه که برای جلو گیری از اشتباه بهتره که  tty کاربر رو هم معلون کنین . برای دیدن tty کاربرای وارد شده به سیستم دستور w یا  who رو بزنین
مثال w تو سیستم من
alieblice@alieblice-desktop:~$ w
 00:20:51 up  1:34,  7 users,  load average: 0.73, 0.67, 0.54
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
alieblic tty8     :0               22:52    1:34m  2:54   0.08s gnome-session
alieblic pts/0    :0.0             23:24   56:08   0.17s  0.17s bash
alieblic pts/1    :0.0             23:51   27:03   0.14s  0.14s bash
alieblic pts/2    :0.0             23:57    3:23   0.14s  0.14s bash
alieblic pts/3    :0.0             00:08    0.00s  0.14s  0.00s w
tia      pts/4    -                00:20   39.00s  0.41s  0.14s -bash
tia      pts/5    -                00:20    2.00s  0.36s  0.01s top
alieblice@alieblice-desktop:~$
همونطر که میبینین کاربر tia دو بار وارد سیستم شده
مثلا من به کار بری که شناسش pts/5 هست ارتباط برقرار میکنم که الان داره با top کار میکنه
alieblice@alieblice-desktop:~$ write tia pts/5
hi tia


بستن چت

اگر زمانی خاستین که کسی مزاحمتون نشه در حین کار میتونین از دستور mesg  استفاده کنین که به صورت y و n استفاده میشه
Usage: mesg [y|n]

مثلا باری این که کاربر tia اجازه ی چت رو ببنده دستور به این شکل هست که اگر mesg  رو هم به صورت خالی بزنین y یا n بودنشو میگه
tia@alieblice-desktop:~$ mesg n
tia@alieblice-desktop:~$ mesg
is n
tia@alieblice-desktop:~$

 نکته : در ubuntu چت یک طرفه هستش یعنی اگه شما با یک نفر ارتباط برقرار کنین فقط میتونین براش چیزی بفرستین بارایه این که 2 طرفه بشه طرف مقابل هم باید دستور مشابه شما رو بزنه در حالی که تو دبیان این جوری نیست .

دستورات مشابه دیگه ای هم وجود داره مثل talk


« آخرین ویرایش: 23 آذر 1391، 02:19 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور grep
« پاسخ #27 : 10 خرداد 1390، 05:10 ب‌ظ »
نکته :
خروجی هر دستور  به صورت عکس هم قرار گرفته برای درک بهتر
 اگه عکس ها دیده نمیشن از ادرس زیر میتونین عکس هارو ببینین (( شماره هر عکس رو بالاش با رنگ ابی قرار دادم ))
http://alieblice.persiangig.com/image/grep-pic/
یا از این ادرس دانلود کنین
http://ubuntuone.com/p/15nL/

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

شکل کلی دستور

grep [OPTION]... PATTERN [FILE]...یا
grep "literal_string" filename

نکته :

در طی اموزش از 3 فایل به نام های  demo و demo2 و demo3  استفاده میشه که متن داخلشون به ترتیب به صورت زیر هست

demo
alieblice@de-10:~$ cat demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.

Two lines above this line is empty.
And this is the last line
.

demo2
alieblice@de-10:~$ cat demo2
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.

Two lines above this line is empty.
And this is the last line.

demo3
alieblice@de-10:~$ cat demo3
4. Vim Word Navigation

You may want to do several navigation in relation to the words, such as:

 * e - go to the end of the current word.
 * E - go to the end of the current WORD.
 * b - go to the previous (before) word.
 * B - go to the previous (before) WORD.
 * w - go to the next word.
 * W - go to the next WORD.

WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

 * 192.168.1.1 - single WORD
 * 192.168.1.1 - seven words.


جستوجو برای یک کلمه  در متن
این دستور ساده ترین نوع دستور grep هستش که به صورت زیر عمل میکنیم
grep "literal_string" filename
مثال
قبل از زدن دستور زیر فایل demo رو با محتویاتی که اول اموزش گذاشتم بسازید

در مثال زیر به دنبال کلمه this میگردیم

alieblice@de-10:~$ grep "this" demo
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$
1



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

مثال
قبل از زدن دستور زیر  فایل demo2 رو بسازین

alieblice@de-10:~$ grep "this" demo demo2
demo:this line is the 1st lower case line in this file.
demo:Two lines above this line is empty.
demo:And this is the last line.
demo2:this line is the 1st lower case line in this file.
demo2:Two lines above this line is empty.
demo2:And this is the last line.
alieblice@de-10:~$
2



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

دستور بالا رو میتونین به این صورت هم بنویسین
alieblice@de-10:~$ grep "this" demo*
حساس نبودن به حروف بزرگ و کوچک بوسیله i-
در حالت عادی grep حساس به حروف بزرگ و کوچک هستش اگه با i- برای the جستوجو کنیم تمام کلمات THE و The  و the رو شامل میشه
alieblice@de-10:~$ grep -i "the" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
And this is the last line.
alieblice@de-10:~$
4


استفاده از regular expression در grep
grep به خوبی از regular expression پشتیبانی میکند که روش استفادشم مثل مثال اول هستش
اطلاعات بیشتر در مورد regular expression رو از ادرسهای زیر میتونین بخونبن
http://www.thegeekstuff.com/2011/01/regular-expressions-in-grep-command/
http://www.thegeekstuff.com/2011/01/advanced-regular-expressions-in-grep-command-with-10-examples-%E2%80%93-part-ii/
http://www.grymoire.com/Unix/Regular.html
مثال
alieblice@de-10:~$ grep "lines.*empty" demo
Two lines above this line is empty.
alieblice@de-10:~$

5



در بالا grep برای هر چیزی که با lines شروع بشه و با empty به پایان برسه که در بینشون هر چیزی میتونه باشه جستو جو میکنه

جستوجو فقط برای کلمه خاصته شده
اگه با grep کلمه is رو جستوجو کنیم کلمات زیر رو هم جزو خروجی میاره
“is”, “his”, “this”
حالا اگه بخایم که فقط دنبال is بگرده از w- میتونیم استفاده کنیم

عکس grep با اپشن i-
6


عکس grep با اپشن w-
alieblice@de-10:~$ grep -iw "is" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$

7



نشون دادن چند خط قبل یا بعد یا دوروبر نوشته پیدا شده    -A, -B and -C     
برای این قسمت فایل demo3 رو بسازین

نشون دادن N خط بعد نوشته تطبیق شده    با استفاده از A-
alieblice@de-10:~$ grep -A 3 -i "example" demo3
Example to show the difference between WORD and word

 * 192.168.1.1 - single WORD
 * 192.168.1.1 - seven words.
alieblice@de-10:~$

8


نشون دادن N خط قبل از نوشته تطبیق شده    با استفاده از B-

alieblice@de-10:~$ grep -B 2 "single WORD" demo3
Example to show the difference between WORD and word

 * 192.168.1.1 - single WORD
alieblice@de-10:~$

9



نشون دادن چند خط دورو بر نوشته تطبیق شده با استفاده از C- ((سی بزرگ))
alieblice@de-10:~$ grep -C 2 "Example" demo3
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

 * 192.168.1.1 - single WORD
alieblice@de-10:~$

10


جستوجو در داخل تمام فایل ها و ساب دایرکتوری ها با استفاده از r-
grep -r "ramesh" *
بر عکس کردن جستوجو   با استفاده از v- 

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

alieblice@de-10:~$ grep -v "go" demo3
4. Vim Word Navigation

You may want to do several navigation in relation to the words, such as:


WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

 * 192.168.1.1 - single WORD
 * 192.168.1.1 - seven words.
alieblice@de-10:~$
11



همون طور که میبینین در عکس خروجی رنگی وجود ندارد


جستو جو هم زمان برایه چند نوشته  به وسیله e-
برای این کار دستورو به این شکل مینویسیم
grep -v -e "pattern" -e "pattern"
مثال :
alieblice@de-10:~$ grep -e "is" -e "line" demo
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.
alieblice@de-10:~$

12



میتونین خط هایی که هیچکدان از نوشته های مورد نظر رو ندارن هم پیدا کنین که به این شکل میشه
alieblice@de-10:~$ grep -ve "is" -e "line" demo
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.

13




شمردن خط هایی که نوشته تطبیق شده رو داراست به وسیله c-
alieblice@de-10:~$ grep -c "go" demo3
6
alieblice@de-10:~$

یا

alieblice@de-10:~$ grep -c this demo
3
alieblice@de-10:~$


نشون دادن فایل هایی که نوشته مورد نظر درون انها تطبیق شده بوسیله l-

alieblice@de-10:~$ grep -l this *
demo
demo2

یا
alieblice@de-10:~$ grep -l this demo*
demo
demo2

نشون دادن خطی که در ان نوشته تطبق شده بوسیله n-
alieblice@de-10:~$ grep -n "go" demo3
5: * e - go to the end of the current word.
6: * E - go to the end of the current WORD.
7: * b - go to the previous (before) word.
8: * B - go to the previous (before) WORD.
9: * w - go to the next word.
10: * W - go to the next WORD.
alieblice@de-10:~$

16



همون طور که میبینین شماره خط رو اول هر خط نوشته

رنگی کردن

به طور پیش فرض grep از رنگ قرمز برای مشخص کردن متن های تطبیق یافته استفاده میکند که در عکس های بالا دیده میشه
حالا اگه بخاین رنگش رو تغییر بدین راحت ترین روش اینه که یک خط مثل خط پایین رپ به فایل
.bashrcکه در home دایرکتوری تون هست قرار بدین ((  نکته :  اول فایل یک نقطه داره که باعث مخفی شدنش میشه ))
نمونه خط :
export GREP_OPTIONS='--color=auto' GREP_COLOR='COLOR'
در خط بالا به جای COLOR کد رنگ مورد نظرتونو بزارین

چند نمونه رنگ
export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
17



export GREP_OPTIONS='--color=auto' GREP_COLOR='1;37;41'
18



export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
19



export GREP_OPTIONS='--color=auto' GREP_COLOR='7'

منبع :
http://www.thegeekstuff.com/2009/03/15-practical-unix-grep-command-examples/
http://www.debian-administration.org/articles/460
« آخرین ویرایش: 23 آذر 1391، 01:57 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور wget ((دانلود منیجر تحت ترمینال))
« پاسخ #28 : 14 خرداد 1390، 05:15 ب‌ظ »



دستور sed در این مکان بزودی
لینک به اموزش رگیولار اکسپرسشن جناب Hadron و اموزش دیگر

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

دانلود منیجرهای دنیای لینوکس

http://linuxreview.ir/1390/01/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D9%85%D9%86%DB%8C%D8%AC%D8%B1%D9%87%D8%A7%DB%8C-%D8%AF%D9%86%DB%8C%D8%A7%DB%8C-%D9%84%DB%8C%D9%86%D9%88%DA%A9%D8%B3/


شکل کلی دستور

wget [OPTION]... [URL]...
دانلود کردن یک فایل
 
برای دانلود کردن یک فایل دستور wget رو بنویسین و در ادامش url ((ادرس فایل مورد نظر )) تونو بنویسین مثلا :
$ wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2نکته : دستور wget رو در هر دایرکتوری که بزنین فایل در همون دایرکتوری ذخیره میشه

توضیح دستور بالا :

٪ مقدار درصد فایل که دانلود شده در زیر 31% فایل دانلود شده
مقدار بایت فایل دانلو شده که در ادامه فلش میاد که در زیر 1,213,592 است
سرعت دانلود کردن که در زیر  68.2K/s  است
مقدار زمان باقی مانده تا اتمام دانلود فایل که در زیر  34s است

درحال دانلود شدن
$ wget http://www.openss7.org/repos/tarballs/strx25-0.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/tarballs/strx25-0.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 رو به همراه اپشن i- استفاده کنین
$ wget -i download-file-list.txtنکته : ادرس هاتون باید یه شکل زیر باشه یعنی در هر خط یک url قرار بدین و url بعدی زیر خط بالایی
$ cat > download-file-list.txt
URL1
URL2
URL3
URL4

دانلود کردن وذخیره کردن با اسمی متفاوت
به طور پیش فرض wget اسم فایلو از اخرین کلمه بعد از اسلش (( / )) بر میداره
برای این کار از اپشن O- (( اوو بزرگ))
wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701دربالا اگه از اپشن O- استفاده نکنین فایل با اسم download_script.php?src_id=7701 ذخیره می شود و اگر استفاده کنین با اسم taglist.zip ذخیره میشود

محدودیت سرعت در دانلود

برای این کار از اپشن  limit-rate=NUMBER-- استفاده کنین مثلا در زیر محدودیت 200 کیلپبایت میزاریم
$ wget --limit-rate=200k http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
ادامه دادن دانلود فایل ناقص دانلود شده

برای این کار از c- استفاده کنین
$ wget -c http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2نکته مهم : دستور بالا رو باید در همون دایرکتوری که فایلتونو بار اول زدین و ناقص دانلود کردین بزنین تا فایلتون که به صورت ناقص هست به وسیله wget پیدا بشه  در غیر این صورت از اول شروع به دانلود میکند
اگر فایلی رو خاستین دانلود کنین که یک فایل دیگه هم اسمش وجود داره به اخر فایلی که شما دانلود میکنین یک 1- اضافه میکنه اگه همون اسم با 1- وجود داشت 2- اضافه میکند


دانلود کردن در پشت صحنه :
برای این کار از b- استفاده کنین
نکته : در این حالت با دستور fg نمیتونین wget رو به روی صفحه بیارین اگر دستور jobs هم بزنین میبینین که  خبری از wget نیست
$ wget -b http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
Continuing in background, pid 1984.
Output will be written to `wget-log'.

در این حالت wget اطلاعات رو در یک فایل ذخیره میکند که همون طور که در بالا میبینین اسم اون فایل wget-log است

برای دیدن فایل به صورت on time از دستور tail استفاده کنین
$ 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 --mirror -p --convert-links -P ./LOCAL-DIR WEBSITE-URL
مثال :
wget --mirror -p --convert-links -P /tmp http://forum.ubuntu.ir/index.php/topic,17561.0.html
ادرس http://forum.ubuntu.ir/index.php/topic,17561.0.html دانلود میکنپ ودر فایل tmp/ ذخیره میکند

توضیح دستور بالا : ((ترجمش با خودتون ))
    –mirror : turn on options suitable for mirroring.
    -p : download all files that are necessary to properly display a given HTML page.
    –convert-links : after the download, convert the links in document for local viewing.
    -P ./LOCAL-DIR : save all the files and directories to the specified directory.






چند مثال مفید دیگه هم در منبع بود که من نگفتم
منبع :  http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/




« آخرین ویرایش: 23 آذر 1391، 01:23 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
فشرده سازی در لینوکس (قسمت اول 1) -* دستور zip *-
« پاسخ #29 : 19 خرداد 1390، 09:49 ب‌ظ »


دستور find در این مکان بزودی

تقریبا اطمینان دارم که همه میدونن zip چی هستش پس خیلی توضیح نمیدم
zip یک فرمت فشرده سازی هستش که با اون مبشه یک یا چند فایل و یا دایرکتوری را zip فشرده کرد که باعش کم شدن حجم میشود

فایلی که با zip فشرده بشود در اخر اسم ان کلمه zip قرار میگیرد که نشانه فرمت اون هست
اطلاعات بیشتر که zip چی هست :  http://en.wikipedia.org/wiki/ZIP_%28file_format%29


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

tia@alieblice-desktop:~/com$ zip 1.zip 1.jpeg
  adding: 1.jpeg (deflated 0%
)

1-در بالا فایل 1.jpeg رو به فرمت zip دز میاریم و با اسم 1.zip ذخیره میکنیم  (( اول اسمی که میخایم فایل ذخیره بشه و بعد ادرس فایل مورد نظر ))
2- در بالا در هر دایرکتوری که باشیم فایل فشرده در همون جا ذخیره میشه  . اگه دوست داشتین میتونین ادرس بدین به هش
مثلا در زیر فایل رو در /home/tia ذخیره میکنیم

zip /home/tia/1.zip /var/www/1.jpeg
هم زمان میتونین چندین تا فایل هم بدین که دستور به این شکل میشه

zip archivefile1 doc1 doc2 doc3
اگه خاستین تمام فایل های داخل دایرکتوری فشرده بشن از * استفاده کنین
zip archivefile1 *نکته : در بالا دایرکتوری های داخل دایرکتوری ها فشرده نمیشن برای این کار از r- استفاده کنین(( This copies the current directory, including all subdirectories into the archive file)). 
zip error: Nothing to do! (/home/tia/1.zip)
tia@alieblice-desktop:~/com$ zip -r ggg.zip *
  adding: 1.jpeg (deflated 0%)
  adding: 1.zip (stored 0%)
  adding: 2.flv (deflated 3%)
  adding: limit-3 (deflated 76%)
  adding: untitled folder/ (stored 0%)
  adding: untitled folder/limit-3 (deflated 76%)
  adding: untitled folder/untitled folder/ (stored 0%)

نکته : در بالا فایل هایی که اولشون با نقطه شروع میشه ((فایل های مخفی)) فشرده نمیشوند برای این که اون ها هم فشرده شوند دستور به این شکل میشه
zip archivefile1 .* *

سطح فشرده سازی

در zip ر 9 سطح فشرده سازی دارسم    (-0, -1, -2, -3, -4, -5, -6, -7, -8, -9) داریم که 9 بالا ترین و صفر اصلا فشرده نمیکنه و به طور پیش فرض روی 6 هستش

zip -r -9   /home/tia/padmins3.zip *

گذاشتن رمز
گذاشتن رمز به 2 صورت انجام میشه یک با اپشن e- و دیگری با اپشن P- ((پی بزرگ )) که فرق این 2 تا اینه که در p- باید رمز رو در دستور بنویسین ولی با e- رمزو خودش میپرسه

tia@alieblice-desktop:~/com$ zip -r -9 -P @LiebL1C3  /home/tia/padmins3.zip 1.jpeg
updating: 1.jpeg (deflated 0%)
tia@alieblice-desktop:~/com$
tia@alieblice-desktop:~/com$ zip -r -9 -e  /home/tia/padmins3.zip 1.jpeg Enter password:
Verify password:
updating: 1.jpeg (deflated 0%)
tia@alieblice-desktop:~/com$


اپدیت کردن فایل zip

اگه یک فایل دارین از یک دایرکتوری و به اون دایرکتوری چیزی اضافه شده و میخاین که اونا رو هم به اون فایل zip اضافه کنین از u-  میتونین استفاده کنین که عمل اپدیت کردنو انجام میده ((فقط فایلایی که اضافه شدن رو به فایل zip اضافه میکنه و فایلی که کم شده باشه از فایل zip پاک نمیکنه))

tia@alieblice-desktop:~/com$ zip test.zip *
  adding: 1.jpeg (deflated 0%)
  adding: 1.zip (stored 0%)
  adding: 2.flv (deflated 3%)
  adding: ggg.zip (stored 0%)
  adding: limit-3 (deflated 76%)
  adding: untitled folder/ (stored 0%)
tia@alieblice-desktop:~/com$ zip -u  test.zip *
  adding: oo-presenting-kubuntu-fa.pdf (deflated 11%)
tia@alieblice-desktop:~/com$


unzip

برای از فشرده دراوردن فایل های zip از دستور unzip  استفاده کنین

مثلا برای از فشرده دراوردن فایل letter
unzip letters در این حالت فایل ها در همون دایرکتوری که هستین از فشره در میاد

اگه هم اسم فایل وجود داشته باشه از شما سوال میپرسه که چه کاری انجام بده

ali@172.16.15.133:~$ unzip -j  syslog.save.zip
Archive:  syslog.save.zip
replace syslog.save? [y]es, [n]o, [A]ll, [N]one, [r]ename: ^Cali@172.16.15.133:~$
ali@172.16.15.133:~$
ali@95-168-161-82:~$ unzip   syslog.save.zip
Archive:  syslog.save.zip
replace syslog.save? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: syslog-01
 extracting: syslog-01
ali@172.16.15.133
:~$

برای از فشرده دراوردن تمام فایل های zip داخل دایرکتوری از این دستور استفاده کنین
unzip \*.zip
باز کردن فایل zip از حالت فشرده در محل دیگری :
برای این کار از d- استفاده کنین
PersianAdmins:~# unzip padmins.zip -d /padmins/
Archive: padmins.zip
[padmins.zip] ali/ password:
creating: /padmins/ali/
creating: /padmins/ali/navid/
extracting: /padmins/ali/navid/reza
extracting: /padmins/file1.txt
inflating: /padmins/file2.txt
PersianAdmins:~#

اطمینان از سالم بودن فایل zip
روش اول
ali@172.16.15.133:~$ unzip -tq syslog.save.zip
No errors detected in compressed data of syslog.save.zip
.

روش دوم
ali@172.16.15.133:~$ unzip -t test.zip
Archive:  test.zip
    testing: wtmp                     OK
    testing: syslog.save              OK
No errors detected in compressed data of test.zip.


از فشرده در اوردن یک فایل خاص از داخل فایل zip

ali@172.16.15.133:~$ zip test.zip wtmp syslog.save
  adding: wtmp (deflated 96%)
  adding: syslog.save (stored 0%)
ali@172.16.15.133:~$
ali@172.16.15.133:~$ unzip test.zip wtmp -d /home/ali/
Archive:  test.zip
replace /home/ali/wtmp? [y]es, [n]o, [A]ll, [N]one, [r]ename: r
new name: wtmp-2
  inflating: /home/ali/wtmp-2


بدست آوردن اطلاعاتی در مورد فایل ها و دایرکتوری های موجود در فایل zip :

ali@172.16.15.133:~$ unzip -v test.zip
Archive:  test.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
  427392  Defl:N    16218  96% 2011-03-27 12:23 8be4c72a  wtmp
       1  Stored        1   0% 2011-03-26 10:44 32d70693  syslog.save
--------          -------  ---                            -------
  427393            16219  96%                            2 files


منابع : http://linux.about.com/od/commands/a/blcmdl1_unzipx.htm
http://persianadmins.ir/v2/articles/linux/list/207-compression-on-linux.html


« آخرین ویرایش: 23 آذر 1391، 01:24 ب‌ظ توسط alieblice »