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

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

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

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

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

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور blkid (پیدا کردن اطلاعاتی در مورد درایو ها )
« پاسخ #30 : 25 خرداد 1390، 09:43 ب‌ظ »



دستور blkid بارای پیدا کردن اطلاعاتی در مورد درایو ها از جمله اسم , نوع فایل سیستم , UUID , و ... استفاده میشود

شکل کلی دستور
blkid [ -hlv ] [ [ -c cachefile ] -w writecachefile ] [ -o format ] [ -s tag ] [ -t NAME=value ] [ device ... ]

برای این که ببینین چه درایو هایی روی سیستمتون وجود داره دستورو به تنهایی بزنین
دستورو به همراه sudo بزنین
root@172.16.49.20:/# blkid
/dev/sda1: UUID="eb51f2cf-636e-49a0-8ed5-31daee03f0f9" TYPE="ext3" LABEL="LILI"
/dev/sda5: UUID="ccc497b8-da19-4965-b96f-2c0d44332025" TYPE="swap"

همون طور که در بالا میبینین 2 درایو وجود دارد که ادرساشون :
/dev/sda1
/dev/sda5
هستش که sd اولشون نشان دهنده این هست که از نوع هارد های sata هستن
LABEL="LILI" : اسم درایو رو میگه
TYPE="ext3"  و TYPE="swap" نوع فرمت درایو رو میگه

اپشن o-

به وسیله ی این اپشن می تونین خروجی دستورو  بر اساس  فرمت های مختلف ببینین که به صورت پیش فرض full  هستش
value, device, list, udev or full))

list
root@172.16.49.20:/# blkid -o list
device                  fs_type    label       mount point                 UUID
----------------------------------------------------------------------------------------------------------------
/dev/sda1               ext3       LILI        /                           eb51f2cf-636e-49a0-8ed5-31daee03f0f9
/dev/sda5               swap                   <swap>                      ccc497b8-da19-4965-b96f-2c0d44332025

udev
root@172.16.49.20:/# blkid -o udev
ID_FS_UUID=eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ID_FS_UUID_ENC=eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ID_FS_TYPE=ext3
ID_FS_LABEL=LILI
ID_FS_LABEL_ENC=LILI
ID_FS_UUID=ccc497b8-da19-4965-b96f-2c0d44332025
ID_FS_UUID_ENC=ccc497b8-da19-4965-b96f-2c0d44332025
ID_FS_TYPE=swap


value
root@172.16.49.20:/# blkid -o value
eb51f2cf-636e-49a0-8ed5-31daee03f0f9
ext3
LILI
ccc497b8-da19-4965-b96f-2c0d44332025
swap

به وسیله ی دستور blkid میتونین lable یا UUID یک درایو رو به device name  تبدیل کنین
root@172.16.49.20:/# blkid -L LILI
/dev/sda1
root@172.16.49.20:/# blkid -U eb51f2cf-636e-49a0-8ed5-31daee03f0f9
/dev/sda1
root@172.16.49.20:/#

موضوعات مرتبط :
۵ روش برای شناسایی فایل سیستم
http://forum.ubuntu.ir/index.php/topic,17561.msg135707.html#msg135707


« آخرین ویرایش: 25 خرداد 1390، 09:51 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور mount
« پاسخ #31 : 29 خرداد 1390، 05:28 ب‌ظ »



دستور mount برای بالا اوردن یک درایو استفاده میشه که در فارسی هم همون موینت کردن میگن
هر درایوی که شما در سیستمتون داشته باشین یک device name بهش تعلق میگیره که در فولدر /dev/میتونین اونا رو پیدا کنین مثلا
dev/sda
/dev/sda5
برای بدست اوردن اطلاعاتب در مورد فایل سیستم درایوهاتون و پیدا کردن uuid , lable و device name به 2 اموزش زیر رجوع کنین
http://forum.ubuntu.ir/index.php/topic,17561.msg135707.html#msg135707
http://forum.ubuntu.ir/index.php/topic,17561.msg145022.html#msg145022

شکل کلی دستور
mount [-alrsvw] [-t fstype] [-o options] [device] [mountpoint]

mount کردن یک درایو به ساده ترین شکل
برای این کار احتیاج به device name اون درایو و یک محل برای مونت کردنش احتیاج داریم که به اون mount point میگن
پس شکل کلی به این شکل میشه
mount device-name mount-pointمثلا
alieblice@ubuntu:~$ sudo blkid
[sudo] password for alieblice:
/dev/sda1: UUID="246dcfec-7380-48d3-942b-a5ba4c2e8882" TYPE="ext4"
/dev/sda5: UUID="715fa349-8dd1-4104-bd70-9a31a6279749" TYPE="swap"
/dev/sdb: UUID="d1a62327-4227-439b-81f9-4ef82027957b" TYPE="ext4" LABEL="New Volume"
/dev/sdc1: UUID="5f1bb23f-3857-4e06-8bda-28e0cb6f61d3" TYPE="ext2"
/dev/sdc5: UUID="b4637559-61e4-41ff-ae1c-667632393686" SEC_TYPE="ext2" TYPE="ext3"
alieblice@ubuntu:~$ mount /dev/sdb /media/sdb
mount: only root can do that
alieblice@ubuntu:~$ sudo mount /dev/sdb /media/sdb
alieblice@ubuntu:~$

دستور blkid برای دیدن دایو های موجود روی سیستمتون استفاده میشه که قبلا کامل توضیح داده شده
همون طور که در بالا میبینین چندین تا دراییو وجود داره که ما درایو dev/sdb رو به /media/sdb موینت کردیم که /dev/sdb درواقع mount point مون بود
نکته : فلدر sdb باید از قبل در فولدر media موجود باشه در غیر این صورت ارور میده
mountکردنو میتونین بر اساس label و uuid هم انجام بدین که دستور به این صورت میشه
برای lable از L- استفاده کنین ((ال بزرگ))
label
alieblice@ubuntu:~$ sudo mount -L New Volume
mount: no such partition found
alieblice@ubuntu:~$ sudo mount -L "New Volume"
alieblice@ubuntu:~$
پیشنهاد میکنم همیشه اسم درایو رو بین "" قرار بدین تا به مشکل بر نخرین
در بالا mount point رو تعیین نکردم  به این دلیل که داخل فایل /etc/fstab تنظیماتی رو انجام دادم (( در اخر اموزش در مورد فایل fstab توضیح دادم ))

uuid
 alieblice@ubuntu:~$ sudo mount -U d1a62327-4227-439b-81f9-4ef82027957b  /media/sdb


توضیح بعضی اپشن ها
a-  : استفاده از a- باعث میشه که تمام درایو های لیست شده در فایل /etc/fstab موینت بشن ((دیگه لازم نیست دونه به دونه برای هرکدوم دستور موینت رو بنویسیم ))

r-  : استفاده از r- باعث میشه تا درایومون به صورت read-only ((فقط قابل خواندن)) موینت بشه
w-  : با استفاده از w- درایوتون به صورت read and write ((قابل خواندن و نوشتن)) موینت میشود
v-  : اطلاعات بیشتری رو از مراحل موینت شدن درایو به شما میدهد
t-  : با استفاده از t-  میتونین نوع فایل سیستم مورد نظرتونو انتخاب کنین ((ext4 ,ext3 , .....))
L- و U- که به ترتیب برای موینت کردن بر اساس اسم و uuid هستش که در بالا مثالش زده شد

o-
یک سری اپشن دیگر هستن که باید در ادامه o-  بیان که در زیر تعدادیشون توضیح داده شده

defaults  : با عث میشه تا تنظیمات پیش فرض برای موینت کردن اون درایو استفاده بشه که در درجه اول تنظیمات داخل فایل /etc/fstab رو میخونه و اگر تنظیماتی نبود سراغ تنظیمات  خودش میزه

auto   : با این اپشن میتونیم بگیم که در هنگام بوت شدن سیستم , این درایو هم موینت بشود یا در موقعی که از a- استفاده کردیم به عنوان اپشن , این درایو هم موینت بشود
 
noauto  : عکس کار auto رو انجام میده یعنی در موقع بوت شدن سیستم درایو رو موینت نکند و در موقع استفاده از اپشن a-  موینت نشود
 
user یا nouser   :   با استفاده از این 2 میتونیم به کاربران غیر روت اجازه دهیم که یک درایو رو بدون دست رسی به روت موینت کنن که معمولا همون کاربری که موینت کرده درایو رو میتونه unmount بکند  .

اپشن بالا بیشتر برای درایو هایی مثل usb  فلاپی و غیره  استفاده میشه
 
users   :  شبیه user با این تفاوت که هرکسی میتونه درایو رو unmount کند

remount  : بعضی اوقات پیش میاد که لازم میشه بدون این که یک درایوی unmount بشه تغییراتی روی اون درایو ایجاد کنیم مثلا تبدیلش کنیم به read-only  در این مواقع میتونیم از این اپشن استفاده کنیم

loop   : فرض کنیم که یک فایل ایمیج داریم که میخایم اونو جوری موینتش کنیم که انگار یک درایو از hard disk مون بوده میتونیم از این اپشن استفاده کنیم مثلا
mount -t vfat -o loop image.img /mnt/imageفایل image.img  جوری موینت میکنه که انگار یک درایو یا یک هارد بوده

ro  :همون فقط قابل خوندن هستش
rw  :همون قابل خوندن و نوشتن هستش

چند مثال از اپشن های بالا

alieblice@ubuntu:~$ sudo blkid
/dev/sda1: UUID="246dcfec-7380-48d3-942b-a5ba4c2e8882" TYPE="ext4"
/dev/sda5: UUID="715fa349-8dd1-4104-bd70-9a31a6279749" TYPE="swap"
/dev/sdb: LABEL="New Volume" UUID="d1a62327-4227-439b-81f9-4ef82027957b" TYPE="ext4"
/dev/sdc1: UUID="5f1bb23f-3857-4e06-8bda-28e0cb6f61d3" TYPE="ext2" LABEL="LILI"
/dev/sdc5: UUID="b4637559-61e4-41ff-ae1c-667632393686" SEC_TYPE="ext2" TYPE="ext3"
alieblice@ubuntu:~$

مثال :
در زیر یک درایو با فرمت ext2 و به همراه اپشن فقط قابل خواندن (r-) و همچنین توانایی unmount کردن درایو به وسیله ی هرکاربری(users) که اسم درایو   LILI  است رو به mount point  به این ادرس /media/LILI موینت میکنیم
alieblice@ubuntu:~$ sudo mount -v -r -t ext2 -o users -L LILI /media/LILI
/dev/sdc1 on /media/LILI type ext2 (ro,noexec,nosuid,nodev)
alieblice@ubuntu:~$

در مثال زیر همون درایو بالا رو بدون این که unmount کنیم  از اپشن فقط قابل خواندن به قابل خواندن و نوشتن و همچنین قابلیت unmount کردنشو به وسیلهی هر کاربری میگیرم
alieblice@ubuntu:~$ sudo mount -v -o remount -w -U 5f1bb23f-3857-4e06-8bda-28e0cb6f61d3
/dev/sdc1 on /media/LILI type ext2 (rw,noexec,nosuid,nodev)
alieblice@ubuntu:~$

نکته ک برای 2 مثال بالا حتما نکته اخر اموزش رو هم بخونین

فایل /etc/fstab

فایل /etc/fstab از 6 قسمت تشکیل شده که شامل موارد زیر هستش
#device      mount point  filesystem options      dump fsck
dump : یک نرم افزار backup گیر هستش که ازش استفاده میکنین میتونین مقدار رو به عدد یک تغییر بدین تا از درایوتون پشتیبان تهیه کند
pass  یا fsck : لینوکس در زمان بوت شدن از نرمافزار fsck  برای چک کردن فایل سیستم ها استفاده میکنه که اگه مقدارشو به عدد 1 تغییر بدین در هر بار بالا امدن فایل سیستم برای اون درایو  رو چک میکنه

در واقع شما میتونین همون اپشن هایی که در دستور mount مینوشتین رو در این فایل بنویسین تا هر بار نخواد دستورو از نو بنویسین و هم چنین ایجاد اپشن هایی مثل مونت شدن اتوماتیک در موقع بوت سیستم
مثال :
در زیر یک درایو با فرمت ext2 و به همراه اپشن فقط قابل خواندن (r-) و همچنین توانایی unmount کردن درایو به وسیله ی هرکاربری(users) که ادرس درایو   /dev/sdc1  است رو به mount point  به این ادرس /media/LILI و قابلیت موینت شدن خودکار در زمان بوت و قابلیت موینت کردن به وسیله ی کاربران عادی رو داخل فایل fstab مینویسیم

# <file system> <mount point>   <type>  <options>            <dump>  <pass>
/dev/sdc1       /media/LILI     ext2     ro,users,user,auto   0        0

نکته : در قسمت device میتونیم از lable و یا uuid هم استفاده کنیم که در مثال زیر نوع چگونگی نوشتنش رو میتونین ببینین

نمونه یک فایل fstab پیشرفته
#device      mount point  filesystem options      dump fsck

/dev/sda1    /            ext3       defaults        1 1

UUID=3631a288-673e-40f5-9e96-6539fec468e9

             /usr         reiserfs   defaults        0 0

LABEL=/home  /home        reiserfs   defaults        0 0

/dev/sdb5    /windows     vfat       uid=500,umask=0 0 0

/dev/cdrom   /media/cdrom iso9660    users,noauto    0 0

/dev/sdb1    /media/usb   auto       users,noauto    0 0

server:/home /other/home  nfs        users,exec      0 0

//winsrv/shr /other/win   cifs       users,credentials=/etc/creds 0 0

/dev/sda4    swap         swap       defaults        0 0


نکته مهم :

بعضی اوقات در دستوراتی که استفاده میکنیم از اپشنایی مثل : قابلیت موینت شدن به وسیله ی هر کاربری
یا قابلیت unmount شدن به وسیله ی هر کاربری و ... استفاده میکنیم مثل دستور زیر
sudo mount -v -r -t ext2 -o users -L LILI /media/LILIخوب حالا اگه الان به عنوان یک کاربر معمولی بیاین وبخاین که اونو unmount کنین , نمیتونین اونو unmount کنین و این اررورو میده
alieblice@ubuntu:~$ umount /dev/sdc1
umount: /dev/sdc1 is not in the fstab (and you are not root)
alieblice@ubuntu:~$
برای حل این مشکل حتما باید از فایل fstab استفاده کنین و اپشناتونو در اون بزارین

منبع :  lpic_2_linux_professional_institute_certification_
« آخرین ویرایش: 30 خرداد 1390، 02:56 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور wall
« پاسخ #32 : 01 تیر 1390، 05:58 ب‌ظ »

دستور wall برای فرستادن متن به تمام کاربران وارد شده به سیستم استفاده میشود

برای استفاده از wall اول خود دستور رو بنویسید بعد یک صفه باز میشه میتونین متنتونو در اون بنویسین بعد که متنتونو نوشتین Ctrl+d  رو بزنین تا متن برای همه ارسال شود
مثلا

root@de-10:/home/alieblice# wall
abdarchi chaii biar
                                                                              
Broadcast Message from alieblice@de-10.04                                      
        (/dev/pts/0) at 17:35 ...                                              
                                                                              
barname kary emrooz:
8 AM -2:30 PM  zange tafrihhhh
                                                               ^D                
root@de-10:/home/alieblice#

میتونین یک متن از پیش اماده شده رو از داخل یک فایل بفرستین که لازمه فقط ادرس فایلو بدین
root@de-10:/home/alieblice# wall Desktop/broadcast
                                                                              
Broadcast Message from alieblice@de-10.04                                      
        (/dev/pts/0) at 17:37 ...                                              
                                                                              
ta 10 daghigheie dige hame dar salon egtemaat game sheed      ((genab raees))
^D                      
root@de-10:/home/alieblice#      


برای این که نخواد Crtl+d بزنین میتونین از روش های زیر استفاده کنین
استفاده از echo
root@de-10:/# echo Remember to brush your teeth! | wall
                                                                              
Broadcast Message from root@de-10.04                                          
        (/dev/pts/0) at 17:46 ...                                              
                                                                              
Remember to brush your teeth!                                                  
                                                                              
root@de-10:/#


استفاده از >>>
root@de-10:/# wall <<<'Remember to brush your teeth!'
                                                                              
Broadcast Message from root@de-10.04                                          
        (/dev/pts/0) at 17:50 ...                                              
                                                                              
Remember to brush your teeth!                                                  
                                                                              
root@de-10:/#



نکته : اگه کاربرانی ورود هر نوع مسیجی رو بسته باشن به وسیلهی دستور mesg فقط کاربر روت میتونه به اون افراد متنی رو ارسال کند



منبع : http://en.wikipedia.org/wiki/Wall_%28Unix%29
« آخرین ویرایش: 18 امرداد 1390، 09:56 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور fdisk
« پاسخ #33 : 06 تیر 1390، 05:51 ب‌ظ »


دستور fdisk برای پارتیشن بندی یک هارد استفاده میشود
نکته : دستور fdisk کار فرمت کردنو انجام نمیده فقط پارتیشن رو میسازه

در قالب بیسیک کلا سه نوع پارتیشن داریم
primary , extended , logical

حداکثر تعداد پارتیشن ها
primary : چهار
extended : یک
logical : درون پارتیشن extended تا 26 عدد
عدد 26 رو مطمءن نیستم بعضی جاها به عنوان نا محدود نام بردن

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

fdisk -l
alieblice@de-10:~$ sudo fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe51ba496

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           2      119618   960823522    f  W95 Ext'd (LBA)
/dev/sda2          119619      121552    15526912   83  Linux
/dev/sda3          121552      121602      402432   82  Linux swap / Solaris
/dev/sda5               2      119618   960823521    7  HPFS/NTFS

Disk /dev/sdb: 320.1 GB, 320072933376 bytes
249 heads, 33 sectors/track, 76079 cylinders
Units = cylinders of 8217 * 512 = 4207104 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x41894189

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       12462    51197952    7  HPFS/NTFS
/dev/sdb2           12462       76077   261361485    f  W95 Ext'd (LBA)
/dev/sdb5           12462       76077   261359616    7  HPFS/NTFS

Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x465668a5

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      117794   946176000    7  HPFS/NTFS
/dev/sdc2   *      117794      121601    30582784    7  HPFS/NTFS
alieblice@de-10:~$

یا تو یک سیستم خلوت تر
alieblice@ubuntu:/$ sudo fdisk -l

Disk /dev/sda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0003f696

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         493     3952640   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             493         523      238593    5  Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5             493         523      238592   82  Linux swap / Solaris

Disk /dev/sdb: 213 MB, 213909504 bytes
64 heads, 32 sectors/track, 204 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          30       30704   83  Linux
/dev/sdc2              31          70       40960   83  Linux
/dev/sdc3              71         102       32768   83  Linux
alieblice@ubuntu:/$

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

alieblice@ubuntu:~$ sudo fdisk -l /dev/sdc

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          30       30704   83  Linux
/dev/sdc2              31          70       40960   83  Linux
/dev/sdc3              71         102       32768   83  Linux
alieblice@ubuntu:~$


blkid
alieblice@de-10:~$ sudo blkid
/dev/sda2: UUID="b69e95f0-bcf7-409e-a898-f9e70d78d0f4" TYPE="ext4"
/dev/sda3: UUID="69bc2dec-ef4f-487b-bf50-5e7c273596a9" TYPE="swap"
/dev/sda5: LABEL="1-TB" UUID="FA402FC0402F828D" TYPE="ntfs"
/dev/sdb1: UUID="D410B13310B11E04" TYPE="ntfs"
/dev/sdb5: UUID="70E8BF68E8BF2B6C" TYPE="ntfs"
/dev/sdc1: LABEL="1-TB-2" UUID="9AA05A1BA059FE67" TYPE="ntfs"
/dev/sdc2: UUID="D6308EFC308EE2BB" TYPE="ntfs"
alieblice@de-10:~$

اموزش blkid  قبلا کامل گفته شده
http://forum.ubuntu.ir/index.php/topic,17561.msg145022.html#msg145022


دستور fdisk دو گروه اپشن داره یک گروه اپشن هایی که به طور معمولی استفاده میشه ویک گروه اپشن هایی که خودش به این اسم نام برده :
extra functionality (experts only)
من در اینجا فقط یک سری از اپشن های سری معمولی رو اموزش میدم

d = برای پاک کردن پارتیشن استفاده میشه
l =  هر پارتیشنی برای خودش کدی داره که میتونین با این اپشن کد هارو ببینین در حالت عادی احتیاجی به این کدها پیدا نمیکنین مگر اینکه بخاین پارتیشنایی مثل lvm بسازین
n = برای ساختن یک پارتیشن استفاده میشود
p = پارتیشنایی که هم اکنون روی هاردتون وجود داره رو نشون میدهد
q = خروج بدون ذخیره کردن چیزی
t = برای تغییر کد پارتیشن استفاده میشود
u = برای تغییر واحد ها بین sectors و cylinders  استفاده میشود
w = ذخیره اطلاعات و خروج


چند مثال
نکته: من در اینجا از درایوهایی که توسط vmware player ایجاد شدن استفاده میکنم که حجمشونم خیلی کم هستش زیر (( مگابایت 300)) برای سریع کردن کار

مثال 1



در مثال شماره یک فقط 2 درایو از 3 درایو  روی هاردمونو پاک میکنیم
روش کار :
1 = هارد مورد نظرتونو توسط دستورایی که بالا نام بردم پیدا کنین
2 = دستور fdisk رو به همراه ادرس اون بنویسید
alieblice@de-10:~$ sudo fdisk /dev/sdc نکته : وقتی دستور fdisk رو میزنین وارد یک محیط دیگه میشید که فقط اپشن هایی که بالا نام بردم و اپشنای دیگری که با زدن m میتونین ببینین   رو میتونین استفاده کنین
alieblice@de-10:~$ sudo fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): q

alieblice@de-10:~$

3 = بعد از این که وارد محیط شدین اگه m رو بزنین اپشن های قابل قبول رو براتون میاره اگه p روبزنین پارتیشن های موجود روی اون هاردرو میاره

alieblice@ubuntu:~$ sudo fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          30       30704   83  Linux
/dev/sdc2              31          70       40960   83  Linux
/dev/sdc4              71         102       32768   83  Linux

Command (m for help):

همون طور که میبینین در بالا 3 درایو درون هارد وجود دارد

 4 = باری پاک کردن یک درایو باید d رو بزنین که بعد از زدن d از شما شماره درایو رو میپرسه که باتوجه به اطلاعاتی که در خروجی اپشن p گرفتین میتونین درایو درست رو بدین
به این صورت که   اگه مثلا میخاین dev/sdc2 رو پاک کنین عدد 2 رو بدین و با این کار پارتیشن dev/sdc2 پاک میشود
نکته : هنوز پارتیشنتون به صورت واقعی پاک نشده اگه اشتباه زدین عدد رو میتونین با زدن q ((کیو کوچک)) هیچ چیزی رو ذخیره نکنین و خارج شید
4-1 = کار بالا دو باره انجام بدین تا درایو بعدی رو هم پاک کنین
4-2 = حالا p رو بننین تا ببینین که پاک شده
5 = حرف w ((دبلیو کوچک)) رو بزنین و همه چیز ذخیره میشود

خروجی کامل مثال یک :
alieblice@ubuntu:~$ sudo fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004bbdd

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          30       30704   83  Linux
/dev/sdc2              31          70       40960   83  Linux
/dev/sdc4              71         102       32768    5  Extended

Command (m for help): d
Partition number (1-5): 2

Command (m for help): d
Partition number (1-5): 4

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
alieblice@ubuntu:~$

عکس بعد از پاک کردن پارتیشن ها




مثال 2
در مثال دوم از همون درایو قبلی به همراه همون پارتیشن بندی که در پایان ایجاد شد ((عکس پایانی مثال اول --عکس بالا )) استفاده میکنیم به این صورت
که میخاهیم یک درایو از نوع extende بسازیم و درون اون دو درایو از نوه logical
تو این مثال مراحلو به صورت جزع جزع توضیح نمیدم دیگه به غیر از چند قسمتش
1 = دستور fdisk رو به همراه ادرس هاردمون میزنیم
سپس p رو میزنیم که درایو های موجود روی هاردو نشون بدهد
سپس n رو میزنیم تا درایو جدید ایجاد کنیم
2 = بعد از این که n رو زدیم از ما سوال میپرسه که چه نوع درایوی میخاین اضافه کنین ((extended یا primary ))
از جایی که قراره یک extended بسازیم خوب من e رو انتخاب میکنم   
p = primary
e = extended
نکته : در اینجا گذینه logical رو نیاورد به این دلیل که پارتیشن logical داخل پارتیشن extende ساخته میشه
3 = بعد از این که نوع پارتیشن رو تعیین کردین از شما یک شماره میخاد که اون میشه شماره درایوتون من 2 رو میدم

alieblice@ubuntu:~$ sudo fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          20       20464   83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21):

4 = بعد از  مرحله بالا میرسیم به مرحله تعیین حجم درایو
به صورت پیش فرض حجم درایو رو به صورت cylinder  میاره که به شما میگه میتونید از یک عدد مشخص تا عدد مشخص دیگری انتخاب کنین در این مثال عدد بین ((21  تا 102 )) هستش. از جایی که خیلی کم پیش میاد کسی بخاد بر اساس cylinder پارتیشن بندی کنه من اینجا بر اساس مگابایت یاد میدم
4-1  = چگونه بر اثاث مگابایت پارتیشن یندی کنیم 

همون طور که در خروجی مرحله 1 تا 3 میبینین عدد انتخابی ما بین 21 تا 102 هستش برای شروع بر اثاث مگابایت عدد 21 رو بزنین وقتی عدد 21 رو زدین از شما یک عدد دیگر میخاد که در این قسمت میتونین عدد رو به صورت مگابایت کیلوبایت و گیگابایت بدین
+size{K,M,G}
همیشه از اون عددی که میدین یک مقدار بزرگ ترشو میسازه دلیلشو نتونستم پیدا کنم  مثلا برای 170 مگابایت 179 مگابایت ساخت و برای 80 مگابایت حدود 85 تا
اگه دلیلشو پیدا کردین به منم بگین
مثلا برای این که 2350 مگابایت بشه سایز درایوتون عدد رو به این شکل بدین
+2350Mبه طور مشابه برای کیلوبلیت و گیگا بایت مثلا 10 گیگ --- 1000000کیلو بایت
+10G
+100000K
در زیر 80 مگابایت تعیین کردم
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-102, default 102): +80M

Command (m for help):

5 = تا این جا دو درایو  داریم یکی از قبل با نوع primary و یکی هم که الان ساختیم با نوع extended
حالا 2 درایو داخل پارتیشن extended رو میسازیم که از نوع logical میشن   
6 = مثل مرحله قبل n رو میزنیم بعد نوع درایو که در اینجا میشه l ((ال کوچیک )) رو میزنیم  و بعد مثل مرحله قبل حجمشو میدیم
نکته : در اینجا گذینه extended نیامد چون یکی ازش میشه ساخت
7 = دوباره همون کار مرحله 6 رو انجام میدیم تا دومی رو هم اضافه کنیم
و بارای ذخیره کردن w رو میزنیم
و همه چی ذخیره میشه

خروجی کامل مثال دوم

alieblice@ubuntu:~$ sudo fdisk /dev/sdc

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          20       20464   83  Linux

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (21-102, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-102, default 102): +80M

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          20       20464   83  Linux
/dev/sdc2              21         101       82944    5  Extended

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (21-101, default 21): 21
Last cylinder, +cylinders or +size{K,M,G} (21-101, default 101): +50M

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          20       20464   83  Linux
/dev/sdc2              21         101       82944    5  Extended
/dev/sdc5              21          71       52208   83  Linux

Command (m for help): n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (72-101, default 72): 72
Last cylinder, +cylinders or +size{K,M,G} (72-101, default 101): 101

Command (m for help): p

Disk /dev/sdc: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0009b8f2

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1          20       20464   83  Linux
/dev/sdc2              21         101       82944    5  Extended
/dev/sdc5              21          71       52208   83  Linux
/dev/sdc6              72         101       30704   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
alieblice@ubuntu:~$

عکس نهایی مثال 2دوم


منبع :
http://www.thegeekstuff.com/2010/09/linux-fdisk/
http://www.cyberciti.biz/faq/linux-how-to-delete-a-partition-with-fdisk-command/
http://www.cyberciti.biz/faq/linux-viewing-drive-partitions-with-fdisk-parted/
« آخرین ویرایش: 07 تیر 1390، 01:24 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور chmod
« پاسخ #34 : 13 تیر 1390، 08:11 ب‌ظ »



دسترسی به هر فایل یا دایرکتوری توسط ۹بیت اطلاعات اضافه‌ای که به فایل یا دایرکتوری چسبانده می‌شود برای ۳ کلاس ۳ بیتی کاربر, گروه کاربر و سایر کاربران , تعیین می‌شود که به ترتیب با کدهای u(کاربر) , g(گروه) و o(سایرین) مشخص می‌شوند. 0 یا 1 بودن بیت اول تعیین کننده دسترسی خواندن (Read)برای صاحب فایل ( کاربر), بیت دوم امکان نوشتن (Write) و ایجاد تغییر در فایل یا دایرکتوری مورد نظر و بالاخره بیت سوم امکان اجرای(eXecute) فایل‌های اجرایی را مشخص می‌کند. سه بیت دوم این دسترسی‌ها را برای کلاس گروه کاربر و سه بیت آخر دسترسی‌ها را برای سایر کاربران مشخص می‌کند. در صورتی که یک مجوز به کاربری داده نشده باشد به جای مجوز مورد نظر(یکی از حروف R,W یاX ) هنگام نمایش مجوزها، علامت دش (-) دیده می‌شود. آنچه در زیر دیده می‌شود مجوز دسترسی کامل به یک فایل است. یعنی همه کاربران امکان خواندن، نوشتن و اجرای فایل را دارند :

rwxrwxrwx

یا در حالتی که صاحب فایل دسترسی کامل، گروهش امکان خواندن و اجرا و سایرین هیچگونه دسترسی به فایل مورد نظر نداشته باشند این مجوزها به صورت زیر خواهد بود:
rwxr-x---

نمونه‌ای از این مجوزها را می‌توانید با اجرای فرمان ls -l مشاهده نمایید. توجه کنید که علاوه بر ۹بیت ذکر شده، یک کاراکتر اضافه نیز در ابتدای این رشته وجود دارد که تعیین کننده نوع فایل است که برای فایل‌های عادی بصورت دش (-) و برای دایرکتوری ها بصورت d دیده می‌شود:
drwxr-xr-x
-rwxr-xr-x
نکته:

مجوز پیش فرض برای فایل‌های جدید بصورت زیر است:

rw-r- - r--

و در صورتی که فایلی توسط یکی از کامپایلرهای موجود اجرایی شده باشد x (یا امکان اجرا کردن) به دسترسی‌ها اضافه می‌گردد. مجوز پیش فرض دسترسی به یک دایرکتوری جدید نیز مشابه همین حالت است:

rwxr-xr-x

در صورتی که بخواهید مجوزهای پیش فرض را برای نشست جاری خود تغییر دهید می‌توانید از دستور umask استفاده کنید.

برای تغییر مجوزهای یک فایل یا دایرکتوری کاربری که این اختیار را دارد (کاربر ریشه یا صاحب فایل یا دایرکتوری) می‌تواند با دستور chmod این کار رابوسیله یکی از دو روش زیر انجام دهد.

-در روش نخست پس از دستور chmod می‌توان با علامت های "+" یا "–" یک یا چند مجوز را به کلاس ها افزود و یا از آنها گرفت. در این حالت کلاس ها با کدهایی که در بالا ذکر شد تعیین می شوند.مثلا:

#chmod go-rx anything

این دستور تعیین می کند که مجوز خواندن و اجرای فایلی به نام anything از کلاس گروه کاربر(u) و سایرین(o) گرفته شود و برعکس آن به صورت زیر است:

#chmod go+rx anything

-در روش دوم مجموع سه سطح دسترسی(خواندن,نوشتن و اجرا) به صورت یک عدد بین صفر تا هفت برای 3 کلاس کاربر, گروهش و سایرین به صورت زیر تعیین می شود و پس از دستور chmod می آید. برای خواندن عدد چهار, برای نوشتن عدد دو و برای اجرا عدد یک منظور می شود. یعنی هفت(1+2+4) نشان دهنده دسترسی کامل است در نتیجه مثلا 777 نشان دهنده اعطای دسترسی کامل به همه کاربران است.مثلا:

#chmod 750 anything

این دستور نیز تعیین می کند که مجوزها بصورت زیر تغییر کنند:

rwxr-x---
منبع :
http://sat4u.org/showthread.php?t=237441&page=5

آفلاین Aref.Ariyapour

  • Full Member
  • *
  • ارسال: 203
  • جنسیت : پسر
سلام دوستان عزیز.
امروز یه سرچ کردم در مورد اینکه سایز یه دایرکتوری رو چطور تو ترمینال ببینیم، که به دو دستور du و df رسیدم و دیدم که جالبه و گفتم با دوستان هم share کنم.
دستور du
برای به دست آوردن سایز یه دایرکتوری
du
این دستور همه دایرکتوری های داخل دایرکتوری جاری رو سایزشون رو بهتون میگه. خط آخر هم سایز دایرکتوری جاری رو میگه. توجه بشه که سایز ها در حالت عادی به صورت Kb نشان داده میشوند.
du /home/david
این فرمان size دایرکتوری /home/david رو میده
du -h
این فرمان یه خروجی قابل فهم تری رو نشون میده. در این حالت اگر فایل‌ها به کیلوبایت باشه با K، اگه به مگابایت باشه با M و …
du -ah
این دستور نه تنها دایرکتوری ها بلکه تمام فایل‌های داخل دایرکتوری جاری رو نشون میده
du -c
اندازه دایرکتوری جاری را به شکل زیر نشان میدهد:
30M.
30M total
من خودم درست متوجه نشدم که این دقیقاً به چه دردی میخوره اما این Total
میتونه جایی که میخوایم با دستور grep فقط اندازه نهایی دایرکتوری جاری رو پیدا کنیم مفید باشه.

du -ch | grep total
این دستور فقط خط آخر را در خروجی خواهد داشت که اندازه دایرکتوری جاری را نشان میدهد.
du -s
بهترین راه و ساده‌ترین راه برای فهمیدن اندازه دایرکتوری جاری.(بسیار خلاصه و فقط اندازه دایرکتوری جاری رو نشون میده)که البته بهتره که یه h هم بهش اضافه کنید تا خوانا تر بشه.
du –exculde=mp3
خوب این دستور میاد اندازه دایرکتوری جاری و زیر دایرکتوری ها رو اعلام میکنه، به جز اون فایل‌هایی رو که تو نامشون mp3 وجود داره. بنابر این اگه فایل‌های Mp3 در دایرکتوری جاری داشته باشیم، اندازه اونا اعلام نمیشه.
دستور df
برای به دست آوردن مقدار فضای خالی دیسک/اندازه استفاده شده

df
با زدن این دستور خروجی نمایش داده شده شامل ۶ ستون است که کاملاً قابل فهم هستند. توجه شود که اندازه ها بر اساس کیلوبایت هستند
df -h
همونطور که قبلاً هم گفته شد، option -h برای قابل فهم تر شدن خروجی به کار میره
اکثر کاربر ها از option دیگه ای چندان استفاده نمیکنن. بنابر این df رو در همین حد توضیح میدیم.

منبع:
http://www.codecoffee.com/tipsforlinux/articles/22.html
راستی دوستان من متوجه شدم که دوست عزیزمون alieblice تو صفحه اول هم در مورد du خیلی کامل صحبت کرده بودن. اینم لینکش:
http://forum.ubuntu.ir/index.php/topic,17561.msg134346.html#msg134346
« آخرین ویرایش: 18 تیر 1390، 12:20 ق‌ظ توسط Aref.Ariyapour »
That's me in the corner
That's me in the spotlight, I'm
Losing my religion

آفلاین shahramlp

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
سلام.شاید بهتر باشه به جای دستور یه کتاب معرفی کنم.یه کتاب هست به اسم خط فرمان لینوکس نوشته ی : scott granneman - ترجمه ی : محمد صادق سرشوق - انتشارات : دانشگاه آزاد اسلامی شهر مجلسی.ازاین سایت هم میتونین بخرینش : www.fardab.com

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور at
« پاسخ #37 : 19 تیر 1390، 05:02 ب‌ظ »



دستور at برای زمان بندی کارها , مثلا اجرا شدن یک دستور در زمان خاصی یا اجرا شدن یک اسکریپت در زمان خاصی استفاده میشود
دستور مشابه دیگه ای مثل دستور at هستش که اسمش cron هستش
اموزش cron  :
http://wiki.ubuntu.ir/CronHowto?highlight=%28cron%29
یکی از فرق های مهم cron و at در این هست که cron قابلیت تکرار شدن رو داره (( مثلا هر روز در زمان خاصی کار خاصی انجام بشه)) اما at کاری که بهش دادیم رو یک بار انجام میدهد


شکل کلی دستور
at [-V] [-q queue] [-f file] [-mldv] timespec...
at [-V] [-q queue] [-f file] [-mkdv] [-t time]

یا به شکل ساده تر
at time date

تعیین زمان در at

تنها قسمت مهم دستور at تعیین زمان اجرا شدن دستور هستش
در دستور at وقتی که دستور به همراه زمان معیین شده زدین یک صفه باز میشه که به صورت زیر هستش در اون صفه میتونین دستور مورد نظر خودتونو بنویسین و سپس کلید ترکیبی  Ctrl+D رو بزنین تا  اجرا بشه

alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
at> ls > ~/Desktop/ls.txt
at>  حالا کنترل= دی رو بزنین  <EOT>
job 73 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$


جزع به جزع دستور بالا در پایین تر توضیح داده شده

معنی کلمات در تعیین زمان

 اگه فرض کنیم ساعت وتاریخ  هم اکنون  
10:00 AM Tuesday, September 18, 2001باشد ,, هر کدوم از زمان یندی های زیر معنیشونو جلوشون نوشته

at noon = 12:00 PM September 18, 2001
at midnight = 12:00 AM September 19, 2001
at teatime = 4:00 PM September 18, 2001
at tomorrow = 10:00 AM September 19, 2001
at noon tomorrow = 12:00 PM September 19, 2001
at next week = 10:00 AM September 25, 2001

همون طور که در بالا میبینین بعضی کلمات معنی خاصی دارن مثلا noon  یعنی ساعت 12:00 pm  و کلمات به صورت ترکیبی هم میتونن استفاده بشن مثلا
at noon tomorrowیعنی فردا ((روز بعد از امروز )) ساعت 12:00 pm

at next weekاگه امروز سه شنبه ساعت 10 صبح باشه دستور بالا میگه هفته ی دیگهسه شنبه ساعت 10 صبح کار انجام بشه


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

برای هر روز از هفته یک کلمه داریم که میتونین تمام حروفشون رو به صورت بزرگ یا کوچک  بنویسین فرقی نداره   البته اسم کوچکش هم با حروف کوچک یا بزرگ میتونین بنویسین فرقی نداره  
day_of_week     : SUN | MON | TUE | WED | THU | FRI | SAT
از چپ به راست به ترتیب بالا  یعنی
Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday |  
چند مثال :
at next monday  = 10:00 AM September 24, 2001 اگه الان ساعت 10 صبح باشه یک شنبه بعدی همین ساعت دستور اجرا میشه

at 04:46 am friروز جمعه ساعت 4:46 دقیقه صبح کارو انجام میده



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

month_name      : JAN | FEB | MAR | APR | MAY | JUN
                | JUL | AUG | SEP | OCT | NOV | DEC


چند مثال
at 2:30 PM Sept 21ساعت 2:5 ظهر در تاریخ 21 سپتامر

at noon jul 24

چند مثال اضافه از تمام قسمتایی که تا الان گفتیم
اگه فرض کنیم هم اکنون ساعت و تاریخ
10:00 AM Tuesday, September 18, 2001
at 9:00 AM = 9:00 AM September 19, 2001
at 2:30 PM = 2:30 PM September 18, 2001
at 1430 = 2:30 PM September 18, 2001    
at 2:30 PM tomorrow = 2:30 PM September 19, 2001
at 2:30 PM next month = 2:30 PM October 18, 2001
at 2:30 PM Fri  = 2:30 PM September 21, 2001
at 2:30 PM Sept 21  = 2:30 PM September 21, 2001
at 2:30 PM 9/21/2010 = 2:30 PM September 21, 2010
at   5   pm   Friday = خودتون حدث بزنین

نکته : بعد از next مقادیری که  بر اثاث واحد های زیر باشه  میتونه بیاد
   * minute[s]
    * hour[s]
    * day[s]
    * week[s]
    * month[s]
    * year[s]

نکته :
در
at 1430 = 2:30 PM September 18, 2001     از am و pm   نمیتونین استفاده کنین باید زمان رو به صورت 24 ساعته بزنین یعنی مثلا به جای 2 ظهر بزنین 14



     زمان معکوس  ((Countdown))

شاید بخاین کاری رو در مثلا 5 دقیقه اینده انجام بدین یا مثلا در فردا پنج دقیقه بعد از ساعت 12 ظهر خوب این 5 دقیقه ها رو باید به صورت زیر بنویسین
نکته : مقادیری که بعد از بعلاوه می ایند بر اثاث  یکی از این واحد های زیر میتونه باشه
    * minute[s]
    * hour[s]
    * day[s]
    * week[s]
    * month[s]
    * year[s]

مثلا برای این که کاری رو در 25 دقیقه اینده از هم اکنون انجام بدین دستورو این جوری بنویسین
at now +15 minبه جای min میتونین minutes یا minute هم بزارین


برای این که کاری رو فردا  3 ساعت بعد از ساعت 12  انجام بدین دستورو این شکلی بنویسین
at noon tomorrow +3 hours
یا
at 12:00 pm tomorrow +3 hours


جند مثال از این قسمت
اگه فرض کنیم زمان و تاریخ هم اکنون
10:00 AM Tuesday, September 18, 2001
معنی هر مثال جلوش نوشته شده
at now + 30 minutes = 10:30 AM September 18, 2001
at now + 1 hour = 11:00 AM September 18, 2001
at now + 2 days = 10:00 AM September 20, 2001
at 4 PM + 2 days = 4:00 PM September 20, 2001
at now + 3 weeks = 10:00 AM October 9, 2001
at now + 4 months = 10:00 AM January 18, 2002
at now + 5 years = 10:00 AM September 18, 2007


چند مثال واقعی به همراه کار

روش کار به این صورت هستش که شما اول دستور at رو به همراه زمان اجرا شدنش مینویسین و سپس برای شما یک صفه باز میشه که در اون جا میتونین دستور مورد نظرتونو بنویسین  و برای این که کار خود را ذخیره کنین کلید ترکیبی Ctrl+D رو بزنین



در دستور زیر کاری رو فردا 3 دقیقه بعد از ساعت 12 انجام میدهد
alieblice@ubuntu:~$ at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
at> ls > ~/Desktop/ls.txt
at> <EOT>
job 73 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$

دستور بالا رو میتونین به صورت زیر هم بنویسین که فکر کنم راحت تر باشه
 alieblice@ubuntu:~$ echo ls > ~/Desktop/ls.txt | at 12:00 tomorrow + 3 min
warning: commands will be executed using /bin/sh
job 74 at Fri Jul 10 12:03:00 2009
alieblice@ubuntu:~$

اپشن v- (( وی کوچک ))

اپشن v- برای نشون دادن زمان اجرا شدن دستور در همان اول کار یعنی قبل از امدنه صفحه ای که شما توش دستورو مینویسین
alieblice@ubuntu:~$ at -v noon jul 24 + 10 min
Fri Jul 24 12:10:00 2009

warning: commands will be executed using /bin/sh
at> cp -r /home/alielbice /var/backup/alieblice-bkp
at> <EOT>
job 77 at Fri Jul 24 12:10:00 2009
alieblice@ubuntu:~$
اپشن f-

اپشن f- برای دادن لیستی از کار هایی که میخایم انجام بدیم از طریق یک فایل متنی هستش
alieblice@ubuntu:~$ cat myjobs.txt
/home/sathiya/calculate-space.sh
/path/to/a/shell-script
/path/to/any/command/or/script
alieblice@ubuntu:~$ at -f /home/alieblice/jobs.txt now +1 hour
warning: commands will be executed using /bin/sh
job 79 at Thu Jul  9 08:07:00 2009
alieblice@ubuntu:~$

اپشن l-
نکته : به جای l- میتونین از atq هم استفاده کنین
این اپشن و atq برای لیست کردن کار هایی که هنوز انجام نشده اند و در انتظار رسیدن زمان تعیین شده هستن استفاده میشه
alieblice@ubuntu:~$ at -l
79 Thu Jul  9 08:07:00 2009 a alieblice
77 Fri Jul 24 12:10:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$

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

پاک کردن یک کار


از اپشن d- یا atrm میتونین استفاده کنین
برای این کار نیاز به شماره اون کار دارین که میتونین با لیست کردنشون شمارشونو یدست بیارین
مثلا در زیر کار به شماره  77 رو پاک میکنیم
alieblice@ubuntu:~$ atq
79 Thu Jul  9 08:07:00 2009 a alieblice
77 Fri Jul 24 12:10:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -d 77
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -l
79 Thu Jul  9 08:07:00 2009 a alieblice
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$


دیدن اطلاعات یک کار
برای این کار از اپشن c- ((سی کوچک )) استفاده کنین

خروجیش زیاد بود برای همین فقط خود دستور رو میزارم
alieblice@ubuntu:~$ at -l
73 Fri Jul 10 12:03:00 2009 a alieblice
74 Fri Jul 10 12:03:00 2009 a alieblice
alieblice@ubuntu:~$
alieblice@ubuntu:~$ at -c 73
#!/bin/sh
# atrun uid=1000 gid=1000
# mail alieblice 0
umask 22

خروجی کامل نیست



محدود کردن دسترسی به at

برای این که دسترسی کاربران رو به دستور at ببندین یا دسترسی رو برای یک سری کار بر خاص باز بگذارین میتونین از 2 فایل زیر استفاده کنین
سیستم اول فلدر at.allow رو چک میکنه اگه وجود نداشت میره سراغ at.deny
/etc/at.allow
       /etc/at.deny
مثلا اگه کاربر tia رو به فایل at.deny اضافه کنین موقعی که کاربر tia بخاد از at استفاده کنه این اررور رو میگیره

tia@ubuntu:~$ at 12:00 pm
You do not have permission to use at.
tia@ubuntu:~$

اگرم بخاین که at رو برای فقط کاربرای مشخصی باز بگذارین از فلدر at.allow استفده کنین
ممکنه این فلدر وجود نداشته باشه میتونین بسازینش


فایل های مرتبط به at

/var/spool/cron/atjobs
       /var/spool/cron/atspool
       /var/run/utmp
       /etc/at.allow
       /etc/at.deny



منابع :
http://www.thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds1/at.htm
http://pcsupport.about.com/od/commandlinereference/p/at-command.htm
http://www.softpanorama.org/Utilities/at.shtml
http://content.hccfl.edu/pollock/Unix/AtDemo.htm

« آخرین ویرایش: 20 تیر 1390، 01:22 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور scp
« پاسخ #38 : 22 تیر 1390، 04:56 ب‌ظ »



دستور scp  برگرفته از secure copy  برای کپی کردن اطلاعات از یک کامپیوتر به یک کامپیوتر دیگر استفاده میشود
درواقع تمام امکانات دستور cp را دارد با این تفاوت که قابلیت انتقال داده بین ۲ کامپیوتر نیز وجود دارد (( یعنی فقط به صورت لوکال کار نمیکنه به صورت رموت هم کار میکنه ))
یکی از مزیت هایی که این دستور دارد امن بودن اون به واسته استفاده از تونل ssh هستش ((همه چیز encrypt میشه))

شکل کلی دستور
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
         [-l limit] [-o ssh_option] [-P port] [-S program]
         [[user@]host1:]file1 ... [[user@]host2:]file2

شکل قابل فهم تر

$ scp REMOT-SYSTEM:ADRESS  LOCAL-SYSTEM-ADRESS  

در دستور زیر یک فایل رو از سیستم رموت به سیتم لوکال انتقال میدهیم
alieblice@de-10:~$ scp root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi /home/alieblice/
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi                     100%   49MB  24.6MB/s   00:02    
alieblice@de-10:~$

root@172.16.49.21  = یوزرنیم به همراه ادرس سیستم رموت
/var/www/ShaunTheSheep_Part_07.avi  = اسم و ادرس فایلی که میخایم کپیش دیم به سیستم لوکال
/home/alieblice/   = محل ذخیره شدن فایل در سیستم لوکال


کپی کردن  فایل و تغییر اسم ان
برای این کار مثل مثال بالا عمل میکنیم با این تفاوت که وقتی محل ذخیره شدن اونو در سیستم لوکال انتخاب میکنیم اسمش را هم  انتخاب میکنیم
alieblice@de-10:~$ scp  root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi /home/alieblice/Videos/scp/cartoon-07.avi
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi                     100%   49MB  49.1MB/s   00:01    
alieblice@de-10:~$
حالا اگه ls محل ذخیره شدنو بگیریم میبینین که اسم فایل تغییر کرده
alieblice@de-10:~$ ls /home/alieblice/Videos/scp/
cartoon-07.avi
alieblice@de-10:~$

کپی کردن فایل ها
برای این کار مثل دستور cp از r- استفاده کنین
در دستور زیر دایرکتوری DNSvideo رو از سیستم رموت به لوکال کپی میکنیم
alieblice@de-10:~$ scp -r root@172.16.49.21:/var/www/DNSvideo /home/alieblice/Documents/
root@172.16.49.21's password:
YouTube - ‪Setting Up and Configuring a DNS 100%   20MB  20.1MB/s   00:01    
YouTube - Setup DNS Server Quick & Simple.flv 100% 9288KB   9.1MB/s   00:00    
YouTube - ‪Setting Up and Configuring a DNS 100%   20MB  19.6MB/s   00:00    
YouTube - ‪Instala y configura Bind 9 en Ub 100%   10MB  10.2MB/s   00:01    
YouTube - ‪Setting Up and Configuring a DNS 100%   15MB  15.1MB/s   00:00    
YouTube - install dan konfigurasi bind9 (DNS) 100% 6742KB   6.6MB/s   00:00    
YouTube - Setting Up and Configuring a DNS Se 100%   17MB  17.5MB/s   00:00    
alieblice@de-10:~$

اگر از -r استفده نکنین این اررور رو میده
alieblice@de-10:~$ scp root@172.16.49.21:/var/www/DNSvideo /home/alieblice/Documents/
root@172.16.49.21's password:
scp: /var/www/DNSvideo: not a regular file

Local Copy

برای این کار دقیقه مثل دستور cp عمل میکنیم
alieblice@de-10:~$ scp -r /home/alieblice/Documents/DNSvideo ~/

انتقال فایل از لوکال به رموت

برای این کار اول ادرس فایل در لوکال رو بدین و سپس ادرس و محل ذخیره شدن در رموت را بدهید
alieblice@de-10:~$ scp /home/alieblice/Videos/ShaunTheSheep_Part_18.avi root@172.16.49.21:
root@172.16.49.21's password:
Permission denied, please try again.
root@172.16.49.21's password:
ShaunTheSheep_Part_18.avi                     100%   49MB  49.3MB/s   00:01    
alieblice@de-10:~$
نکته : اگر برای ذخیره شدن فایل یا برای کپی شدن فایل در سیستم رموت ادرسی رو انتخاب نکنیم مثل بالا به طور پیش فرض home دایرکتوری استفاده میشه


توضیح بعضی از اپشن ها

-B
برگرفته از batch mode بیشتر در اسکریپت ها استفاده میشه و باعث میشه که از interactive authentication methods
 نتونین استفاده کنین  وباید از روش هایی مثل key  authenticationباید استفاده کنین
 
-C
(سی بزرگ)  برای فشرده سازی استفاده میشود که در سرعت های پایین باعث بالا رفتم سرعت میشه ولی در سرعت های بالا فقط باعث کندی سرعت میشه  

-l
برای محدود کردن سرعت کپی کردن فایل استفاده میشود بر اثاث Kbit/s

در زیر سرعت 1000 کلو بیت بر ثانیه استفاده شده که برای تبدیل ان به کیلو بایت بر ثانیه باید ان را تقسیم بر 8 کنین   1000/8=125
در مثال زیر اگه توجه کنین بعد از مدت کوتاهی سرعت به 125 رسیده

مثال :
alieblice@de-10:~$ scp -l 1000 root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
root@172.16.49.21's password:
ShaunTheSheep_Part_07.avi                       0%  400KB 141.0KB/s   05:53 ETA
ShaunTheSheep_Part_07.avi                       1%  528KB 139.7KB/s   05:56 ETA
ShaunTheSheep_Part_07.avi                       7% 3520KB 125.8KB/s   06:11 ETA^


-P
برای مشخص کردن پرت ارتباطی استفاده میشود
نکته : این جا از پی بزرگ استفاده شده بر عکس ssh که از پی کوچک استفاده میشود دلیلش اینه که در rcp از پی کوچک برای کار دیگری استفاده میشده

-p

برای شما quiet mode رو فعال میکنه به تفاوتش در مثال زیر توجه کنین
alieblice@de-10:~$ scp -q root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
root@172.16.49.21's password:
alieblice@de-10:~$

درصد و سرعت انتقال رو نشون نمیده

-v

از وی برای گرفتن اطلاعات اضافی تری در باره ی نوع اتصال و چیز های دیگه میتونین استفاده کنین
از وی تا 3 بار میتونین استفاده کنین که سومین وی خیلی اطلاعات دقیقی میده

مثال برای یک وی  
alieblice@de-10:~$ scp -v root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
Executing: program /usr/bin/ssh host 172.16.49.21, user root, command scp -v -f /var/www/ShaunTheSheep_Part_07.avi
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 172.16.49.21 [172.16.49.21] port 22.
debug1: Connection established.
debug1: identity file /home/alieblice/.ssh/identity type -1
debug1: identity file /home/alieblice/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-4096
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-4096
debug1: identity file /home/alieblice/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6
debug1: match: OpenSSH_5.5p1 Debian-6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '172.16.49.21' is known and matches the RSA host key.
debug1: Found key in /home/alieblice/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering public key: /home/alieblice/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/alieblice/.ssh/identity
debug1: Trying private key: /home/alieblice/.ssh/id_dsa
debug1: Next authentication method: password
root@172.16.49.21's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.utf8
debug1: Sending command: scp -v -f /var/www/ShaunTheSheep_Part_07.avi
Sending file modes: C0755 51482624 ShaunTheSheep_Part_07.avi
Sink: C0755 51482624 ShaunTheSheep_Part_07.avi
ShaunTheSheep_Part_07.avi                     100%   49MB  49.1MB/s   00:01    
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 14816, received 51535384 bytes, in 1.3 seconds
Bytes per second: sent 11794.2, received 41024565.4
debug1: Exit status 0
alieblice@de-10:~$


مثال برای 2 وی

alieblice@de-10:~$ scp -vv root@172.16.49.21:/var/www/ShaunTheSheep_Part_07.avi ~/
خروجیش رو نمیزارم چون خیلی زیاد بود


دستور مشابه دیگری به اسم   rsync  با امکانات خیلی بیشتری وجود دارد که قبلا اموزشش گذاشته شده

منبع :
Pro OpenSSH (2005).pdf
ادرس دانلود کتاب :
http://ubuntuone.com/p/12CZ/
« آخرین ویرایش: 22 تیر 1390، 05:06 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور grep
« پاسخ #39 : 30 تیر 1390، 10:35 ب‌ظ »



احتیاج به ویرایش
[/b]

دستور 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
« آخرین ویرایش: 23 آذر 1391، 02:37 ب‌ظ توسط alieblice »

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور usermod
« پاسخ #40 : 14 امرداد 1390، 12:29 ق‌ظ »



    ما با این دستور میتونیم یه سری تغییرات روی یوزر های لینوکسی بدیم .
    همون طور که می بینید دستور usermod شامل 17 آپشن هست که یکی یکی توضیح میدم .
    البته آپشن های

    -L
    -p
    -U

    به صورت انحصاری هست و اگر بخوایم از این 3 تا آپشن استفاده کنم فقط در یک دستور باید یکی از این آپشن هارو قرار بدیدم یعنی همزمان نمیتونیم از آپشن های -p و -L استفاده کرد .


    root@debian:~# usermod --help
    Usage: usermod [options] LOGIN

    Options:
      -c, --comment COMMENT         new value of the GECOS field
      -d, --home HOME_DIR           new home directory for the user account
      -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
      -f, --inactive INACTIVE       set password inactive after expiration
                                    to INACTIVE
      -g, --gid GROUP               force use GROUP as new primary group
      -G, --groups GROUPS           new list of supplementary GROUPS
      -a, --append                  append the user to the supplemental GROUPS
                                    mentioned by the -G option without removing
                                    him/her from other groups
      -h, --help                    display this help message and exit
      -l, --login NEW_LOGIN         new value of the login name
      -L, --lock                    lock the user account
      -m, --move-home               move contents of the home directory to the
                                    new location (use only with -d)
      -o, --non-unique              allow using duplicate (non-unique) UID
      -p, --password PASSWORD       use encrypted password for the new password
      -s, --shell SHELL             new login shell for the user account
      -u, --uid UID                 new UID for the user account
      -U, --unlock                  unlock the user account
      -Z, --selinux-user            new SELinux user mapping for the user account

    root@debian:~#

    آپشن -c :
    با این آپشن میتونیم یه توضیح مختصر برای یک یوزر بنویسیم مثلا :

    root@debian:~# usermod -c Administrator vahid
    با توجه به دستور بالا ما گفتیم که یوزر vahid مدیر هست .

    آپشن -d :
    با این آپشن میتونیم ست کنیم home directory یک یوزر رو , توی ویندوز مثلا c:\users\vahid هست که میتونیم توی لینوکس به صورت دیفالت در home یک فایل به اسم خود یوزر ساخته میشه و Home Directory اون شخص میشه . به طور مثال برای تغییر Home Directory یک کاربر :

    root@debian:~# usermod -d /home2/vahid vahid

    آپشن -e :
    با این آپشن میتونیم تاریخ انتقضای یک کاربر رو ست کنیم به طور مثال :

    root@debian:~# usermod -e 2020-10-10 vahid
    با توجه به دستور بالا ما گفتیم که یوزر vahid یوزر کاربریشون در تاریخ 2020-10-10 باطل بشه و دسترسی به سیستم نداشته باشه .

    آپشن -f :
    با این آپشن میتونیم ست کنیم که زمانی که پسورد Expire شد یه مدت بر حسب روز به کاربر وقت داده بشه که پسوردشو عوض کنه . برای مثال :

    root@debian:~# usermod -f 7 vahid
    اینجا ست کردیم که بعد از اینک پسورد کاربری vahid باطل شد 7 روز وقت داشته باشه تا پسورش خودشو عوض کنه .

    آپشن -g :
    با این آپشن میتونیم گروه کاربری رو تغییر بدیم برای مثال :
    root@debian:~# id vahid
    uid=1000(vahid) gid=1000(vahid) groups=1000(vahid)
    root@debian:~# usermod -g root vahid
    root@debian:~# id vahid
    uid=1000(vahid) gid=0(root) groups=0(root)
    توی دستور های بالا اول ما ای دی یوزر vahid رو چک کردیم . دیدم یوزر و گروه هر دو vahid هست بعد با دستور usermod یوزر vahid رو در گروه root قرار دایدم .

    آپشن -G :
    با این آپشن میتونیم یک یوزر رو در گروه قرار بدیدم برای مثال :
    root@debian:~# usermod -G vahid vahid
    root@debian:~# id vahid
    uid=1000(vahid) gid=0(root) groups=0(root),1000(vahid)
    خوب ما میبینم که علاوه بر اینکه یوزر Vahid در گروه خودش هست در گروه root هم هست .

    آپشن -a :
    زمانی که ما از دستور های -G استفاده میکنیم فقط ما کاربر رو به یک گروه ها اضافه میکنیم ولی اگه یه زمان بخوایم در چندین گروه قرار بگیره از -a استفاده میکنیم برای مثال :
    root@debian:~# usermod -aG sales vahid
    root@debian:~# id vahid
    uid=1000(vahid) gid=0(root) groups=0(root),1002(sales)
    root@debian:~# usermod -aG vahid vahid
    root@debian:~# id vahid
    uid=1000(vahid) gid=0(root) groups=0(root),1000(vahid),1002(sales)
    آپشن -l :
    با این آپشن میتونیم یوزر کاربری رو اسمشو عوض کنیم برای مثال :
    root@debian:~# usermod -l master sirous
    در مثال بالا یوزر کاربری sirous به یوزر master تغییر کرد

    آپشن -L :
    با این آپشن خیلی ساده یک یوزر رو دسترسیشو قطع میکنیم در واقع میبیندیمش برای مثال :
    root@debian:~# usermod -L master
    در مثال بالا یوزر master لاک شد و دیگه دسترسی به سیستم نداره

    آپشن -m :
    با این آپشن میتونیم home Directory یک یوزر رو منتقل کنیم به یک مکان دیگه برای مثال :

    usermod -m -d /home/master master
    در مثال بالا home directory منتقل میشه به /home/master

    آپشن -o :
    همون طور که میدونید uid یا همون user id به طور منحصر به فرد مربوط به یک کاربر هست ولی با این آپشن میتونیم به چند کاربر یک uid بدیم برای مثال :

    root@debian:~# usermod -o vahid
    آپشن -p :
    با این آپشن میتونیم پسورد برای یک کاربر بزاریم یا تغییرش بدیم الیته باید encrypted باشد پسورد برای مثال :
    root@debian:~# mkpasswd
    Password:
    D9Fv4apNaq/rE
    root@debian:~# usermod -p D9Fv4apNaq/rE master
    اول ما با دستور mkpasswd یک پسورد encrypted ساختیم و بعد اون پسورد رو برای کاربر قرار دایدم

    اپشن -s :
    با این آپشن میتونیم دسترسی shell کاربر رو تعیین کنیم برای مثال

    root@debian:~# usermod -s /bash/false vahid
    در مثال بالا ما دسترسی shell رو از کاربر vahid گرفتیم

    آپشن -u :
    با این آپشن میتونیم عدد UID رو خودمون برای کاربر ست کنیم برای مثال :
    root@debian:~# usermod -u 22 master
    root@debian:~# id master
    uid=22(master) gid=1011(sirous) groups=1011(sirous)
    در مثال بالا uid کاربر master رو 22 قرار دادیم

    آپشن -U :
    با این آپشن میتونیم کاربری که لاک هست رو آنلاک کنیم

    root@debian:~# usermod -U Vahid
    در مثال بالا یوزر Vahid انلاک هست و میتونه به سیستم دسترسی داشته باشه .

    آپشن -Z :
    با این آپشن میتونیم ست کنیم که یک یوزر جزو یوزر های selinux باشه برای مثال :
    root@debian:~# usermod -Z master
    یوزر master رو جزو یوزر های Selinux قرار دادیم که یه سری دسترسی های خاص داده



    با تشکر
    وحید سیروس


منبع : http://www.webhostingtalk.ir/f104/28950/

موضوعات وابسته :   ساختن کاربر ((user)) و پاک کردن و ایجاد بعضی محدودیت ها
http://forum.ubuntu.ir/index.php/topic,17561.msg134502.html#msg134502

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
سطح دسترسی ها در لینوکس و دستور chmod
« پاسخ #41 : 14 امرداد 1390، 10:21 ق‌ظ »



سطح دسترسی ها در لینوکس

    پایه و اساس سطح دسترسی ها در لینوکس شامل دو تا قسمت میشه یکی مالکیت فایل یا (ownership ) و یکی مجوز فایل ها (permissions ) .
    مالکیت فایل (ownership ) شامل دو تا قسمت میشه :
    یکی مالکیت کاربری (User Ownership)
    یکی مالکیت گروهی (Group Ownership)
    پس یک فایل دو تا مالکیت میگیره یکی مالکیت گروه یکی مالکیت کاربر
    برای مثال فایل زیر رو ببینید :
    root@debian:~/# ll
    -rw-r--r-- 1 root vahid 0 Aug  5 00:58 vahid.txt
    root@debian:~/#
    از فایل بالا متوجه میشیم که Group Ownership این فایل گروه vahid هست .
    و User Ownership این فایل مربوط به یوزر root هست .
    حالا ما چه شکلی میتونیم ownership یک فایل رو تغییر بدیم ؟ با دستور chown
    به صورت زیر :

    chown userowner:groupowner myfile.txt
    به طور مثال ما میخوایم User Ownership و Group Ownership هر دو این فایل رو به vahid تغییر بدیم
    root@debian:~/wht# chown vahid:vahid vahid.txt
    root@debian:~/wht# ll
    -rw-r--r-- 1 vahid vahid 0 Aug  5 00:58 vahid.txt
    root@debian:~/wht#
    حالا میریم سراغ قسمت دوم یعنی مجوز فایل ها (permissions )
    مجوز فایل ها (permissions ) شامل 3 تا قسمت میشه :
    مجوز برای کاربر
    مجور برای گروه
    مجوز برای دیگران (که شامل بقیه کاربران سیستم میشه)
rw- r-- r-- 1 vahid vahid 0 Aug  5 00:58 vahid.txt
|   |   |
|   |   |________ user permission
|   |___________ group permission
|_______________ other permission

    که هر قست شامل 3 قسمت میشه :
    r = read permission
    w = write permission
    x = execute permission
    یعنی :
    دسترسی خواندن
    دسترسی نوشتن
    دسترسی اجرایی (برای اجرا کردن یک برنامه)

    که هر قسمت یه عدد میگیره
    4  = read (r)
    2 = write (w)
    1 = execute (x)
    0 = no permission (-)
    برای مثال فایل زیر رو مد نظر بگیرید :
    root@debian:~/wht# ll
    -rw-r--r-- 1 vahid vahid 0 Aug  5 00:58 vahid.txt
    root@debian:~/wht#
    اگر permission فایل رو سه قسمت کنیم :

    -rw-       r--      r--
    میبینیم که
    در سطح کاربر فقط میتونه فایل رو بخونه
    در سطح گروه هم فقط میتونه فایل رو بخونه
    و در سطح other دسترسی خوندن و نوشن رو داره

    حالا ما چه شکلی میتونیم permission یک فایل رو تغییر بدیم ؟ با دستور chmod

    chmod permissionnumber myfile.txt
    به طور مثال ما میخوایم خود کاربر دسترسی خوندن و نوشتن و اجرا شدن رو داشته باشه ولی گروهش هیج دسترسی نداشته باشه و برای Other هم فقط دسترسی خوندن باشه
    حالا میایم عدد ها رو جمع میزنی
    دسترسی برای کاربر = خوندن + نوشتن + اجرا شدن = 4+2+1 = پس عدد دسترسی برای کاربر میشه 7
    دسترسی برای گروه = هیچ دسترسی نداشته باشه = 0 = پس عدد دسترسی گروه میشه 0
    دسترسی برای other = خوندن = 4 = پس عدد دسترسی other میشه 4
    و این دسترسی رو اعمال میکنیم :
    root@debian:~/wht# chmod 407 vahid.txt
    root@debian:~/wht# ll
    -r-----rwx 1 vahid vahid 0 Aug  5 00:58 vahid.txt
    root@debian:~/wht#
    حالا اگر خواستید تمامی فایل ها و زیر مجموعه هاش رو تغیر owner یا permission بدید باید از آپشن -R (تاکید میکنم بر روی R بزرگ هست ) استفاده کنید
    برای مثال :
    root@debian:~# chown -R vahid:vahid wht/
    root@debian:~# chmod -R 407 wht/
    این دو تا دستور تمامی owner های این فایل هارو به vahid تغییر میده و تمامی فایل های این فولدر به 407 تغییر میکنه

    موفق و پیروز باشید

منبعhttp://www.webhostingtalk.ir/f104/29244/
موضوعات وابسته : http://forum.ubuntu.ir/index.php/topic,17561.msg151252.html#msg151252

آفلاین alieblice

  • High Hero Member
  • *
  • ارسال: 1275
دستور alias
« پاسخ #42 : 22 امرداد 1390، 01:55 ب‌ظ »


دستور 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

منبع با مقداری تغییرات : http://www.thegeekstuff.com/2010/04/unix-bash-alias-examples/
چند مثال دیگه تو منبع هست که نگفتم
« آخرین ویرایش: 19 مهر 1391، 02:21 ب‌ظ توسط alieblice »

آفلاین Aref.Ariyapour

  • Full Member
  • *
  • ارسال: 203
  • جنسیت : پسر
سلام دوستان عزیز
یه نکته جالب تو ترمینال پیدا کردم که خیلی به درد خودم خورد و احتمالا به درد شما هم بخوره.
خیلی وقت ها پیش اومده که میخواید یه متن یا جمله یا کلمه ای رو تو ترمینال copy کنید و جای دیگه تو ترمینال paste کنید.
یه راهش این هست که تو ترمینال به جای Ctrl+c و Ctrl+v از Ctrl+Shift+c و Ctrl+Shift+v استفاده کنیم. این روش خوبه اما باز از این روشی که میخوام بگم بهتر نیستش.
واسه این کار میتونید متن مورد نظرتون تو ترمینال رو highlight کنید و بعد برید جایی که میخواید متن paste بشه و دکمه وسط mouse رو بزنید متن مورد نظرتون که highlight کردید اونجا paste میشه. جالبیش اینجاست که مثلا اگر جند تا ترمینال باز داشته باشید و تو یه ترمینال یه متن رو highlight کنید و برید تو ترمینال دیگه دکمه وسط موس رو بزتید هم باز این روش عمل میکنه.
امیدوارم مفید باشه براتون
آهان راستی دوستانی که با موس لپ تاپ کار میکنن واسه دکمه وسط موس هر دو دکمه چپ و راست رو بزنید به عنوان دکمه وسط عمل میکنه.
موفق باشید
That's me in the corner
That's me in the spotlight, I'm
Losing my religion

آفلاین alieblice2

  • Sr. Member
  • *
  • ارسال: 280
کرنل 32 یا 64 ::
« پاسخ #44 : 08 شهریور 1390، 07:11 ب‌ظ »
-----------------------------------------------------------------------



کرنل 32 یا 64 ::

استفاده از دستور uname -a برای فهمیدن 32 بیت یا 64 بیت بودن
اگه در خروجی دستورتون کلمه ی x86_64 بود یعنی کرنل سیستم شما 64 بیت است

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

دستور زیر یک نمونه کرنل 64 بیت رو نشون میده
$ uname -a
Linux ora100 2.6.5-7.252-smp #1 SMP Tue Feb 14 11:11:04 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux


cpu 32 یا 64 ::

استفاده از  /proc/cpuinfo
این دستورو داخل ترمینال بزنین تا اطلاعات cpu شما رو نشون بده که از داخل اون اطلاعات 32 یا 64 بیت بودن cpuتونو می تونین بفهمین
less /proc/cpuinfo

این دستورو در ترمینال بزنین که اگر در خروجیش کلمه ی lm بود شما cpu 64 بیت دارین


$ grep flags /proc/cpuinfo
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm


دستور lscpu هم هست که اطلاعات کاملی از cpu در اختیارتون قرار میده ((تجزیه تحلیل دستورش با خودتون ))
ali@172.16.15.149:~$ lscpu
Architecture:          i686
CPU op-mode(s):        64-bit
CPU(s):                1
Thread(s) per core:    1
Core(s) per socket:    1
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 44
Stepping:              2
CPU MHz:               2127.777
Hypervisor vendor:     Microsoft
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              12288K

منبع : http://www.thegeekstuff.com/2010/12/linux-32-or-64-bit/
« آخرین ویرایش: 20 مهر 1391، 05:44 ب‌ظ توسط alieblice2 »