دستورات لینوکس
ستور locate اطلاعات رو از روی دیتابیسی که با updatedb اماده سازی میشه میخواند و بعد با توجه به کلمه ای که شما به اون داده اید گزینه های سازگار رو در خروجی خود مینویسد
برای به روز کردن دیتابیس خود از دستور زیر استفاده کنین
برای این کار به کاربر روت احتیاج هست
نکته :اگه فایل یا هر چیز جدید دیگه ای ساختین بعدش دستور زیر رو بزنین تا به دیتابیس اضافه بشه چون بروز اوریه دیتا بیس خیلی سریع نیست .
کد:
sudo updatedb
برای پیدا کردن تمام فایلاها و دایرکتوریهایی که کلمه screenshot رو دارن دستور به این شکل میشه
کد:
locate Screenshot
با زدن این دستور تمام فایلاییو دایرکتوری که کلمه Screenshot در اسمشون باشه به شما نشون داده میشه که البته محدود به یک دایرکتوری خاص هم نمیشه و تمام دایرکتوری های موجود در درایوی که لینوکستون رو نصب کردین شامل میشه .
اگه خاستین دنبال یک چیزی محدود به یک دایرکتوری بگردین میتونین به این صورت دستورو بزنین
مثلا من در اینجا دنبال یک فایل در داخل /home/alieblice/Documents میگردم : کد:
alieblice@alieblice-desktop:/$ locate firefox |grep /home/alieblice/Documents /home/alieblice/Documents/firefox-4.0.tar.bz2 alieblice@alieblice-desktop:/$
اگه دستور locate -i firefox رو بزنین میبینین که چه همه firefox دارین
توضیح دستور بالا :
i- برای case-insensitive یعنی حساس نبودن به بزرگی و کوچکی استفاده میشه
| ((\+shift)) : میگه که خروجی دستور قبلی بشه ورودی دستور جدید که دستور بلافاصله بعد از | میاد ((پایپ pipe یا لوله میخوننش ))
grep : تمام خطهایی که کلمه ی ورودی رو داره برای ما جدا میکنه که کلمه ی ورودی در اینجا /home/alieblice/Documents بود .
برای ای کار دستور به شکل زیر میشه
کد:
locate -b '\NAME'
اینجوری فقط دایرکتوری یا فلدر هایی که اسمشون دقیقا NAME هست نشون داده میشه
کد:
alieblice@alieblice-desktop:/$ locate -b '\Oggy' /home/alieblice/Videos/Oggy alieblice@alieblice-desktop:/$ alieblice@alieblice-desktop:/$ alieblice@alieblice-desktop:/$ locate Oggy /home/alieblice/Documents/Oggy.003.htm /home/alieblice/Downloads/Oggy.003.htm /home/alieblice/Videos/Oggy /home/alieblice/Videos/Oggy.002.avi /home/alieblice/Videos/Oggy.003.avi alieblice@alieblice-desktop:/$
برای این کار بعد از دستور locate ادرس دایرکتوری رو بدین
کد:
alieblice@alieblice-desktop:/$ locate /home/alieblice/Videos /home/alieblice/Videos /home/alieblice/Videos/Oggy.001.avi /home/alieblice/Videos/Oggy.002.avi /home/alieblice/Videos/Oggy.003.avi /home/alieblice/Videos/test /home/alieblice/Videos/test/test2 alieblice@alieblice-desktop:/$
کد:
locate "*.png" -q
-q برای نشون ندادن ارور هست
اگر خاستین تعداد خاصی یعنی مثلا 3 تا خروجی بیشتر نداشته یاشه از n- استفاده کنین
کد:
alieblice@alieblice-desktop:/$ locate -n 3 "*.png" /etc/alternatives/start-here-16.png /etc/alternatives/start-here-22.png /etc/alternatives/start-here-24.png alieblice@alieblice-desktop:/$
اگه مقدار خروجی خیلی زیاد بود میتونین از less یا more استفاده کنین
کد:
locate *.png |less locate *.png |more
:
دیتابیس locate در ادرس زیر هست
کد:
/var/lib/mlocate/mlocate.db
که برای دیدن محتویات داخلش از این دستور میتونین استفاده کنین
کد:
sudo strings /var/lib/mlocate/mlocate.db |less
((( اگه روش هایی به غیر از روش های زیر دوستان میدونستین به صورت پیقام خصوصی یا زیر همین پست بگین تا اموزشو کامل کنم - ممنون )))
برای خاموش کردن لینوکس 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 صدق میکنه
دستورهایی که به پیکربندی سیستم مربوط می شوند یا سطح دسترسی بالا(مدیر سیستم) را نیاز دارند، بایستی با sudo شروع شوند. این دستور، هم چنین مجوز دسترسی به مسیرها و فایل هایی را که شما با یک اکانت ممکن است نداشته باشید، را به طور موقت تا سطح اجرایی کاربر ریشه(root user) بالا می برد. وقتی دستور sudo را به کار می برید، بی درنگ از شما پسورد ریشه ی سیستم یا همان پسورد اکانت مدیر سیستم پرسیده می شود. پسورد را تایپ کنید که عموماً در صفحه ی ترمینال چیزی تایپ نمی شود. اما شما پسورد را به درستی تایپ کرده و اینتر کنید. تنها کاربران با سطح دسترسی root می نوانند از این دستور استفاده کنند.
توضیح بیشتر:
دراوبونتو اکانت ریشه یامدیر سیستم به دلایل امنیتی به طورپیش فرض قفل است. شمابرای نصب نرم افزار واساساْ هردستور پیکربندی بایدکاربرریشه باشید.دستور sudo برای شناسایی شمابه عنوان کاربرصاحب اکانت دراوبونتو استفاده میشود. توجه داشته باشیدکه sudo، پسورداکانت شمارا می طلبد نه root را، مگراینکه شما تنهاکاربری باشیدکه همان مدیر سیستم هستید وهردو پسوردتان یکی است و تغییراتی راهم دراین زمینه اعمال نکرده اید. دستور سودو، ناپایداراست وارتقامدیریت سیستم رافقط تاحد زمانی مشخصی که تعریف شده(20دقیقه، بیشتر یا کم تر)نگه خواهد داشت و پس از این زمان و یا با بستن ترمینال انقضا خواهد شد. با ویرایش فایل etc/sudoers/ می توانید این مقدار و نیز موارد دیگری را تغییردهید. اما توصیه اکید می شود که مقادیر را دستی تغییرندهید. به جای آن از visudo editor با اجرای دستور زیر استفاده کنید:
کد:
sudo visudo
دستور زیر را برای راهنمایی بیش تر به کار گیرید:
کد:
man sudoers
راهنمای مناسبی در این مورد را میتوانید در آدرس زیر بیابید:
sudoers file
سودو دارای یک فرم گرافیکی هم می باشد که با اجرای دستور gksu یا gksudo در ترمینال محیط گنوم و kdesu در محیط KDE، باکس دیالوگ آن به نمایش در می آید.
می توانید با دستور sudo -i خود را کاربر ریشه نگه دارید. دستور sudo -i را اجرا کنید و پسورد کاربری خود را پس از این که در خواست کرد بدهید. خواهید دید که شناسه ی شما تغییر می کند.:
quark@HADRON:~$ => root@HADRON
باقی ماندن به عنوان کاربر root:
عبارت sudo su -l ویا sudo su راتایپ واجراکنید. همچنین دستورهای sudo -s و sudo -i معادل آن هستند. البته از لحاظ امنیتی توصیه نمی شود.
منبع: راهنمای ترمینال اوبونتو (دانستههایمان را به اشتراک بگذاریم)
ین دستور در ترمینال به شما نشون می ده چه برنامه هایی در حال اجرا هستند و چه مقدار cpu و حافظه رو درگیر می کنند . همچنین نشون می ده برنامه ی در حال اجرا از طرف کدوم کاربر اجرا شده به همراه کلی اطلاعات دیگر
شکل کلی خروجی دستور top به این شکل هستش
دستور top به صورت پیش فرض بر اساس مقدار مصرف cpu پروسس هارو نشون میده اگه میخاین که بر اساس مقدار مصرف مموری نشون بده M ((ام بزرگ )) در حالتی که top در حال اجرا هست رو بزنین
برای این که یک پروسس رو از بین ببرین در حالتی که top در حال اجرا هست دکمه k رو بزنین ((k کوچک)) و عدد pid مربوط به اون پروسس رو بنویسین
کد:
PID to kill: 1309 Kill PID 1309 with signal [15]: PID USER 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
اگه میخاین که top فقط پروسس های مربوط به یک user خاص رو نشون بده از u- استفاده کنین
مثلا در اینجا پروسس مربوط به کاربر geek
کد:
$ top -u geek Which user (blank for all): geek PID USER 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 به صورت پیش فرض اطلاعات cpu رو در ترکیب باهم به صورت زیر نشون میده
کد:
top - 20
اگه میخاین که اطلاعات رو به صورت کامل و به اضای هر هسته cpu ببینین در موقعی که top در حال اجرا هست عدد 1 رو بزنین
کد:
top - 20
خروجی دستور top به صورت پیشفرض هر 3 ثانیه بروز میشه که اگه میخاین این مدت رو مثلا به یک ثانیه تغییر بدین در موقعی که دستور top در حال اجرا هست دکمه d رو بزنین
کد:
Change delay from 3.0 to: 1 PID USER 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 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 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 اینه که هر بار top به روز میشه اطلاعات جدید زیر اطلاعات قبلی مینویسه
مثلا در زیر top بعد از 3 بار به روز شدن در حالت batch mode بسته میشه
کد:
root@debian:/# top -b -n 3 -u tia top - 13
روش بالا بیشتر برای ذخیره کردن خروجی دستور top در یک فایل متنی استفاده میشه با برای grep کردنش
در موقعی که top در حال اجرا هست اگه
l ((ال کوچک )) بزنین خط اول هدر مربوط به load average ناپدید میشه
t بزنین خط 2م و 3م هدر مربوط به Tasks: و Cpu(s) ناپدید میشه
m بزنین 2 خط اخر هدر مربوط به مموری ناپدید میشه
در حالتی که top در حال اجرا هست n رو بزنین بعد از شما تعداد پروسس رو میپرسه
کد:
Maximum tasks = 0, change to (0 is unlimited): 2 PID USER 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 ((کیو کوچک)) استفاده کنین
منبع: Can You Top This? 15 Practical Linux Top Command Examples
چند مثال دیگه تو منبع هست که نگفتم
نرم افزار دیگه ای هم هست که همین کار top رو انجام میده ولی یک مقدار فرق داره
اسم نرم افزار: htop
Htop - ویکیپدیا
|
|
This image has been resized. Click this bar to view the full image. The original image is sized 720x400. |
دستور history برای دیدن دستوراتی هست که شما قبلا در ترمینال نوشته اید
با زدن history به تنهایی لیست تمام دستوراتی که قبلا نوشته اید رو میاره
مثلا قسمتی از history سیستم من
کد:
root@debian:/# history 3 echo "4+10" | bc 4 echo "obase=15;5+9" | bc 5 sudo 6 halt 7 cd / 8 ls /etc 9 nano pam.conf 10 cd pam.conf 11 nano pam.conf 12 cd pam.d 13 cd pam.d 14 nano pam.d 15 nano /etc/pam.conf 16 cd /etc/pam.d 17 ls 18 man pam 19 PAM 20 man PAM 21 ls 22 nano su 23 ls 24 cp su /etc/pam.d/su.save 25 ls 26 nano su 27 login 28 ls 29 mkdir test 30 cd / 31 nano /etc/passwd 32 login 33 nano /etc/passwd 34 nano /etc/passwd 35 sudo 36 login 37 cd / 38 ls 39 nano /etc/passwd 40 login 41 ls 42 login 43 nano /etc/passwd 44 login 45 cd / 46 mkdir /home/khodam 47 login 48 cd / 49 groupadd 50 groupadd 51 gropadd limit 52 gruopadd limit 53 groupadd 54 groupadd limit 55 useradd -g {limit} khodam 56 useradd -g limit khodam 57 passwd khodam] 58 passwd khodam 59 usermod khodam 60 chage 61 chage khodam 62 usermod --help 63 ls 64 ls /home 65 login 66 nano /etc/security/limits.conf 67 nano /etc/security/limits.conf 68 cd /etc/sudoers 69 cd /etc/sudoers 70 cd /etc 71 ls 72 cd sudoers 73 cd sudoers 74 ls sudoers 75 nano sudoers 76 visudo 77 nano /etc/security/limits.conf 78 visudo 79 apt-get install squid 80 squid 81 nano /etc/squid.conf 82 cd /etc/squid 83 nano squid.conf 84 nano squid.conf 85 /etc/init.d/squid restart 86 cd / 87 nano /etc/squid/squid.conf 88 /etc/init.d/squid restart 89 nano /etc/squid/squid.conf 90 /etc/init.d/squid restart 91 /etc/init.d/squid restart 92 nano /etc/shels 93 ls /etc/shels 94 cd etc 95 ls 96 cd / 97 cd etc 98 ls 99 cd shells 100 nano shells 101 chsh 102 chsh khodam 103 nano shells 104 chsh khodam 105 nano shells 106 apt-get install lshel 107 apt-get install lshell 108 ch 109 cd security 110 ls 111 nano access.conf 112 visudo 113 visudo 114 visudo 115 visudo 116 cd / 117 upime 118 uptime 119 aptget install sudo debianutils coreutils 120 apt-get install debianutils coreutils 121 apt-get install coreutils 122 cd /usr/local/sbin 123 wget http://www.fuschlberger.net/programs...chroot_jail.sh 124 wget http://www.fuschlberger.net/programs...chroot_jail.sh125 chmod 700 126 chmod 700 make_chroot_jail.sh 127 nano make_chroot_jail.sh 128 useradd 129 useradd ansary 130 passwd ansary 131 cd /home 132 ls 133 ln s . home 134 ln s . home 135 ls 136 ln s . home 137 ls 138 mkidir gailed
برای جستو جو در history کلید ترکیبی Control+R بزنید بعد کلمهی کلیدی مورد نظر رو وارد کنین این جوری دستور قبلی که توش اون کلمه کلیدی بوده رو میاره وشما بازدن enter میتونین اونو اجرا کنین
مثلا در زیر با دادن کلمه کلیدی red دستور قبلی که توش کلمهی red بوده رو میاره ((cat /etc/redhat-release)))
کد:
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`red': cat /etc/redhat-release [Note: Press enter when you see your command, which will execute the command from the history] # cat /etc/redhat-release Fedora release 9 (Sulphur
اگه وقتی که کلمه کلیدی خودتونو دادین و دستور مورد نظرتون امد و خاستین توش تغییری ایجاد کنین قبل از اجرا قبل از اینکه enter رو بزنین کلید چب یا راستو از روی کیبوردتون بزنین ((left arrow or right arrow))
مثلا در زیر stop رو به start تغییر میدیم
کد:
# [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt] (reverse-i-search)`httpd': service httpd stop [Note: Press either left arrow or right arrow key when you see your command, which will display the command for you to edit, before executing it] # service httpd start
1-با زدن دکمه بالا ((up arrow)) دستور قبلی نشون داده میشه . برای اجرا enter را بزنین
2- بنویسین !! اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه
3-بنویسین !-1 اینجوری دستور قبلی بدون اینکه نشون داده بشه و احتیاج به زدن enter باشه خودش اجرا میشه ((اگر بنویسین 2-! 2 دستوری که قبل از دستور قبلی نوشتینو اجرا میکنه یعنی دستور قبل از 1-! اجرا میکنه ))
4- Control+P دستور قبلب رو نشون میده برای اجرا کردنش enter رو بزنین
اگه خروجی دستور history در بالا رو نگاه کنین میبینین که هر دستوری برای خودش یک شماره ای داره حالا اگر بخایم دستور شماره ی 517 رو اجرا کنیم دستور به این شکل میشه
کد:
517!
مثلا
کد:
501 cd / 502 history 503 history --help 504 ls -a 505 ls -a 506 ls -a 507 history |more 508 history 509 history 510 history 511 top 512 ls -l 513 top 514 ls-1 515 ls-1 516 history 517 last |grep ppp |grep still 518 sudo netstat -na 519 history 520 ls -a /var/log 521 nano /etc/pam.d 522 halt --help 523 history
کد:
root@debian:/# !517 last |grep ppp |grep still root@debian:/#
چون دستورش خروجی نداشت چیزی نشون نداد
مثلا در بالا میخایم دستور 518 رو اجرا کنیم ولی شمارشو نمیدو نیم ولی اولشو می دونیم دستورو اینجوری می زنیم ((علامت تعجب وبدون فاصله در ادامه علامت تعجب قسمتی از دستور مورد نظر ))
کد:
sudo netstat -na!
برای این کار فلدر bash_profile. که در دایرکتوری خانگیتون هست رو با یک ادیتور باز کنین و مقادیر رو مثل پایین تغییر بدین
کد:
# vi ~/.bash_profile HISTSIZE=100 HISTFILESIZE=100
برای این که history بعضی دستوراتو ذخیره نکنه فلدر bash_profile. باز کنین و این خطو اضافه کنین
کد:
HISTCONTROL=ignorespace
حالا دستوراتی که اولشون یک space داشته باشه ذخیره نمیشه
مثلا
کد:
# ls -ltr # pwd # service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history] # history | tail -3 67 ls -ltr 68 pwd 69 history | tail -3
کد:
history -c
دستور 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- استفاده کنین .
برای این کار از 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
روش برای شناسایی فایل سیستم
- 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 ببینیم.
استفاده از فرمان fsck کد:
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
توجه شود که در این روش باید 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
استفاده کنید.
دستور 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 0051 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
دستور alias برای کوتا ه کردن دستورات طولانی استفاده میشه که باعث افزایش سرعت کار شما در ترمینال می شود
شکل کلی دستور به شکل زیر هستش
کد:
$ alias name='unix command with options'
alias - دستوری که با اون دستور کوتاه شده یک دستورو میسازین
name - دستور جایگزین دستور بلند
unix command with options - دستور واقعی که براش می خواهین دستور جایگزین درست کنین
پیدا کردن 5 فایل بزرگ داخل دایرکتوری
کد:
alias findbig="find . -type f -exec ls -s {} \; | sort -n -r | head -5 "
برای پاک کردن تمام صفحهی نمایش و تاریخچهی ترمینال ((history))
کد:
alias hcl='history -c; clear'
برای وارد شدن ((رموت)) به یک سیستم با ssh
کد:
alias server_name='ssh root@192.168.1.1 -p7777 -c'
برای دیدن افراد انلاین pp*tp سرور ((روی سیستم شما شاید کار نکنه . دلیلش کار نکردنش اینه که رو سیستمتون pp*tp سرور ندارین ))
کد:
alias pppp='last |grep ppp|grep still'
*********************************************
برای دیدن تمام دستورات alias خود فقط لازم هست که خود دستور الیاس رو بزنین
برای دیدن دستور واقعی یک دستور الیا س اول دستور alias و سپس دستور خلاصه شده را بنویسید مثلا در زیر میخواهیم دستور اصلی دستور dus رو ببینیم :
کد:
$ alias dus alias dus='df -h'
برای پاک کردن یک دستور الیاس از unalias استفاده کنین
unalias dus
کد:
$ dus -bash: dus: command not found
برای پاک کردن تمام دستورات alias اینو بزنین
کد:
$ unalias -a $ alias
اگه یک موقعی با رستارت کردن کامپیوتر دستورات alias تون پاک می شد , برای این که پاک نشه دستورات alias خودتونو داخل فلدر
کد:
.bash_aliases
قرار بدین
ادرس فلدر :
کد:
/home/username/.bash_aliases
کرنل 32 یا 64 ::
استفاده از دستور uname -a برای فهمیدن 32 بیت یا 64 بیت بودن
اگه در خروجی دستورتون کلمه ی بود یعنی کرنل سیستم شما 64 بیت است
اگه در خروجی دستورتون یکی از کلمات بود یعنی کرنل شما 32 بیت است
دستور زیر یک نمونه کرنل 64 بیت رو نشون میده
کد:
$ uname -a Linux ora100 2.6.5-7.252-smp #1 SMP Tue Feb 14 11
cpu 32 یا 64 ::
استفاده از /proc/cpuinfo
این دستورو داخل ترمینال بزنین تا اطلاعات cpu شما رو نشون بده که از داخل اون اطلاعات 32 یا 64 بیت بودن cpuتونو می تونین بفهمین
کد:
less /proc/cpuinfo
این دستورو در ترمینال بزنین که اگر در خروجیش کلمه ی بود شما cpu 64 بیت دارین
کد:
$ grep flags /proc/cpuinfo
د
wget یک دانلود منیجر تحت ترمینال هستش که که اپشن های زیادی هم داره که به واسطه همونا در موقعیت های مختلف دانلود کردن میشه ازش استفاده کرد
برای پیدا کردن اطلاعات کاملی در مورد دانلود منیجر های لینوکسی به این ادرس برید
کد:
دانلود منیجرهای دنیای لینوکس
دانلود منیجرهای دنیای لینوکس | GNU/Linux Reviews
کد:
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
برای این کار لیست ادرس های خود را داخل یک فایل متنی ذخیره کنید و دستور 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.
برای ساختن 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 میتونین تنضیماتشو ببینین اکثرشم احتیاج به توضیح نداره
این دستور هم برای گذاشتن یک سری دیگه از محدودیت ها استفاده میشه
برای گذاشتن محدودیت های دیگه ای مثل تعداد پروسس با حد اکثر تعداد login ها و غیره میتونین از فلدر
استفاده کنین
برای دیدن کاربرای online هم میتونین از دستور
یا
کنین
برای ساختن 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 میتونین تنضیماتشو ببینین اکثرشم احتیاج به توضیح نداره
این دستور هم برای گذاشتن یک سری دیگه از محدودیت ها استفاده میشه
برای گذاشتن محدودیت های دیگه ای مثل تعداد پروسس با حد اکثر تعداد login ها و غیره میتونین از فلدر
استفاده کنین
برای دیدن کاربرای online هم میتونین از دستور
یا
کنین
دستور rsync برای بکاپ گیری در لینوکس استفاده میشه همچنین قابلیت synchronize دو فایل رو هم داره که این 2 فایل میتونن در یک کامپیوتر یا یکیشون در یک کامپیوتر رموت باشه
چند نکته خوب درمورد rsync
: به دلیل این که اول 2 تا فایلو باهم مقایسه میکنه بعد فقط قسمت های تغییر کرده رو بروز یا تغییراتی درشون اءمال میکنه
: چون rsync از ssh برای برقراری ارتباط استفاده میکنه از امنیت بالایی برخورداره
: چون از فشرده سازی به صورت block by block استفاده میکند همیشه پهنای باند مصرفی از مقدار فایل تبادل شده کمتر است
در اخر هم پیشنیاز خاصی برای نصبش نیاز نیست
:
کد:
apt-get update apt-get install rsync
کد:
$ rsync options source destination
کد:
$ 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
کد:
$ 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
کد:
$ 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
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/ : ادرس فایل های ارسالی از لوکال به سرور
کد:
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
تقریبا اطمینان دارم که همه میدونن zip چی هستش پس خیلی توضیح نمیدم
zip یک فرمت فشرده سازی هستش که با اون مبشه یک یا چند فایل و یا دایرکتوری را zip فشرده کرد که باعش کم شدن حجم میشود
فایلی که با zip فشرده بشود در اخر اسم ان کلمه zip قرار میگیرد که نشانه فرمت اون هست
اطلاعات بیشتر که zip چی هست : ZIP (file format) - Wikipedia, the free encyclopedia
بزای فشرده کردن یک فایل که اسم اون مشخص هستش دستور به شکل زیر میشود
کد:
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 اضافه کنین از 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$
برای از فشرده دراوردن فایل های 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
برای این کار از 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:~#
کد:
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.
کد:
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
کد:
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