1001 Linux Commands

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 191

‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪2‬‬

‫ﻫﺰار و ﯾﮏ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺲ‬


‫ﻧﮑﺘﻪ ﻫﺎي آﻣﻮزﺷﯽ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻟﯿﻨﻮﮐﺲ‬

‫ﺑﺮﮔﺮﻓﺘﻪ از ﮐﺘﺎب‬

‫ﻟﯿﻨﻮﮐﺲ ﺑﺮاي ﻫﻤﻪ از ﻫﻤﯿﻦ ﻧﻮﯾﺴﻨﺪه‬

‫وﯾﺮاﯾﺶ اول ‪1397‬‬

‫ﻧﺸﺮ آزاد‬

‫‪2‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪3‬‬

‫ﻧﺸﺮآزاد‬
‫ﻧﺎم ﮐﺘﺎب ‪ :‬ﻫﺰاروﯾﮏ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺲ‬
‫ﻧﻮﯾﺴﻨﺪه ‪ :‬ﺣﺴﯿﻦ ﺳﯿﻼﻧﯽ‬
‫وﯾﺮاﺳﺘﺎر و ﻃﺮاح ﺟﻠﺪ‪ :‬ا ‪ .‬ﻗﺎﺳﻤﯽ ﻧﮋاد‬
‫ﻧﺎﺷﺮ ‪ :‬ﻧﺸﺮ آزاد‬
‫ﻧﻮﺑﺖ ﭼﺎپ ‪ :‬اول‬
‫ﺗﺎرﯾﺦ ﻧﺸﺮ‪1397 :‬‬
‫ﺷﻤﺎرﮔﺎن ‪ 20000:‬ﻧﺴﺨﻪ‬
‫ﻗﯿﻤﺖ ‪ 10000 :‬ﺗﻮﻣﺎن‬
‫ﺷﺎﺑﮏ ‪975-756-6987-88-3 :‬‬

‫‪3‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪4‬‬

‫‪4‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪5‬‬

‫ﻓﻬﺮﺳﺖ ﻣﻄﺎﻟﺐ‬
‫ﭘﻮﺳﺘﻪ ﭼﯿﺴﺖ؟ ‪12 ............................................. ................................ ................................ ................................‬‬
‫ﺗﺮﻣﯿﻨﺎل ﭼﯿﺴﺖ؟ ‪12 ............................................ ................................ ................................ ................................‬‬
‫‪12 ..................................................... ................................ ................................ A Typical Modern Terminal‬‬
‫‪14 ....................................................... ................................ ................................ Modern Power Terminals‬‬
‫ﻣﯿﺎﻧﺒﺮﻫﺎي ﺗﺮﻣﯿﻨﺎل ‪18 .......................................... ................................ ................................ ................................‬‬
‫ﺑﺎزﮐﺮدن ﯾﮏ ﺗﺮﻣﯿﻨﺎل ‪18 ....................................... ................................ ................................ ................................‬‬
‫ﺗﺴﺖ ﺻﻔﺤﻪ ﮐﻠﯿﺪ ‪19 ........................................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ﭼﯿﺴﺖ؟ ‪19 ............................................. ................................ ................................ ................................‬‬
‫اﻧﻮاع ﭘﻮﺳﺘﻪ ‪19 .................................................. ................................ ................................ ................................‬‬
‫‪20 .................................... ................................ ................................ ................................ linux system file‬‬
‫ﺳﺎزﻣﺎن ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ ‪20 ........................................... ................................ ................................ ................................‬‬
‫ﻧﺤﻮه ﺗﻌﯿﯿﻦ ﻧﻮع ﻓﺎﯾﻞ ‪22 ........................... ................................ ................................ ................................ system‬‬
‫ﺗﺒﺪﯾﻞ ‪ Ext2‬ﺑﻪ‪23 ...................................... ................................ ................................ ................................ Ext3‬‬
‫ژورﻧﺎﻟﯿﻨﮓ ‪23 ................................................... ................................ ................................ ................................‬‬
‫‪23 .................................................. ................................ ................................ ................................ ReiserFS‬‬
‫‪23 ......................... ................................ ................................ ................................ ................................ XFS‬‬
‫‪23 ....................................................... ................................ ................................ ................................ Btrfs‬‬
‫ﻓﺮﻣﺖ ﻓﺎﯾﻞ ﺧﻮﺷﻪ اي ‪23 ....................................... ................................ ................................ ................................‬‬
‫‪23 ....................................................... ................................ ................................ ................................ swap‬‬
‫‪24 ........................ ................................ ................................ ................................ ................................ pwd‬‬
‫ﻧﻤﻮدار ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ‪26 ......................... ................................ ................................ ................................ linux‬‬
‫ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ‪26 ................................. ................................ ................................ ................................ linux‬‬
‫ﺑﺮرﺳﯽ ﻓﺎﯾﻞ ﻣﻬﻢ‪ ،‬ﻣﻮﻗﻌﯿﺖ آﻧﻬﺎ و ﻗﺎﺑﻠﯿﺖ اﺳﺘﻔﺎده آﻧﻬﺎ ‪28 ................................... ................................ ................................‬‬
‫ﺟﺎﺑﺠﺎﯾﯽ در ‪ system‬ﻓﺎﯾﻞ ‪30 ................................ ................................ ................................ ................................‬‬
‫ﻧﮕﺎﻫﯽ دﻗﯿﻖ ﺗﺮ ﺑﻪ ﻓﺮﻣﺖ ﻃﻮﻻﻧﯽ ‪31 .......................... ................................ ................................ ................................‬‬
‫ﻧﮑﺘﻪ‪32 ......................... ................................ ................................ ................................ ................................ :‬‬
‫ﻣﺸﺎﻫﺪه راﻫﻨﻤﺎي دﺳﺘﻮرات ‪33 ................................ ................................ ................................ ................................‬‬
‫ﻣﺸﺎﻫﺪه راﻫﻨﻤﺎ ‪33 .............................................. ................................ ................................ ................................‬‬
‫روش ﺑﺮاي ﯾﺎﻓﺘﻦ ﯾﮏ ﻓﺮﻣﺎن ﺑﺎﯾﻨﺮي و ﺗﻮﺿﯿﺤﺎت در ‪ system‬ﻓﺎﯾﻞ ‪33 ................................................... ................................‬‬
‫ﯾﺎﻓﺘﻦ دﺳﺘﻮرات ﺟﺪﯾﺪ در ‪33 .......................... ................................ ................................ ................................ linux‬‬
‫ﻧﻮع ﻓﺮﻣﺎن ‪35 ................................................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ‪35 ............................................. ................................ ................................ ................................ which‬‬
‫ﯾﺎﻓﺘﻦ ﻣﻮﻗﻌﯿﺖ دﺳﺘﻮرات ‪35 ........................... ................................ ................................ ................................ linux‬‬
‫دﺳﺘﻮر ‪36 ................................................ ................................ ................................ ................................ man‬‬
‫ﻣﺸﺎﻫﺪه و وﯾﺮاﯾﺶ ﻓﺎﯾﻞ ﻫﺎ ‪36 ................................. ................................ ................................ ................................‬‬
‫‪36 .......................... ................................ ................................ ................................ ................................ cat‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ‪ Cat Command Basic‬در ‪37 ..................................... ................................ ................................ linux‬‬
‫ﻧﻤﺎﯾﺶ ﺷﻤﺎره ﺧﻂ در ﻓﺎﯾﻞ ‪37 ................................ ................................ ................................ ................................‬‬
‫ﻧﻤﺎﯾﺶ ‪ $‬در ﭘﺎﯾﺎن ﻓﺎﯾﻞ ‪38 ................................... ................................ ................................ ................................‬‬
‫ﻧﻤﺎﯾﺶ ﺗﺐ از ﺧﻄﻮط ﺟﺪا ﺷﺪه در ﻓﺎﯾﻞ ‪38 .................................................. ................................ ................................‬‬
‫‪.‬ﻧﻤﺎﯾﺶ ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ ‪38 ...................................... ................................ ................................ ................................‬‬
‫اﺳﺘﻔﺎده از ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ ‪38 .......................................... ................................ ................................‬‬
‫ﺿﻤﯿﻤﻪ ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ ‪38 ............................................. ................................ ................................‬‬

‫‪5‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪6‬‬

‫‪.‬اﻧﺘﻘﺎل اﺳﺘﺎﻧﺪارد ورودي ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ ‪39 .............................................. ................................ ................................‬‬


‫‪.‬ﻣﺴﯿﺮ ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ در ﯾﮏ ﻓﺎﯾﻞ ‪39 .................................................. ................................ ................................‬‬
‫ﻣﺮﺗﺐ ﺳﺎزي ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ در ﯾﮏ ﻓﺎﯾﻞ ‪39 ................................. ................................ ................................‬‬
‫ﻓﺮﻣﺎن‪39 .............................................. ................................ ................................ ................................ chgrp‬‬
‫ﻣﺠﻮزﻫﺎ ‪40 ...................................................... ................................ ................................ ................................‬‬
‫ﻓﺮﻣﺎن‪40 ............................................. ................................ ................................ ................................ chmod‬‬
‫ﻣﺠﻮزﻫﺎي داﯾﺮﮐﺘﻮري ‪41 ....................................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ‪42 ............................................ ................................ ................................ ................................ chown‬‬
‫ﺣﺬف ﺣﺴﺎب ﮐﺎرﺑﺮي ‪43 ....................................... ................................ ................................ ................................‬‬
‫ﻣﺪﯾﺮﯾﺖ ﮔﺮوه ‪43 ............................................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ‪43 ..................................... ................................ ................................ ................................ passwd‬‬
‫ﺗﻐﯿﯿﺮ رﻣﺰ ﻋﺒﻮر ﮐﺎرﺑﺮ ‪43 ....................................... ................................ ................................ ................................‬‬
‫ﺗﻨﻈﯿﻢ ‪ SETGID‬در ﯾﮏ داﯾﺮﮐﺘﻮري ‪44 ...................................................... ................................ ................................‬‬
‫اﻓﺰودن ‪ Setgid‬ﺑﻪ داﯾﺮﮐﺘﻮري ‪44 ............................ ................................ ................................ ................................‬‬
‫وﯾﮋﮔﯽ ﻫﺎي ﺧﺎص ‪45 ............................... ................................ ................................ ................................ Linux‬‬
‫دﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺴﺎب ‪ root‬و اﺳﺘﻔﺎده از‪45 ........................................... ................................ ................................ sudo‬‬
‫ﻣﺎژول ﻫﺎي ﺗﺄﯾﯿﺪ ﻫﻮﯾﺖ ﭘﻼﮔﯿﻦ ‪48 ........................... ................................ ................................ ................................‬‬
‫ﻓﺮﻣﺎن‪50 ............................................. ................................ ................................ ................................ cksum‬‬
‫ﻓﺮﻣﺎن ‪50 ................................................ ................................ ................................ ................................ clear‬‬
‫‪50 ........................ ................................ ................................ ................................ ................................ cmp‬‬
‫دﺳﺘﻮر ‪50 ....................................... ................................ ................................ ................................ command‬‬
‫‪50 ........................... ................................ ................................ ................................ ................................ CP‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده از ﻓﺮﻣﺎن‪51 ............................................. ................................ ................................ Advacned-Copy‬‬
‫ﻓﺮﻣﺎن ﺗﺎرﯾﺦ ‪53 ................................................. ................................ ................................ ................................‬‬
‫‪53 .......................... ................................ ................................ ................................ ................................ DD‬‬
‫دﺳﺘﻮر‪53 ................................................... ................................ ................................ ................................ DF‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ "‪ "DF‬ﻣﻔﯿﺪ ﺑﺮاي ﺑﺮرﺳﯽ ﻓﻀﺎي دﯾﺴﮏ در ‪53 ........................ ................................ ................................ linux‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ‪54 ............................................ ................................ ................................ ................................ DF‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺗﻤﺎم ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده از ﻓﻀﺎي دﯾﺴﮏ ‪54 ......................... ................................ ................................‬‬
‫ﻧﻤﺎﯾﺶ اﺳﺘﻔﺎده از ﻓﻀﺎي دﯾﺴﮏ در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ ‪54 ........................ ................................ ................................‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system /‬ﻓﺎﯾﻞ ‪55 ............................................... ................................ ................................ home‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪55 .............................................. ................................ ................................ Bytes‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪55 ................................................. ................................ ................................ MB‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪56 .................................................. ................................ ................................ GB‬‬
‫ﻧﻤﺎﯾﺶ ‪ system‬ﻓﺎﯾﻞ‪56 .......................... ................................ ................................ ................................ Inodes‬‬
‫ﻧﻤﺎﯾﺶ ‪ system‬ﻓﺎﯾﻞ ﻧﻮع ‪56 ................................. ................................ ................................ ................................‬‬
‫ﻧﻮع ﺧﺎص ‪ system‬ﻓﺎﯾﻞ را وارد ﮐﻨﯿﺪ ‪56 ................................................... ................................ ................................‬‬
‫‪.‬اﻧﻮاع ‪ system‬ﻓﺎﯾﻞ ﺧﺎص را ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ ‪57 .............................................. ................................ ................................‬‬
‫‪.‬ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻓﺮﻣﺎن‪57 ............................. ................................ ................................ ................................ DF.‬‬
‫ﻣﻘﺎﯾﺴﻪ ﻓﺎﯾﻞ ‪59 ................................................. ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ‪59 ................................................. ................................ ................................ ................................ diff‬‬
‫اﺳﺘﻔﺎده از ‪ Meld Visual Diff‬و‪59 ..................................... ................................ ................................ Merge Tool‬‬
‫اﺳﺘﻔﺎده از ﻓﺮﻣﺎن داﯾﺮﮐﺘﻮري در ‪62 ................................................... ................................ ................................ linux‬‬
‫‪ syntax‬ﻓﺮﻣﺎن ‪62 ........................................ ................................ ................................ ................................ dir‬‬

‫‪6‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪7‬‬

‫ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ﭘﻮﺷﻪ از ﺟﻤﻠﻪ ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﻔﯽ ‪63 .......................... ................................ ................................‬‬
‫ﻧﻤﺎﯾﺸﻬﺎي داﯾﺮﮐﺘﻮري ﺑﻪ ﺟﺎي ﻣﺤﺘﻮا ‪63 ...................................................... ................................ ................................‬‬
‫ﻧﻤﺎﯾﺶ ﺷﻤﺎره ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ ‪64 ............................... ................................ ................................ ................................‬‬
‫ﻓﻬﺮﺳﺖ ﺗﻌﺪاد ﻓﺎﯾﻠﻬﺎ ﻓﻬﺮﺳﺖ ‪64 ............................... ................................ ................................ ................................‬‬
‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﻧﺪازه ﻫﺎ ‪65 .................................. ................................ ................................ ................................‬‬
‫ﻣﺮﺗﺐ ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﻧﺪازه ﻫﺎ ‪65 ........................... ................................ ................................ ................................‬‬
‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﻣﺎﻟﮏ ﯾﺎ ﻣﺎﻟﮏ ﮔﺮوه ‪66 .................................................. ................................ ................................‬‬
‫ﻟﯿﺴﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﻣﺎﻟﮏ ‪66 ................................... ................................ ................................ ................................‬‬
‫ﻓﻬﺮﺳﺖ ﮔﺮوه ﻫﺎي داﯾﺮﮐﺘﻮري ﻓﺎﯾﻞ ‪67 ....................................................... ................................ ................................‬‬
‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﺷﻨﺎﺳﻪ ‪68 ................................ ................................ ................................ ................................‬‬
‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ ﺷﻨﺎﺳﻪ ‪68 .................................... ................................ ................................ ................................‬‬
‫‪69 ............................................. ................................ ................................ ................................ Dmidecode‬‬
‫‪.1‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري در ‪69 ........................................ ................................ ................................ linux‬‬
‫‪. 2‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻧﻮاع‪70 ............................... ................................ ................................ ................................ DMI‬‬
‫‪. 3‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻃﻼﻋﺎت ‪71 .................................................... ................................ ................................ memory‬‬
‫‪ 4‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ اﻃﻼﻋﺎت ‪ BIOS‬درﯾﺎﻓﺖ ﮐﻨﻢ؟ ‪71 ........................................ ................................ ................................‬‬
‫ﺟﻤﻊ آوري اﻃﻼﻋﺎت ‪ system‬و ﺳﺨﺖ اﻓﺰار در ‪72 ................................. ................................ ................................ linux‬‬
‫‪ 2‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ‪73 ................................ ................................ ................................ linux system‬‬
‫‪.3‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت‪74 .................................................... ................................ ................................ CPU linux‬‬
‫‪.4‬ﻧﺤﻮه ﺟﻤﻊ آوري اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺑﻠﻮك ﻫﺎي ‪74 ............................... ................................ ................................ linux‬‬
‫‪ 5‬ﻧﺤﻮه ﭼﺎپ ‪ USB Controllers‬اﻃﻼﻋﺎت ‪75 ............................................. ................................ ................................‬‬
‫‪. 6‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت دﺳﺘﮕﺎه ﻫﺎي‪76 ................................................ ................................ ................................ PCI‬‬
‫‪. 7‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت ‪ SCSI‬دﺳﺘﮕﺎه ‪76 ..................................................... ................................ ................................‬‬
‫‪. 8‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت در ﻣﻮرد دﺳﺘﮕﺎه ﻫﺎي‪77 ................................... ................................ ................................ SATA‬‬
‫ﻫﻨﺪﺳﻪ ‪77 ....................................................... ................................ ................................ ................................‬‬
‫‪. 9‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ ‪77 ........................................... ................................ ................................ linux‬‬
‫دﺳﺘﻮر ‪78 ................................................... ................................ ................................ ................................ du‬‬
‫دﺳﺘﻮر ‪) du‬اﺳﺘﻔﺎده از دﯾﺴﮏ( دﺳﺘﻮراﻟﻌﻤﻞ ﺑﺮاي ﯾﺎﻓﺘﻦ اﺳﺘﻔﺎده از ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎي دﯾﺴﮏ ‪78 .....................................................‬‬
‫‪82 ....................................................... ................................ ................................ ................................ echo‬‬
‫ﻓﺮﻣﺎن‪84 .................................................. ................................ ................................ ................................ env‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده از ﻓﺮﻣﺎن "‪ "find‬ﺑﺮاي ﺟﺴﺘﺠﻮ ﺑﺮاي ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ )ﭘﺴﻮﻧﺪ( در ‪84 .......................... ................................ linux‬‬
‫ﻣﺸﺎﻫﺪه ﻓﺎﯾﻠﻬﺎي ﻓﺎﯾﻞ ﭼﻨﺪﮔﺎﻧﻪ در ‪85 ................................................ ................................ ................................ linux‬‬
‫دﺳﺘﻮر ‪86 ................................................. ................................ ................................ ................................ find‬‬
‫ﻧﺤﻮه ﯾﺎﻓﺘﻦ راﻫﻨﻤﺎﻫﺎ و ﻓﺎﯾﻠﻬﺎي ﺑﺎﻻ )ﻓﻀﺎي دﯾﺴﮏ( در ‪91 .......................... ................................ ................................ linux‬‬
‫ﻧﺤﻮه ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ در ‪91 ..................................... ................................ ................................ linux‬‬
‫ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ داﯾﺮﮐﺘﻮري ﻫﺎ در ‪91 ................................................. ................................ ................................ linux‬‬
‫‪ find‬اﻧﺪازه ﻓﺎﯾﻞ ﺑﺎﻻ در ‪93 ............................ ................................ ................................ ................................ linux‬‬
‫دﺳﺘﻮر ‪94 ................................................ ................................ ................................ ................................ free‬‬
‫‪1.‬ﻧﻤﺎﯾﺶ ‪94 ......................... ................................ ................................ ................................ system memory‬‬
‫‪2.‬ﻧﻤﺎﯾﺶ ‪ memory‬در‪94 ........................ ................................ ................................ ................................ Bytes‬‬
‫ﻧﻤﺎﯾﺶ ‪ memory‬در‪94 ..................................................... ................................ ................................ Kilo Bytes‬‬
‫‪4.‬ﻧﻤﺎﯾﺶ ‪ memory‬در ﻣﮕﺎﺑﺎﯾﺖ ‪95 ........................ ................................ ................................ ................................‬‬
‫‪5.‬ﻧﻤﺎﯾﺶ ‪ memory‬در ﮔﯿﮕﺎﺑﺎﯾﺖ ‪95 ...................................................... ................................ ................................‬‬
‫‪6.‬ﻧﻤﺎﯾﺶ ﮐﻞ ﺧﻂ ‪95 ......................................... ................................ ................................ ................................‬‬

‫‪7‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪8‬‬

‫‪7.‬ﻧﻤﺎﯾﺶ ﺧﻂ ﺗﻨﻈﯿﻢ ﺑﺎﻓﺮ را ﻏﯿﺮﻓﻌﺎل ﮐﻨﯿﺪ ‪95 .............................................. ................................ ................................‬‬


‫‪8.‬وﺿﻌﯿﺖ ‪ memory‬ﻧﻤﺎﯾﺶ ﺑﺮاي ﻓﺎﺻﻠﻪ ﻫﺎي ﻣﻨﻈﻢ ‪95 ................................. ................................ ................................‬‬
‫‪9.‬ﻧﻤﺎﯾﺶ آﻣﺎر ﮐﻢ و زﯾﺎد ‪95 .................................................... ................................ ................................ memory‬‬
‫‪10.‬ﻧﺴﺨﻪ ‪ free‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ ‪96 .......................... ................................ ................................ ................................‬‬
‫ﻧﺤﻮه ﭘﺎك ﮐﺮدن ‪ Swap Space‬در ‪linux‬؟ ‪96 ............................................ ................................ ................................‬‬
‫ﻧﺤﻮه ﺗﻨﻈﯿﻢ ﯾﺎ ﺗﻐﯿﯿﺮ ﻧﺎم ‪ hostsystem‬در ‪97 ..................................... ................................ ................................ linux‬‬
‫درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﭘﺮدازﻧﺪه ‪99 .................................. ................................ ................................ ................................‬‬
‫‪100 ................................................ ................................ ................................ ................................ Inxi Tool‬‬
‫‪100 ............................................... ................................ ................................ ................................ hardinfo‬‬
‫اﻃﻼﻋﺎت ‪101 ............................... ................................ ................................ ................................ linux system‬‬
‫اﻃﻼﻋﺎت ‪103 ............................... ................................ ................................ ................................ linux system‬‬
‫‪103 .................................................... ................................ ................................ ................................ nproc‬‬
‫‪104 ..................................................... ................................ ................................ ................................ Cpustat‬‬
‫اﺳﺘﻔﺎده از ‪ CPU‬را ﺑﺎ ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا در ‪104 ................................. ................................ ................................ linux‬‬
‫ﻧﺤﻮه ﻧﺼﺐ ‪105 ................................. ................................ ................................ ................................ CoreFreq‬‬
‫ﯾﺎﻓﺘﻦ ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا ﺑﺎ اﺳﺘﻔﺎده از ﺑﺎﻻﺗﺮﯾﻦ ‪ memory‬و ‪ CPU‬در ‪106 ............................... ................................ linux‬‬
‫‪107 ..................................................... ................................ ................................ ................................ I-Nex‬‬
‫ﯾﮏ اﺑﺰار ﭘﯿﺸﺮﻓﺘﻪ ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت ‪ / system‬ﺳﺨﺖ اﻓﺰار در ‪107 ........................................ ................................ linux‬‬
‫‪install I-Nex‬در ﻣﺸﺘﻘﺎت ‪107 ................................................ ................................ ................................ ubuntu‬‬
‫ﭘﯿﮑﺮﺑﻨﺪي ﺳﺨﺖ اﻓﺰار ﻓﻬﺮﺳﺖ ‪111 ......................................... ................................ ................................ . lshw Tool‬‬
‫‪114 .................................................. ................................ ................................ ................................ hwinfo‬‬
‫دﺳﺘﻮر‪114 .................................................. ................................ ................................ ................................ id‬‬
‫دﺳﺘﻮرات ﻣﻔﯿﺪ ‪115 ............................... ................................ ................................ ................................ ifconfig‬‬
‫ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﺗﻨﻈﯿﻤﺎت ﺷﺒﮑﻪ ‪115 ........................... ................................ ................................ ................................‬‬
‫‪. Shred‬ﺑﺎزﻧﻮﯾﺴﯽ ﯾﮏ ﻓﺎﯾﻞ ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن ﻣﺤﺘﻮا ‪119 ............................... ................................ ................................‬‬
‫ﭘﺎك ﮐﺮدن ‪ -‬اﯾﻤﻦ ﭘﺎك ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ در ‪120 ...................................... ................................ ................................ linux‬‬
‫ﺟﻌﺒﻪ اﺑﺰار ﺣﺬف اﻣﻦ ﺑﺮاي ‪120 ....................................................... ................................ ................................ linux‬‬
‫‪121 ........................................... ................................ ................................ ................................ Sfill-Secure‬‬
‫‪122 ................................................. ................................ ................................ ................................ sdmem‬‬
‫ﻣﺎﻧﯿﺘﻮرﯾﻨﮓ ‪123 ................................................ ................................ ................................ ................................‬‬
‫دﺳﺘﻮر‪125 ................................................. ................................ ................................ ................................ iw‬‬
‫ﻓﺮﻣﺎن‪125 ............................................. ................................ ................................ ................................ iwlist‬‬
‫دﺳﺘﻮر ‪126 ................................................ ................................ ................................ ................................ kill‬‬
‫دﺳﺘﻮر‪128 ................................................ ................................ ................................ ................................ last‬‬
‫ﻓﺮﻣﺎن ورود ‪128 ................................................ ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ‪ lsof‬ﻧﻤﻮﻧﻪ در ‪128 ............................ ................................ ................................ ................................ linux‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ‪129 ................................ ................................ ................................ ................................ lsof linux‬‬
‫ﺟﺴﺘﺠﻮ ﺗﻮﺳﻂ‪131 ...................................... ................................ ................................ ................................ PID‬‬
‫دﺳﺘﻮرات ‪ Netstat‬ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ﺷﺒﮑﻪ ‪132 ...................................... ................................ ................................ linux‬‬
‫دﺳﺘﻮر ‪132 ........................................ ................................ ................................ ................................ Netstat‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ‪135 .......................................... ................................ ................................ ................................ tar‬‬
‫ﻓﺮﻣﺎن‪142 ........................................... ................................ ................................ ................................ pstree‬‬
‫ﻓﺮﻣﺎن‪142 .............................................. ................................ ................................ ................................ pwd‬‬
‫ﻓﺮﻣﺎن‪142 ........................................... ................................ ................................ ................................ pstree‬‬

‫‪8‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪9‬‬

‫ﻓﺮﻣﺎن‪142 .............................................. ................................ ................................ ................................ pwd‬‬


‫ﻓﺮﻣﺎن‪142 .................................. ................................ ................................ ................................ rdiff-backup‬‬
‫دﺳﺘﻮر‪142 .......................................... ................................ ................................ ................................ restart‬‬
‫ﺗﻐﯿﯿﺮ ﻧﺎم دﺳﺘﻮر ‪142 ........................................... ................................ ................................ ................................‬‬
‫ﻓﺮﻣﺎن‪142 ................................................. ................................ ................................ ................................ rm‬‬
‫ﻣﺮاﻗﺐ ﺑﺎﺷﯿﺪ ﺑﺎ!‪143 .................................... ................................ ................................ ................................ RM‬‬
‫دﺳﺘﻮر ﻓﺮﻣﺎن‪143 .................................... ................................ ................................ ................................ rmdir‬‬
‫دﺳﺘﻮر‪143 ..................................... ................................ ................................ ................................ shutdown‬‬
‫دﺳﺘﻮر‪143 ............................................... ................................ ................................ ................................ stat‬‬
‫دﺳﺘﻮر‪144 .................................................. ................................ ................................ ................................ su‬‬
‫دﺳﺘﻮر‪144 ............................................. ................................ ................................ ................................ sudo‬‬
‫ﻓﺮﻣﺎن ‪144 ............................................ ................................ ................................ ................................ touch‬‬
‫ﻓﺮﻣﺎن ‪144 ............................................... ................................ ................................ ................................ wall‬‬
‫ﻧﺴﺨﻪ ‪145 .............................................. ................................ ................................ ................................ linux‬‬
‫ﻣﺸﺎﻫﺪه ﻧﺴﺨﻪ ﮐﺮﻧﻞ ‪145 ............................. ................................ ................................ ................................ linux‬‬
‫زﻣﺎن و آﻣﺎر اﺟﺮاي ‪149 ........................... ................................ ................................ ................................ system‬‬
‫‪tuptime‬ﭼﯿﺴﺖ؟ ‪149 ...................................... ................................ ................................ ................................‬‬
‫اﺑﺰار ‪150 ................................. ................................ ................................ ................................ Clone tuptime‬‬
‫ﺑﺮرﺳﯽ آﺧﺮﯾﻦ ﺧﺎﻣﻮش ﺷﺪن ‪153 .................................................... ................................ ................................ linux‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ‪ WC‬ﺑﺮاي ﺷﻤﺎرش ﺗﻌﺪاد ﺧﻄﻮط‪ ،‬ﮐﻠﻤﺎت‪ ،‬ﺷﺨﺼﯿﺖ ﻫﺎ در ‪155 ..................................... ................................ linux‬‬
‫‪157 ..................................................... ................................ ................................ ................................ wget‬‬
‫اﯾﺠﺎد و ﺣﺬف ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ ‪159 ........................ ................................ ................................ ................................‬‬
‫دﺳﺘﻮر ﺗﺎرﯾﺨﭽﻪ ‪160 ........................................... ................................ ................................ ................................‬‬
‫‪160 ..................................................... ................................ ................................ ................................ clear‬‬
‫‪161 ..................................................... ................................ ................................ ................................ ncdu‬‬
‫‪161 ..................................................... ................................ ................................ ................................ htop‬‬
‫ﻣﺘﻐﯿﺮﻫﺎي ﻣﺤﯿﻄﯽ و ﻧﺎم ﻣﺴﺘﻌﺎر ‪161 ......................... ................................ ................................ ................................‬‬
‫ﻧﺎم ﻣﺴﺘﻌﺎر ‪162 ................................................. ................................ ................................ ................................‬‬
‫ﭘﯿﻨﮓ ‪162 ................................... ................................ ................................ ................................ wget / curl /‬‬
‫‪163 ......................... ................................ ................................ ................................ apt / gunzip / tar / gzip‬‬
‫ﻧﺼﺐ ﺑﺮﻧﺎﻣﻬﺎ از ﺗﺮﻣﯿﻨﺎل ‪163 .................................. ................................ ................................ ................................‬‬
‫ﭼﮕﻮﻧﮕﯽ اﺳﺘﻔﺎده از ﺟﺪﯾﺪ ﺑﺴﺘﻪ اﺑﺰار ﭘﯿﺸﺮﻓﺘﻪ )‪ (APT‬در ‪ / ubuntu‬دﺑﯿﺎن ‪164 ........................................ ................................‬‬
‫ﭘﯿﺪا ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎي ﻧﺼﺐ ﺷﺪه ‪165 ......................... ................................ ................................ ................................‬‬
‫ﻣﺸﺎﻫﺪه اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺑﺴﺘﻪ ‪166......................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮرات ‪ APT-GET‬و ‪171 ............................................... ................................ ................................ APT-CACHE‬‬
‫ﻓﺮﻣﺎن‪175 ............................................... ................................ ................................ ................................ ATQ‬‬
‫ﻓﺮﻣﺎن ‪175 .............................................. ................................ ................................ ................................ atrm‬‬
‫دﺳﺘﻮر ﻓﺮﻣﺎن‪175 ............................. ................................ ................................ ................................ basename‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده ﻣﻌﻤﻮﻟﯽ ‪175 ......................... ................................ ................................ ................................ bzip2 :‬‬
‫ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ‪ bzip2‬در ‪176 ................................. ................................ ................................ linux‬‬
‫ﻣﺪﯾﺮﯾﺖ ﮐﺎرﺑﺮ و ﮔﺮوه ‪177 ..................................... ................................ ................................ ................................‬‬
‫اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﮐﺎرﺑﺮ ‪177 .................................... ................................ ................................ ................................‬‬
‫ﺣﺬف ﯾﮏ ﮐﺎرﺑﺮ ‪177 ........................................... ................................ ................................ ................................‬‬
‫ﻓﺮﻣﺎن‪177 ...................................................... ................................ ................................ adduser / addgroup‬‬

‫‪9‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪10‬‬

‫اﺿﺎﻓﻪ ﮐﺮدن اﻃﻼﻋﺎت ﺑﻪ ﮐﺎرﺑﺮ ‪185 ........................... ................................ ................................ ................................‬‬


‫ﺗﻐﯿﯿﺮ داﯾﺮﮐﺘﻮري ﺻﻔﺤﻪ ﮐﺎرﺑﺮ ‪185 ........................... ................................ ................................ ................................‬‬
‫ﺗﻨﻈﯿﻢ ﺗﺎرﯾﺦ اﻧﻘﻀﺎ ﺣﺴﺎب ﮐﺎرﺑﺮي ‪186 ....................................................... ................................ ................................‬‬
‫ﺗﻐﯿﯿﺮ ﮔﺮوه اوﻟﯿﻪ ﮐﺎرﺑﺮ ‪187 .................................... ................................ ................................ ................................‬‬
‫دﺳﺘﻮرات ﻣﻤﻨﻮﻋﻪ ‪189 ......................................... ................................ ................................ ................................‬‬
‫ﻣﻔﻬﻮم‪190 .................................................. ................................ ................................ ................................ TLDR‬‬

‫‪10‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪11‬‬

‫ﺗﻘﺪﯾﻢ ﺑﻪ ﺗﻮ‬

‫ﯾﮕﺎﻧﻪ ﻓﺮزاﻧﻪ دﻟﻢ‬

‫‪11‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪12‬‬

‫ﭘﻮﺳﺘﻪ ﭼﯿﺴﺖ؟‬
‫ﺑﻪ ﻋﺒﺎرت ﺳﺎده‪ ،‬ﭘﻮﺳﺘﻪ ﯾﮏ ﺑﺮﻧﺎﻣﻪ اﺳﺖ ﮐﻪ دﺳﺘﻮرات را از ﺻﻔﺤﻪ ﮐﻠﯿﺪ ﻣﯽ ﮔﯿﺮد و آﻧﻬﺎ را ﺑﻪ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻣﯽ دﻫﺪ‬
‫ﺗﺎ اﺟﺮا ﺷﻮد‪ .‬در روزﻫﺎي ﮔﺬﺷ ﺘﻪ‪ ،‬اﯾﻦ ﺗﻨﻬﺎ راﺑﻂ ﮐﺎرﺑﺮي ﻣﻮﺟﻮد در ﺳﯿﺴﺘﻢ ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ ﻟﯿﻨﻮﮐﺲ ﺑﻮد‪ .‬اﻣﺮوزه ﻣﺎ‬
‫راﺑﻄﻬﺎي ﮐﺎرﺑﺮي ﮔﺮاﻓﯿﮑﯽ )‪ (GUI‬را ﻋﻼوه ﺑﺮ راﺑﻄﻬﺎي ﺧﻂ ﻓﺮﻣﺎن )‪ (CLI‬ﻣﺎﻧﻨﺪ ﭘﻮﺳﺘﻪ دارﯾﻢ‪.‬‬
‫در اﮐﺜﺮ ﺳﯿﺴﺘﻢ ﻫﺎي ﻟﯿﻨﻮﮐﺲ ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻧﺎم( ‪ bash‬ﮐﻪ ﺑﺮاي ‪ Bourne Again Sheell‬ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد‪،‬‬
‫ﻧﺴﺨﻪ ﭘﯿﺸﺮﻓﺘﻪ ﯾﻮﻧﯿﮑﺲ ﭘﻮﺳﺘﻪ اﺻﻠﯽ ‪ sh‬اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ‪ Steve Bourne‬ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ( ﺑﻪ ﻋﻨﻮان ﺑﺮﻧﺎﻣﻪ‬
‫ﭘﻮﺳﺘﻪ ﻋﻤﻞ ﻣﯽ ﮐﻨﺪ‪ .‬ﻋﻼوه ﺑﺮ‪ ، bash‬دﯾﮕﺮ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﭘﻮﺳﺘﻪ وﺟﻮد دارد ﮐﻪ ﻣﯽ ﺗﻮاﻧﻨﺪ در ﯾﮏ ﺳﯿﺴﺘﻢ ﻟﯿﻨﻮﮐﺲ‬
‫ﻧﺼﺐ ﺷﻮﻧﺪ‪ .‬اﯾﻨﻬﺎ ﻋﺒﺎرﺗﻨﺪ از‪tcsh ،: ksh‬و‪zsh.‬‬
‫ﺗﺮﻣﯿﻨﺎل ﭼﯿﺴﺖ؟‬
‫اﯾﻦ ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﺷﺒﯿﻪ ﺳﺎز ﺗﺮﻣﯿﻨﺎل اﺳﺖ‪ .‬اﯾﻦ ﯾﮏ ﺑﺮﻧﺎﻣﻪ اﺳﺖ ﮐﻪ ﯾﮏ ﭘﻨﺠﺮه را ﺑﺎز ﻣﯽ ﮐﻨﺪ و ﺑﻪ ﺷﻤﺎ اﺟﺎزه ﻣﯽ دﻫﺪ‬
‫ﺑﺎ ﭘﻮﺳﺘﻪ ارﺗﺒﺎط ﺑﺮﻗﺮار ﮐﻨﯿﺪ‪ .‬ﺗﻌﺪادي از ﺷﺒﯿﻪ ﺳﺎزﻫﺎي ﺗﺮﻣﯿﻨﺎل ﻣﺨﺘﻠﻒ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪ .‬اﮐﺜﺮ ﺗﻮزﯾﻌﻬﺎي‬
‫ﻟﯿﻨﻮﮐﺲ ﭼﻨﺪﯾﻦ را ﻋﺮﺿﻪ ﻣﯽ ﮐﻨﻨﺪ‪ ،‬ﻣﺎﻧﻨﺪ‪nxterm . ،kvt ،rxvt ،xterm ،konsole ،: gnome-terminal‬‬

‫‪A Typical Modern Terminal‬‬

‫‪xterm‬‬

‫‪12‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪13‬‬

‫‪rxvt‬‬

‫‪13‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 14

Modern Power Terminals

terminator

14
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 15

gnome-terminal

Connectbot

15
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪16‬‬

‫‪Connectbot‬ﯾﮏ ﭘﻮﺳﺘﻪ اﻣﻦ ﺑﺮاي آﻧﺪروﯾﺪ اﺳﺖ ‪.‬ﺑﺎ اﯾﻦ ﮐﺎر ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﻪ ﻫﺮ ﺳﯿﺴﺘﻤﯽ ﮐﻪ ﯾﮏ ﺳﺮور ‪ SSH‬را راه‬
‫اﻧﺪازي ﻣﯽ ﮐﻨﯿﻢ وارد ﺷﻮﯾﺪ ‪.‬ﺑﺮاي ﺳﯿﺴﺘﻢ از راه دور‪Connectbot ،‬ﺑﻪ ﻧﻈﺮ ﻣﯽ رﺳﺪ ﯾﮏ ﺗﺮﻣﯿﻨﺎل ﺑﺎ اﺳﺘﻔﺎده از ﻧﻮع‬
‫ﺗﺮﻣﯿﻨﺎل ‪ Screen GNU‬اﺳﺖ‪.‬‬
‫‪Termux‬‬

‫ﺑﺮﻧﺎﻣﻪ ‪ Termux‬ﺑﺮاي ‪ Android‬ﺑﻪ ﻃﻮر ﻏﯿﺮ ﻣﻨﺘﻈﺮه اي ﺷﮕﻔﺖ اﻧﮕﯿﺰ اﺳﺖ ‪.‬اﯾﻦ ﻓﺮاﺗـﺮ از ﯾـﮏ ‪ SSH‬اﺳـﺖ؛ اﯾـﻦ‬
‫ﺑﺮﻧﺎﻣﻪ ﯾﮏ ﻣﺤﯿﻂ ﭘﻮﺳﺘﻪ ﮐﺎﻣﻞ را در ‪ Android‬ﺑﺪون ﻧﯿﺎز ﺑﻪ رﯾﺸﻪ ﮐﻦ ﮐﺮدن دﺳﺘﮕﺎه ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‪.‬ﭘـﺲ از ﻧﺼـﺐ‪،‬‬
‫ﯾﮏ ﺳﯿﺴﺘﻢ ﭘﺎﯾﻪ ﺣﺪاﻗﻞ ﺑﺎ ﭘﻮﺳﺘﻪ )‪ (bash‬و ﺑﺴﯿﺎري از اﺑﺰارﻫﺎي راﯾﺞ وﺟﻮد دارد ‪.‬در اﺑﺘﺪا اﯾﻦ اﺑﺰارﻫﺎي ﻣﻔﯿﺪ ﻫﺴﺘﻨﺪ‬
‫ﮐﻪ در ‪ busybox‬ﺳﺎﺧﺘﻪ ﺷﺪه اﻧﺪ‬

‫‪16‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 17

xterm:
xterm on Wikipedia: https://en.wikipedia.org/wiki/Xterm
Homepage for the current maintainer of xterm, Thomas Dickey: http://invisible-
island.net/xterm/

Tektronix 4014:
Tektronix 4014 on Wikipedia: https://en.wikipedia.org/wiki/Tektronix_4010
Some background on the 4014 at Chilton Computing: http://www.chilton-
computing.org.uk/acd/icf/terminals/p005.htm

rxvt:
Home page for rxvt: http://rxvt.sourceforge.net/

urxvt (rxvt-Unicode):
Home page for the rxvt-Unicode project: http://software.schmorp.de/pkg/rxvt-
unicode.html

gnome-terminal:
Help pages for gnome-terminal: https://help.gnome.org/users/gnome-terminal/stable/

konsole:
The Konsole Manual at the KDE Project:
https://docs.kde.org/stable5/en/applications/konsole/index.html

guake:
The home page for the guake project: http://guake-project.org/
The Arch Wiki entry for guake (contains a lot of useful information but some is Arch
Linux specific): https://wiki.archlinux.org/index.php/Guake

terminator:
The home page for the terminator project:
http://gnometerminator.blogspot.com/p/introduction.html

Connectbot:
Connectbot at the Google Play Store:
https://play.google.com/store/apps/details?id=org.connectbot&hl=en

17
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 18

Hacker's Keyboard:
Hacker's Keyboard at the Google Play Store:
https://play.google.com/store/apps/details?id=org.pocketworkstation.pckeyboard&hl=
en

Termux:
Termux at the Google Play Store:
https://play.google.com/store/apps/details?id=com.termux&hl=en

‫ﻣﯿﺎﻧﺒﺮﻫﺎي ﺗﺮﻣﯿﻨﺎل‬
Shortcut Action
Ctrl-Shift-N New Window
Ctrl-Shift-W Close Window
F11 View terminal full screen
Shift-PgUp Scroll up
Shift-PgDn Scroll down
Shift-Home Scroll to the beginning
Shift-End Scroll to the end
Ctrl-Shift-T New Tab
Ctrl-Shift-Q Close Tab
Ctrl-PgUp Next Tab
Ctrl-PgDn Previous Tab
Alt-n Where n is a number in the range of 1 to 9, go to

‫ﺑﺎزﮐﺮدن ﯾﮏ ﺗﺮﻣﯿﻨﺎل‬
‫ از ﻃﺮﯾﻖ ﻟﯿﺴﺖ ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﺑﺒﯿﻨﯿﺪ ﮐﻪ آﯾﺎ‬.‫ﻣﺪﯾﺮ ﭘﻨﺠﺮه ﺷﻤﺎ اﺣﺘﻤﺎﻻ ﯾﮏ راه ﺑﺮاي راه اﻧﺪازي ﯾﮏ ﺗﺮﻣﯿﻨﺎل از ﻣﻨﻮ دارد‬
‫" ﻧﺎم‬konsole" ‫ ﺑﺮﻧﺎﻣﻪ ﺗﺮﻣﯿﻨﺎل ﺑﻪ ﻧﺎم‬،‫ ﻫﺴﺘﯿﺪ‬KDE ‫ اﮔﺮ ﺷﻤﺎ ﯾﮏ ﮐﺎرﺑﺮ‬.‫ﭼﯿﺰي ﺷﺒﯿﻪ ﯾﮏ ﺷﺒﯿﻪ ﺳﺎز ﺗﺮﻣﯿﻨﺎل اﺳﺖ‬
‫ در ﺣﺎﻟﯽ ﮐﻪ ﺗﻌﺪادي از ﺷﺒﯿﻪ ﺳﺎزﻫﺎي‬. ‫" ﻧﺎﻣﮕﺬاري ﻣﯽ ﮐﻨﺪ‬gnome-terminal" ‫ آن را‬Gnome ‫ در‬،‫دارد‬
.‫ آﻧﻬﺎ ﺑﻪ ﯾﮏ ﺟﻠﺴﻪ ﭘﻮﺳﺘﻪ دﺳﺘﺮﺳﯽ دارﻧﺪ‬.‫ ﻫﻤﻪ آﻧﻬﺎ ﻫﻤﺎن ﮐﺎر را اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ‬،‫ﻣﺨﺘﻠﻒ ﺗﺮﻣﯿﻨﺎل وﺟﻮد دارد‬

18
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪19‬‬

‫ﺗﺴﺖ ﺻﻔﺤﻪ ﮐﻠﯿﺪ‬


‫ﺧﻮب‪ ،‬ﺑﯿﺎﯾﯿﺪ ﺗﺎﯾﭗ ﮐﻨﯿﻢ ﭘﻨﺠﺮه ي ﺗﺮﻣﯿﻨﺎل را ﺑﺎزﮐﻨﯿﺪ‪ .‬ﺷﻤﺎ ﺑﺎﯾﺪ ﯾﮏ ﭘﺮس و ﺟﻮ ﭘﻮﺳﺘﻪ را ﮐﻪ ﺣﺎوي ﻧﺎم ﮐﺎرﺑﺮي ﺷﻤﺎ‬
‫و ﻧﺎم دﺳﺘﮕﺎه اﺳﺖ و ﯾﮏ ﻋﻼﻣﺖ دﻻر را ﻧﺸﺎن ﻣﯽ دﻫﺪ ‪ .‬ﭼﯿﺰي ﻣﺜﻞ اﯾﻦ‪:‬‬
‫‪$‬‬

‫دﺳﺘﻮر ﭼﯿﺴﺖ؟‬
‫دﺳﺘﻮرات ﻣﯽ ﺗﻮاﻧﺪ ﯾﮑﯽ از ‪ 4‬ﻧﻮع ﻣﺨﺘﻠﻒ ﺑﺎﺷﺪ ‪:‬‬
‫ﯾﮏ ﺑﺮﻧﺎﻣﻪ اﺟﺮاﯾﯽ ‪ ،‬ﻫﻤﺎن ﻓﺎﯾﻠﻬﺎﯾﯽ ﮐﻪ در ‪ / usr / bin‬دﯾﺪه اﯾﻢ ‪ ،.‬ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺑﺎﯾﻨﺮي ﻣﯽ ﺗﻮاﻧﻨﺪ ﻣﺎﻧﻨﺪ‬ ‫‪.1‬‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻧﻮﺷﺘﻪ ﺷﺪه در ‪ C‬و‪ ، C ++‬ﯾﺎ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻧﻮﺷﺘﻪ ﺷﺪه در زﺑﺎن ﻫﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﻣﺎﻧﻨﺪ ﭘﻮﺳﺘﻪ‪ ،‬ﭘﺮل‪،‬‬
‫ﭘﺎﯾﺘﻮن‪ ،‬روﺑﯽ و ﻏﯿﺮه را ﮐﺎﻣﭙﺎﯾﻞ ﮐﻨﻨﺪ ‪.‬‬
‫ﯾﮏ دﺳﺘﻮر درون ‪ bash‬وﺟﻮد دارد‪.‬‬ ‫‪.2‬‬
‫ﺗﺎﺑﻊ ‪:‬اﯾﻦ اﺳﮑﺮﯾﭙﺖ ﻫﺎي ﭘﻮﺳﺘﻪ ﻣﯿﻨﯿﺎﺗﻮري ﻫﺴﺘﻨﺪ ﮐﻪ در ﻣﺤﯿﻂ ﻗﺮار دارﻧﺪ‪. .‬‬ ‫‪.3‬‬
‫ﻧﺎم ﻣﺴﺘﻌﺎر دﺳﺘﻮراﺗﯽ ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺧﻮدﺗﺎن را ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ‪ ،‬از دﺳﺘﻮرات دﯾﮕﺮ ﺳﺎﺧﺘﻪ ﺷﺪه اﺳﺖ ‪.‬‬ ‫‪.4‬‬

‫اﻧﻮاع ﭘﻮﺳﺘﻪ‬
‫ﯾﮑﯽ از اﻧﻮاع راﯾﺞ ‪ Login shells‬ﻣﯽ ﺑﺎﺷﺪ‪ .‬ﭘﻮﺳﺘﻪ ﻫﺎي ﺗﻌﺎﻣﻠﯽ ﭘﻮﺳﺘﻪ ﻫﺎﯾﯽ ﻫﺴﺘﻨﺪ ﮐﻪ دﺳﺘﻮرات را ﻣﯽ ﭘﺬﯾﺮﻧﺪ‪.‬‬
‫‪ Shells‬ﻣﯽ ﺗﻮاﻧﺪ ورودي و ﺗﻌﺎﻣﻠﯽ‪ ،‬ﻏﯿﺮ ورودي و ﻏﯿﺮ ﺗﻌﺎﻣﻠﯽ‪ ،‬و ﯾﺎ ﻫﺮ ﺗﺮﮐﯿﺒﯽ دﯾﮕﺮ ﺑﺎﺷﺪ‪.‬‬

‫‪19‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪20‬‬

‫ﻋﻼوه ﺑﺮ ﻓﺎﯾﻞ ‪ ، bashrc.‬ﭼﻨﺪﯾﻦ اﺳﮑﺮﯾﭙﺖ دﯾﮕﺮ ﻧﯿﺰ وﺟﻮد دارد ﮐﻪ ﺑﻮﺳﯿﻠﻪ ﭘﻮﺳﺘﻪ ﺑﻪ ﻃﻮر ﺧﻮدﮐﺎر ﻫﻨﮕﺎم ورود و ﺑﺎﻻ‬
‫آﻣﺪن ﺳﯿﺴﺘﻢ ﯾﺎ ﺧﺮوج از ‪ system‬ﺗﻐﯿﺮات در اﻧﻬﺎ ذﺧﯿﺮه ﻣﯽ ﺷﻮﻧﺪ‪:‬‬
‫‪‬‬ ‫‪/etc / profile‬‬
‫‪ . / ~bash_profile‬‬
‫‪ . / ~bash_login‬‬
‫‪ . / ~profile‬‬
‫‪ . / ~bash_logout‬‬
‫‪ /etc/bash.bash_logout‬‬

‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﭘﻮﺳﺘﻪ ﻫﺎي ﻣﺨﺘﻠﻒ ﻧﯿﺰ وﺟﻮد دارد ‪ .‬ﺳﺎﯾﺮ ﻣﻮارد راﯾﺞ ﻋﺒﺎرﺗﻨﺪ از ‪ fish ، csh ، zsh‬و ﻏﯿﺮه‪.‬‬

‫‪linux system file‬‬


‫در ﯾﮏ راﯾﺎﻧﻪ‪ ،‬ﯾﮏ ‪ system‬ﻓﺎﯾﻞ‪ ،‬ﺷﯿﻮه اي اﺳﺖ ﮐﻪ ﻓﺎﯾﻞ ﻫﺎ ﻧﺎﻣﮕﺬاري ﻣﯽ ﺷﻮﻧﺪ و ﻣﻨﻄﻘﯽ ﺑﺮاي ذﺧﯿﺮه‪ ،‬ﺑﺎزﯾﺎﺑﯽ و ﺑﻪ‬
‫روز رﺳﺎﻧﯽ داده ﻫﺎ و ﻫﻤﭽﻨﯿﻦ اﺳﺘﻔﺎده از ﻣﺪﯾﺮﯾﺖ ﻓﻀﺎي در دﺳﺘﮕﺎه ﻫﺎي ﻣﻮﺟﻮد اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪ system‬ﻓﺎﯾﻞ در دو ﺑﺨﺶ ﺑﻪ ﻧﺎم ‪User Data and Metadata‬ﺗﻘﺴﯿﻢ ﺷﺪه اﺳﺖ‪.‬در اﯾﻦ ﮐﺘﺎب ﺳﻌﯽ ﻣﯽ ﮐﻨﻢ‬
‫ﻧﺤﻮه اﯾﺠﺎد و ﺗﺒﺪﯾﻞ ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﺘﻠﻒ ‪ linux‬و ﺗﻔﺎوت ﻫﺎي ﺳﻄﺢ ﺑﺎﻻ در ‪ system‬ﻫﺎي ‪Ext3 ،Ext2‬و ‪Ext4‬را‬
‫ﺑﺮرﺳﯽ ﮐﻨﻢ‪.‬‬

‫ﺳﺎزﻣﺎن ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ‬


‫ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ﺳﯿﺴﺘﻢ ﻟﯿﻨﻮﮐﺲ در ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ﺳﻠﺴﻠﻪ ﻣﺮاﺗﺒﯽ ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ ‪.‬اﯾﻦ ﺑﺪان ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ آﻧﻬﺎ‬
‫در ﯾﮏ اﻟﮕﻮي درﺧﺘﯽ داﯾﺮﮐﺘﻮري )ﭘﻮﺷﻪ ﻫﺎي ﻧﺎﻣﯿﺪه ﺷﺪه در ﺳﺎﯾﺮ ﺳﯿﺴﺘﻢ ﻫﺎ( ﺳﺎزﻣﺎﻧﺪﻫﯽ ﺷﺪه اﻧﺪ‪ ،‬ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ‬
‫ﺣﺎوي ﻓﺎﯾﻞ ﻫﺎ و ﺳﺎﯾﺮ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﺎﺷﺪ ‪.‬اوﻟﯿﻦ داﯾﺮﮐﺘﻮري در ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ داﯾﺮﮐﺘﻮري رﯾﺸﻪ ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد ‪.‬‬
‫داﯾﺮﮐﺘﻮري رﯾﺸﻪ ﺣﺎوي ﻓﺎﯾﻞ ﻫﺎ و زﯾﺮ ﺷﺎﺧﻪ ﻫﺎ اﺳﺖ ﮐﻪ ﺣﺎوي ﻓﺎﯾﻞ ﻫﺎ و زﯾﺮ ﺷﺎﺧﻪ ﻫﺎ و ﻏﯿﺮه و ﻏﯿﺮه ﻫﺴﺘﻨﺪ ‪.‬اﮐﺜﺮ‬
‫ﻣﺤﯿﻂ ﻫﺎي ﮔﺮاﻓﯿﮑﯽ اﻣﺮوز ﺷﺎﻣﻞ ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﻣﺪﯾﺮﯾﺖ ﻓﺎﯾﻞ ﺑﺮاي ﻣﺸﺎﻫﺪه و دﺳﺘﮑﺎري ﻣﺤﺘﻮﯾﺎت ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ ﻣﯽ‬
‫ﺑﺎﺷﺪ ‪.‬اﻏﻠﺐ ﺷﻤﺎ ﻓﺎﯾﻞ ﺳﯿﺴﺘﻢ را ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﯿﺪ‪:‬‬

‫‪20‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪21‬‬

‫ﯾﮑﯽ از ﺗﻔﺎوت ﻫﺎي ﻣﻬﻢ ﺑﯿﻦ ﺳﺎﯾﺮﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ و ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎي ﻣﺸﺎﺑﻪ ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ ﻟﯿﻨﻮﮐﺲ اﯾﻦ اﺳﺖ ﮐﻪ‬
‫ﻟﯿﻨﻮﮐﺲ ﻣﻔﻬﻮم ﺣﺮوف دراﯾﻮ را اﺳﺘﻔﺎده ﻧﻤﯽ ﮐﻨﺪ ‪.‬در ﺣﺎﻟﯽ ﮐﻪ ﺣﺮوف دراﯾﻮ ﻓﺎﯾﻞ ﺳﯿﺴﺘﻢ را ﺑﻪ ﯾﮏ ﺳﺮي درﺧﺖ‬
‫ﻫﺎي ﻣﺨﺘﻠﻒ ﺗﻘﺴﯿﻢ ﻣﯽ ﮐﻨﺪ )ﯾﮑﯽ ﺑﺮاي ﻫﺮ دراﯾﻮ(‪ ،‬ﻟﯿﻨﻮﮐﺲ ﻫﻤﯿﺸﻪ ﯾﮏ درﺧﺖ ﺗﻨﻬﺎ دارد ‪.‬دﺳﺘﮕﺎه ﻫﺎي ﻣﺨﺘﻠﻒ‬
‫ذﺧﯿﺮه ﺳﺎزي ﻣﻤﮑﻦ اﺳﺖ ﺷﺎﺧﻪ ﻫﺎي ﻣﺨﺘﻠﻒ درﺧﺖ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ ،‬اﻣﺎ ﻫﻤﯿﺸﻪ ﯾﮏ درﺧﺖ ﺗﻨﻬﺎ وﺟﻮد دارد‪.‬‬

‫‪Ext2 -‬‬
‫‪ system‬ﻓﺎﯾﻞ ‪ Ext2‬در ﺳﺎل ‪ 1993‬ﻣﻌﺮﻓﯽ ﺷﺪ و ‪Ext2‬ﺗﻮﺳﻂ ‪Remy Card‬ﺗﻮﺳﻌﻪ داده‬ ‫‪.1‬‬
‫ﺷﺪ‪.‬اﯾﻦ اوﻟﯿﻦ ‪ system‬ﻓﺎﯾﻞ ﭘﯿﺶ ﻓﺮض در ﭼﻨﺪﯾﻦ ﺗﻮزﯾﻊ ‪ linux‬ﺑﻮد ﻣﺎﻧﻨﺪ ‪ RedHat‬و دﺑﯿﺎن‪.‬‬
‫اﯾﻦ ﺑﺮاي ﻏﻠﺒﻪ ﺑﺮ ﻣﺤﺪودﯾﺖ ‪system Ext file‬ﺑﻮد‪.‬‬ ‫‪.2‬‬
‫ﺣﺪاﮐﺜﺮ اﻧﺪازه ﻓﺎﯾﻞ ‪16‬ﮔﯿﮕﺎﺑﺎﯾﺖ اﺳﺖ‬ ‫‪.3‬‬
‫اﯾﻦ ﺑﺮاي رﺳﺎﻧﻪ ﻫﺎي ذﺧﯿﺮه ﺳﺎزي ﻣﻌﻤﻮﻟﯽ ﻓﻠﺶ ﻣﺎﻧﻨﺪ دراﯾﻮ ‪ USB‬ﻓﻠﺶ ‪ ،‬ﮐﺎرت‪ SD‬و ﻏﯿﺮه‬ ‫‪.4‬‬
‫ﻣﯽ ﺷﻮد‪.‬‬ ‫اﺳﺘﻔﺎده‬
‫‪Ext3 -‬‬
‫‪ system‬ﻓﺎﯾﻞ ‪ Ext3‬در ﺳﺎل ‪ 2001‬ﻣﻌﺮﻓﯽ ﺷﺪ و ﻫﻤﯿﻨﻄﻮر در ‪Kernel 2.4.15‬ﺑﺎ وﯾﮋﮔﯽ‬ ‫‪.1‬‬
‫‪journaling‬ﯾﮑﭙﺎرﭼﻪ ﺷﺪه اﺳﺖ ﮐﻪ اﯾﻦ اﻣﺮ ﺑﺮاي ﺑﻬﺒﻮد ﻗﺎﺑﻠﯿﺖ اﻃﻤﯿﻨﺎن و ﺣﺬف ﻧﯿﺎز ﺑﻪ ﺑﺮرﺳﯽ ‪system‬‬
‫ﻓﺎﯾﻞ ﭘﺲ از ﺧﺎﻣﻮش ﺷﺪن اﺳﺖ‪.‬‬
‫ﺣﺪاﮐﺜﺮ اﻧﺪازه ﻓﺎﯾﻞ ‪16GB - 2TB .‬‬ ‫‪.2‬‬
‫اراﺋﻪ اﻣﮑﺎﻧﺎت ﺑﺮاي ارﺗﻘﺎ از ‪ system‬ﻓﺎﯾﻞ ‪ Ext2‬ﺑﻪ ‪ Ext3‬ﺑﺪون ﻧﯿﺎز ﺑﻪ ﭘﺸﺘﯿﺒﺎن ﮔﯿﺮي و‬ ‫‪.3‬‬
‫ﺑﺎزﮔﺮداﻧﺪن داده ﻫﺎ‪.‬‬

‫‪21‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪22‬‬

‫‪Ext4 -‬‬
‫‪ ،Ext4‬ﭘﯿﺸﮕﺎم‪ Ext3‬ﭘﯿﺶ ﺑﯿﻨﯽ ﺷﺪه‪.‬‬ ‫‪.1‬‬
‫در اﮐﺘﺒﺮ ‪Ext4 ،2008‬ﺑﻪ ﻋﻨﻮان ﮐﺪ ﭘﺎﯾﺪار در ‪Kernel 2.6.28‬ادﻏﺎم ﺷﺪ ﮐﻪ ﺷﺎﻣﻞ ‪system‬‬ ‫‪.2‬‬
‫ﻓﺎﯾﻞ ‪ext4‬اﺳﺖ‪.‬‬
‫ﺣﺪاﮐﺜﺮ اﻧﺪازه ﻓﺎﯾﻞ ‪16GB‬ﺗﺎ ‪TB 16‬اﺳﺖ‪.‬‬ ‫‪.3‬‬
‫‪ system‬ﻓﺎﯾﻞ ‪ ext4‬ﮔﺰﯾﻨﻪ اي ﺑﺮاي ﻏﯿﺮﻓﻌﺎل ﮐﺮدن وﯾﮋﮔﯽ ‪ journaling‬را دارد‪.‬‬ ‫‪.4‬‬
‫وﯾﮋﮔﯽ ﻫﺎي دﯾﮕﺮ ﻣﺎﻧﻨﺪ ﻣﻘﯿﺎس ﭘﺬﯾﺮي زﯾﺮ داﯾﺮﮐﺘﻮري ‪ ،‬اﺧﺘﺼﺎص ﭼﻨﺪ ﺑﻼك ‪ ،‬ﺗﺨﺼﯿﺺ ﺗﺎﺧﯿﺮ ‪،‬‬ ‫‪.5‬‬
‫‪FSCK‬ﺳﺮﯾﻊ و ﻏﯿﺮه‬

‫ﻧﺤﻮه ﺗﻌﯿﯿﻦ ﻧﻮع ﻓﺎﯾﻞ ‪system‬‬


‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﻧﻮع ‪ system‬ﻓﺎﯾﻞ ‪ ،linux‬دﺳﺘﻮر زﯾﺮ را در ﺗﺮﻣﯿﻨﺎل ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮐﺎرﺑﺮ ‪ root‬اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫"‪# df -hT | grep "^ / dev‬‬
‫ﺧﺮوﺟﯽ‬
‫‪/ dev / sda3 ext3 /‬‬
‫‪/ dev / sda1 ext3 / boot‬‬

‫اﯾﺠﺎد ‪ Ext2‬ﯾﺎ ‪ Ext3‬ﯾﺎ ‪ system‬ﻓﺎﯾﻞ‪Ext4‬‬


‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ‪ system‬ﻓﺎﯾﻞ را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪fdisk‬ﯾﺎ ‪parted‬اﯾﺠﺎد ﻣﯽ ﮐﻨﯿﺪ‪ ،‬از دﺳﺘﻮر ‪mke2fs‬ﺑﺮاي اﯾﺠﺎد‬
‫ﻫﺮ ﯾﮏ از ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﮐﻨﯿﺪ و ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻪ ‪hdxx‬را ﺑﺎ ﻧﺎم دﺳﺘﮕﺎه ﺧﻮد ﺟﺎﯾﮕﺰﯾﻦ ﮐﻨﯿﺪ‪.‬‬
‫اﯾﺠﺎد ‪ system‬ﻓﺎﯾﻞ‪Ext2‬‬
‫‪# mke2fs‬‬ ‫‪/dev /hdXX‬‬

‫اﯾﺠﺎد ‪ system‬ﻓﺎﯾﻞ‪Ext3‬‬

‫‪# mke2fs -j / dev/ hdXX‬‬

‫ﯾﺎ‬
‫‪# mkfs.ext3 /dev/ hdXX‬‬
‫‪-j‬ﮔﺰﯾﻨﻪ ﺑﺮاي ‪ journaling‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫اﯾﺠﺎد ‪ system‬ﻓﺎﯾﻞ‪Ext4‬‬
‫‪# mke2fs -t ext4 /dev /hdXX‬‬

‫‪22‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪23‬‬

‫ﻋﺪد‪ xx‬ﺷﻤﺎره دراﯾﻮ ﻣﻮرد ﻧﻈﺮ ﺷﻤﺎﺳﺖ‪.‬‬


‫از ﺳﻮﯾﭻ ‪ –t‬ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﻧﻮع ‪ system‬ﻓﺎﯾﻞ‪.‬‬

‫ﺗﺒﺪﯾﻞ ‪ Ext2‬ﯾﺎ ‪ Ext3‬ﯾﺎ ‪ system‬ﻓﺎﯾﻞ‪Ext4‬‬


‫ﻫﻤﯿﺸﻪ ﺑﻬﺘﺮﯾﻦ راه ﺑﺮاي ﺟﺪا ﮐﺮدن ﻓﺎﯾﻞ ‪ system‬و ﺗﺒﺪﯾﻞ آن اﺳﺖ‪.‬ﺗﺒﺪﯾﻞ ﺑﺪون ‪ install‬ﻣﯽ ﺗﻮاﻧﺪ اﻧﺠﺎم ﺷﻮد‪..‬‬
‫ﺗﺒﺪﯾﻞ ‪ Ext2‬ﺑﻪ‪Ext3‬‬
‫ﺑﺮاي ﺗﻐﯿﯿﺮ ﯾﮏ ‪ system‬ﻓﺎﯾﻞ ‪ext2‬ﺑﻪ ‪ext3‬ﻓﻌﺎل ﮐﺮدن وﯾﮋﮔﯽ ﻣﺠﻠﻪ‪ ،‬از دﺳﺘﻮر اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪# tune2fs -j /dev/ hdXX‬‬
‫ژورﻧﺎﻟﯿﻨﮓ‬
‫‪ system‬ﻓﺎﯾﻞ ژورﻧﺎﻟﯿﺴﺘﯽ ) ‪( JFS‬ﺗﻮﺳﻂ ‪ IBM‬ﺑﺮاي ‪ AIX‬ﯾﻮﻧﯿﮑﺲ ﺗﻮﺳﻌﻪ داده ﺷﺪ ﮐﻪ ﺑﻪ ﻋﻨﻮان ﺟﺎﯾﮕﺰﯾﻨﯽ‬
‫ﺑﺮاي ‪system ext‬اﺳﺘﻔﺎده ﺷﺪ‪.JFS .‬ﺟﺎﯾﮕﺰﯾﻨﯽ ﺑﺮاي ‪ext4‬در ﺣﺎل ﺣﺎﺿﺮ اﺳﺖ و ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد ﮐﻪ‬
‫در آن ﺛﺒﺎت ﺑﺎ اﺳﺘﻔﺎده از ﻣﻨﺎﺑﻊ ﺑﺴﯿﺎر ﮐﻤﯽ ﻣﻮرد ﻧﯿﺎز اﺳﺖ‪.‬وﻗﺘﯽ ﻗﺪرت ‪ CPU‬ﻣﺤﺪود اﺳﺖ‪. ،‬‬
‫‪ReiserFS‬‬
‫اﯾﻦ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺟﺎﯾﮕﺰﯾﻦ ﺑﺮاي ‪ext3‬ﺑﺎ ﻋﻤﻠﮑﺮد ﺑﻬﺒﻮد ﯾﺎﻓﺘﻪ و وﯾﮋﮔﯽ ﻫﺎي ﭘﯿﺸﺮﻓﺘﻪ ﻣﻌﺮﻓﯽ ﺷﺪ‪.‬زﻣﺎﻧﯽ ﺑﻮد ﮐﻪ‬
‫ﭘﺮوﻧﺪه ‪ SuSE linux‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ‪ReiserFS‬ﺑﻮد اﻣﺎ ﺑﻌﺪ از آن ‪ reiser‬از ﮐﺴﺐ و ﮐﺎر ﺧﺎرج ﺷﺪ و ‪SuSe‬‬
‫ﻫﯿﭻ ﮔﺰﯾﻨﻪ اي ﺑﺮاي ﺑﺎزﮔﺸﺖ ﺑﻪ ‪ext3‬ﻧﺪاﺷﺖ ‪ ReiserFS .‬از ﻓﺎﯾﻞ ‪system Extension‬ﺑﻪ ﺻﻮرت ﭘﻮﯾﺎ‬
‫ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﻧﺴﺒﺘﺎ ﯾﮏ وﯾﮋﮔﯽ ﭘﯿﺸﺮﻓﺘﻪ اﺳﺖ اﻣﺎ ‪ system‬ﻓﺎﯾﻞ ﻓﺎﻗﺪ ﺳﻄﺢ ﻣﺸﺨﺼﯽ از ﻋﻤﻠﮑﺮد اﺳﺖ‪.‬‬
‫‪XFS‬‬
‫‪XFS‬ﯾﮏ ‪JFS‬ﺑﺎ ﺳﺮﻋﺖ ﺑﺎﻻ ﺑﻮد ﮐﻪ ﺑﺎ ﻫﺪف ﭘﺮدازش ﻫﻤﺰﻣﺎن ‪I / O‬اﻧﺠﺎم ﺷﺪ‪.‬ﻧﺎﺳﺎ اﯾﻦ ‪ system‬ﻓﺎﯾﻞ را در ﺳﺮور‬
‫‪ 300‬ﺗﺮاﺑﺎﯾﺘﯽ ﺧﻮد اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪Btrfs‬‬
‫‪ system‬ﻓﺎﯾﻞ ) ‪ B-Tree ( Btrfs‬ﺑﺮ ﺗﺤﻤﻞ ﮔﺴﻞ‪ ،‬اداره ﺳﺮﮔﺮﻣﯽ‪ system ،‬ﺗﻌﻤﯿﺮ‪ ،‬ﭘﯿﮑﺮﺑﻨﺪي ذﺧﯿﺮه ﺳﺎزي‬
‫ﺑﺰرگ ﺗﻤﺮﮐﺰ ﮐﺮده و ﻫﻨﻮز ﻫﻢ در ﺣﺎل ﺗﻮﺳﻌﻪ اﺳﺖ‪.‬‬

‫ﻓﺮﻣﺖ ﻓﺎﯾﻞ ﺧﻮﺷﻪ اي‬


‫‪ system‬ﻓﺎﯾﻞ ﺧﻮﺷﻪ اي ﺑﺮاي ﺑﻮت ﺷﺪن ﻣﻮرد ﻧﯿﺎز ﻧﯿﺴﺖ‪ ،‬اﻣﺎ ﺑﻬﺘﺮ اﺳﺖ در ﻧﻘﻄﻪ ذﺧﯿﺮه ﺳﺎزي ﻓﺮم اﺷﺘﺮاك‬
‫ﻣﺸﺘﺮك ﻣﻮرد ﻧﻈﺮ ﻗﺮار ﮔﯿﺮد‪.‬‬

‫‪swap‬‬
‫‪Swap‬ﺑﺮاي ﺻﻔﺤﺎت ‪ memory‬در ‪ linux‬ﻣﺨﺼﻮﺻﺎ در ﺣﯿﻦ ﮐﺎرﺑﺎ ﺳﯿﺴﺘﻢ ‪ system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻣﺮﺣﻠﻪ‬
‫ﻓﻌﻠﯽ ‪ system‬ﺑﻪ ‪ Swap‬زﻣﺎﻧﯽ ﮐﻪ ‪ system‬ﻣﺘﻮﻗﻒ ﺷﺪه ) ‪ ( Hibernate‬در ﯾﮏ ﻟﺤﻈﻪ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪.‬‬
‫ﯾﮏ ‪ system‬ﮐﻪ ﻫﺮﮔﺰ ﺑﻪ ﺧﻮاب زﻣﺴﺘﺎﻧﯽ ﻧﻤﯽ رود‪ ،‬ﻧﯿﺎز ﺑﻪ ﯾﮏ ﻓﻀﺎي ‪ swap‬ﺑﺮاﺑﺮ ﺑﺎ اﻧﺪازه ‪RAM‬دارد‪.‬‬

‫‪23‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪24‬‬

‫‪pwd‬‬
‫از آﻧﺠﺎﯾﯽ ﮐﻪ ﯾﮏ راﺑﻂ ﺧﻂ ﻓﺮﻣﺎن ﻧﻤﯿﺘﻮاﻧﺪ ﺗﺼﺎوﯾﺮ ﮔﺮاﻓﯿﮑﯽ ﺳﺎﺧﺘﺎر ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ را اراﺋﻪ ﮐﻨﺪ‪ ،‬ﺑﺎﯾﺪ روش دﯾﮕﺮي‬
‫ﺑﺮاي ﻧﺸﺎن دادن آن داﺷﺘﻪ ﺑﺎﺷﺪ‪ .‬درﺧﺖ ﺳﯿﺴﺘﻢ ﻓﺎﯾﻞ را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﭘﯿﭻ و ﺧﻢ در ﻧﻈﺮ ﺑﮕﯿﺮﯾﺪ و در آن اﯾﺴﺘﺎده‬
‫اﯾﺪ‪ .‬در ﻫﺮ ﻟﺤﻈﻪ اي ﻣﺸﺨﺺ‪ ،‬ﺷﻤﺎ در ﯾﮏ داﯾﺮﮐﺘﻮري ﻗﺮار ﮔﺮﻓﺘﻪ اﯾﺪ‪ .‬در داﺧﻞ آن داﯾﺮﮐﺘﻮري‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ ﻓﺎﯾﻞ ﻫﺎ و‬
‫ﻣﺴﯿﺮ آن را ﺑﻪ داﯾﺮﮐﺘﻮري اﺻﻠﯽ ﺧﻮد و ﻣﺴﯿﺮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ زﯾﺮ داﯾﺮﮐﺘﻮري داﯾﺮﮐﺘﻮري ﮐﻪ در آﻧﺠﺎ اﯾﺴﺘﺎده اﯾﺪ‬
‫ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪ .‬داﯾﺮﮐﺘﻮري ﮐﻪ در آن اﯾﺴﺘﺎده اﯾﺪ‪ ،‬داﯾﺮﮐﺘﻮري ﮐﺎر ﻣﯽ ﺷﻮد‪ .‬ﺑﺮاي ﭘﯿﺪا ﮐﺮدن ﻧﺎم داﯾﺮﮐﺘﻮري ﮐﺎر‪ ،‬از‬
‫دﺳﺘﻮر ‪ pwd‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ pwd‬‬
‫‪/home/me‬‬
‫ﺑﺮاي ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ در داﯾﺮﮐﺘﻮري ﮐﺎر‪ ،‬از دﺳﺘﻮر ‪ ls‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ ls‬‬
‫‪Desktop Xrootenv.0 linuxcmd‬‬
‫‪GNUstep bin‬‬ ‫‪nedit.rpm‬‬
‫‪GUILG00.GZ hitni123.jpg nsma‬‬

‫ﺑﺮاي ﺗﻐﯿﯿﺮ داﯾﺮﮐﺘﻮري ﮐﺎر )ﮐﻪ در آن ﺷﻤﺎ در ﭘﯿﭻ و ﺧﻢ اﯾﺴﺘﺎده( ﺷﻤﺎ از دﺳﺘﻮر ‪ cd‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﺪ‪ .‬ﺑﺮاي اﻧﺠﺎم‬
‫اﯾﻦ ﮐﺎر‪cd ،‬را ﺗﺎﯾﭗ ﮐﻨﯿﺪ و ﭘﺲ از ﻧﺎم ﻣﺴﯿﺮ داﯾﺮﮐﺘﻮري ﻣﻮرد ﻧﻈﺮ ﮐﺎر ﮐﻨﯿﺪ‪ .‬ﻧﺎم راه ﻣﺴﯿﺮي اﺳﺖ ﮐﻪ ﺷﻤﺎ در ﻃﻮل‬
‫ﺷﺎﺧﻪ ﻫﺎي درﺧﺖ ﻣﯽ ﮔﯿﺮﯾﺪ ﺗﺎ ﺑﻪ داﯾﺮﮐﺘﻮري ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ دﺳﺘﺮﺳﯽ ﭘﯿﺪا ﮐﻨﯿﺪ‪ .‬ﭘﺘﺎﻧﺎم ﻫﺎ را ﻣﯽ ﺗﻮان در ﯾﮑﯽ از‬
‫دو روش ﻣﺨﺘﻠﻒ ﻣﺸﺨﺺ ﮐﺮد‪ .‬راه ﺣﻞ ﻫﺎي ﻣﻄﻠﻖ ﯾﺎ ﻧﺎﻣﻬﺎي ﻧﺴﺒﯽ‪ ،‬ﺑﯿﺎﯾﯿﺪ اﺑﺘﺪا ﺑﺎ ﭘﻬﻨﺎي ﺑﺎﻧﺪ ﻣﻄﻠﻖ ﻧﮕﺎه ﮐﻨﯿﻢ‪.‬‬

‫‪24‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪25‬‬

‫ﻧﺎم ﻣﺤﻠﯽ ﻣﻄﻠﻖ ﺑﺎ داﯾﺮﮐﺘﻮري رﯾﺸﻪ ﺷﺮوع ﻣﯽ ﺷﻮد و ﭘﺲ از ﺷﺎﺧﻪ درﺧﺖ ﺗﻮﺳﻂ ﺷﺎﺧﻪ ﺗﺎ ﻣﺴﯿﺮ ﻣﺴﯿﺮ داﯾﺮﮐﺘﻮري‬
‫دﻟﺨﻮاه ﯾﺎ ﻓﺎﯾﻞ ﺗﮑﻤﯿﻞ ﻣﯽ ﺷﻮد‪ .‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﯾﮏ داﯾﺮﮐﺘﻮري در ﺳﯿﺴﺘﻢ ﺷﻤﺎ وﺟﻮد دارد ﮐﻪ اﮐﺜﺮ ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻧﺼﺐ‬
‫ﺷﺪه اﻧﺪ‪ .‬ﻧﺎم ﭘﻮﺷﻪ داﯾﺮﮐﺘﻮري ‪ /usr/ bin‬اﺳﺖ‪ .‬اﯾﻦ ﺑﺪان ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ از داﯾﺮﮐﺘﻮري رﯾﺸﻪ )ﻧﺸﺎن داده ﺷﺪه ﺗﻮﺳﻂ‬
‫اﺳﻠﺶ ﺑﺮﺟﺴﺘﻪ در ﻧﺎم راه( ﯾﮏ داﯾﺮﮐﺘﻮري ﺑﻪ ﻧﺎم "‪ "usr‬وﺟﻮد دارد ﮐﻪ ﺣﺎوي داﯾﺮﮐﺘﻮري ﺑﻪ ﻧﺎم "‪ "bin‬اﺳﺖ‪.‬‬
‫‪$ cd /usr/bin‬‬
‫‪$ pwd‬‬
‫‪/usr/bin‬‬
‫‪$ ls‬‬
‫‪lwp-request‬‬
‫‪2to3‬‬ ‫‪lwp-rget‬‬
‫‪2to3-2.6‬‬ ‫‪lxterm‬‬
‫‪a2p‬‬ ‫‪lz‬‬
‫‪aalib-config‬‬ ‫‪lzcat‬‬
‫‪aconnect‬‬ ‫‪lzma‬‬
‫‪acpi_fakekey‬‬ ‫‪lzmadec‬‬
‫‪acpi_listen‬‬ ‫‪lzmainfo‬‬
‫‪add-apt-repository m17n-db‬‬
‫‪addpart‬‬ ‫‪magnifier‬‬
‫ﻋﻼﻣﺖ "‪ ".‬ﺑﻪ داﯾﺮﮐﺘﻮري ﮐﺎر ﺧﻮد اﺷﺎره ﻣﯽ ﮐﻨﺪ و ﻋﻼﻣﺖ "‪ "..‬ﺑﻪ داﯾﺮﮐﺘﻮري اﺻﻠﯽ داﯾﺮﮐﺘﻮري ﮐﺎر ﻣﯽ ﮐﻨﺪ‪ .‬ﻫﻢ‬
‫اﮐﻨﻮن ﺑﻪ ﭼﮕﻮﻧﮕﯽ ﮐﺎرﮐﺮد آن ﻣﯽ ﭘﺮدازﯾﻢ‪ .‬اﺟﺎزه دﻫﯿﺪ داﯾﺮﮐﺘﻮري ﮐﺎري را دوﺑﺎره ﺑﻪ ‪ / usr / bin‬ﺗﻐﯿﯿﺮ دﻫﯿﻢ‪:‬‬
‫‪$ cd /usr/bin‬‬
‫‪$ pwd‬‬
‫‪/usr/bin‬‬
‫‪$ cd ..‬‬
‫‪[me@linuxbox usr]$ pwd‬‬
‫‪/us‬‬

‫‪25‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪26‬‬

‫ﻧﻤﻮدار ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ‪linux‬‬


‫ﺗﻮزﯾﻊ ‪ linux‬اﺳﺘﺎﻧﺪارد ﺑﻪ دﻧﺒﺎل ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ ﮐﻪ ﺑﺎ ﻧﻤﻮدار و ﺗﻮﺿﯿﺤﺎت اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬

‫ﺳﺎﺧﺘﺎر داﯾﺮﮐﺘﻮري ‪linux‬‬


‫ﻫﺮ ﯾﮏ از ﻓﻬﺮﺳﺖ ﺑﺎﻻ )ﮐﻪ ﯾﮏ ﻓﺎﯾﻞ در وﻫﻠﻪ اول اﺳﺖ( ﺣﺎوي اﻃﻼﻋﺎت ﻣﻬﻤﯽ اﺳﺖ ﮐﻪ ﺑﺮاي ﺑﻮت ﺷﺪن ﺑﻪ دراﯾﻮر‬
‫دﺳﺘﮕﺎه‪ ،‬ﭘﺮوﻧﺪه ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي و ﻏﯿﺮه ﻣﻮرد ﻧﯿﺎز اﺳﺖ‪:‬‬

‫‪/ bin :‬ﻫﻤﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﺑﺎﯾﻨﺮي اﺟﺮاﯾﯽ )ﻓﺎﯾﻞ( ﻣﻮرد ﻧﯿﺎز در ﻫﻨﮕﺎم ﺑﻮت ﺷﺪن‪ ،‬ﺗﻌﻤﯿﺮ‪ ،‬ﻓﺎﯾﻞ ﻫﺎي ﻣﻮرد ﻧﯿﺎز‬ ‫‪.1‬‬
‫ﺑﺮاي اﺟﺮا ﺑﻪ ﺣﺎﻟﺖ ﺗﮏ ﮐﺎرﺑﺮ و ﺳﺎﯾﺮ دﺳﺘﻮرات ﻣﻬﻢ ﻣﻬﻢ‪ ،‬ﯾﻌﻨﯽ‪ ،history،wc ،rpm ،tar ،df ،du ،cat ،.‬و ﻏﯿﺮه‬
‫‪/ boot :‬ﻓﺎﯾﻠﻬﺎي ﻣﻬﻤﯽ را در ﻃﻮل ﻓﺮاﯾﻨﺪ ﺑﻮت ﺷﺪن‪ ،‬از ﺟﻤﻠﻪ ﻫﺴﺘﻪ ‪ linux‬ﻧﮕﻬﺪاري ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫‪.2‬‬

‫‪26‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪27‬‬

‫‪/ dev :‬ﺷﺎﻣﻞ ﻓﺎﯾﻞ ﻫﺎي دﺳﺘﮕﺎه ﺑﺮاي ﺗﻤﺎم دﺳﺘﮕﺎه ﻫﺎي ﺳﺨﺖ اﻓﺰاري دﺳﺘﮕﺎه ﻣﺎﻧﻨﺪ ‪cpu ،cdrom‬و‬ ‫‪.3‬‬
‫ﻏﯿﺮه اﺳﺖ‬
‫‪/ etc :‬ﺷﺎﻣﻞ ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ﺑﺮﻧﺎﻣﻪ‪ ،‬راه اﻧﺪازي ‪ ،‬ﺧﺎﻣﻮش ﮐﺮدن ‪ ،‬ﺷﺮوع ‪ ،‬ﺗﻮﻗﻒ اﺳﮑﺮﯾﭙﺖ‬ ‫‪.4‬‬
‫‪/ home :‬داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮان‪.‬ﻫﺮ ﺑﺎر ﮐﻪ ﯾﮏ ﮐﺎرﺑﺮ ﺟﺪﯾﺪ اﯾﺠﺎد ﻣﯽ ﺷﻮد‪ ،‬ﯾﮏ ﭘﻮﺷﻪ ﺑﻪ ﻧﺎم ﮐﺎرﺑﺮ در‬ ‫‪.5‬‬
‫ﭘﻮﺷﻪ ‪ home‬اﯾﺠﺎد ﻣﯽ ﺷﻮد ﮐﻪ ﺣﺎوي داﯾﺮﮐﺘﻮري ﻫﺎي دﯾﮕﺮ ﻣﺎﻧﻨﺪ دﺳﮑﺘﺎپ ‪download ،‬ﻫﺎ ‪ ،‬اﺳﻨﺎد و ‪ ...‬اﺳﺖ‪.‬‬
‫‪/ lib :‬داﯾﺮﮐﺘﻮري ‪ Lib‬ﺷﺎﻣﻞ ﻣﺎژول ﻫﺎي ﻫﺴﺘﻪ اي و ﺗﺼﺎوﯾﺮ ﮐﺘﺎب‪ home‬اي ﻣﺸﺘﺮك ﻣﻮرد ﻧﯿﺎز ﺑﺮاي راه‬ ‫‪.6‬‬
‫اﻧﺪازي ‪ system‬و اﺟﺮاي دﺳﺘﻮرات در ‪ system‬ﻓﺎﯾﻞ ‪ root‬اﺳﺖ‪.‬‬
‫‪/ lost + found :‬اﯾﻦ داﯾﺮﮐﺘﻮري در ﻫﻨﮕﺎم ‪ install linux install‬ﺷﺪه اﺳﺖ‪ ،‬ﻣﻔﯿﺪ اﺳﺖ ﺑﺮاي ﺑﺎزﯾﺎﺑﯽ‬ ‫‪.7‬‬
‫ﻓﺎﯾﻠﻬﺎﯾﯽ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﻋﻠﺖ ﺧﺎﻣﻮش ﺑﻮدن ﻏﯿﺮ ﻣﻨﺘﻈﺮه ﺧﺮاب ﺷﻮد‪.‬‬
‫‪/ media :‬داﯾﺮﮐﺘﻮري ﻣﻮﻗﺖ ﺑﺮاي دﺳﺘﮕﺎه ﻫﺎي ﻗﺎﺑﻞ ﺟﺎﺑﺠﺎﯾﯽ ﻣﺎﻧﻨﺪ ‪media / cdrom‬اﯾﺠﺎد ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.8‬‬
‫‪/ mnt :‬داﯾﺮﮐﺘﻮري ﻣﻮﻗﺖ ﺑﺮاي ‪ system install‬ﻓﺎﯾﻞ‪.‬‬ ‫‪.9‬‬
‫‪/ opt :‬اﺧﺘﯿﺎري ﺑﻪ ﺻﻮرت اﻧﺘﺨﺎب ﻣﺨﺘﺼﺮ اﺳﺘﺸﺎﻣﻞ ﻧﺮم اﻓﺰار ﻧﺮم اﻓﺰار ﺷﺨﺺ ﺛﺎﻟﺚ‪ ،.VIZ‬ﺟﺎواو ﻏﯿﺮه‬ ‫‪.10‬‬
‫‪ / proc : system‬ﻣﺠﺎزي و ﺷﺒﻪ ﻓﺎﯾﻞ ﮐﻪ ﺣﺎوي اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﻓﺮآﯾﻨﺪ در ﺣﺎل اﺟﺮا ﺑﺎ ﺧﺎص‬ ‫‪.11‬‬
‫‪Process-id aka pid‬اﺳﺖ‪.‬‬
‫‪/ root :‬اﯾﻦ داﯾﺮﮐﺘﻮري ‪ home‬ﮐﺎرﺑﺮ ‪ root‬اﺳﺖ و ﻫﺮﮔﺰ ﻧﺒﺎﯾﺪ ﺑﺎ ' ‪'/‬اﺷﺘﺒﺎه ﮔﺮﻓﺘﻪ ﺷﻮد‪.‬‬ ‫‪.12‬‬
‫‪/ run :‬اﯾﻦ داﯾﺮﮐﺘﻮري ﺗﻨﻬﺎ راه ﺣﻞ ﻣﻨﺎﺳﺒﯽ ﺑﺮاي ﻣﺸﮑﻞ زودﻫﻨﮕﺎم دراﯾﻮ اﺳﺖ‪.‬‬ ‫‪.13‬‬
‫‪/ sbin :‬ﺣﺎوي ﺑﺮﻧﺎﻣﻪ ﻫﺎي اﺟﺮاﯾﯽ ﺑﺎﯾﻨﺮي‪ ،‬ﻣﻮرد ﻧﯿﺎز ﺗﻮﺳﻂ ﻣﺪﯾﺮ ‪ ، system‬ﺑﺮاي ﺗﻌﻤﯿﺮ و ﻧﮕﻬﺪاري ‪.viz.‬‬ ‫‪.14‬‬
‫‪ iptablesfdiskifconfig swapon restart‬و ﻏﯿﺮه‬
‫‪/ srv :‬ﺳﺮوﯾﺲ ﺑﻪ ﺻﻮرت " ‪ " srv‬ﻣﺨﻔﻒ اﺳﺖ‪.‬اﯾﻦ ﭘﻮﺷﻪ ﺣﺎوي ﻓﺎﯾﻞ ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﺳﺮوﯾﺲ دﻫﻨﺪه و‬ ‫‪.15‬‬
‫ﺳﺮوﯾﺲ ﺧﺎص اﺳﺖ‪.‬‬
‫‪/ sys :‬ﺗﻮزﯾﻊ ﻫﺎي ﻣﺪرن ‪ linux‬ﺷﺎﻣﻞ ﯾﮏ داﯾﺮﮐﺘﻮري ‪/ sys‬ﺑﻪ ﻋﻨﻮان ﯾﮏ ‪ system‬ﻓﺎﯾﻞ ﻣﺠﺎزي اﺳﺖ‬ ‫‪.16‬‬
‫ﮐﻪ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ دﺳﺘﮕﺎه ﻫﺎي ﻣﺘﺼﻞ ﺑﻪ ‪ system‬را اﺻﻼح ﮐﻨﺪ‪.‬‬
‫‪/ tmp :‬داﯾﺮﮐﺘﻮري ﻣﻮﻗﺖ ‪ ،system‬ﻗﺎﺑﻞ دﺳﺘﺮﺳﯽ ﺗﻮﺳﻂ ﮐﺎرﺑﺮان و ‪root.‬ﻓﺎﯾﻞ ﻫﺎي ﻣﻮﻗﺖ را ﺑﺮاي ﮐﺎرﺑﺮ‬ ‫‪.17‬‬
‫و ‪ system‬ذﺧﯿﺮه ﻣﯽ ﮐﻨﺪ ﺗﺎ ﺑﻮت ﺑﻌﺪي‪.‬‬
‫‪/ usr :‬ﺣﺎوي ﻣﺴﺘﻨﺪات ‪ ،‬ﮐﺪ ﻣﻨﺒﻊ ‪ ،‬ﮐﺘﺎب‪ home‬ﻫﺎ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﺳﻄﺢ دوم اﺳﺖ‪.‬‬ ‫‪.18‬‬
‫‪/ var :‬ﻣﺨﻔﻒ ﻣﺘﻐﯿﺮ اﺳﺘﺎﻧﺘﻈﺎر ﻣﯽ رود ﮐﻪ ﻣﺤﺘﻮﯾﺎت اﯾﻦ ﻓﺎﯾﻞ رﺷﺪ ﮐﻨﺪ‪.‬اﯾﻦ ﭘﻮﺷﻪ ﺣﺎوي ﭘﺮوﻧﺪﻫﻬﺎي‬ ‫‪.19‬‬
‫ورودي ‪ ،‬ﻗﻔﻞ ‪temp ،‬اﺳﺖ‪.‬‬

‫‪27‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪28‬‬

‫ﺑﺮرﺳﯽ ﻓﺎﯾﻞ ﻣﻬﻢ‪ ،‬ﻣﻮﻗﻌﯿﺖ آﻧﻬﺎ و ﻗﺎﺑﻠﯿﺖ اﺳﺘﻔﺎده آﻧﻬﺎ‬


‫‪ linux‬ﯾﮏ ‪ system‬ﭘﯿﭽﯿﺪه اﺳﺖ ﮐﻪ ﻧﯿﺎز ﺑﻪ ﯾﮏ راه ﭘﯿﭽﯿﺪه ﺗﺮ و ﮐﺎرآﻣﺪ ﺑﺮاي ﺷﺮوع ‪ ،‬ﻣﺘﻮﻗﻒ ﮐﺮدن ‪ ،‬ﻧﮕﻬﺪاري و‬
‫‪ system restart‬ﺑﺮ ﺧﻼف وﯾﻨﺪوز اﺳﺖ‪.‬ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ﺑﻪ ﺧﻮﺑﯽ ﺗﻌﺮﯾﻒ ﺷﺪه‪ ،‬ﻓﺎﯾﻞ ﻫﺎﯾﺪوﺗﺎﯾﯽ ‪ ،‬ﺻﻔﺤﺎت‬
‫‪ ، man‬ﻓﺎﯾﻞ ﻫﺎي اﻃﻼﻋﺎت و ﻏﯿﺮه ﺑﺮاي ﻫﺮ ﭘﺮدازش در ‪ linux‬وﺟﻮد دارد‪.‬‬
‫‪/ boot / vmlinuz :‬ﻓﺎﯾﻞ ﮐﺮﻧﻞ ‪linux.‬‬ ‫‪.1‬‬
‫‪/ dev / hda :‬ﻓﺎﯾﻞ دﺳﺘﮕﺎه ﺑﺮاي اوﻟﯿﻦ ( ‪IDE HDD‬ﻫﺎرد دﯾﺴﮏ‬ ‫‪.2‬‬
‫‪/ dev / hdc :‬ﻓﺎﯾﻞ ﻣﻌﻤﻮﻟﯽ ﺑﺮاي ‪ ،IDE Cdrom‬ﻣﻌﻤﻮﻻ‬ ‫‪.3‬‬
‫‪/ dev / null :‬دﺳﺘﮕﺎه ﺷﺒﻪ اي اﺳﺖ ﮐﻪ وﺟﻮد ﻧﺪارددر ﺑﺮﺧﯽ ﻣﻮارد ﺧﺮوج زﺑﺎﻟﻪ ﺑﻪ ‪/ dev / null‬ﻫﺪاﯾﺖ‬ ‫‪.4‬‬
‫ﻣﯽ ﺷﻮد‪ ،‬ﺑﻪ ﻃﻮري ﮐﻪ ﺑﺮاي ﻫﻤﯿﺸﻪ از ﺑﯿﻦ ﻣﯽ رود‪.‬‬
‫‪/ etc / bashrc :‬ﺣﺎوي ﭘﯿﺶ ﻓﺮض ﻫﺎي ‪ system‬و ﻧﺎﻣﻬﺎي ﻣﺴﺘﻌﺎر اﺳﺘﻔﺎده ﺷﺪه ﺗﻮﺳﻂ‪shell bash.‬‬ ‫‪.5‬‬
‫‪/ etc / crontab :‬ﯾﮏ اﺳﮑﺮﯾﭙﺖ ﭘﻮﺳﺘﻬﺒﺮاي اﺟﺮاي دﺳﺘﻮرات ﻣﺸﺨﺺ در ﯾﮏ زﻣﺎن از ﭘﯿﺶ ﺗﻌﺮﯾﻒ ﺷﺪه‪.‬‬ ‫‪.6‬‬
‫‪/ etc / exports :‬اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ ﻣﻮﺟﻮد در ﺷﺒﮑﻪ‪.‬‬ ‫‪.7‬‬
‫‪/ etc / fstab :‬اﻃﻼﻋﺎت دﯾﺴﮏ دراﯾﻮ و ﻧﻘﻄﻪ اﺗﺼﺎل آﻧﻬﺎ‪.‬‬ ‫‪.8‬‬
‫‪/ etc / group :‬اﻃﻼﻋﺎت ﮔﺮوه اﻣﻨﯿﺘﯽ‪.‬‬ ‫‪.9‬‬
‫‪/etc/grub.conf :‬ﻓﺎﯾﻞ ﭘﯿﮑﺮﺑﻨﺪي ‪bootloader‬ﮔﺮاب‪.‬‬ ‫‪.10‬‬
‫‪/etc/init.d :‬ﺳﺮوﯾﺲ ﺷﺮوع اﺳﮑﺮﯾﭙﺖ‪.‬‬ ‫‪.11‬‬
‫‪/etc/lilo.conf :‬ﭘﺮوﻧﺪه ﭘﯿﮑﺮﺑﻨﺪي‪lilo bootloader .‬‬ ‫‪.12‬‬
‫‪/ etc / hosts :‬اﻃﻼﻋﺎت آدرس آي ﭘﯽ و ﻧﺎم ‪host‬ﻣﺮﺑﻮﻃﻪ‪.‬‬ ‫‪.13‬‬
‫‪/etc/hosts.allow :‬ﻟﯿﺴﺘﯽ از ‪host‬ﻫﺎ ﻣﺠﺎز ﺑﻪ دﺳﺘﺮﺳﯽ ﺑﻪ ﺧﺪﻣﺎت در دﺳﺘﮕﺎه ﻣﺤﻠﯽ ﻫﺴﺘﻨﺪ‪.‬‬ ‫‪.14‬‬
‫‪/etc/host.deny :‬ﻟﯿﺴﺘﯽ از ﻣﯿﺰﺑﺎﻧﻬﺎﯾﯽ ﮐﻪ دﺳﺘﺮﺳﯽ ﺑﻪ ﺧﺪﻣﺎت در دﺳﺘﮕﺎه ﻣﺤﻠﯽ را رد ﻣﯿﮑﻨﻨﺪ‪.‬‬ ‫‪.15‬‬
‫‪/ etc / inittab :‬روﻧﺪ ‪ INIT‬و ﺗﻌﺎﻣﻞ آﻧﻬﺎ در ﺳﻄﻮح ﻣﺨﺘﻠﻒ اﺟﺮا‪.‬‬ ‫‪.16‬‬
‫‪/ etc / issue :‬اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﭘﯿﺎم ﭘﯿﺶ از ورود را وﯾﺮاﯾﺶ ﮐﻨﯿﺪ‪.‬‬ ‫‪.17‬‬
‫‪/etc/modules.conf :‬ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ﺑﺮاي ﻣﺎژول ﻫﺎي ‪system.‬‬ ‫‪.18‬‬
‫‪/ etc / motd : motd‬ﻣﺨﻔﻒ ﭘﯿﺎم روز اﺳﺖ ‪ ،‬ﮐﺎرﺑﺮان ﭘﯿﺎم ﭘﺲ از ورود ﺑﻪ ‪ system‬ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.19‬‬
‫‪/ etc / mtab :‬در ﺣﺎل ﺣﺎﺿﺮ ﺑﻠﻮك اﻃﻼﻋﺎت را ‪ install‬ﮐﺮده اﺳﺖ‪.‬‬ ‫‪.20‬‬
‫‪/ etc / passwd :‬ﺣﺎوي رﻣﺰ ﻋﺒﻮر از ﮐﺎرﺑﺮان ‪ system‬در ﯾﮏ ﻓﺎﯾﻞ ﺳﺎﯾﻪ‪ ،‬ﯾﮏ ﭘﯿﺎده ﺳﺎزي اﻣﻨﯿﺘﯽ اﺳﺖ‪.‬‬ ‫‪.21‬‬
‫‪/ etc / printcap :‬اﻃﻼﻋﺎت ﭼﺎﭘﮕﺮ‬ ‫‪.22‬‬
‫‪/ etc / profile :‬ﻣﻘﺎدﯾﺮ ﭘﯿﺶ ﻓﺮض ﭘﺮوﻓﺎﯾﻞ ﻫﺎ‬ ‫‪.23‬‬
‫‪/etc/profile.d :‬اﺳﮑﺮﯾﭙﺖ ﮐﺎرﺑﺮدي‪ ،‬اﺟﺮا ﺷﺪه ﭘﺲ از ورود‪.‬‬ ‫‪.24‬‬
‫‪/etc/rc.d :‬اﻃﻼﻋﺎت در ﻣﻮرد اﺳﮑﺮﯾﭙﺖ ﻣﺸﺨﺼﯽ در ﺳﻄﺢ اﺟﺮا‪.‬‬ ‫‪.25‬‬

‫‪28‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪29‬‬

‫‪/etc/rc.d/init.d :‬اﺳﮑﺮﯾﭙﺖ اوﻟﯿﻪ راه اﻧﺪازي ﺳﻄﺢ اﺟﺮا‪.‬‬ ‫‪.26‬‬


‫‪/etc/resolv.conf :‬ﺳﺮورﻫﺎي ﻧﺎم داﻣﻨﻪ ) ‪ ( DNS‬ﮐﻪ ﺗﻮﺳﻂ ‪ system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.27‬‬
‫‪/ etc / securetty :‬ﻓﻬﺮﺳﺖ ﺗﺮﻣﯿﻨﺎل‪ ،‬ﮐﻪ در آن ورود ﺑﻪ ‪ root system‬اﻣﮑﺎن ﭘﺬﯾﺮ اﺳﺖ‪.‬‬ ‫‪.28‬‬
‫‪/ etc / skel :‬اﺳﮑﺮﯾﭙﺖ ﮐﻪ داﯾﺮﮐﺘﻮري ﺟﺪﯾﺪ ﮐﺎرﺑﺮ را وارد ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫‪.29‬‬
‫‪/ etc / termcap :‬ﯾﮏ ﻓﺎﯾﻞ ‪ASCII‬ﮐﻪ رﻓﺘﺎر ﺗﺮﻣﯿﻨﺎل ‪ ،‬ﮐﻨﺴﻮل و ﭼﺎﭘﮕﺮ را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫‪.30‬‬
‫‪/ etc / X11 :‬ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ‪X-window . system‬‬ ‫‪.31‬‬
‫‪/ usr / bin :‬دﺳﺘﻮرات اﺟﺮاﯾﯽ ﮐﺎرﺑﺮ ﻧﺮﻣﺎل‪.‬‬ ‫‪.32‬‬
‫‪/ usr / bin / X11 :‬دوﭼﺮﺧﻪ از ‪ Xsystem‬وﯾﻨﺪوز‪.‬‬ ‫‪.33‬‬
‫‪/ usr / include :‬ﺷﺎﻣﻞ ﺷﺎﻣﻞ ﻓﺎﯾﻞ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﺑﺮﻧﺎﻣﻪ ‪C‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.34‬‬
‫‪/ usr / share :‬داﯾﺮﮐﺘﻮري ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه از ﻓﺎﯾﻞ ﻫﺎي ﻣﺮد ‪ ،‬ﻓﺎﯾﻞ ﻫﺎي اﻃﻼﻋﺎت و ﻏﯿﺮه‬ ‫‪.35‬‬
‫‪/ usr / lib :‬ﻓﺎﯾﻠﻬﺎي ﮐﺘﺎب‪ home‬اي ﮐﻪ در ﻃﻮل ﺗﺪوﯾﻦ ﺑﺮﻧﺎﻣﻪ ﻣﻮرد ﻧﯿﺎز ﻫﺴﺘﻨﺪ‪.‬‬ ‫‪.36‬‬
‫‪/ usr / sbin :‬دﺳﺘﻮرات ﺳﻮﭘﺮ ﮐﺎرﺑﺮ ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ‪system.‬‬ ‫‪.37‬‬
‫‪/ proc / cpuinfo :‬اﻃﻼﻋﺎت ‪CPU‬‬ ‫‪.38‬‬
‫‪/ proc / filesystems :‬اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در ﺣﺎل ﺣﺎﺿﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.39‬‬
‫‪/ proc / interrupts :‬درﻣﻮرد وﻗﻔﻪ ﻫﺎي ﻓﻌﻠﯽ ﮐﻪ در ﺣﺎل ﺣﺎﺿﺮ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ‪.‬‬ ‫‪.40‬‬
‫‪/ proc / ioports :‬ﺗﻤﺎم آدرس ﻫﺎي ورودي ‪/‬ﺧﺮوﺟﯽ ﻣﻮرد اﺳﺘﻔﺎده ﺗﻮﺳﻂ دﺳﺘﮕﺎه ﻫﺎ در ﺳﺮور اﺳﺖ‪.‬‬ ‫‪.41‬‬
‫‪/ proc / meminfo :‬اﻃﻼﻋﺎت اﺳﺘﻔﺎده از ‪memory.‬‬ ‫‪.42‬‬
‫‪/ proc / modules :‬در ﺣﺎل ﺣﺎﺿﺮ ﺑﺎ اﺳﺘﻔﺎده از ﻣﺎژول ﻫﺴﺘﻪ‪.‬‬ ‫‪.43‬‬
‫‪/ proc / mount :‬اﻃﻼﻋﺎت ﭘﺮوﻧﺪه ‪system.‬‬ ‫‪.44‬‬
‫‪/ proc / stat :‬آﻣﺎر دﻗﯿﻘﯽ از ‪ system‬ﮐﻨﻮﻧﯽ‪.‬‬ ‫‪.45‬‬
‫‪/ proc / swaps :‬اﻃﻼﻋﺎت ﻣﺒﺎدﻟﻪ اﻃﻼﻋﺎت‪.‬‬ ‫‪.46‬‬
‫‪/‬ﻧﺴﺨﻪ ‪:‬اﻃﻼﻋﺎت ﻧﺴﺨﻪ ‪linux.‬‬ ‫‪.47‬‬
‫‪/ var / log / lastlog :‬ورود از آﺧﺮﯾﻦ روﻧﺪ ﺑﻮت ﺷﺪن‪.‬‬ ‫‪.48‬‬
‫‪/ var / log / messages : log‬از ﭘﯿﺎم ﻫﺎي ﺗﻮﻟﯿﺪ ﺷﺪه ‪daemon syslog‬در ﻫﻨﮕﺎم ﺑﻮت ﺷﺪن‪.‬‬ ‫‪.49‬‬
‫‪/ var / log / wtmp :‬ﻟﯿﺴﺖ زﻣﺎن ورود و ﻣﺪت زﻣﺎن ﻫﺮ ﮐﺎرﺑﺮ در ‪ system‬را وارد ﮐﻨﯿﺪ‪.‬‬ ‫‪.50‬‬

‫‪29‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪30‬‬

‫ﺟﺎﺑﺠﺎﯾﯽ در ‪ system‬ﻓﺎﯾﻞ‬
‫‪ system‬ﻫﺎي ﻓﺎﯾﻞ ﻣﺪرن درﺧﺖ ﻫﺎي داﯾﺮﮐﺘﻮري )ﭘﻮﺷﻪ اي( دارﻧﺪ‪ ،‬ﺟﺎﯾﯽ ﮐﻪ ﯾﮏ داﯾﺮﮐﺘﻮري ﯾﮏ داﯾﺮﮐﺘﻮري ‪root‬‬
‫اﺳﺖ ﮐﻪ ﻣﺎ آن را "‪ "parent‬ﻣﯽ ﻧﺎﻣﯿﻢ‪ system .‬ﻫﺎي ‪ Unix‬ﻓﻘﻂ ﯾﮏ داﯾﺮﮐﺘﻮري ‪ root‬اي ﺑﺎ ﻧﺎم \ دارﻧﺪ ‪.‬‬
‫دﺳﺘﻮرات ﭘﯿﻤﺎﯾﺶ ‪pwd / ls / cd‬‬
‫ﻫﻨﮕﺎم ﮐﺎر در ﯾﮏ ‪ system‬ﻓﺎﯾﻞ‪ ،‬ﮐﺎرﺑﺮ ﻫﻤﯿﺸﻪ در داﺧﻞ ﯾﮏ داﯾﺮﮐﺘﻮري ﮐﺎر ﻣﯽ ﮐﻨﺪ ﮐﻪ ﻣﺎ آن را داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ‬
‫ﯾﺎ داﯾﺮﮐﺘﻮري ﮐﺎري ﻣﯽ ﻧﺎﻣﯿﻢ ‪ .‬داﯾﺮﮐﺘﻮري ﺟﺎري ﮐﺎرﺑﺮ را ﺑﺎ ‪ pwd‬ﭼﺎپ ﮐﻨﯿﺪ ‪:‬‬
‫‪$ pwd‬‬
‫‪/home / hossein‬‬

‫ﻟﯿﺴﺖ ﻣﺤﺘﻮﯾﺎت اﯾﻦ ﭘﻮﺷﻪ )ﻓﺎﯾﻞ ﻫﺎ و ‪ /‬ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎي ﻓﺮزﻧﺪ و ﻏﯿﺮه( را ﺑﺎ ‪: ls‬‬
‫‪$ ls‬‬
‫ﻧﻤﺎﯾﺶ ﻓﺎﯾﻞ ﻫﺎي ‪") cache‬ﺑﺎ ﻋﻼﻣﺖ ﻧﻘﻄﻪ"(‬
‫‪$ ls -a‬‬
‫ﻧﻤﺎﯾﺶ ﺟﺰﺋﯿﺎت ﻓﺎﯾﻞ‬
‫‪$ ls -l‬‬
‫ﺗﺮﮐﯿﺐ ﭼﻨﺪﯾﻦ ﺳﻮﯾﭻ‬
‫‪ls –l -a‬‬
‫دﺳﺘﻮر ‪ ls‬ﺑﺮاي ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت ﯾﮏ ﭘﻮﺷﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪.‬اﺣﺘﻤﺎﻻ ﻓﺮﻣﺎن ﻟﯿﻨﻮﮐﺲ ﻣﻌﻤﻮﻟﯽ اﺳﺘﻔﺎده ﺷﺪه اﺳﺖ ‪.‬‬
‫اﯾﻦ را ﻣﯽ ﺗﻮان در ﺗﻌﺪادي از روش ﻫﺎي ﻣﺨﺘﻠﻒ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪.‬در اﯾﻨﺠﺎ ﭼﻨﺪ ﻧﻤﻮﻧﻪ اﺳﺖ ‪:‬‬
‫ﻧﻤﻮﻧﻪ ﻫﺎﯾﯽ از دﺳﺘﻮر‪ls‬‬
‫ﻧﺘﯿﺠﻪ‬ ‫ﻓﺮﻣﺎﻧﺪﻫﯽ‬
‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻞ ﻫﺎ را در داﯾﺮﮐﺘﻮري ﮐﺎري ﻧﺸﺎن ﻣﯿﺪﻫﺪ‬ ‫‪ls‬‬
‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻞ ﻫﺎ را در ﭘﻮﺷﻪ‪ / bin‬ﻧﺸﺎن ﻣﯿﺪﻫﺪ‬ ‫‪ls / bin‬‬
‫ﻓﺎﯾﻠﻬﺎي ﻣﻮﺟﻮد در داﯾﺮﮐﺘﻮري ﮐﺎري را در ﻗﺎﻟﺐ ﻧﻮع دﺳﺘﺮﺳﯽ ﻓﻬﺮﺳﺖ ﻣﯿﮑﻨﺪ‬ ‫‪ls -l‬‬
‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻞ ﻫﺎ در ﭘﻮﺷﻪ ‪ / bin‬و داﯾﺮﮐﺘﻮري ‪ / etc‬در ﻓﺮﻣﺖ دﺳﺘﺮﺳﯽ ﻧﺸﺎن ﻣﯿﺪﻫﺪ‬ ‫‪ls -l / etc / bin‬‬
‫ﻟﯿﺴﺖ ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ )ﺣﺘﯽ آﻧﻬﺎﯾﯽ ﮐﻪ اﺳﺎﻣﯽ ﺑﺎ ﯾﮏ ﺷﺨﺼﯿﺖ دوره اي ﮐﻪ ﻣﻌﻤﻮﻻ ﭘﻨﻬﺎن‬ ‫‪ls -la ..‬‬
‫ﻫﺴﺘﻨﺪ( در واﻟﺪﯾﻦ داﯾﺮﮐﺘﻮري ﮐﺎري ﻧﺸﺎن داده ﻣﯽ ﺷﻮﻧﺪ‬

‫‪30‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪31‬‬

‫ﻧﮕﺎﻫﯽ دﻗﯿﻖ ﺗﺮ ﺑﻪ ﻓﺮﻣﺖ ﻃﻮﻻﻧﯽ‬


‫اﮔﺮ از ﮔﺰﯾﻨﻪ ‪-l‬ﺑﺎ ‪ls‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﺪ‪ ،‬ﻟﯿﺴﺖ ﻓﺎﯾﻞ اي را ﮐﻪ ﺣﺎوي اﻃﻼﻋﺎت ﻓﺮاواﻧﯽ در ﻣﻮرد ﻓﺎﯾﻞ ﻫﺎي ﻟﯿﺴﺖ ﺷﺪه‬
‫اﺳﺖ‪ ،‬درﯾﺎﻓﺖ ﺧﻮاﻫﯿﺪ ﮐﺮد ‪.‬در اﯾﻨﺠﺎ ﯾﮏ ﻣﺜﺎل اﺳﺖ‪:‬‬

‫‪-rw -- -- --- 1 bshotts bshotts 576 Apr 17 1998 weather.txt‬‬


‫‪ web_page‬اﮐﺘﺒﺮ ‪drwxr-xr-x 6 bshotts bshotts 1024 9 1999‬‬
‫‪ web_site.tar‬ﻓﻮرﯾﻪ ‪-rw-rw-r -- 1 bshotts bshotts 276480 11 20:41‬‬
‫‪-rw‬‬ ‫‪-- -- --- 1 bshotts bshotts 5743 Dec 16 1998 xmas_file.txt‬‬

‫‪-- -- -- -- -- -- -- --- -- -- --- -- -- -- -- -- -- -- -- -- -- --‬‬


‫‪-- -- -- -- ---‬‬
‫| | | | | |‬
‫ﻧﺎم ﻓﺎﯾﻞ | | | | |‬
‫| | | | |‬
‫زﻣﺎن اﺻﻼح ‪| | | | + ---‬‬
‫| | | |‬
‫)اﻧﺪازه )در ﺑﺎﯾﺖ ‪| | | + -- -- -- -- -- ---‬‬
‫| | |‬
‫ﮔﺮوه ‪| | + -- -- -- -- -- -- -- -- -- -- ---‬‬
‫| |‬
‫ﻣﺎﻟﮏ ‪| + -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --‬‬
‫|‬
‫‪+ -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --‬‬
‫ﻣﺠﻮزﻫﺎي ﭘﺮوﻧﺪه ‪--‬‬
‫ﻧﺎم ﻓﺎﯾﻞ‬
‫ﻧﺎم ﻓﺎﯾﻞ ﯾﺎ داﯾﺮﮐﺘﻮري ‪.‬‬
‫زﻣﺎن اﺻﻼح‬
‫آﺧﺮﯾﻦ ﺑﺎر ﻓﺎﯾﻞ ﺗﻐﯿﯿﺮ ﮐﺮد اﮔﺮ آﺧﺮﯾﻦ اﺻﻼح ﮔﺬﺷﺘﻪ ﺑﯿﺶ از ﺷﺶ ﻣﺎه رخ داده ﺑﺎﺷﺪ‪ ،‬ﺗﺎرﯾﺦ و ﺳﺎل ﻧﻤﺎﯾﺶ‬
‫داده ﻣﯽ ﺷﻮد ‪.‬در ﻏﯿﺮ اﯾﻦ ﺻﻮرت‪ ،‬زﻣﺎن روز ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد ‪.‬‬
‫اﻧﺪازه‬
‫اﻧﺪازه ﻓﺎﯾﻞ در ﺑﺎﯾﺖ ‪.‬‬
‫ﮔﺮوه‬
‫ﻧﺎم ﮔﺮوﻫﯽ ﮐﻪ ﻣﺠﻮزﻫﺎي ﻓﺎﯾﻞ ﻋﻼوه ﺑﺮ ﺻﺎﺣﺐ ﭘﺮوﻧﺪه دارد ‪.‬‬
‫ﺻﺎﺣﺐ‬

‫‪31‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪32‬‬

‫ﻧﺎم ﮐﺎرﺑﺮي ﮐﻪ ﻓﺎﯾﻞ دارد ‪.‬‬


‫ﻣﺠﻮزﻫﺎي ﭘﺮوﻧﺪه‬
‫ﻧﻤﺎﯾﻨﺪﮔﯽ از ﻣﺠﻮزﻫﺎي دﺳﺘﺮﺳﯽ ﺑﻪ ﭘﺮوﻧﺪه ‪.‬اوﻟﯿﻦ ﮐﺎراﮐﺘﺮ ﻧﻮع ﻓﺎﯾﻞ اﺳﺖ "‪. "-‬ﯾﮏ ﻓﺎﯾﻞ ﻣﻨﻈﻢ )ﻋﺎدي( را‬
‫ﻧﺸﺎن ﻣﯽ دﻫﺪ "‪. "d‬ﯾﮏ داﯾﺮﮐﺘﻮري را ﻧﺸﺎن ﻣﯽ دﻫﺪ ‪.‬ﻣﺠﻤﻮﻋﻪ دوم از ﺳﻪ ﮐﺎراﮐﺘﺮ‪ ،‬ﻧﺸﺎﻧﮕﺮ ﺧﻮاﻧﺪن‪ ،‬ﻧﻮﺷﺘﻦ‬
‫و اﺟﺮاي ﺣﻘﻮق ﺻﺎﺣﺐ ﻓﺎﯾﻞ اﺳﺖ ‪.‬ﺳﻪ ﻧﻔﺮ دﯾﮕﺮ ﻧﻤﺎﯾﻨﺪه ﺣﻘﻮق ﮔﺮوه ﻓﺎﯾﻞ ﻫﺴﺘﻨﺪ و ﺳﻪ ﻧﻔﺮ ﻧﻬﺎﯾﯽ ﺣﻘﻮق را‬
‫ﺑﻪ ﻫﺮ ﮐﺲ دﯾﮕﺮي واﮔﺬار ﻣﯽ ﮐﻨﻨﺪ ‪.‬ﻣﻦ در درس ﺑﻌﺪي ﺑﻪ ﺟﺰﺋﯿﺎت ﺑﯿﺸﺘﺮي ﺧﻮاﻫﻢ ﭘﺮداﺧﺖ ‪.‬‬

‫ﺗﻐﯿﯿﺮ ﺑﻪ ﯾﮏ داﯾﺮﮐﺘﻮري دﯾﮕﺮ ﺑﺎ ‪)cd‬داﯾﺮﮐﺘﻮري ﺗﻐﯿﯿﺮ(‪:‬‬


‫‪cd TEST‬‬

‫‪cd A‬‬
‫‪pwd‬‬
‫‪A‬‬
‫‪cd ..‬‬
‫ﺑﺮاي ﺗﻐﯿﯿﺮ ﺑﻪ داﯾﺮﮐﺘﻮري ‪ "parent‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪cd..‬‬
‫‪/home / hossein / TEST‬‬

‫‪ ~ cd‬ﯾﺎ ﻓﻘﻂ ‪ cd‬ﺑﺮاي " ﺗﻐﯿﯿﺮ ﻣﺴﯿﺮ ﺑﻪ ﺑﻪ داﯾﺮﮐﺘﻮري اﺻﻠﯽ اﺳﺖ‪.‬‬


‫~‪cd‬‬

‫ﻧﮑﺘﻪ‪:‬‬
‫‪ ~ cd‬ﮐﺎرﺑﺮ ﺑﻪ ﻣﻌﻨﺎي " ‪ cd‬ﺑﻪ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ اﺳﺖ‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﭼﻨﺪ ﭘﻮﺷﻪ را ﺑﺎ ‪.. /.. cd‬ﺗﻐﯿﯿﺮ دﻫﯿﺪ‬
‫‪cd ../..‬‬
‫ﺑﺎزﮔﺸﺖ ﺑﻪ آﺧﺮﯾﻦ داﯾﺮﮐﺘﻮري ﺑﺎ ‪-cd‬‬
‫‪cd -‬‬

‫ﭼﯿﺰﻫﺎﯾﯽ ﮐﻪ ﻣﺎ در ﺧﻂ ﻓﺮﻣﺎن وارد ﻣﯿﮑﻨﯿﻢ ‪ ،‬دﺳﺘﻮرات ﻧﺎﻣﯿﺪه ﻣﯿﺸﻮﻧﺪ و آﻧﻬﺎ ﻫﻤﻮاره ﺑﺮﺧﯽ از ﮐﺪ ﻣﺎﺷﯿﻦ را ﮐﻪ در‬
‫ﺟﺎﯾﯽ از راﯾﺎﻧﻪ ﺷﻤﺎ ذﺧﯿﺮه ﺷﺪه اﻧﺪ اﺟﺮا ﻣﯽ ﮐﻨﻨﺪ‪ .‬ﮔﺎﻫﯽ اوﻗﺎت اﯾﻦ ﮐﺪ دﺳﺘﮕﺎه ﯾﮏ ﻓﺮﻣﺎن ‪ linux‬داﺧﻠﯽ اﺳﺖ‪،‬‬
‫ﮔﺎﻫﯽ اوﻗﺎت اﯾﻦ ﺑﺮﻧﺎﻣﻪ اﺳﺖ‪ .،‬ﮔﺎﻫﯽ اوﻗﺎت‪ ،‬ﻣﺎ ﻣﯽ ﺧﻮاﻫﯿﻢ ﯾﮏ دﺳﺘﻮر را درﺳﺖ ﺑﻌﺪ از دﯾﮕﺮي اﺟﺮا ﮐﻨﯿﻢ‪ .‬ﺑﺮاي اﻧﺠﺎم‬
‫اﯾﻦ ﮐﺎر ﻣﯽ ﺗﻮاﻧﯿﻢ از ؛ )ﺳﻤﯿﮑﺎﻟﻦ( اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬
‫‪pwd‬؛ ‪| hossein @ pc01 | ~ ls‬‬

‫‪32‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪33‬‬

‫‪Git TEST jdoctest.filetest‬‬


‫‪/home / hossein‬‬

‫در ﺑﺎﻻ‪ semicolon ،‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﻣﻦ ﺑﺮاي اوﻟﯿﻦ ﺑﺎر ) ‪ ( ls‬ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮري ﮐﺎر را ﻟﯿﺴﺖ‬
‫ﮐﺮده و ﺳﭙﺲ ) ‪ ( pwd‬ﻣﺤﻞ ﺳﮑﻮﻧﺖ ﺧﻮد را ﭼﺎپ ﻣﯽ ﮐﻨﻢ‪.‬‬
‫ﻧﮑﺘﻪ‪ .:‬ﺑﺮاي دﯾﺪن ﮐﺎرﻫﺎي ﭘﺲ زﻣﯿﻨﻪ در ﺣﺎل ﺣﺎﺿﺮ‪ ،‬از دﺳﺘﻮر ﮐﺎر اﺳﺘﻔﺎده ﮐﻨﯿﺪ ‪:‬‬
‫‪$ jobs‬‬
‫ﻣﺸﺎﻫﺪه راﻫﻨﻤﺎي دﺳﺘﻮرات‬
‫ﺳﻮﯾﭻ ‪ h-‬ﯾﺎ ‪ help--‬ﭘﺲ از ﻫﺮ دﺳﺘﻮر را ﺑﻪ ﯾﮏ ﻣﻨﻮ ﮐﻤﮑﯽ ﺑﺮاي آن دﺳﺘﻮرﺑﺎز ﻣﯿﻨﻤﺎﯾﺪ‪:‬‬
‫‪du‬‬ ‫‪--help‬‬
‫ﻣﺸﺎﻫﺪه راﻫﻨﻤﺎ‬
‫دﺳﺘﻮر ‪apropos‬ﺑﺮاي ﺟﺴﺘﺠﻮ و ﻧﻤﺎﯾﺶ ﺗﻮﺿﯿﺤﺎت دﺳﺘﻮر اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ apropos adduser‬‬
‫روش ﺑﺮاي ﯾﺎﻓﺘﻦ ﯾﮏ ﻓﺮﻣﺎن ﺑﺎﯾﻨﺮي و ﺗﻮﺿﯿﺤﺎت در ‪ system‬ﻓﺎﯾﻞ‬
‫داﻧﺴﺘﻦ ﺟﺰﺋﯿﺎت دﺳﺘﻮرات ‪ linux‬ﻧﻪ ﺗﻨﻬﺎ ﺑﻪ ﮐﺎرﺑﺮ ‪ linux‬ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ دﺳﺘﻮرات ﻣﺘﻌﺪد را ﻣﺪﯾﺮﯾﺖ ﮐﻨﺪ‪ ،‬ﺑﻠﮑﻪ‬
‫ﮐﺎرﺑﺮ را ﻧﯿﺰ ﻗﺎدر ﻣﯽﺳﺎزد ﮐﻪ ﻋﻤﻠﯿﺎت ﻣﺮﺑﻮط ﺑﻪ ‪ system‬را از آﻧﻬﺎ ﺑﺮاي اﺳﺘﻔﺎده از ﺧﻂ ﻓﺮﻣﺎن ﯾﺎ ﯾﮏ اﺳﮑﺮﯾﭙﺖ‬
‫اﺳﺘﻔﺎده ﮐﻨﺪ ‪ .‬ﺑﺮاي ﮐﺸﻒ دﺳﺘﻮرات ﺟﺪﯾﺪ ﺑﺮ روي ‪ system‬ﺷﻤﺎ‪ ،‬ﺑﻪ ﺗﻤﺎم داﯾﺮﮐﺘﻮري ﻫﺎ در ﻣﺘﻐﯿﺮ ﻣﺤﯿﻄﯽ ‪PATH‬‬
‫ﻧﮕﺎه ﮐﻨﯿﺪ‪.‬اﯾﻦ ﻓﻬﺮﺳﺖ ﺗﻤﺎم دﺳﺘﻮرات ‪ /‬ﺑﺮﻧﺎﻣﻪ ﻫﺎي ‪ install‬ﺷﺪه در ‪ system‬را ذﺧﯿﺮه ﻣﯽ ﮐﻨﺪ‪ .‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﯾﮏ‬
‫ﻧﺎم ﻓﺮﻣﺎن ﺟﺎﻟﺐ ﭘﯿﺪا ﮐﺮدﯾﺪ‪ ،‬ﻗﺒﻞ از اﯾﻨﮑﻪ ﺑﻪ ﺧﻮاﻧﺪن ﺑﯿﺸﺘﺮ در ﻣﻮرد آن اﺣﺘﻤﺎﻻ در ﺻﻔﺤﻪ ‪ man‬ﺑﭙﺮدازﯾﺪ‪ ،‬ﺳﻌﯽ‬
‫ﮐﻨﯿﺪ اﻃﻼﻋﺎت ﺟﺰﺋﯽ درﺑﺎره آن را ﺑﻪ ﺻﻮرت زﯾﺮ ﺟﻤﻊ آوري ﮐﻨﯿﺪ‪.‬‬

‫ﯾﺎﻓﺘﻦ دﺳﺘﻮرات ﺟﺪﯾﺪ در ‪linux‬‬


‫اﮐﻨﻮن ﺗﻮﺿﯿﺤﺎت و ﻣﮑﺎن ﻓﺮﻣﺎن ﻫﺎ را ﺑﺎ اﺳﺘﻔﺎده از روﺷﻬﺎي ﻣﺨﺘﻠﻒ در ‪ linux‬ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪whatis‬‬
‫‪whatis‬ﺑﺮاي ﻧﻤﺎﯾﺶ ﯾﮏ ﺧﻂ ﺗﻮﺿﯿﺤﺎت اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﮐﻪ ﺑﻪ ﻋﻨﻮان ﯾﮏ ‪ argument‬وارد ﻣﯽ ﺷﻮﯾﺪ‪.‬‬

‫‪33‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪34‬‬

‫اﮔﺮ ﺗﻮﺿﯿﺤﺎت ﺑﯿﺶ از ﺣﺪ ﻃﻮﻻﻧﯽ ﺑﺎﺷﺪ ﺑﺮﺧﯽ از ﻗﻄﻌﺎت ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ﻣﺮﺗﺐ ﺷﺪه اﻧﺪ‪ ،‬از ﭘﺮﭼﻢ ‪-l‬ﺑﺮاي ﻧﺸﺎن‬
‫دادن ﺷﺮح ﮐﺎﻣﻞ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ whatis fswatch‬‬
‫‪$ whatis -l fswatch‬‬

‫دﺳﺘﻮر‬
‫ﺟﺴﺘﺠﻮﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ﻧﺎﻣﻬﺎي ﺻﻔﺤﻪ ﮐﺘﺎﺑﭽﻪ راﻫﻨﻤﺎي ﮐﺎرﺑﺮ و ﺗﻮﺻﯿﻒ ﮐﻠﻤﺎت ﮐﻠﯿﺪي )در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﻪ ﺻﻮرت‬
‫ﺧﻄﯽ ﮐﻪ ﻧﺎم ﻓﺮﻣﺎن اﺳﺖ( اراﺋﻪ ﺷﺪه اﺳﺖ‪.‬‬
‫ﮔﺰﯾﻨﻪ ‪-l‬ﻧﺸﺎﻧﮕﺮ ﺗﻮﺻﯿﻒ رﻗﺎﺑﺖ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ apropos fswatch‬‬
‫‪$ apropos -l fswatch‬‬

‫ﻣﺜﺎل ‪apropos linux‬‬


‫ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪apropos ،‬ﻣﻤﮑﻦ اﺳﺖ ﺧﺮوﺟﯽ ﺗﻤﺎم ﺧﻄﻮط ﻫﻤﮕﺮا را ﻧﺸﺎن دﻫﺪ‪:.‬‬
‫‪$ apropos fmt‬‬
‫‪$ apropos –e fmt‬‬

‫‪34‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪35‬‬

‫ﻧﻮع ﻓﺮﻣﺎن‬
‫دﺳﺘﻮر ‪type‬ﺑﻪ ﺷﻤﺎ ﻣﯽ ﮔﻮﯾﺪ ﮐﻪ ﻧﺎم ﮐﺎﻣﻞ ﯾﮏ ﻓﺮﻣﺎن داده ﺷﺪه ﭼﯿﺴﺖ؟‬
‫ﺷﻞ ﺳﺎﺧﺘﻪ ﺷﺪه‬ ‫‪.1‬‬
‫ﮐﻠﻤﻪ ﮐﻠﯿﺪي ﺷﻞ‬ ‫‪.2‬‬
‫ﻧﺎم ﻣﺴﺘﻌﺎر‬ ‫‪.3‬‬

‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﻧﺎم ﻫﺎي ﻣﺴﺘﻌﺎر اﯾﺠﺎد ﺷﺪه در ‪ system‬ﺧﻮد از دﺳﺘﻮر ﻧﺎم ﻣﺴﺘﻌﺎر اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬

‫ﻧﻤﺎﯾﺶ ﺗﻤﺎم ﻧﺎم ﻣﺴﺘﻌﺎر در ‪linux‬‬


‫دﺳﺘﻮر ‪which‬‬
‫ﺑﻪ ﯾﮏ ﻓﺮﻣﺎن ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ‪ ،‬ﻣﺴﯿﺮ ﻓﺮﻣﺎن ﻣﻄﻠﻖ را ﺑﻪ ﺻﻮرت زﯾﺮ ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪:‬‬

‫ﯾﺎﻓﺘﻦ ﻣﻮﻗﻌﯿﺖ دﺳﺘﻮرات ‪linux‬‬


‫ﺑﻌﻀﯽ از ﻓﺎﯾﻠﻬﺎي دوﺗﺎﯾﯽ را ﻣﯽ ﺗﻮان در ﺑﯿﺶ از ﯾﮏ ﭘﻮﺷﻪ ﺗﺤﺖ ‪PATH‬ذﺧﯿﺮه ﮐﺮد ‪ ،‬از ﭘﺮﭼﻢ ‪-a‬ﺑﺮاي ﻧﺸﺎن دادن‬
‫ﻫﻤﻪ ﭘﻼﮔﯿﻦ ﻫﺎي ﻣﻨﻄﺒﻖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬
‫دﺳﺘﻮر ‪ whereis‬ﻓﺎﯾﻞ ﻫﺎي ﺑﺎﯾﻨﺮي‪ ،‬ﻣﻨﺒﻊ و ﻓﺎﯾﻞ ﻫﺎي ﺻﻔﺤﻪ دﺳﺘﯽ را ﺑﺮاي ﻧﺎم ﻓﺮﻣﺎن ﺑﻪ ﺻﻮرت زﯾﺮ اراﺋﻪ ﻣﯽ ﮐﻨﺪ‪:‬‬

‫‪35‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪36‬‬

‫‪$ whereis mkdir‬‬


‫‪$ whereis rm‬‬

‫دﺳﺘﻮر ‪man‬‬
‫دﺳﺘﻮر ‪ man‬ﻗﺒﻞ از ﻫﺮ دﺳﺘﻮر ‪ manual‬آن را ﻧﺸﺎن ﻣﯿﺪﻫﺪ‪.‬‬
‫‪man ls‬‬
‫ﻣﺸﺎﻫﺪه و وﯾﺮاﯾﺶ ﻓﺎﯾﻞ ﻫﺎ‬
‫‪head / tail / cat / less‬‬
‫‪ head‬ﭼﻨﺪ ﺧﻂ اول ﯾﮏ ﻓﺎﯾﻞ را ﻧﺸﺎن ﻣﯿﺪﻫﺪ‪ .‬ﺳﻮﯾﭻ ‪ n-‬ﺗﻌﺪاد ﺧﻄﻮط را ﻧﺸﺎن ﻣﯽ دﻫﺪ )ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ‪10‬‬
‫اﺳﺖ( ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﺪ‪:‬‬
‫‪# prints the first three lines‬‬
‫‪12:05 | hossein@pc01 ~ | head-n 3 c‬‬
‫‪this‬‬
‫‪file‬‬
‫‪has‬‬
‫‪tail‬‬
‫ﭼﻨﺪ ﺧﻂ آﺧﺮ ﯾﮏ ﻓﺎﯾﻞ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# prints the end of the file, beginning with the 4th line‬‬
‫‪12:05 | hossein@pc01 ~ | tail-n +4 c‬‬
‫‪exactly‬‬
‫‪six‬‬
‫‪lines‬‬
‫‪cat‬‬
‫ﻣﺤﺘﻮاي ﻓﺎﯾﻞ را ﺑﻪ ﺧﺮوﺟﯽ )ﻣﻌﻤﻮﻻ ﺗﺮﻣﯿﻨﺎل( ﻣﯽ ﻓﺮﺳﺘﺪ‪ .‬ﻣﯽ ﺗﻮاﻧﺪ ﻓﻘﻂ ﺑﺎ ﯾﮏ ﻓﺎﯾﻞ ﯾﺎ ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﺷﻮد و‬
‫اﻏﻠﺐ ﺑﻪ ﺳﺮﻋﺖ آﻧﻬﺎ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪12:05 | hossein@pc01 ~ | cat a‬‬
‫‪file a‬‬

‫‪12:05 | hossein@pc01 ~ | cat a b‬‬


‫‪file a‬‬
‫‪file b‬‬

‫‪36‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪37‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪ Cat Command Basic‬در ‪linux‬‬


‫ﻓﺮﻣﺎن ‪) cat‬ﻣﺨﺘﺺ ﺑﻪ )" ‪ " concatenate‬ﯾﮑﯽ از ﻓﺮﻣﺎن ﻫﺎي اﻏﻠﺐ ﻣﻮرد اﺳﺘﻔﺎده در ‪ / linux‬ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ‬
‫‪ system‬ﻋﺎﻣﻞ اﺳﺖ‪.‬دﺳﺘﻮر ‪ cat‬اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﻣﺎ ﺑﺮاي اﯾﺠﺎد ﻓﺎﯾﻞ ﻫﺎي ﺗﮏ و ﯾﺎ ﭼﻨﺪ‪ ،‬ﻣﺸﺎﻫﺪه ﺷﺎﻣﻞ ﻓﺎﯾﻞ‪ ،‬ﭘﯿﻮﻧﺪ‬
‫ﻓﺎﯾﻞ ﻫﺎ و ﻫﺪاﯾﺖ ﺧﺮوﺟﯽ در ﺗﺮﻣﯿﻨﺎل و ﯾﺎ ﻓﺎﯾﻞ ﻫﺎ‬
‫‪cat‬‬ ‫]‪[FILE‬‬
‫در ﻣﺜﺎل زﯾﺮ‪ ،‬ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ‪ / etc / passwd‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪# cat / etc / passwd‬‬

‫‪root: x: 0: 0: root: / root: / bin / bash‬‬


‫‪bin: x: 1: 1: bin: / bin: / sbin / nologin‬‬
‫‪narad: x: 500: 500 :: / home / narad: / bin / bash‬‬
‫‪ .2‬ﻣﺸﺎﻫﺪه ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ در ﺗﺮﻣﯿﻨﺎل‬
‫در ﻣﺜﺎل زﯾﺮ‪ ،‬ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ‪test‬و ‪test1‬در ﺗﺮﻣﯿﻨﺎل ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪.‬‬
‫‪# cat test test1‬‬
‫‪ 3.‬ﯾﮏ ﻓﺎﯾﻞ ﺑﺎ ﻓﺮﻣﺎن ‪ cat‬اﯾﺠﺎد ﮐﻨﯿﺪ‬
‫ﻣﺎ ﻓﺎﯾﻞ ﺑﺎ ﻧﺎم ‪test2‬را ﺑﺎ ﻓﺮﻣﺎن زﯾﺮ اﯾﺠﺎد ﺧﻮاﻫﯿﻢ ﮐﺮد‪.‬‬
‫‪# cat > test2‬‬
‫در اﻧﺘﻈﺎر ورودي از ﮐﺎرﺑﺮ‪ ،‬ﻣﺘﻦ ﻣﻮرد ﻧﻈﺮ را ﺗﺎﯾﭗ ﮐﺮده و ‪CTRL + D‬را ﻓﺸﺎر دﻫﯿﺪ ‪ .‬ﻣﺘﻦ در ﻓﺎﯾﻞ ‪ test2‬ﻧﻮﺷﺘﻪ‬
‫ﺧﻮاﻫﺪ ﺷﺪ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ را ﺑﺎ دﺳﺘﻮر ‪cat‬زﯾﺮ دﻧﺒﺎل ﮐﻨﯿﺪ‪.‬‬
‫‪# cat test2‬‬
‫از ﻓﺮﻣﺎن ‪ Cat‬ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎي ﺑﯿﺸﺘﺮ و ﮐﻤﺘﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ اﮔﺮ ﻓﺎﯾﻞ ﺑﺎ ﺗﻌﺪاد زﯾﺎدي از ﻣﺤﺘﻮا ﮐﻪ در ﺗﺮﻣﯿﻨﺎل ﺧﺮوﺟﯽ‬
‫ﻣﻨﺎﺳﺐ ﻧﯿﺴﺖ و ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺑﺴﯿﺎر ﺳﺮﯾﻊ ﺣﺮﮐﺖ ﻣﯽ ﮐﻨﺪ‪ ،‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از ﭘﺎراﻣﺘﺮﻫﺎي ﺑﯿﺸﺘﺮ و ﮐﻤﺘﺮ ﺑﺎ‬
‫دﺳﺘﻮر ‪cat‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل ﺑﺎﻻ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬
‫‪# cat song.txt |more‬‬
‫‪# cat song.txt |less‬‬
‫ﻧﻤﺎﯾﺶ ﺷﻤﺎره ﺧﻂ در ﻓﺎﯾﻞ‬
‫ﺑﺎ ﮔﺰﯾﻨﻪ ‪-n‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺷﻤﺎره ﺧﻂ ﯾﮏ ﻓﺎﯾﻞ ‪song.txt‬را در ﺗﺮﻣﯿﻨﺎل ﺧﺮوﺟﯽ ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫‪# cat -n song.txt‬‬

‫‪37‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪38‬‬

‫ﻧﻤﺎﯾﺶ ‪ $‬در ﭘﺎﯾﺎن ﻓﺎﯾﻞ‬


‫در اداﻣﻪ ﻣﯿﺘﻮاﻧﯿﺪ ﺑﺎ ﮔﺰﯾﻨﻪ ‪ –e‬ﻋﻼﻣﺖ " ‪ " $‬در اﻧﺘﻬﺎي ﺧﻂ ﻗﺮاردﻫﯿﺪ‪.‬‬
‫‪# cat -e test‬‬
‫ﺧﺮوﺟﯽ‬
‫‪ $‬ﺳﻼم ﺑﻪ ﻫﻤﻪ‪ ،‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ اﻧﺠﺎم دﻫﻢ؟‬
‫‪$‬‬
‫‪ $‬ﺳﻼم‪ ،‬ﻣﻦ ﺧﻮﺑﻢ‬
‫‪ $‬ﭼﮕﻮﻧﻪ آﻣﻮزش ﺧﻮد را اداﻣﻪ ﻣﯽ دﻫﯽ؟‬
‫‪$‬‬
‫ﻧﻤﺎﯾﺶ ﺗﺐ از ﺧﻄﻮط ﺟﺪا ﺷﺪه در ﻓﺎﯾﻞ‬
‫در ﺧﺮوﺟﯽ ﭘﺎﯾﯿﻦ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﻔﻬﻤﯿﻢ ﻓﺎﺻﻠﻪ ‪TAB‬ﺑﺎ ﺷﺨﺼﯿﺖ ' ‪ ' ^ I‬ﭘﺮ ﺷﺪه اﺳﺖ‪.‬‬
‫‪# cat –T test‬‬
‫ﺧﺮوﺟﯽ‬
‫ﺳﻼم ^ﻣﻦ ﻫﻤﻪ‪ ،‬ﭼﻄﻮر؟‬
‫ﺳﻼم ^ﻣﻦ ﺧﻮﺑﻢ‬
‫^^^^^^^^^^^^^^^^^^^^^^^^^^^‬
‫ﺑﯿﺎﯾﯿﺪ اﻧﺠﺎم دﻫﯿﻢ ^ ﺗﻤﺮﯾﻦ ﻣﺎﻧﺪه را‪.‬‬

‫‪.‬ﻧﻤﺎﯾﺶ ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ‬


‫در ﻣﺜﺎل زﯾﺮ ﻣﺎ داراي ‪ 2‬ﻓﺎﯾﻞ ‪test1‬و ‪test2‬ﻫﺴﺘﯿﻢ و ﻗﺎدر ﺑﻪ ﻣﺸﺎﻫﺪه ﻣﺤﺘﻮﯾﺎت آن ﻓﺎﯾﻞ ﻫﺴﺘﯿﻢ‬
‫‪ cat tset 2‬؛ ‪cat test1‬‬
‫اﯾﻦ ﻓﺎﯾﻞ ‪ test1‬اﺳﺖ‪.‬‬
‫اﯾﻦ ﻓﺎﯾﻞ ‪ test2‬اﺳﺖ‪.‬‬

‫اﺳﺘﻔﺎده از ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ‬


‫ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪،‬‬ ‫ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﯾﮏ ﭘﺮوﻧﺪه را ﺑﻪ ﯾﮏ ﻓﺎﯾﻞ ﺟﺪﯾﺪ دﯾﮕﺮي ﮐﻪ ﺑﺎ ﻋﻼﻣﺖ ' > '‬
‫ﺗﻐﯿﯿﺮ دﻫﯿﻢ‪.‬ﻣﺤﺘﻮﯾﺎت ﺗﺴﺖ ‪ ، 1‬ﺑﺎ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﺗﺴﺖ‪ ،‬روﻧﻮﯾﺴﯽ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪# cat test > test1‬‬
‫ﺿﻤﯿﻤﻪ ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ‬
‫در ﻓﺎﯾﻞ ﺟﺎري ﺑﺎ ﻧﻤﺎد » >> « ﻣﻘﺎدﯾﺮ اﺿﺎﻓﻪ ﺑﻪ ﻓﺎﯾﻞ داده ﺷﺪه ﻣﯿﺸﻮد‪.‬در اﯾﻨﺠﺎ‪ ،‬ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﺗﺴﺖ در ﭘﺎﯾﺎن‬
‫ﻓﺎﯾﻞ ‪ test1‬اﺿﺎﻓﻪ ﻣﯽ ﺷﻮد‪.‬‬
‫‪# cat test >> test1‬‬

‫‪38‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪39‬‬

‫‪.‬اﻧﺘﻘﺎل اﺳﺘﺎﻧﺪارد ورودي ﺑﺎ اﭘﺮاﺗﻮر ﻫﺪاﯾﺘﮕﺮ‬


‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﺪ‪ ،‬از ﻧﺎم ﻓﺎﯾﻞ ‪test2‬ﺑﻪ ﻋﻨﻮان ورودي ﺑﺮاي‬ ‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺷﻤﺎ از ﺗﻐﯿﯿﺮ ﻣﺴﯿﺮ ﺑﺎ ورودي اﺳﺘﺎﻧﺪارد <‬
‫ﯾﮏ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ و ﺧﺮوﺟﯽ در ﺗﺮﻣﯿﻨﺎل ﻧﺸﺎن داده ﻣﯽ ﺷﻮد‪.‬‬
‫‪# cat < test2‬‬
‫‪.‬ﻣﺴﯿﺮ ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ در ﯾﮏ ﻓﺎﯾﻞ‬
‫اﯾﻦ ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻧﺎم ‪test3‬اﯾﺠﺎد ﺧﻮاﻫﺪ ﮐﺮد و ﺗﻤﺎم ﺧﺮوﺟﯽ ﻫﺎ در ﯾﮏ ﻓﺎﯾﻞ ﺟﺪﯾﺪ اﯾﺠﺎد ﺷﺪه ﻫﺪاﯾﺖ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪# cat test test1 test2 > test3‬‬
‫ﻣﺮﺗﺐ ﺳﺎزي ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ در ﯾﮏ ﻓﺎﯾﻞ‬
‫در اﯾﻦ ﻣﺜﺎل ﯾﮏ ﺗﺴﺖ ﻓﺎﯾﻞ ‪ 4‬اﯾﺠﺎد ﻣﯽ ﺷﻮد و ﺧﺮوﺟﯽ دﺳﺘﻮر ‪ cat‬ﺑﻪ ﺻﻮرت ﻣﺮﺗﺐ در ﯾﮏ ﻓﺎﯾﻞ ﺗﺎزه اﯾﺠﺎد ﺷﺪه‬
‫ﻫﺪاﯾﺖ ﻣﯽ ﺷﻮد‪.‬‬
‫‪# cat test test1 test2 test3 | ordered > test4‬‬
‫ﻓﺮﻣﺎن‪chgrp‬‬
‫دﺳﺘﻮر ‪chgrp‬ﺑﺮاي ﺗﻐﯿﯿﺮ ﻣﺎﻟﮑﯿﺖ ﮔﺮوﻫﯽ ﯾﮏ ﭘﺮوﻧﺪه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻧﺎم ﮔﺮوه ﺟﺪﯾﺪ را ﺑﻪ ﻋﻨﻮان اوﻟﯿﻦ آرﮔﻮﻣﺎن‬
‫ﺧﻮد و ﻧﺎم ﭘﺮوﻧﺪه ﺑﻪ ﻋﻨﻮان آرﮔﻮﻣﺎن دوم ﺑﻪ ﺻﻮرت زﯾﺮ ﻗﺮار دﻫﯿﺪ‪:‬‬
‫‪$ chgrp hosein users.txt‬‬

‫‪39‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪40‬‬

‫ﻣﺠﻮزﻫﺎ‬
‫ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎي ﻣﺸﺎﺑﻪ ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ ﻟﯿﻨﻮﮐﺲ ﺑﺎ ﺳﺎﯾﺮ ﺳﯿﺴﺘﻢ ﻫﺎي ﮐﺎﻣﭙﯿﻮﺗﺮي ﻣﺘﻔﺎوت اﺳﺖ‪ ،‬زﯾﺮا آﻧﻬﺎ ﻧﻪ ﺗﻨﻬﺎ‬
‫ﭼﻨﺪ وﻇﯿﻔﻪ ﺑﻠﮑﻪ ﭼﻨﺪ ﮐﺎرﺑﺮه ﻧﯿﺰ ﻫﺴﺘﻨﺪ ‪.‬اﯾﻦ ﺑﺪان ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﺑﯿﺶ از ﯾﮏ ﮐﺎرﺑﺮ ﻣﯿﺘﻮاﻧﺪ ﻫﻤﺰﻣﺎن ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫را اداره ﮐﻨﺪ ‪.‬در ﺣﺎﻟﯽ ﮐﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺷﻤﺎ ﺗﻨﻬﺎ داراي ﯾﮏ ﺻﻔﺤﻪ ﮐﻠﯿﺪ و ﻣﺎﻧﯿﺘﻮر اﺳﺖ‪ ،‬ﻫﻨﻮز ﻫﻢ ﻣﯽ ﺗﻮاﻧﺪ ﺗﻮﺳﻂ ﺑﯿﺶ‬
‫از ﯾﮏ ﮐﺎرﺑﺮ اﺳﺘﻔﺎده ﺷﻮد ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬اﮔﺮ راﯾﺎﻧﻪ ﺷﻤﺎ ﺑﻪ ﯾﮏ ﺷﺒﮑﻪ ﯾﺎ اﯾﻨﺘﺮﻧﺖ ﻣﺘﺼﻞ ﺷﻮد‪ ،‬ﮐﺎرﺑﺮان از راه دور ﻣﯽ‬
‫ﺗﻮاﻧﻨﺪ از ﻃﺮﯾﻖ ( ‪ssh‬ﭘﻮﺳﺘﻪ اﻣﻦ( وارد ﺳﯿﺴﺘﻢ ﺷﻮﯾﺪ و ﮐﺎﻣﭙﯿﻮﺗﺮ را اداره ﮐﻨﯿﺪ ‪.‬در واﻗﻊ‪ ،‬ﮐﺎرﺑﺮان از راه دور ﻣﯽ ﺗﻮاﻧﻨﺪ‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﮔﺮاﻓﯿﮑﯽ را اﺟﺮا ﮐﻨﻨﺪ و ﺧﺮوﺟﯽ ﻧﻤﺎﯾﺶ داده ﺷﺪه در ﯾﮏ ﮐﺎﻣﭙﯿﻮﺗﺮ از راه دور ‪.‬ﺳﯿﺴﺘﻢ ‪ X Window‬از‬
‫اﯾﻦ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﺪ ‪.‬‬
‫ﺑﺮاي اﯾﺠﺎد اﯾﻦ ﻋﻤﻠﯿﺎت‪ ،‬ﯾﮏ روش ﺑﺮاي ﺣﻔﺎﻇﺖ از ﮐﺎرﺑﺮان از ﯾﮑﺪﯾﮕﺮ ﻃﺮاﺣﯽ ﺷﺪه اﺳﺖ‪.‬‬

‫ﻓﺮﻣﺎن‪chmod‬‬
‫دﺳﺘﻮر ‪chmod‬ﺑﺮاي ﺗﻐﯿﯿﺮ ﻣﺠﻮز ﯾﮏ ﻓﺎﯾﻞ ﯾﺎ داﯾﺮﮐﺘﻮري اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪.‬ﺑﺮاي اﺳﺘﻔﺎده از آن‪ ،‬ﺗﻨﻈﯿﻤﺎت ﻣﺠﺎز‬
‫ﻣﻮرد ﻧﻈﺮ و ﻓﺎﯾﻞ ﯾﺎ ﻓﺎﯾﻞ ﻫﺎﯾﯽ را ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺗﻐﯿﯿﺮ دﻫﯿﺪ را ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﯿﺪ ‪.‬دو راه ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﻣﺠﻮز‬
‫وﺟﻮد دارد ‪.‬از ﺗﻨﻈﯿﻤﺎت ﻣﺠﻮز ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺳﺮي از ﺑﯿﺖ ﻫﺎ )ﮐﻪ ﮐﺎﻣﭙﯿﻮﺗﺮﻫﺎ در ﻣﻮرد آﻧﻬﺎ ﻓﮑﺮ ﻣﯽ ﮐﻨﻨﺪ( آﺳﺎن اﺳﺖ ‪.‬‬
‫در اﯾﻨﺠﺎ ﻣﺸﺨﺺ اﺳﺖ ﮐﻪ ﭼﮕﻮﻧﻪ ﮐﺎر ﻣﯽ ﮐﻨﺪ ‪:‬‬
‫‪rwx rwx = 111 111 111‬‬
‫‪rw- rw- rw- = 110 110 110‬‬
‫‪rwx --- --- = 111 000 000‬‬

‫‪40‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪41‬‬

‫ﯾﺎ‬
‫‪= 7‬در دودوﯾﯽ ‪rwx = 111‬‬
‫‪= 6‬در دودوﯾﯽ ‪rw- = 110‬‬
‫‪= 5‬در دودوﯾﯽ ‪rx = 101‬‬
‫‪= 4‬در دودوﯾﯽ ‪r -- = 100‬‬

‫در اﯾﻨﺠﺎ ﯾﮏ ﺟﺪول اﻋﺪاد اﺳﺖ ﮐﻪ ﺗﻤﺎم ﺗﻨﻈﯿﻤﺎت راﯾﺞ را ﭘﻮﺷﺶ ﻣﯽ دﻫﺪ ‪.‬‬
‫ﻣﻘﺪار ﺗﻮﺿﯿﺢ‬
‫)‪(rwxrwxrwx‬ﻫﯿﭻ ﻣﺤﺪودﯾﺘﯽ در ﻣﺠﻮزﻫﺎ وﺟﻮد ﻧﺪارد ‪.‬ﻫﺮ ﮐﺴﯽ ﻣﯽ ﺗﻮاﻧﺪ ﮐﺎري اﻧﺠﺎم دﻫﺪ ‪.‬ﺑﻪ ﻃﻮر ﮐﻠﯽ ﯾﮏ‬
‫‪777‬‬
‫ﺗﻨﻈﯿﻢ ﻣﻄﻠﻮب ﻧﯿﺴﺖ‬
‫)‪(rwxr-xr-x‬ﺻﺎﺣﺐ ﭘﺮوﻧﺪه ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را ﺑﺨﻮاﻧﺪ‪ ،‬ﻧﻮﺷﺖ و اﺟﺮا ﮐﻨﺪ ‪.‬ﻫﻤﻪ دﯾﮕﺮان ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را‬
‫‪755‬‬
‫ﺑﺨﻮاﻧﻨﺪ و اﺟﺮا ﮐﻨﻨﺪ ‪.‬اﯾﻦ ﺗﻨﻈﯿﻢ راﯾﺞ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﻫﻤﻪ ﮐﺎرﺑﺮان ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪.‬‬
‫‪(rwx‬ﺻﺎﺣﺐ ﭘﺮوﻧﺪه ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را ﺑﺨﻮاﻧﺪ‪ ،‬ﻧﻮﺷﺘﻦ و اﺟﺮا ﮐﻨﺪ ‪.‬ﻫﯿﭻ ﮐﺲ ﻫﯿﭻ ﺣﻘﻮق ﻧﺪارد‬ ‫)‪-- -- --‬‬
‫‪700‬‬
‫اﯾﻦ ﺗﻨﻈﯿﻢ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻫﺎﯾﯽ ﻣﻔﯿﺪ اﺳﺖ ﮐﻪ ﺗﻨﻬﺎ ﻣﺎﻟﮏ ﻣﯽ ﺗﻮاﻧﺪ از آن اﺳﺘﻔﺎده ﮐﻨﺪ و ﺑﺎﯾﺪ از دﯾﮕﺮان ﺧﺼﻮﺻﯽ ﺑﺎﺷﺪ‪.‬‬
‫)‪(rw-rw-rw-‬ﻫﻤﻪ ﮐﺎرﺑﺮان ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را ﺑﺨﻮاﻧﻨﺪ و ﺑﻨﻮﯾﺴﻨﺪ‪.‬‬ ‫‪666‬‬
‫)‪(rw-r-r --‬ﺻﺎﺣﺐ ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را ﺑﺨﻮاﻧﺪ و ﻧﻮﺷﺖ‪ ،‬در ﺣﺎﻟﯽ ﮐﻪ دﯾﮕﺮان ﻓﻘﻂ ﻓﺎﯾﻞ را ﻣﯽ ﺧﻮاﻧﻨﺪ ‪.‬ﯾﮏ‬
‫‪644‬‬
‫ﺗﻨﻈﯿﻢ راﯾﺞ ﺑﺮاي ﻓﺎﯾﻞ ﻫﺎي داده اي ﮐﻪ ﻫﻤﻪ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﺨﻮاﻧﻨﺪ‪ ،‬اﻣﺎ ﺗﻨﻬﺎ ﻣﺎﻟﮏ ﻣﻤﮑﻦ اﺳﺖ ﺗﻐﯿﯿﺮ ﮐﻨﺪ‪.‬‬
‫‪(rw‬ﻣﺎﻟﮏ ﻣﻤﮑﻦ اﺳﺖ ﻓﺎﯾﻞ را ﺑﺨﻮاﻧﺪ و ﻧﻮﺷﺖ ‪.‬ﻫﻤﻪ دﯾﮕﺮان ﺣﻘﻮق ﻧﺪارﻧﺪ ‪.‬ﯾﮏ ﺗﻨﻈﯿﻢ راﯾﺞ ﺑﺮاي‬ ‫)‪-- -- ---‬‬
‫‪600‬‬
‫ﻓﺎﯾﻠﻬﺎي داده اي ﮐﻪ ﻣﺎﻟﮏ ﻣﯽ ﺧﻮاﻫﺪ ﺧﺼﻮﺻﯽ ﻧﮕﻪ دارد‪.‬‬

‫ﻣﺠﻮزﻫﺎي داﯾﺮﮐﺘﻮري‬
‫دﺳﺘﻮر ‪chmod‬ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ﮐﻨﺘﺮل ﻣﺠﻮزﻫﺎي دﺳﺘﺮﺳﯽ ﺑﺮاي داﯾﺮﮐﺘﻮري ﻫﺎ اﺳﺘﻔﺎده ﺷﻮد‪ ،.‬اﻣﺎ ﻣﻌﻨﺎي‬
‫وﯾﮋﮔﯽ ﻫﺎي‪w ، r‬و ‪ x‬ﻣﺘﻔﺎوت اﺳﺖ ‪:‬‬
‫‪R -‬اﺟﺎزه ﻣﯽ دﻫﺪ ﮐﻪ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮري در ﺻﻮرﺗﯽ ﮐﻪ ﺻﻔﺖ ‪ x‬ﻧﯿﺰ ﺗﻨﻈﯿﻢ ﺷﺪه ﺑﺎﺷﺪ ﻓﻬﺮﺳﺖ ﺷﻮد ‪.‬‬
‫‪W -‬اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﻓﺎﯾﻞ ﻫﺎ درون داﯾﺮﮐﺘﻮري اﯾﺠﺎد‪ ،‬ﺣﺬف و ﯾﺎ ﺗﻐﯿﯿﺮ ﻧﺎم داده ﺷﻮﻧﺪ‪ ،‬اﮔﺮ وﯾﮋﮔﯽ ‪ x‬ﻧﯿﺰ ﺗﻨﻈﯿﻢ‬
‫ﺷﻮد ‪.‬‬
‫‪x -‬ﺑﻪ ﯾﮏ داﯾﺮﮐﺘﻮري وارد ﻣﯽ ﺷﻮد‪.‬‬

‫‪41‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪42‬‬

‫در اﯾﻨﺠﺎ ﺑﺮﺧﯽ از ﺗﻨﻈﯿﻤﺎت ﻣﻔﯿﺪ ﺑﺮاي داﯾﺮﮐﺘﻮري ﻫﺎ وﺟﻮد دارد ‪:‬‬
‫ﻣﻘﺪار ﺗﻮﺿﯿﺢ‬
‫ﻫﺮ ﮐﺲ ﻣﯽ ﺗﻮاﻧﺪ ﻓﺎﯾﻞ ﻫﺎ را ﻟﯿﺴﺖ ﮐﻨﺪ‪ ،‬ﻓﺎﯾﻞ ‪.‬ﻫﯿﭻ ﻣﺤﺪودﯾﺘﯽ در ﻣﺠﻮزﻫﺎ وﺟﻮد ﻧﺪارد )‪(rwxrwxrwx‬‬
‫‪ 777‬ﺑﻪ ﻃﻮر ﮐﻠﯽ ﯾﮏ ﻣﺤﯿﻂ ﺧﻮب ‪.‬ﻫﺎي ﺟﺪﯾﺪ را در داﯾﺮﮐﺘﻮري اﯾﺠﺎد ﮐﻨﺪ و ﻓﺎﯾﻞ ﻫﺎ را در داﯾﺮﮐﺘﻮري ﺣﺬف ﮐﻨﺪ‬
‫ﻧﯿﺴﺖ‬
‫ﻫﻤﻪ دﯾﮕﺮان ﻣﻤﮑﻦ اﺳﺖ داﯾﺮﮐﺘﻮري را ﻓﻬﺮﺳﺖ ‪.‬ﻣﺎﻟﮏ ﭘﻮﺷﻪ داراي دﺳﺘﺮﺳﯽ ﮐﺎﻣﻞ اﺳﺖ )‪(rwxr-xr-x‬‬
‫‪ 755‬اﯾﻦ ﺗﻨﻈﯿﻢ ﺑﺮاي داﯾﺮﮐﺘﻮري ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ‪.‬ﮐﻨﻨﺪ‪ ،‬اﻣﺎ ﻧﻤﯽ ﺗﻮاﻧﻨﺪ ﻓﺎﯾﻞ ﻫﺎ را اﯾﺠﺎد ﯾﺎ ﺣﺬف ﮐﻨﻨﺪ‬
‫‪.‬ﺑﺎ ﺳﺎﯾﺮ ﮐﺎرﺑﺮان ﺑﻪ اﺷﺘﺮاك ﺑﮕﺬارﯾﺪ‪ ،‬راﯾﺞ اﺳﺖ‬
‫‪(rwx‬‬ ‫ﻫﯿﭻ ﮐﺲ ﻫﯿﭻ ﺣﻘﻮق ﻧﺪارد اﯾﻦ ‪.‬ﻣﺎﻟﮏ داﯾﺮﮐﺘﻮري داراي دﺳﺘﺮﺳﯽ ﮐﺎﻣﻞ اﺳﺖ )‪-- -- --‬‬
‫‪ 700‬ﺗﻨﻈﯿﻤﺎت ﺑﺮاي داﯾﺮﮐﺘﻮري ﻫﺎﯾﯽ ﻣﻔﯿﺪ اﺳﺖ ﮐﻪ ﻓﻘﻂ ﻣﺎﻟﮏ ﻣﯽ ﺗﻮاﻧﺪ اﺳﺘﻔﺎده ﮐﻨﺪ و ﺑﺎﯾﺪ از دﯾﮕﺮان ﺧﺼﻮﺻﯽ‬
‫‪.‬ﻧﮕﻬﺪاري ﺷﻮد‬

‫دﺳﺘﻮر ‪chmod‬ﺑﺮاي ﺗﻐﯿﯿﺮ ‪ /‬ﺑﻪ روز رﺳﺎﻧﯽ ﻣﺠﻮزﻫﺎي دﺳﺘﺮﺳﯽ ﻓﺎﯾﻞ ﻣﺎﻧﻨﺪ اﯾﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ chmod + x sysinfo.sh‬‬
‫دﺳﺘﻮر ‪chown‬‬
‫‪chown command‬ﺗﻐﯿﯿﺮات ‪ /‬ﺑﻪ روز رﺳﺎﻧﯽ ﮐﺎرﺑﺮ و ﮔﺮوه ﻣﺎﻟﮑﯿﺖ ﯾﮏ ﻓﺎﯾﻞ ‪ /‬داﯾﺮﮐﺘﻮري ﻣﺎﻧﻨﺪ اﯾﻦ‪.‬‬
‫‪$ chmod -R‬‬ ‫‪/ var / www / html‬‬

‫‪42‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪43‬‬

‫ﺣﺬف ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ ﺣﺴﺎب )ﻫﻤﺮاه ﺑﺎ ﭘﻮﺷﻪ ‪ home‬ﺧﻮد‪ ،‬اﮔﺮ آن ﻣﺘﻌﻠﻖ ﺑﻪ ﮐﺎرﺑﺮ‪ ،‬و ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﺳﺎﮐﻦ در آن( را‬
‫را ﺣﺬف ﮐﻨﯿﺪ‪.‬‬ ‫ﺣﺬف ﮐﻨﯿﺪ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪userdel‬ﺑﺎ ﮔﺰﯾﻨﻪ ‪--remove‬‬
‫‪# userdel‬‬ ‫]ﻧﺎم ﮐﺎرﺑﺮي[ ‪--remove‬‬

‫ﻣﺪﯾﺮﯾﺖ ﮔﺮوه‬
‫ﻫﺮ ﺑﺎر ﮐﻪ ﯾﮏ ﺣﺴﺎب ﮐﺎرﺑﺮي ﺟﺪﯾﺪ ﺑﻪ ‪ system‬اﻓﺰوده ﻣﯽ ﺷﻮد‪ ،‬ﮔﺮوﻫﯽ ﺑﺎ ﻫﻤﯿﻦ ﻧﺎم ﺑﺎ ﻧﺎم ﮐﺎرﺑﺮي ﺑﻪ ﻋﻨﻮان ﺗﻨﻬﺎ‬
‫ﻋﻀﻮ آن اﯾﺠﺎد ﻣﯽ ﺷﻮد‪.‬دﯾﮕﺮ ﮐﺎرﺑﺮان ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﻌﺪا ﺑﻪ ﮔﺮوه اﺿﺎﻓﻪ ﺷﻮﻧﺪ‪.‬ﯾﮑﯽ از اﻫﺪاف ﮔﺮوه ﻫﺎ اﯾﻦ اﺳﺖ ﮐﻪ ﮐﻨﺘﺮل‬
‫دﺳﺘﺮﺳﯽ ﺳﺎده ﺑﻪ ﻓﺎﯾﻞ ﻫﺎ و ﺳﺎﯾﺮ ﻣﻨﺎﺑﻊ ‪ system‬را ﺑﺎ ﺗﻨﻈﯿﻢ ﻣﺠﻮز ﻫﺎي ﻣﻨﺎﺳﺐ ﺑﺮ روي اﯾﻦ ﻣﻨﺎﺑﻊ اﻧﺠﺎم دﻫﯿﺪ‪.‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ‪passwd‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﻫﺮ ﮐﺎرﺑﺮ ﺑﺎﯾﺪ اﺟﺎزه اﺟﺮاي ‪/ bin / passwd‬داﺷﺘﻪ ﺑﺎﺷﺪ ‪ ،‬اﻣﺎ ﺗﻨﻬﺎ ‪ root‬ﻗﺎدر ﺑﻪ ﻣﺸﺨﺺ ﮐﺮدن ﯾﮏ‬
‫ﺣﺴﺎب ﮐﺎرﺑﺮي ﺧﻮاﻫﺪ ﺑﻮد‪.‬ﮐﺎرﺑﺮان دﯾﮕﺮ ﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﻨﺪ رﻣﺰ ﻋﺒﻮر ﻣﺮﺑﻮﻃﻪ ﺧﻮد را ﺗﻐﯿﯿﺮ دﻫﻨﺪ‪.‬‬

‫ﺗﻐﯿﯿﺮ رﻣﺰ ﻋﺒﻮر ﮐﺎرﺑﺮ‬


‫وﻗﺘﯽ ﺑﯿﺖ ‪setgid‬ﺗﻨﻈﯿﻢ ﻣﯽ ﺷﻮد‪GID ،‬ﻣﻮﺛﺮ واﻗﻌﯽ ﮐﺎرﺑﺮ ﺑﻪ ﻣﺎﻟﮑﯿﺖ ﮔﺮوه ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮد‪.‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﻫﺮ ﮐﺎرﺑﺮ ﻣﯽ‬
‫ﺗﻮاﻧﺪ ﺑﻪ ﯾﮏ ﭘﺮوﻧﺪه ﺗﺤﺖ اﻣﺘﯿﺎزات اﻋﻄﺎ ﺷﺪه ﺑﻪ ﻣﺎﻟﮏ ﮔﺮوﻫﯽ ﭼﻨﯿﻦ ﻓﺎﯾﻞ دﺳﺘﺮﺳﯽ ﭘﯿﺪا ﮐﻨﺪ‪.‬ﻋﻼوه ﺑﺮ اﯾﻦ‪،‬‬
‫ﻫﻨﮕﺎﻣﯿﮑﻪ ﺑﯿﺖ ‪ setgid‬ﺑﺮ روي ﯾﮏ داﯾﺮﮐﺘﻮري ﻗﺮار ﻣﯽ ﮔﯿﺮد‪ ،‬ﻓﺎﯾﻞ ﻫﺎي ﺟﺪﯾﺪ اﯾﺠﺎد ﺷﺪه ﻫﻤﺎن ﮔﺮوه را ﺑﻪ ﻋﻨﻮان‬
‫داﯾﺮﮐﺘﻮري ﺑﻪ ارث ﻣﯽ ﺑﺮﻧﺪ و داﯾﺮﮐﺘﻮري ﻫﺎي ﺟﺪﯾﺪ اﯾﺠﺎد ﺷﺪه ﻧﯿﺰ ﻣﯽ ﺗﻮاﻧﻨﺪ ‪ bitz of setgid‬را از داﯾﺮﮐﺘﻮري‬
‫اﺻﻠﯽ ﺑﻪ ارث ﺑﺒﺮﻧﺪ‪.‬‬
‫]ﻧﺎم ﻓﺎﯾﻞ[ ‪# chmod g + s‬‬

‫ﺑﺮاي ﺗﻨﻈﯿﻢ ‪ ،setgid‬ﺷﻤﺎره ‪2‬را ﺑﻪ ﻣﺠﻮزﻫﺎي اﺳﺎﺳﯽ ﻓﻌﻠﯽ )ﯾﺎ ﻣﻮرد ﻧﻈﺮ( اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪.‬‬
‫]داﯾﺮﮐﺘﻮري[ ‪# chmod 2755‬‬

‫‪43‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪44‬‬

‫ﺗﻨﻈﯿﻢ ‪ SETGID‬در ﯾﮏ داﯾﺮﮐﺘﻮري‬

‫اﻓﺰودن ‪ Setgid‬ﺑﻪ داﯾﺮﮐﺘﻮري‬


‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ " ﺑﯿﺖ ﭼﺴﺒﻨﺪه "در ﻓﺎﯾﻞ ﻫﺎ ﺗﻨﻈﯿﻢ ﻣﯽ ﺷﻮد‪ linux ،‬آن را ﻧﺎدﯾﺪه ﻣﯽ ﮔﯿﺮد‪ ،‬در ﺣﺎﻟﯽ ﮐﻪ ﺑﺮاي‬
‫داﯾﺮﮐﺘﻮري ﻫﺎ آن را ﺟﻠﻮﮔﯿﺮي ﻣﯽ ﮐﻨﺪ ﮐﻪ ﮐﺎرﺑﺮان از ﺣﺬف ﯾﺎ ﺣﺘﯽ ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﻮﺟﻮد در آن‪ ،‬ﻣﮕﺮ اﯾﻨﮑﻪ‬
‫ﮐﺎرﺑﺮ داراي ﭘﻮﺷﻪ‪ ،‬ﻓﺎﯾﻞ ﯾﺎ ‪ root‬ﺑﺎﺷﺪ‪.‬‬
‫]داﯾﺮﮐﺘﻮري[ ‪# chmod o + t‬‬

‫ﺑﺮاي ﺗﻨﻈﯿﻢ ﺑﯿﺖ ﭼﺴﺒﻨﺪه در ﻓﺮم ﻫﺸﺘﻞ‪ ،‬ﺷﻤﺎره ‪1‬را ﺑﻪ ﻣﺠﻮزﻫﺎي اﺳﺎﺳﯽ ﻓﻌﻠﯽ )ﯾﺎ ﻣﻮرد ﻧﻈﺮ( اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪.‬‬
‫]داﯾﺮﮐﺘﻮري[ ‪# chmod 1755‬‬

‫ﺑﺪون ﺑﯿﺖ ﭼﺴﺒﻨﺪه‪ ،‬ﻫﺮ ﮐﺴﯽ ﮐﻪ ﺑﺘﻮاﻧﺪ در داﯾﺮﮐﺘﻮري ﺑﻨﻮﯾﺴﺪ ﻣﯿﺘﻮاﻧﺪ ﻓﺎﯾﻠﻬﺎ را ﺣﺬف ﯾﺎ ﺗﻐﯿﯿﺮ دﻫﺪ‪.‬ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ‪،‬‬
‫ﺑﯿﺖ ﭼﺴﺒﻨﺪه ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل در داﯾﺮﮐﺘﻮرﯾﻬﺎ ﻣﺎﻧﻨﺪ ‪/ tmp‬ﯾﺎﻓﺖ ﻣﯽ ﺷﻮد ﮐﻪ ﻗﺎﺑﻞ ﻧﻮﺷﺘﻦ در ﺟﻬﺎن ﻫﺴﺘﻨﺪ‪.‬‬

‫‪ Stickybit‬را ﺑﻪ داﯾﺮﮐﺘﻮري اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬

‫‪44‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪45‬‬

‫وﯾﮋﮔﯽ ﻫﺎي ﺧﺎص ‪Linux‬‬


‫ﺻﻔﺎت دﯾﮕﺮي وﺟﻮد دارد ﮐﻪ ﻣﺤﺪودﯾﺖ ﻫﺎي ﺑﯿﺸﺘﺮي را در ﻋﻤﻠﯿﺎت ﻣﺠﺎز در ﻓﺎﯾﻞ ﻫﺎ ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪،‬‬
‫ﺟﻠﻮﮔﯿﺮي از ﺗﻐﯿﯿﺮ ﻧﺎم‪ ،‬اﻧﺘﻘﺎل‪ ،‬ﺣﺬف‪ ،‬ﯾﺎ ﺣﺘﯽ ﺗﻐﯿﯿﺮ ﭘﺮوﻧﺪه‪.‬‬
‫‪# chattr + i file1‬‬
‫‪# chattr + file2‬‬
‫ﭘﺲ از اﺟﺮاي اﯾﻦ دو دﺳﺘﻮر‪file1 ،‬ﻏﯿﺮ ﻗﺎﺑﻞ ﺗﻐﯿﯿﺮ ﺧﻮاﻫﺪ ﺑﻮد )ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﻧﻤﯽ ﺗﻮان آن را ﻧﻘﻞ ﻣﮑﺎن ﮐﺮد‪،‬‬
‫ﺗﻐﯿﯿﺮ ﻧﺎم‪ ،‬اﺻﻼح ﯾﺎ ﺣﺬف ﮐﺮد( در ﺣﺎﻟﯽ ﮐﻪ ‪file2‬ﺗﻨﻬﺎ ﺣﺎﻟﺖ ‪ add-only‬را وارد ﻣﯽ ﮐﻨﺪ )ﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﺪ در ﺣﺎﻟﺖ‬
‫آﭘﻠﻮد ﺑﺮاي ﻧﻮﺷﺘﻦ ﺑﺎز ﺷﻮد‪).‬‬

‫دﺳﺘﺮﺳﯽ ﺑﻪ ﺣﺴﺎب ‪ root‬و اﺳﺘﻔﺎده از‪sudo‬‬


‫ﯾﮑﯽ از راه ﻫﺎﯾﯽ ﮐﻪ ﮐﺎرﺑﺮان ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﻪ ﺣﺴﺎب ‪ root‬دﺳﺘﺮﺳﯽ داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪ ،‬ﺗﺎﯾﭗ ﮐﺮدن دﺳﺘﻮر زﯾﺮ اﺳﺖ‪.‬‬
‫‪$ su‬‬
‫و ﺳﭙﺲ ﺑﺎ رﻣﺰ ﻋﺒﻮر ‪ root‬وارد ﺷﻮﯾﺪ‪.‬‬
‫اﮔﺮ اﺣﺮاز ﻫﻮﯾﺖ ﻣﻮﻓﻖ ﺑﺎﺷﺪ‪ ،‬ﺑﻪ ﻋﻨﻮان ‪ root‬ﺑﺎ داﯾﺮﮐﺘﻮري ﮐﺎري ﻓﻌﻠﯽ ﺑﻪ ﻫﻤﺎن ﺷﯿﻮه ﮐﻪ ﻗﺒﻼ ﺑﻮد‪ ،‬وارد ‪system‬‬
‫ﺷﻮﯾﺪ‪.‬اﮔﺮ ﺑﺨﻮاﻫﯿﺪ ﺑﻪ ﺟﺎي آن در داﯾﺮﮐﺘﻮري ‪ root home‬ﻗﺮار دﻫﯿﺪ‪ ،‬اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪$ su -‬‬
‫و ﺳﭙﺲ رﻣﺰ ﻋﺒﻮر ‪ root‬را وارد ﮐﻨﯿﺪ‪ .‬دﺳﺘﺮﺳﯽ ‪ Sudo‬ﺑﻪ ﮐﺎرﺑﺮان را ﻓﻌﺎل ﮐﻨﯿﺪ‬

‫‪45‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪46‬‬

‫ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ‪ ، sudo‬ﻣﺪﯾﺮ ‪ system‬ﺑﺎﯾﺪ ﻓﺎﯾﻞ ‪/ etc / sudoers‬را وﯾﺮاﯾﺶ ﮐﻨﺪ‪.‬ﺗﻮﺻﯿﻪ ﻣﯽ ﺷﻮد ﮐﻪ اﯾﻦ ﻓﺎﯾﻞ‬
‫ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ visudo‬ﺑﻪ ﺟﺎي ﺑﺎز ﮐﺮدن آن ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺎ ﯾﮏ وﯾﺮاﯾﺸﮕﺮ ﻣﺘﻦ وﯾﺮاﯾﺶ ﺷﻮد‪.‬‬
‫‪# visudo‬‬

‫اﯾﻦ ﻓﺎﯾﻞ ﻓﺎﯾﻞ ‪/ etc / sudoers‬را ﺑﺎ اﺳﺘﻔﺎده از ‪vim‬ﺑﺎز ﻣﯽ ﮐﻨﺪ اﯾﻦ ﺧﻄﻮط ﻣﺮﺑﻮﻃﻪ در اداﻣﻪ ﻧﺸﺎن داده ﺷﺪه‬
‫ﻫﺴﺘﻨﺪ‪.‬‬
‫"‪secure_path = "/ usr / sbin: / usr / bin: / sbin‬‬
‫‪root ALL = (ALL) ALL‬‬
‫‪hosein ALL = / bin / yum update‬‬
‫‪gacanepa ALL = NOPASSWD: / bin / updatedb‬‬
‫‪٪admin ALL = (ALL) ALL‬‬
‫ﺑﯿﺎﯾﯿﺪ ﺑﻪ آﻧﻬﺎ ﻧﮕﺎه ﮐﻨﯿﻢ‪.‬‬
‫"‪secure_path = "/ usr / sbin: / usr / bin: / sbin: / usr / local / bin‬‬
‫اﯾﻦ ﺧﻂ ﺑﻪ ﺷﻤﺎ اﺟﺎزه ﻣﯽ دﻫﺪ داﯾﺮﮐﺘﻮري ﻫﺎﯾﯽ را ﮐﻪ ﺑﺮاي ‪sudo‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ ﻣﺸﺨﺺ ﮐﻨﯿﺪ و ﺑﺮاي‬
‫ﺟﻠﻮﮔﯿﺮي از اﺳﺘﻔﺎده از داﯾﺮﮐﺘﻮري ﻫﺎي ﺧﺎص ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ‪ system‬آﺳﯿﺐ ﺑﺮﺳﺎﻧﺪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫ﺧﻄﻮط ﺑﻌﺪي ﺑﺮاي ﺗﻌﯿﯿﻦ ﻣﺠﻮز اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪root ALL = (ALL) ALL‬‬
‫اوﻟﯿﻦ ﮐﻠﯿﺪ ‪ALL‬ﻧﺸﺎن دﻫﻨﺪه اﯾﻦ اﺳﺖ ﮐﻪ اﯾﻦ ﻗﺎﻧﻮن ﺑﺮاي ﻫﻤﻪ ﻣﯿﺰﺑﺎﻧﻬﺎ اﻋﻤﺎل ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.1‬‬
‫دوم ‪ALL‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ در ﺳﺘﻮن اول ﻣﯽ ﺗﻮاﻧﺪ دﺳﺘﻮرات را ﺑﺎ اﻣﺘﯿﺎزات ﻫﺮ ﮐﺎرﺑﺮ اﺟﺮا‬ ‫‪.2‬‬
‫ﮐﻨﺪ‪.‬‬
‫دوم ‪ALL‬ﺑﻪ ﻣﻌﻨﯽ ﻫﺮ دﺳﺘﻮر ﻣﯽ ﺗﻮاﻧﺪ اﺟﺮا ﺷﻮد‪.‬‬ ‫‪.3‬‬
‫‪hosein ALL = / bin / yum update‬‬

‫‪46‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪47‬‬

‫اﮔﺮ ﮐﺎرﺑﺮ ﭘﺲ از ﻋﻼﻣﺖ =ﻋﻼﻣﺖ ﻣﺸﺨﺺ ﻧﺸﺪه ﺑﺎﺷﺪ‪sudo ،‬ﻓﺮض ﮐﺎرﺑﺮ ‪ root‬را دارد‪.‬در اﯾﻦ ﺣﺎﻟﺖ‪ ،‬ﮐﺎرﺑﺮ‬
‫‪ hosein‬ﻗﺎدر ﺧﻮاﻫﺪ ﺑﻮد ﺑﻪ روز رﺳﺎﻧﯽ ‪ yum‬را ﺑﻪ ﻋﻨﻮان ‪ root‬اﺟﺮا ﮐﻨﺪ‪.‬‬
‫‪gacanepa ALL = NOPASSWD: / bin / updatedb‬‬
‫دﺳﺘﻮر ‪NOPASSWD‬ﺑﻪ ﮐﺎرﺑﺮ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﺑﺪون ﻧﯿﺎز ﺑﻪ وارد ﮐﺮدن ﮐﻠﻤﻪ ﻋﺒﻮر ﺧﻮد‪ ،‬دﺳﺘﻮر ‪/ bin /‬‬
‫‪updatedb‬را اﺟﺮا ﮐﻨﺪ‪.‬‬
‫‪٪admin ALL = (ALL) ALL‬‬
‫ﻧﺸﺎﻧﻪ ‪ ٪‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ اﯾﻦ ﺧﻂ ﺑﺮاي ﯾﮏ ﮔﺮوه ﺑﻪ ﻧﺎم " ‪ " admin‬اﻋﻤﺎل ﻣﯽ ﺷﻮد‪.‬ﻣﻌﻨﺎي ﺑﻘﯿﻪ ﺧﻂ ﻫﻤﺎن ﯾﮏ‬
‫ﮐﺎرﺑﺮ ﻣﻌﻤﻮﻟﯽ اﺳﺖ‪.‬اﯾﻦ ﺑﺪان ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ اﻋﻀﺎي ﮔﺮوه " ‪ " admin‬ﻣﯽ ﺗﻮاﻧﻨﺪ ﺗﻤﺎم دﺳﺘﻮرات را ﺑﻪ ﻋﻨﻮان ﻫﺮ‬
‫ﮐﺎرﺑﺮ در ﺗﻤﺎم ‪host‬اﺟﺮا ﮐﻨﻨﺪ‪ .‬ﺑﺮاي دﯾﺪن اﯾﻨﮑﻪ ﭼﻪ اﻣﺘﯿﺎز ﻫﺎﯾﯽ ﺗﻮﺳﻂ ‪ sudo‬ﺷﻤﺎ اراﺋﻪ ﻣﯽ ﺷﻮﻧﺪ‪ ،‬از ﮔﺰﯾﻨﻪ " ‪" -l‬‬
‫ﺑﺮاي ﻟﯿﺴﺖ ﮐﺮدن آﻧﻬﺎ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪47‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪48‬‬

‫ﻣﺎژول ﻫﺎي ﺗﺄﯾﯿﺪ ﻫﻮﯾﺖ ﭘﻼﮔﯿﻦ‬


‫ﻣﺎژول ﻫﺎي ﺗﺄﯾﯿﺪ ﻫﻮﯾﺖ اﻧﻄﺒﺎق ﭘﺬﯾﺮ )‪(PAM‬اﻧﻌﻄﺎف ﭘﺬﯾﺮي ﺗﻨﻈﯿﻢ ﯾﮏ ﻃﺮح ﺗﺄﯾﯿﺪ ﻫﻮﯾﺖ ﺧﺎص را ﺑﺮ اﺳﺎس ﯾﮏ‬
‫ﺑﺮﻧﺎﻣﻪ ﮐﺎرﺑﺮدي و ﯾﺎ ﻫﺮ ﺳﺮوﯾﺲ ﺑﺮ اﺳﺎس ﻣﺎژول ﻫﺎ اراﺋﻪ ﻣﯽ دﻫﻨﺪ‪.‬اﯾﻦ اﺑﺰار ﻣﻮﺟﻮد در ﺗﻤﺎم ﺗﻮزﯾﻊ ﻫﺎي ﻣﺪرن ‪linux‬‬
‫ﻣﺸﮑﻠﯽ را ﮐﻪ اﻏﻠﺐ ﺑﺎ ﺗﻮﺳﻌﻪ دﻫﻨﺪﮔﺎن در روزﻫﺎي اوﻟﯿﻪ ‪ linux‬ﻣﻮاﺟﻪ ﺷﺪه اﺳﺖ‪ ،‬ﺑﺮﻃﺮف ﻣﯽ ﮐﻨﺪ‪ ،‬در ﺣﺎﻟﯽ ﮐﻪ ﻫﺮ‬
‫ﺑﺮﻧﺎﻣﻪ اي ﮐﻪ اﺣﺘﯿﺎج ﺑﻪ اﺣﺮاز ﻫﻮﯾﺖ داﺷﺖ‪ ،‬ﺑﺎﯾﺪ ﺑﻪ ﻃﻮر ﺧﺎص ﺑﺮاي ﺑﺪﺳﺖ آوردن اﻃﻼﻋﺎت ﻻزم ﺑﺪﺳﺖ آورد‪.‬‬
‫ﺑﺮاي ﻣﺜﺎل‪ ،‬ﺑﺎ‪ ، PAM‬ﻣﻬﻢ ﻧﯿﺴﺖ ﮐﻪ آﯾﺎ ﮔﺬرواژه ﺷﻤﺎ در ‪/ etc / shadow‬ذﺧﯿﺮه ﻣﯽ ﺷﻮد ﯾﺎ در ﯾﮏ ﺳﺮور‬
‫ﺟﺪاﮔﺎﻧﻪ در داﺧﻞ ﺷﺒﮑﻪ ﺷﻤﺎ ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ورود ﺑﻪ ‪ system‬ﻧﯿﺎز ﺑﻪ ﺗﺄﯾﯿﺪ اﻋﺘﺒﺎر ﯾﮏ ﮐﺎرﺑﺮ‪،‬‬
‫‪PAM‬ﺑﻪ ﺻﻮرت ﭘﻮﯾﺎ ﮐﺘﺎب‪ home‬اي را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﺣﺎوي ﺗﻮاﺑﻊ ﺑﺮاي ﻃﺮح اﺣﺮاز ﻫﻮﯾﺖ درﺳﺖ‬
‫اﺳﺖ‪.‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﺗﻐﯿﯿﺮ ﺷﯿﻮه ﺗﺄﯾﯿﺪ اﻋﺘﺒﺎر ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ورود ) و ﯾﺎ ﻫﺮ ﺑﺮﻧﺎﻣﻪ دﯾﮕﺮ ﺑﺎ اﺳﺘﻔﺎده از )‪ PAM‬آﺳﺎن اﺳﺖ‪ ،‬زﯾﺮا‬
‫ﻓﻘﻂ ﺷﺎﻣﻞ وﯾﺮاﯾﺶ ﻓﺎﯾﻞ ﭘﯿﮑﺮﺑﻨﺪي )ﺑﻪ اﺣﺘﻤﺎل زﯾﺎد‪ ،‬ﯾﮏ ﻓﺎﯾﻞ ﻧﺎم ﭘﺲ از ﺑﺮﻧﺎﻣﻪ‪ ،‬در داﺧﻞ ‪/ /etc/pam.d /‬‬
‫‪/etc/pam.d‬و ﮐﻤﺘﺮ اﺣﺘﻤﺎﻻ در ‪/etc/pam.conf ).‬‬
‫ﻓﺎﯾﻞ داﺧﻞ ‪ /etc/pam.d‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﮐﺎرﺑﺮدي از ‪ PAM‬ﺑﻮﻣﯽ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ‪.‬‬

‫در ﺗﺼﻮﯾﺮ ﺑﺎﻻ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺒﯿﻨﯿﻢ ﮐﻪ ‪libpam‬ﺑﺎ ﺑﺮﻧﺎﻣﻪ ورود ﺑﻪ ‪ system‬ﻣﺮﺗﺒﻂ اﺳﺖ‪.‬اﯾﻦ ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ اﯾﻦ‬
‫ﺑﺮﻧﺎﻣﻪ در ﺗﺄﯾﯿﺪ ﺗﺄﯾﯿﺪ ﻫﻮﯾﺖ ﮐﺎرﺑﺮ ‪ system‬دﺧﯿﻞ اﺳﺖ‪ ،‬در ﺣﺎﻟﯿﮑﻪ ﺑﺎﻻ اﯾﻨﻄﻮر ﻧﯿﺴﺖ‪ .‬اﺟﺎزه دﻫﯿﺪ ﻓﺎﯾﻞ ﭘﯿﮑﺮﺑﻨﺪي‬
‫‪PAM‬ﺑﺮاي ‪passwd‬را ﺑﺮرﺳﯽ ﮐﻨﯿﻢ ﺑﻠﻪ‪ ،‬اﺑﺰار ﺷﻨﺎﺧﺘﻪ ﺷﺪه ﺑﺮاي ﺗﻐﯿﯿﺮ رﻣﺰﻫﺎي ﻋﺒﻮر ﮐﺎرﺑﺮ‪.‬اﯾﻦ در‬
‫‪/etc/pam.d/passwd‬ﻗﺮار دارد‪:‬‬
‫‪# cat / etc / passwd‬‬

‫ﭘﯿﮑﺮﺑﻨﺪي ﻓﺎﯾﻞ ‪ PAM‬ﺑﺮاي ‪ linux‬رﻣﺰ ﻋﺒﻮر‬

‫‪48‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪49‬‬

‫ﺳﺘﻮن اول ﻧﺸﺎن دﻫﻨﺪه ‪type‬اﻋﺘﺒﺎر ﺳﻨﺠﯽ اﺳﺖ ﮐﻪ ﺑﺎﯾﺪ ﺑﺎ ( ‪module-path‬ﺳﺘﻮن ﺳﻮم( ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار‬
‫ﮔﯿﺮد‪.‬وﻗﺘﯽ ﯾﮏ ﺧﻄﺎ ﻗﺒﻞ از ﻧﻮع ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪PAM ،‬ﺑﻪ ورود ﺑﻪ ‪ system‬وارد ﻧﻤﯽ ﺷﻮد اﮔﺮ ﻣﺎژول را ﻧﻤﯽ‬
‫ﺗﻮان ﺑﺎرﮔﺬاري ﮐﺮد‪ ،‬زﯾﺮا ﻧﻤﯽ ﺗﻮاﻧﺪ در ‪ system‬ﭘﯿﺪا ﺷﻮد‪.‬‬
‫اﻧﻮاع اﺣﺮاز ﻫﻮﯾﺖ زﯾﺮ در دﺳﺘﺮس ﻫﺴﺘﻨﺪ‪:‬‬
‫‪account :‬اﯾﻦ ﻧﻮع ﻣﺎژول ﺑﺮرﺳﯽ ﻣﯽ ﮐﻨﺪ ﮐﻪ آﯾﺎ ﮐﺎرﺑﺮ ﯾﺎ ﺳﺮوﯾﺲ اﻋﺘﺒﺎر ﻣﻌﺘﺒﺮ را ﺗﺄﯾﯿﺪ ﮐﺮده اﺳﺖ‪.‬‬ ‫‪.1‬‬
‫‪auth :‬اﯾﻦ ﻧﻮع ﻣﺎژول ﺗﺎﯾﯿﺪ ﻣﯽ ﮐﻨﺪ ﮐﺎرﺑﺮ ﭼﻪ ﮐﺴﯽ ادﻋﺎ ﻣﯽ ﮐﻨﺪ و ﻫﺮ ﮔﻮﻧﻪ اﻣﺘﯿﺎز ﻣﻮرد ﻧﯿﺎز را ﻣﯽ دﻫﺪ‪.‬‬ ‫‪.2‬‬
‫‪password :‬اﯾﻦ ﻧﻮع ﻣﺎژول اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﮐﺎرﺑﺮ ﯾﺎ ﺳﺮوﯾﺲ ﺑﻪ روز رﺳﺎﻧﯽ رﻣﺰ ﻋﺒﻮر ﺧﻮد را‪.‬‬ ‫‪.3‬‬
‫‪session :‬اﯾﻦ ﻧﻮع ﻣﺎژول ﻧﺸﺎن ﻣﯽ دﻫﺪ ﭼﻪ ﺑﺎﯾﺪ ﻗﺒﻞ و ‪ /‬ﯾﺎ ﭘﺲ از اﺣﺮاز ﻫﻮﯾﺖ ﻣﻮﻓﻖ ﺷﻮد‪.‬‬ ‫‪.4‬‬

‫‪control‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﭼﻪ اﺗﻔﺎﻗﯽ ﻣﯽ اﻓﺘﺪ اﮔﺮ اﺣﺮاز ﻫﻮﯾﺖ ﺑﺎ اﯾﻦ ﻣﺎژول ﻧﺘﻮاﻧﺪ اﻧﺠﺎم ﺷﻮد‪:‬‬ ‫ﺳﺘﻮن دوم )ﺑﻪ ﻧﺎم‬
‫‪requisite :‬اﮔﺮ اﺣﺮاز ﻫﻮﯾﺖ از ﻃﺮﯾﻖ اﯾﻦ ﻣﺎژول ﻧﺘﻮاﻧﺪ‪ ،‬اﺣﺮاز ﻫﻮﯾﺖ ﮐﻠﯽ ﺑﻼﻓﺎﺻﻠﻪ اﻧﮑﺎر ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬ ‫‪.1‬‬
‫‪required‬اﺳﺖ ﺷﺒﯿﻪ ﺑﻪ اﻟﺰاﻣﺎت اﺳﺖ‪ ،‬ﻫﺮﭼﻨﺪ ﺗﻤﺎم ﻣﺎژول ﻫﺎي ذﮐﺮ ﺷﺪه دﯾﮕﺮ ﺑﺮاي اﯾﻦ ﺳﺮوﯾﺲ ﻗﺒﻞ از‬ ‫‪.2‬‬
‫رد ﺗﺎﯾﯿﺪ ﻫﻮﯾﺖ ﻧﺎﻣﯿﺪه ﻣﯽ ﺷﻮد‪.‬‬
‫‪sufficient :‬اﮔﺮ اﺣﺮاز ﻫﻮﯾﺖ از ﻃﺮﯾﻖ اﯾﻦ ﻣﺎژول ﻧﺘﻮاﻧﺪ اﻧﺠﺎم ﺷﻮد‪PAM ،‬ﻫﻤﭽﻨﺎن اﺣﺮاز ﻫﻮﯾﺖ را ﺗﺄﯾﯿﺪ‬ ‫‪.3‬‬
‫ﻣﯽ ﮐﻨﺪ‪ ،‬ﺣﺘﯽ اﮔﺮ ﻗﺒﻼ ﺑﻪ ﻋﻨﻮان ﻣﻮرد ﻧﯿﺎز ﻧﺘﻮاﻧﺴﺘﻪ اﯾﺪ‪.‬‬
‫‪optional :‬اﮔﺮ اﺣﺮاز ﻫﻮﯾﺖ از ﻃﺮﯾﻖ اﯾﻦ ﻣﺎژول ﻧﺘﻮاﻧﺪ ﯾﺎ ﻣﻮﻓﻖ ﺷﻮد‪ ،‬ﻫﯿﭻ اﺗﻔﺎﻗﯽ ﻧﻤﯽ اﻓﺘﺪ‪ ،‬ﻣﮕﺮ اﯾﻨﮑﻪ اﯾﻦ‬ ‫‪.4‬‬
‫ﺗﻨﻬﺎ واﺣﺪ از ﻧﻮع آن ﺑﺮاي اﯾﻦ ﺳﺮوﯾﺲ ﺑﺎﺷﺪ‪.‬‬
‫‪include‬اﯾﻦ ﻣﯽ ﺷﻮد ﮐﻪ ﺧﻄﻮط ﻧﻮع داده ﺷﺪه ﺑﺎﯾﺪ از ﯾﮏ ﻓﺎﯾﻞ دﯾﮕﺮ ﺑﺨﻮاﻧﻨﺪ‪.‬‬ ‫‪.5‬‬
‫‪substack‬ﺷﺒﯿﻪ ﺑﻪ ﺷﺎﻣﻞ ﻣﯽ ﺑﺎﺷﺪ اﻣﺎ ﺷﮑﺴﺖ ﻫﺎي اﺣﺮاز ﻫﻮﯾﺖ ﯾﺎ ﻣﻮﻓﻘﯿﺖ ﻫﺎ ﺑﺎﻋﺚ ﺧﺮوج از ﻣﺎژول ﮐﺎﻣﻞ‬ ‫‪.6‬‬
‫ﻧﻤﯽ ﺷﻮد‪ ،‬ﺑﻠﮑﻪ ﻓﻘﻂ از زﯾﺮ ﺷﺎﺧﻪ اﺳﺖ‪.‬‬

‫ﺳﺘﻮن ﭼﻬﺎرم‪ ،‬اﮔﺮ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ‪ ،‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ اﺳﺘﺪﻻل ﻫﺎ ﺑﻪ ﻣﺎژول ﻣﻨﺘﻘﻞ ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫ﺳﻪ ﺧﻂ اول در ( ‪/etc/pam.d/passwd‬در ﺑﺎﻻ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ(‪ ،‬ﻣﺎژول ‪system-auth‬را ﺑﺎرﮔﺬاري ﻣﯽ‬
‫ﮐﻨﺪ ﺗﺎ ﺑﺮرﺳﯽ ﮐﻨﺪ ﮐﻪ ﮐﺎرﺑﺮ اﻋﺘﺒﺎر ﻣﻌﺘﺒﺮي را )ﺣﺴﺎب( اراﺋﻪ ﮐﺮده اﺳﺖ‪.‬اﮔﺮ ﭼﻨﯿﻦ اﺳﺖ‪ ،‬اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ او را ﺑﺎ‬
‫اﺟﺎزه دادن ﺑﻪ اﺳﺘﻔﺎده از ) ‪ passwd ( auth‬ﺗﻐﯿﯿﺮ رﻣﺰ ﻋﺒﻮر اﺣﺮاز ﻫﻮﯾﺖ )رﻣﺰ ﻋﺒﻮر‪).‬‬

‫‪49‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪50‬‬

‫ﻓﺮﻣﺎن‪cksum‬‬
‫دﺳﺘﻮر ‪cksum‬ﺑﺮاي ﻧﻤﺎﯾﺶ ﮐﻨﺘﺮﻟﯽ ‪ CRC‬و ﺷﻤﺎرش ﺑﺎﯾﺖ ﯾﮏ ﻓﺎﯾﻞ ورودي اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ cksum README.txt‬‬
‫ﻓﺮﻣﺎن ‪clear‬‬
‫ﻓﺮﻣﺎن ﭘﺎك ﺑﻪ ﺷﻤﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺗﺮﻣﯿﻨﺎل را ﭘﺎك ﮐﻨﯿﺪ‪ ،‬ﺑﻪ ﺳﺎدﮔﯽ ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪.‬‬
‫‪$ clear‬‬
‫‪cmp‬‬
‫‪cmp‬ﯾﮏ ﻣﻘﺎﯾﺴﻪ ﺑﺎﯾﺖ ﺗﻮﺳﻂ ﺑﺎﯾﺖ دو ﻓﺎﯾﻞ ﻣﺎﻧﻨﺪ اﯾﻦ اﻧﺠﺎم ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ cmp file1 file2‬‬
‫دﺳﺘﻮر ‪command‬‬
‫‪command‬ﺑﺮاي ﻣﻘﺎﯾﺴﻪ دو ﻓﺎﯾﻞ ﻣﺮﺗﺐ ﺷﺪه ﺑﻪ ﺻﻮرت ﺧﻄﯽ ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪$ commnd file1 file2‬‬
‫‪CP‬‬
‫دﺳﺘﻮر ‪cp‬ﺑﺮاي ﮐﭙﯽ ﻓﺎﯾﻞ ﻫﺎ و داﯾﺮﮐﺘﻮري ﻫﺎ از ﯾﮏ ﻣﮑﺎن ﺑﻪ ﻣﮑﺎن دﯾﮕﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ cp‬‬ ‫‪/ home/ hosein /file1‬‬ ‫‪/home/ hosein‬‬

‫در ﺣﺎﻟﯽ ﮐﻪ ﯾﺎدﮔﯿﺮي ‪ ،linux‬ﻫﻤﯿﺸﻪ ﺑﺮاي ﺗﺎزه ﮐﺎرﻫﺎ ﻋﺎدي اﺳﺖ ﮐﻪ دﺳﺘﻮرات ﻣﺘﻌﺪدي را ﺑﺮاي اﻧﺠﺎم ﯾﮏ ﮐﺎر‬
‫ﺳﺎده اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ‪.‬اﯾﻦ ﻗﺎﺑﻞ درك اﺳﺖ ﺑﻪ وﯾﮋه ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﺴﯽ ﻓﻘﻂ ﺑﻪ اﺳﺘﻔﺎده از ﺗﺮﻣﯿﻨﺎل ﻋﺎدت ﮐﺮده اﺳﺖ‪.‬‬
‫در ‪ linux‬دﺳﺘﻮر‪ cp‬ﺑﺮاي ﮐﭙﯽ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ از ﯾﮏ ﭘﻮﺷﻪ ﺑﻪ دﯾﮕﺮي اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬ﺳﺎده ﺗﺮﯾﻦ ﻧﺤﻮ اﺳﺘﻔﺎده از‬
‫آن ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪:‬‬
‫ﻣﻘﺼﺪ ﻣﻨﺒﻊ )ﻓﺎﯾﻞ ﯾﺎ ﻓﻬﺮﺳﺖ( ‪# cp‬‬

‫ﻫﻤﭽﻨﯿﻦ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از دﺳﺘﻮر ﭘﯿﺸﺮﻓﺘﻪ ﮐﭙﯽ اﺳﺘﻔﺎده ﮐﻨﯿﺪﮐﻪ ﻧﻮار ﭘﯿﺸﺮﻓﺖ را در ﻫﻨﮕﺎم ﮐﭙﯽ ﮐﺮدن ﭘﺮوﻧﺪه ﻫﺎ ‪/‬‬
‫ﭘﻮﺷﻪ ﻫﺎي ﺑﺰرگ در ‪ linux‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ‪ .‬ﺳﻌﯽ ﮐﻨﯿﺪ از ﻃﺮﯾﻖ ﺻﻔﺤﺎت ‪ man‬از دﺳﺘﻮرات ‪echo ،cp‬و‬
‫‪xargs‬ﺑﺮاي ‪ find‬اﻃﻼﻋﺎت ﻣﻔﯿﺪ و ﭘﯿﺸﺮﻓﺘﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪$ man cp‬‬
‫‪$ man echo‬‬
‫‪$ man xargs‬‬

‫‪50‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪51‬‬

‫ﻧﺤﻮه اﺳﺘﻔﺎده از ﻓﺮﻣﺎن‪Advacned-Copy‬‬


‫ﻓﺮﻣﺎن ﻫﻤﺎن اﺳﺖ‪ ،‬ﺗﻐﯿﯿﺮ ﺗﻨﻬﺎ اﺿﺎﻓﻪ ﮐﺮدن ﮔﺰﯾﻨﻪ " ‪ " -g‬ﯾﺎ " ‪ " -progress-bar‬ﺑﺎ دﺳﺘﻮر ‪cp‬اﺳﺖ‪.‬ﮔﺰﯾﻨﻪ ‪" -R‬‬
‫"ﺑﺮاي ﮐﭙﯽ ﻣﺴﺘﻘﯿﻢ داﯾﺮﮐﺘﻮري ﻫﺎ اﺳﺖ‪.‬در اﯾﻨﺠﺎ ﻧﻤﻮﻧﻪ اي از ﻋﮑﺲ ﻫﺎي ﯾﮏ ﻓﺮاﯾﻨﺪ ﮐﭙﯽ ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن ﮐﭙﯽ‬
‫ﭘﯿﺸﺮﻓﺘﻪ اﺳﺖ‪.‬‬
‫‪# cp -gR / hosein .com/ / data /‬‬

‫ﯾﺎ‬
‫‪# cp -R - / hosein /‬‬ ‫‪/ data /ali‬‬

‫‪51‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪52‬‬

‫در اﯾﻨﺠﺎ ﻧﻤﻮﻧﻪ اي از دﺳﺘﻮر ‪mv‬ﺑﺎ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ اﺳﺖ‪.‬‬

‫‪# mv‬‬ ‫‪--progress-bar mp3 /‬‬ ‫‪/ data /‬‬

‫ﯾﺎ‬
‫‪# mv –g‬‬ ‫‪/mp3‬‬ ‫‪/data /‬‬

‫‪52‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪53‬‬

‫ﻓﺮﻣﺎن ﺗﺎرﯾﺦ‬
‫ﺗﺎرﯾﺦ ‪ system‬ﻧﻤﺎﯾﺶ ‪ /‬ﺗﻨﻈﯿﻢ ﺗﺎرﯾﺦ ‪ system‬و زﻣﺎن ﻣﺎﻧﻨﺪ اﯾﻦ‪.‬‬
‫‪$ date‬‬
‫‪DD‬‬
‫دﺳﺘﻮر ‪DD‬ﺑﺮاي ﮐﭙﯽ ﻓﺎﯾﻞ ﻫﺎ‪ ،‬ﺗﺒﺪﯾﻞ و ﻗﺎﻟﺐ ﺑﻨﺪي ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﺮﭼﻢ ﻫﺎي اراﺋﻪ ﺷﺪه در ﺧﻂ ﻓﺮﻣﺎن اﺳﺘﻔﺎده‬
‫ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺳﺮﺻﻔﺤﻪ ﻫﺎ را اﺳﺘﺨﺮاج ﮐﻨﺪ‪ ،‬ﺑﺨﺶ ﻫﺎﯾﯽ از ﻓﺎﯾﻞ ﻫﺎي دودوﯾﯽ اﺳﺘﺨﺮاج ﮐﻨﺪ و ﻏﯿﺮه‪.‬‬
‫ﻣﺜﺎل زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ اﯾﺠﺎد ﯾﮏ دﺳﺘﮕﺎه ‪ USB‬ﺑﻮت ﻗﺎدر اﺳﺖ‪:‬‬
‫؛ ‪$ dd if = /home/hosein/kali-linux-1.0.4-i386.iso of =/dev/sdc1 bs = 512M‬‬

‫دﺳﺘﻮر‪DF‬‬
‫دﺳﺘﻮر‪ DF‬ﺑﺮاي ﻧﺸﺎن دادن ﻓﻀﺎي اﺳﺘﻔﺎده از ﻓﻀﺎي ‪ system‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ df -h‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ "‪ "DF‬ﻣﻔﯿﺪ ﺑﺮاي ﺑﺮرﺳﯽ ﻓﻀﺎي دﯾﺴﮏ در ‪linux‬‬
‫در اﯾﻨﺘﺮﻧﺖ ﺷﻤﺎ ﻣﻘﺪار زﯾﺎدي اﺑﺰار ﺑﺮاي ﺑﺮرﺳﯽ اﺳﺘﻔﺎده از ﻓﻀﺎي دﯾﺴﮏ در ‪ linux‬ﭘﯿﺪا ﺧﻮاﻫﯿﺪ ﮐﺮد‪.‬ﺑﺎ اﯾﻦ ﺣﺎل‪،‬‬
‫‪ linux‬ﯾﮏ اﺑﺰار ﻗﺪرﺗﻤﻨﺪ ﺳﺎﺧﺘﻪ ﺷﺪه را ﺑﻪ ﻧﺎم ' ‪ ' DF‬ﺳﺎﺧﺘﻪ اﺳﺖ‪.‬ﻓﺮﻣﺎن " ‪ " DF‬ﺑﺮاي‪ " system‬ﻓﺎﯾﻞ دﯾﺴﮏ "‬
‫اﯾﺴﺘﺎده اﺳﺖ‪ ،‬ﺑﺮاي ﺧﻼص ﺷﺪن ﮐﺎﻣﻞ از در دﺳﺘﺮس ﺑﻮدن و اﺳﺘﻔﺎده از ﻓﻀﺎي اﺳﺘﻔﺎده از دﯾﺴﮏ ‪ system‬در‬

‫‪53‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪54‬‬

‫‪ linux system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪.‬ﺑﺎ اﺳﺘﻔﺎده از ﭘﺎراﻣﺘﺮ » ‪ « -h‬ﺑﺎ ) ‪ ( df -h‬آﻣﺎر ﻓﻀﺎي دﯾﺴﮏ ﻓﺎﯾﻠﯽ را در ﻓﺮﻣﺖ‬
‫«اﻧﺴﺎن ﻗﺎﺑﻞ ﺧﻮاﻧﺪن »ﻧﺸﺎن ﻣﯽ دﻫﺪ‪ ،‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﺟﺰﺋﯿﺎت در ﺑﺎﯾﺖ‪ ،‬ﻣﮕﺎ ﺑﺎﯾﺖ و ﮔﯿﮕﺎﺑﺎﯾﺖ را ﻣﯽ دﻫﺪ‪.‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪DF‬‬
‫دﺳﺘﻮر " ‪ " df‬اﻃﻼﻋﺎت ﻧﺎم دﺳﺘﮕﺎه‪ ،‬ﺑﻠﻮك ﻫﺎي ﮐﻞ‪ ،‬ﻓﻀﺎي دﯾﺴﮏ ﮐﻞ‪ ،‬ﻓﻀﺎي دﯾﺴﮏ ﻣﻮرد اﺳﺘﻔﺎده‪ ،‬ﻓﻀﺎي دﯾﺴﮏ‬
‫در دﺳﺘﺮس و ﻧﻘﺎط ﺳﻮﭘﺎپ در ﯾﮏ ‪ system‬ﻓﺎﯾﻞ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # df‬‬

‫‪ system‬ﻫﺎي ﻓﺎﯾﻠﯽ ‪K 1‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 78361192 23185840 51130588 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 24797380 22273432 1243972 95 ٪/ home‬‬
‫‪/ dev / cciss / c0d0p3 29753588 25503792 2713984 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 295561 21531 258770 8 ٪/ boot‬‬
‫‪tmpfs 257476 0 257476 0 ٪/ dev / shm‬‬

‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺗﻤﺎم ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده از ﻓﻀﺎي دﯾﺴﮏ‬


‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﺑﺎﻻ ذﮐﺮ ﺷﺪ‪ ،‬اﻣﺎ ﻫﻤﭽﻨﯿﻦ اﻃﻼﻋﺎت ‪ system‬ﻫﺎي ﻓﺎﯾﻞ ﺳﺎﺧﺘﮕﯽ ﻫﻤﺮاه ﺑﺎ ﺗﻤﺎم اﺳﺘﻔﺎده از دﯾﺴﮏ‬
‫‪ system‬و اﺳﺘﻔﺎده از ‪ memory‬آن را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -a‬‬

‫‪ system‬ﻫﺎي ﻓﺎﯾﻠﯽ ‪K 1‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 78361192 23186116 51130312 32 ٪/‬‬
‫‪proc 0 0 0 - / proc‬‬
‫‪sysfs 0 0 0 - / sys‬‬
‫‪devpts 0 0 0 - / dev / pts‬‬
‫‪/ dev / cciss / c0d0p5 24797380 22273432 1243972 95 ٪/ home‬‬

‫ﻧﻤﺎﯾﺶ اﺳﺘﻔﺎده از ﻓﻀﺎي دﯾﺴﮏ در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ‬


‫ﻣﺘﻮﺟﻪ ﺷﺪه اﯾﺪ ﮐﻪ دﺳﺘﻮرات ﺑﺎﻻ اﻃﻼﻋﺎت را در ﺑﺎﯾﺖ ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪ ،‬ﮐﻪ ﻫﻨﻮز ﻗﺎﺑﻞ ﺧﻮاﻧﺪن ﻧﯿﺴﺖ‪ ،‬ﭼﺮا ﮐﻪ ﻣﺎ در‬
‫ﻋﺎدت ﺑﻪ ﺧﻮاﻧﺪن اﻧﺪازه ﻫﺎ در ﻣﮕﺎﺑﺎﯾﺖ‪ ،‬ﮔﯿﮕﺎﺑﺎﯾﺖ و ﻏﯿﺮه ﻫﺴﺘﯿﻢ زﯾﺮا ﺑﺴﯿﺎر آﺳﺎن اﺳﺖ ﮐﻪ ﺑﺘﻮاﻧﯿﻢ آن را درك ﮐﻨﯿﻢ و‬
‫ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﻢ ‪.‬دﺳﺘﻮر ‪DF‬ﮔﺰﯾﻨﻪ اي ﺑﺮاي ﻧﻤﺎﯾﺶ اﻧﺪازه در ﻓﺮﻣﺖ ﻫﺎي ﺧﻮاﻧﺪه ﺷﺪه اﻧﺴﺎن ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ﺑﺎ‬
‫اﺳﺘﻔﺎده از( '‪ '-h‬ﭼﺎپ ﻧﺘﺎﯾﺞ در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪K 2M 3G)).1 ،‬‬

‫‪[ root@ hosein ~] # df -h‬‬

‫‪54‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪55‬‬

‫ﺣﺠﻢ ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 75G 23G 49G 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 24G 22G 1.2G 95 ٪/ home‬‬
‫‪/ dev / cciss / c0d0p3 29G 25G 2.6G 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 289M 22M 253M 8 ٪/ boot‬‬
‫‪tmpfs 252M 0 252M 0 ٪/ dev / shm‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system /‬ﻓﺎﯾﻞ ‪home‬‬
‫ﺑﺮاي ﻣﺸﺎﻫﺪه اﻃﻼﻋﺎت ﺗﻨﻬﺎ ‪ system‬ﻓﺎﯾﻞ دﺳﺘﮕﺎه ‪ / home‬در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ‪ ،‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -hT / home‬‬

‫ﺣﺠﻢ ﻓﺎﯾﻞ ‪ system‬ﻧﻮع اﺳﺘﻔﺎده ﻣﻮرد اﺳﺘﻔﺎده‪٪‬اﺳﺘﻔﺎده ﺷﺪه درﻣﻮﻧﺘﺎژ‬


‫‪/dev/cciss/c0d0p5 ext3 24G 22G 1.2G 95 ٪home‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪Bytes‬‬
‫ﺑﺮاي ﻧﻤﺎﯾﺶ ﺗﻤﺎم اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ و اﺳﺘﻔﺎده در ﺑﻠﻮك ﻫﺎي ‪1024‬ﺑﺎﯾﺖ ‪ ،‬از ﮔﺰﯾﻨﻪ( ' ‪ ' -k‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪-‬‬
‫)‪block-size = 1K‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -k‬‬

‫‪ system‬ﻫﺎي ﻓﺎﯾﻠﯽ ‪K 1‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 78361192 23187212 51129216 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 24797380 22273432 1243972 95 ٪/ home‬‬
‫‪/ dev / cciss / c0d0p3 29753588 25503792 2713984 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 295561 21531 258770 8 ٪/ boot‬‬
‫‪tmpfs 257476 0 257476 0 ٪/ dev / shm‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪MB‬‬
‫ﺑﺮاي ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺗﻤﺎم اﺳﺘﻔﺎده از ‪ system‬ﻓﺎﯾﻞ در ( ‪MB‬ﻣﮕﺎ ﺑﺎﯾﺖ )از ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان " ‪ " -m‬اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -m‬‬

‫ﻓﺎﯾﻞ ﻫﺎي ‪M 1 system‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪٪‬ﻣﺘﺼﻞ ﺷﺪه اﺳﺖ‪.‬‬

‫‪/ dev / cciss / c0d0p2 76525 22644 49931 32 ٪/‬‬

‫‪55‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪56‬‬

‫‪/ dev / cciss / c0d0p5 24217 21752 1215 95 ٪/ home‬‬


‫‪/ dev / cciss / c0d0p3 29057 24907 2651 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 289 22 253 8 ٪/ boot‬‬
‫‪tmpfs 252 0 252 0 ٪/ dev / shm‬‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ در‪GB‬‬
‫ﺑﺮاي ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺗﻤﺎم آﻣﺎر ‪ system‬ﻓﺎﯾﻞ در ( ‪GB‬ﮔﯿﮕﺎﺑﺎﯾﺖ )از ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان ' ‪ ' df -h‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -h‬‬

‫ﺣﺠﻢ ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 75G 23G 49G 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 24G 22G 1.2G 95 ٪/ home‬‬
‫‪/ dev / cciss / c0d0p3 29G 25G 2.6G 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 289M 22M 253M 8 ٪/ boot‬‬
‫‪tmpfs 252M 0 252M 0 ٪/ dev / shm‬‬
‫ﻧﻤﺎﯾﺶ ‪ system‬ﻓﺎﯾﻞ‪Inodes‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﺳﻮﺋﯿﭻ " ‪ " -i‬اﻃﻼﻋﺎﺗﯽ از ﺗﻌﺪاد ‪ inode‬ﻫﺎ و درﺻﺪ آﻧﻬﺎ ﺑﺮاي ‪ system‬ﻓﺎﯾﻞ ﻧﻤﺎﯾﺶ داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -i‬‬
‫ﻧﻤﺎﯾﺶ ‪ system‬ﻓﺎﯾﻞ ﻧﻮع‬
‫اﮔﺮ ﺷﻤﺎ ﺗﻤﺎم ﺧﺮوﺟﯽ ﻫﺎي دﺳﺘﻮرات ﺑﺎﻻ را ﻣﺸﺎﻫﺪه ﻣﯽ ﮐﻨﯿﺪ‪ ،‬ﺧﻮاﻫﯿﺪ دﯾﺪ ﮐﻪ ﻫﯿﭻ ﻧﻮع ‪ system‬ﻓﺎﯾﻞ وﺟﻮد ﻧﺪارد‬
‫ﮐﻪ در ﻧﺘﺎﯾﺞ ذﮐﺮ ﺷﺪه ﺑﺎﺷﺪ‪.‬ﺑﺮاي ﺑﺮرﺳﯽ ﻧﻮع ﻓﺎﯾﻞ ‪ system‬ﺧﻮد از ﮔﺰﯾﻨﻪ ' ‪ ' T‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬اﯾﻦ ﻧﻮع ‪system‬‬
‫ﻓﺎﯾﻞ را ﻫﻤﺮاه ﺑﺎ ﺳﺎﯾﺮ اﻃﻼﻋﺎت ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -T‬‬

‫ﻧﻮع ‪ system‬ﻓﺎﯾﻞ ‪K-1 system‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده از‪٪‬ﻣﻮﻧﺘﺎژﺷﺪﻫﺎﺳﺖ‬


‫‪/ dev / cciss / c0d0p2 ext3 78361192 23188812 51127616 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 ext3 24797380 22273432 1243972 95 ٪home‬‬
‫‪/ dev / cciss / c0d0p3 ext3 29753588 25503792 2713984 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 ext3 295561 21531 258770 8 ٪/ boot‬‬

‫ﻧﻮع ﺧﺎص ‪ system‬ﻓﺎﯾﻞ را وارد ﮐﻨﯿﺪ‬


‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﻧﻮع ﺧﺎﺻﯽ از ‪ system‬ﻓﺎﯾﻞ را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ ،‬از ﮔﺰﯾﻨﻪ ' ‪ ' -t‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر‬
‫زﯾﺮ ﻓﻘﻂ ‪ system‬ﻓﺎﯾﻞ ‪ext3‬را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -t ext3‬‬

‫‪56‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪57‬‬

‫‪ system‬ﻫﺎي ﻓﺎﯾﻠﯽ ‪K 1‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪Mounted on٪‬‬


‫‪/ dev / cciss / c0d0p2 78361192 23190072 51126356 32 ٪/‬‬
‫‪/ dev / cciss / c0d0p5 24797380 22273432 1243972 95 ٪/ home‬‬
‫‪/ dev / cciss / c0d0p3 29753588 25503792 2713984 91 ٪/ data‬‬
‫‪/ dev / cciss / c0d0p1 295561 21531 258770 8 ٪/ boot‬‬

‫‪.‬اﻧﻮاع ‪ system‬ﻓﺎﯾﻞ ﺧﺎص را ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ‬


‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﻧﻮع ‪ system‬ﻓﺎﯾﻞ ﻧﻤﺎﯾﺶ داده ﺷﻮد ﮐﻪ ﺑﻪ ﻧﻮع ‪ext3‬ﺗﻌﻠﻖ ﻧﺪارد‪ ،‬از ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان " ‪ " -x‬اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﻓﻘﻂ ﺳﺎﯾﺮ اﻧﻮاع ‪ system‬ﻓﺎﯾﻞ را ﺑﻪ ﻏﯿﺮ از ‪ext3‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # df -x ext3‬‬

‫‪ system‬ﻫﺎي ﻓﺎﯾﻠﯽ ‪K 1‬ﺑﻠﻮك ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﺮس اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪Mounted on٪‬‬


‫‪tmpfs 257476 0 257476 0 ٪/ dev / shm‬‬
‫‪.‬ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻓﺮﻣﺎن‪DF.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﺳﻮﺋﯿﭻ ' ‪ ' -help‬ﯾﮏ ﻟﯿﺴﺖ از ﮔﺰﯾﻨﻪ ﻫﺎي ﻣﻮﺟﻮد ﮐﻪ ﺑﺎ دﺳﺘﻮر ‪DF‬ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ‬
‫ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪.‬‬
‫‪[ root@ hosein ~] # df‬‬ ‫‪--help‬‬

‫‪: DF [OPTION] ... [FILE] ...‬اﺳﺘﻔﺎده‬

‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ‪ system‬ﻓﺎﯾﻞ ﮐﻪ ﻫﺮ ﻓﺎﯾﻞ در آن ﻗﺮار دارد ﯾﺎ ﻫﻤﻪ ‪ system‬ﻫﺎي ﻓﺎﯾﻞ ﺑﻪ ﻃﻮر ﭘﯿﺶ‬
‫ﻓﺮض‪ .‬اﺳﺘﺪﻻل ﻫﺎي اﺟﺒﺎري ﺑﺮاي ﮔﺰﯾﻨﻪ ﻫﺎي ﻃﻮﻻﻧﯽ ﺑﺮاي ﮔﺰﯾﻨﻪ ﻫﺎي ﮐﻮﺗﺎه ﻧﯿﺰ ﺿﺮوري اﺳﺖ‪.‬‬
‫‪- ، -a‬ﻫﻤﻪ ﺷﺎﻣﻞ ‪ system‬ﻓﺎﯾﻞ ﻫﺎي ﺳﺎﺧﺘﮕﯽ اﺳﺖ‬
‫‪block-size = SIZE --‬ﺑﺎ اﺳﺘﻔﺎده از ﺑﻠﻮك ﻫﺎي ‪ SIZE‬ﺑﺎﯾﺖ‬ ‫‪، -B‬‬
‫‪- ، -h‬اﻧﺪازه ﭼﺎپ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن در اﻧﺴﺎن در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪K 234M 2G)1 ،‬‬
‫‪si --‬ﺑﻪ ﻫﻤﯿﻦ ﺗﺮﺗﯿﺐ‪ ،‬اﻣﺎ اﺳﺘﻔﺎده از ﻗﺪرت ‪ 1000‬ﻧﻪ ‪1024‬‬ ‫‪، -H‬‬
‫‪inodes --‬ﻟﯿﺴﺖ اﻃﻼﻋﺎت ‪ inode‬ﺑﻪ ﺟﺎي اﺳﺘﻔﺎده از ﺑﻠﻮك‬ ‫‪، -i‬‬
‫‪ -k‬ﻣﺎﻧﻨﺪ‪--block-size = 1K‬‬
‫‪- ، -l‬ﻣﺤﺪود ﮐﺮدن ﻣﺤﺪوده ﻣﺤﻠﯽ ﺑﻪ ‪ system‬ﻓﺎﯾﻞ ﻣﺤﻠﯽ‬
‫‪ -no-sync‬ﭘﯿﺶ از ﮔﺮﻓﺘﻦ اﻃﻼﻋﺎت اﺳﺘﻔﺎده )ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض)‬
‫‪portability --‬از ﻓﺮﻣﺖ ﺧﺮوﺟﯽ ‪ POSIX‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬ ‫‪، -P‬‬
‫‪ - sync‬ﻫﻤﮕﺎم ﺳﺎزي را ﻗﺒﻞ از درﯾﺎﻓﺖ اﻃﻼﻋﺎت اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‬
‫‪type = TYPE --‬ﻣﺤﺪود ﮐﺮدن ﻟﯿﺴﺖ ﺑﻪ ﻓﺎﯾﻞ ‪ system‬ﻫﺎي ﻧﻮع‪TYPE‬‬ ‫‪، -t‬‬

‫‪57‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪58‬‬

‫‪- ، -T‬ﻧﻮع ﻓﺎﯾﻞ ﭼﺎپ ﻧﻮع ﻓﺎﯾﻞ ﭼﺎپ ﺷﺪه‬


‫‪exclude-type = --‬ﻓﻬﺮﺳﺖ ﻣﺤﺪودﯾﺖ ‪ TYPE‬ﺑﻪ ‪ system‬ﻫﺎي ﻓﺎﯾﻞ ﻫﺎي ﻏﯿﺮ ﻧﻮع‪TYPE‬‬ ‫‪، -x‬‬
‫‪ -v‬ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻪ ﺷﺪه‬
‫ﻧﻤﺎﯾﺶ اﯾﻦ ﮐﻤﮏ و ﺧﺮوج‬ ‫‪--help‬‬
‫‪ -‬ﻧﺴﺨﻪ ﺧﺮوﺟﯽ اﻃﻼﻋﺎت ﻧﺴﺨﻪ و ﺧﺮوج‬
‫‪ SIZE‬ﻣﻤﮑﻦ اﺳﺖ )ﯾﺎ ﻣﻤﮑﻦ اﺳﺖ ﯾﮏ ﻋﺪد ﺻﺤﯿﺢ ﺑﻪ ﺻﻮرت اﺧﺘﯿﺎري ﺑﺎﺷﺪ( ﯾﮑﯽ از ﻣﻮارد زﯾﺮ ﺑﺎﺷﺪ‪:‬‬
‫‪ ، G ،T ،P ،E ،Z ،Y.‬و ﻏﯿﺮه ﺑﺮاي‪KB 1000 ،K 1024 ،MB 1000 * 1000 ،M 1024 * 1024‬‬

‫‪58‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪59‬‬

‫ﻣﻘﺎﯾﺴﻪ ﻓﺎﯾﻞ‬
‫ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل‪ ،‬ﺑﺮاي ﻣﻘﺎﯾﺴﻪ دو ﻓﺎﯾﻞ در ‪ ،linux‬از ‪diff‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‪ .‬ﯾﮏ اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن ﯾﻮﻧﯿﮑﺲ ﺳﺎده و‬
‫اﺻﻠﯽ اﺳﺖ ﮐﻪ ﺗﻔﺎوت ﺑﯿﻦ دو ﻓﺎﯾﻞ ﮐﺎﻣﭙﯿﻮﺗﺮي را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪ ،‬ﻓﺎﯾﻞ ﻫﺎ را ﺑﻪ ﺻﻮرت ﺧﻄﯽ ﻣﻘﺎﯾﺴﻪ ﻣﯽ ﮐﻨﺪ و از آن‬
‫آﺳﺎن اﺳﺖ ﮐﻪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬ﺑﺎ ﺑﺴﯿﺎري از ﺗﻮزﯾﻊ ﻫﺎي ‪ install linux‬ﻣﯽ ﺷﻮد‪.‬‬
‫ﺳﻮال اﯾﻦ اﺳﺖ ﮐﻪ ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﯿﻦ دو داﯾﺮﮐﺘﻮري در ‪ linux‬ﺗﻔﺎوت اﯾﺠﺎد ﮐﻨﯿﻢ؟در اﯾﻨﺠﺎ‪ ،‬ﻣﺎ ﻣﯽ ﺧﻮاﻫﯿﻢ‬
‫ﺑﺪاﻧﯿﻢ ﮐﻪ ﮐﺪام ﻓﺎﯾﻞ ﻫﺎ ‪ /‬زﯾﺮ ﺷﺎﺧﻪ ﻫﺎ در دو داﯾﺮﮐﺘﻮري ﻣﺸﺘﺮك ﻫﺴﺘﻨﺪ‪ ،‬ﮐﺴﺎﻧﯽ ﮐﻪ در ﯾﮏ داﯾﺮﮐﺘﻮري ﻣﻮﺟﻮد‬
‫ﻫﺴﺘﻨﺪ‪ ،‬اﻣﺎ ﻧﻪ در داﯾﺮﮐﺘﻮري‪.‬‬
‫دﺳﺘﻮر ‪diff‬‬
‫دﺳﺘﻮراﻟﻌﻤﻞ ﻣﺘﻌﺎرف ﺑﺮاي اﺟﺮاي ‪ diff‬ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪:‬‬
‫‪$ diff [OPTION] ... FILES‬‬
‫‪$ diff dir1 dir2‬‬
‫ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪ ،‬ﺧﺮوﺟﯽ آن ﺑﻪ ﺗﺮﺗﯿﺐ ﺣﺮوف اﻟﻔﺒﺎ ﺗﻮﺳﻂ ﻧﺎم ﻓﺎﯾﻞ ‪ /‬زﯾﺮ ﺷﺎﺧﻪ ﺑﻪ ﺗﺮﺗﯿﺐ در ﺗﺼﻮﯾﺮ زﯾﺮ ﻧﺸﺎن داده‬
‫ﺷﺪه اﺳﺖ‪.‬در اﯾﻦ ﻓﺮﻣﺎن‪ ،‬ﮐﻠﯿﺪ ‪-q‬ﮔﺰارش را ﻓﻘﻂ زﻣﺎﻧﯽ ﮐﻪ ﭘﺮوﻧﺪه ﻫﺎ ﻣﺘﻔﺎوت ﻫﺴﺘﻨﺪ ‪ ،‬ﮔﺰارش ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ diff -q directory-1 / directory-2 /‬‬

‫ﺗﻔﺎوت ﺑﯿﻦ دو داﯾﺮﮐﺘﻮري‬


‫دﺳﺘﻮر ‪ diff‬ﺑﻪ ‪ subdirectories‬ﻋﻤﻞ ﻧﻤﯿﮑﻨﺪ‪ ،‬اﻣﺎ ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﺳﻮﯾﭻ ‪-r‬ﺑﺮاي ﺧﻮاﻧﺪن ‪ subdirectories‬ﻫﺎ‬
‫ﻧﯿﺰ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬
‫‪$ diff -qr directory-1 / directory-2 /‬‬

‫اﺳﺘﻔﺎده از ‪ Meld Visual Diff‬و‪Merge Tool‬‬


‫ﯾﮏ اﺑﺰار ﮔﺮاﻓﯿﮑﯽ ‪ meld‬ﯾﮏ اﺑﺰار ﺑﺼﺮي و ادﻏﺎم ﺑﺮاي ﻫﺴﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ آن را ﺑﻪ ﺻﻮرت زﯾﺮ ‪install‬‬
‫ﮐﻨﯿﺪ‪.‬داﺧﻠﺶ ﮐﺮوﺷﻪ ﺗﻮﺿﯿﺢ ﻣﯿﺒﺎﺷﺪ و ﺟﺰ دﺳﺘﻮر ﻧﯿﺴﺖ‪.‬‬
‫]‪ ubuntu‬ﻫﺎي دﺑﯿﺎن ‪$ sudo apt install meld [system /‬‬
‫‪$ sudo yum install meld‬‬ ‫]‪ RHEL / CentOS‬ﻫﺎي‪[system‬‬
‫]‪+‬ﻓﺪورا ‪$ sudo dnf install meld [22‬‬

‫‪59‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪60‬‬

‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ راﺑﻂ ‪Meld‬زﯾﺮ را ﺑﺒﯿﻨﯿﺪ‪ ،‬ﺟﺎﯾﯽ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻣﻘﺎﯾﺴﻪ ﻓﺎﯾﻞ ﯾﺎ داﯾﺮﮐﺘﻮري و ﻫﻤﭽﻨﯿﻦ ﻧﻤﺎﯾﺶ‬
‫ﮐﻨﺘﺮل ﻧﺴﺨﻪ را اﻧﺘﺨﺎب ﮐﻨﯿﺪ‪.‬در ﻣﻘﺎﯾﺴﻪ ﺑﺎ داﯾﺮﮐﺘﻮري ﮐﻠﯿﮏ ﮐﻨﯿﺪ و ﺑﻪ راﺑﻂ ﺑﻌﺪي ﺑﺮوﯾﺪ‪.‬‬

‫اﺑﺰار ﻣﻘﺎﯾﺴﻪ ‪Meld‬‬


‫داﯾﺮﮐﺘﻮري ﻫﺎﯾﯽ را ﮐﻪ ﻣﯿﺨﻮاﻫﯿﺪ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ را اﻧﺘﺨﺎب ﮐﻨﯿﺪ‪.‬‬

‫‪60‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪61‬‬

‫داﯾﺮﮐﺘﻮري ﻣﻘﺎﯾﺴﻪ را اﻧﺘﺨﺎب ﮐﻨﯿﺪ‬


‫ﭘﺲ از اﻧﺘﺨﺎب داﯾﺮﮐﺘﻮري ﻫﺎ‪ ،‬ﺑﺮ روي " ﻣﻘﺎﯾﺴﻪ "ﮐﻠﯿﮏ ﮐﻨﯿﺪ‪.‬‬

‫‪61‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪62‬‬

‫اﺳﺘﻔﺎده از ﻓﺮﻣﺎن داﯾﺮﮐﺘﻮري در ‪linux‬‬


‫ﻧﺤﻮ ﮐﻠﯽ دﺳﺘﻮر ﻓﺮﻣﺎن ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪.‬‬
‫]‪# dir [OPTION] [FILE‬‬

‫‪ syntax‬ﻓﺮﻣﺎن ‪dir‬‬
‫ﺧﺮوﺟﯽ ﺳﺎده دﺳﺘﻮر ﻓﺮﻣﺎن‬
‫‪# dir /‬‬

‫دﺳﺘﻮر ﺧﺮوﺟﯽ‬
‫ﺧﺮوﺟﯽ دﺳﺘﻮر ‪dir‬ﺑﺎ ﻓﺎﯾﻞ داﯾﺮﮐﺘﻮري ‪/etc‬ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪.‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ از ﺧﺮوﺟﯽ ﻣﯽ ﺑﯿﻨﯿﺪ‪ ،‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي‬
‫ﻣﻮﺟﻮد در داﯾﺮﮐﺘﻮري ‪/ etc‬ﻟﯿﺴﺖ ﻧﺸﺪه اﻧﺪ‪.‬‬
‫‪# dir / etc‬‬

‫ﻟﯿﺴﺖ ‪ etc /‬داﯾﺮﮐﺘﻮري‬


‫ﺑﺮاي ﻟﯿﺴﺖ ﯾﮏ ﻓﺎﯾﻞ در ﻫﺮ ﺧﻂ از ﮔﺰﯾﻨﻪ ‪-1‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪# dir‬‬
‫‪# dir -1‬‬

‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ در ﻫﺮ ﺧﻂ‬

‫‪62‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪63‬‬

‫ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ﭘﻮﺷﻪ از ﺟﻤﻠﻪ ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﻔﯽ‬


‫ﺑﺮاي ﻓﻬﺮﺳﺖ ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ داﯾﺮﮐﺘﻮري از ﺟﻤﻠﻪ ‪ (.(cache‬ﻓﺎﯾﻞ ﻫﺎ‪ ،‬از ﮔﺰﯾﻨﻪ ‪-a‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ‬
‫ﮔﺰﯾﻨﻪ ‪-l‬را ﺑﺮاي ﻓﺮﻣﺖ ﺧﺮوﺟﯽ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﻟﯿﺴﺖ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪.‬‬
‫‪# dir -a‬‬
‫‪# dir -al‬‬

‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﻔﯽ‬

‫ﻓﻬﺮﺳﺖ ﺻﻔﺤﺎت ‪ cache‬ﻓﺎﯾﻞ‬


‫ﻧﻤﺎﯾﺸﻬﺎي داﯾﺮﮐﺘﻮري ﺑﻪ ﺟﺎي ﻣﺤﺘﻮا‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺷﻤﺎ ﻓﻘﻂ ﺑﺎﯾﺪ ﺑﻪ ﺟﺎي ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮري داﯾﺮﮐﺘﻮري را وارد ﮐﻨﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ از ﮔﺰﯾﻨﻪ ‪-d‬اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬در ﺧﺮوﺟﯽ زﯾﺮ ﮔﺰﯾﻨﻪ ‪-d‬ﻟﯿﺴﺖ ورودي ﻫﺎ را ﺑﺮاي داﯾﺮﮐﺘﻮري ‪/ etc‬ﻗﺮار ﻣﯽ دﻫﺪ‪.‬‬
‫‪# dir -d / etc‬‬
‫‪# dir -dl / etc‬‬

‫‪ /‬داﯾﺮﮐﺘﻮري‬

‫‪63‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪64‬‬

‫ﻧﻤﺎﯾﺶ ﺷﻤﺎره ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ‬


‫در ﺻﻮرﺗﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺷﻤﺎره ﺷﺎﺧﺺ ﻫﺮ ﻓﺎﯾﻞ را ﺑﺒﯿﻨﯿﺪ‪ ،‬از ﮔﺰﯾﻨﻪ ‪-i‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬از ﺧﺮوﺟﯽ زﯾﺮ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ‬
‫ﺑﺒﯿﻨﯿﺪ ﮐﻪ ﺳﺘﻮن اول ﺷﻤﺎره ﻫﺎ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬اﯾﻦ اﻋﺪاد ﺑﻪ ﻧﺎم ‪inodes‬ﮔﻔﺘﻪ ﻣﯽ ﺷﻮﻧﺪ ﮐﻪ ﺑﻌﻀﯽ اوﻗﺎت ﺑﻪ ﻋﻨﻮان‬
‫ﮔﺮه ﻫﺎي ﺷﺎﺧﺺ ﯾﺎ ﻋﺪد ﺷﺎﺧﺺ اﺷﺎره ﻣﯽ ﺷﻮد‪.‬‬
‫‪Inode‬در ‪ system‬ﻫﺎي ‪ linux‬ذﺧﯿﺮه ﺳﺎزي داده ﻫﺎ در ﯾﮏ ‪ system‬ﻓﺎﯾﻞ اﺳﺖ ﮐﻪ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﯾﮏ ﻓﺎﯾﻞ‬
‫را ذﺧﯿﺮه ﻣﯽ ﮐﻨﺪ ﺑﻪ ﺟﺰ ﻧﺎم ﻓﺎﯾﻞ و داده ﻫﺎي واﻗﻌﯽ آن‪.‬‬
‫‪# dir -il‬‬

‫ﻓﻬﺮﺳﺖ ﺗﻌﺪاد ﻓﺎﯾﻠﻬﺎ ﻓﻬﺮﺳﺖ‬


‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ و اﻧﺪازه ﻫﺎي اﺧﺘﺼﺎص داده ﺷﺪه آﻧﻬﺎ را در ﺑﻠﻮك ﻫﺎ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ اﻧﺪازه ﻓﺎﯾﻞ ﻫﺎ را ﺑﺎ‬
‫اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-s‬ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬اﮔﺮ ﺷﻤﺎ ﻧﯿﺎز ﺑﻪ ﻣﺮﺗﺐ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ ﺑﺮ اﺳﺎس اﻧﺪازه‪ ،‬ﭘﺲ از اﺳﺘﻔﺎده‬
‫از ﮔﺰﯾﻨﻪ ‪2 -S‬‬
‫در اﯾﻦ ﻣﻮرد ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﺑﺎﯾﺪ از ﮔﺰﯾﻨﻪ ‪-h‬ﺑﺮاي ﻣﺸﺎﻫﺪه اﻧﺪازه ﻓﺎﯾﻞ ﻫﺎ در ﻗﺎﻟﺐ ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪# dir -shl‬‬

‫‪64‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪65‬‬

‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﻧﺪازه ﻫﺎ‬


‫در ﺧﺮوﺟﯽ ﺑﺎﻻ‪ ،‬ﺳﺘﻮن اول ﺣﺠﻢ ﻓﺎﯾﻞ ﻫﺎ را در ﮐﯿﻠﻮﺑﺎﯾﺖ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬ﺧﺮوﺟﯽ زﯾﺮ ﯾﮏ ﻟﯿﺴﺖ ﻣﺮﺗﺐ ﺷﺪه از ﻓﺎﯾﻞ‬
‫ﻫﺎ را ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ اﻧﺪازه آﻧﻬﺎ ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-S‬ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪# dir -ashlS / home / ali‬‬

‫ﻣﺮﺗﺐ ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﻧﺪازه ﻫﺎ‬


‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻣﺮﺗﺐ ﺳﺎزي ﺑﺮ اﺳﺎس زﻣﺎن اﺻﻼح‪ ،‬ﺑﺎ ﻓﺎﯾﻞ ﮐﻪ ﺑﻪ ﺗﺎزﮔﯽ اﺻﻼح ﺷﺪه ﻇﺎﻫﺮ ﻣﯽ ﺷﻮد در اﺑﺘﺪا‬
‫در ﻟﯿﺴﺖ‪.‬اﯾﻦ را ﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-t‬اﻧﺠﺎم داد‪.‬‬
‫‪# dir -shlt / home / ali‬‬

‫‪65‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪66‬‬

‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﻣﺎﻟﮏ ﯾﺎ ﻣﺎﻟﮏ ﮔﺮوه‬


‫ﺑﺮاي ﻟﯿﺴﺖ ﮐﺮدن ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﺻﺎﺣﺒﺎن آﻧﻬﺎ‪ ،‬ﺷﻤﺎ ﺑﺎﯾﺪ از ﮔﺰﯾﻨﻪ ‪-g‬ﮐﻪ ﻣﺎﻧﻨﺪ ﮔﺰﯾﻨﻪ ‪-l‬ﮐﺎر ﻣﯽ ﮐﻨﺪ ﻓﻘﻂ از آن اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ ﮐﻪ ﺻﺎﺣﺐ ﻓﺎﯾﻞ را ﭼﺎپ ﻧﮑﻨﺪ‪.‬و ﺑﺮاي ﻟﯿﺴﺖ ﮐﺮدن ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﻣﺎﻟﮏ ﮔﺮوه از ﮔﺰﯾﻨﻪ ‪-G‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪.‬‬
‫‪# dir -ahgG / home / ali‬‬

‫ﻟﯿﺴﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﻣﺎﻟﮏ‬


‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﺧﺮوﺟﯽ ﺑﺎﻻ ﻣﺸﺨﺺ ﮐﻨﯿﺪ ﻧﺎم ﻣﺎﻟﮏ ﻓﺎﯾﻞ و ﻣﺎﻟﮏ ﮔﺮوه ﭼﺎپ ﻧﻤﯽ ﺷﻮد‪ .‬ﻫﻤﭽﻨﯿﻦ‬
‫ﻣﯽ ﺗﻮاﻧﯿﺪ ﻧﻮﯾﺴﻨﺪه ﻓﺎﯾﻞ را ﺑﺎ اﺳﺘﻔﺎده از ﭘﺮﭼﻢ ‪-author‬ﺑﻪ ﺷﺮح زﯾﺮ ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬‬
‫‪# dir -al‬‬ ‫‪--author / home / ali‬‬

‫ﻣﺸﺎﻫﺪه ﻧﻮﯾﺴﻨﺪه ﻓﺎﯾﻠﻬﺎ‬


‫داﯾﺮﮐﺘﻮري ﻫﺎ را ﻗﺒﻞ از ﻓﺎﯾﻞ ﻫﺎي دﯾﮕﺮ ﻓﻬﺮﺳﺖ ﮐﻨﯿﺪ‬
‫ﺷﻤﺎ ﻣﻤﮑﻦ اﺳﺖ ﺑﺨﻮاﻫﯿﺪ ﻗﺒﻞ از ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي دﯾﮕﺮ داﯾﺮﮐﺘﻮري را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ و اﯾﻦ ﮐﺎر را ﺑﺎ اﺳﺘﻔﺎده از ﭘﺮﭼﻢ‬
‫‪group-directories-first‬ﺑﻪ ﺻﻮرت زﯾﺮ اﻧﺠﺎم دﻫﯿﺪ‪.‬‬
‫‪# dir -l‬‬ ‫‪--group-directories-first‬‬

‫‪66‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪67‬‬

‫ﻓﻬﺮﺳﺖ ﮔﺮوه ﻫﺎي داﯾﺮﮐﺘﻮري ﻓﺎﯾﻞ‬


‫ﻣﯽ ﺗﻮاﻧﯿﺪ زﯾﺮ داﯾﺮﮐﺘﻮري ﻫﺎ را ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘﯽ ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪ ،‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺗﻤﺎم زﯾﺮ ﺷﺎﺧﻪ‬
‫ﻫﺎي دﯾﮕﺮ در ﯾﮏ داﯾﺮﮐﺘﻮري را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-R‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻓﻬﺮﺳﺖ ﮐﻨﯿﺪ‪.‬‬
‫‪# dir -R‬‬

‫ﻟﯿﺴﺖ داﯾﺮﮐﺘﻮرﯾﻬﺎ را ﺑﻪ ﺻﻮرت ﻣﺠﺰا در ﺧﺮوﺟﯽ ﺑﺎﻻ‪ ،‬ﻋﻼﻣﺖ )‪(.‬ﯾﻌﻨﯽ داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ و داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ‬
‫‪Ali‬داراي ﺳﻪ زﯾﺮ ﻓﻬﺮﺳﺖ اﺳﺖ ﮐﻪ ‪dir ،Backup‬و ‪Docs‬اﺳﺖ‪.‬‬
‫زﯾﺮﮔﺮوه‪Backup‬داراي دو زﯾﺮﺷﺎﺧﻪ دﯾﮕﺮ اﺳﺖ ﮐﻪ ‪mariadb‬و ‪mysql‬ﻫﺴﺘﻨﺪ ﮐﻪ ﻫﯿﭻ زﯾﺮدرﯾﺎﯾﯽ ﻧﺪارﻧﺪ‪.‬‬
‫زﯾﺮ ﭘﻮﺷﻪ‪ dir‬ﯾﮏ ﭘﻮﺷﻪ زﯾﺮ ﻧﺪارد‪.‬و ‪ Subdirectory Docs‬داراي دو زﯾﺮ ﺷﺎﺧﻪ اﺳﺖ ﯾﻌﻨﯽ ‪Books and‬‬
‫‪Tuts‬ﮐﻪ ﺷﺎﺧﻪ ﻫﺎي زﯾﺮ را ﻧﺪارﻧﺪ‪.‬‬
‫ﺑﻪ ﺟﺎي اﺳﻤﻬﺎ‪ ،‬ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮي و ﮔﺮوه را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ ﺑﺮاي ﻣﺸﺎﻫﺪه ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮي و ﮔﺮوه‪ ،‬ﺷﻤﺎ ﺑﺎﯾﺪ از ﮔﺰﯾﻨﻪ ‪-‬‬
‫‪n‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﮕﺬارﯾﺪ ﺗﻔﺎوت ﺑﯿﻦ دو ﺧﺮوﺟﯽ ﺑﻌﺪي را ﻣﺸﺎﻫﺪه ﮐﻨﯿﻢ‪.‬‬
‫ﺧﺮوﺟﯽ ﺑﺪون ﮔﺰﯾﻨﻪ ‪-n .‬‬
‫‪# dir -l‬‬ ‫‪--author‬‬

‫‪67‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪68‬‬

‫ﻓﻬﺮﺳﺖ ﻓﺎﯾﻠﻬﺎ ﺑﺪون ﺷﻨﺎﺳﻪ‬


‫ﺧﺮوﺟﯽ ﺑﺎ ﮔﺰﯾﻨﻪ ‪-n .‬‬
‫‪# dir -nl‬‬ ‫‪--author‬‬

‫ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ ﺷﻨﺎﺳﻪ‬


‫ﻣﺸﺎﻫﺪه ﻧﻮﺷﺘﻪ ﻫﺎي ﺟﺪا ﺷﺪه ﺗﻮﺳﻂ ﮐﺎﻣﺎ اﯾﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-m‬ﺑﺎﯾﮕﺎﻧﯽ ﺷﻮد‪.‬‬
‫‪# dir -am‬‬

‫‪68‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪69‬‬

‫‪Dmidecode‬‬
‫ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮان از دﺳﺘﻮر ‪Dmidecode‬ﺑﺮاي ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ﻫﺮ ‪ linux system‬اﺳﺘﻔﺎده‬
‫ﮐﺮد‪.‬ﻓﺮض ﮐﻨﯿﺪ ﻣﺎ ﻣﯽ ﺧﻮاﻫﯿﻢ اﻃﻼﻋﺎت ﯾﮏ ‪ system‬را ﮐﻪ ﻧﯿﺎز دارﯾﻢ ﺟﻤﻊ آوري ﮐﻨﯿﻢ‪.‬ﻣﺎﻧﻨﺪ ‪ ، memory‬ﺑﺎﯾﻮس‬
‫و ﭘﺮدازﻧﺪه و ﻏﯿﺮه ‪ .‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ ،Dmidecode‬ﻣﺎ ﻣﯽ ﺧﻮاﻫﯿﻢ ﺟﺰﺋﯿﺎت را ﺑﺪون ﺑﺎز ﮐﺮدن ‪system‬‬
‫ﺗﺸﺨﯿﺺ دﻫﯿﻢ‪.‬دﺳﺘﻮر ‪Dmidecode‬ﺑﺮاي ‪RHEL / CentOS / Fedora / Ubuntu Linux‬ﮐﺎر ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪.1‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري در ‪linux‬‬


‫ﺑﻪ اﺑﺰار ‪DmidecodeDMI‬ﺑﺮﺧﯽ ﻣﯽ ﮔﻮﯾﺪ ) ‪(SMBIOS‬‬
‫ﺟﺪول ﺑﺮاي ﺟﻤﻊ آوري داده ﻫﺎ و ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻣﻔﯿﺪ ‪ system‬ﻣﺎﻧﻨﺪ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ‪ ،‬ﺷﻤﺎره ﺳﺮﯾﺎل و‬
‫ﻧﺴﺨﻪ ‪ ،BIOS‬ﭘﺮدازﻧﺪه و ﻏﯿﺮه در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن اﺳﺖ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از دﺳﺘﻮر ‪ root‬ﺑﺮاي اﺟﺮاي‬
‫ﻓﺮﻣﺎن ‪ dmidecode‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫در زﯾﺮ ﻧﻤﻮﻧﻪ ﺧﺮوﺟﯽ دﺳﺘﻮر دﺳﺘﻮر ‪ Demidecode‬اﺳﺖ‪.‬‬
‫‪# dmidecode 2.11‬‬
‫ﺧﺮوﺟﯽ‬
‫اﺻﻼح ﻧﺴﺨﻪ‪SMBIOS (2.31 -> 2.3).‬‬
‫‪ SMBIOS 2.3‬ﻣﻮﺟﻮد اﺳﺖ‬
‫‪ 45‬ﺳﺎزه اﺷﻐﺎل ‪ 1642‬ﺑﺎﯾﺖ‪.‬‬
‫ﺟﺪول در ‪x000E0010.0‬‬
‫دﺳﺘﻪ ‪ ،x00000‬ﻧﻮع‪20 ، DMI 0‬ﺑﺎﯾﺖ‬
‫اﻃﻼﻋﺎت‪BIOS‬‬
‫ﻓﺮوﺷﻨﺪه‪ :‬ﻓﻮﻧﯿﮑﺲ ﻓﻦ آوري ﻫﺎي ﻣﺤﺪود‬
‫ﻧﺴﺨﻪ‪6.00 :‬‬
‫ﺗﺎرﯾﺦ اﻧﺘﺸﺎر‪2006/06/12 :‬‬

‫‪69‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪70‬‬

‫آدرس‪xE78A00 :‬‬
‫ﺣﺠﻢ اﺟﺮا‪ 100192 :‬ﺑﺎﯾﺖ‬
‫‪ ROM‬ﺣﺠﻢ‪ 64 :‬ﮐﯿﻠﻮﺑﺎﯾﺖ‬
‫ﻣﺸﺨﺼﺎت‪:‬‬
‫‪ ISA‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫‪ PCI‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫)‪ PC Card (PCMCIA‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫‪ PNP‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫‪ APM‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﺑﺎﯾﻮس ﻗﺎﺑﻞ ارﺗﻘﺎ اﺳﺖ‬
‫ﺳﺎﯾﻪ ‪ BIOS‬ﻣﺠﺎز اﺳﺖ‬
‫ﭘﺸﺘﯿﺒﺎﻧﯽ ‪ ESCD‬در دﺳﺘﺮس اﺳﺖ‬
‫ﻣﯿﺮاث ‪ USB‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﺑﺎﺗﺮي ﻫﻮﺷﻤﻨﺪ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﻣﺸﺨﺼﺎت ﺑﻮت ‪ BIOS‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬

‫‪. 2‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻧﻮاع‪DMI‬‬


‫‪DMI Id‬ﺑﻪ ﻣﺎ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ﺧﺎص ‪ system‬اراﺋﻪ ﻣﯽ دﻫﺪ ‪.Dmidecode‬ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎي ' ‪ ' -t‬ﯾﺎ‪' -‬‬
‫' ‪type‬و ' ‪ ' Id‬ﺑﻪ ﻣﺎ اﻃﻼﻋﺎت دﻗﯿﻖ اراﺋﻪ ﻣﯽ دﻫﺪ‪.Id 6‬اﻃﻼﻋﺎت ﻣﺎژول ‪ memory‬را ﺑﻪ ﻣﺎ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # dmidecode -t 6‬‬
‫‪# dmidecode 2.11‬‬

‫اﺻﻼح ﻧﺴﺨﻪ‪SMBIOS (2.31 -> 2.3).‬‬


‫‪ SMBIOS 2.3‬ﻣﻮﺟﻮد اﺳﺖ‬
‫دﺳﺘﻪ ‪ ،x00090‬ﻧﻮع‪12 ، DMI 6‬ﺑﺎﯾﺖ‬
‫اﻃﻼﻋﺎت ﻣﺎژول ‪memory‬‬
‫ﺗﻌﯿﯿﻦ ﺳﻮﮐﺖ‪ :‬ﺳﻮﮐﺖ ‪ RAM‬ﺷﻤﺎره ‪0‬‬
‫اﺗﺼﺎﻻت ﺑﺎﻧﮑﯽ‪1 0 :‬‬
‫ﺳﺮﻋﺖ ﻓﻌﻠﯽ‪ :‬ﻧﺎﺷﻨﺎﺧﺘﻪ اﺳﺖ‬
‫ﻧﻮع‪: EDO DIMM‬‬

‫‪70‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪71‬‬

‫اﻧﺪازه ‪ install‬ﺷﺪه‪ 1024 :‬ﻣﮕﺎﺑﺎﯾﺖ )اﺗﺼﺎل ﺗﮏ ﺑﺎﻧﮑﯽ)‬

‫در زﯾﺮ ﺟﺰﺋﯿﺎت ﻧﻮع ‪DMI‬وﺟﻮد دارد‪.‬‬


‫ﺑﺮاي ﻣﺜﺎل‪ ،‬ﺑﺮاي ﺑﻪ دﺳﺖ آوردن اﻃﻼﻋﺎت ﮐﺶ در ‪ ،system‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ دﺳﺘﻮر زﯾﺮ را ﺑﻪ ﺟﺎي ‪ Id 7‬اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # dmidecode -t cache‬‬
‫‪# dmidecode 2.11‬‬

‫‪. 3‬ﻧﺤﻮه درﯾﺎﻓﺖ اﻃﻼﻋﺎت ‪memory‬‬


‫ﭼﮕﻮﻧﻪ اﻃﻼﻋﺎت ‪ memory‬در ‪ system‬را درﯾﺎﻓﺖ ﻣﯽ ﮐﻨﻢ و ﭼﻘﺪر ‪ memory‬از ‪ system‬ﭘﺸﺘﯿﺒﺎﻧﯽ‬
‫ﻣﯽ ﮐﻨﺪ؟دﺳﺘﻮر زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ‪ system‬ﻣﯽ ﺗﻮاﻧﺪ ﺣﺪاﮐﺜﺮ ‪4‬ﮔﯿﮕﺎﺑﺎﯾﺖ ‪RAM‬را ﭘﺸﺘﯿﺒﺎﻧﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # dmidecode -t 16‬‬
‫‪# dmidecode 2.11‬‬

‫ﺗﻮﺟﻪ‪:‬از ﻟﯿﺴﺖ ﮐﻠﯿﺪ واژه ﻫﺎ‪ ،‬ﺷﻨﺎﺳﻪ ﻫﺎي ﻣﺮﺑﻮط ﺑﻪ ‪16 ،6 ،memory5‬و ‪17‬ﻣﯽ ﺑﺎﺷﺪ‪.‬‬
‫‪ 4‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ اﻃﻼﻋﺎت ‪ BIOS‬درﯾﺎﻓﺖ ﮐﻨﻢ؟‬
‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت ‪ ،BIOSsystem‬دﺳﺘﻮر زﯾﺮ را ﺑﺎ ﮔﺰﯾﻨﻪ '‪'-t‬اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # dmidecode -t BIOS‬‬
‫‪# dmidecode 2.11‬‬

‫‪ PNP‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫‪ APM‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﺑﺎﯾﻮس ﻗﺎﺑﻞ ارﺗﻘﺎ اﺳﺖ‬
‫ﺳﺎﯾﻪ ‪ BIOS‬ﻣﺠﺎز اﺳﺖ‬
‫ﭘﺸﺘﯿﺒﺎﻧﯽ ‪ ESCD‬در دﺳﺘﺮس اﺳﺖ‬
‫ﻣﯿﺮاث ‪ USB‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﺑﺎﺗﺮي ﻫﻮﺷﻤﻨﺪ ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫ﻣﺸﺨﺼﺎت ﺑﻮت ‪ BIOS‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﺷﻮد‬
‫‪5.‬ﭼﮕﻮﻧﻪ ﺗﻮﻟﯿﺪ ﮐﻨﻨﺪه‪ ،‬ﻣﺪل و ﺷﻤﺎره ﺳﺮﯾﺎل را درﯾﺎﻓﺖ ﮐﻨﻢ؟‬

‫‪71‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪72‬‬

‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﺎﻟﻌﺎت ﻣﺮﺑﻮط ﺑﻪ ﺳﺎزﻧﺪه ‪ ،‬ﻣﺪل و ﺷﻤﺎره ﺳﺮﯾﺎل ‪ ،system‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪ ،‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ‬
‫در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # dmidecode -t system‬‬

‫ﺟﻤﻊ آوري اﻃﻼﻋﺎت ‪ system‬و ﺳﺨﺖ اﻓﺰار در ‪linux‬‬


‫ﻫﻤﯿﺸﻪ ﯾﮏ ﺗﺠﺮﺑﻪ ﺧﻮب ﺑﺮاي داﻧﺴﺘﻦ اﺟﺰاي ﺳﺨﺖ اﻓﺰاري ‪ linux system‬ﺷﻤ ﺎ در ﺣﺎل اﺟﺮا اﺳﺖ‪ ،‬اﯾﻦ ﺑﻪ ﺷﻤﺎ‬
‫ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ ﺑﺎ ﻣﺸﮑﻼت ﺳﺎزﮔﺎري در ﻫﻨﮕﺎم ‪ install‬ﺑﺴﺘﻪ ﻫﺎ‪ ،‬دراﯾﻮرﻫﺎي ‪ system‬ﺧﻮد‪ ،‬ﻣﻘﺎﺑﻠﻪ ﮐﻨﯿﺪ‪ .‬ﺑﻨﺎﺑﺮاﯾﻦ‬
‫در اﯾﻦ ﻧﮑﺎت و ﺗﺮﻓﻨﺪﻫﺎ‪ ،‬ﻣﺎ ﺑﺎﯾﺪ ﺑﻪ ﺑﺮﺧﯽ از دﺳﺘﻮرات ﻣﻔﯿﺪ ﻧﮕﺎه ﮐﻨﯿﻢ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﺷﻤﺎ در اﺳﺘﺨﺮاج اﻃﻼﻋﺎت در‬
‫ﻣﻮرد ‪ system‬ﻋﺎﻣﻞ ‪ linux‬و اﺟﺰاي ﺳﺨﺖ اﻓﺰاري ﮐﻤﮏ ﮐﻨﺪ‪.‬‬
‫‪ 1‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪linux system‬‬
‫ﺑﺮاي ﺷﻨﺎﺧﺘﻦ ﻧﺎم ‪ system‬ﻓﻘﻂ ﻣﯽ ﺗﻮاﻧﯿﺪ از دﺳﺘﻮر ‪uname‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﺑﺪون اﯾﻨﮑﻪ ﺳﻮﺋﯿﭻ اﻃﻼﻋﺎت ‪system‬‬
‫را ﭼﺎپ ﮐﻨﺪ ﯾﺎ دﺳﺘﻮر ‪uname -s‬ﻧﺎم‪ kernel system‬ﺷﻤﺎ را ﭼﺎپ ﮐﻨﺪ‪.‬‬
‫‪hosein @ hosein ~ $ uname‬‬
‫‪ linux‬ﺑﺮاي ﻣﺸﺎﻫﺪه ﻧﺎم ‪host‬ﺷﺒﮑﻪ ﺧﻮد‪ ،‬از ﮐﻠﯿﺪ "‪"-n‬ﺑﺎ دﺳﺘﻮر ‪ uname‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪ ،‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻧﺸﺎن داده‬
‫ﺷﺪه اﺳﺖ‪.‬‬
‫‪hosein @ hosein ~ $ uname -n‬‬
‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﻫﺴﺘﻪ ﻧﺴﺨﻪ‪ ،‬از ﮐﻠﯿﺪ '‪'-v‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ uname -v‬‬

‫‪# 64-ubuntu SMP Mon Sep 22 21:28:38 UTC 2014‬‬


‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت در ﻣﻮرد اﻧﺘﺸﺎر ﻫﺴﺘﻪ ﺧﻮد‪ ،‬از ﮐﻠﯿﺪ '‪'-r‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ uname -r‬‬

‫‪3.13.0-37 public‬‬
‫ﺑﺮاي ﭼﺎپ ﻧﺎم ﺳﺨﺖ اﻓﺰار دﺳﺘﮕﺎه ﺧﻮد‪ ،‬از ﮐﻠﯿﺪ "‪"-m‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪hosein @ hosein ~ $ uname-m‬‬
‫‪x86_64‬‬
‫ﺗﻤﺎم اﯾﻦ اﻃﻼﻋﺎت را ﻣﯽ ﺗﻮان در ﯾﮏ ﺑﺎر ﺑﺎ اﺟﺮاي دﺳﺘﻮر ‪uname -a‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﺸﺎن داد‪.‬‬
‫‪hosein @ hosein ~ $ uname -a‬‬
‫‪linux hosein .com 3.13.0-37- public -64 # ubuntu SMP monday 22 november21:28:38‬‬
‫‪UTC 2014 x86_64 x86_64 x86_64 gnu / linux‬‬

‫‪72‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪73‬‬

‫‪ 2‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ‪linux system‬‬


‫در اﯾﻨﺠﺎ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از اﺑﺰار‪ lshw‬ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت وﺳﯿﻊ در ﻣﻮرد اﺟﺰاي ﺳﺨﺖ اﻓﺰاري ﺧﻮد ﻣﺎﻧﻨﺪ‬
‫ﭘﺮدازﻧﺪه ‪ ،‬دﯾﺴﮏ ‪ ، memory ،‬ﮐﻨﺘﺮل ﮐﻨﻨﺪه ﻫﺎي‪ USB‬و ﻏﯿﺮه اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪lshw‬ﯾﮏ اﺑﺰار ﻧﺴﺒﺘﺎ ﮐﻮﭼﮏ اﺳﺖ و ﭼﻨﺪﯾﻦ ﮔﺰﯾﻨﻪ وﺟﻮد دارد ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺎ آن در ﻫﻨﮕﺎم اﺳﺘﺨﺮاج اﻃﻼﻋﺎت‬
‫اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬اﻃﻼﻋﺎت اراﺋﻪ ﺷﺪه ﺗﻮﺳﻂ ‪lshw‬ﺟﻤﻊ آوري ﺷﺪه از ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﺘﻠﻒ ‪/ proc‬ﺗﺸﮑﯿﻞ ﺷﺪه اﺳﺖ‪.‬‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ‪:‬ﻓﺮاﻣﻮش ﻧﮑﻨﯿﺪ ﮐﻪ دﺳﺘﻮر ‪lshw‬ﺗﻮﺳﻂ ) ‪ superuser ( root‬ﯾﺎ ‪sudo‬ﮐﺎرﺑﺮ اﺟﺮا ﻣﯽ ﺷﻮد‪.‬‬
‫ﻣﯽ ﺗﻮاﻧﯿﺪ ﺧﻼﺻﻪ اي از اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰار ﺧﻮد را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-short‬ﭼﺎپ ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~sudo lshw -short‬‬

‫ﺗﻮﺿﯿﺤﺎت ﮐﻼس دﺳﺘﮕﺎه‪H / W‬‬


‫=== ==================================================‬
‫)‪system20354 (LENOVO_MT_20354_BU_idea_FM_Lenovo Z50-70‬‬
‫‪/ 0 bus Lancer 5A5‬‬
‫‪/ 0/0 memory128 KiB BIOS‬‬
‫‪ (TM) i5-4210U CPU @ 1.70GHz‬ﻫﺴﺘﻪ )‪ (R‬ﭘﺮدازﻧﺪه اﯾﻨﺘﻞ ‪/ 0/4‬‬
‫‪/ 0/4 / b memory32 KiB L1 memory cache‬‬
‫‪/ 0/4 / c memory256 KiB L2 memory‬‬
‫‪/ 0/4 / d memory3 MiB L3 memory cache‬‬
‫‪/ 0 / memory memory32 KiB L1‬‬
‫‪/ 0/12 memory8 GiB memory system‬‬
‫]‪/ 0/12/0 memory DIMM [empty‬‬
‫]‪/ 0/12/1 memory DIMM [empty‬‬
‫)‪ ns‬ﻫﻤﺰﻣﺎن ‪ 1600‬ﻣﮕﺎﻫﺮﺗﺰ )‪/ 0/12/2 memory8 GiB SODIMM DDR3 0.6‬‬
‫]‪/ 0/12/3 memory DIMM [empty‬‬
‫‪ Haswell-ULT DRAM‬ﮐﻨﺘﺮل ﭘﻠﯿﺮ ‪/ 0/100‬‬
‫‪ Haswell-ULT‬ﻣﺠﺘﻤﻊ‪VGA‬ﻧﻤﺎﯾﺸﮕﺮ ‪/ 0/100/2‬‬
‫ﺻﻮﺗﯽ ‪ Haswell-ULT HD‬ﭼﻨﺪ رﺳﺎﻧﻪ اي ﮐﻨﺘﺮل ‪/ 0/100/3‬‬

‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺧﺮوﺟﯽ را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﻓﺎﯾﻞ ‪ HTML‬اﯾﺠﺎد ﮐﻨﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ از ﮔﺰﯾﻨﻪ ‪hhtml‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ sudo lshw -html> lshw.html‬‬

‫‪73‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪74‬‬

‫‪.3‬ﻧﺤﻮه ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت‪CPU linux‬‬


‫ﺑﺮاي ﻣﺸﺎﻫﺪه اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ‪ CPU‬ﺧﻮد‪ ،‬از دﺳﺘﻮر ‪ lscpu‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﭼﻮن اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ‪architect‬‬
‫‪CPU‬ﺷﻤﺎ ﻣﺎﻧﻨﺪ ﺗﻌﺪاد ‪ CPU‬ﻫﺎ‪ ،‬ﻫﺴﺘﻪ ﻫﺎ‪ ،‬ﻣﺪل ‪ memory ،CPU family‬ﻫﺎي‪ ، CPU‬ﻣﻮﺿﻮﻋﺎت و ﻏﯿﺮه را از‬
‫‪sysfs‬و ‪/ proc / cpuinfo‬ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪hosein @ hosein ~ $ lscpu‬‬

‫‪architect: x86_64‬‬
‫‪bit 64 ،protocolCPU: 32 bit‬‬
‫‪Order Byte: Little Endian‬‬
‫ﭘﺮدازﻧﺪه )ﻫﺎ(‪4 :‬‬
‫ﻟﯿﺴﺖ ﭘﺮوﺗﮑﻞ ﻫﺎي‪CPU: 0-3‬‬

‫‪.4‬ﻧﺤﻮه ﺟﻤﻊ آوري اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺑﻠﻮك ﻫﺎي ‪linux‬‬


‫دﺳﺘﮕﺎه ﻫﺎي ﺑﻠﻮﮐﯽ دﺳﺘﮕﺎه ﻫﺎي ذﺧﯿﺮه ﺳﺎزي ﻣﺎﻧﻨﺪ ﻫﺎرد دﯾﺴﮏ‪ ،‬دراﯾﻮﻫﺎي ﻓﻠﺶ و ﻏﯿﺮه اﺳﺖ ‪.‬دﺳﺘﻮر‪ lsblk‬ﺑﺮاي‬
‫ﮔﺰارش اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ دﺳﺘﮕﺎه ﻫﺎي ﺑﻠﻮك ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪hosein @ hosein ~ $ lsblk‬‬

‫‪74‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 75

NAME MAJ: MIN MIN SIZE type RO MOUNTPOINT


sda 8: 0 0 931.5G 0
├─sda1 8: 1 0 1000M 0
├─sda2 8: 2 0 260M 0 part / boot / efi
├─sda3 8: 3 0 1000M 0
├─sda4 8: 4 0 128M 0
├─sda5 8: 5 0 557.1G 0
├─sda6 8: 6 0 25G 0
├─sda7 8: 7 0 14.7G 0
├─sda8 8: 8 0 1M 0
├─sda9 8: 9 0 324.5G 0 /
└─sda10 8:10 0 7.9G 0 [SWAP]
sr0 0 1 1024M 0 rom
.‫را وارد ﮐﻨﯿﺪ‬-a ‫ ﮔﺰﯾﻨﻪ‬، ‫ ﺧﻮد ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‬system ‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺗﻤﺎم دﺳﺘﮕﺎه ﻫﺎي ﺑﻠﻮك را در‬
hosein @ hosein ~ $ lsblk -a

NAME MAJ: MIN MIN SIZE ‫ ﻧﻮع‬RO MOUNTPOINT


sda 8: 0 0 931.5G 0
├─sda1 8: 1 0 1000M 0
├─sda2 8: 2 0 260M 0 part / boot / efi
├─sda3 8: 3 0 1000M 0
├─sda4 8: 4 0 128M 0
├─sda5 8: 5 0 557.1G 0
├─sda6 8: 6 0 25G 0
├─sda7 8: 7 0 14.7G 0
├─sda8 8: 8 0 1M 0
├─sda9 8: 9 0 324.5G 0 /
‫ اﻃﻼﻋﺎت‬USB Controllers ‫ ﻧﺤﻮه ﭼﺎپ‬5
‫ و ﺗﻤﺎم دﺳﺘﮕﺎه ﻫﺎﯾﯽ ﮐﻪ ﺑﻪ آﻧﻬﺎ ﻣﺘﺼﻞ‬USB ‫ﺑﺮاي ﮔﺰارش اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﮐﻨﺘﺮل ﮐﻨﻨﺪه ﻫﺎي‬lsusb ‫دﺳﺘﻮر‬
.‫اﺳﺖ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‬
hosein @ hosein ~ $ lsusb

bus 001 device002 : ID 8087: 8000 ‫ اﯾﻨﺘﻞ‬Corp.


bus 001 device001 : ID 1d6b: 0002 linux2.0 ‫ ﺑﻨﯿﺎد‬hub root
bus 003 device001 : ID 1d6b: 0003 linux3.0 ‫ ﺑﻨﯿﺎد‬hub root
Bus 002 device005 : ID 0bda: b728 Realtek Semiconductor Corp.

75
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪76‬‬

‫اﯾﺴﺮ‪ ،‬وارز ‪bus 002 device004 : ID 5986: 0249‬‬


‫‪bus 002 device002 : ID 045e: 00cb Microsoft Corp. Basic Optical Mouse v2.0‬‬
‫‪ 2.0 root‬ﭘﺎﯾﻪ ‪bus 002 device001 : ID 1d6b: 0002 linux‬‬

‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﮔﺰﯾﻨﻪ ‪-v‬ﺑﺮاي ﺗﻮﻟﯿﺪ اﻃﻼﻋﺎت دﻗﯿﻖ در ﻣﻮرد ﻫﺮ دﺳﺘﮕﺎه ‪ USB‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ lsusb -v‬‬
‫‪. 6‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت دﺳﺘﮕﺎه ﻫﺎي‪PCI‬‬
‫دﺳﺘﮕﺎه ﻫﺎي ‪ PCI‬ﻣﻤﮑﻦ اﺳﺖ ﺷﺎﻣﻞ ﭘﻮرت ﻫﺎي‪ ، USB‬ﮐﺎرت ﮔﺮاﻓﯿﮏ‪ ،‬آداﭘﺘﻮرﻫﺎي ﺷﺒﮑﻪ و ﻏﯿﺮه ﺑﺎﺷﺪ ‪.‬اﺑﺰار‬
‫‪lspci‬ﺑﺮاي ﺗﻮﻟﯿﺪ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺎﻣﯽ ﮐﻨﺘﺮل ﮐﻨﻨﺪه ﻫﺎي ‪ PCI‬در ‪ system‬ﺷﻤﺎ و ﻫﻤﭽﻨﯿﻦ دﺳﺘﮕﺎه ﻫﺎﯾﯽ ﮐﻪ‬
‫ﺑﻪ آﻧﻬﺎ ﻣﺘﺼﻞ اﺳﺖ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫ﺑﺮاي ﭼﺎپ اﻃﻼﻋﺎت در ﻣﻮرد دﺳﺘﮕﺎه ﻫﺎي ‪ PCI‬دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪hosein @ hosein ~ $ lspci‬‬
‫از ﮔﺰﯾﻨﻪ ‪-t‬ﺑﺮاي ﺗﻮﻟﯿﺪ ﺧﺮوﺟﯽ در ﻓﺮﻣﺖ درﺧﺖ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪hosein @ hosein ~ $ lspci -t‬‬

‫‪- [0000: 00] - + - 00.0‬‬


‫‪+0.0.0‬‬
‫‪+0.0.0‬‬
‫‪+ -14.0‬‬
‫‪+ -16.0‬‬

‫از ﮔﺰﯾﻨﻪ ‪-v‬ﺑﺮاي ﺗﻮﻟﯿﺪ اﻃﻼﻋﺎت دﻗﯿﻖ در ﻣﻮرد ﻫﺮ دﺳﺘﮕﺎه ﻣﺘﺼﻞ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ lspci -v‬‬

‫)‪ Intel (rev 0b‬ﺷﺮﮐﺖ ‪ Haswell-ULT‬ﻫﺎي ‪ DRAM‬ﭘﻞ ﻣﯿﺰﺑﺎن‪ :‬ﮐﻨﺘﺮل ﮐﻨﻨﺪه ‪00: 00.0‬‬
‫‪ : Lenovo 3978‬دﺳﺘﮕﺎه‪system‬زﯾﺮ‬
‫‪: bus master ،devsel fast ،latency 0‬ﭘﺮﭼﻢ ﻫﺎ‬
‫‪:‬ﻗﺎﺑﻠﯿﺖ ﻫﺎ‬

‫‪. 7‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت ‪ SCSI‬دﺳﺘﮕﺎه‬


‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﺗﻤﺎم دﺳﺘﮕﺎه ﻫﺎي ‪ scsi / sata‬ﺧﻮد‪ ،‬از دﺳﺘﻮر ‪lsscsi‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬اﮔﺮ اﺑﺰار ‪lsscsi‬را‬
‫‪ install‬ﻧﮑﻨﯿﺪ ‪ ،‬دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ ﺗﺎ آن را ‪ install‬ﮐﻨﯿﺪ‪ .‬ﮐﺮوﺷﻪ ﺟﺰ دﺳﺘﻮر ﻧﯿﺴﺖ‪.‬‬
‫‪$ sudo apt-get install lsscsi‬‬ ‫]در ﻣﺸﺘﻘﺎت دﺑﯿﺎن[‬

‫‪76‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪77‬‬

‫‪# yum install lsscsi‬‬ ‫] ﺑﺮ روي ﺳﯿﺴﺘﻢ ﻫﺎي ﻣﺒﺘﻨﯽ ﺑﺮردﻫﺖ[‬


‫‪# dnf install lsscsi‬‬ ‫]در ﻓﺪورا ‪ + 21‬ﺑﻌﺪ[‬

‫ﭘﺲ از ‪ ،install‬دﺳﺘﻮر ‪lsscsi‬را اﺟﺮا ﮐﻨﯿﺪ‪:‬‬


‫‪hosein @ hosein ~ $ lsscsi‬‬

‫‪[0: 0: 0: 0] disk ATA ST1000LM024 HN-M 2BA3 / dev / sda‬‬


‫‪[1: 0: 0: 0] cd /dvd PLDS DVD-RW DA8A5SH RL61 / dev / sr0‬‬
‫‪[4: 0: 0: 0] disk Generic- xD / SD / MS 1.00 / dev / sdb‬‬

‫از ﮔﺰﯾﻨﻪ ‪-s‬ﺑﺮاي ﻧﺸﺎن دادن اﻧﺪازه دﺳﺘﮕﺎه اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬


‫‪hosein @ hosein ~ $ lsscsi -s‬‬

‫‪ ATA ST1000LM024 HN-M 2BA3 / dev / sda 1.00TB‬دﯾﺴﮏ ]‪[0: 0: 0: 0‬‬


‫‪ PLDS DVD-RW DA8A5SH RL61 / dev / sr0 -‬ﺳﯽ دي ‪ /‬دي وي دي ]‪[1: 0: 0: 0‬‬
‫‪ Generic- xD / SD / MS 1.00 / dev / sdb -‬دﯾﺴﮏ ]‪[4: 0: 0: 0‬‬

‫‪. 8‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت در ﻣﻮرد دﺳﺘﮕﺎه ﻫﺎي‪SATA‬‬


‫ﺑﺎ اﺳﺘﻔﺎده از اﺑﺰار ‪hdparm‬ﻣﯽ ﺗﻮاﻧﯿﺪ اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد دﺳﺘﮕﺎه ﻫﺎي ﺳﺎﺗﺎ در ‪ system‬ﺧﻮد ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬در ﻣﺜﺎل‬
‫زﯾﺮ‪ ،‬از دﺳﺘﮕﺎه ﺑﻠﻮك ‪/ dev / sda1‬ﮐﻪ ﻫﺎرد دﯾﺴﮏ در ‪ system‬ﻣﻦ اﺳﺖ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻢ‪.‬‬
‫‪hosein @ hosein ~ $ sudo hdparm / dev / sda1‬‬

‫ﻫﻨﺪﺳﻪ‬
‫ﺑﺮاي ﭼﺎپ اﻃﻼﻋﺎت در ﻣﻮرد ﻫﻨﺪﺳﻪ دﺳﺘﮕﺎه ‪ interms‬از ﺳﯿﻠﻨﺪر‪ ،‬ﺳﺮ‪ ،‬ﺑﺨﺶ‪ ،‬اﻧﺪازه و ‪ offset‬ﺷﺮوع دﺳﺘﮕﺎه‪ ،‬از‬
‫ﮔﺰﯾﻨﻪ ‪-g‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ sudo hdparm -g / dev / sda1‬‬

‫‪. 9‬ﻧﺤﻮه ﭼﺎپ اﻃﻼﻋﺎت ‪ system‬ﻓﺎﯾﻞ ‪linux‬‬


‫ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت در ﻣﻮرد ﭘﺎرﺗﯿﺸﻦ ﻫﺎي ‪ system‬ﻓﺎﯾﻞ‪ ،‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از دﺳﺘﻮر ‪fdisk‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬اﮔﺮ‬
‫ﭼﻪ ﻋﻤﻠﮑﺮد اﺻﻠﯽ ﻓﺮﻣﺎن ‪fdisk‬ﺗﻐﯿﯿﺮ ﭘﺎرﺗﯿﺸﻦ ﻫﺎي ‪ system‬ﻓﺎﯾﻞ اﺳﺖ‪ ،‬ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺮاي ﻣﺸﺎﻫﺪه‬
‫اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﭘﺎرﺗﯿﺸﻦ ﻫﺎي ﻣﺨﺘﻠﻒ در ‪ system‬ﻓﺎﯾﻞ ﺧﻮد اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪77‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪78‬‬

‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ اﻃﻼﻋﺎت ﭘﺎرﺗﯿﺸﻦ را ﺑﻪ ﺻﻮرت زﯾﺮ ﭼﺎپ ﮐﻨﯿﺪ‪.‬ﻓﺮاﻣﻮش ﻧﮑﻨﯿﺪ ﮐﻪ اﯾﻦ ﻓﺮﻣﺎن را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮐﺎرﺑﺮ‬
‫ﻓﻮق ﮐﺎرﺑﺮ اﺟﺮا ﮐﻨﯿﺪ ﯾﺎ ﺷﺎﯾﺪ ﺷﻤﺎ ﻫﯿﭻ ﺧﺮوﺟﯽ را ﻣﺸﺎﻫﺪه ﻧﮑﻨﯿﺪ‪.‬‬
‫‪hosein @ hosein ~ $ sudo fdisk -l‬‬
‫دﺳﺘﻮر ‪du‬‬
‫دﺳﺘﻮر ‪) du‬اﺳﺘﻔﺎده از دﯾﺴﮏ( دﺳﺘﻮراﻟﻌﻤﻞ ﺑﺮاي ﯾﺎﻓﺘﻦ اﺳﺘﻔﺎده از ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎي دﯾﺴﮏ‬
‫) ‪linux " du " ( Disk Usage‬ﯾﮏ دﺳﺘﻮراﻟﻌﻤﻞ اﺳﺘﺎﻧﺪارد ﯾﻮﻧﯿﮑﺲ ‪ linux /‬اﺳﺖ ﮐﻪ ﺑﺮاي ﺑﺮرﺳﯽ اﻃﻼﻋﺎت‬
‫اﺳﺘﻔﺎده دﯾﺴﮏ از ﻓﺎﯾﻞ ﻫﺎ و داﯾﺮﮐﺘﻮري ﻫﺎ در ﯾﮏ ﻣﺎﺷﯿﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬دﺳﺘﻮر ‪du‬داراي ﮔﺰﯾﻨﻪ ﻫﺎي ﭘﺎراﻣﺘﺮﻫﺎي‬
‫ﺑﺴﯿﺎري اﺳﺖ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ﻧﺘﺎﯾﺞ در ﺑﺴﯿﺎري از ﻓﺮﻣﺖ ﻫﺎ اﺳﺘﻔﺎده ﺷﻮد‪.‬دﺳﺘﻮر ‪du‬ﻫﻤﭽﻨﯿﻦ ﻓﺎﯾﻞ ﻫﺎ و اﻧﺪازه ﻫﺎي‬
‫ﭘﻮﺷﻪ را ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘﯽ ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬

‫‪[ root@ hosein ] # du / home / hosein‬‬

‫‪40 / home / hosein / downloads‬‬


‫‪4 /home/ hosein /.mozilla/plugins‬‬
‫‪4 /home/ hosein /.mozilla/extensions‬‬
‫‪12 /home/ hosein /.mozilla‬‬
‫‪12 /home/ hosein /.ssh‬‬
‫‪689112 /home/ hosein /Ubuntu-12.10‬‬
‫‪689360 / home / hosein‬‬
‫ﺧﺮوﺟﯽ دﺳﺘﻮر ﺑﺎﻻ ﺗﻌﺪاد ﺑﻠﻮك ﻫﺎي دﯾﺴﮏ را در داﯾﺮﮐﺘﻮري ‪ / home / hosein‬ﻫﻤﺮاه ﺑﺎ زﯾﺮ ﺷﺎﺧﻪ ﻫﺎي آن‬
‫ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ " ‪ " -h‬ﺑﺎ دﺳﺘﻮر " ‪ " du‬در "ﻓﺮم ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ "ﻧﺘﺎﯾﺞ ﺣﺎﺻﻞ ﻣﯽ ﺷﻮد‪.‬ﯾﻌﻨﯽ ﺷﻤﺎ ﻣﯽ‬
‫ﺗﻮاﻧﯿﺪ اﻧﺪازه ﻫﺎي ‪Gigabytes ،Megabytes ،Kilobytes ،Bytes‬و ﻏﯿﺮه را ﺑﺒﯿﻨﯿﺪ‬
‫‪[ root@ hosein ] # du -h / home / hosein‬‬

‫‪40K / home / hosein / downloads‬‬


‫‪4.0K /home/ hosein /.mozilla/plugins‬‬
‫‪4.0K /home/ hosein /.mozilla/extensions‬‬
‫‪12K /home/ hosein /.mozilla‬‬
‫ﺑﺮاي درﯾﺎﻓﺖ ﺧﻼﺻﻪ اي از ﺣﺠﻢ ﮐﻞ ﺣﺠﻢ دﯾﺴﮏ داﯾﺮﮐﺘﻮري از ﮔﺰﯾﻨﻪ " ‪ " -s‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ] # du -sh / home / hosein‬‬

‫‪674M / home / hosein‬‬


‫اﺳﺘﻔﺎده از ﭘﺮﭼﻢ " ‪ " -a‬ﺑﺎ دﺳﺘﻮر " ‪ " du‬اﺳﺘﻔﺎده از دﯾﺴﮏ از ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ و داﯾﺮﮐﺘﻮري ﻫﺎ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬

‫‪78‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 79

[ root@ hosein ] # du-a / home / hosein

4 /home/ hosein /.bash_logout


12 /home/ hosein /downloads/uploadprogress-1.0.3.1.tgz
24 /home/ hosein /downloads/Phpfiles-org.tar.bz2
40 / home / hosein / downloads
12 /home/ hosein /uploadprogress-1.0.3.1.tgz
4 /home/ hosein /.mozilla/plugins
4 /home/ hosein /.mozilla/extensions
12 /home/ hosein /.mozilla
4 /home/ hosein /.bashrc
689108 /home/ hosein /Ubuntu-12.10/ubuntu-12.10-server-i386.iso
689112 /home/ hosein /Ubuntu-12.10
689360 / home / hosein
‫ " اﺳﺘﻔﺎده از دﯾﺴﮏ از ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ و ﭘﻮﺷﻪ ﻫﺎ را در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﭘﺨﺶ‬-h " ‫ " ﭘﺮﭼﻢ ﻫﻤﺮاه ﺑﺎ‬-a " ‫ﺑﺎ اﺳﺘﻔﺎده از‬
.‫ ﻣﮕﺎﺑﺎﯾﺖ و ﻏﯿﺮه ﻧﺸﺎن ﻣﯽ دﻫﺪ‬، ‫ﺧﺮوﺟﯽ زﯾﺮ آﺳﺎن ﺗﺮ اﺳﺖ زﯾﺮا ﻓﺎﯾﻠﯽ را در ﮐﯿﻠﻮﺑﺎﯾﺖ‬.‫ﻣﺠﺪد اﻧﺴﺎن ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‬
[ root@ hosein ] # du -ah / home / hosein

4.0K /home/ hosein /.bash_logout


12K /home/ hosein /downloads/uploadprogress-1.0.3.1.tgz
24K /home/ hosein /downloads/Phpfiles-org.tar.bz2
40K / home / hosein / downloads
12K /home/ hosein /uploadprogress-1.0.3.1.tgz
4.0K /home/ hosein /.mozilla/plugins
4.0K /home/ hosein /.mozilla/extensions
12K /home/ hosein /.mozilla
4.0K /home/ hosein /.bashrc
673M /home/ hosein /Ubuntu-12.10/ubuntu-12.10-server-i386.iso
673M /home/ hosein /Ubuntu-12.10
674M / home / hosein
‫ " اﺳﺘﻔﺎده ﮐﻨﯿﺪ )ﻧﻤﺎﯾﺶ‬-k " ‫از‬.‫ اﺳﺘﻔﺎده از دراﯾﻮ ﯾﮏ درﺧﺖ ﭘﻮﺷﻪ ﺑﺎ زﯾﺮﻣﺠﻤﻮﻋﻪ آن در ﺑﻠﻮك ﻫﺎي ﮐﯿﻠﻮﺑﺎﯾﺖ‬find
‫ﺑﺎﯾﺖ‬1024 ‫اﻧﺪازه در واﺣﺪ‬

[ root@ hosein ] # du-k / home / hosein


40 / home / hosein / downloads
4 /home/ hosein /.mozilla/plugins
4 /home/ hosein /.mozilla/extensions
12 /home/ hosein /.mozilla
12 /home/ hosein /.ssh

79
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 80

689112 /home/ hosein /Ubuntu-12.10


689360 / home / hosein
‫از‬.‫ (ﺗﻨﻬﺎ‬MB ) ‫ﺑﺮاي ﺑﻪ دﺳﺖ آوردن ﺧﻼﺻﻪ اﺳﺘﻔﺎده از دراﯾﻮ درﺧﺖ ﭘﻮﺷﻪ ﻫﻤﺮاه ﺑﺎ زﯾﺮ ﺷﺎﺧﻪ ﻫﺎي آن در ﻣﮕﺎﺑﺎﯾﺖ‬
‫ﻣﯽ ﮐﻨﺪ‬ ‫را ﺷﻤﺎرش‬MB ‫ " ﺑﻠﻮك ﻫﺎي ﻣﻮﺟﻮد در واﺣﺪ‬-m " ‫ﭘﺮﭼﻢ‬.‫ " ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬-mh " ‫ﮔﺰﯾﻨﻪ‬
.‫ " ﺑﺮاي ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن اﺳﺖ‬-h " ‫و‬
[ root@ hosein ] # du-mh / home / hosein

40K / home / hosein / downloads


4.0K /home/ hosein /.mozilla/plugins
4.0K /home/ hosein /.mozilla/extensions
12K /home/ hosein /.mozilla
12K /home/ hosein /.ssh
673M /home/ hosein /Ubuntu-12.10
674M / home / hosein
674 ‫اﮔﺮ داﯾﺮﮐﺘﻮري ﺷﻤﺎ ﻓﻀﺎي‬.‫ " ﯾﮏ ﻓﻀﺎي دﯾﺴﮏ ﮐﻞ اﺳﺘﻔﺎده در آﺧﺮﯾﻦ ﺧﻂ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‬-c " ‫ﭘﺮﭼﻢ‬
.‫ آﺧﺮﯾﻦ آﺧﺮﯾﻦ دو ﺧﻂ از ﺧﺮوﺟﯽ ﺧﻮاﻫﺪ ﺑﻮد‬،‫ﻣﮕﺎﺑﺎﯾﺘﯽ داﺷﺘﻪ ﺑﺎﺷﺪ‬
[ root@ hosein ] # du -ch / home / hosein

40K / home / hosein / downloads


4.0K /home/ hosein /.mozilla/plugins
4.0K /home/ hosein /.mozilla/extensions
12K /home/ hosein /.mozilla
12K /home/ hosein /.ssh
673M /home/ hosein /Ubuntu-12.10
674M / home / hosein
‫ ﻣﮕﺎﺑﺎﯾﺖ‬674 ‫ﻣﺠﻤﻮع‬

‫ اﻣﺎ ﻓﺎﯾﻞ ﻫﺎﯾﯽ را ﮐﻪ ﺑﺎ اﻟﮕﻮي داده‬،‫دﺳﺘﻮر زﯾﺮ ﻣﺤﺎﺳﺒﻪ و اﺳﺘﻔﺎده از ﮐﻠﯿﻪ ﻓﺎﯾﻞ ﻫﺎ و داﯾﺮﮐﺘﻮري ﻫﺎ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‬
.‫ " را ﻣﺤﺎﺳﺒﻪ ﻣﯽ ﮐﻨﺪ‬.txt " ‫دﺳﺘﻮر زﯾﺮ زﯾﺮ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﻫﺎي‬.‫ ﺣﺬف ﻣﯽ ﮐﻨﺪ‬،‫ﺷﺪه ﻣﻄﺎﺑﻘﺖ دارد‬
[ root@ hosein ] # du -ah -exclude = "* .txt"

/ home / hosein 4.0K /home/ hosein /.bash_logout 12K /home/ hosein


/downloads/uploadprogress-1.0.3.1.tgz 24K / home / hosein /downloads/Phpfiles-
org.tar.bz2 40K / home / hosein / downloads 12K /home/ hosein /uploadprogress-
1.0.3.1.tgz 4.0K /home/ hosein /.bash_history 4.0K /home/ hosein /.bash_profile 4.0K

80
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 81

‫ ﻫﻤﺎﻧﻄﻮر ﮐﻪ در زﯾﺮ‬،‫ " اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬-time " ‫ از ﭘﺮﭼﻢ‬،‫اﺳﺘﻔﺎده از دﯾﺴﮏ را ﺑﺮ اﺳﺎس اﺻﻼح زﻣﺎن ﻧﻤﺎﯾﺶ دﻫﯿﺪ‬
.‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‬
[ root@ hosein ] # du -ha -time / home / hosein

4.0K 2012-10-12 22:32 /home/ hosein /.bash_logout


12K 2013-01-19 18:48 /home/ hosein /downloads/uploadprogress-1.0.3.1.tgz
24K 2013-01-19 18:48 /home/ hosein /downloads/Phpfiles-org.tar.bz2
40K 2013-01-19 18:48 / home / hosein / downloads
12K 2013-01-19 18:32 /home/ hosein /uploadprogress-1.0.3.1.tgz
4.0K 2012-10-13 00:11 /home/ hosein /.bash_history
4.0K 2012-10-12 22:32 /home/ hosein /.bash_profile
0 2013-01-19 18:32 /home/ hosein /xyz.txt
0 2013-01-19 18:32 /home/ hosein /abc.txt
4.0K 2012-10-12 22:32 /home/ hosein /.mozilla/plugins
4.0K 2012-10-12 22:32 /home/ hosein /.mozilla/extensions
12K 2012-10-12 22:32 /home/ hosein /.mozilla
4.0K 2012-10-12 22:32 /home/ hosein /.bashrc
24K 2013-01-19 18:32 /home/ hosein /Phpfiles-org.tar.bz2
4.0K 2013-01-19 18:32 /home/ hosein /geoipupdate.sh
4.0K 2012-10-12 22:32 /home/ hosein /.zshrc
120K 2013-01-19 18:32 /home/ hosein /goaccess-0.4.2.tar.gz.1
673M 2013-01-19 18:51 /home/ hosein /Ubuntu-12.10/ubuntu-12.10-server-i386.iso
673M 2013-01-19 18:51 /home/ hosein /Ubuntu-12.10
674M 2013-01-19 18:52 / home / hosein

81
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪82‬‬

‫‪echo‬‬
‫ﯾﮑﯽ از ﻣﻌﻤﻮل ﺗﺮﯾﻦ و ﺑﻪ ﻃﻮر ﮔﺴﺘﺮده اي از ﻓﺮﻣﺎن داﺧﻠﯽ ﺳﺎﺧﺘﻪ ﺷﺪه در ﭘﻮﺳﺘﻪ ﻫﺎي ‪linux bash‬و ‪ C‬اﺳﺖ ﮐﻪ‬
‫ﻣﻌﻤﻮﻻ در زﺑﺎن اﺳﮑﺮﯾﭙﺘﯽ و ﻓﺎﯾﻞ ﻫﺎي دﺳﺘﻪ اي اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺗﺎ ﯾﮏ ﺧﻂ ﻣﺘﻦ ‪ /‬رﺷﺘﻪ در ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﯾﺎ‬
‫ﯾﮏ ﻓﺎﯾﻞ ﻧﻤﺎﯾﺶ داده ﺷﻮد‪.‬‬

‫ﻣﺜﺎل ﻓﺮﻣﺎن ‪echo‬‬


‫ﻧﺤﻮ ﺑﺮاي ‪ echo‬ﻋﺒﺎرت اﺳﺖ از‪:‬‬
‫])ﮔﺰﯾﻨﻪ )ﻫﺎ([ ]رﺷﺘﻪ )ﻫﺎ[ ‪echo‬‬

‫ﯾﮏ ﺧﻂ از ﻣﺘﻦ را وارد ﮐﻨﯿﺪ و در ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد ﻧﻤﺎﯾﺶ داده ﺷﻮد‬


‫‪$ echo hosein and linux‬‬
‫ﺧﺮوﺟﯽ ﻣﺘﻦ زﯾﺮ اﺳﺖ‪:‬‬
‫‪hosein and linux‬‬
‫ﯾﮏ ﻣﺘﻐﯿﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ و ﻣﻘﺪار آن را ‪ echo‬ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬اﻋﻼم ﯾﮏ ﻣﺘﻐﯿﺮ از ‪x‬و اﺧﺘﺼﺎص ﻣﻘﺪار آن ‪10‬‬
‫‪.‬‬
‫‪$ x = 10‬‬
‫‪ echo‬ارزش آن‪:‬‬
‫‪ x = $ x‬ﻣﻘﺪار ﻣﺘﻐﯿﺮ ‪$ echo‬‬

‫ﻣﻘﺪار ﻣﺘﻐﯿﺮ‪x = 10‬‬


‫ﻧﮑﺘﻪ ‪:‬ﮔﺰﯾﻨﻪ ' ‪ ' -e‬در ‪ linux‬ﺑﻪ ﻋﻨﻮان ﺗﻔﺴﯿﺮ ﺷﺨﺼﯿﺖ ﻫﺎي ﻓﺮار ﺷﺪه ﮐﻪ در ﭘﺸﺖ ﺧﻂ ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ ﻋﻤﻞ ﻣﯽ‬
‫ﮐﻨﺪ‪.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ b ' - backspace‬ﺑﺎ ﺗﻔﺴﯿﺮ ' ‪ backslash ' -e‬ﮐﻪ ﺗﻤﺎم ﻓﻀﺎﻫﺎي ﺑﯿﻦ آن را ﺣﺬف ﻣﯽ ﮐﻨﺪ‪.‬‬
‫"‪$ echo -e " hosein \ bis \ ba \ bcommunity \ bof \ bLinux \ bNerds‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ n ' -‬ﺧﻂ ﺟﺪﯾﺪ ﺑﺎ ﺗﻔﺴﯿﺮ ' ‪ backspace ' -e‬ﺧﻂ ﺟﺪﯾﺪ را از ﺟﺎﯾﯽ ﮐﻪ از آن اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد ﭘﺮدازش ﻣﯽ ﮐﻨﺪ‪.‬‬
‫"‪$ echo -e " hosein \ nis \ na \ ncommunity \ nof \ n linux \ n‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ t ' -‬زﺑﺎﻧﻪ اﻓﻘﯽ ﺑﺎ ﺗﻔﮑﺮ ' ‪ backspace ' -e‬ﺑﺮاي ﻓﻀﺎﻫﺎي ﺗﺐ اﻓﻘﯽ‪.‬‬
‫"‪$ echo -e " hosein \ tis \ ta \ tcommunity \ tof \ tLinux \ tNerds‬‬

‫‪82‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪83‬‬

‫در ﻣﻮرد اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﺟﺪﯾﺪ ﺧﻂ ' ‪ ' \ n‬و ﺑﺮﮔﻪ اﻓﻘﯽ ' ‪ ' \ t‬ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن‪.‬‬
‫\ ‪$ echo -e "\ n \ t hosein \ n \ tis \ n \ ta \ n \ tcommunity \ n \ tof \ n \ t linux \ n‬‬
‫"‪tNerds‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ v ' -‬ﺑﺮﮔﻪ ﻋﻤﻮدي ﺑﺎ ﺗﻔﮑﺮ ' ‪ backspace ' -e‬ﺑﺮاي ﻓﻀﺎﻫﺎي ﺑﺮﮔﻪ ﻋﻤﻮدي‪.‬‬
‫"‪$ echo -e "\ v hosein \ vis \ va \ vcommunity \ vof \ vLinux \ vNerds‬‬

‫در ﻣﻮرد اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﺟﺪﯾﺪ ﺧﻂ ' ‪ ' \ n‬و ﺑﺮﮔﻪ ﻋﻤﻮدي ' ‪ ' \ v‬ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن‪.‬‬
‫\ ‪$ echo -e "\ n \ v hosein \ n \ vis \ n \ va \ n \ vcommunity \ n \ vof \ n \ vLinux \ n‬‬
‫"‪vNerds‬‬

‫ﻧﮑﺘﻪ ‪:‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ زﺑﺎﻧﻪ ﻋﻤﻮدي‪ ،‬ﺗﺐ اﻓﻘﯽ و ﻓﺎﺻﻠﻪ ﺧﻂ ﺟﺪﯾﺪ را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ دو ﺑﺎر ﯾﺎ ﭼﻨﺪ ﺑﺎر ﮐﻪ ﻻزم اﺳﺖ‬
‫دو ﺑﺮاﺑﺮ ﮐﻨﯿﻢ‪.‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ r ' - return carriage‬ﺑﺎ ﺗﻔﺴﯿﺮ ' ‪ backspace ' -e‬ﺑﺮاي ﺑﺎزده ﻣﻮردﻧﻈﺮ در ﺧﺮوﺟﯽ‬
‫ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ‪.‬‬
‫"‪$ echo -e " hosein \ Community of Nerds Linux‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ' ‪ ' \ c‬ﺳﺮﺑﺮگ ﺧﻂ ﺟﺪﯾﺪي را ﺑﺎ ﺗﻔﺴﯿﺮ ' ‪ backspace ' -e‬ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از اﻧﺘﺸﺎر ﺧﻂ ﺟﺪﯾﺪ‬
‫اداﻣﻪ ﻣﯽ دﻫﺪ‪.‬‬
‫"اﺳﺖ ‪$ echo -e " hosein Community / cof Linux Nerds‬‬

‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ ' \ a ' -‬ﺑﺎزﮔﺸﺖ ﻫﺸﺪار ﺑﺎ ﺗﻔﺴﯿﺮ ' ‪ backspace ' -e‬ﺑﺮاي ﻫﺸﺪار ﺻﺪا‪.‬‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ‪:‬ﻗﺒﻞ از اﯾﻨﮑﻪ ﺷﻠﯿﮏ ﮐﻨﯿﺪ‪ ،‬ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻠﯿﺪ ‪ Volume‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‪.‬‬
‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ ‪ /‬ﭘﻮﺷﻪ را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر )‪ echo (ls command alternative‬ﭼﺎپ ﮐﻨﯿﺪ‪.‬‬
‫* ‪$ echo‬‬

‫‪103.odt 103.pdf 104.odt 104.pdf 105.odt 105.pdf 106.odt 106.pdf 107.odt 107.pdf‬‬
‫‪108a.odt 108.odt 108.pdf 109.odt 109.pdf 110b.odt 110. odt 110.pdf 111.odt 111.pdf‬‬
‫‪112.odt 112.pdf 113.odt linux-headers-3.16.0-customkernel_1_amd64.deb linux-image-‬‬
‫‪3.16.0-customkernel_1_amd64.deb network.jpeg‬‬
‫ﻓﺎﯾﻠﻬﺎي ﯾﮏ ﻧﻮع ﺧﺎص را ﭼﺎپ ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻓﺮض ﮐﻨﯿﺪ ﺷﻤﺎ ﻣﯿﺨﻮاﻫﯿﺪ ﺗﻤﺎم ﻓﺎﯾﻠﻬﺎي ‪.jpeg‬را ﭼﺎپ ﮐﻨﯿﺪ‪،‬‬
‫از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪83‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪84‬‬

‫‪$ echo * .jpeg‬‬

‫ﻓﺮﻣﺎن‪ eject‬ﺑﺮاي از ﺑﯿﻦ ﺑﺮدن رﺳﺎﻧﻪ ﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ ‪ DVD / CD ROM‬ﯾﺎ ﻓﻼﭘﯽ دﯾﺴﮏ از ‪ system‬اﺳﺘﻔﺎده‬
‫ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ eject / dev / cdrom‬‬
‫‪$ eject / mnt / cdrom /‬‬
‫‪$ eject / dev / sda‬‬
‫ﻓﺮﻣﺎن‪env‬‬
‫دﺳﺘﻮر‪ env‬ﻟﯿﺴﺖ ﺗﻤﺎم ﻣﺘﻐﯿﺮﻫﺎي ﻣﺤﯿﻂ ﻓﻌﻠﯽ را ﻧﺸﺎن ﻣﯽ دﻫﺪ و ﺑﺮاي ﺗﻨﻈﯿﻢ آﻧﻬﺎ ﻧﯿﺰ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ env‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده از ﻓﺮﻣﺎن "‪ "find‬ﺑﺮاي ﺟﺴﺘﺠﻮ ﺑﺮاي ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ )ﭘﺴﻮﻧﺪ( در ‪linux‬‬
‫ﭼﻨﺪﯾﻦ ﺑﺎر‪ ،‬ﻣﺎ در ﻣﻮﻗﻌﯿﺘﯽ ﻗﺮار دارﯾﻢ ﮐﻪ در آن ﻣﺎ ﺑﺎﯾﺪ ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ ﺑﺎ ﭘﺴﻮﻧﺪ ﻫﺎي ﻣﺨﺘﻠﻒ را ﺟﺴﺘﺠﻮ ﮐﻨﯿﻢ‪ ،‬اﯾﻦ‬
‫اﺣﺘﻤﺎﻻ ﺑﻪ ﭼﻨﺪﯾﻦ ﮐﺎرﺑﺮ ‪ linux‬ﺧﺼﻮﺻﺎ در داﺧﻞ ﺗﺮﻣﯿﻨﺎل رخ داده اﺳﺖ‪ .‬ﭼﻨﺪﯾﻦ اﺑﺰار ‪ linux‬وﺟﻮد دارد ﮐﻪ ﻣﺎ ﻣﯽ‬
‫ﺗﻮاﻧﯿﻢ از آﻧﻬﺎ ﺑﺮاي ﯾﺎﻓﺘﻦ ﯾﺎ ‪ find‬ﻓﺎﯾﻞ ﻫﺎ در ‪ system‬ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪ ،‬اﻣﺎ ‪ find‬ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﺘﻌﺪد و ﯾﺎ ﻓﺎﯾﻞ‬
‫ﻫﺎي ﺑﺎ ﭘﺴﻮﻧﺪ ﻫﺎي ﻣﺨﺘﻠﻒ ﮔﺎﻫﯽ اوﻗﺎت ﻣﯽ ﺗﻮاﻧﺪ ﭘﯿﭽﯿﺪه و ﻧﯿﺎز ﺑﻪ دﺳﺘﻮرات ﺧﺎص‪.‬‬

‫ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ را در ‪ linux‬ﭘﯿﺪا ﮐﻨﯿﺪ‬


‫ﯾﮑﯽ از ﺑﺴﯿﺎري از اﻣﮑﺎﻧﺎت ﺑﺮاي ﯾﺎﻓﺘﻦ ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ‪ system‬ﻓﺎﯾﻞ ‪ linux‬اﺑﺰار ‪find‬اﺳﺖ و در اﯾﻦ راﻫﻨﻤﺎي ﻧﺤﻮه‬
‫اﺳﺘﻔﺎده از ﭼﻨﺪ ﻧﻤﻮﻧﻪ از اﺳﺘﻔﺎده از ‪find‬ﺑﺮاي ﮐﻤﮏ ﺑﻪ ﻣﺎ در ‪ find‬ﭼﻨﺪﯾﻦ ﻧﺎم ﻓﺎﯾﻞ در ﯾﮏ زﻣﺎن ﭘﯿﺎده روي ﻣﯽ‬
‫ﮐﻨﯿﻢ‪ .‬ﺳﺎده ﺗﺮﯾﻦ و ‪ public‬ﻧﺤﻮي اﺑﺰار ﯾﺎﻓﺘﻦ ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪:‬‬
‫‪.‬ﺑﺎ ﻓﺮض اﯾﻨﮑﻪ ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﻮﺟﻮد در داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ را ﺑﺎ ﭘﺴﻮﻧﺪ ﻓﺎﯾﻞ ﻫﺎي ‪.sh‬و ‪.txt‬ﮐﻨﯿﺪ‪،‬‬
‫ﻣﯽ ﺗﻮاﻧﯿﺪ اﯾﻦ ﮐﺎر را ﺑﺎ اﺟﺮاي دﺳﺘﻮر زﯾﺮ اﻧﺠﺎم دﻫﯿﺪ‪:‬‬
‫)\ "‪# find . -type f \ (-name "* .sh" -o -name "* .txt‬‬

‫‪84‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪85‬‬

‫ﻓﺎﯾﻠﻬﺎي ﻓﺮﻣﺖ ‪ ext‬و ‪ sh.‬را در ‪ linux‬ﭘﯿﺪا ﮐﻨﯿﺪ‬


‫ﺗﻔﺴﯿﺮ ﻓﺮﻣﺎن ﺑﺎﻻ‪:‬‬
‫‪.‬ﺑﻪ ﻣﻌﻨﯽ داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ اﺳﺖ‬ ‫‪.1‬‬
‫‪-type option‬ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﻧﻮع ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد و در اﯾﻨﺠﺎ‪ ،‬ﻣﺎ ﺑﺮاي ﻓﺎﯾﻞ ﻫﺎي ﻣﻌﻤﻮﻟﯽ ﺑﻪ‬ ‫‪.2‬‬
‫ﺻﻮرت ‪f‬‬
‫‪-name option‬ﺑﺮاي ﺗﻌﯿﯿﻦ اﻟﮕﻮي ﺟﺴﺘﺠﻮ در اﯾﻦ ﻣﻮرد‪ ،‬ﭘﺴﻮﻧﺪ ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‬ ‫‪.3‬‬
‫‪-o‬ﺑﻪ ﻣﻌﻨﯽ"‪"OR‬‬ ‫‪.4‬‬
‫ﺗﻮﺻﯿﻪ ﻣﯽ ﺷﻮد ﮐﻪ ﭘﺴﻮﻧﺪ ﻓﺎﯾﻞ را در ﯾﮏ ﺑﺮاﮐﺖ ﻗﺮار دﻫﯿﺪ و از ﮐﺎراﮐﺘﺮ ﻓﺮار ( \ﭘﺸﺖ اﺳﻠﺶ )ﻧﯿﺰ ﻣﺎﻧﻨﺪ ﻓﺮﻣﺎن‬
‫اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪2.‬ﺑﺮاي ‪ find‬ﺳﻪ ﻧﺎم ﻓﺎﯾﻞ ﺑﺎ ‪.txt ،.sh‬و ‪ ،.c extensions‬دﺳﺘﻮر زﯾﺮ را ‪.c‬ﮐﻨﺪ‪:‬‬
‫)\ "‪# find . -type f \ (-name "* .sh" -o -name "* .txt" -o -name "* .c‬‬

‫ﻣﺸﺎﻫﺪه ﻓﺎﯾﻠﻬﺎي ﻓﺎﯾﻞ ﭼﻨﺪﮔﺎﻧﻪ در ‪linux‬‬


‫‪3.‬در اﯾﻨﺠﺎ ﯾﮏ ﻧﻤﻮﻧﻪ دﯾﮕﺮ اﺳﺖ ﮐﻪ ﻣﺎ ﺑﺮاي ﻓﺎﯾﻞ ﻫﺎي ﺑﺎ ‪.deb ،.jpg ،.png‬و ‪.pdf extensions‬ﻫﺎ ﺟﺴﺘﺠﻮ ﻣﯽ‬
‫ﮐﻨﯿﻢ‪:‬‬
‫‪ / -type f \ (-name "* .png" -o -name "* .jpg" -o -name‬اﺳﻨﺎد ‪# find / home / aaronkilik /‬‬
‫)\ "‪"* .deb" -o -name ".pdf‬‬

‫‪85‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪86‬‬

‫دﺳﺘﻮر ‪find‬‬
‫‪ linux‬ﯾﺎﻓﺘﻦ ﻓﺮﻣﺎن ﯾﮑﯽ از ﻣﻬﻢ ﺗﺮﯾﻦ و ﺑﺴﯿﺎر ﻣﻮرد اﺳﺘﻔﺎده در دﺳﺘﻮرات ‪ linux‬اﺳﺖ‪.‬دﺳﺘﻮر ﺟﺴﺘﺠﻮ ﺑﺮاي‬
‫ﺟﺴﺘﺠﻮ و ﻗﺮار دادن ﻟﯿﺴﺖ ﻓﺎﯾﻞ ﻫﺎ و داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﺮ اﺳﺎس ﺷﺮاﯾﻄﯽ ﮐﻪ ﺑﺮاي ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﺑﺎ اﺳﺘﺪﻻل ﻣﻄﺎﺑﻘﺖ‬
‫دارﻧﺪ ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﯿﺪ‪ .find‬را ﻣﯽ ﺗﻮان در ﺷﺮاﯾﻂ ﻣﺨﺘﻠﻒ ﻣﺎﻧﻨﺪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻓﺎﯾﻞ ﻫﺎي ﻣﺠﻮز ‪ ،‬ﮐﺎرﺑﺮان ‪ ،‬ﮔﺮوه ﻫﺎ‬
‫‪ ،‬ﻧﻮع ﻓﺎﯾﻞ ‪ ،‬ﺗﺎرﯾﺦ ‪ ،‬اﻧﺪازه و ﺳﺎﯾﺮ ﻣﻌﯿﺎرﻫﺎي ﻣﻤﮑﻦ را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬

‫‪ 35‬ﻣﺜﺎل‬
‫ﻗﺴﻤﺖ اول ‪ -‬دﺳﺘﻮراﻟﻌﻤﻞ اﺳﺎﺳﯽ ﺑﺮاي ﯾﺎﻓﺘﻦ ﻓﺎﯾﻞ ﺑﺎ ﻧﺎم‬
‫‪ 1. find‬ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻧﺎم در داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ‬
‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﻧﺎم آن ‪hosein .txt‬را در ﯾﮏ داﯾﺮﮐﺘﻮري ﮐﺎري ﻓﻌﻠﯽ ﭘﯿﺪا ﮐﻨﯿﺪ ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find .-name hosein .txt‬‬

‫‪./ hosein .txt‬‬


‫‪2.‬ﻓﺎﯾﻞ ﻫﺎ را در زﯾﺮ ﻓﻬﺮﺳﺖ ‪ home‬ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎ را در زﯾﺮ ﭘﻮﺷﻪ ‪/ home‬ﺑﺎ ﻧﺎم ‪hosein .txt‬ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find / home-name hosein .txt‬‬
‫‪/home/ hosein .txt‬‬

‫‪86‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪87‬‬

‫‪ 3. find‬ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻧﺎم و ﻧﺎدﯾﺪه ﮔﺮﻓﺘﻦ ﻣﻮرد‬


‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ اﺳﻢ ‪hosein .txt‬را ﭘﯿﺪا ﮐﺮده اﻧﺪ را ﭘﯿﺪا ﮐﺮده و ﺣﺎوي ﺣﺮوف ﺑﺰرگ و ﮐﻮﭼﮏ در داﯾﺮﮐﺘﻮري‬
‫‪/ home‬اﺳﺖ‪.‬‬
‫‪# find / home-name hosein .txt‬‬

‫‪./ hosein .txt‬‬


‫‪./ hosein .txt‬‬
‫‪4.‬ﯾﺎﻓﺘﻦ راﻫﻨﻤﺎﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ﻧﺎم‬
‫ﯾﺎﻓﺘﻦ ﻫﻤﻪ داﯾﺮﮐﺘﻮري ﻫﺎﯾﯽ ﮐﻪ ﻧﺎم آن ‪ hosein‬در ‪/‬داﯾﺮﮐﺘﻮري اﺳﺖ‪.‬‬
‫‪# find / -type d -name hosein‬‬
‫‪/ hosein‬‬

‫‪ 5. find‬ﻓﺎﯾﻞ ﻫﺎي ‪ PHP‬ﺑﺎ اﺳﺘﻔﺎده از ﻧﺎم‬


‫‪ find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ‪php‬ﮐﻪ ﻧﺎم آن ‪hosein .php‬در ﯾﮏ داﯾﺮﮐﺘﻮري ﮐﺎري ﻓﻌﻠﯽ اﺳﺖ‪.‬‬
‫‪# find .-type f -name hosein .php‬‬
‫‪./ hosein .php‬‬

‫‪ 6. find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ‪ PHP‬در داﯾﺮﮐﺘﻮري‬


‫ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ‪php‬را در ﯾﮏ داﯾﺮﮐﺘﻮري ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫"‪# find .-type f -name "* .php‬‬
‫‪./ hosein .php‬‬
‫‪./login.php‬‬
‫‪./index.php‬‬
‫ﻗﺴﻤﺖ دوم ‪ -‬ﯾﺎﻓﺘﻦ ﻓﺎﯾﻞ ﻫﺎ ﺑﺮاﺳﺎس ﻣﺠﻮزﻫﺎي آﻧﻬﺎ‬
‫ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ ﻣﺠﻮز ‪7. find777‬‬
‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﻣﺠﻮزﻫﺎ ‪777‬ﻫﺴﺘﻨﺪ ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find .-type f -perm 0777 -print‬‬
‫ﻓﺎﯾﻞ ﻫﺎ ﺑﺪون ﻣﺠﻮز ‪8. find777‬‬
‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ را ﺑﺪون اﺟﺎزه ‪777‬ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫ﮐﻤﭗ ‪# find / -type f!777‬‬
‫‪ 9. find‬ﻓﺎﯾﻞ ﻫﺎي ‪ SGID‬ﺑﺎ ‪ 644‬ﻣﺠﻮز‬

‫‪87‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪88‬‬

‫ﺗﻤﺎم ﻓﺎﯾﻠﻬﺎي ‪bit SGID‬ﮐﻪ ﻣﺠﻮزﻫﺎ آﻧﻬﺎ ‪644‬اﺳﺖ ﺗﻨﻈﯿﻢ ﺷﺪه را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find / -perm 2644‬‬
‫‪10.‬ﯾﺎﻓﺘﻦ ﻓﺎﯾﻞ ﻫﺎي ‪ bit‬ﺑﺎ ‪ 551‬ﻣﺠﻮز‬
‫ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﺠﻤﻮﻋﻪ ‪Sticky Bit‬را ﮐﻪ اﺟﺎزه دارﻧﺪ ‪551‬ﭘﯿﺪا ﮐﻨﯿﺪ ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find / -perm 1551‬‬
‫‪11.‬ﻓﺎﯾﻞ ﻫﺎي ‪ SUID‬را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ‪SUID‬را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫‪# find / -perm / u = s‬‬
‫‪ 12. find‬ﻓﺎﯾﻞ ﻫﺎي‪SGID‬‬
‫‪ find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﺠﻤﻮﻋﻪ ‪SGID .‬‬
‫‪# find / -perm / g = s‬‬
‫‪13.‬ﻓﻘﻂ ﻓﺎﯾﻞ ﻫﺎي ﻗﺎﺑﻞ ﺧﻮاﻧﺪن را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﻫﻤﻪ ﻓﺎﯾﻠﻬﺎي ﻓﻘﻂ ﺧﻮاﻧﺪه ﺷﺪه را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫‪# find / -perm / u = r‬‬
‫‪14.‬ﯾﺎﻓﺘﻦ ﻓﺎﯾﻞ ﻫﺎي اﺟﺮاﯾﯽ‬
‫ﻫﻤﻪ ﻓﺎﯾﻠﻬﺎي اﺟﺮاﯾﯽ را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫‪# find / -perm / a = x‬‬
‫‪15.‬ﻓﺎﯾﻞ ﻫﺎ را ﺑﺎ ‪ 777‬ﻣﺠﻮز و ‪ Chmod‬ﺑﻪ ‪ 644‬ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫‪ find‬ﺗﻤﺎم ﭘﺮوﻧﺪه ﻫﺎي ‪777‬اﺟﺎزه و اﺳﺘﻔﺎده از دﺳﺘﻮر ‪chmod‬ﺑﺮاي ﺗﻨﻈﯿﻢ ﻣﺠﻮز ﻫﺎ ﺑﻪ ‪644 .‬‬
‫؛\ }{ ‪# find / -type f -perm 0777 -print -exec chmod 644‬‬
‫‪16.‬ﯾﺎﻓﺘﻦ راﻫﻨﻤﺎﻫﺎ ﺑﺎ ﻣﺠﻮز ‪ 777‬و ‪ Chmod‬ﺑﻪ ‪755‬‬
‫‪ find‬ﺗﻤﺎم ‪777‬اﺟﺎزه داﯾﺮﮐﺘﻮري و اﺳﺘﻔﺎده از دﺳﺘﻮر ‪chmod‬ﺑﺮاي ﺗﻨﻈﯿﻢ ﻣﺠﻮز ﺑﻪ ‪755 .‬‬
‫؛\ }{ ‪# find / -type d -perm 777 -print -exec chmod 755‬‬
‫‪ 17. find‬و ﺣﺬف ﺗﮏ ﻓﺎﯾﻞ‬
‫ﺑﺮاي ‪ find‬ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻧﺎم ‪hosein .txt‬و ﺣﺬف آن‪.‬‬
‫؛\ }{ ‪# find .-type f -name " hosein .txt" -exec rm -f‬‬
‫‪18.‬ﻓﺎﯾﻞ ﭼﻨﺪﮔﺎﻧﻪ را ﭘﯿﺪا ﮐﻨﯿﺪ و ﺣﺬف ﮐﻨﯿﺪ‬
‫ﺑﺮاي ‪ find‬و ﺣﺬف ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ ﻣﺎﻧﻨﺪ ‪.mp3‬ﯾﺎ ‪ ،.txt‬ﺳﭙﺲ از آن اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫؛\ }{ ‪# find .-type f -name "* .txt" -exec rm -f‬‬

‫‪88‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪89‬‬

‫ﯾﺎ‬

‫؛\ }{ ‪# find .-type f -name "* .mp3" -exec rm -f‬‬


‫‪19.‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ‪ empty‬را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻠﻬﺎي ‪ empty‬ﺗﺤﺖ ﻣﺴﯿﺮ ﺧﺎص‬
‫‪# find / tmp -type f -type‬‬
‫‪20.‬ﻫﻤﻪ راﻫﻨﻤﺎﯾﯽ ﻫﺎي ‪ empty‬را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﺑﺮاي ارﺳﺎل ﺗﻤﺎم ﭘﻮﺷﻪ ﻫﺎي ‪ empty‬ﺗﺤﺖ ﻣﺴﯿﺮ ﺧﺎص‬
‫‪# find / tmp -type d-empty‬‬
‫‪21.‬ﻓﺎﯾﻞ ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﻔﯽ را ‪ download‬ﮐﻨﯿﺪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﻔﯽ‪ ،‬از ﻓﺮﻣﺎن زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫"* ‪# find / tmp -type f -name ".‬‬
‫ﻗﺴﻤﺖ ﺳﻮم ‪ -‬ﻓﺎﯾﻞ ﻫﺎي ﺟﺴﺘﺠﻮ ﺑﺮ اﺳﺎس ﺻﺎﺣﺒﺎن و ﮔﺮوه ﻫﺎ‬
‫‪22.‬ﯾﮏ ﻓﺎﯾﻞ ﺑﺮ اﺳﺎس ﮐﺎرﺑﺮ ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﯾﺎ ﯾﮏ ﻓﺎﯾﻞ ﺗﮏ ﺑﻪ ﻧﺎم ‪hosein .txt‬زﯾﺮ ‪ /root‬ﭘﻮﺷﻪ ‪ root‬ﻣﺎﻟﮏ‪.‬‬
‫‪# find / -user root -name hosein .txt‬‬
‫‪ 23. find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ ﺑﺮ اﺳﺎس ﮐﺎرﺑﺮ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﻣﺘﻌﻠﻖ ﺑﻪ ‪ hosein‬ﮐﺎرﺑﺮ زﯾﺮ ﭘﻮﺷﻪ ‪/ home‬ﻫﺴﺘﻨﺪ‪.‬‬
‫‪# find / home -user hosein‬‬
‫‪24.‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﺑﺮ اﺳﺎس ﮔﺮوه را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﻣﺘﻌﻠﻖ ﺑﻪ ﮔﺮوه ﺗﻮﺳﻌﻪ در زﯾﺮ ﭘﻮﺷﻪ ‪/ home‬ﻫﺴﺘﻨﺪ‪.‬‬
‫‪# find / home -group developer‬‬
‫‪ 25. find‬ﻓﺎﯾﻞ ﻫﺎي ﺧﺎﺻﯽ از ﮐﺎرﺑﺮ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ‪.txt‬از ﮐﺎرﺑﺮ ‪ hosein‬زﯾﺮ ﭘﻮﺷﻪ ‪/ home.‬‬
‫"‪# find / home -user hosein -name "* .txt‬‬
‫ﻗﺴﻤﺖ ﭼﻬﺎرم ‪ find -‬ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ ﺑﺮ اﺳﺎس ﺗﺎرﯾﺦ و زﻣﺎن‬
‫‪26.‬ﯾﺎﻓﺘﻦ آﺧﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎي اﺻﻼح ﺷﺪه ‪ 50‬روزه‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ‪50‬روز ﻗﺒﻞ اﺻﻼح ﺷﺪه اﻧﺪ‪.‬‬
‫‪# find / -time 50‬‬

‫‪89‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪90‬‬

‫‪27.‬ﯾﺎﻓﺘﻦ آﺧﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎي دﺳﺘﺮﺳﯽ ‪ 50‬روزه‬


‫ﺑﺮاي ‪ find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﺑﻪ ﻣﺪت ‪50‬روز ﺑﻪ آﻧﻬﺎ دﺳﺘﺮﺳﯽ ﭘﯿﺪا ﻣﯽ ﺷﻮد‪.‬‬
‫‪# find / -atme 50‬‬
‫‪ 28. find‬آﺧﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎي اﺻﻼح ﺷﺪه ‪ 100-50‬روز‬
‫ﺑﺮاي ‪ find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﺑﯿﺶ از ‪50‬روز ﻗﺒﻞ و ﮐﻤﺘﺮ از ‪100‬روز ﺗﻐﯿﯿﺮ ﮐﺮده اﻧﺪ‪.‬‬
‫‪# find / -mtime +50 -mtime -100‬‬
‫‪ 29. find‬ﻓﺎﯾﻞ ﻫﺎي ﺗﻐﯿﯿﺮ ﯾﺎﻓﺘﻪ در ‪ 1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ در ‪1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ ﺗﻐﯿﯿﺮ ﮐﺮده اﻧﺪ‪.‬‬
‫‪# find / -cmin -60‬‬
‫‪ 30. find‬ﻓﺎﯾﻞ ﻫﺎي اﺻﻼح ﺷﺪه در ‪ 1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ در ‪1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ اﺻﻼح ﺷﺪه اﻧﺪ‪.‬‬
‫‪# find / -mmin -60‬‬
‫‪ 31. find‬ﻓﺎﯾﻞ ﻫﺎي دﺳﺘﺮﺳﯽ در ‪ 1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ در ‪1‬ﺳﺎﻋﺖ ﮔﺬﺷﺘﻪ دﯾﺪه ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪# find / -amin -60‬‬
‫ﻗﺴﻤﺖ ‪ V -find‬ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ ﺑﺮ اﺳﺎس اﻧﺪازه‬
‫‪ 32. find‬ﻓﺎﯾﻞ ﻫﺎي ‪ 50‬ﻣﮕﺎﺑﺎﯾﺘﯽ‬
‫ﺑﺮاي ‪ find‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ‪50‬ﻣﮕﺎﺑﺎﯾﺘﯽ ‪ ،‬از‬
‫‪# find / -size 50M‬‬
‫‪ 33. find‬اﻧﺪازه ﺑﯿﻦ ‪MB - 100MB50‬‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ ﺑﯿﺶ از ‪50‬ﻣﮕﺎﺑﺎﯾﺖ و ﮐﻤﺘﺮ از ‪100MB‬ﻫﺴﺘﻨﺪ‪.‬‬
‫‪# find / -size + 50M-size -100M‬‬
‫‪34.‬ﯾﺎﻓﺘﻦ و ﺣﺬف ‪MB 100‬ﻓﺎﯾﻞ‬
‫ﺑﺮاي ‪ find‬ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ‪100MB‬و ﺣﺬف آﻧﻬﺎ ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ ﻓﺮﻣﺎن ﺗﻨﻬﺎ‪.‬‬
‫؛\ }{ ‪# find / -size + 100M -exec rm -rf‬‬
‫‪ 35. find‬ﻓﺎﯾﻞ ﻫﺎي ﺧﺎص و ﺣﺬف‬
‫ﻫﻤﻪ ﻓﺎﯾﻞ ﻫﺎي ‪.mp3‬را ﺑﺎ ﺑﯿﺶ از ‪10‬ﻣﮕﺎﺑﺎﯾﺖ ﭘﯿﺪا ﮐﻨﯿﺪ و آﻧﻬﺎ را ﺑﺎ اﺳﺘﻔﺎده از ﯾﮏ ﻓﺮﻣﺎن ﺗﻨﻬﺎ ﺣﺬف ﮐﻨﯿﺪ‪.‬‬
‫؛\ }{ ‪# find / -type f -name * .mp3 -size + 10M -exec rm‬‬

‫‪90‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪91‬‬

‫ﻧﺤﻮه ﯾﺎﻓﺘﻦ راﻫﻨﻤﺎﻫﺎ و ﻓﺎﯾﻠﻬﺎي ﺑﺎﻻ )ﻓﻀﺎي دﯾﺴﮏ( در ‪linux‬‬


‫ﺑﻪ ﻋﻨﻮان ﯾﮏ ﻣﺪﯾﺮ ‪ ،linux‬ﺷﻤﺎ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت دوره اي ﺑﺮرﺳﯽ ﮐﻨﯿﺪ ﮐﻪ ﭼﻪ ﻓﺎﯾﻞ ﻫﺎ و ﭘﻮﺷﻪ ﻫﺎ ﻓﻀﺎي دﯾﺴﮏ‬
‫ﺑﯿﺸﺘﺮي را ﻣﺼﺮف ﻣﯽ ﮐﻨﻨﺪ‪.‬ﺑﺴﯿﺎر ﻣﻬﻢ اﺳﺖ ﮐﻪ ‪ junks‬ﻫﺎي ﻏﯿﺮ ﺿﺮوري را ﭘﯿﺪا ﮐﻨﯿﺪ و آﻧﻬﺎ را از ﻫﺎرد دﯾﺴﮏ ﺧﻮد‬
‫آزاد ﮐﻨﯿﺪ‪.‬‬
‫ﻧﺤﻮه ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ در ‪linux‬‬
‫دﺳﺘﻮر زﯾﺮ را ﺑﺮاي ‪ find‬ﺑﺰرﮔﺘﺮﯾﻦ ﺑﺰرﮔﺘﺮﯾﻦ داﯾﺮﮐﺘﻮري زﯾﺮ ‪/home‬ﭘﺎرﺗﯿﺸﻦ ‪/home .‬‬
‫‪# du -a / home | sort -n -r | head -n 5‬‬

‫ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ داﯾﺮﮐﺘﻮري ﻫﺎ در ‪linux‬‬


‫دﺳﺘﻮر ﺑﺎﻻ ﺑﺰرﮔﺘﺮﯾﻦ ‪ 5‬داﯾﺮﮐﺘﻮري ﭘﺎرﺗﯿﺸﻦ ﻣﻦ ‪ / home‬را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫ﯾﺎﻓﺘﻦ ﺑﺰرﮔﺘﺮﯾﻦ داﯾﺮﮐﺘﻮري ﻫﺎ در ‪linux‬‬
‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺑﺰرﮔﺘﺮﯾﻦ داﯾﺮﮐﺘﻮري ﻫﺎ را در داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ ،‬اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪# du -a | sort -n -r |head -n 5‬‬

‫ﻓﻘﻂ ﺑﺰرﮔﺘﺮﯾﻦ راﻫﻨﻤﺎﻫﺎ را ﭘﯿﺪا ﮐﻨﯿﺪ‬


‫اﺟﺎزه دﻫﯿﺪ دﺳﺘﻮر را ﺑﺸﮑﻨﯿﻢ و ﺑﺒﯿﻨﯿﺪ ﭼﻪ ﭼﯿﺰي ﭘﺎراﻣﺘﺮ را ﻣﯽ ﮔﻮﯾﺪ‪.‬‬
‫‪du command:‬ﺑﺮآورد اﺳﺘﻔﺎده از ﻓﻀﺎي ﻓﺎﯾﻞ‪.‬‬ ‫‪.1‬‬
‫‪a :‬ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎ و ﭘﻮﺷﻪ ﻫﺎ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬ ‫‪.2‬‬
‫‪sort‬ﺑﺮ ‪sort‬دﺳﺘﻮر‪ :‬ﻣﺮﺗﺐ ﺳﺎزي ﺧﻄﻮط ﻓﺎﯾﻞ ﻫﺎي ﻣﺘﻨﯽ‪.‬‬ ‫‪.3‬‬
‫‪-n :‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﻘﺪار ﻋﺪدي رﺷﺘﻪ ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﺪ‪.‬‬ ‫‪.4‬‬
‫‪-r :‬ﻧﺘﯿﺠﻪ ﻣﻘﺎﯾﺴﻪ را ﻣﻌﮑﻮس ﮐﻨﯿﺪ‪.‬‬ ‫‪.5‬‬
‫‪head :‬ﺧﺮوﺟﯽ ﻗﺴﻤﺖ اول ﻓﺎﯾﻞ ﻫﺎ‪.‬‬ ‫‪.6‬‬
‫‪-n :‬اوﻟﯿﻦ ﺧﻂ "‪ "n‬را ﭼﺎپ ﮐﻨﯿﺪ(‪.‬در ﻣﻮرد ﻣﺎ‪ ،‬ﻣﺎ ‪ 5‬ﺧﻂ اول را ﻧﻤﺎﯾﺶ دادﯾﻢ‪).‬‬ ‫‪.7‬‬

‫‪91‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪92‬‬

‫از ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﻢ ﻧﺘﯿﺠﻪ ﻓﻮق را در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪.‬ﯾﻌﻨﯽ ﺷﻤﺎ ﻣﻤﮑﻦ اﺳﺖ ﺑﺨﻮاﻫﯿﺪ‬
‫ﺑﺰرﮔﺘﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎ را در ‪MB ،KB‬ﯾﺎ ‪GB‬ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪.‬‬
‫‪# du -hs * | sort -rh |head 5‬‬

‫دﺳﺘﻮر ﺑﺎﻻ داﯾﺮﮐﺘﻮري ﻫﺎي ﺑﺎﻻ را ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﻓﻀﺎي دﯾﺴﮏ ﺑﯿﺸﺘﺮي دارﻧﺪ‪.‬اﮔﺮ اﺣﺴﺎس ﻣﯽ ﮐﻨﯿﺪ ﮐﻪ ﺑﺮﺧﯽ از‬
‫داﯾﺮﮐﺘﻮري ﻫﺎ ﻣﻬﻢ ﻧﯿﺴﺘﻨﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ ﺳﺎدﮔﯽ ﭼﻨﺪ زﯾﺮ داﯾﺮﮐﺘﻮري را ﺣﺬف ﮐﻨﯿﺪ ﯾﺎ ﮐﻞ ﭘﻮﺷﻪ را ﺑﺮاي آزاد ﮐﺮدن‬
‫ﻓﻀﺎي ‪ empty‬ﭘﺎك ﮐﻨﯿﺪ‪.‬‬
‫ﺑﺮاي ﻧﻤﺎﯾﺶ ﺑﺰرﮔﺘﺮﯾﻦ ﭘﻮﺷﻪ ﻫﺎ ‪ /‬ﻓﺎﯾﻞ ﻫﺎ از ﺟﻤﻠﻪ زﯾﺮ ﺷﺎﺧﻪ ﻫﺎ‪ ،‬اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪# du -Sh | sort -rh |head 5‬‬

‫در ﻓﺮﻣﺎن ﺑﺎﻻ از ﻣﻌﻨﯽ ﻫﺮ ﮔﺰﯾﻨﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬


‫‪du command:‬ﺑﺮآورد اﺳﺘﻔﺎده از ﻓﻀﺎي ﻓﺎﯾﻞ‪.‬‬ ‫‪.1‬‬
‫‪-h :‬اﻧﺪازه ﭼﺎپ در ﻗﺎﻟﺐ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎﻧﯽ )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪MB).10 ،‬‬ ‫‪.2‬‬
‫‪-S :‬اﻧﺪازه زﯾﺮ ﺷﺎﺧﻪ ﻫﺎ را ﺷﺎﻣﻞ ﻧﻤﯽ ﺷﻮد‪.‬‬ ‫‪.3‬‬
‫‪-s :‬ﺑﺮاي ﻫﺮ اﺳﺘﺪﻻل ﺗﻨﻬﺎ ﻣﺠﻤﻮﻋﯽ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬ ‫‪.4‬‬
‫‪sort‬دﺳﺘﻮر‪ :‬ﻣﺮﺗﺐ ﺳﺎزي ﺧﻄﻮط ﻓﺎﯾﻞ ﻫﺎي ﻣﺘﻨﯽ‪.‬‬ ‫‪.5‬‬
‫‪-r :‬ﻧﺘﯿﺠﻪ ﻣﻘﺎﯾﺴﻪ را ﻣﻌﮑﻮس ﮐﻨﯿﺪ‪.‬‬ ‫‪.6‬‬
‫‪-h :‬ﻣﻘﺎﯾﺴﻪ اﻋﺪاد ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن )ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪G).1 ،K2 ،‬‬ ‫‪.7‬‬
‫‪head :‬ﺧﺮوﺟﯽ ﻗﺴﻤﺖ اول ﻓﺎﯾﻞ ﻫﺎ‪.‬‬ ‫‪.8‬‬

‫‪92‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪93‬‬

‫اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺑﺰرﮔﺘﺮﯾﻦ اﻧﺪازه ﻓﺎﯾﻞ را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ ،‬ﺳﭙﺲ دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪# find-type f -exec du -Sh {} + | sort -rh |head -n 5‬‬

‫‪ find‬اﻧﺪازه ﻓﺎﯾﻞ ﺑﺎﻻ در ‪linux‬‬


‫ﺑﺮاي ‪ find‬ﺑﺰرﮔﺘﺮﯾﻦ ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ﻣﮑﺎن ﺧﺎص‪ ،‬ﻓﻘﻂ ﻣﺴﯿﺮ را در ﮐﻨﺎر دﺳﺘﻮر ‪find :‬‬
‫‪ -n 5‬ﺳﺮ| ‪# find / home / hosein / downloads / -type f -exec du -Sh {} + | sort -rh‬‬

‫ﯾﺎ‬
‫‪ -n 5‬ﺳﺮ| ‪# find / home / hosein / Downloads / -type f -printf "٪s٪p \ n" | sort-rn‬‬

‫‪93‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪94‬‬

‫دﺳﺘﻮر ‪free‬‬
‫اﺳﺘﻔﺎده از ‪ ،free) system memory‬اﺳﺘﻔﺎده ﺷﺪه‪ ،‬ﻣﺒﺎدﻟﻪ ﺷﺪه‪ ،‬ذﺧﯿﺮه ﺳﺎزي‪ ،‬و ﻏﯿﺮه( در ‪ system‬ﺷﺎﻣﻞ ﻓﻀﺎي‬
‫‪swap‬اﺳﺖ‪.‬از ﮔﺰﯾﻨﻪ ‪-h‬ﺑﺮاي ﻧﻤﺎﯾﺶ ﺧﺮوﺟﯽ در ﻓﺮﻣﺖ دوﺳﺘﺎﻧﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ free -h‬‬
‫‪ linux‬ﯾﮑﯽ از ﻣﺤﺒﻮب ﺗﺮﯾﻦ ‪ system‬ﻋﺎﻣﻞ ﻫﺎي ﻣﻨﺒﻊ ﺑﺎز اﺳﺖ و داراي ﻣﺠﻤﻮﻋﻪ اي از دﺳﺘﻮرات اﺳﺖ‪.‬ﻣﻬﻤﺘﺮﯾﻦ و‬
‫ﺗﻨﻬﺎ روش ﺗﻌﯿﯿﻦ ﻓﻀﺎي ﻣﻮﺟﻮد در ‪ memory‬ﻓﯿﺰﯾﮑﯽ و ‪ memory‬ﻣﺒﺎدﻟﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن " ‪ " free‬اﺳﺖ‪.‬‬
‫دﺳﺘﻮر‪ " free " linux‬اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﻓﻀﺎي ﻣﻮرد اﺳﺘﻔﺎده و ﻓﻀﺎي ﻣﻮﺟﻮد ﻓﻀﺎي ‪ memory‬و ﻣﺒﺎدﻟﻪ‬
‫‪ memory‬را ﺑﺎ ﺑﺎﻓﺮ ﻫﺎﯾﯽ ﮐﻪ ﻫﺴﺘﻪ در ‪ / linux‬ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ ‪ system‬ﻋﺎﻣﻞ دارﻧﺪ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪ 10‬ﻣﺜﺎل ‪Linux Command Prompt‬‬


‫اﯾﻦ ﮐﺘﺎب ﺑﺮﺧﯽ از ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﻔﯿﺪي از دﺳﺘﻮرات "‪ " free‬ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎ را ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﻣﻔﯿﺪ ﺑﺎﺷﺪ‬
‫ﺑﺮاي اﺳﺘﻔﺎده ﺑﻬﺘﺮ از ‪ memory‬اي ﮐﻪ دارﯾﺪ دارﯾﺪ‪.‬‬
‫‪1.‬ﻧﻤﺎﯾﺶ ‪system memory‬‬
‫ﻓﺮﻣﺎن ‪ free‬ﺑﺮاي ﺑﺮرﺳﯽ ﻓﻀﺎي ﻣﻮرد اﺳﺘﻔﺎده و در دﺳﺘﺮس از ‪ memory‬ﻓﯿﺰﯾﮑﯽ و ‪ memory‬ﻣﺒﺎدﻟﻪ در ‪KB‬‬
‫اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬دﺳﺘﻮر زﯾﺮ را در زﯾﺮ ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫‪# free‬‬

‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬


‫‪Mem: 1021628 912548 109080 0 120368 655548‬‬
‫ﺑﺎﻓﺮ ‪ /‬ﮐﺶ‪- / + 884996 136632 :‬‬
‫ﺗﻌﻮﯾﺾ‪4194296 0 4194296 :‬‬

‫‪2.‬ﻧﻤﺎﯾﺶ ‪ memory‬در‪Bytes‬‬
‫ﻓﺮﻣﺎن آزاد ﺑﺎ ﮔﺰﯾﻨﻪ ‪-b‬ﻧﻤﺎﯾﺶ اﻧﺪازه ‪ memory‬در ‪Bytes .‬‬
‫‪# free -b‬‬

‫‪ cached‬ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‬


‫ﻧﻤﺎﯾﺶ ‪ memory‬در‪Kilo Bytes‬‬
‫ﻓﺮﻣﺎن آزاد ﺑﺎ ﮔﺰﯾﻨﻪ ‪ ،-k‬اﻧﺪازه ‪ memory‬را در ‪KB‬ﮐﯿﻠﻮﺑﺎﯾﺖ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪# free-k‬‬

‫‪94‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪95‬‬

‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬


‫‪4.‬ﻧﻤﺎﯾﺶ ‪ memory‬در ﻣﮕﺎﺑﺎﯾﺖ‬
‫ﺑﺮاي ﻣﺸﺎﻫﺪه اﻧﺪازه ‪ memory‬در ﻣﮕﺎﺑﺎﯾﺖ (ﻣﮕﺎﺑﺎﯾﺖ )از ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان ‪-m‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪# free -m‬‬
‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬
‫‪5.‬ﻧﻤﺎﯾﺶ ‪ memory‬در ﮔﯿﮕﺎﺑﺎﯾﺖ‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-g‬ﺑﺎ ﻓﺮﻣﺎن آزاد‪ ،‬اﻧﺪازه ‪ memory‬در ( ‪GB‬ﮔﯿﮕﺎﺑﺎﯾﺖ )ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪.‬‬
‫‪# free -g‬‬
‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬

‫‪6.‬ﻧﻤﺎﯾﺶ ﮐﻞ ﺧﻂ‬
‫ﻓﺮﻣﺎن آزاد ﺑﺎ ﮔﺰﯾﻨﻪ ‪ ،-t‬ﮐﻞ ﺧﻂ در اﻧﺘﻬﺎي ﻟﯿﺴﺖ را ﻟﯿﺴﺖ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪# free -t‬‬
‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬

‫‪7.‬ﻧﻤﺎﯾﺶ ﺧﻂ ﺗﻨﻈﯿﻢ ﺑﺎﻓﺮ را ﻏﯿﺮﻓﻌﺎل ﮐﻨﯿﺪ‬


‫ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪ ،‬ﻓﺮﻣﺎن آزاد ﻧﻤﺎﯾﺶ " ‪ " buffer adjusted‬ﺧﻂ‪ ،‬ﺑﺮاي ﻏﯿﺮ ﻓﻌﺎل ﮐﺮدن اﯾﻦ ﮔﺰﯾﻨﻪ اﺳﺘﻔﺎده از‬
‫ﺧﻂ ﺑﻪ ﻋﻨﻮان‪-o.‬‬
‫‪# free -o‬‬

‫‪8.‬وﺿﻌﯿﺖ ‪ memory‬ﻧﻤﺎﯾﺶ ﺑﺮاي ﻓﺎﺻﻠﻪ ﻫﺎي ﻣﻨﻈﻢ‬


‫ﮔﺰﯾﻨﻪ ‪-s‬ﺑﺎ ﺷﻤﺎره‪ ،‬ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ﺑﺮوزرﺳﺎﻧﯽ ﻓﺮﻣﺎن آزاد در ﻓﻮاﺻﻞ ﻣﻨﻈﻢ اﺳﺖ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﻓﺮﻣﺎن‬
‫آزاد ﻫﺮ ‪5‬ﺛﺎﻧﯿﻪ را ﺑﻪ روز ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪# free -s 5‬‬

‫‪ cached‬ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‬


‫‪9.‬ﻧﻤﺎﯾﺶ آﻣﺎر ﮐﻢ و زﯾﺎد ‪memory‬‬
‫ﺳﻮﺋﯿﭻ ‪-l‬اﻃﻼﻋﺎت آﻣﺎر ﮐﻢ ﺣﺠﻢ ‪ memory‬ﺑﺎﻻ و ﭘﺎﯾﯿﻦ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪# free -l‬‬

‫ﻣﺠﻤﻮع اﺳﺘﻔﺎده از ﺑﺎﻓﺮ ﻫﺎي ﺑﻪ اﺷﺘﺮاك ﮔﺬاﺷﺘﻪ ﺷﺪه ﺑﺎ اﺳﺘﻔﺎده از‪cached‬‬

‫‪95‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪96‬‬

‫‪10.‬ﻧﺴﺨﻪ ‪ free‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‬


‫ﮔﺰﯾﻨﻪ ‪ ،-V‬ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻧﺴﺨﻪ ﻓﺮﻣﺎن آزاد را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# free -V‬‬

‫ﻫﻤﺎﻧﻨﺪ ﻫﺮ ‪ system‬ﻋﺎﻣﻞ دﯾﮕﺮ‪ linux / gnu ،‬ﻣﺪﯾﺮﯾﺖ ‪ memory‬را ﺑﻪ ﺻﻮرت ﻣﻮﺛﺮ و ﺣﺘﯽ ﺑﯿﺸﺘﺮ از آن اﺟﺮا‬
‫ﮐﺮده اﺳﺖ‪.‬اﻣﺎ اﮔﺮ ﻓﺮاﯾﻨﺪ ‪ memory‬ﺧﻮد را از ﺑﯿﻦ ﺑﺒﺮد و ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﯿﺪ آن را ﭘﺎك ﮐﻨﯿﺪ‪ linux ،‬راﻫﯽ ﺑﺮاي ﭘﺎك‬
‫ﮐﺮدن ﯾﺎ ﭘﺎك ﮐﺮدن ‪ memory‬ﮐﺶ اﺳﺖ‪.‬‬

‫ﻧﺤﻮه ﭘﺎك ﮐﺮدن ‪ Swap Space‬در ‪linux‬؟‬


‫اﮔﺮ ﻣﯿﺨﻮاﻫﯿﺪ ﻓﺎﺻﻠﻪ ‪ Swap‬را ﭘﺎك ﮐﻨﯿﺪ‪ ،‬دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪# swapoff -a && swapon -a‬‬

‫ﭘﺲ از ﺗﺴﺖ ﻫﺮ دو دﺳﺘﻮر ﻓﻮق‪ ،‬ﻓﺮﻣﺎن " ‪ " free -h‬را ﻗﺒﻞ و ﺑﻌﺪ از اﺟﺮاي اﺳﮑﺮﯾﭙﺖ اﺟﺮا ﺧﻮاﻫﯿﻢ ﮐﺮد و ‪ cache‬را‬
‫ﺑﺮرﺳﯽ ﺧﻮاﻫﯿﻢ ﮐﺮد‪.‬‬

‫‪96‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪97‬‬

‫ﻧﺤﻮه ﺗﻨﻈﯿﻢ ﯾﺎ ﺗﻐﯿﯿﺮ ﻧﺎم ‪ hostsystem‬در ‪linux‬‬


‫دﺳﺘﮕﺎه ﯾﺎ ﻧﺎم ‪ hostsystem‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺗﺎ ﺑﻪ راﺣﺘﯽ دﺳﺘﮕﺎه را در ﯾﮏ ﺷﺒﮑﻪ در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن‬
‫ﺗﺸﺨﯿﺺ دﻫﺪ‪.‬ﺟﺎي ﺗﻌﺠﺐ ﻧﯿﺴﺖ‪ ،‬اﻣﺎ در ‪ ،linux system‬ﻧﺎم ‪host‬را ﻣﯽ ﺗﻮان ﺑﻪ راﺣﺘﯽ ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن ﺳﺎده‬
‫ﺑﻪ ﻋﻨﻮان " ﻧﺎم ﻣﯿﺰﺑﺎن "ﺗﻐﯿﯿﺮ داد‪.‬‬
‫ﻧﺎم ‪host‬ﺧﻮد را ﺑﻪ ﺻﻮرت ﺑﺪون ﻫﯿﭻ ﭘﺎراﻣﺘﺮي‪ ،‬ﻧﺎم ‪ hostsystem‬ﻋﺎﻣﻞ ‪ linux‬ﺧﻮد را ﺑﻪ اﯾﻦ ﺻﻮرت ﻧﺸﺎن ﻣﯽ‬
‫دﻫﺪ‪:‬‬
‫‪$ hostname‬‬
‫‪hosein‬‬
‫اﮔﺮ ﻣﯿﺨﻮاﻫﯿﺪ ﻧﺎم ‪ linux hostsystem‬ﺧﻮد را ﺗﻐﯿﯿﺮ دﻫﯿﺪ ﯾﺎ ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‪ ،‬ﺑﻪ ﺳﺎدﮔﯽ اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪$ hostname NEW_HOSTNAME‬‬
‫اﻟﺒﺘﻪ‪ ،‬ﺷﻤﺎ ﺑﺎﯾﺪ "‪"NEW_HOSTNAME‬را ﺑﺎ ﻧﺎم ‪host‬واﻗﻌﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‪ ،‬ﺟﺎﯾﮕﺰﯾﻦ ﮐﻨﯿﺪ‪.‬اﯾﻦ‬
‫ﻧﺎم ‪ hostsystem‬ﺷﻤﺎ را ﺑﻼﻓﺎﺻﻠﻪ ﺗﻐﯿﯿﺮ ﻣﯽ دﻫﺪ‪ ،‬اﻣﺎ ﯾﮏ ﻣﺸﮑﻞ وﺟﻮد دارد ‪ -‬ﻧﺎم اﺻﻠﯽ اﺻﻠﯽ ﺑﻌﺪ از ‪restart‬‬
‫دوﺑﺎره ﺑﺎزﯾﺎﺑﯽ ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫راه دﯾﮕﺮي ﺑﺮاي ﺗﻐﯿﯿﺮ ﻧﺎم ‪ hostsystem‬ﺷﻤﺎ وﺟﻮد دارد ‪ -‬ﺑﻪ ﻃﻮر داﺋﻤﯽ‪.‬ﺷﻤﺎ ﻣﻤﮑﻦ اﺳﺖ ﻗﺒﻼ آن را ﮐﺸﻒ ﮐﺮده‬
‫ﺑﺎﺷﯿﺪ ﮐﻪ در ﺑﺮﺧﯽ از ﻓﺎﯾﻞ ﻫﺎي ﺗﻨﻈﯿﻤﺎت ﻧﯿﺎز ﺑﻪ ﺗﻐﯿﯿﺮ دارد و ﺷﻤﺎ درﺳﺖ ﻣﯽ ﺷﻮﯾﺪ‪.‬‬
‫ﻧﺎم ‪ hostsystem‬داﺋﻤﯽ در ‪linux‬‬
‫ﻧﺴﺨﻪ ﺟﺪﯾﺪﺗﺮ ﺗﻮزﯾﻌﻬﺎي ‪ linux‬ﻣﺎﻧﻨﺪ آﺧﺮﯾﻦ ‪RedHat ،Fedora ،CentOS ،Debian ،Ubuntu‬و ﻏﯿﺮه ﺑﺎ‬
‫‪ ،SystemD‬ﯾﮏ ‪ system‬و ﻣﺪﯾﺮﯾﺖ ﺳﺮوﯾﺲ اﺳﺖ ﮐﻪ دﺳﺘﻮر ‪commandnamectl‬را ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ﻧﺎم‬
‫‪host‬در ‪ linux‬ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺑﺮاي ﺗﻨﻈﯿﻢ ﻧﺎم ‪ hostsystem‬در ﺗﻮزﯾﻌﻬﺎي ﻣﺒﺘﻨﯽ ﺑﺮ ‪ ،SystemD‬از دﺳﺘﻮر ‪hostnamectl‬ﺑﻪ ﻋﻨﻮان ﻧﺸﺎن داده‬
‫ﺷﺪه اﺳﺘﻔﺎده ﺧﻮاﻫﯿﻢ ﮐﺮد‪:‬‬
‫‪$ sudo hostnamectl‬‬ ‫‪host NEW_HOSTNAME‬‬
‫ﺑﺮاي ﺗﻮزﯾﻊ ﻫﺎي ﻗﺪﯾﻤﯽ ﺗﺮ ‪ linux‬ﮐﻪ ‪SysVinit‬را در ‪init short‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﻨﺪ ﻧﺎم ﻫﺎي‬
‫‪host‬ﺧﻮد را ﺑﺎ ﺗﻐﯿﯿﺮ دادن ﻧﺎم ﭘﺮوﻧﺪه ﻫﺎي ‪host‬در ﺳﺎﯾﺖ ﺗﻐﯿﯿﺮ دﻫﻨﺪ‪.‬‬
‫‪# vi / etc / hostname‬‬
‫ﭘﺲ از آن ﺷﻤﺎ ﺑﺎﯾﺪ ﯾﮏ رﮐﻮرد دﯾﮕﺮ ﺑﺮاي ﻧﺎم ‪host‬را وارد ﮐﻨﯿﺪ‪:‬‬
‫‪# vi / etc / hosts‬‬
‫‪127.0.0.1 hosein‬‬
‫ﺳﭙﺲ ﺷﻤﺎ ﺑﺎﯾﺪ اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪# /etc/init.d/hostname restart‬‬

‫‪97‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 98

:‫ﺑﺎ اﺻﻼح ﺗﻐﯿﯿﺮ ﻣﯽ ﮐﻨﺪ‬host ‫ ﻧﺎم‬،‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ‬init ‫ﮐﻪ از‬RHEL / CentOS ‫ ﻫﺎي ﻣﺒﺘﻨﯽ ﺑﺮ‬system ‫در‬
# vi / etc / sysconfig / network
:‫در اﯾﻨﺠﺎ ﯾﮏ ﻧﻤﻮﻧﻪ از آن ﻓﺎﯾﻞ وﺟﻮد دارد‬
/ etc / sysconfig / network
NETWORKING = yes
HOSTNAME = " hosein .com"
GATEWAY = "192.168.0.1"
GATEWAYDEV = "eth0"
FORWARD_IPV4 = "yes"
.‫ﺧﻮد ﺗﻐﯿﯿﺮ دﻫﯿﺪ‬host ‫"ﺑﻪ ﯾﮑﯽ از ﻧﺎم‬HOSTNAME" ‫ ﻣﻘﺪار در ﮐﻨﺎر‬،‫داﺋﻤﯽ‬host ‫ﺑﺮاي ﻧﮕﻪ داﺷﺘﻦ ﻧﺎم‬

98
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪99‬‬

‫درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﭘﺮدازﻧﺪه‬


‫‪1.‬درﯾﺎﻓﺖ اﻃﻼﻋﺎت ‪ CPU‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪cat‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ ﺳﺎدﮔﯽ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ‪ CPU system‬ﺧﻮد را ﺑﺎ ﻣﺸﺎﻫﺪه ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ‪/ proc /‬‬
‫‪cpuinfo‬ﺑﺎ ﮐﻤﮏ دﺳﺘﻮر‪ cat‬ﺑﻪ ﺻﻮرت زﯾﺮ ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪:‬‬
‫‪$ cat / proc / cpuinfo‬‬
‫ﻫﺴﺘﻪ ﻫﺎي ﺷﺨﺼﯽ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪$ cat / proc / cpuinfo | grep 'core id' #‬‬
‫اﻃﻼﻋﺎت ‪architect CPU‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪lscpu‬‬
‫دﺳﺘﻮر ‪lscpu‬اﻃﻼﻋﺎت ‪ architect‬ﭘﺮدازﻧﺪه را از ‪sysfs‬و ‪/ proc / cpuinfo‬ﭼﺎپ ﻣﯽ ﮐﻨﺪ ﻫﻤﺎﻧﻄﻮر ﮐﻪ در زﯾﺮ‬
‫ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬
‫‪$ lscpu‬‬
‫‪ architect‬ﭘﺮدازﻧﺪه ‪linux‬‬
‫ﭘﺮدازﻧﺪه ‪ x86‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪cpuid‬‬

‫ﻓﺮﻣﺎن ‪cpuid‬اﻃﻼﻋﺎت ﮐﺎﻣﻠﯽ از( ‪ CPU‬ﻫﺎ( ﺟﻤﻊ آوري ﺷﺪه از دﺳﺘﻮر ‪ CPUID‬را ﺗﺨﻠﯿﻪ ﻣﯽ ﮐﻨﺪ و ﻫﻤﭽﻨﯿﻦ‬
‫ﻣﺪل دﻗﯿﻖ ﭘﺮدازﻧﺪه ﻫﺎي ‪ x86‬از آن اﻃﻼﻋﺎت را ﮐﺸﻒ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫اﻃﻤﯿﻨﺎن ﺣﺎﺻﻞ ﮐﻨﯿﺪ ﻗﺒﻞ از اﺟﺮاي آن ‪ install‬ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt install cpuid‬‬
‫‪$ sudo yum install cpuid‬‬
‫‪$ sudo dnf install cpuid‬‬
‫ﭘﺲ از ‪cpuid ،install‬را اﺟﺮا ﮐﻨﯿﺪ ﺗﺎ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﭘﺮدازﻧﺪه ‪ x86‬را ﺟﻤﻊ آوري ﮐﻨﯿﺪ‪.‬‬
‫‪$ cpuid‬‬
‫‪.‬دﺳﺘﻮر ‪ dmidecode -‬اﻃﻼﻋﺎت ‪ linux‬ﺳﺨﺖ اﻓﺰار را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪dmidecode‬ﯾﮏ اﺑﺰار ﺑﺮاي ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ﻫﺮ ‪ linux system‬اﺳﺖ‪.‬اﯾﻦ ﻣﺤﺘﻮﯾﺎت ﺟﺪول ‪DMI‬‬
‫ﮐﺎﻣﭙﯿﻮﺗﺮ )ﻣﻌﺮوف ﺑﻪ )‪ SMBIOS‬را در ﻓﺮﻣﺖ ﻗﺎﺑﻞ ﺧﻮاﻧﺪن اﻧﺴﺎن ﺑﺮاي ﺑﺎزﯾﺎﺑﯽ آﺳﺎن ﻣﯽ ﮔﯿﺮد‪.‬ﻣﺸﺨﺼﺎت‬
‫‪SMBIOS‬اﻧﻮاع ﻣﺨﺘﻠﻒ ‪ DMI‬را ﺑﺮاي ﭘﺮدازﻧﺪه ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ و از ﭘﺮدازﻧﺪه ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪:‬‬
‫‪ $ sudo dmidecode -‬ﻧﻮع ﭘﺮدازﻧﺪه‬
‫اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ‪ linux‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪# dmidecode 3.0‬‬

‫‪99‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪100‬‬

‫‪Inxi Tool‬‬
‫‪ Inxi‬ﯾﮏ اﺳﮑﺮﯾﭙﺖ اﻃﻼﻋﺎﺗﯽ ﻗﺪرﺗﻤﻨﺪ ‪ system‬ﺧﻂ ﻓﺮﻣﺎن در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه ﺑﺮاي ﮐﻨﺴﻮل و ‪IRC (Chat‬‬
‫)‪Relay Relay‬اﺳﺖ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از آن ﺑﺮاي ﻓﻮرا ﺑﺎزﯾﺎﺑﯽ اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ ﺻﻮرت زﯾﺮ ‪ install‬ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt install inxi‬‬
‫‪$ sudo yum install inxi‬‬
‫‪$ sudo dnf install inxi‬‬
‫ﺑﺮاي ﻧﺸﺎن دادن اﻃﻼﻋﺎت ‪ CPU‬ﮐﺎﻣﻞ‪ ،‬از ﺟﻤﻠﻪ در ﻫﺮ ﺳﺮﻋﺖ ‪ CPU‬ﺳﺮﻋﺖ و ﺳﺮﻋﺖ ﺣﺪاﮐﺜﺮ( ‪ CPU‬در ﺻﻮرت‬
‫ﻣﻮﺟﻮد ﺑﻮدن(‪ ،‬از ﭘﺮﭼﻢ ‪-C‬ﺑﻪ ﻋﻨﻮان زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪$ inxi -C‬‬
‫اﻃﻼﻋﺎت ‪ linux system‬را ﭼﺎپ ﮐﻨﯿﺪ‬
‫ﭘﺮدازﻧﺪه‪ :‬دو ﻫﺴﺘﻪ اي‪Intel Core i5-4210U (-HT-MCP-) cache: 3072 KB‬‬
‫ﺳﺮﻋﺖ ﺳﺎﻋﺖ‪ :‬ﺣﺪاﮐﺜﺮ‪ 2700 :‬ﻣﮕﺎﻫﺮﺗﺰ ‪ 1958 :1‬ﻣﮕﺎﻫﺮﺗﺰ ‪ 1993 :2‬ﻣﮕﺎﻫﺮﺗﺰ ‪ 1775 :3‬ﻣﮕﺎﻫﺮﺗﺰ ‪ 1714 :4‬ﻣﮕﺎﻫﺮﺗﺰ‬

‫‪6. lshw Tool -‬ﭘﯿﮑﺮﺑﻨﺪي ﺳﺨﺖ اﻓﺰار ﻓﻬﺮﺳﺖ‬


‫‪lshw‬اﺑﺰار ﮐﻤﮑﯽ ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت ﻋﻤﯿﻖ در ﺗﻨﻈﯿﻤﺎت ﺳﺨﺖ اﻓﺰاري ﮐﺎﻣﭙﯿﻮﺗﺮ اﺳﺖ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از‬
‫ﮔﺰﯾﻨﻪ ‪-C‬ﺑﺮاي اﻧﺘﺨﺎب ﮐﻼس ﺳﺨﺖ اﻓﺰار‪CPU ،‬در اﯾﻦ ﻣﻮرد اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo lshw -C CPU‬‬
‫‪hardinfo‬‬
‫اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري در ‪ GTK + Window‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪hardinfo‬اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري را در ﯾﮏ ﭘﻨﺠﺮه ‪ GTK +‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪ ،‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ آن را ﺑﻪ ﺻﻮرت زﯾﺮ‬
‫‪ install‬ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt install hardinfo‬‬
‫‪$ sudo yum install hardinfo‬‬
‫‪$ sudo dnf install hardinfo‬‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ آن را ‪ install‬ﮐﺮده اﯾﺪ‪ ،‬ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪$ hardinfo‬‬

‫‪100‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪101‬‬

‫اﻃﻼﻋﺎت ‪linux system‬‬


‫اﯾﻦ ﻫﻤﭽﻨﯿﻦ ﺷﻤﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزد ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﮔﺰارش ﺳﺨﺖ اﻓﺰاري ‪ system‬ﺑﺎ ﮐﻠﯿﮏ ﺑﺮ روي " اﯾﺠﺎد‬
‫ﮔﺰارش "را ﻓﺸﺎر دﻫﯿﺪ‪.‬از راﺑﻂ زﯾﺮ‪ ،‬روي " ‪ " Generate‬ﮐﻠﯿﮏ ﮐﻨﯿﺪ ﺗﺎ اداﻣﻪ ﯾﺎﺑﺪ‪.‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﯿﺪ‬
‫اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري ﻣﻮرد ﻧﯿﺎز را ﺗﻮﻟﯿﺪ ﮐﻨﯿﺪ‪.‬‬

‫‪101‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪102‬‬

‫ﮔﺰارش ﮔﺰارش ‪ system‬را ﺗﻮﻟﯿﺪ ﮐﻨﯿﺪ‬


‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ اﯾﻦ ﮔﺰارش را در ﻗﺎﻟﺐ ‪ HTML‬اﯾﺠﺎد ﻣﯽ ﮐﻨﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ آن را از ﯾﮏ ﻣﺮورﮔﺮ وب ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ ﮐﻪ‬
‫در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬

‫‪102‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪103‬‬

‫اﻃﻼﻋﺎت ‪linux system‬‬


‫‪8. hwinfo -‬اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﻣﻮرد ﺳﺨﺖ اﻓﺰار را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪hwinfo‬ﺑﺮاي اﺳﺘﺨﺮاج اﻃﻼﻋﺎت در ﻣﻮرد ﺳﺨﺖ اﻓﺰار ﻣﻮﺟﻮد در ﯾﮏ ‪ linux system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺮاي‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ‪ CPU‬ﺧﻮد از ‪ cpu‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬
‫‪$ hwinfo - cpu‬‬

‫‪nproc‬‬
‫دﺳﺘﻮر ‪nproc‬ﺑﺮاي ﻧﺸﺎن دادن ﺗﻌﺪاد ﭘﺮدازﻧﺪه ﻣﻮﺟﻮد در راﯾﺎﻧﻪ ﺷﻤﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪$ nproc‬‬
‫ﺑﺮاي اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ و ﮔﺰﯾﻨﻪ ﻫﺎي اﺳﺘﻔﺎده‪ ،‬از ﻃﺮﯾﻖ ﺻﻔﺤﺎت ﻣﺮداﻧﻪ اﯾﻦ دﺳﺘﻮرات ﻣﺎﻧﻨﺪ اﯾﻦ را ﺑﺨﻮاﻧﯿﺪ‪:‬‬
‫‪$ man commandname‬‬

‫‪103‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪104‬‬

‫‪Cpustat‬‬
‫اﺳﺘﻔﺎده از ‪ CPU‬را ﺑﺎ ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا در ‪linux‬‬
‫‪Cpustat‬ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﻗﺪرﺗﻤﻨﺪ ﺑﺮاي اﻧﺪازه ﮔﯿﺮي ﻋﻤﻠﮑﺮد ‪ system‬ﺑﺮاي ‪ linux‬اﺳﺖ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از زﺑﺎن ﺑﺮﻧﺎﻣﻪ‬
‫ﻧﻮﯾﺴﯽ‪ Go‬ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪ .‬اﯾﻦ ﺗﻼش ﺑﺮاي ﻧﺸﺎن دادن اﺳﺘﻔﺎده از ‪ CPU‬و اﺷﺒﺎع در ﯾﮏ روش ﻣﻮﺛﺮ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از‬
‫روش اﺷﺒﺎع و ﺧﻄﺎﻫﺎي اﺳﺘﻔﺎده( )‪ (USE‬روش ﺑﺮاي ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ ﻋﻤﻠﮑﺮد ﻫﺮ ‪system).‬‬
‫اﯾﻦ ﻧﻤﻮﻧﻪ ﻫﺎي ﻓﺮﮐﺎﻧﺲ ﺑﺎﻻﺗﺮ از ﻫﺮ ﻓﺮآﯾﻨﺪي ﮐﻪ در ‪ system‬اﺟﺮا ﻣﯽ ﺷﻮد را اﺳﺘﺨﺮاج ﻣﯽ ﮐﻨﺪ و ﺳﭙﺲ اﯾﻦ ﻧﻤﻮﻧﻪ‬
‫ﻫﺎ را ﺑﺎ ﻓﺮﮐﺎﻧﺲ ﭘﺎﯾﯿﻦ ﺗﺮ ﺧﻼﺻﻪ ﻣﯽ ﮐﻨﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻣﯽ ﺗﻮاﻧﺪ ﻫﺮ ﻓﺮاﯾﻨﺪ را ﻫﺮ ‪200ms‬اﻧﺪازه ﮔﯿﺮي ﮐﻨﺪ و ﻫﺮ‬
‫‪5‬ﺛﺎﻧﯿﻪ اﯾﻦ ﻧﻤﻮﻧﻪ ﻫﺎ را ﺧﻼﺻﻪ ﮐﻨﺪ‪ ،‬از ﺟﻤﻠﻪ ﻣﻘﺎدﯾﺮ ‪ min / average / max‬ﺑﺮاي ﻣﻌﯿﺎرﻫﺎي ﺧﺎص‪.‬‬
‫داده ﻫﺎي ﺧﺮوﺟﯽ ‪Cpustat‬را ﺑﻪ دو روش ﻣﻤﮑﻦ اراﺋﻪ ﻣﯽ دﻫﺪ‪ :‬ﯾﮏ ﻟﯿﺴﺖ ﺧﺎﻟﺺ ﻣﺘﻦ از ﻓﺎﺻﻠﻪ ﺧﻼﺻﻪ و داﺷﺒﻮرد‬
‫ﭘﯿﻤﺎﯾﺶ رﻧﮕﯽ ﻫﺮ ﻧﻤﻮﻧﻪ‪.‬‬
‫ﻧﺤﻮه ‪install Cpustat‬در ‪ linux‬ﺑﻪ ادرس زﯾﺮ ﻣﺮاﺟﻌﻪ ﻧﻤﺎﯾﯿﺪ‪.‬‬

‫‪github.com/uber-common/cpustat‬‬

‫‪Cpustat -‬ﻧﻈﺎرت ﺑﺮ اﺳﺘﻔﺎده از ‪linux CPU‬‬

‫‪104‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪105‬‬

‫ﻧﺤﻮه ﻧﺼﺐ ‪CoreFreq‬‬


‫ﺑﺮاي ‪CoreFreq install‬اﺑﺘﺪا ﺑﺎﯾﺪ ﭘﯿﺶ ﻧﯿﺎزﻫﺎ ( اﺑﺰار ﺗﻮﺳﻌﻪ )را ﺑﺮاي ﮐﺎﻣﭙﺎﯾﻞ و ﺳﺎﺧﺖ ﺑﺮﻧﺎﻣﻪ از ﻣﻨﺒﻊ ﺗﻬﯿﻪ ﮐﻨﯿﺪ‪.‬‬
‫'‪$ sudo dnf group install 'Tools Development‬‬
‫‪# sudo apt install‬‬

‫‪dkms git libpthread-stubs0-dev‬‬

‫ﺳﺎﺧﺖ ﺑﺮﻧﺎﻣﻪ ‪CoreFreq‬‬


‫ﺗﻮﺟﻪ ‪:‬ﮐﺎرﺑﺮان ‪ Arch Linux‬ﻣﯽ ﺗﻮاﻧﻨﺪ ‪corefreq-git‬رااز‪ AUR install‬ﮐﻨﻨﺪ‪.‬‬
‫ﺣﺎﻻ دﺳﺘﻮرات زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ ﺗﺎ ﻣﺎژول ﻫﺴﺘﻪ ‪ linux‬را از داﯾﺮﮐﺘﻮري ﻣﺤﻠﯽ ﺑﺠﺎي دﯾﻤﻮن ﺑﺎرﮔﺬاري ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo insmod corefreqk.ko‬‬
‫‪$ sudo ./corefreqd‬‬
‫ﺳﭙﺲ‪ ،‬ﻣﺸﺘﺮي را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮐﺎرﺑﺮ ﺷﺮوع ﮐﻨﯿﺪ‪.‬‬
‫‪$ ./corefreq-cli‬‬
‫ﻧﻈﺎرت ﺑﺮ ‪ CPU‬ﺑﺎ ‪CoreFreq‬‬
‫از راﺑﻂ ﮐﺎرﺑﺮي ﺑﺎﻻ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﮐﻠﯿﺪ ﻫﺎي ﻣﯿﺎﻧﺒﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪F2‬ﺑﺮاي ﻧﻤﺎﯾﺶ ﯾﮏ ﻣﻨﻮ اﺳﺘﻔﺎده ﺑﻪ ﻋﻨﻮان در ﺑﺨﺶ ﺑﺎﻻ از ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ دﯾﺪه ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.1‬‬
‫‪Right‬و ‪Left‬ﻓﻠﺶ ﺑﻪ ﺣﺮﮐﺖ در زﺑﺎﻧﻪ ﻣﻨﻮ‪.‬‬ ‫‪.2‬‬
‫ﻓﻠﺶ ﻫﺎي ‪Up‬و ‪Down‬ﺑﺮاي اﻧﺘﺨﺎب ﯾﮏ آﯾﺘﻢ ﻣﻨﻮ‪ ،‬ﺳﭙﺲ روي ] ‪ [ Enter‬ﮐﻠﯿﮏ ﮐﻨﯿﺪ‪.‬‬ ‫‪.3‬‬
‫‪F4‬ﺑﺮﻧﺎﻣﻪ را ﺑﺴﺘﻪ ﺧﻮاﻫﺪ ﮐﺮد‪.‬‬ ‫‪.4‬‬
‫ﯾﮏ ﻣﺮﺟﻊ ﺳﺮﯾﻊ ﺑﺎز ﺧﻮاﻫﺪ ﮐﺮد‪.‬‬ ‫‪.5‬‬
‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﮔﺰﯾﻨﻪ ﻫﺎي اﺳﺘﻔﺎده‪ ،‬دﺳﺘﻮر زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪$ ./corefreq-cli -h‬‬
‫ﺑﺮاي ﭼﺎپ اﻃﻼﻋﺎت در ﻣﻮرد ﻫﺴﺘﻪ‪ ،‬اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪$ ./corefreq-cli -k‬‬
‫ﺟﺰﺋﯿﺎت ﺷﻨﺎﺳﺎﯾﯽ ﭘﺮدازﻧﺪه‪:‬‬
‫‪$ ./corefreq-cli -u‬‬
‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ دﺳﺘﻮرات ‪ CPU‬را در زﻣﺎن واﻗﻌﯽ ﻧﻈﺎرت ﮐﻨﯿﺪ‪:‬‬
‫‪$ ./corefreq-cli -i‬‬
‫ردﯾﺎﺑﯽ ﺷﻤﺎرﻧﺪه ﻫﺎ را ﺑﻪ ﺻﻮرت زﯾﺮ ﻓﻌﺎل ﮐﻨﯿﺪ‪:‬‬
‫‪$ ./corefreq-cli -c‬‬

‫‪105‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪106‬‬

‫ﯾﺎﻓﺘﻦ ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا ﺑﺎ اﺳﺘﻔﺎده از ﺑﺎﻻﺗﺮﯾﻦ ‪ memory‬و ‪ CPU‬در ‪linux‬‬


‫ﻣﻦ ﯾﮏ ﺑﺎر ﺧﻮاﻧﺪم ﮐﻪ ﻣﺪﯾﺮان ‪ system‬ﮐﺎرآﻣﺪ‪ ،‬اﻓﺮاد ﺗﻨﺒﻞ ﻫﺴﺘﻨﺪ‪.‬دﻟﯿﻞ اﯾﻦ اﺳﺖ ﮐﻪ آﻧﻬﺎ ﮐﺎرﺷﺎن را اﻧﺠﺎم ﻧﻤﯽ‬
‫دﻫﻨﺪ و ﯾﺎ وﻗﺖ ﺧﻮد را ﻫﺪر ﻧﻤﯽ دﻫﻨﺪ ‪ -‬اﯾﻦ ﻋﻤﺪﺗﺎ ﺑﻪ اﯾﻦ دﻟﯿﻞ اﺳﺖ ﮐﻪ آﻧﻬﺎ ﯾﮏ ﻣﻌﺎﻣﻠﻪ ﺧﻮب از وﻇﺎﯾﻒ روزﻣﺮه‬
‫ﺧﻮد را ﺑﻪ ﺻﻮرت ﺧﻮدﮐﺎر اﻧﺠﺎم ﻣﯽ دﻫﻨﺪ‪.‬ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ‪ ،‬آﻧﻬﺎ ﻣﺠﺒﻮر ﻧﯿﺴﺘﻨﺪ ﺳﺮورﻫﺎي ﺧﻮد را ﺑﺎرور ﮐﻨﻨﺪ و از وﻗﺖ‬
‫ﺧﻮد ﺑﺮاي ﯾﺎدﮔﯿﺮي ﻓﻨﺎوري ﻫﺎي ﺟﺪﯾﺪ اﺳﺘﻔﺎده ﮐﻨﻨﺪ و ﻫﻤﯿﺸﻪ در ﺑﺎﻻي ﺑﺎزي ﺣﻀﻮر داﺷﺘﻪ ﺑﺎﺷﻨﺪ‪.‬‬
‫ﺑﺨﺸﯽ از ﺧﻮدﮐﺎر ﺳﺎزي وﻇﺎﯾﻒ ﺷﻤﺎ‪ ،‬ﯾﺎدﮔﯿﺮي ﻧﺤﻮه درﯾﺎﻓﺖ ﯾﮏ اﺳﮑﺮﯾﭙﺖ اﻧﺠﺎم ﮐﺎرﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﺷﻤﺎ ﺑﺎﯾﺪ در ﻏﯿﺮ‬
‫اﯾﻦ ﺻﻮرت اﻧﺠﺎم دﻫﯿﺪ‪.‬ﺑﻪ ﻃﻮر ﻣﺪاوم اﺿﺎﻓﻪ ﮐﺮدن دﺳﺘﻮرات ﺑﻪ ﭘﺎﯾﮕﺎه داﻧﺶ ﺧﻮد را ﺑﻪ ﻫﻤﺎن اﻧﺪازه ﻣﻬﻢ اﺳﺖ‪.‬‬
‫ﺑﻪ ﻫﻤﯿﻦ دﻟﯿﻞ‪ ،‬در اﯾﻦ ﮐﺘﺎب ﻣﺎ ﯾﮏ ﺗﺮﻓﻨﺪ ﺑﺮاي ‪ ،find‬ﮐﻪ ﻓﺮآﯾﻨﺪﻫﺎي ﻣﺼﺮف ﻣﻘﺪار زﯾﺎدي از ‪ memory‬و اﺳﺘﻔﺎده‬
‫از ﭘﺮدازﻧﺪه در ‪ linux‬را ﺑﻪ اﺷﺘﺮاك ﺑﮕﺬارﯾﺪ‪.‬‬

‫‪ find‬ﻓﺮآﯾﻨﺪﻫﺎي ‪ linux‬ﺑﺎ اﺳﺘﻔﺎده از ‪ RAM‬و ‪CPU‬‬

‫ﺑﺮرﺳﯽ ﻓﺮآﯾﻨﺪﻫﺎي ﺑﺎﻻ ﻣﺮﺗﺐ ﺷﺪه ﺑﺮ اﺳﺎس ‪ RAM‬ﯾﺎ ‪ CPU Usage‬در ‪linux‬‬
‫دﺳﺘﻮر زﯾﺮ ﻟﯿﺴﺘﯽ از ﻓﺮآﯾﻨﺪﻫﺎي ﺑﺎﻻ را ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ اﺳﺘﻔﺎده از ‪ RAM‬و ‪ CPU‬در ﻧﺴﻞ ﺑﻌﺪي ﻧﺸﺎن ﻣﯽ دﻫﺪ )اﮔﺮ‬
‫ﺑﺨﻮاﻫﯿﺪ ﻟﯿﺴﺖ ﮐﺎﻣﻞ را ﺑﺒﯿﻨﯿﺪ ﺧﻂ ﻟﻮﻟﻪ و ﺳﺮ را ﺑﺮدارﯾﺪ‪):‬‬
‫‪# ps -eo pid ،ppid ،cmd٪،mem٪،cpu‬‬ ‫‪--sort = -٪mem |head‬‬

‫ﺧﺮوﺟﯽ ﻧﻤﻮﻧﻪ‬

‫ﯾﺎﻓﺘﻦ ﻓﺮآﯾﻨﺪﻫﺎي ﺑﺎﻻ ﺑﺎ اﺳﺘﻔﺎده از ‪ RAM‬و ‪CPU‬‬

‫‪106‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪107‬‬

‫ﺷﺮح ﻣﺨﺘﺼﺮي از ﮔﺰﯾﻨﻪ ﻫﺎي ﻓﻮق اﺳﺘﻔﺎده ﺷﺪه در ﻓﺮﻣﺎن ﺑﺎﻻ‪.‬‬


‫ﮔﺰﯾﻨﻪ ( ‪-o‬ﯾﺎ ‪-format ) ps‬اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﻓﺮﻣﺖ ﺧﺮوﺟﯽ را ﻣﺸﺨﺺ ﮐﻨﯿﺪ‪.‬ﯾﮑﯽ از دﻻﯾﻞ ﻣﻦ اﯾﻦ اﺳﺖ ﮐﻪ ﻧﺸﺎن‬
‫ﻣﯽ دﻫﺪ ) ‪ ،PPIDs ( pid ) ،PIDs ( pid‬ﻧﺎم ﻓﺎﯾﻞ اﺟﺮاﯾﯽ ﻣﺮﺗﺒﻂ ﺑﺎ ﻓﺮآﯾﻨﺪ ) ‪ ( cmd‬و اﺳﺘﻔﺎده از ‪ RAM‬و‬
‫‪CPU ( %mem‬و ‪%cpu‬ﺑﻪ ﺗﺮﺗﯿﺐ‪).‬‬
‫ﻋﻼوه ﺑﺮ اﯾﻦ‪ ،‬ﻣﻦ از ﻣﺮﺗﺐ ﮐﺮدن ﺑﺮاﺳﺎس ‪%mem‬ﯾﺎ ‪%cpu .‬ﺑﻪ ﻃﻮر ﭘﯿﺸﻔﺮض‪ ،‬ﺧﺮوﺟﯽ در ﺷﮑﻞ ﺻﻌﻮدي ﻃﺒﻘﻪ‬
‫ﺑﻨﺪي ﻣﯽ ﺷﻮد‪ ،‬اﻣﺎ ﻣﻦ ﺷﺨﺼﺎ ﺗﺮﺟﯿﺢ ﻣﯽ دﻫﻢ ﮐﻪ اﯾﻦ ﻧﻈﻢ را ﺑﺎ اﺿﺎﻓﻪ ﮐﺮدن ﻋﻼﻣﺖ ﻣﻨﻔﯽ در ﻣﻘﺎﺑﻞ ﻣﻌﯿﺎر ﻣﺮﺗﺐ‬
‫ﺳﺎزي ﻣﻌﮑﻮس ﮐﻨﻢ‪.‬‬

‫‪I-Nex‬‬
‫ﯾﮏ اﺑﺰار ﭘﯿﺸﺮﻓﺘﻪ ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت ‪ / system‬ﺳﺨﺖ اﻓﺰار در ‪linux‬‬
‫ﻋﻼوه ﺑﺮ اﯾﻦ ﻣﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﻢ ﮔﺰارش ﭘﯿﺸﺮﻓﺘﻪ اي ﺗﻮﻟﯿﺪ ﮐﻨﯿﻢ و ﺻﻔﺤﻪ اي از ﻫﺮ ﺑﺮگ را ﭼﺎپ ﮐﻨﯿﻢ‪.‬اﺑﺰار ‪I-‬‬
‫‪Nex‬ﺟﺰﺋﯿﺎت را ﺑﻪ ﺻﻮرت ﺳﺎزﻣﺎن ﯾﺎﻓﺘﻪ و ﻫﻤﭽﻨﯿﻦ زﻣﺎن واﻗﻌﯽ ‪ CPU‬و اﺳﺘﻔﺎده از ‪ memory‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫وﯾﮋﮔﯽ ﻫﺎي‪I-Nex‬‬
‫اﻃﻼﻋﺎت ﭘﺮدازﻧﺪه‬ ‫‪.1‬‬
‫اﻃﻼﻋﺎت ﮔﺮاﻓﯿﮑﯽ‬ ‫‪.2‬‬
‫ﺟﺰﺋﯿﺎت ﻣﺎدرﺑﺮد‬ ‫‪.3‬‬
‫ﺟﺰﺋﯿﺎت ‪memory‬‬ ‫‪.4‬‬
‫ﺟﺰﺋﯿﺎت ﻧﺴﺨﻪ ﮐﺮﻧﻞ‬ ‫‪.5‬‬
‫اﻃﻼﻋﺎت ﺗﻮزﯾﻊ ‪ system linux‬ﻋﺎﻣﻞ ‪linux‬‬ ‫‪.6‬‬
‫ﮔﺰارش ﺗﻮﻟﯿﺪ‬ ‫‪.7‬‬
‫اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺮاي ﮔﺮﻓﺘﻦ ﻋﮑﺲ از ﻫﺮ ﺗﺐ از ﺑﺮﻧﺎﻣﻪ ﮐﺎرﺑﺮدي اﺳﺖ‪.‬‬ ‫‪.8‬‬
‫ﻧﺎم ‪hostsystem‬‬ ‫‪.9‬‬
‫‪install I-Nex‬در ﻣﺸﺘﻘﺎت ‪ubuntu‬‬
‫ﻣﺎ ﺑﺎﯾﺪ ‪Gambas3 PP A‬را ﺑﺮاي ‪I-Nex install‬در ‪ ubuntu‬اﺿﺎﻓﻪ ﮐﻨﯿﻢ " ‪." Gambas‬ﻣﺨﻔﻒ ﺑﺎزﮔﺸﺘﯽ‬
‫ﺑﺮاي ‪ " Gambas‬ﺗﻘﺮﯾﺒﺎ ﺑﻪ ﻣﻌﻨﯽ ﭘﺎﯾﻪ "اﺳﺖ‪.‬از دﺳﺘﻮرات زﯾﺮ ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﻫﺮ دو ‪ PPA‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ و‪I-‬‬
‫‪Nex‬را در ﻣﺸﺘﻘﺎت ‪ install ubuntu‬ﮐﻨﯿﺪ‪.‬‬
‫‪$‬‬ ‫‪sudo add-apt-repository ppa: i-nex-development-team / stable‬‬
‫‪$‬‬ ‫‪sudo add-apt-repository ppa: nemh / gambas3‬‬
‫‪$‬‬ ‫‪sudo apt-get update‬‬
‫‪$‬‬ ‫‪sudo apt-get install i-nex‬‬

‫‪107‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪108‬‬

‫ﺑﺮﺧﯽ از ﺗﺼﺎوﯾﺮ‪I-Nex.‬‬
‫ﺷﺮوع‪I-Nex‬‬

‫ﺷﺮوع ‪I-Nex Tool‬‬


‫اﻃﻼﻋﺎت ﭘﺮدازﻧﺪه‬

‫اﻃﻼﻋﺎت ﭘﺮدازﻧﺪه‬
‫اﻃﻼﻋﺎت ‪ system‬ﻋﺎﻣﻞ ‪linux‬‬

‫‪108‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪109‬‬

‫‪ system‬ﻋﺎﻣﻞ ‪ linux‬اﻃﻼﻋﺎت‬
‫اﻃﻼﻋﺎت ﻫﺴﺘﻪ اي‬

‫اﻃﻼﻋﺎت ﻫﺴﺘﻪ ‪linux‬‬


‫اﻃﻼﻋﺎت ‪memory‬‬

‫‪109‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪110‬‬

‫اﻃﻼﻋﺎت ‪linux memory‬‬


‫ﮔﺰارش را ﺗﻮﻟﯿﺪ ﮐﻨﯿﺪ‬

‫‪110‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪111‬‬

‫اﻧﺘﺨﺎب ﮔﺰارش ﺳﻔﺎرﺷﯽ‬


‫ﮔﺮﻓﺘﻦ ﻋﮑﺲ‬

‫ﻋﮑﺲ ﺑﻌﺪي ‪I-Next‬‬


‫ﭘﯿﮑﺮﺑﻨﺪي ﺳﺨﺖ اﻓﺰار ﻓﻬﺮﺳﺖ ‪. lshw Tool‬‬
‫‪lshw‬اﺑﺰار ﮐﻤﮑﯽ ﺑﺮاي ﺟﻤﻊ آوري اﻃﻼﻋﺎت ﻋﻤﯿﻖ در ﺗﻨﻈﯿﻤﺎت ﺳﺨﺖ اﻓﺰاري ﮐﺎﻣﭙﯿﻮﺗﺮ اﺳﺖ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از‬
‫ﮔﺰﯾﻨﻪ ‪-C‬ﺑﺮاي اﻧﺘﺨﺎب ﮐﻼس ﺳﺨﺖ اﻓﺰار‪CPU ،‬در اﯾﻦ ﻣﻮرد اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo lshw -C CPU‬‬
‫‪. hardinfo -‬اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري در ‪ GTK + Window‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪hardinfo‬اﻃﻼﻋﺎت ﺳﺨﺖ اﻓﺰاري را در ﯾﮏ ﭘﻨﺠﺮه ‪ GTK +‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪ ،‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ آن را ﺑﻪ ﺻﻮرت زﯾﺮ‬
‫‪ install‬ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt install hardinfo #‬‬ ‫دﺑﯿﺎن ‪/‬‬
‫‪$ sudo yum install hardinfo # RHEL / CentOS‬‬
‫‪$ sudo dnf install hardinfo #Fedora‬‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ آن را ‪ install‬ﮐﺮده اﯾﺪ‪ ،‬ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪$ hardinfo‬‬

‫‪111‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪112‬‬

‫اﻃﻼﻋﺎت ‪linux system‬‬

‫‪112‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪113‬‬

‫ﮔﺰارش ﮔﺰارش ‪ system‬را ﺗﻮﻟﯿﺪ ﮐﻨﯿﺪ‬


‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ اﯾﻦ ﮔﺰارش را در ﻗﺎﻟﺐ ‪ HTML‬اﯾﺠﺎد ﻣﯽ ﮐﻨﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ آن را از ﯾﮏ ﻣﺮورﮔﺮ وب ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ ﮐﻪ‬
‫در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬

‫‪113‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪114‬‬

‫اﻃﻼﻋﺎت ‪linux system‬‬

‫‪hwinfo‬‬
‫اﻃﻼﻋﺎت ﻣﻮﺟﻮد در ﻣﻮرد ﺳﺨﺖ اﻓﺰار را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫‪hwinfo‬ﺑﺮاي اﺳﺘﺨﺮاج اﻃﻼﻋﺎت در ﻣﻮرد ﺳﺨﺖ اﻓﺰار ﻣﻮﺟﻮد در ﯾﮏ ‪ linux system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺮاي‬
‫ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ‪ CPU‬ﺧﻮد از ‪ cpu‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬
‫‪$ hwinfo - cpu‬‬
‫دﺳﺘﻮر‪id‬‬
‫ﻓﺮﻣﺎن‪ id‬ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ اﻃﻼﻋﺎت ﮐﺎرﺑﺮ و ﮔﺮوه ﺑﺮاي ﮐﺎرﺑﺮ ﻓﻌﻠﯽ ﯾﺎ ﻧﺎم ﮐﺎرﺑﺮي ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ ﮐﻪ در زﯾﺮ ﻧﺸﺎن‬
‫داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪$ id hosein‬‬

‫‪114‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪115‬‬

‫دﺳﺘﻮرات ﻣﻔﯿﺪ ‪ifconfig‬‬


‫ﺑﻪ روز رﺳﺎﻧﯽ‪: ifconfig‬ﻓﺮﻣﺎن ﺷﺒﮑﻪ ﻓﺮاﻣﻮش ﺷﺪه و ﺗﻮﺳﻂ دﺳﺘﻮر‪ ip‬ﺟﺎﯾﮕﺰﯾﻦ ﺷﺪه اﺳﺖ (ﯾﺎدﮔﯿﺮي ‪ 10‬ﻣﺜﺎل از‬
‫دﺳﺘﻮرات)‪ IP‬در ﺑﯿﺸﺘﺮ ﺗﻮزﯾﻊ ﻫﺎي ‪linux.‬‬

‫ﻣﺸﺎﻫﺪه ﺗﻤﺎم ﺗﻨﻈﯿﻤﺎت ﺷﺒﮑﻪ‬


‫دﺳﺘﻮر‪ ifconfig‬ﺑﺪون ﻫﯿﭻ اﺳﺘﺪﻻﻟﯽ ﺗﻤﺎم ﺟﺰﺋﯿﺎت اﯾﻨﺘﺮﻓﯿﺲ ﻓﻌﺎل ﻧﻤﺎﯾﺶ داده ﺧﻮاﻫﺪ ﺷﺪ‪.‬دﺳﺘﻮر‬
‫‪ifconfig‬ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﺑﺮرﺳﯽ آدرس ‪ IP‬اﺧﺘﺼﺎص داده ﺷﺪه ﺳﺮور اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪[ root@ hosein ~] # ifconfig‬‬

‫‪ HWaddr 00: 0B: CD: 1C: 18: 5A‬اﺗﺮﻧﺖ ‪eth0 Link encap:‬‬
‫‪inet addr: 172.16.25.126 Bcast: 172.16.25.63255.255.255.224 :‬‬
‫‪inet6 addr: fe80 :: 20b: cdff: fe1c: 185a / 64‬‬
‫‪UP BROADCAST RUNNING MULTICAST MTU: 1500‬‬

‫اﻃﻼﻋﺎت ﺗﻤﺎم اﯾﻨﺘﺮﻓﯿﺲ ﻫﺎي ﺷﺒﮑﻪ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‬


‫دﺳﺘﻮر‪ ifconfig‬زﯾﺮ ﺑﺎ آرﮔﻮﻣﺎن ‪-a‬اﻃﻼﻋﺎت ﺗﻤﺎم اﯾﻨﺘﺮﻓﯿﺲ ﻫﺎي ﺷﺒﮑﻪ ﻓﻌﺎل ﯾﺎ ﻏﯿﺮ ﻓﻌﺎل در ﺳﺮور را ﻧﻤﺎﯾﺶ ﻣﯽ‬
‫دﻫﺪ‪.‬اﯾﻦ ﻧﺘﺎﯾﺞ را ﺑﺮاي ‪sit0 ،lo ،eth0‬و ‪tun0‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig -a‬‬

‫ﭼﮕﻮﻧﮕﯽ ﻓﻌﺎل ﮐﺮدن ﯾﮏ راﺑﻂ ﺷﺒﮑﻪ‬


‫ﭘﺮﭼﻢ " ‪ " up‬ﯾﺎ " ‪ " ifup‬ﺑﺎ ﻧﺎم راﺑﻂ ) ‪ ( eth0‬ﯾﮏ راﺑﻂ ﺷﺒﮑﻪ را ﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‪ ،‬اﮔﺮ در ﺣﺎﻟﺖ ﻓﻌﺎل ﻧﯿﺴﺖ و اﺟﺎزه‬
‫ارﺳﺎل و درﯾﺎﻓﺖ اﻃﻼﻋﺎت را ﻣﯽ دﻫﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪" ifconfig eth0 up " ،‬ﯾﺎ " ‪ " ifup eth0‬راﺑﻂ ‪eth0‬را‬
‫ﻓﻌﺎل ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0‬‬
‫ﯾﺎ‬
‫‪[ root@ hosein ~] # ifup eth0‬‬

‫ﻧﺤﻮه ﻏﯿﺮﻓﻌﺎل ﮐﺮدن ﯾﮏ راﺑﻂ ﺷﺒﮑﻪ‬


‫ﭘﺮﭼﻢ " ‪ " down‬ﯾﺎ " ‪ " ifdown‬ﺑﺎ ﻧﺎم راﺑﻂ ) ‪ ( eth0‬راﺑﻂ ﮐﺎرﺑﺮي ﻣﺸﺨﺺ ﺷﺪه را ﻏﯿﺮﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‪.‬ﺑﻪ ﻋﻨﻮان‬
‫ﻣﺜﺎل‪ ،‬اﮔﺮ " ‪ " ifconfig eth0 down‬ﯾﺎ " ‪ " ifdown eth0‬راﺑﻂ ‪eth0‬را ﻏﯿﺮﻓﻌﺎل ﮐﻨﺪ‪ ،‬اﮔﺮ در وﺿﻌﯿﺖ ﻓﻌﺎل‬
‫ﺑﺎﺷﺪ‪.‬‬

‫‪115‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪116‬‬

‫‪[ root@ hosein ~] # ifconfig eth0 down‬‬


‫ﯾﺎ‬
‫‪[ root@ hosein ~] # ifdown eth0‬‬
‫ﻧﺤﻮه اﺧﺘﺼﺎص ﯾﮏ آدرس ‪ IP‬ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬
‫ﺑﺮاي اﺧﺘﺼﺎص ﯾﮏ آدرس ‪ IP‬ﺑﻪ ﯾﮏ راﺑﻂ ﺧﺎص‪ ،‬از دﺳﺘﻮر زﯾﺮ ﺑﺎ ﻧﺎم راﺑﻂ ) ‪ ( eth0‬و آدرس ‪ IP‬ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ‬
‫ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪" ifconfig eth0 172.16.25.125 " ،‬آدرس ‪ IP‬را ﺑﻪ راﺑﻂ ‪eth0‬‬
‫ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﭼﮕﻮﻧﮕﯽ اﺧﺘﺼﺎص ﯾﮏ ﻣﺎﺳﮏ ﺷﺒﮑﻪ ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬
‫ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ ifconfig‬ﺑﺎ اﺳﺘﺪﻻل " ‪ " netmask‬و ﻧﺎم راﺑﻂ ﺑﻪ ﻋﻨﻮان) ‪ ، ( eth0‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ‬
‫‪mask‬را ﺑﻪ ﯾﮏ راﺑﻂ ﻣﺸﺨﺺ ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪" ifconfig eth0 netmask 255.255.255.224 ،‬‬
‫"ﻣﺎﺳﮏ ﺷﺒﮑﻪ را ﺑﻪ ﯾﮏ راﺑﻂ داده ‪eth0‬ﺗﻨﻈﯿﻢ ﺧﻮاﻫﺪ ﮐﺮد‪.‬‬

‫ﻧﺤﻮه اﻧﺘﻘﺎل ﯾﮏ ﭘﺨﺶ ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬


‫ﺑﺎ اﺳﺘﻔﺎده از اﺳﺘﺪﻻل " ﭘﺨﺶ "ﺑﺎ ﯾﮏ ﻧﺎم راﺑﻂ‪ ،‬آدرس ﭘﺨﺶ ﺑﺮاي راﺑﻂ داده ﺷﺪه را ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪،‬‬
‫دﺳﺘﻮر " ‪" ifconfig eth0 broadcast 172.16.25.63‬ﻓﺮﻣﺎن آدرس ﭘﺨﺶ را ﺑﻪ راﺑﻂ ‪eth0‬ﻣﯽ دﻫﺪ‪.‬‬
‫ﭼﮕﻮﻧﮕﯽ اﺧﺘﺼﺎص‪ ، IP‬ﺷﺒﮑﻪ و ﭘﺨﺶ ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬
‫ﺑﺮاي اﺧﺘﺼﺎص ﯾﮏ آدرس‪ ، IP‬آدرس ﺷﺒﮑﻪ ﻧﺖ و آدرس ﭘﺨﺶ در ﯾﮏ ﺑﺎر ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ ifconfig‬ﺑﺎ ﺗﻤﺎم‬
‫اﺳﺘﺪﻻل ﻫﺎﯾﯽ ﮐﻪ در زﯾﺮ آورده ﺷﺪه اﺳﺖ‪.‬‬
‫ﻧﺤﻮه ﺗﻐﯿﯿﺮ ‪ MTU‬ﺑﺮاي ﯾﮏ راﺑﻂ ﺷﺒﮑﻪ‬
‫اﺳﺘﺪﻻل " ‪ " mtu‬ﯾﮏ واﺣﺪ ﺣﺪاﮐﺜﺮ اﻧﺘﻘﺎل را ﺑﻪ ﯾﮏ راﺑﻂ ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ‪.MTU‬ﺑﻪ ﺷﻤﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ اﻧﺪازه‬
‫ﻣﺤﺪود ﺑﺴﺘﻪ ﻫﺎﯾﯽ ﮐﻪ در ﯾﮏ راﺑﻂ ﻗﺮار ﻣﯽ ﮔﯿﺮﻧﺪ ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‪.MTU‬ﻗﺎدر ﺑﻪ اداره ﺣﺪاﮐﺜﺮ ﺗﻌﺪاد اﮐﺘﯿﭗ ﻫﺎ ﺑﻪ ﯾﮏ‬
‫راﺑﻂ در ﯾﮏ ﻣﻌﺎﻣﻠﻪ واﺣﺪ اﺳﺖ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪" ifconfig eth0 mtu 1000 " ،‬ﺣﺪاﮐﺜﺮ ﻣﻘﺪار اﻧﺘﻘﺎل را ﺑﻪ‬
‫ﻣﺠﻤﻮﻋﻪ داده ﺷﺪه )ﯾﻌﻨﯽ ) ‪1000‬ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﺪ‪.‬ﺗﻤﺎم اﺗﺼﺎﻻت ﺷﺒﮑﻪ از ﺗﻨﻈﯿﻤﺎت ‪MTU‬ﭘﺸﺘﯿﺒﺎﻧﯽ ﻧﻤﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0 mtu 1000‬‬
‫‪.‬ﻧﺤﻮه ﻓﻌﺎل ﺳﺎزي ﺣﺎﻟﺖ ﭼﺎﺑﮏ‬
‫ﭼﻪ اﺗﻔﺎﻗﯽ در ﺣﺎﻟﺖ ﻋﺎدي رخ ﻣﯽ دﻫﺪ‪ ،‬زﻣﺎﻧﯽ ﮐﻪ ﯾﮏ ﺑﺴﺘﻪ ﺗﻮﺳﻂ ﮐﺎرت ﺷﺒﮑﻪ درﯾﺎﻓﺖ ﻣﯽ ﺷﻮد‪ ،‬آن را ﺗﺎﯾﯿﺪ ﻣﯽ‬
‫ﮐﻨﺪ ﮐﻪ ﺑﺴﺘﻪ ﺑﻪ ﺧﻮدش ﻣﺘﻌﻠﻖ اﺳﺖ‪.‬اﮔﺮ ﻧﻪ‪ ،‬ﺑﺴﺘﻪ ﺑﻪ ﻃﻮر ﻣﻌﻤﻮل ﺑﺴﺘﻪ ﻣﯽ ﺷﻮد‪ ،‬اﻣﺎ در ﺣﺎﻟﺖ ﭘﯿﺶ ﻓﺮض ﺑﺮاي‬
‫ﭘﺬﯾﺮش ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎﯾﯽ ﮐﻪ از ﻃﺮﯾﻖ ﮐﺎرت ﺷﺒﮑﻪ ﺟﺮﯾﺎن ﻣﯽ ﯾﺎﺑﺪ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫اﮐﺜﺮ اﺑﺰارﻫﺎي ﺷﺒﮑﻪ اﻣﺮوز از ﺣﺎﻟﺖ ﭘﯿﺸﻔﺮض ﺑﺮاي ﮔﺮﻓﺘﻦ و ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ ﺑﺴﺘﻪ ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ ﮐﻪ از ﻃﺮﯾﻖ‬
‫راﺑﻂ ﺷﺒﮑﻪ ﺟﺮﯾﺎن ﻣﯽ ﯾﺎﺑﺪ‪.‬ﺑﺮاي ﺗﻨﻈﯿﻢ ﺣﺎﻟﺖ ﭘﯿﺶ ﻓﺮض‪ ،‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪116‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪117‬‬

‫‪[ root@ hosein ~] # ifconfig eth0 promisc‬‬


‫‪.‬ﻧﺤﻮه ﻏﯿﺮ ﻓﻌﺎل ﮐﺮدن ﺣﺎﻟﺖ ﭼﺎﺑﮏ‬
‫ﺑﺮاي ﻏﯿﺮﻓﻌﺎل ﮐﺮدن ﺣﺎﻟﺖ ﭘﯿﺶ ﻓﺮض‪ ،‬از ﮐﻠﯿﺪ " ‪ " -promisc‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ ﮐﻪ راﺑﻂ ﺷﺒﮑﻪ را در ﺣﺎﻟﺖ ﻋﺎدي‬
‫ﺑﺮﻣﯿﮕﺮداﻧﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0 -proromisc‬‬
‫‪.‬ﭼﮕﻮﻧﻪ ﻧﺎم ﻣﺴﺘﻌﺎر ﺟﺪﯾﺪ را ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫اﺑﺰار ‪ifconfig‬ﺑﻪ ﺷﻤﺎ اﻣﮑﺎن ﻣﯽ دﻫﺪ ﮐﻪ اﯾﻨﺘﺮﻓﯿﺲ ﻫﺎي ﺷﺒﮑﻪ اي ﺑﯿﺸﺘﺮي را ﺑﺎ اﺳﺘﻔﺎده از ﻧﺎم ﻣﺴﺘﻌﺎر ﭘﯿﮑﺮﺑﻨﺪي‬
‫ﮐﻨﯿﺪ‪.‬ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن راﺑﻂ ﮐﺎرﺑﺮي ﻧﺎم ﻣﺴﺘﻌﺎر ‪ ،eth0‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﻟﻄﻔﺎ ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ‬
‫آدرس ﺷﺒﮑﻪ ﻧﺎم ﻣﺴﺘﻌﺎر در ﻫﻤﺎن ﻣﺎﺳﮏ زﯾﺮ ﺷﺒﮑﻪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬اﮔﺮ آدرس ‪ ip‬آدرس ‪eth0‬ﺷﻤﺎ‬
‫‪172.16.25.125‬ﺑﺎﺷﺪ ‪ ،‬آدرس ‪ IP‬ﻧﺎم ﻣﺴﺘﻌﺎر ﺑﺎﯾﺪ ‪172.16.25.127‬ﺑﺎﺷﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0: 0 172.16.25.127‬‬
‫ﺑﻌﺪ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ ، ifconfig eth0: 0‬آدرس راﺑﻂ ﺷﺒﮑﻪ ﻧﺎم ﻣﺴﺘﻌﺎر ﺗﺎزه اﯾﺠﺎد ﺷﺪه را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0: 0‬‬

‫ﻧﺤﻮه ﺣﺬف ﻧﺎم ﻣﺴﺘﻌﺎر ﺑﻪ اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬


‫اﮔﺮ دﯾﮕﺮ ﻧﯿﺎزي ﺑﻪ ﯾﮏ ﻧﺎم ﺷﺒﮑﻪ ي ﻧﺎم ﻣﺴﺘﻌﺎر ﻧﺒﺎﺷﯿﺪ ﯾﺎ آن را ﻧﺎدرﺳﺖ ﭘﯿﮑﺮﺑﻨﺪي ﮐﻨﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ آن را ﺑﺎ اﺳﺘﻔﺎده‬
‫از دﺳﺘﻮر زﯾﺮ ﺣﺬف ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # ifconfig eth0: 0 down‬‬
‫ﭼﮕﻮﻧﻪ آدرس ‪ MAC‬اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ را ﺗﻐﯿﯿﺮ دﻫﯿﺪ‬
‫ﺑﺮاي ﺗﻐﯿﯿﺮ آدرس ( ‪MAC‬دﺳﺘﺮﺳﯽ ﺑﻪ ﮐﻨﺘﺮل رﺳﺎﻧﻪ )ﯾﮏ راﺑﻂ ﺷﺒﮑﻪ ‪ ،eth0‬از دﺳﺘﻮر زﯾﺮ ﺑﺎ اﺳﺘﺪﻻل ‪« hw‬‬
‫» ‪ether‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬زﯾﺮ را ﺑﺒﯿﻨﯿﺪ‬
‫‪ AA: BB: CC: DD: EE: FF‬اﺗﺮ ‪[ root@ hosein ~] # ifconfig eth0 hw‬‬

‫دﯾﮕﺮ ﺷﺒﮑﻪ ﻫﺎي ﻧﺮم اﻓﺰاري‬


‫‪Tcmpdump -‬اﺑﺰار ﺿﺒﻂ و ﺗﺠﺰﯾﻪ و ﺗﺤﻠﯿﻞ ﺑﺴﺘﻪ ﻓﺮﻣﺎن ﺑﺮاي ﻧﻈﺎرت ﺑﺮ ﺗﺮاﻓﯿﮏ ﺷﺒﮑﻪ اﺳﺖ‪.‬‬ ‫‪.1‬‬
‫‪Netstat -‬ﯾﮏ اﺑﺰار ﻧﻈﺎرت ﺑﺮ ﺷﺒﮑﻪ ﺧﻂ ﻓﺮﻣﺎن ﺑﺎز اﺳﺖ ﮐﻪ ﺗﺮاﻓﯿﮏ ﺑﺴﺘﻪ ﻫﺎي ﺷﺒﮑﻪ ﻫﺎي‬ ‫‪.2‬‬
‫ورودي و ﺧﺮوﺟﯽ را ﻧﻈﺎرت ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪Wireshark -‬ﯾﮏ ﺗﺤﻠﯿﻠﮕﺮ ﭘﺮوﺗﮑﻞ ﭘﺮوﺗﮑﻞ ﺑﺎز اﺳﺖ ﮐﻪ ﺑﺮاي رﻓﻊ ﻣﺸﮑﻼت ﻣﺮﺑﻮط ﺑﻪ ﺷﺒﮑﻪ‬ ‫‪.3‬‬
‫اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬

‫‪117‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪118‬‬

‫‪Munin -‬ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﻧﻈﺎرت ﺑﺮ ﺷﺒﮑﻪ و ‪ system‬وب اﺳﺖ ﮐﻪ ﺑﺮاي ﻧﻤﺎﯾﺶ ﻧﺘﺎﯾﺞ در ﻧﻤﻮدار ﺑﺎ‬ ‫‪.4‬‬
‫اﺳﺘﻔﺎده از ‪ rrdtool‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪Cacti -‬ﺑﺮﻧﺎﻣﻪ ﻧﻈﺎرت و ﺑﺮﻧﺎﻣﻪ ﻧﻮﯾﺴﯽ ﮐﺎﻣﻞ وب ﺑﺮاي ﻧﻈﺎرت ﺑﺮ ﺷﺒﮑﻪ اﺳﺖ‪.‬‬ ‫‪.5‬‬
‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت و ﮔﺰﯾﻨﻪ ﻫﺎي ﺑﯿﺸﺘﺮ ﺑﺮاي ﻫﺮ ﯾﮏ از اﺑﺰارﻫﺎي ﻓﻮق‪ ،‬ﺑﺎ وارد ﮐﺮدن »ﻧﺎم اﺑﺰار ﻣﺮد »در ﺧﻂ‬
‫ﻓﺮﻣﺎن‪manapages ،‬را ﺑﺒﯿﻨﯿﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت ﺑﺮاي اﺑﺰار ‪ ،netstat‬از دﺳﺘﻮر ﺑﻪ ﻋﻨﻮان ‪" net‬‬
‫" ‪netstat‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫‪118‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪119‬‬

‫‪. Shred‬ﺑﺎزﻧﻮﯾﺴﯽ ﯾﮏ ﻓﺎﯾﻞ ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن ﻣﺤﺘﻮا‬


‫ﻓﺮض ﺑﺮ اﯾﻦ اﺳﺖ ﮐﻪ ﻓﺎﯾﻞ ﺣﺎوي ﻣﻄﺎﻟﺐ ﻣﺤﺮﻣﺎﻧﻪ ﯾﺎ ﻣﺤﺮﻣﺎﻧﻪ ﻣﺎﻧﻨﺪ ﻧﺎﻣﻬﺎي ﮐﺎرﺑﺮي و رﻣﺰﻫﺎي ﻋﺒﻮر ﯾﮏ ‪system‬‬
‫اﻣﻨﯿﺘﯽ اﺳﺖ‪ ،‬ﻣﻬﺎﺟﻢ ﺑﺎ داﻧﺶ و ﻣﻬﺎرت ﻻزم ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ راﺣﺘﯽ ﮐﭙﯽ ﭘﺎك ﺷﺪه ﻓﺎﯾﻞ را ﺑﺎزﯾﺎﺑﯽ ﮐﻨﺪو ﺑﻪ اﯾﻦ‬
‫اﻋﺘﺒﺎرﻫﺎي ﮐﺎرﺑﺮي دﺳﺘﺮﺳﯽ ﭘﯿﺪا ﮐﻨﺪ )و اﺣﺘﻤﺎﻻ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻌﺪ از آن را ﺣﺪس ﺑﺰﻧﯿﺪ ﺑﻪ ﻋﻨﻮان ﺳﻨﺎرﯾﻮ)‬
‫در اﯾﻦ ﮐﺘﺎب‪ ،‬ﻣﺎ ﺗﻌﺪادي از اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن را ﺑﺮاي ﻓﺎﯾﻠﯽ داﺋﻤﯽ و اﯾﻤﻦ در ‪ linux‬ﺣﺬف ﺧﻮاﻫﯿﻢ ﮐﺮد‪.‬‬
‫‪Shred‬ﯾﮏ ﻓﺎﯾﻞ را ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن ﻣﺤﺘﻮاي آن روﻧﻮﯾﺴﯽ ﻣﯽ ﮐﻨﺪ و ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ آن را ﻧﯿﺰ ﺣﺬف ﮐﻨﺪ‪.‬‬
‫‪$ shred-zvu -n 5 passwords.list‬‬
‫در ﻓﺮﻣﺎن زﯾﺮ ﮔﺰﯾﻨﻪ ﻫﺎ‪:‬‬
‫‪-z -‬ﺑﺎزﻧﻮﯾﺴﯽ ﻧﻬﺎﯾﯽ را ﺑﺎ ﺻﻔﺮ ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن ‪-z‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ‬ ‫‪.1‬‬
‫‪-v -‬ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﭘﯿﺸﺮﻓﺖ ﻋﻤﻠﯽ را ﻗﺎدر ﻣﯽ ﺳﺎزد‬ ‫‪.2‬‬
‫‪-u -‬ﻓﺎﯾﻞ را ﺑﻌﺪ از روﻧﻮﯾﺴﯽ ﺣﺬف ﻣﯽ ﮐﻨﺪ و ﻓﺎﯾﻞ را ﺣﺬف ﻣﯽ ﮐﻨﺪ‬ ‫‪.3‬‬
‫‪-n -‬ﺗﻌﺪاد دﻓﻌﺎﺗﯽ را ﺑﺮاي ﺑﺎزﻧﻮﯾﺴﯽ ﻣﺤﺘﻮاي ﻓﺎﯾﻞ ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﺪ )ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ‪ 3‬اﺳﺖ)‬ ‫‪.4‬‬

‫ﺗﮑﻪ ﺗﮑﻪ ﺷﺪه ‪ -‬ﻓﺎﯾﻞ را ﺑﺮاي ﻣﺨﻔﯽ ﮐﺮدن ﻣﺤﺘﻮﯾﺎت آن ﺑﺎزﻧﻮﯾﺴﯽ ﮐﻨﯿﺪ‬

‫‪119‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪120‬‬

‫ﭘﺎك ﮐﺮدن ‪ -‬اﯾﻤﻦ ﭘﺎك ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ در ‪linux‬‬


‫ﻓﺮﻣﺎن ﭘﺎك ﮐﺮدن ‪ linux‬اﯾﻤﻦ ﻓﺎﯾﻞ ﻫﺎ را از ‪ memory‬ﻣﻐﻨﺎﻃﯿﺴﯽ ﭘﺎك ﻣﯽ ﮐﻨﺪ و ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ اﻣﮑﺎن ﺑﺎزﯾﺎﺑﯽ‬
‫ﻓﺎﯾﻞ ﻫﺎي ﺣﺬف ﺷﺪه ﯾﺎ ﻣﺤﺘﻮﯾﺎت ﭘﻮﺷﻬﺮا ﻏﯿﺮﻣﻤﮑﻦ ﻣﯽ ﺳﺎزد‪.‬‬
‫اول‪ ،‬ﺷﻤﺎ ﻧﯿﺎز ﺑﻪ ‪ install‬اﺑﺰار ﭘﺎك ﮐﻨﯿﺪ ﺗﺎ آن را اﺟﺮا ﮐﻨﯿﺪ‪ ،‬دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt install wipe‬‬
‫‪$ sudo yum install wipe‬‬
‫دﺳﺘﻮر زﯾﺮ ﻫﻤﻪ ﭼﯿﺰ را در ﭘﻮﺷﻪ ‪ private‬ﭘﺎك ﺧﻮاﻫﺪ ﮐﺮد‪.‬‬
‫* ‪$ wipe -rfi private /‬‬
‫ﺟﺎﯾﯽ ﮐﻪ ﭘﺮﭼﻢ ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪-r -‬ﻣﯽ ﮔﻮﯾﺪ ﭘﺎك ﮐﺮدن ﺑﺮاي ﺑﺎزﮔﺸﺖ ﺑﻪ‪subdirectories‬‬ ‫‪.1‬‬
‫‪-f -‬اﻣﮑﺎن ﺣﺬف اﺟﺒﺎري را ﻓﻌﺎل ﮐﺮده و درﺧﻮاﺳﺖ ﺗﺎﯾﯿﺪ را ﻏﯿﺮﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‬ ‫‪.2‬‬
‫‪-i -‬روﻧﺪ ﭘﯿﺸﺮﻓﺖ ﻓﺮآﯾﻨﺪ ﺣﺬف را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬ ‫‪.3‬‬

‫ﭘﺎك ﮐﺮدن ‪ -‬ﭘﺎك ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ در ‪linux‬‬


‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ‪:‬ﭘﺎك ﮐﺮدن ﺗﻨﻬﺎ ﺑﺎ ﻗﺎﺑﻠﯿﺖ اﻃﻤﯿﻨﺎن ﺑﺮ روي ‪ memory‬ﻣﻐﻨﺎﻃﯿﺴﯽ ﮐﺎر ﻣﯽ ﮐﻨﺪ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ از روش‬
‫ﻫﺎي دﯾﮕﺮ ﺑﺮاي دﯾﺴﮏ ﻫﺎي ﺣﺎﻟﺖ ﺟﺎﻣﺪ )‪ (memory‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫ﺟﻌﺒﻪ اﺑﺰار ﺣﺬف اﻣﻦ ﺑﺮاي ‪linux‬‬


‫‪Secure-delete‬ﻣﺠﻤﻮﻋﻪ اي از اﺑﺰار ﺣﺬف ﻓﺎﯾﻞ اﻣﻦ اﺳﺖ ﮐﻪ ﺣﺎوي اﺑﺰار )‪srm (secure_deletion‬اﺳﺖ ﮐﻪ‬
‫ﺑﺮاي ﭘﺎك ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ ﺑﻪ ﺻﻮرت اﯾﻤﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫اﺑﺘﺪا ﺑﺎﯾﺪ آن را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ﻣﺮﺑﻮﻃﻪ ‪ install‬ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt-get install secure-delete‬‬
‫‪$ sudo yum install secure-delete‬‬
‫ﭘﺲ از ‪ ،install‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ از اﺑﺰار ‪SRM‬ﺑﺮاي ﺣﺬف ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﻪ ﺻﻮرت اﯾﻤﻦ ﺑﺮ روي ﯾﮏ‬
‫‪ linux system‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫* ‪$ srm -vz private /‬‬
‫ﺟﺎﯾﯽ ﮐﻪ ﮔﺰﯾﻨﻪ ﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده‪:‬‬

‫‪120‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪121‬‬

‫‪-v -‬ﺣﺎﻟﺖ اﻓﻌﺎل را ﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‬ ‫‪.1‬‬


‫‪-z -‬آﺧﺮﯾﻦ ﻧﻮﺷﺘﻦ را ﺑﻪ ﺟﺎي داده ﻫﺎي ﺗﺼﺎدﻓﯽ ﺑﺎ ﺻﻔﺮ ﭘﺎك ﻣﯽ ﮐﻨﺪ‬ ‫‪.2‬‬

‫‪srm -‬اﻣﻦ ﻓﺎﯾﻞ ﻫﺎ را در ‪ linux‬ﺣﺬف ﮐﻨﯿﺪ‬


‫ﺑﺮاي اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﻫﺎي ﺑﯿﺸﺘﺮ و اﻃﻼﻋﺎت‪ ،‬از ﺻﻔﺤﻪ‪ man srm‬ﺑﺨﻮاﻧﯿﺪ‪:‬‬
‫‪$ man srm‬‬
‫‪Sfill-Secure‬‬
‫‪Sfill‬ﺑﺨﺸﯽ از ﺟﻌﺒﻪ اﺑﺰار اﻣﻦ ﺣﺬف اﺳﺖ‪ ،‬ﯾﮏ دﯾﺴﮏ اﻣﻦ و دﯾﺴﮏ ﭘﺎك ﮐﻨﻨﺪه ﻓﻀﺎﯾﯽ اﺳﺖ و ﻓﺎﯾﻞ ﻫﺎ را ﺑﺮ روي‬
‫ﻓﻀﺎي دﯾﺴﮏ آزاد در ﯾﮏ روش اﻣﻦ ﺣﺬف ﻣﯽ ﮐﻨﺪ ‪.Sfill‬ﻓﻀﺎي آزاد در ﭘﺎرﺗﯿﺸﻦ ﻣﺸﺨﺺ ﺷﺪﻫﺮا ﺑﺮرﺳﯽ ﻣﯽ ﮐﻨﺪ و‬
‫آن را ﺑﺎ داده ﻫﺎي ﺗﺼﺎدﻓﯽ از‪ / dev / urandom‬ﭘﺮ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﻓﺮﻣﺎن زﯾﺮ در ﻗﺴﻤﺖ ﭘﺎرﺗﯿﺸﻦ ‪ root‬ﻣﻦ ‪sfill‬را اﺟﺮا ﻣﯽ ﮐﻨﺪ‪ ،‬ﺑﺎ اﯾﻦ ﮐﻪ ﺳﻮﺋﯿﭻ ‪-v‬ﻓﻌﺎل ﮐﺮدن ﺣﺎﻟﺖ ﻣﺘﻨﯽ‪:‬‬
‫‪$ sudo sfill -v / home / aaronkilik / tmp /‬‬
‫ﺑﺎ ﻓﺮض اﯾﻨﮑﻪ ﯾﮏ ﭘﺎرﺗﯿﺸﻦ ﺟﺪاﮔﺎﻧﻪ اﯾﺠﺎد ﮐﺮده اﯾﺪ‪ ،‬ﺑﺮاي ﻧﮕﻬﺪاري داﯾﺮﮐﺘﻮرﯾﻬﺎي ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ ‪ system‬ﻋﺎدي‪ ،‬ﻣﯽ‬
‫ﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮري را در آن ﭘﺎرﺗﯿﺸﻦ ﻣﺸﺨﺺ ﮐﻨﯿﺪ ﺗﺎ درﺧﻮاﺳﺖ آن را اﻧﺠﺎم دﻫﯿﺪ‪:‬‬
‫‪$ sudo sfill -v / home / username‬‬
‫ﭼﻨﺪ ﻣﺤﺪودﯾﺘﯽ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ در ﺻﻔﺤﻪ ﺷﺨﺼﯽ ﺑﺨﻮاﻧﯿﺪ‪ ،‬ﻣﺤﺪودﯾﺖ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ‬
‫ﭘﺮﭼﻢ ﻫﺎي اﺿﺎﻓﯽ و دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎ را ﭘﯿﺪا ﮐﻨﯿﺪ‪:‬‬
‫‪$ man spfill‬‬
‫ﺗﻮﺟﻪ ‪:‬اﯾﻦ دو اﺑﺰار زﯾﺮ‪ ( sswap‬و ) ‪sdmem‬در ﺟﻌﺒﻪ اﺑﺰار ﭘﺎك ﺳﺎزي اﯾﻤﻦ ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺮاي ﻣﺤﺪوده اﯾﻦ‬
‫راﻫﻨﻤﺎ ﻣﺴﺘﺜﻨﯽ ﻧﯿﺴﺖ‪ ،‬اﻣﺎ ﻣﺎ آﻧﻬﺎ را ﺑﺮاي ﻫﺪف داﻧﺶ و اﺳﺘﻔﺎده در آﯾﻨﺪه ﺗﻮﺿﯿﺢ ﺧﻮاﻫﯿﻢ داد‪.‬‬
‫‪5. sswap -‬ﺗﻤﯿﺰ ﮐﻨﻨﺪه ﺗﻌﻮﯾﺾ اﻣﻦ‬
‫اﯾﻦ ﯾﮏ ﭘﺎك ﮐﻨﻨﺪه ﭘﺎرﺗﯿﺸﻦ اﻣﻦ اﺳﺖ‪sswap ،‬داده ﻫﺎ ﻣﻮﺟﻮد در ﭘﺎرﺗﯿﺸﻦ ‪ swap‬ﺧﻮد را ﺑﻪ ﺷﯿﻮه اي اﻣﻦ ﺣﺬف‬
‫ﻣﯽ ﮐﻨﺪ‪.‬‬
‫اﺣﺘﯿﺎط ‪:‬ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﻗﺒﻞ از اﺳﺘﻔﺎده از ‪ ،sswap‬ﭘﺎرﺗﯿﺸﻦ ‪swap‬ﺧﻮد را ﺟﺪا ﮐﻨﯿﺪ!در ﻏﯿﺮ اﯾﻦ ﺻﻮرت‬
‫‪ system‬ﺷﻤﺎ ﻣﻤﮑﻦ اﺳﺖ ﺳﻘﻮط ﮐﻨﺪ!‬
‫ﺑﻪ ﺳﺎدﮔﯽ ﭘﺎرﺗﯿﺸﻦ ‪ swap‬را ﺗﻌﯿﯿﻦ ﮐﻨﯿﺪ )و ﺑﺮرﺳﯽ ﮐﻨﯿﺪ ﮐﻪ آﯾﺎ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ swapon‬ﭘﯿﮑﺮﺑﻨﺪي و ﻣﺒﺎدﻟﻪ‬
‫دﺳﺘﮕﺎه ﻫﺎ ‪ /‬ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ swapon‬ﺗﺒﺪﯾﻞ ﻣﯽ ﺷﻮﻧﺪ(‪ ،‬ﺑﻌﺪ‪ ،‬ﭘﯿﻨﮓ ﺑﻨﺪي و ﺗﻐﯿﯿﺮ دﺳﺘﮕﺎه ﻫﺎ ‪ /‬ﻓﺎﯾﻞ ﻫﺎ‬
‫ﺑﺎ دﺳﺘﻮر ‪swapoff‬را ﻏﯿﺮﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪121‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪122‬‬

‫ﺳﭙﺲ دﺳﺘﻮر ‪sswap‬را روي ﭘﺎرﺗﯿﺸﻦ ‪ swap‬اﺟﺮا ﮐﻨﯿﺪ‪:‬‬


‫‪$‬‬ ‫‪cat / proc / swaps‬‬
‫‪$‬‬ ‫‪swapon‬‬
‫‪$‬‬ ‫‪sudo swapoff / dev / sda6‬‬
‫‪$‬‬ ‫‪sudo sswap / dev / sda6‬‬
‫اﯾﻦ دﺳﺘﻮر ﻣﻤﮑﻦ اﺳﺖ ﮐﻤﯽ ﻃﻮل ﺑﮑﺸﺪ ﺗﺎ ﺑﺎ ‪ 38‬ﮔﺬر ﭘﯿﺶ ﻓﺮض ﺗﮑﻤﯿﻞ ﺷﻮد‬

‫‪sswap -‬ﭘﺎك ﮐﻦ ﺗﻌﻮﯾﺾ اﻣﻦ‬

‫‪sdmem‬‬
‫‪sdmem‬ﭘﺎك ﮐﻨﻨﺪه ‪ memory‬اﻣﻦ اﺳﺖ‪ ،‬ﻃﺮاﺣﯽ ﺷﺪه اﺳﺖ ﮐﻪ داده ﻫﺎ ﻣﻮﺟﻮد در )‪memory (RAM‬ﺷﻤﺎ را‬
‫ﺑﻪ ﺻﻮرت اﻣﻦ ﻣﺤﺎﻓﻈﺖ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫اﺑﺘﺪا آن را ﺑﻪ ﻧﺎم ‪ ،smem‬اﻣﺎ ﺑﻪ دﻟﯿﻞ ‪ system‬ﻫﺎي ‪ ،Debain‬ﯾﮏ ﺑﺴﺘﻪ دﯾﮕﺮ ﺑﻪ ﻧﺎم ﻣﺼﺮف ‪ memory‬ﮔﺰارش‬
‫ﺷﺪه در ﻫﺮ ﻓﺮاﯾﻨﺪ و ﺑﺮ اﺳﺎس ﮐﺎرﺑﺮ وﺟﻮد دارد‪ ،‬ﺗﻮﺳﻌﻪ دﻫﻨﺪه ﺗﺼﻤﯿﻢ ﮔﺮﻓﺖ آن را ﺗﻐﯿﯿﺮ ﻧﺎم دﻫﺪ ‪sdmem .‬‬
‫‪$ sudo sdmem -f -v‬‬
‫ﺑﺮاي اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ اﺳﺘﻔﺎده‪ ،‬از ﻃﺮﯾﻖ ﺻﻔﺤﻪ ‪ man sdmem‬ﺧﻮاﻧﺪن‪:‬‬
‫‪$ man sdmem‬‬

‫‪122‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪123‬‬

‫ﻣﺎﻧﯿﺘﻮرﯾﻨﮓ‬
‫اﯾﻦ ﺳﺮي ﻣﺎ در ﺣﺎل اﺟﺮا از دﺳﺘﻮرات و ﻣﺎﻧﯿﺘﻮرﯾﻨﮓ ﻋﻤﻠﮑﺮد در ‪ linux‬اﺳﺖ‪.‬ﻫﺮ دو دﺳﺘﻮر ‪Vmstat‬و ‪Iostat‬در‬
‫ﮐﻠﯿﻪ ي ‪ system‬ﻋﺎﻣﻞ ﻫﺎي ﯾﻮﻧﯿﮑﺲ ) ‪( Linux / Unix / FreeBSD / Solaris‬ﻣﻮﺟﻮد ﻫﺴﺘﻨﺪ‪.‬‬
‫اﮔﺮ دﺳﺘﻮرات ‪vmstat‬و ‪iostat‬در ﺟﻌﺒﻪ ﺷﻤﺎ ﻣﻮﺟﻮد ﻧﯿﺴﺖ‪ ،‬ﻟﻄﻔﺎ ﺑﺴﺘﻪ ‪sysstat‬را ‪ install‬ﮐﻨﯿﺪ‪.‬دﺳﺘﻮرات‬
‫‪sysstat‬ﻫﺴﺘﻨﺪ ‪-‬اﺑﺰار ﻧﻈﺎرت ﺑﺮ‬ ‫‪sar ،vmstat‬و ‪iostat‬ﻣﺠﻤﻮﻋﻪ اي از ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد در‬
‫‪system.Iostat‬ﮔﺰارﺷﺎت ‪CPU‬و ﺗﻤﺎم آﻣﺎر دﺳﺘﮕﺎه را ﺗﻮﻟﯿﺪ ﻣﯽ ﮐﻨﺪ‪.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ‪sysstat‬را ﺑﺎ اﺳﺘﻔﺎده از‬
‫‪sourcot source‬از ‪sysstat‬ﻟﯿﻨﮏ ‪ download‬و ‪ install‬ﮐﻨﯿﺪ‪ ،‬اﻣﺎ ﺗﻮﺻﯿﻪ ﻣﯽ ﮐﻨﯿﻢ از ﻃﺮﯾﻖ دﺳﺘﻮر‬
‫‪ YUMinstall‬ﮐﻨﯿﺪ‪.‬‬
‫ﻣﺎﻧﯿﺘﻮرﯾﻨﮓ ﻋﻤﻠﮑﺮد ‪ linux‬ﺑﺎ ‪Vmstat‬‬
‫‪Sysstat‬را در ‪ install linux‬ﮐﻨﯿﺪ‬
‫‪# yum-sysstat‬را ‪ install‬ﮐﻨﯿﺪ‬
‫‪vmstat -‬ﺧﻼﺻﻪ اﻃﻼﻋﺎت ‪ ، memory‬ﭘﺮدازش ‪ ،‬ﭘﯿﻤﺎﯾﺶ و ﻏﯿﺮه‬ ‫‪.1‬‬
‫‪IOSTAT -‬آﻣﺎر ﭘﺮدازش ﻣﺮﮐﺰي ) ‪ ( CPU‬و آﻣﺎر ورودي ‪ /‬ﺧﺮوﺟﯽ ﺑﺮاي دﺳﺘﮕﺎه ﻫﺎ و ﭘﺎرﺗﯿﺸﻦ‬ ‫‪.2‬‬
‫ﻫﺎ‪.‬‬
‫‪ 6‬ﻣﺜﺎل دﺳﺘﻮراﻟﻌﻤﻞ ‪ Vmstat‬در ‪linux‬‬
‫‪. 1‬ﻓﻬﺮﺳﺖ ‪ memory‬ﻓﻌﺎل و ﻏﯿﺮ ﻓﻌﺎل‬
‫در ﻣﺜﺎل زﯾﺮ ﺷﺶ ﺳﺘﻮن وﺟﻮد دارد‪.‬ﻗﺎﺑﻞ ﺗﻮﺟﻪ ﺳﺘﻮن ﻫﺎ در ﺻﻔﺤﻪ ﻣﺮد ‪vmstat‬در ﺟﺰﺋﯿﺎت ﺗﻮﺿﯿﺢ داده ﺷﺪه‬
‫اﺳﺖ‪.‬ﻣﻬﻢ ﺗﺮﯾﻦ زﻣﯿﻨﻪ ﻫﺎ ﺗﺤﺖ ‪ memory‬و ﺳﯽ ﻫﺴﺘﻨﺪ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ در زﯾﺮ ﺳﺘﻮن ﻣﺒﺎدﻟﻪ‪.‬‬
‫‪[ root@ hosein ~] # vmstat -a‬‬

‫‪procs‬‬ ‫‪ ---‬ﻣﺒﺎدﻟﻪ‪-- -- -- -- --- memory‬‬ ‫‪-- -- -- -- --‬‬ ‫‪-- --‬‬ ‫‪-- -- io‬‬ ‫‪--‬‬
‫‪-- --system -- -- --- CPU -- ---‬‬
‫‪ cs us sy id wa st‬در ‪ si so bi bo‬ﻓﻌﺎل ‪rb swpd free inactive‬‬
‫‪1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0‬‬

‫‪2.‬اﺟﺮاي '‪ vmstat 'X‬ﺛﺎﻧﯿﻪ و ‪ ('N'number‬ﺑﺎر)‬


‫ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ دﺳﺘﻮر‪vmstat ،‬ﻫﺮ دو ﺛﺎﻧﯿﻪ اﺟﺮا ﻣﯽ ﺷﻮد و ﭘﺲ از اﺟﺮاي ﺷﺶ ﻓﻮاﺻﻞ ﺑﻪ ﻃﻮر ﺧﻮدﮐﺎر ﻣﺘﻮﻗﻒ ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫‪[ root@ hosein ~] # vmstat 2 6‬‬

‫‪123‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪124‬‬

‫‪3. Vmstat‬ﺑﺎ ﺑﺮﭼﺴﺐ ﻫﺎي زﻣﺎﻧﯽ‬


‫دﺳﺘﻮر ‪vmstat‬ﺑﺎ ﭘﺎراﻣﺘﺮ ‪-t‬ﻧﺸﺎﻧﮕﺮﻫﺎي ‪timestamps‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ ﺑﺎ ﻫﺮ ﺧﻄﯽ ﮐﻪ در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه‬
‫اﺳﺖ‪.‬‬
‫‪[ hosein @ hosein ~] $ vmstat -t 1 5‬‬

‫‪procs‬‬ ‫‪ ---‬ﻣﺒﺎدﻟﻪ‪-- -- -- -- --- memory‬‬ ‫‪-- -- -- -- --‬‬ ‫‪-- --‬‬ ‫‪-- -- io‬‬ ‫‪--‬‬
‫‪--‬‬ ‫‪--system --‬‬ ‫‪-- --- CPU‬‬ ‫‪-- -- -- -‬‬
‫آﻣﺎر ﺷﻤﺎرﻧﺪه ﻫﺎي ﻣﺨﺘﻠﻒ‬
‫دﺳﺘﻮر ‪vmstat‬و ‪-s‬ﺳﻮﺋﯿﭻ ﻧﻤﺎﯾﺶ ﺧﻼﺻﻪ ﺷﻤﺎرﻧﺪه ﻫﺎي روﯾﺪاد ﻫﺎي ﻣﺨﺘﻠﻒ و آﻣﺎر ‪ memory‬اﺳﺖ‪.‬‬
‫‪[ hosein @ hosein ~] $ vmstat -s‬‬
‫آﻣﺎر دﯾﺴﮏ‬

‫‪[ hosein @ hosein ~] $ vmstat -d‬‬

‫ﻧﻤﺎﯾﺶ آﻣﺎر در ﻣﮕﺎﺑﺎﯾﺖ‬


‫‪vmstat‬در ﻣﮕﺎﺑﺎﯾﺖ ﺑﺎ ﭘﺎراﻣﺘﺮﻫﺎي ‪-S‬و ( ‪M‬ﻣﺠﻠﻪ و ﻣﮕﺎﺑﺎﯾﺖ( ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ‪vmstat‬آﻣﺎر‬
‫در ﮐﯿﻼﺑﺎﯾﺖ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # vmstat -SM 1 5‬‬
‫ﻧﻤﺎﯾﺶ ‪ CPU‬و آﻣﺎر‪I / O‬‬
‫‪Iostat‬ﺑﺪون اﺳﺘﺪﻻل ﻧﻤﺎﯾﺶ ﭘﺮدازﻧﺪه و ‪I / O‬آﻣﺎر ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺎم ﭘﺎرﺗﯿﺸﻦ ﻫﺎ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # iostat‬‬

‫)‪linux279-2.6.32 .el6.i686 ( hosein .com) 09/03/2012 _i686_ (1 CPU‬‬

‫ﻓﻘﻂ آﻣﺎر ‪ CPU‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬


‫‪iostat‬ﺑﺎ اﺳﺘﺪﻻل ‪-c‬ﻓﻘﻂ آﻣﺎر ‪CPU‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # iostat -c‬‬

‫‪124‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪125‬‬

‫ﺗﻨﻬﺎ دﯾﺴﮏ ﻫﺎي ‪ I / O Statistics‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬


‫‪Iostat‬ﺑﺎ اﺳﺘﺪﻻل ﻫﺎي ‪-d‬ﻓﻘﻂ دﯾﺴﮏ ﻫﺎي ‪I / O‬آﻣﺎر ﻣﺮﺑﻮط ﺑﻪ ﺗﻤﺎم ﭘﺎرﺗﯿﺸﻦ ﻫﺎ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # iostat -d‬‬

‫‪.‬آﻣﺎر ‪ I / O‬را ﻓﻘﻂ ﺑﺮاي ﯾﮏ دﺳﺘﮕﺎه ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬


‫ﺑﻪ ﻃﻮر ﭘﯿﺸﻔﺮض آن آﻣﺎر ﺗﻤﺎم ﭘﺎرﺗﯿﺸﻦ ﻫﺎ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪ ،‬ﺑﺎ ﭘﯿﮑﺮﺑﻨﺪي ﻫﺎي ‪-p‬و دﺳﺘﮕﺎه ﻧﻤﺎﯾﺶ ﺗﻨﻬﺎ دﯾﺴﮏ ﻫﺎ‬
‫‪I / O‬آﻣﺎر ﺑﺮاي دﺳﺘﮕﺎه ﺧﺎص ﻓﻘﻂ ﺑﻪ ﻋﻨﻮان ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # iostat -p sda‬‬

‫‪.‬ﻧﻤﺎﯾﺶ ‪ LVM‬آﻣﺎر‬
‫ﺑﺎ ﭘﺎراﻣﺘﺮ )‪-N (Uppercase‬ﺗﻨﻬﺎ آﻣﺎر ‪LVM‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # iostat -N‬‬

‫‪.‬ﻧﺴﺨﻪ‪Iostat.‬‬
‫ﺑﺎ ﭘﺎراﻣﺘﺮ )‪-V (Uppercase‬ﭘﺎراﻣﺘﺮ ‪iostat‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪[ root@ hosein ~] # iostat -V‬‬

‫ﻧﺴﺨﻪ ‪sysstat 9.0.4‬‬


‫ﻧﮑﺘﻪ‪: vmstat‬و ‪iostat‬ﺷﺎﻣﻞ ﺗﻌﺪاد ﺳﺘﻮن ﻫﺎ و ﭘﺮﭼﻢ ﻫﺎﯾﯽ اﺳﺖ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ در ﺟﺰﺋﯿﺎت ﺗﻮﺿﯿﺢ داده ﺷﻮد‪.‬اﮔﺮ‬
‫ﻣﯽ ﺧﻮاﻫﯿﺪ ﺑﯿﺸﺘﺮ در ﻣﻮرد آن ﺑﺪاﻧﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ ﺻﻔﺤﻪ ﺷﺨﺼﯽ ‪vmstat‬و ‪iostat‬را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬ﻟﻄﻔﺎ اﮔﺮ اﯾﻦ‬
‫ﮐﺘﺎب را از ﻃﺮﯾﻖ ﺟﻌﺒﻪ ﻧﻈﺮ ﺧﻮد در زﯾﺮ ﭘﯿﺪا ﮐﻨﯿﺪ‪ ،‬ﺑﻪ اﺷﺘﺮاك ﺑﮕﺬارﯾﺪ‪.‬‬
‫دﺳﺘﻮر‪ iw‬ﺑﺮاي ﻣﺪﯾﺮﯾﺖ دﺳﺘﮕﺎه ﻫﺎي ﺑﯽ ﺳﯿﻢ و ﭘﯿﮑﺮﺑﻨﺪي آﻧﻬﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ iw l‬‬
‫ﻓﺮﻣﺎن‪iwlist‬‬
‫ﻓﺮﻣﺎن‪ iwlist‬ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ﺑﯽ ﺳﯿﻢ دﻗﯿﻖ از ﯾﮏ راﺑﻂ ﺑﯽ ﺳﯿﻢ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬دﺳﺘﻮر زﯾﺮ ﺷﻤﺎ را ﻗﺎدر ﻣﯿﺴﺎزد‬
‫اﻃﻼﻋﺎت دﻗﯿﻖ در ﻣﻮرد راﺑﻂ ‪wlp1s0‬درﯾﺎﻓﺖ ﮐﻨﯿﺪ‪.‬‬
‫‪$ iwlist wlp1s0 scan‬‬

‫‪125‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪126‬‬

‫دﺳﺘﻮر ‪kill‬‬
‫ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﯾﮏ ﺑﺮﻧﺎﻣﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﭘﺎﺳﺨﯽ ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ ﭼﮕﻮﻧﻪ از آن ﺧﻼص ﺷﻮﯾﺪ؟ ﺷﻤﺎ اﻟﺒﺘﻪ از دﺳﺘﻮر ‪kill‬‬
‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﺪ ‪.‬ﺑﯿﺎﯾﯿﺪ اﯾﻦ را در ‪ xload‬اﻣﺘﺤﺎن ﮐﻨﯿﻢ ‪.‬ﺑﺮاي اﻧﺠﺎم اﯾﻦ ﮐﺎر ﻣﯽ ﺗﻮاﻧﯿﺪ از ﻫﺮ ﻣﺸﮑﻠﯽ ﯾﺎ ‪ps‬اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ ‪ .‬ﺑﺎ ‪ps‬ﺷﻤﺎ ﯾﮏ ﺷﻨﺎﺳﻪ ﻓﺮآﯾﻨﺪ )‪ (PID‬داده ﻣﯽ ﺷﻮد ‪.‬ﻣﺎ ﻫﺮ دو روش را اﻧﺠﺎم ﺧﻮاﻫﯿﻢ داد‪:‬‬

‫& ‪me@hossein]$ xload‬‬


‫‪[1] 1292‬‬
‫‪$ jobs‬‬
‫& ‪[1]+ Running xload‬‬
‫‪$ kill %1‬‬
‫& ‪$ xload‬‬
‫‪[2] 1293‬‬
‫‪[1] Terminated xload‬‬
‫‪$ ps‬‬
‫‪PID TTY TIME CMD‬‬
‫‪1280 pts/5 00:00:00 bash‬‬
‫‪1293 pts/5 00:00:00 xload‬‬
‫‪1294 pts/5 00:00:00 ps‬‬
‫‪$ kill 1293‬‬
‫‪[2]+ Terminated xload‬‬
‫‪$‬‬
‫در ﺣﺎﻟﯽ ﮐﻪ ﻓﺮﻣﺎن ‪ kill‬ﺑﺮاي "‪ "kill‬ﻓﺮآﯾﻨﺪﻫﺎ ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪ ،‬ﻫﺪف واﻗﻌﯽ آن ارﺳﺎل ﺳﯿﮕﻨﺎل ﻫﺎ ﺑﻪ‬
‫ﻓﺮآﯾﻨﺪﻫﺎ اﺳﺖ ‪ .‬اﻏﻠﺐ زﻣﺎن ﺳﯿﮕﻨﺎل در ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﺪه اﺳﺖ ﺗﺎ ﻓﺮاﯾﻨﺪ را ﻓﺮاﻣﻮش ﮐﻨﺪ‪ ،‬اﻣﺎ ﺑﯿﺸﺘﺮ از آن اﺳﺖ ‪.‬ﺑﺮﻧﺎﻣﻪ‬
‫ﻫﺎ )اﮔﺮ ﺑﻪ درﺳﺘﯽ ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﺎﺷﻨﺪ( ﺑﺮاي ﺳﯿﮕﻨﺎل ﻫﺎ از ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﮔﻮش ﻓﺮا ﻣﯽ دﻫﻨﺪ و ﺑﻪ آﻧﻬﺎ ﭘﺎﺳﺦ ﻣﯽ‬
‫دﻫﻨﺪ‪ ،‬اﻏﻠﺐ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﺑﺮﺧﯽ از روش ﻫﺎي ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد ﻗﻄﻊ ﺷﻮد ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﯾﮏ وﯾﺮاﯾﺸﮕﺮ ﻣﺘﻦ‬
‫ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي ﻫﺮ ﺳﯿﮕﻨﺎﻟﯽ ﮐﻪ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﮐﺎرﺑﺮ ورود ﺑﻪ ﺳﯿﺴﺘﻢ را ﺧﺎﻣﻮش ﻣﯽ ﮐﻨﺪ ﯾﺎ اﯾﻨﮑﻪ ﮐﺎﻣﭙﯿﻮﺗﺮ‬
‫ﺧﺎﻣﻮش ﻣﯽ ﺷﻮد‪ ،‬ﮔﻮش دﻫﺪ ‪.‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ اﯾﻦ ﺳﯿﮕﻨﺎل درﯾﺎﻓﺖ ﻣﯽ ﺷﻮد‪ ،‬ﻗﺒﻞ از ﺧﺮوج‪ ،‬ﮐﺎر را اداﻣﻪ ﻣﯽ دﻫﺪ ‪.‬دﺳﺘﻮر‬
‫‪kill‬ﻣﯽ ﺗﻮاﻧﺪ ﺳﯿﮕﻨﺎل ﻫﺎي ﻣﺨﺘﻠﻔﯽ را ﺑﺮاي ﻓﺮآﯾﻨﺪﻫﺎ ارﺳﺎل ﮐﻨﺪ ‪.‬ﺗﺎﯾﭗ ﮐﺮدن ‪:‬‬
‫‪kill -l‬‬
‫ﺑﻪ ﺷﻤﺎ ﯾﮏ ﻟﯿﺴﺖ از ﺳﯿﮕﻨﺎل ﻫﺎي آن را ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ ﮐﻨﺪ ‪.‬اﮐﺜﺮ آﻧﻬﺎ ﻧﺴﺒﺘﺎ ﻣﺒﻬﻢ ﻫﺴﺘﻨﺪ‪ ،‬اﻣﺎ ﭼﻨﺪﯾﻦ ﻣﻮرد ﻣﻔﯿﺪ‬
‫ﻫﺴﺘﻨﺪ ‪:‬‬

‫‪126‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪127‬‬

‫ﺳﯿﮕﻨﺎل‬
‫ﻧﺎم ﺷﺮح‬
‫‪#‬‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ‪.‬ﻗﻄﻊ ﮐﺮدن ﺳﯿﮕﻨﺎل ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ ﺑﺮاي اﯾﻦ ﺳﯿﮕﻨﺎل ﮔﻮش دﻫﻨﺪ و ﺑﺮ آن ﻋﻤﻞ ﮐﻨﻨﺪ‬
‫‪SIGHUP‬‬ ‫‪1‬‬
‫‪.‬ﺗﺮﻣﯿﻨﺎل را ﺑﺒﻨﺪﯾﺪ‪ ،‬اﯾﻦ ﺳﯿﮕﻨﺎل ﺑﻪ ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا در ﯾﮏ ﺗﺮﻣﯿﻨﺎل ارﺳﺎل ﻣﯽ ﺷﻮد‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻣﯽ ﺗﻮاﻧﻨﺪ اﯾﻦ ‪.‬ﺳﯿﮕﻨﺎل وﻗﻔﻪ اﯾﻦ ﺳﯿﮕﻨﺎل ﺑﻪ ﻓﺮآﯾﻨﺪﻫﺎ داده ﻣﯽ ﺷﻮد ﺗﺎ آﻧﻬﺎ را ﻗﻄﻊ ﮐﻨﻨﺪ‬
‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ اﯾﻦ ﺳﯿﮕﻨﺎل را ﺑﻪ ﻃﻮر ﻣﺴﺘﻘﯿﻢ ﺑﺎ ‪.‬ﺳﯿﮕﻨﺎل را ﭘﺮدازش ﮐﻨﻨﺪ و ﺑﺮ آن ﻋﻤﻞ ﮐﻨﻨﺪ‬ ‫‪SIGINT‬‬ ‫‪2‬‬
‫‪.‬در ﭘﻨﺠﺮه ﺗﺮﻣﯿﻨﺎل ﮐﻪ در آن ﺑﺮﻧﺎﻣﻪ اﺟﺮا ﻣﯽ ﺷﻮد را ﺻﺎدر ﮐﻨﯿﺪ ‪ Ctrl-c‬ﺗﺎﯾﭗ ﮐﺮدن‬
‫دوﺑﺎره ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻣﯽ ‪.‬ﺳﯿﮕﻨﺎل ﺧﺎﺗﻤﻪ دادن اﯾﻦ ﺳﯿﮕﻨﺎل ﺑﻪ ﻓﺮآﯾﻨﺪﻫﺎ داده ﻣﯽ ﺷﻮد ﺗﺎ آﻧﻬﺎ را ﺧﺎﺗﻤﻪ دﻫﺪ‬
‫‪ SIGTERM‬اﮔﺮ ﺳﯿﮕﻨﺎل ﻣﺸﺨﺺ ﻧﺸﺪه ﺑﺎﺷﺪ‪ ،‬اﯾﻦ ﺳﯿﮕﻨﺎل ﺑﻪ ‪.‬ﺗﻮاﻧﻨﺪ اﯾﻦ ﺳﯿﮕﻨﺎل را ﭘﺮدازش ﮐﻨﻨﺪ و ﺑﺮ آن ﻋﻤﻞ ﮐﻨﻨﺪ‬ ‫‪15‬‬
‫‪.‬ارﺳﺎل ﻣﯽ ﺷﻮد ‪kill‬ﻃﻮر ﭘﯿﺶ ﻓﺮض ﺗﻮﺳﻂ دﺳﺘﻮر‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎ ﻧﻤﯽ ‪.‬ﺳﯿﮕﻨﺎل را ﺑﮑﺸﯿﺪ اﯾﻦ ﺳﯿﮕﻨﺎل ﻣﻨﺠﺮ ﺑﻪ ﻓﺴﺦ ﻓﻮري روﻧﺪ ﺗﻮﺳﻂ ﻫﺴﺘﻪ ﻟﯿﻨﻮﮐﺲ ﻣﯽ ﺷﻮد‬
‫‪SIGKILL‬‬ ‫‪9‬‬
‫‪.‬ﺗﻮاﻧﻨﺪ ﺑﺮاي اﯾﻦ ﺳﯿﮕﻨﺎل ﮔﻮش ﮐﻨﻨﺪ‬
‫اﮐﻨﻮن ﻓﺮض ﮐﻨﯿﺪ ﮐﻪ ﺑﺮﻧﺎﻣﻪ اي دارﯾﺪ ﮐﻪ ﻧﺎاﻣﯿﺪ ﮐﻨﻨﺪه اﺳﺖ و ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﯿﺪ از ﺷﺮ آن ﺧﻼص ﺷﻮﯾﺪ ‪.‬در اﯾﻨﺠﺎ‬
‫ﭼﯿﺰي اﺳﺖ ﮐﻪ ﺷﻤﺎ اﻧﺠﺎم ﻣﯽ دﻫﯿﺪ ‪:‬‬
‫از ﻓﺮﻣﺎن ‪ps‬ﺑﺮاي درﯾﺎﻓﺖ ﻓﺮآﯾﻨﺪ ﺷﻨﺎﺳﺎﯾﯽ )‪ (PID‬ﻓﺮاﯾﻨﺪي ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ ﭘﺎﯾﺎن دﻫﯿﺪ اﺳﺘﻔﺎده‬ ‫‪.1‬‬
‫ﮐﻨﯿﺪ ‪.‬‬
‫ﯾﮏ دﺳﺘﻮر ‪kill‬ﺑﺮاي آن ‪ PID‬ﺻﺎدر ﮐﻨﯿﺪ ‪.‬‬ ‫‪.2‬‬
‫اﮔﺮ روﻧﺪ ﻓﺮاﻣﻮش ﺷﻮد )ﯾﻌﻨﯽ ﺳﯿﮕﻨﺎل را ﻧﺎدﯾﺪه ﻣﯽ ﮔﯿﺮد(‪ ،‬ﺳﯿﮕﻨﺎل ﻫﺎي ﻓﺰاﯾﻨﺪه اي را ارﺳﺎل ﻣﯽ‬ ‫‪.3‬‬
‫ﮐﻨﺪ ﺗﺎ زﻣﺎﻧﯽ ﮐﻪ ﭘﺎﯾﺎن ﯾﺎﺑﺪ ‪.‬‬
‫‪$ ps x | grep bad_program‬‬
‫‪PID TTY STAT TIME COMMAND‬‬
‫‪2931 pts/5 SN 0:00 bad_program‬‬

‫‪$ kill -SIGTERM 2931‬‬


‫‪$ kill -SIGKILL 2931‬‬

‫‪ kill‬ﯾﮏ ﻓﺮاﯾﻨﺪ ﺑﺎ اﺳﺘﻔﺎده از ‪ PID‬ﺧﻮد ﺑﺎ ارﺳﺎل ﯾﮏ ﺳﯿﮕﻨﺎل ﺑﻪ آن )ﭘﯿﺶ ﻓﺮض ﺳﯿﮕﻨﺎل ﺑﺮاي ‪ kill‬اﺳﺖ‬
‫)‪TERM‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ kill -p 2300‬‬
‫‪$ kill -SIGTERM -p 2300‬‬
‫‪ killall‬ﻓﺮﻣﺎن‬

‫دﺳﺘﻮر‪ killall‬ﺑﺮاي ‪ kill‬ﯾﮏ ﻓﺮآﯾﻨﺪ ﺑﺎ ﻧﺎم آن ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪.‬‬


‫‪$ killall firefox‬‬

‫‪127‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪128‬‬

‫دﺳﺘﻮر‪last‬‬
‫آﺧﺮﯾﻦ دﺳﺘﻮر ﻟﯿﺴﺘﯽ از آﺧﺮﯾﻦ ﮐﺎرﺑﺮان وارد ﺷﺪه را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ last‬‬

‫دﺳﺘﻮر‪ LN‬ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﻟﯿﻨﮏ ﻧﺮم اﻓﺰاري ﺑﯿﻦ ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از‪ flag -s‬ﻣﺎﻧﻨﺪ اﯾﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ ln -s / usr / bin / lscpu cpuinfo‬‬
‫‪find‬‬
‫‪locate command‬ﺑﺮاي ‪ find‬ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻧﺎم اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﺑﺰار ‪ Locate‬ﺑﻬﺘﺮ و ﺳﺮﯾﻌﺘﺮ از آن اﺳﺖ ﮐﻪ‬
‫ﻫﻤﺘﺎي ﺧﻮد را ﭘﯿﺪا ﮐﻨﯿﺪ‪.‬‬
‫دﺳﺘﻮر زﯾﺮ ﯾﮏ ﻓﺎﯾﻞ را ﺑﺎ ﻧﺎم دﻗﯿﻖ آن )ﻧﻪ * ﻧﺎم *( ﺟﺴﺘﺠﻮ ﻣﯽ ﮐﻨﺪ‪:‬‬
‫'‪$ locate -b '\ domain-list.txt‬‬
‫ﻓﺮﻣﺎن ورود‬
‫دﺳﺘﻮر ورود ﺑﻪ ‪ system‬ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﺟﻠﺴﻪ ﺟﺪﯾﺪ ﺑﺎ ‪ system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﺧﻮاﻫﺪ ﺷﺪ ﮐﻪ‬
‫ﻧﺎم ﮐﺎرﺑﺮي و ﮔﺬرواژه ﺧﻮد را ﺑﻪ ﻋﻨﻮان زﯾﺮ وارد ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo login‬‬
‫دﺳﺘﻮر‪ ls‬ﺑﺮاي ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت داﯾﺮﮐﺘﻮري اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﮐﺎر ﺑﯿﺸﺘﺮ ﯾﺎ ﮐﻤﺘﺮ ﻣﺎﻧﻨﺪ دﺳﺘﻮر ‪ dir‬اﻧﺠﺎم ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫ﮔﺰﯾﻨﻪ ‪-l‬ﻗﺎﻟﺐ ﻓﺮﻣﺖ ﻟﯿﺴﺖ ﻃﻮﻻﻧﯽ ﻣﺎﻧﻨﺪ اﯾﻦ را ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ ls -l file1‬‬

‫دﺳﺘﻮر ‪ lsof‬ﻧﻤﻮﻧﻪ در ‪linux‬‬


‫اﯾﻦ ﺳﺮي از دﺳﺘﻮرات ‪ linux‬ﻣﺎ اﺳﺖ و در اﯾﻦ ﮐﺘﺎب ﻗﺼﺪ دارﯾﻢ دﺳﺘﻮر ‪lsof‬را ﺑﺎ ﻣﺜﺎﻟﻬﺎي ﻋﻤﻠﯽ ﺑﺮرﺳﯽ‬
‫ﮐﻨﯿﻢ‪.lsof‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ "ﻓﺎﯾﻠﻬﺎي ﺑﺎز ﺷﺪه از"‪ LiSt Open‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺗﺎ ﻣﺸﺨﺺ ﺷﻮد ﮐﺪام ﭘﺮوﻧﺪه‬
‫ﭼﻪ ﭘﺮوﺳﻪ اي ﺑﺎز اﺳﺖ‪.‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻫﻤﻪ ﻣﺎ ﻣﯽ داﻧﯿﻢ ‪ / linux‬ﯾﻮﻧﯿﮑﺲ ﻫﻤﻪ ﭼﯿﺰ را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﻓﺎﯾﻞ ( ﻟﻮﻟﻬﻬﺎ ‪،‬‬
‫ﺳﻮﮐﺖ ﻫﺎ ‪ ،‬داﯾﺮﮐﺘﻮري ﻫﺎ ‪ ،‬دﺳﺘﮕﺎه ﻫﺎ و ﻏﯿﺮه( در ﻧﻈﺮ ﻣﯽ ﮔﯿﺮد‪.‬ﯾﮑﯽ از دﻻﯾﻞ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪lsof‬اﯾﻦ اﺳﺖ ﮐﻪ‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ دﯾﺴﮏ را ﻧﻤﯽ ﺗﻮان ﺑﺪون ‪ install‬ﺑﻪ ﻋﻨﻮان ﻓﺎﯾﻞ ﻫﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺎ ﮐﻤﮏ اﯾﻦ دﺳﺘﻮر ﻣﯽ ﺗﻮاﻧﯿﻢ‬
‫ﻓﺎﯾﻞ ﻫﺎي ﻣﻮرد اﺳﺘﻔﺎده را ﺑﻪ راﺣﺘﯽ ﺷﻨﺎﺳﺎﯾﯽ ﮐﻨﯿﻢ‪.‬‬

‫‪128‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪129‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪lsof linux‬‬


‫‪1.‬ﻟﯿﺴﺖ ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﺑﺎز ﺑﺎ ﻓﺮﻣﺎن‪lsof‬‬
‫در ﻣﺜﺎل زﯾﺮ ﻟﯿﺴﺘﯽ از ﭘﺮوﻧﺪه ﻫﺎي ﺑﺎز را ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﺑﻌﻀﯽ از آﻧﻬﺎ ﺑﺮاي درك ﺑﻬﺘﺮ اﺳﺖ ﮐﻪ ﺳﺘﻮن ﻫﺎﯾﯽ ﻣﺎﻧﻨﺪ‬
‫دﺳﺘﻮر ‪TYPE ،FD ،USER ،PID ،‬و ﻏﯿﺮه را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# lsof‬‬

‫ﺑﺨﺶ ﻫﺎ و ﻣﻘﺎدﯾﺮ آن ﺧﻮد ﺗﻮﺿﯿﺤﯽ اﺳﺖ‪.‬ﺑﺎ اﯾﻦ وﺟﻮد‪ ،‬ﺳﺘﻮن ‪FD & TYPE‬را دﻗﯿﻖ ﺗﺮ ﺑﺮرﺳﯽ ﺧﻮاﻫﯿﻢ ﮐﺮد‪.‬‬
‫‪FD -‬ﻧﺸﺎﻧﮕﺮ ﺗﻮﺻﯿﻔﮕﺮ ﻓﺎﯾﻞ اﺳﺖ و ﻣﻤﮑﻦ اﺳﺖ ﺑﺮﺧﯽ از ﻣﻘﺎدﯾﺮ را ﺑﻪ ﻋﻨﻮان‪:‬‬
‫‪cwd‬داﯾﺮﮐﺘﻮري ﮐﺎر ﻓﻌﻠﯽ‬ ‫‪.1‬‬
‫‪ root‬داﯾﺮﮐﺘﻮري ‪rtd‬‬ ‫‪.2‬‬
‫ﻣﺘﻦ ﺑﺮﻧﺎﻣﻪ ( ‪txt‬ﮐﺪ و داده ﻫﺎ)‬ ‫‪.3‬‬
‫ﻓﺎﯾﻞ ‪memory memory memory‬‬ ‫‪.4‬‬
‫ﻫﻤﭽﻨﯿﻦ در اﻋﺪاد ﺳﺘﻮن ‪FD‬ﻣﺎﻧﻨﺪ ‪1u‬ﺗﻮﺻﯿﻔﮕﺮ ﻓﺎﯾﻞ واﻗﻌﯽ اﺳﺖ و ﺑﻪ دﻧﺒﺎل آن ﺷﻤﺎ‪w ،r ،‬از آن ﺣﺎﻟﺖ ﺑﻪ ﻋﻨﻮان‪:‬‬
‫‪r‬ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﺧﻮاﻧﺪن‪.‬‬ ‫‪.1‬‬
‫‪W‬ﺑﺮاي دﺳﺘﺮﺳﯽ ﻧﻮﺷﺘﺎري‪.‬‬ ‫‪.2‬‬
‫ﺷﻤﺎ ﺑﺮاي دﺳﺘﺮﺳﯽ ﺑﻪ ﺧﻮاﻧﺪن و ﻧﻮﺷﺘﻦ‪.‬‬ ‫‪.3‬‬
‫‪TYPE -‬از ﻓﺎﯾﻞ ﻫﺎ و ﺷﻨﺎﺳﺎﯾﯽ آن‪.‬‬
‫‪DIR -‬داﯾﺮﮐﺘﻮري‬ ‫‪.1‬‬
‫‪REG -‬ﻓﺎﯾﻞ ﻣﻨﻈﻢ‬ ‫‪.2‬‬
‫‪CHR -‬ﻓﺎﯾﻞ ﺧﺎص ﮐﺎراﮐﺘﺮ‪.‬‬ ‫‪.3‬‬
‫‪FIFO -‬اوﻟﯿﻦ ﺑﺎر در اﺑﺘﺪا‬ ‫‪.4‬‬
‫‪2.‬ﻓﻬﺮﺳﺖ ﻓﺎﯾﻞ ﻫﺎي ﺑﺎز ﺷﺪه ﻣﺨﺼﻮص ﮐﺎرﺑﺮ‬
‫‪hosein‬را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬ ‫دﺳﺘﻮر زﯾﺮ ﻟﯿﺴﺖ ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎي ﺑﺎز ﺷﺪه ﮐﺎرﺑﺮ‬
‫‪# lsof -u hosein‬‬

‫‪COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME‬‬


‫‪sshd 1838 hosein cwd DIR 253،0 4096 2 /‬‬
‫‪sshd 1838 hosein rtd DIR 253،0 4096 2 /‬‬
‫‪sshd 1838 hosein txt REG 253،0 532336 188129 / usr / sbin / sshd‬‬
‫‪sshd 1838 hosein mem reg 253،0 19784 190237 /lib/libdl-2.12.so‬‬

‫‪129‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 130

‫ ﺧﺎص‬port ‫ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا در‬


‫ﻣﺜﺎل زﯾﺮ ﺗﻤﺎم‬.‫اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬-i ‫ ﻓﻘﻂ از دﺳﺘﻮر زﯾﺮ ﺑﺎ ﮔﺰﯾﻨﻪ‬،‫ ﺗﻤﺎم ﻓﺮآﯾﻨﺪ در ﺣﺎل اﺟﺮا از ﭘﻮرت ﺧﺎص‬find ‫ﺑﺮاي‬
.‫را ﻟﯿﺴﺖ ﻣﯽ ﮐﻨﺪ‬22 ‫ﭘﺮوﺳﻪ در ﺣﺎل اﺟﺮا ﭘﻮرت‬
# lsof -i TCP: 22

COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME


sshd 1471 root 3u IPv4 12683 0t0 TCP *: ssh (listen)
sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (listen)
‫ را ﺑﺎز ﮐﻨﯿﺪ‬1024-1 ‫ داﻣﻨﻪ‬TCP ‫ﻓﻬﺮﺳﺖ ﭘﺮوﻧﺪه ﻫﺎي ﭘﻮرت‬5.
.‫اﺳﺖ‬1-1024 ‫ﭘﻮرت ﻣﺤﺪوده از‬TCP ‫ﺑﺮاي ﻟﯿﺴﺖ ﺗﻤﺎم روﻧﺪ در ﺣﺎل اﺟﺮا از ﻓﺎﯾﻞ ﻫﺎي ﺑﺎز از‬
# lsof -i TCP: 1-1024

COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME


rpcbind 1203 rpc 11u IPv6 11336 0t0 TCP *: sunrpc (listen)
cupsd 1346 root 7u IPv4 12113 0t0 TCP localhost: ipp (listen)
sshd 1471 root 4u IPv6 12685 0t0 TCP *: ssh (listen)
master 1551 root 13u IPv6 12898 0t0 TCP localhost: smtp (listen)
sshd 1834 root 3r IPv4 15101 0t0 TCP 192.168.0.2:ssh-> 192.168.0.1:conclave-cpp
(ESTABLISHED)
sshd 1838 hosein 3u IPv4 15101 0t0 TCP 192.168.0.2:ssh-> 192.168.0.1:conclave-
cpp (ESTABLISHED)
sshd 1871 root 3r IPv4 15842 0t0 TCP 192.168.0.2:ssh-> 192.168.0.1:groove
(ESTABLISHED)
httpd 1918 root 5u IPv6 15991 0t0 TCP *: http (LISTEN)
httpd 1918 root 7u IPv6 15995 0t0 TCP *: https (LISTEN)
‫ﮐﺎرﺑﺮ را ﺑﺎ ﻋﻼﻣﺖ '^' رد ﮐﻨﯿﺪ‬6.
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ ﮐﺎرﺑﺮ ﺧﺎص را ﺑﺎ اﺳﺘﻔﺎده از '^'ﺑﺎ ﻓﺮﻣﺎن ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﺑﺎﻻ‬.‫ را رد ﮐﺮدﯾﻢ‬root ‫در اﯾﻨﺠﺎ ﻣﺎ ﮐﺎرﺑﺮ‬
.‫ ﺣﺬف ﮐﻨﯿﺪ‬،‫ﻧﺸﺎن داده ﺷﺪ‬
# lsof -i -u ^ root

COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME


rpcbind 1203 rpc 6u IPv4 11326 0t0 UDP *: sunrpc
rpcbind 1203 rpc 7u IPv4 11330 0t0 UDP *: 954
rpcbind 1203 rpc 8u IPv4 11331 0t0 TCP *: sunrpc (listen)

130
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪131‬‬

‫ﭘﯿﺪا ﮐﺮدن اﻓﺮادي ﮐﻪ ﻓﺎﯾﻞ ﻫﺎ و دﺳﺘﻮرات را دﻧﺒﺎل ﻣﯽ ﮐﻨﻨﺪ؟‬


‫در زﯾﺮ ﻣﺜﺎل ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﺎرﺑﺮ ‪ hosein‬از ﻓﺮﻣﺎن ﻣﺎﻧﻨﺪ ﭘﯿﻨﮓ و ‪/ etc‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪# lsof -i -u hosein‬‬

‫‪COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME‬‬


‫‪bash 1839 hosein cwd DIR 253،0 12288 15 / etc‬‬

‫ﻟﯿﺴﺖ ﺗﻤﺎم اﺗﺼﺎﻻت ﺷﺒﮑﻪ‬


‫دﺳﺘﻮر زﯾﺮ ﺑﺎ ﮔﺰﯾﻨﻪ '‪'-i‬ﻟﯿﺴﺖ ﺗﻤﺎم اﺗﺼﺎﻻت ﺷﺒﮑﻪ را '‪ ' LISTENING & ESTABLISHED‬را ﻧﺸﺎن‬
‫ﻣﯽ دﻫﺪ‪.‬‬
‫‪# lsof -i‬‬
‫ﺟﺴﺘﺠﻮ ﺗﻮﺳﻂ‪PID‬‬
‫ﻣﺜﺎل زﯾﺮ ﻓﻘﻂ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ [ ‪PID1‬ﯾﮏ ]اﺳﺖ‪.‬‬
‫‪# lsof -p 1‬‬

‫‪COMMAND PID USER FD TYPE DEVICE SIZE / OFF NAME NAME‬‬


‫‪init 1 root cwd DIR 253،0 4096 2 /‬‬
‫‪init 1 root rtd DIR 253،0 4096 2 /‬‬
‫‪init 1 root txt REG 253،0 145180 147164 / sbin / init‬‬
‫‪ /lib/libc-2.12.so‬ﻣﺠﻠﻪ ‪init 1 root190149 1889704 253،0‬‬
‫‪INIT 1 ROME MEM REG 253،0 142472 189970 /lib/ld-2.12.so‬‬
‫‪.‬ﺗﻤﺎم ﻓﻌﺎﻟﯿﺖ ﻫﺎي ﮐﺎرﺑﺮ ﺧﺎص را ﻧﺸﺎن دﻫﯿﺪ‬
‫ﮔﺎﻫﯽ اوﻗﺎت ﻣﻤﮑﻦ اﺳﺖ ﻣﺠﺒﻮر ﺷﻮﯾﺪ ﻫﻤﻪ ﭘﺮوﺳﻪ ﻫﺎ را ﺑﺮاي ﯾﮏ ﮐﺎرﺑﺮ ﺧﺎص ‪ kill‬ﮐﻨﯿﺪ‪.‬ﻓﺮﻣﺎن زﯾﺮ ﺗﻤﺎم ﭘﺮوﺳﻪ ﻫﺎي‬
‫ﮐﺎرﺑﺮ ‪ hosein‬را ﻣﯽ ﮐﺸﺪ‪.‬‬
‫` ‪# kill -9 `lsof -t -u hosein‬‬

‫‪nc / netcat command‬‬

‫‪131‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪132‬‬

‫)‪netcat‬ﺑﺮاي اﻧﺠﺎم ﻫﺮ ﻋﻤﻠﯿﺎﺗﯽ ﻣﺮﺑﻮط ﺑﻪ‪UDP ، TCP‬ﯾﺎ ﺳﻮﮐﺖ ﻫﺎي داﻣﻨﻪ ﯾﻮﻧﯿﮑﺲ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﻣﯽ‬
‫ﺗﻮاﻧﺪ ﻫﺮ دو ‪ IPv4‬و ‪ IPv6‬را ﺑﺮاي ﺑﺎز ﮐﺮدن اﺗﺼﺎﻻت‪ ، TCP‬ارﺳﺎل ﺑﺴﺘﻪ ﻫﺎي‪ listen ، UDP‬ﺑﻪ ﭘﻮرت ﻫﺎي‬
‫دﻟﺨﻮاه ‪ TCP‬و‪ ، UDP‬اﻧﺠﺎم ‪ scan‬ﭘﻮرت‪ ،‬اداره ﮐﻨﺪ‪.‬‬
‫دﺳﺘﻮر زﯾﺮ ﺑﻪ ﻣﺎ ﮐﻤﮏ ﺧﻮاﻫﺪ ﮐﺮد ﮐﻪ ﺑﺒﯿﻨﯿﻢ ﭘﻮرت ‪ 22‬در ‪ 192.168.56.5host‬ﺑﺎز اﺳﺖ‪.‬‬
‫‪$ nc-zv 192.168.1.5 22‬‬

‫دﺳﺘﻮرات ‪ Netstat‬ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ﺷﺒﮑﻪ ‪linux‬‬


‫‪netstat‬آﻣﺎر ﺷﺒﮑﻪ )ﯾﮏ اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن ﺑﺮاي ﻧﻈﺎرت ﺑﺮ ارﺗﺒﺎﻃﺎت ﺷﺒﮑﻪ در ﻫﺮ دو ورودي و ﺧﺮوﺟﯽ و ﻫﻤﭽﻨﯿﻦ‬
‫ﻣﺸﺎﻫﺪه ﺟﺪاول ﻣﺴﯿﺮﯾﺎﺑﯽ‪ ،‬آﻣﺎر راﺑﻂ ﮐﺎرﺑﺮي و ﻏﯿﺮه اﺳﺖ‪. netstat‬در ﺗﻤﺎم ‪ system‬ﻋﺎﻣﻞ ﻫﺎي ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ‬
‫ﻣﻮﺟﻮد اﺳﺖ و ﻫﻤﭽﻨﯿﻦ در ‪ system‬ﻋﺎﻣﻞ وﯾﻨﺪوز ﻧﯿﺰ ﻣﻮﺟﻮد اﺳﺖ‪.‬از ﻧﻈﺮ ﻋﯿﺐ ﯾﺎﺑﯽ ﺷﺒﮑﻪ و اﻧﺪازه ﮔﯿﺮي ﻋﻤﻠﮑﺮد‬
‫ﺑﺴﯿﺎر ﻣﻔﯿﺪ اﺳﺖ‪.netstat‬ﯾﮑﯽ از ﺳﺎده ﺗﺮﯾﻦ اﺑﺰارﻫﺎي ﺷﺒﮑﻪ اﺷﮑﺎل زداﯾﯽ ﺷﺒﮑﻪ اﺳﺖ‪ ،‬ﺑﻪ ﺷﻤﺎ ﻣﯽ ﮔﻮﯾﺪ ﮐﻪ ﭘﻮرت ﻫﺎ‬
‫ﺑﺎز ﻫﺴﺘﻨﺪ و آﯾﺎ ﺑﺮﻧﺎﻣﻪ ﻫﺎ در ﺣﺎل ‪ listen‬ﺑﻪ ﭘﻮرت ﻫﺴﺘﻨﺪ‪.‬‬

‫دﺳﺘﻮر ‪Netstat‬‬
‫اﯾﻦ اﺑﺰار ﺑﺴﯿﺎر ﻣﻬﻢ و ﻣﻔﯿﺪ ﺑﺮاي ﻣﺪﯾﺮان ﺷﺒﮑﻪ ‪ linux‬و ﻫﻤﭽﻨﯿﻦ ﻣﺪﯾﺮان ‪ system‬ﺑﺮاي ﻧﻈﺎرت و رﻓﻊ ﻣﺸﮑﻼت‬
‫ﻣﺮﺑﻮط ﺑﻪ ﺷﺒﮑﻪ ﺧﻮد و ﺗﻌﯿﯿﻦ ﻋﻤﻠﮑﺮد ﺗﺮاﻓﯿﮏ ﺷﺒﮑﻪ اﺳﺖ‪.‬اﯾﻦ ﮐﺘﺎب اﺳﺘﻔﺎده از دﺳﺘﻮر ‪netstat‬را ﺑﺎ ﻧﻤﻮﻧﻪ ﻫﺎي آن‬
‫ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ در ﻋﻤﻠﯿﺎت روزاﻧﻪ ﻣﻔﯿﺪ ﺑﺎﺷﺪ‪.‬‬

‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت ﻫﺎي ﻣﺘﺼﺎل ‪ TCP‬و‪UDP‬‬

‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت ﻫﺎ )ﻫﺮ دو ‪ TCP‬و )‪ UDP‬ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪netstat -a.‬‬
‫‪# netstat-a |more‬‬

‫ﻟﯿﺴﺖ اﺗﺼﺎﻻت ﭘﻮرت ) ‪TCP ( Transmission Control Protocol‬را ﺑﺎ اﺳﺘﻔﺎده از ‪netstat -at .‬‬
‫‪# netstat -at‬‬
‫ﻟﯿﺴﺖ اﺗﺼﺎﻻت‪UDP Ports‬‬
‫ﻓﻘﻂ ﭘﺮوﺗﮑﻞ ( ‪ UDP‬ﭘﺮوﺗﮑﻞ دﯾﺘﺎﮔﺮام ﮐﺎرﺑﺮ )را ﺑﺎ اﺳﺘﻔﺎده از ‪netstat -au‬ﻓﻬﺮﺳﺖ ﮐﻨﯿﺪ‪.‬‬
‫‪# netstat –au‬‬

‫ﻟﯿﺴﺖ ﺗﻤﺎم ارﺗﺒﺎﻃﺎت ‪listen‬‬


‫ﻟﯿﺴﺖ ﺗﻤﺎم اﺗﺼﺎﻻت ﭘﻮرت ﻓﻌﺎل ‪ listen‬ﺑﺎ ‪netstat -l .‬‬

‫‪132‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪133‬‬

‫‪# netstat -l‬‬

‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت ﻫﺎي ‪listen TCP‬‬


‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت‪ TCP listen‬ﻓﻌﺎل ﺑﺎ اﺳﺘﻔﺎده از ‪netstat -lt‬ﮔﺰﯾﻨﻪ‪.‬‬
‫‪# netstat -lt‬‬
‫اﺗﺼﺎل ﺑﻪ اﯾﻨﺘﺮﻧﺖ ﻓﻌﺎل )ﺗﻨﻬﺎ ﺳﺮور‬
‫‪ Proto Recv-Q‬ارﺳﺎل ‪-Q‬آدرس ﻣﺤﻠﯽ آدرس دوﻟﺖ ﺧﺎرﺟﯽ‬
‫‪tcp 0 0 *: dctp *: * listen‬‬
‫‪tcp 0 0 *: mysql *: * LISTEN‬‬
‫‪tcp 0 0 *: sunrpc *: * listen‬‬
‫‪tcp 0 0 *: munin *: * listen‬‬
‫‪tcp 0 0 *: ftp *: * listen‬‬
‫‪tcp 0 0 localhost.localdomain: ipp *: * listen‬‬
‫‪tcp 0 0 localhost.localdomain: smtp *: * listen‬‬
‫‪tcp 0 0 *: http *: * listen‬‬
‫‪tcp 0 0 *: ssh *: * listen‬‬
‫‪tcp 0 0 *: https *: * listen‬‬
‫ﻟﯿﺴﺖ ﺗﻤﺎم‪ UDP listen‬ﭘﻮرت ﻫﺎ‬
‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت ﻫﺎي‪ UDP listen‬ﻓﻌﺎل ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪netstat -lu .‬‬
‫‪# netstat -lu‬‬
‫‪ 7.‬ﻟﯿﺴﺖ ﺗﻤﺎم ﯾﻮﻧﯿﮑﺲ ﻫﺎي ‪listen‬‬
‫ﻟﯿﺴﺖ ﺗﻤﺎم ﭘﻮرت ﻫﺎي ‪ listen‬ﯾﻮﻧﯿﮑﺲ ﻓﻌﺎل ﺑﺎ اﺳﺘﻔﺎده از‬
‫‪netstat –lx‬‬
‫ﻧﻤﺎﯾﺶ آﻣﺎر ﺗﻮﺳﻂ ﭘﺮوﺗﮑﻞ‬
‫ﻧﻤﺎﯾﺶ آﻣﺎر ﺗﻮﺳﻂ ﭘﺮوﺗﮑﻞ‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪ ،‬آﻣﺎر ﺑﺮاي‪ ،ICMP ،UDP ، TCP‬و ﭘﺮوﺗﮑﻞ ﻫﺎي ‪ IP‬ﻧﻤﺎﯾﺶ داده‬
‫ﻣﯽ ﺷﻮد‪.‬ﭘﺎراﻣﺘﺮ ‪ -s‬ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي ﺗﻌﯿﯿﻦ ﻣﺠﻤﻮﻋﻪ اي از ﭘﺮوﺗﮑﻞ ﻫﺎ اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫‪# netstat -s‬‬
‫ﻧﻤﺎﯾﺶ آﻣﺎر ﺗﻮﺳﻂ ﭘﺮوﺗﮑﻞ‪TCP‬‬
‫ﻧﻤﺎﯾﺶ آﻣﺎر ﻓﻘﻂ ﭘﺮوﺗﮑﻞ ‪ TCP‬ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪netstat -st .‬‬
‫‪# netstat -st‬‬

‫‪.‬ﻧﻤﺎﯾﺶ آﻣﺎر ﺗﻮﺳﻂ ﭘﺮوﺗﮑﻞ‪UDP‬‬


‫‪# netstat -su‬‬

‫‪133‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪134‬‬

‫‪.‬ﻧﻤﺎﯾﺶ ﺳﺮوﯾﺲ ﺑﺎ‪PID‬‬


‫ﻧﻤﺎﯾﺶ ﻧﺎم ﺳﺮوﯾﺲ ﺑﺎ ﺷﻤﺎره ‪ PID‬ﺧﻮد‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از ‪netstat -tp‬ﮔﺰﯾﻨﻪ ‪ "PID /‬ﻧﺎم ﺑﺮﻧﺎﻣﻪ" را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# netstat -tp‬‬

‫‪.‬ﻧﻤﺎﯾﺶ ﺣﺎﻟﺖ‪Promiscuous‬‬
‫ﻧﻤﺎﯾﺶ ﺣﺎﻟﺖ ﻣﺸﮑﻮك ﺑﺎ ﮐﻠﯿﺪ‪netstat ، -AC‬ﭼﺎپ اﻃﻼﻋﺎت اﻧﺘﺨﺎب ﺷﺪه ﯾﺎ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺗﺎزه ﮐﺮدن ﻫﺮ ﭘﻨﺞ‬
‫ﺛﺎﻧﯿﻪ‪.‬ﺑﺎزﺧﻮاﻧﯽ ﭘﯿﺶ ﻓﺮض ﺻﻔﺤﻪ در ﻫﺮ ﺛﺎﻧﯿﻪ‪.‬‬
‫‪# netstat -ac 5 |grep TCP‬‬
‫ﻧﻤﺎﯾﺶ ﻣﺴﯿﺮ ﮐﺮﻧﻞ‪IP‬‬
‫ﻧﻤﺎﯾﺶ ﺟﺪول ﮐﺮﻧﻞ ‪ IP‬ﺑﺎ دﺳﺘﻮر ‪ netstat‬و‪route.‬‬
‫‪# netstat -r‬‬
‫‪.‬ﻧﻤﺎﯾﺶ ﺗﺮاﮐﻨﺶ ﻫﺎي اﯾﻨﺘﺮﻓﯿﺲ ﺷﺒﮑﻪ‬
‫ﻧﻤﺎﯾﺶ ﺑﺴﺘﻪ ﻫﺎي ﺷﺒﮑﻪ اي از ﺟﻤﻠﻪ اﻧﺘﻘﺎل و درﯾﺎﻓﺖ ﺑﺴﺘﻪ ﺑﺎ اﻧﺪازه‪MTU.‬‬
‫‪# netstat –i‬‬

‫‪.‬ﻧﻤﺎﯾﺶ ﺟﺪول راﺑﻂ ﻫﺴﺘﻪ‬


‫ﻧﻤﺎﯾﺶ ﺟﺪول راﺑﻂ‪ ، kernel‬ﻣﺸﺎﺑﻪ دﺳﺘﻮر ‪ ifconfig‬اﺳﺖ‪.‬‬
‫‪# netstat -ie‬‬
‫‪.‬ﻧﻤﺎﯾﺶ اﻃﻼﻋﺎت ‪ IPv4‬و‪IPv6‬‬
‫اﻃﻼﻋﺎت ﻋﻀﻮﯾﺖ ﮔﺮوه ﭼﻨﺪﭘﺨﺸﯽ را ﺑﺮاي ﻫﺮ دو ‪ IPv4‬و ‪ IPv6‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# netstat -g‬‬
‫‪.‬ﭼﺎپ اﻃﻼﻋﺎت ‪ Netstat‬ﺑﻪ ﻃﻮر ﻣﺪاوم‬
‫ﺑﺮاي درﯾﺎﻓﺖ اﻃﻼﻋﺎت ‪ netstat‬ﻫﺮ ﭼﻨﺪ ﺛﺎﻧﯿﻪ‪ ،‬ﺳﭙﺲ از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪ ،‬اﻃﻼﻋﺎت ‪ netstat‬را ﺑﺼﻮرت‬
‫ﻣﺪاوم ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪ ،‬ﻫﺮ ﭼﻨﺪ ﺛﺎﻧﯿﻪ ﻣﯽ ﮔﻮﯾﻨﺪ‪.‬‬
‫‪# netstat -c‬‬
‫ﭘﯿﺪا ﮐﺮدن آدرس ﻏﯿﺮ ﭘﺸﺘﯿﺒﺎﻧﯽ‬

‫‪ family find‬ﻫﺎي ﻧﺎﻣﺘﻨﺎﻫﯽ ﭘﯿﮑﺮﺑﻨﺪي ﺷﺪه ﺑﺎ ﺑﺮﺧﯽ اﻃﻼﻋﺎت ﻣﻔﯿﺪ‪.‬‬


‫‪# netstat – verbose‬‬

‫‪134‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪135‬‬

‫ﯾﺎﻓﺘﻦ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ‪listen‬‬


‫ﯾﺎﻓﺘﻦ ﭼﻨﺪ ﺑﺮﻧﺎﻣﻪ ‪ listen‬ﮐﻪ در ﯾﮏ ﭘﻮرت اﺟﺮا ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫‪# netstat -ap |grep http‬‬
‫" ‪linux " tar‬ﺑﺮاي آرﺷﯿﻮ ﻧﻮار اﺳﺖ ﮐﻪ ﺗﻮﺳﻂ ﺑﺴﯿﺎري از ﻣﺪﯾﺮان ‪ / linux system‬ﯾﻮﻧﯿﮑﺲ ﺑﺮاي ﻣﻘﺎﺑﻠﻪ ﺑﺎ ﺗﻬﯿﻪ‬
‫ﻧﺴﺨﻪ ﭘﺸﺘﯿﺒﺎن ﺗﻬﯿﻪ ﻣﯽ ﺷﻮد‪.‬دﺳﺘﻮر ‪ tar‬ﺑﻪ ﻣﻨﻈﻮر ﺟﻤﻌﺂوري ﻓﺎﯾﻠﻬﺎ و داﯾﺮﮐﺘﻮرﯾﻬﺎ در ﻓﺎﯾﻞ آرﺷﯿﻮ ﻓﺸﺮده ﺑﺎ ﻧﺎم‬
‫ﺗﺠﺎري ‪tarball‬ﯾﺎ ‪gzip ،tar‬و ‪bzip‬در ‪ linux‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪.tar‬ﺑﻪ ﻃﻮر ﮔﺴﺘﺮده اي ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ‬
‫ﮔﯿﺮد ﺑﺮاي اﯾﺠﺎد ﻓﺎﯾﻞ ﻫﺎي آرﺷﯿﻮ ﻓﺸﺮده و ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ راﺣﺘﯽ از ﯾﮏ دﯾﺴﮏ ﺑﻪ دﯾﺴﮏ دﯾﮕﺮ ﯾﺎ ﻣﺎﺷﯿﻦ ﺑﻪ ﻣﺎﺷﯿﻦ‬
‫ﻣﻨﺘﻘﻞ ﻣﯽ ﺷﻮد‪.‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪tar‬‬
‫در اﯾﻦ ﮐﺘﺎب ﻣﺎ ﻗﺼﺪ ﺑﺮرﺳﯽ و ﺑﺤﺚ در ﻣﻮرد ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﺨﺘﻠﻒ دﺳﺘﻮر ‪ tar‬را از ﺟﻤﻠﻪ ﻧﺤﻮه اﯾﺠﺎد ﻓﺎﯾﻞ ﻫﺎي ﺑﺎﯾﮕﺎﻧﯽ‬
‫ﺑﺎ اﺳﺘﻔﺎده از‪tar.gz ، ( tar‬و ) ‪tar.bz2‬ﻓﺸﺮده ﺳﺎزي‪ ،‬ﭼﮕﻮﻧﮕﯽ اﺳﺘﺨﺮاج ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‪ ،‬اﺳﺘﺨﺮاج ﯾﮏ ﻓﺎﯾﻞ‪ ،‬ﻣﺸﺎﻫﺪه‬
‫ﻣﺤﺘﻮاي ﻓﺎﯾﻞ ‪ ،‬ﻓﺎﯾﻞ را ﺗﺄﯾﯿﺪ ﮐﻨﯿﺪ‪ ،‬ﻓﺎﯾﻠﻬﺎ ﯾﺎ داﯾﺮﮐﺘﻮرﯾﻬﺎ را ﺑﺮاي ﻓﺎﯾﻞ آرﺷﯿﻮ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪ ،‬ﺑﺮآورد اﻧﺪازه ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬
‫‪tar‬و ﻏﯿﺮه‬
‫ﻫﺪف اﺻﻠﯽ اﯾﻦ راﻫﻨﻤﺎ‪ ،‬اراﺋﻪ ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﺨﺘﻠﻒ دﺳﺘﻮر ‪ tar‬اﺳﺖ ﮐﻪ ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي ﺷﻤﺎ ﻣﻔﯿﺪ ﺑﺎﺷﺪ و ﺑﻪ‬
‫ﮐﺎرﺷﻨﺎﺳﺎن در دﺳﺘﮑﺎري آرﺷﯿﻮ ‪ tar‬ﺗﺒﺪﯾﻞ ﺷﻮﯾﺪ‪.‬‬

‫‪1.‬اﯾﺠﺎد آرﺷﯿﻮ ﻓﺎﯾﻞ‪tar‬‬


‫دﺳﺘﻮر زﯾﺮ ﻣﺜﺎل زﯾﺮ ﯾﮏ ﻓﺎﯾﻞ آرﺷﯿﻮ ‪tar‬را ﺑﺮاي ‪hosein -14-09-12.tar‬ﺑﺮاي ﯾﮏ ﭘﻮﺷﻪ ‪/ home / hosein‬‬
‫در داﯾﺮﮐﺘﻮري ﮐﺎري ﻓﻌﻠﯽ اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬دﺳﺘﻮر ﻣﺜﺎل در ﻋﻤﻞ را ﺑﺒﯿﻨﯿﺪ‬
‫‪# tar -cvf hosein -14-09-12.tar / home / hosein /‬‬

‫‪/ home / hosein /‬‬


‫‪/home/ hosein /cleanfiles.sh‬‬
‫‪/home/ hosein /openvpn-2.1.4.tar.gz‬‬
‫‪/home/ hosein / hosein -14-09-12.tar‬‬
‫‪/home/ hosein /phpmyadmin-2.11.11.3-1.el5.rf.noarch.rpm‬‬
‫‪/home/ hosein /rpmforge-release-0.5.2-2.el5.rf.i386.rpm‬‬
‫ﺑﮕﺬارﯾﺪ در ﻣﻮرد ﻫﺮ ﮔﺰﯾﻨﻪ اي ﮐﻪ ﻣﺎ در ﻓﺮﻣﺎن ﺑﺎﻻ ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ ‪ tar‬اﺳﺘﻔﺎده ﮐﺮدﯾﻢ ﺑﺤﺚ ﮐﻨﯿﻢ‪.‬‬
‫‪c -‬ﯾﮏ ﻓﺎﯾﻞ آرﺷﯿﻮ ﺟﺪﯾﺪ ‪ .tar‬اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫‪.1‬‬
‫‪v - Verbosely‬ﭘﯿﺸﺮﻓﺖ ﻓﺎﯾﻞ ‪ .tar‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬ ‫‪.2‬‬
‫‪f -‬ﻧﺎم ﻓﺎﯾﻞ ﻧﻮع ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬ ‫‪.3‬‬

‫‪135‬‬
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 136

‫ را اﯾﺠﺎد ﮐﻨﯿﺪ‬tar.gz ‫ﻓﺎﯾﻞ آرﺷﯿﻮ‬


‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل دﺳﺘﻮر زﯾﺮ ﯾﮏ‬.‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‬z ‫ﻣﺎ از اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان‬gzip ‫ﺑﺮاي اﯾﺠﺎد ﻓﺎﯾﻞ آرﺷﯿﻮ ﻓﺸﺮده‬
: ‫ﺗﻮﺟﻪ‬.( ‫اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‬/ home / MyImages ‫ﻓﺸﺮده ﺑﺮاي ﭘﻮﺷﻪ‬MyImages-14-09-12.tar.gz ‫ﻓﺎﯾﻞ‬
).‫ ﻫﺮ دو ﻣﺸﺎﺑﻪ ﻫﺴﺘﻨﺪ‬tgz ‫و‬tar.gz
# tar cvzf MyImages-14-09-12.tar.gz / home / MyImages
‫ﯾﺎ‬
# tar cvzf MyImages-14-09-12.tgz / home / MyImages

/ home / MyImages /
/home/MyImages/Sara-Khan-and-model-Priyanka-Shah.jpg
/home/MyImages/RobertKristenviolent101201.jpg
/home/MyImages/Justintimerlake101125.jpg
/home/MyImages/Mileyphoto101203.jpg
/home/MyImages/JenniferRobert101130.jpg
/home/MyImages/katrinabarbiedoll231110.jpg
/home/MyImages/the-japanese-wife-press-conference.jpg
/home/MyImages/ReesewitherspoonCIA101202.jpg
/home/MyImages/yanaguptabaresf231110.jpg
tar.bz2‫اﯾﺠﺎد ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬
‫زﻣﺎن ﺑﯿﺸﺘﺮي را‬bz2 ‫ﻓﺸﺮده ﺳﺎزي‬.‫را اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‬gzip ‫ﻓﺸﺮده ﺷﺪه و ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ ﮐﻤﺘﺮ از اﻧﺪازه‬bz2 ‫وﯾﮋﮔﯽ‬
‫ﺑﺮاي اﯾﺠﺎد ﯾﮏ‬.‫ﻣﯽ ﮔﯿﺮد ﮐﻪ زﻣﺎن ﮐﻤﺘﺮي را ﻣﯽ ﮔﯿﺮد‬gzip ‫ﺑﺮاي ﻓﺸﺮده ﺳﺎزي و ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻠﻬﺎ در ﻣﻘﺎﯾﺴﻪ ﺑﺎ‬
‫را ﺑﺮاي‬phpfiles-org.tar.bz2 ‫دﺳﺘﻮر زﯾﺮ ﻣﺜﺎل زﯾﺮ ﻓﺎﯾﻞ‬.‫اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‬j ‫ ﮐﺎﻣﻼ ﻓﺸﺮده ﻣﺎ از ﮔﺰﯾﻨﻪ‬tar ‫ﻓﺎﯾﻞ‬
).‫ اﺳﺖ‬tb2 ‫ ﺷﺒﯿﻪ‬tbz ‫و‬: tar.bz2 ‫ﺗﻮﺟﻪ‬.( ‫اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‬/ home / php ‫ﯾﮏ ﭘﻮﺷﻪ‬
# tar cvfj Phpfiles-org.tar.bz2 / home / php
‫ﯾﺎ‬
# tar cvfj Phpfiles-org.tar.tbz / home / php
‫ﯾﺎ‬
# tar cvfj Phpfiles-org.tar.tb2 / home / php

/ home / php /
/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php

136
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 137

/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/object.html
/home/php/video.php
Untar tar‫ﺑﺎﯾﮕﺎﻧﯽ ﻓﺎﯾﻞ‬
‫ﺑﻪ‬.‫ﺻﺎدر ﮐﻨﯿﺪ‬x ( extract ) ‫ ﻓﻘﻂ دﺳﺘﻮر زﯾﺮ را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ‬، tar‫ﺑﺮاي ﺟﺪا ﮐﺮدن ﯾﺎ اﺳﺘﺨﺮاج ﯾﮏ ﻓﺎﯾﻞ‬
‫اﮔﺮ ﻣﯽ‬.‫را در داﯾﺮﮐﺘﻮري ﻓﻌﻠﯽ ﺑﺎز ﺧﻮاﻫﺪ ﮐﺮد‬public_html-14-09-12.tar ‫ﻋﻨﻮان ﻣﺜﺎل دﺳﺘﻮر زﯾﺮ ﻓﺎﯾﻞ‬
‫داﯾﺮﮐﺘﻮري ﻣﺸﺨﺺ ﺷﺪه )اﺳﺘﻔﺎده‬-C ( ‫ از ﮔﺰﯾﻨﻪ ﺑﻪ ﻋﻨﻮان‬،‫ﺧﻮاﻫﯿﺪ در ﯾﮏ داﯾﺮﮐﺘﻮري ﺟﺪاﮔﺎﻧﻪ ﺑﺎزﻧﺸﺎﻧﯽ ﮐﻨﯿﺪ‬
‫اﮔﺮ ﻣﯿﺨﻮاﻫﯿﺪ در داﯾﺮﮐﺘﻮرﯾﻬﺎي‬.‫ ﻓﻘﻂ دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‬،tar.gz ‫ ﺑﺮاي ﻏﯿﺮﻓﻌﺎل ﮐﺮدن ﻓﺎﯾﻞ آرﺷﯿﻮ‬.‫ﮐﻨﯿﺪ‬
‫ ﻫﻤﺎﻧﻄﻮر ﮐﻪ در ﻣﺜﺎل ﺑﺎﻻ ﻧﺸﺎن‬،‫و ﻣﺴﯿﺮ داﯾﺮﮐﺘﻮري اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬-C ‫ ﻓﻘﻂ از ﮔﺰﯾﻨﻪ‬،‫ﻣﺨﺘﻠﻒ ﻣﺠﺪدا اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬
.‫داده ﺷﺪه اﺳﺖ‬
# tar -xvf thumbnails-14-09-12.tar.gz

/ home / public_html / videos / thumbnails /


/home/public_html/videos/thumbnails/katdeepika231110.jpg
/home/public_html/videos/thumbnails/katrinabarbiedoll231110.jpg
/home/public_html/videos/thumbnails/onceuponatime101125.jpg
/home/public_html/videos/thumbnails/playbutton.png
/home/public_html/videos/thumbnails/ReesewitherspoonCIA101202.jpg
/home/public_html/videos/thumbnails/snagItNarration.jpg
/home/public_html/videos/thumbnails/Minissha-Lamba.jpg
/home/public_html/videos/thumbnails/Lindsaydance101201.jpg
/home/public_html/videos/thumbnails/Mileyphoto101203.jpg

‫دﺳﺘﻮر زﯾﺮ ﻣﺜﺎل زﯾﺮ ﺗﻤﺎم ﻓﺎﯾﻞ‬.‫ ﻓﻘﻂ از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬،‫ﺑﺴﯿﺎر ﻓﺸﺮده‬tar.bz2 ‫ﺑﺮاي ﻏﯿﺮﻓﻌﺎل ﮐﺮدن ﻓﺎﯾﻞ‬
.‫را از ﻓﺎﯾﻞ آرﺷﯿﻮ ﺟﺪا ﻣﯽ ﮐﻨﺪ‬.flv ‫ﻫﺎي‬

# tar -xvf videos-14-09-12.tar.bz2

/home/public_html/videos/flv/katrinabarbiedoll231110.flv
/home/public_html/videos/flv/BrookmuellerCIA101125.flv
/home/public_html/videos/flv/dollybackinbb4101125.flv
/home/public_html/videos/flv/JenniferRobert101130.flv
/home/public_html/videos/flv/JustinAwardmovie101125.flv

137
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 138

/home/public_html/videos/flv/Lakme-Fashion-Week.flv
/home/public_html/videos/flv/Mileyphoto101203.flv
/home/public_html/videos/flv/Minissha-Lamba.flv
tar‫ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬
‫دﺳﺘﻮر زﯾﺮ ﻣﺤﺘﻮي‬.‫ﻟﯿﺴﺖ ﻣﺤﺘﻮا )اﺟﺮا ﮐﻨﯿﺪ‬t ( ‫ ﻓﻘﻂ دﺳﺘﻮر زﯾﺮ را ﺑﺎ ﮔﺰﯾﻨﻪ‬، tar‫ﺑﺮاي ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ آرﺷﯿﻮ‬
.‫را ﻓﻬﺮﺳﺖ ﻣﯽ ﮐﻨﺪ‬uploadprogress.tar ‫ﻓﺎﯾﻞ‬
# tar -tvf uploadprogress.tar

-rw-r - r -- chregu / staff 2276 2011-08-15 18:51:10 package2.xml


-rw-r - r -- chregu / 18:51:10 15-08-2011 7877 ‫ ﮐﺎرﮐﻨﺎن‬uploadprogress / examples /
index.php
-rw-r - r -- chregu / staff 1685 2011-08-15 18:51:10 uploadprogress / examples /
server.php
-rw-r - r -- chregu / staff 1697 2011-08-15 18:51:10 uploadprogress / examples /
info.php
-rw-r - r -- chregu / 18:51:10 15-08-2011 367 ‫ ﮐﺎرﮐﻨﺎن‬uploadprogress / config.m4
-rw-r - r -- chregu / 18:51:10 15-08-2011 303 ‫ ﮐﺎرﮐﻨﺎن‬uploadprogress / config.w32
-rw-r - r -- chregu / 18:51:10 15-08-2011 3563 ‫ ﮐﺎرﮐﻨﺎن‬uploadprogress /
php_uploadprogress.h
-rw-r - r -- chregu / staff 15433 2011-08-15 18:51:10 uploadprogress /
uploadprogress.c
-rw-r - r -- chregu / staff 1433 2011-08-15 18:51:10 package.xml
‫ ﺑﺎﯾﮕﺎﻧﯽ ﻓﺎﯾﻞ‬tar.gz ‫ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮا‬
.‫اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬tar.gz ‫دﺳﺘﻮراﻟﻌﻤﻞ زﯾﺮ را ﺑﺮاي ﻟﯿﺴﺖ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ‬
# tar -tvf staging. hosein .com.tar.gz

-rw-r - r -- root / root 0 2012-08-30 04:03:57 staging. hosein .com-access_log


-rw-r - r -- root / root 587 2012-08-29 18:35:12 staging. hosein .com-access_log.1
-rw-r - r -- root / root 156 2012-01-21 07:17:56 staging. hosein .com-access_log.2
-rw-r - r -- root / root 156 2011-12-21 30:56 staging. hosein .com-access_log.3
-rw-r - r -- root / root 156 2011-11-20 17:28:24 staging. hosein .com-access_log.4
-rw-r - r -- root / root 0 2012-08-30 04:03:57 staging. hosein .com-error_log
-rw-r - r -- root / root 3981 2012-08-29 18:35:12 staging. hosein .com-error_log.1
-rw-r - r -- root / root 211 2012-01-21 07:17:56 staging. hosein .com-error_log.2
-rw-r - r -- root / root 211 2011-12-21 30:56 staging. hosein .com-error_log.3

138
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 139

-rw-r - r -- root / root 211 2011-11-20 17:28:24 staging. hosein .com-error_log.4


‫ آرﺷﯿﻮ‬tar.bz2 ‫ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮاي‬.
.‫ دﺳﺘﻮر زﯾﺮ را ﺻﺎدر ﮐﻨﯿﺪ‬،tar.bz2 ‫ﺑﺮاي ﻓﻬﺮﺳﺖ ﻣﺤﺘﻮﯾﺎت ﻓﺎﯾﻞ‬
# tar -tvf Phpfiles-org.tar.bz2
drwxr-xr-x root / root 0 2012-09-15 03:06:08 / home / php /
-rw-r - r -- root / root 1751 2012-09-15 03:06:08 /home/php/iframe_ew.php
-rw-r - r -- root / root 11220 2012-09-15 03:06:08 /home/php/videos_all.php
-rw-r - r -- root / root 2152 2012-09-15 03:06:08 /home/php/rss.php
-rw-r - r -- root / root 3021 2012-09-15 03:06:08 /home/php/index.php
-rw-r - r -- root / root 2554 2012-09-15 03:06:08 /home/php/vendor.php
-rw-r - r -- root / root 406 2012-09-15 03:06:08 /home/php/video_title.php
-rw-r - r -- root / root 4116 2012-09-15 03:06:08 /home/php/report.php
-rw-r - r -- root / root 1273 2012-09-15 03:06:08 /home/php/object.html

.‫از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬cleanfiles.sh.tar ‫از‬cleanfiles.sh ‫ﺑﺮاي اﺳﺘﺨﺮاج ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻧﺎم‬
# tar -xvf cleanfiles.sh.tar cleanfiles.sh
‫ﯾﺎ‬
# tar --extract --file = cleanfiles.sh.tar cleanfiles.sh

cleanfiles.sh

‫ از دﺳﺘﻮر زﯾﺮ‬،hosein backup.tar.gz ‫از ﻓﺎﯾﻞ آرﺷﯿﻮ‬hosein backup.xml ‫ﺑﺮاي اﺳﺘﺨﺮاج ﯾﮏ ﻓﺎﯾﻞ‬
.‫اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬
# tar -zxvf hosein backup.tar.gz hosein backup.xml
‫ﯾﺎ‬
# tar --extract --file = hosein backup.tar.gz hosein backup.xml

hosein backup.xml
.‫از ﮔﺰﯾﻨﻪ زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬Phpfiles-org.tar.bz2 ‫از ﻓﺎﯾﻞ‬index.php ‫ﺑﺮاي اﺳﺘﺨﺮاج ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻧﺎم‬
# tar -jxvf Phpfiles-org.tar.bz2 home / php / index.php
‫ﯾﺎ‬
# tar --extract --file = Phpfiles-org.tar.bz2 /home/php/index.php

/home/php/index.php

139
‫ دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬1001 140

" 1 ‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل دﺳﺘﻮر زﯾﺮ ﻓﺎﯾﻞ‬tar.bz2 . ‫و‬tar.gz ،tar ‫ﺑﺮاي اﺳﺘﺨﺮاج ﯾﺎ ﺟﺪا ﮐﺮدن ﭼﻨﺪﯾﻦ ﻓﺎﯾﻞ از ﻓﺎﯾﻞ آرﺷﯿﻮ‬
.‫را از ﻓﺎﯾﻞ ﻫﺎي ﺑﺎﯾﮕﺎﻧﯽ اﺳﺘﺨﺮاج ﻣﯽ ﮐﻨﺪ‬file 2 "
# tar -xvf hosein -14-09-12.tar " file 1 " " file 2 "

# tar -zxvf MyImages-14-09-12.tar.gz " file 1" " file2 "

# tar -jxvf Phpfiles-org.tar.bz2 " file1 " " file2"


‫ ﺑﺮاي اﺳﺘﺨﺮاج‬،‫ﺑﺮاي ﻣﺜﺎل‬.‫ﺑﺮاي اﺳﺘﺨﺮاج ﮔﺮوﻫﯽ از ﻓﺎﯾﻠﻬﺎي ﻣﺎ از اﺳﺘﺨﺮاج ﺑﺮ اﺳﺎس ﮐﻠﻤﺎت اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‬
tar.bz2 .‫و‬tar.gz ،tar ‫آﻏﺎز ﻣﯽ ﺷﻮد از ﯾﮏ ﻓﺎﯾﻞ آرﺷﯿﻮ‬php ‫ﮔﺮوﻫﯽ از ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ اﻟﮕﻮي آﻧﻬﺎ ﺑﺎ‬
# tar -xvf Phpfiles-org.tar - wildcards '* .php'

# tar -zxvf Phpfiles-org.tar.gz - wildcards '* .php'

# tar -jxvf Phpfiles-org.tar.bz2 - wildcards '* .php'

/home/php/iframe_ew.php
/home/php/videos_all.php
/home/php/rss.php
/home/php/index.php
/home/php/vendor.php
/home/php/video_title.php
/home/php/report.php
/home/php/video.php

‫اﺳﺘﻔﺎده‬r ( append ) ‫ از ﮔﺰﯾﻨﻪ‬،‫ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﻪ ﻓﺎﯾﻞ ﻫﺎي آرﺷﯿﻮ ﺷﺪه ﻣﻮﺟﻮد‬
‫اﺿﺎﻓﻪ‬hosein -14-09-12.tar ‫را ﺑﻪ ﻓﺎﯾﻞ آرﺷﯿﻮ‬php ‫و داﯾﺮﮐﺘﻮري‬xyz.txt ‫ﺑﺮاي ﻣﺜﺎل ﻣﺎ ﻓﺎﯾﻞ‬.‫ﻣﯽ ﮐﻨﯿﻢ‬
.‫ﻣﯿﮑﻨﯿﻢ‬
# tar -rvf hosein - 14-09-12.tar xyz.txt

# tar -rvf hosein -14-09-12.tar php

140
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪141‬‬

‫ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ راﻫﻨﻤﺎﻫﺎ را ﺑﻪ ﻓﺎﯾﻞ ‪ tar.gz‬و ‪ tar.bz2‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬


‫دﺳﺘﻮر ‪ tar‬ﺑﻪ ﮔﺰﯾﻨﻪ اي ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﻪ ﯾﮏ ﻓﺎﯾﻞ آرﺷﯿﻮ ‪tar.gz‬و ‪tar.bz2‬ﻓﺸﺮده‬
‫ﻣﻮﺟﻮد ﻧﯿﺴﺖ‪.‬اﮔﺮ ﻣﺎ ﺳﻌﯽ ﻣﯽ ﮐﻨﯿﻢ ﺧﻄﺎي زﯾﺮ را درﯾﺎﻓﺖ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬
‫‪# tar -rvf MyImages- 14-09-12.tar.gz xyz.txt‬‬

‫‪# tar -rvf Phpfiles-org.tar.bz2 xyz.txt‬‬


‫‪.‬اﻧﺪازه ﻓﺎﯾﻞ ﻫﺎي آرﺷﯿﻮ‪tar.gz ، tar‬و ‪ tar.bz2‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‬
‫ﺑﺮاي ﺑﺮرﺳﯽ ﺣﺠﻢ ﻓﺎﯾﻞ ‪tar.gz ،tar‬و ‪tar.bz2‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل دﺳﺘﻮر زﯾﺮ ﺣﺠﻢ ﻓﺎﯾﻞ‬
‫ﺑﺎﯾﮕﺎﻧﯽ را در ﮐﯿﻠﻮﺑﺎﯾﺖ ) ‪ ( KB‬ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬‬
‫‪# tar -czf - hosein -14-09-12.tar |WC-C‬‬
‫‪12820480‬‬
‫‪# tar -czf - MyImages-14-09-12.tar.gz |WC-C‬‬
‫‪112640‬‬
‫‪# tar -czf - Phpfiles-org.tar.bz2 |WC-C‬‬
‫‪20480‬‬
‫ﻃﺮز اﺳﺘﻔﺎده و ﮔﺰﯾﻨﻪ ﻫﺎ‬
‫‪c -‬ﯾﮏ ﻓﺎﯾﻞ آرﺷﯿﻮ اﯾﺠﺎد ﮐﻨﯿﺪ‬ ‫‪.1‬‬
‫‪x -‬اﺳﺘﺨﺮاج ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬ ‫‪.2‬‬
‫‪v -‬ﭘﯿﺸﺮﻓﺖ ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬ ‫‪.3‬‬
‫‪f -‬ﻧﺎم ﭘﺮوﻧﺪه ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬ ‫‪.4‬‬
‫‪T -‬ﻣﺸﺎﻫﺪه ﻣﺤﺘﻮاي ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬ ‫‪.5‬‬
‫‪j -‬ﺑﺎﯾﮕﺎﻧﯽ ﻓﯿﻠﺘﺮ از ﻃﺮﯾﻖ‪bzip2.‬‬ ‫‪.6‬‬
‫‪z -‬آرﺷﯿﻮ ﻓﯿﻠﺘﺮ از ﻃﺮﯾﻖ‪gzip.‬‬ ‫‪.7‬‬
‫‪R -‬اﺿﺎﻓﻪ ﮐﺮدن ﯾﺎ ﺑﻪ روز رﺳﺎﻧﯽ ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﻪ ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ ﻣﻮﺟﻮد‪.‬‬ ‫‪.8‬‬
‫‪W -‬ﺗﺄﯾﯿﺪ ﯾﮏ ﻓﺎﯾﻞ ﺑﺎﯾﮕﺎﻧﯽ‬ ‫‪.9‬‬
‫‪wildcards -‬ﻣﺸﺨﺺ ﮐﺮدن اﻟﮕﻮﻫﺎي دﺳﺘﻮر ﻓﺮﻣﺎن‪unix tar.‬‬ ‫‪.10‬‬

‫‪141‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪142‬‬

‫ﻓﺮﻣﺎن‪pstree‬‬
‫‪pstree‬ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا را ﺑﻪ ﻋﻨﻮان ﯾﮏ درﺧﺖ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ در ‪ PID‬ﯾﺎ‪ init root‬دارد اﮔﺮ ‪PID‬‬
‫ﺣﺬف ﺷﻮد‪.‬‬
‫‪$ pstree‬‬
‫ﻓﺮﻣﺎن‪pwd‬‬
‫دﺳﺘﻮر‪ pwd‬ﻧﺎم ﭘﻮﺷﻪ ﻓﻌﻠﯽ ‪ /‬ﮐﺎر را در زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ pwd‬‬
‫ﻓﺮﻣﺎن‪pstree‬‬
‫‪pstree‬ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل اﺟﺮا را ﺑﻪ ﻋﻨﻮان ﯾﮏ درﺧﺖ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ در ‪ PID‬ﯾﺎ‪ init root‬دارد اﮔﺮ ‪PID‬‬
‫ﺣﺬف ﺷﻮد‪.‬‬
‫‪$ pstree‬‬
‫ﻓﺮﻣﺎن‪pwd‬‬
‫دﺳﺘﻮر‪ pwd‬ﻧﺎم ﭘﻮﺷﻪ ﻓﻌﻠﯽ ‪ /‬ﮐﺎر را در زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ pwd‬‬
‫ﻓﺮﻣﺎن‪rdiff-backup‬‬
‫‪rdiff-backup‬ﯾﮏ اﺳﮑﺮﯾﭙﺖ ﭘﺸﺘﯿﺒﺎن اﻓﺰارﯾﺎﻓﺰاﯾﺸﯽ ﻣﺤﻠﯽ ‪ /‬از راه دور اﺳﺖ ﮐﻪ در ﭘﺎﯾﺘﻮن ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪.‬اﯾﻦ‬
‫در ﻫﺮ ‪ system‬ﻋﺎﻣﻞ ‪ POSIX‬ﻣﺎﻧﻨﺪ ‪ ،linux‬ﻣﮏ ‪ OS X‬ﮐﺎر ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﺑﺮاي ﭘﺸﺘﯿﺒﺎن ﮔﯿﺮي از راه دور‪ ،‬ﺷﻤﺎ ﺑﺎﯾﺪ ﻫﻤﺎن ﻧﺴﺨﻪ از ردﯾﻒ ﭘﺸﺘﯿﺒﺎن را ﺑﺮ روي دﺳﺘﮕﺎه‬
‫ﻫﺎي ﻣﺤﻠﯽ و از راه دور ‪ install‬ﮐﻨﯿﺪ‪.‬در زﯾﺮ ﯾﮏ ﻣﺜﺎل از ﯾﮏ دﺳﺘﻮر ﺗﻬﯿﻪ ﻧﺴﺨﻪ ﭘﺸﺘﯿﺒﺎن ﺗﻬﯿﻪ ﻣﯽ ﺷﻮد‪:‬‬
‫‪$ sudo rdiff-backup / etc /media/ hosein /Backup/server_etc.backup‬‬

‫دﺳﺘﻮر‪restart‬‬
‫دﺳﺘﻮر‪ reboot‬ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي ﺗﻮﻗﻒ‪ ،‬ﺧﺎﻣﻮش ﮐﺮدن ﯾﺎ ‪system restart‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫‪$ restart‬‬
‫ﺗﻐﯿﯿﺮ ﻧﺎم دﺳﺘﻮر‬
‫ﺗﻐﯿﯿﺮ ﻧﺎم ﻓﺮﻣﺎﻧﺒﺮاي ﺗﻐﯿﯿﺮ ﻧﺎم ﺑﺴﯿﺎري از ﻓﺎﯾﻞ ﻫﺎ در ﯾﮏ ﺑﺎر اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﮔﺮ ﺷﻤﺎ ﻣﺠﻤﻮﻋﻪ اي از ﻓﺎﯾﻞ ﻫﺎي ﺑﺎ‬
‫ﭘﺴﻮﻧﺪ " ‪" .html‬را داﺷﺘﻪ ﺑﺎﺷﯿﺪ و ﺷﻤﺎ ﻣﯽ ﺧﻮاﻫﯿﺪ ﻫﻤﻪ آﻧﻬﺎ را ﺑﺎ " ‪ " .php‬ﺗﻐﯿﯿﺮ ﻧﺎم دﻫﯿﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ دﺳﺘﻮر زﯾﺮ‬
‫را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪.‬‬
‫‪$ rename / \. html $ / \. php / '* .html‬‬
‫ﻓﺮﻣﺎن‪rm‬‬
‫ﻓﺮﻣﺎن‪ rm‬ﺑﺮاي ﺣﺬف ﻓﺎﯾﻞ ﻫﺎ ﯾﺎ داﯾﺮﮐﺘﻮري ﻫﺎ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬

‫‪142‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪143‬‬

‫‪$ rm file1‬‬
‫‪$ rm -rf my-files‬‬
‫ﻣﺮاﻗﺐ ﺑﺎﺷﯿﺪ ﺑﺎ !‪RM‬‬
‫ﻟﯿﻨﻮﮐﺲ ﯾﮏ دﺳﺘﻮر ‪ undelete‬ﻧﺪارد ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﭼﯿﺰي را ﺑﺎ ‪rm‬ﺣﺬف ﻣﯽ ﮐﻨﯿﺪ‪ ،‬از ﺑﯿﻦ رﻓﺘﻪ اﺳﺖ ‪.‬اﮔﺮ دﻗﺖ‬
‫ﻧﮑﻨﯿﺪ‪ ،‬ﺑﻪ ﺧﺼﻮص ﺑﺎ ﮐﻠﻤﺎت ﺳﺮﭼﺸﻤﯽ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ ﺧﺴﺎرت ﻓﻮق اﻟﻌﺎده اي در ﺳﯿﺴﺘﻢ ﺧﻮد اﯾﺠﺎد ﮐﻨﯿﺪ ‪.‬‬
‫ﻗﺒﻞ از اﺳﺘﻔﺎده از ‪rm‬ﺑﺎ‪ ، wildcards‬اﯾﻦ ﺗﺮﻓﻨﺪ ﻣﻔﯿﺪ را اﻣﺘﺤﺎن ﮐﻨﯿﺪ ‪:‬ﻓﺮﻣﺎن ﺧﻮد را ﺑﺎ اﺳﺘﻔﺎده از ‪ls‬‬
‫ﺑﺴﺎزﯾﺪ ‪.‬ﺑﺎ اﻧﺠﺎم اﯾﻦ ﮐﺎر‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ ﻗﺒﻞ از ﭘﺎك ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ‪ ،‬ﻋﻼﻣﺖ ﻫﺎي ﻣﺨﺘﻠﻒ ﺧﻮد را ﺑﺒﯿﻨﯿﺪ ‪.‬ﭘﺲ از اﯾﻨﮑﻪ‬
‫ﻓﺮﻣﺎن ﺧﻮد را ﺑﺎ ‪ls‬ﺗﺴﺖ ﮐﺮدﯾﺪ‪ ،‬ﻓﺮﻣﺎن را ﺑﺎ ﮐﻠﯿﺪ ﻓﻠﺶ ﺑﺎﻻ ﺑﻪ ﺧﺎﻃﺮ ﺑﯿﺎورﯾﺪ و ﺳﭙﺲ ‪RM‬را ﺑﺮاي ‪ls‬در ﻓﺮﻣﺎن‬
‫ﺟﺎﯾﮕﺰﯾﻦ ﮐﻨﯿﺪ ‪.‬‬
‫دﺳﺘﻮر ﻓﺮﻣﺎن‪rmdir‬‬
‫دﺳﺘﻮر‪ rmdir‬ﺑﻪ ﺣﺬف ‪ /‬ﺣﺬف ﭘﻮﺷﻪ ﻫﺎي ‪ empty‬ﺑﻪ ﺻﻮرت زﯾﺮ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ rmdir / backup / all‬‬
‫دﺳﺘﻮر‬
‫دﺳﺘﻮر‪ scp‬ﺷﻤﺎ را ﻗﺎدر ﻣﯽ ﺳﺎزد ﺑﻪ ﻃﻮر ﻣﺜﺎل ﻓﺎﯾﻞ ﻫﺎي اﯾﻤﻦ را در ﺑﯿﻦ ‪host‬ﻫﺎ در ﯾﮏ ﺷﺒﮑﻪ ﮐﭙﯽ ﮐﻨﯿﺪ‪.‬‬
‫‪$ scp ~ / names.txt root@192.168.56.10 : /root/names.txt‬‬
‫دﺳﺘﻮر‪shutdown‬‬
‫دﺳﺘﻮر‪ shutdown‬ﺑﺮﻧﺎﻣﻪ زﻣﺎﻧﯽ ﺑﺮاي ‪ system‬را ﺧﺎﻣﻮش ﻣﯽ ﮐﻨﺪ‪.‬اﯾﻦ ﻣﻤﮑﻦ اﺳﺖ ﺑﺮاي ﺗﻮﻗﻒ‪ ،‬ﺧﺎﻣﻮش ﮐﺮدن ﯾﺎ‬
‫‪ restart‬دﺳﺘﮕﺎه ﻣﺎﻧﻨﺪ اﯾﻦ ﻣﻮرد اﺳﺘﻔﺎده ﺷﻮد‪.‬‬
‫‪$ shutdown - power up‬‬
‫ﯾﺎد ﺑﮕﯿﺮﯾﺪ ﭼﮕﻮﻧﻪ ﺑﺮاي ﻧﺸﺎن دادن ﯾﮏ ﭘﯿﺎم ﺳﻔﺎرﺷﯽ ﺑﻪ ﮐﺎرﺑﺮان ﻗﺒﻞ از ﺧﺎﻣﻮش ﮐﺮدن ﺳﺮور ‪linux .‬‬
‫ﻓﺮﻣﺎن‪ sleep‬ﺑﺮاي ﺗﺄﺧﯿﺮ ﯾﺎ ﻣﮑﺚ )ﺑﻪ ﻃﻮر ﺧﺎص اﻋﺪام ﯾﮏ ﻓﺮﻣﺎن( ﺑﺮاي ﯾﮏ ﻣﻘﺪار ﻣﺸﺨﺺ از زﻣﺎن اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫‪5 sudo apt update‬؛‪sleep‬؛ ‪$ check.sh‬‬

‫دﺳﺘﻮر‪stat‬‬
‫‪stat‬ﺑﺮاي ﻧﺸﺎن دادن وﺿﻌﯿﺖ ﻓﺎﯾﻞ ﯾﺎ ‪ system‬ﻓﺎﯾﻞ ﻣﺎﻧﻨﺪ اﯾﻦ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ( -f‬ﺑﺮاي ﻣﺸﺨﺺ ﮐﺮدن ﯾﮏ‬
‫‪ system‬ﻓﺎﯾﻞ‪).‬‬
‫‪$ stat file1‬‬

‫‪143‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪144‬‬

‫دﺳﺘﻮر‪su‬‬
‫دﺳﺘﻮر‪ su‬ﺑﺮاي اﻧﺘﻘﺎل ﺑﻪ ﯾﮑﯽ دﯾﮕﺮ از ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﯾﺎ در ﻃﻮل ﯾﮏ ﺟﻠﺴﻪ ورود‪ root ،‬ﻣﯽ‬
‫ﺷﻮد‪.‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﻫﻨﮕﺎﻣﯽ ﮐﻪ ‪su‬ﺑﺪون ﻧﺎم ﮐﺎرﺑﺮي ﻓﺮاﺧﻮاﻧﯽ ﻣﯽ ﺷﻮد‪ ،‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ﺑﻪ ‪ root‬ﺗﺒﺪﯾﻞ ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫‪$ su‬‬
‫‪$ su hosein‬‬
‫دﺳﺘﻮر ‪sudo‬‬
‫دﺳﺘﻮر‪ sudo‬اﺟﺎزه ﻣﯽ دﻫﺪ ﯾﮏ ﮐﺎرﺑﺮ ﻣﺠﺎز ‪ system‬ﺑﺮاي اﺟﺮاي ﻓﺮﻣﺎن ﺑﻪ ﻋﻨﻮان ‪ root‬ﯾﺎ ﯾﮏ ﮐﺎرﺑﺮ دﯾﮕﺮ‪،‬‬
‫ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﺗﻮﺳﻂ ﺳﯿﺎﺳﺖ اﻣﻨﯿﺘﯽ ﻣﺎﻧﻨﺪ ‪ sudoers‬ﺗﻌﺮﯾﻒ ﺷﺪه اﺳﺖ‪.‬‬
‫در اﯾﻦ ﻣﻮرد‪ ،‬ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮي واﻗﻌﯽ )ﻧﻪ ﻣﻮﺛﺮ( ﮐﺎرﺑﺮ ﮐﻪ ‪sudo‬اﺟﺮا ﻣﯽ ﺷﻮد ﺑﺮاي ﺗﻌﯿﯿﻦ ﻧﺎم ﮐﺎرﺑﺮي ﮐﻪ ﺑﺎ آن ﺑﻪ ﭘﺮس‬
‫و ﺟﻮ از ﺳﯿﺎﺳﺖ اﻣﻨﯿﺘﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ sudo apt update‬‬
‫‪$ sudo useradd hosein‬‬
‫‪$ sudo passwd hosein‬‬
‫ﻓﺮﻣﺎن ‪touch‬‬
‫ﻓﺮﻣﺎن ‪touch‬زﻣﺎﻧﺒﻨﺪﯾﻬﺎي ﻓﺎﯾﻞ را ﺗﻐﯿﯿﺮ ﻣﯽ دﻫﺪ‪ ،‬ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ ﺑﺮاي اﯾﺠﺎد ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده‬
‫ﺷﻮد‪.‬‬
‫‪$ touch file.txt‬‬
‫ﻓﺮﻣﺎن ‪wall‬‬
‫ﻓﺮﻣﺎن ‪ wall‬ﺑﺮاي ارﺳﺎل ‪ /‬ﻧﻤﺎﯾﺶ ﭘﯿﺎم ﺑﻪ ﺗﻤﺎﻣﯽ ﮐﺎرﺑﺮان ‪ system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺖ‪.‬‬
‫‪$ wall‬‬
‫"اﯾﻦ ‪ hosein‬اﺳﺖ ‪ linux -‬ﭼﮕﻮﻧﻪ"‪Tos‬‬

‫‪144‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪145‬‬

‫ﻧﺴﺨﻪ ‪linux‬‬
‫ﭼﻨﺪ راه ﺑﺮاي داﻧﺴﺘﻦ ﻧﺴﺨﻪ ‪ linux‬ﺷﻤﺎ در ﺣﺎل اﺟﺮا ﺑﺮ روي دﺳﺘﮕﺎه ﺷﻤﺎ وﺟﻮد دارد‪ ،‬ﻫﻤﭽﻨﯿﻦ ﻧﺎم ﺗﻮزﯾﻊ ﺷﻤﺎ و‬
‫ﻧﺴﺨﻪ ﮐﺮﻧﻞ و ﺑﺮﺧﯽ اﻃﻼﻋﺎت اﺿﺎﻓﯽ ﮐﻪ اﺣﺘﻤﺎﻻ ﻣﯽ ﺧﻮاﻫﯿﺪ در ذﻫﻦ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﯾﺎ در ﻧﻮك اﻧﮕﺸﺘﺎن ﺧﻮد داﺷﺘﻪ‬
‫ﺑﺎﺷﯿﺪ وﺟﻮد دارد‪.‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬در اﯾﻦ راﻫﻨﻤﺎي ﺳﺎده اﻣﺎ ﻣﻬﻢ ﺑﺮاي ﮐﺎرﺑﺮان ‪ linux‬ﺟﺪﯾﺪ‪ ،‬ﺑﻪ ﺷﻤﺎ ﻧﺸﺎن ﺧﻮاﻫﻢ داد ﮐﻪ ﭼﮕﻮﻧﻪ اﯾﻦ ﮐﺎر را‬
‫اﻧﺠﺎم دﻫﯿﺪ‪.‬اﻧﺠﺎم اﯾﻦ ﮐﺎر ﻣﻤﮑﻦ اﺳﺖ ﺑﻪ ﻧﻈﺮ ﻣﯽ رﺳﺪ ﮐﻪ ﮐﺎر ﻧﺴﺒﺘﺎ آﺳﺎن اﺳﺖ‪ ،‬ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬داﺷﺘﻦ داﻧﺶ ﺧﻮب از‬
‫‪ system‬ﺷﻤﺎ ﻫﻤﯿﺸﻪ ﺗﻮﺻﯿﻪ ﻣﯽ ﺷﻮد ﺑﺮاي ﺗﻌﺪاد زﯾﺎدي از دﻻﯾﻞ از ﺟﻤﻠﻪ ‪ install‬و راه اﻧﺪازي ﺑﺴﺘﻪ ﻫﺎي ﻣﻨﺎﺳﺐ‬
‫ﺑﺮاي ﻧﺴﺨﻪ ‪ linux‬ﺧﻮد را‪ ،‬ﺑﺮاي ﮔﺰارش آﺳﺎن از اﺷﮑﺎﻻت ﻫﻤﺮاه ﺑﺎ ﺑﺴﯿﺎري از ﺑﯿﺸﺘﺮ‪.‬‬
‫ﭘﯿﺸﻨﻬﺎدي ﺑﺮاي ﺧﻮاﻧﺪن‪ 5:‬راه ﺑﺮاي ﯾﺎﻓﺘﻦ ‪ bit 32 linux system‬ﯾﺎ ‪ bit 64‬اﺳﺖ‬
‫ﺑﺎ اﯾﻦ ﮔﻔﺘﻦ‪ ،‬ﺑﻪ ﻣﺎ اﺟﺎزه دﻫﯿﺪ ﮐﻪ اﻃﻼﻋﺎﺗﯽ در ﻣﻮرد ﺗﻮزﯾﻊ ‪ linux‬ﺷﻤﺎ اﯾﺠﺎد ﮐﻨﺪ‪.‬‬
‫ﻣﺸﺎﻫﺪه ﻧﺴﺨﻪ ﮐﺮﻧﻞ ‪linux‬‬
‫ﻣﺎ از دﺳﺘﻮر ‪uname‬اﺳﺘﻔﺎده ﺧﻮاﻫﯿﻢ ﮐﺮد ﮐﻪ ﺑﺮاي ﭼﺎپ اﻃﻼﻋﺎت ‪ linux system‬ﻣﺎﻧﻨﺪ ﻧﺴﺨﻪ ﮐﺮﻧﻞ و ﻧﺎم‬
‫آزﻣﺎﯾﺸﯽ‪ ،‬ﻧﺎم ‪host‬ﺷﺒﮑﻪ‪ ،‬ﻧﺎم ﺳﺨﺖ اﻓﺰار دﺳﺘﮕﺎه‪ architect ،‬ﭘﺮدازﻧﺪه‪ ،‬ﭘﻠﺖ ﻓﺮم ﺳﺨﺖ اﻓﺰار و ‪ system‬ﻋﺎﻣﻞ‬
‫اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫ﺑﺮاي ‪ find‬ﮐﺪام ﻧﺴﺨﻪ از ﻫﺴﺘﻪ ‪ linux‬ﮐﻪ در ﺣﺎل اﺟﺮا ﻫﺴﺘﯿﺪ‪ ،‬ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫ﯾﺎ ‪$ uname‬‬

‫ﻧﺴﺨﻪ ﮐﻨﻮﻧﯽ ﻧﺴﺨﻪ ﮐﺮﻧﻞ ‪ linux‬را در ‪ system‬اﺟﺮا ﻣﯽ ﮐﻨﺪ‬


‫در ﻓﺮﻣﺎن ﻗﺒﻠﯽ‪ ،‬ﮔﺰﯾﻨﻪ ‪-o‬ﭼﺎپ ﻧﺎم ‪ system‬ﻋﺎﻣﻞ و ‪-r‬ﻧﺴﺨﻪ آزﻣﺎﯾﺸﯽ ﮐﺮﻧﻞ را ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ از ﮔﺰﯾﻨﻪ ‪-a‬ﺑﺎ دﺳﺘﻮر ‪uname‬ﺑﺮاي ﭼﺎپ ﺗﻤﺎم اﻃﻼﻋﺎت ‪ system‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده‬
‫ﮐﻨﯿﺪ‪:‬‬

‫‪145‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪146‬‬

‫‪$ uname -a‬‬

‫اﻃﻼﻋﺎت ‪ linux system‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬


‫ﺑﻌﺪ‪ ،‬ﻣﺎ از ﭘﺮوﻧﺪه ‪ system‬ﭘﺮوﻧﺪه‪ / proc‬اﺳﺘﻔﺎده ﺧﻮاﻫﯿﻢ ﮐﺮد ﮐﻪ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﻓﺮاﯾﻨﺪﻫﺎ و ﺳﺎﯾﺮ اﻃﻼﻋﺎت‬
‫‪ system‬را ذﺧﯿﺮه ﻣﯽ ﮐﻨﺪ‪ ،‬آن را ﺑﻪ ‪/proc‬ﻣﺘﺼﻞ ﻣﯽ ﮐﻨﺪ و در زﻣﺎن ﺑﻮت ﺷﺪن ﻗﺮار ﻣﯽ ﮔﯿﺮد‪.‬‬
‫ﺑﻪ ﺳﺎدﮔﯽ دﺳﺘﻮر زﯾﺮ را ﺑﺮاي ﻧﻤﺎﯾﺶ ﺑﺮﺧﯽ از اﻃﻼﻋﺎت ‪ system‬ﺧﻮد از ﺟﻤﻠﻪ ﻧﺴﺨﻪ ﮐﺮﻧﻞ ‪ linux‬ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪$ cat / proc / version‬‬

‫اﻃﻼﻋﺎت ‪ linux system‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬

‫‪146‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪147‬‬

‫از ﺗﺼﻮﯾﺮ ﺑﺎﻻ‪ ،‬ﺷﻤﺎ ﺑﺎﯾﺪ اﻃﻼﻋﺎت زﯾﺮ را داﺷﺘﻪ ﺑﺎﺷﯿﺪ‪:‬‬


‫ﻧﺴﺨﻪ ‪) linux‬ﮐﺮﻧﻞ( ﮐﻪ ﺷﻤﺎ در ﺣﺎل اﺟﺮا ﻫﺴﺘﯿﺪ ‪:‬ﻧﺴﺨﻪ ‪.fc24.x86_64300-4.5.5 linux‬‬ ‫‪.1‬‬
‫ﻧﺎم ﮐﺎرﺑﺮي ﮐﻪ ﻫﺴﺘﻪ ﺷﻤﺎ را ﮐﺎﻣﭙﺎﯾﻞ ﮐﺮد ‪:‬‬ ‫‪.2‬‬
‫‪mockbuild@bkernel01.phx2.fedoraproject.org‬‬
‫ﻧﺴﺨﻪ ﮐﺎﻣﭙﺎﯾﻠﺮ ‪ GCC‬ﺑﺮاي ﺳﺎﺧﺖ ﻫﺴﺘﻪ‪: gcc version 6.1.1 20160510‬‬ ‫‪.3‬‬
‫ﻧﻮع ﻫﺴﺘﻪ( ‪: # 1 SMP‬ﻫﺴﺘﻪ ﻣﺘﻘﺎرن )‪ MultiProcessing‬اﯾﻦ ‪ system‬ﻫﺎ را ﭘﺸﺘﯿﺒﺎﻧﯽ ﻣﯽ‬ ‫‪.4‬‬
‫ﮐﻨﺪ ﺑﺎ ‪ system‬ﻫﺎي ﭼﻨﺪ ﭘﺮدازﻧﺪه ﯾﺎ ﭼﻨﺪ ﭘﺮدازﻧﺪه ﻣﺮﮐﺰي‪.‬‬
‫ﺗﺎرﯾﺦ و زﻣﺎن زﻣﺎﻧﯽ ﮐﻪ ﻫﺴﺘﻪ ﺳﺎﺧﺘﻪ ﺷﺪ ‪:‬ﺟﻤﻌﻪ ‪ 19‬ﻣﻪ ‪UTC 201613:05:32‬‬ ‫‪.5‬‬
‫ﻧﺎم ‪ linux‬ﺗﻮزﯾﻊ و ﻧﺴﺨﻪ اﻧﺘﺸﺎر را ﭘﯿﺪا ﮐﻨﯿﺪ‬

‫ﺑﻬﺘﺮﯾﻦ راه ﺑﺮاي ﺗﻌﯿﯿﻦ ﻧﺎم ﺗﻮزﯾﻊ ‪ linux‬و اﻧﺘﺸﺎر اﻃﻼﻋﺎت ﻧﺴﺨﻪ‪ ،‬اﺳﺘﻔﺎده از دﺳﺘﻮر ‪cat /etc/os-release‬ﮐﻪ در‬
‫ﺗﻘﺮﯾﺒﺎ ﺗﻤﺎم ‪ system‬ﻋﺎﻣﻞ ‪ linux‬ﮐﺎر ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪ Linux Red Hat‬در ‪-- -- -- -- --‬‬ ‫‪-- -- -- -- --‬‬
‫‪$ cat / etc / redhat-release‬‬

‫‪ CentOS Linux‬در ‪-- -- -- -- --‬‬ ‫‪-- -- -- -- --‬‬


‫‪$ cat / etc / centos-release‬‬

‫‪linux -- -- -- -- --‬در ﻓﺪورا ‪-- -- -- -- --‬‬


‫‪$ cat / etc / fedora release‬‬

‫دﺑﯿﺎن‪linux‬در ‪-- -- -- -- --‬‬ ‫‪-- -- -- -- --‬‬


‫‪$ cat / etc / debian_version‬‬

‫‪ ubuntu -- -- -- -- --‬و ‪linux linux‬در ‪-- -- -- -- --‬‬


‫‪$ cat / etc / lsb-release‬‬

‫‪ Gentoo linux -- -- -- -- --‬در ‪-- -- -- -- --‬‬


‫‪$ cat / etc / gentoo-release‬‬

‫‪ SuSE linux -- -- -- -- --‬در ‪-- -- -- -- --‬‬


‫‪$ Cat / etc / SuSE-release‬‬

‫‪147‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪148‬‬

‫‪148‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪149‬‬

‫زﻣﺎن و آﻣﺎر اﺟﺮاي ‪system‬‬


‫ﻣﺪﯾﺮﯾﺖ ‪ system‬ﺷﺎﻣﻞ ﺑﺴﯿﺎري از ﻓﻌﺎﻟﯿﺖ ﻫﺎي اﺳﺖ ﮐﻪ ﯾﮑﯽ از آﻧﻬﺎ ﻧﻈﺎرت و ﺑﺮرﺳﯽ ﺑﺮاي ﭼﻪ ﻣﺪت ‪system‬‬
‫‪ linux‬ﺷﻤﺎ اﺟﺮا ﺷﺪه اﺳﺖ‪.‬ﻫﻤﯿﺸﻪ ﺑﻬﺘﺮﯾﻦ ﮐﺎر اﯾﻦ اﺳﺖ ﮐﻪ ﭘﯿﺎده ﺳﺎزي ‪ system‬ﺑﺪون وﻗﻔﻪ را ﺑﺮاي ﺑﻬﯿﻨﻪ ﺳﺎزي‬
‫اﺳﺘﻔﺎده از ﻣﻨﺎﺑﻊ ‪system‬ي دﻧﺒﺎل ﮐﻨﯿﺪ‪.‬‬
‫‪tuptime -‬زﻣﺎﻧﻬﺎي ﺗﺎرﯾﺨﯽ و آﻣﺎري ‪ linux‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‬
‫در اﯾﻦ راﻫﻨﻤﺎ‪ ،‬ﻣﺎ ﺑﺎﯾﺪ ﺑﻪ ﯾﮏ اﺑﺰار ‪ linux‬ﺑﻪ ﻧﺎم ‪tuptime‬ﻧﮕﺎه ﮐﻨﯿﻢ ﮐﻪ ﻣﯽ ﺗﻮاﻧﺪ ﺑﻪ ﻣﺪﯾﺮان ‪ system‬ﮐﻤﮏ ﮐﻨﺪ‬
‫ﮐﻪ ﺗﺎ ﭼﻪ زﻣﺎﻧﯽ ﯾﮏ ‪ system‬ﻋﺎﻣﻞ ‪ linux‬در ﺣﺎل اﺟﺮا و اﺟﺮا ﺑﺎﺷﺪ‪.‬‬

‫‪tuptime‬ﭼﯿﺴﺖ؟‬
‫‪tuptime‬اﺑﺰاري اﺳﺖ ﺑﺮاي ﮔﺰارش زﻣﺎﻧﯽ زﻣﺎﻧﯽ ( زﻣﺎن آﭘﺪﯾﺖ )ﺗﺎرﯾﺨﯽ و آﻣﺎري ﯾﮏ ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ‪ ، Linux‬ﮐﻪ آن‬
‫را ﺑﯿﻦ ﺑﺎزﯾﺎﺑﯽ ﻧﮕﻪ ﻣﯽ دارد‪.‬اﯾﻦ اﺑﺰار ﮐﻤﺘﺮ ﻣﺎﻧﻨﺪ دﺳﺘﻮر ‪uptime‬ﮐﺎر ﻣﯽ ﮐﻨﺪ‪ ،‬اﻣﺎ اﮔﺮﭼﻪ ﺧﺮوﺟﯽ ﭘﯿﺸﺮﻓﺘﻪ ﺗﺮ را‬
‫ﻓﺮاﻫﻢ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫اﯾﻦ اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن ﻣﯽ ﺗﻮاﻧﺪ‪:‬‬
‫ﺛﺒﺖ ﻧﺎم ﻫﺴﺘﻪ ﻣﻮرد اﺳﺘﻔﺎده‬ ‫‪.1‬‬
‫اوﻟﯿﻦ ﺑﺎر ﺑﻮت را ﺛﺒﺖ ﮐﻨﯿﺪ‪.‬‬ ‫‪.2‬‬
‫ﺗﻌﺪاد ‪ system‬ﻫﺎي راه اﻧﺪازي‪.‬‬ ‫‪.3‬‬
‫ﺷﻤﺎر ﺧﺎﻣﻮش ﺷﺪن ﺧﺎﻣﻮش و ﺑﺪ‬ ‫‪.4‬‬
‫از زﻣﺎن اوﻟﯿﻦ ﺑﻮت ﺷﺪن‪ ،‬درﺻﺪ زﻣﺎن آﭘﺪﯾﺖ و ﺧﺮاﺑﯽ را ﻣﺤﺎﺳﺒﻪ ﮐﻨﯿﺪ‪.‬‬ ‫‪.5‬‬
‫ﻣﺤﺎﺳﺒﻪ ﺑﺰرﮔﺘﺮﯾﻦ‪ ،‬ﮐﻮﺗﺎه ﺗﺮﯾﻦ و ﻣﺘﻮﺳﻂ زﻣﺎﻧﺒﻮﺗﻮﺧﺮاﺑﯽ‪.‬‬ ‫‪.6‬‬
‫ﻣﺤﺎﺳﺒﻪ زﻣﺎن اﻧﺒﺴﺎط ‪ ،system‬ﺧﺮاﺑﯽ و ﮐﻞ‪.‬‬ ‫‪.7‬‬
‫ﭼﺎپ زﻣﺎن ﻓﻌﻠﯽ ﭼﺎپ‬ ‫‪.8‬‬
‫ﭼﺎپ ﺟﺪول ﻓﺮﻣﺖ ﺷﺪه ﯾﺎ ﻓﻬﺮﺳﺖ ﺑﺎ ﺑﯿﺸﺘﺮ ﻣﻘﺎدﯾﺮ ﻗﺒﻠﯽ ذﺧﯿﺮه ﺷﺪه اﺳﺖ‪.‬‬ ‫‪.9‬‬
‫اﻟﺰاﻣﺎت‬
‫‪ linux‬ﯾﺎ ‪ system‬ﻋﺎﻣﻞ‪FreeBSD.‬‬ ‫‪.1‬‬
‫ﭘﺎﯾﺘﻮن ‪ 2.7‬ﯾﺎ ‪ .x install3‬ﺷﺪه اﻣﺎ آﺧﺮﯾﻦ ﻧﺴﺨﻪ ﺗﻮﺻﯿﻪ ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.2‬‬
‫ﻣﺎژول ﻫﺎي ﭘﺎﯾﺘﻮن‪،platform ،locale ،datetime ،sqlite3 ،optparse ،os ، (sys‬‬ ‫‪.3‬‬
‫‪time). ،subprocess‬‬
‫ﻧﺤﻮه ‪install tuptime‬در ‪linux‬‬
‫اﺑﺘﺪا ﺑﺎﯾﺪ ﺑﺎ اﺟﺮاي دﺳﺘﻮر زﯾﺮ ﺑﻪ ‪ clone‬ﮐﺮدن ﻣﺨﺰن ﺑﭙﺮدازﯾﺪ‪:‬‬
‫‪git clone https://github.com/rfrail3/tuptime.git‬‬

‫‪149‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪150‬‬

‫اﺑﺰار ‪Clone tuptime‬‬


‫‪tuptime‬ﺣﺮﮐﺖ ﮐﻨﯿﺪ‪.‬ﺑﻌﺪ‪ ،‬اﺳﮑﺮﯾﭙﺖ ‪tuptime‬را داﺧﻞ آﺧﺮﯾﻦ‬ ‫ﺳﭙﺲ ﺑﻪ آﺧﺮﯾﻦ داﯾﺮﮐﺘﻮري داﺧﻞ ﭘﻮﺷﻪ‬
‫داﯾﺮﮐﺘﻮري ﺑﻪ ‪ / usr / bin‬ﮐﭙﯽ ﮐﻨﯿﺪ و ﻣﺠﻮز اﺟﺮاﯾﯽ را ﻫﻤﺎﻧﻄﻮر ﮐﻪ ﻧﺸﺎن داده ﺷﺪه ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‪.‬‬
‫‪$ cd tuptime / last‬‬
‫‪$ sudo cp tuptime / usr / bin / tuptime‬‬
‫‪$ sudo chmod ugo + x / usr / bin / tuptime‬‬

‫ﭼﮕﻮﻧﻪ از ‪ tuptime‬اﺳﺘﻔﺎده ﮐﻨﻢ؟‬


‫ﺑﻌﺪا ﻣﺎ ﺑﺎﯾﺪ ﻧﺤﻮه اﺳﺘﻔﺎده از اﯾﻦ اﺑﺰار را ﺑﺮاي ﻓﻌﺎﻟﯿﺖ ﻫﺎي ﺧﺎص ‪ system‬ﻣﺪﯾﺮﯾﺘﯽ ﺑﺎ اﺳﺘﻔﺎده از آن ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎي‬
‫ﻣﺨﺘﻠﻒ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮐﺎرﺑﺮ ﻣﻤﺘﺎز ﺑﻪ ﻋﻨﻮان ﻧﺸﺎن داده ﺷﺪه ﻧﮕﺎه داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪.‬‬
‫‪1.‬ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺷﻤﺎ ﺑﺪون ﻫﯿﭻ ﮔﺰﯾﻨﻪ اي ‪tuptime‬را اﺟﺮا ﻣﯽ ﮐﻨﯿﺪ‪ ،‬ﯾﮏ ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﺷﺒﯿﻪ ﺑﻪ ﯾﮑﯽ از زﯾﺮ درﯾﺎﻓﺖ‬
‫ﻣﯽ ﮐﻨﯿﺪ‪.‬‬
‫‪# tuptime‬‬

‫‪150‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪151‬‬

‫‪ tuptime‬در ﻋﻤﻞ‬
‫‪2.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺧﺮوﺟﯽ را ﺑﺎ ﺗﺎرﯾﺦ و زﻣﺎن ﺑﻪ ﺻﻮرت زﯾﺮ ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪.‬‬
‫'‪# tuptime - date = '٪H:٪M:٪S٪d-٪m-٪Y‬‬

‫ﺗﺎرﯾﺦ و زﻣﺎن ‪tuptime‬‬


‫‪3.‬ﺑﺮاي ﭼﺎپ زﻧﺪﮔﯽ ‪ system‬ﺑﻪ ﻋﻨﻮان ﯾﮏ ﻟﯿﺴﺖ‪ ،‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ اﯾﻦ دﺳﺘﻮر زﯾﺮ را اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪# tuptime - list‬‬

‫‪151‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪152‬‬

‫‪4.‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ ﻓﺎﯾﻞ ﭘﺎﯾﮕﺎه داده ﺟﺎﯾﮕﺰﯾﻦ را ﺑﻪ ﺻﻮرت زﯾﺮ اﯾﺠﺎد ﮐﻨﯿﺪ‪.‬ﭘﺎﯾﮕﺎه داده در ﻓﺮﻣﺖ ‪ SQLite‬اﯾﺠﺎد‬
‫ﺧﻮاﻫﺪ ﺷﺪ‪.‬‬
‫‪# tuptime‬‬ ‫‪--filedb /tmp/tuptime_testdb.db‬‬

‫ﭘﺎﯾﮕﺎه داده ‪tuptime‬‬


‫‪5.‬ﺑﺮاي ﺳﻔﺎرش اﻃﻼﻋﺎت ﺧﺮوﺟﯽ ﺗﻮﺳﻂ ﺣﺎﻟﺖ ﭘﺎﯾﺎن ‪ poweroff‬اﯾﻦ دﺳﺘﻮر را اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪# tuptime‬‬ ‫‪--end‬‬ ‫‪--table‬‬

‫‪152‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪153‬‬

‫ﺑﺮرﺳﯽ آﺧﺮﯾﻦ ﺧﺎﻣﻮش ﺷﺪن ‪linux‬‬


‫ﺑﺮﺧﯽ از ﮔﺰﯾﻨﻪ ﻫﺎي دﯾﮕﺮ ﺑﺎ اﺑﺰار ‪tuptime‬ﺑﻪ ﺷﺮح زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫ﺑﺮاي ﭼﺎپ ﻧﺴﺨﻪ ﮐﺮﻧﻞ ‪ system‬در ﺧﺮوﺟﯽ‪ ،‬از ﮔﺰﯾﻨﻪ ‪ kernel‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬ ‫‪.1‬‬
‫‪gracefully--‬اﺳﺘﻔﺎده‬ ‫‪ ،gracefully--‬از ﮔﺰﯾﻨﻪ‬ ‫‪gracefullysystem--‬‬ ‫ﺑﺮاي ﺛﺒﺖ ﻧﺎم‬ ‫‪.2‬‬
‫ﮐﻨﯿﺪ‪.‬اﯾﻦ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﺷﻤﺎ را ﺑﺪاﻧﯿﺪ ﮐﻪ آﯾﺎ ﺧﺎﻣﻮش ﺷﺪن ‪ system‬ﺧﻮب ﺑﻮد ﯾﺎ ﺧﯿﺮ‪.‬‬
‫‪seconds--‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬ ‫ﺑﺮاي ﻧﺸﺎن دادن ﺧﺮوﺟﯽ ﭘﺲ از ﺗﻌﺪاد ﻣﻌﯿﻨﯽ از ﺛﺎﻧﯿﻪ و دوره‪ ،‬از ﮔﺰﯾﻨﻪ‬ ‫‪.3‬‬
‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪ -offtime‬اﻃﻼﻋﺎت ﺧﺮوﺟﯽ را ﺑﺎ ﺧﺎﻣﻮش ﺑﻮدن ﯾﺎ ﺧﺮاﺑﯽ‬ ‫‪.4‬‬
‫‪time--‬ﯾﺎ ‪list .--‬‬ ‫ﺳﻔﺎرش دﻫﯿﺪ‪.‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﮔﺰﯾﻨﻪ ﺑﺎ‬
‫‪verbose--‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬ ‫ﺑﺮاي ﭼﺎپ اﻃﻼﻋﺎت ﺧﺮوﺟﯽ ﻣﻔﺼﻞ در ﻫﻨﮕﺎم اﺟﺮاي دﺳﺘﻮر‪ ،‬از ﮔﺰﯾﻨﻪ‬ ‫‪.5‬‬
‫‪version--‬ﺑﺮاي ﭼﺎپ ﻧﺴﺨﻪ‬ ‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ اﻃﻼﻋﺎت ﮐﻤﮏ را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪help--‬و‬ ‫‪.6‬‬
‫‪tuptime‬ﮐﻪ ﺷﻤﺎ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﺪ را ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬‬

‫‪153‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪154‬‬

‫ﯾﮏ ﻣﺪﯾﺮ ‪ system‬اﻏﻠﺐ ﺑﺎﯾﺪ ﯾﮏ ﻓﺮﻣﺎن را ﺑﺎرﻫﺎ و ﺑﺎرﻫﺎ در ﯾﮏ دوره زﻣﺎﻧﯽ ﺧﺎص اﺟﺮا ﮐﻨﺪ‪.‬اﻏﻠﺐ اﯾﻦ ﮐﺎرﻫﺎ ﺑﻪ‬
‫راﺣﺘﯽ ﺑﺎ دﺳﺘﻮراﺗﺴﺎده ‪cron‬ﮐﺎﻣﻞ ﻣﯽ ﺷﻮد‪.‬در ﺑﯿﺸﺘﺮ ﻣﻮارد اﯾﻦ ﮐﺎر ﺑﺎﯾﺪ ﮐﺎر ﮐﻨﺪ‪ ،‬اﻣﺎ ﮐﻮﺗﺎه ﺗﺮﯾﻦ دوره ﮐﻪ ﺷﻤﺎ ﻣﯽ‬
‫ﺗﻮاﻧﯿﺪ دﺳﺘﻮر ‪ cron‬را اﺟﺮا ﮐﻨﯿﺪ ﻫﺮ ‪ 1‬دﻗﯿﻘﻪ اﺳﺖ‪.‬ﺑﺎور ﮐﻨﯿﺪ ﯾﺎ ﻧﻪ‪ ،‬در ﺑﺴﯿﺎري از ﻣﻮارد اﯾﻦ ﺧﯿﻠﯽ آﻫﺴﺘﻪ اﺳﺖ‪.‬‬

‫در اﯾﻦ آﻣﻮزش‪ ،‬ﺷﻤﺎ ﯾﮏ ﺗﮑﻨﯿﮏ اﺳﮑﺮﯾﭙﺖ ﺳﺎده ﺑﺮاي ﻧﻈﺎرت و ﻧﻈﺎرت ﺑﺮ ﯾﮏ ﻓﺮﻣﺎن ﺧﺎص در ﺣﺎﻟﺖ ﺑﻪ ﻃﻮر ﻣﺪاوم‬
‫در ﺣﺎل اﺟﺮا ﺷﺒﯿﻪ ﺑﻪ ﻓﺮﻣﺎن ﺑﺎﻻ )ﭘﯿﮕﯿﺮي روﻧﺪ و اﺳﺘﻔﺎده از )‪memory‬ﺑﺮاي ﻫﺮ ‪ 3‬ﺛﺎﻧﯿﻪ ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ﯾﺎد‬
‫ﺑﮕﯿﺮﻧﺪ‪.‬‬
‫ﻣﺎ ﻣﺘﻮﻗﻒ ﻧﺨﻮاﻫﯿﻢ ﺑﻮد ﺑﻪ ﺑﺤﺚ در ﻣﻮرد دﻻﯾﻞ‪ ،‬ﭼﺮا ﺷﻤﺎ ﺑﺎﯾﺪ اﻏﻠﺐ دﺳﺘﻮرات را اﺟﺮا ﮐﻨﯿﺪ‪.‬ﻣﻦ ﻣﻌﺘﻘﺪم ﮐﻪ ﻫﺮ ﮐﺲ‬
‫دﻻﯾﻞ ﻣﺨﺘﻠﻔﯽ در ﮐﺎرﻫﺎي روزاﻧﻪ ﺧﻮد و ﯾﺎ ﺣﺘﯽ در راﯾﺎﻧﻪ ﻫﺎي ﺷﺨﺼﯽ و ﻟﭗ ﺗﺎپ ﻫﺎي ﺧﺎﻧﮕﯽ دارد‪.‬‬
‫‪1.‬از ‪ Watch‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‬
‫‪Watch‬ﯾﮏ ﻓﺮﻣﺎن ‪ linux‬اﺳﺖ ﮐﻪ ﺑﻪ ﺷﻤﺎ اﻣﮑﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﯾﮏ دﺳﺘﻮر ﯾﺎ ﺑﺮﻧﺎﻣﻪ را ﺑﻪ ﺻﻮرت دوره اي اﺟﺮا ﮐﻨﯿﺪ‬
‫و ﻫﻤﭽﻨﯿﻦ ﺧﺮوﺟﯽ را روي ﺻﻔﺤﻪ ﻧﻤﺎﯾﺶ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬اﯾﻦ ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺧﺮوﺟﯽ ﺑﺮﻧﺎﻣﻪ را‬
‫در زﻣﺎن ﺑﺒﯿﻨﯿﺪ‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ﺳﺎﻋﺖ اﺟﺮا ﻓﺮﻣﺎن ‪ /‬ﺑﺮﻧﺎﻣﻪ ﻫﺮ ‪ 2‬ﺛﺎﻧﯿﻪ‪.‬ﻓﺎﺻﻠﻪ را ﻣﯽ ﺗﻮان ﺑﻪ راﺣﺘﯽ ﺗﻐﯿﯿﺮ داد ﺗﺎ‬
‫ﻧﯿﺎزﻫﺎي ﺷﻤﺎ را ﺑﺮآورده ﮐﻨﺪ‪.‬‬
‫ﻧﻈﺎرت ﺑﺮ اﺳﺘﻔﺎده از ‪memory‬‬
‫‪ ""watch‬ﺑﺴﯿﺎر آﺳﺎن اﺳﺖ ﺑﺮاي اﺳﺘﻔﺎده از آن‪ ،‬ﺑﺮاي آزﻣﺎﯾﺶ آن‪ ،‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﻪ ﺳﺮﻋﺖ ﺗﺮﻣﯿﻨﺎل ‪ linux‬را‬
‫آﺗﺶ ﺑﺰﻧﯿﺪ و دﺳﺘﻮر زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪# watch free -m‬‬
‫دﺳﺘﻮر ﺑﺎﻻ ‪ memory‬آزاد ‪ system‬ﺷﻤﺎ را ﺑﺮرﺳﯽ ﻣﯽ ﮐﻨﺪ و ﻧﺘﺎﯾﺞ ﻓﺮﻣﺎن آزادﻫﺮ دو ﺛﺎﻧﯿﻪ را ﺑﻪ روز ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪154‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪155‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪ WC‬ﺑﺮاي ﺷﻤﺎرش ﺗﻌﺪاد ﺧﻄﻮط‪ ،‬ﮐﻠﻤﺎت‪ ،‬ﺷﺨﺼﯿﺖ ﻫﺎ در ‪linux‬‬


‫ﻓﺮﻣﺎن ) ‪wc ( word count‬در ‪ system‬ﻋﺎﻣﻞ ﻫﺎي ﯾﻮﻧﯿﮑﺲ ‪ linux /‬ﺑﺮاي ‪ find‬ﺗﻌﺪاد ﺷﻤﺎرة ﺧﻂ ﺟﺪﯾﺪ ‪،‬‬
‫ﺷﻤﺎرش ﮐﻠﻤﻪ ‪ ،‬ﺑﺎﯾﺖ و ﺷﻤﺎرش ﮐﺎراﮐﺘﺮ در ﻓﺎﯾﻞ ﻫﺎي ﻣﺸﺨﺺ ﺷﺪه ﺗﻮﺳﻂ اﺳﺘﺪﻻل ﻫﺎي ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻧﺤﻮ‬
‫دﺳﺘﻮر ‪wc‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫ﻧﺎم ﻓﺎﯾﻞ ]‪# wc [options‬‬

‫زﯾﺮ ﮔﺰﯾﻨﻪ ﻫﺎ و اﺳﺘﻔﺎده ﻫﺎي اراﺋﻪ ﺷﺪه ﺗﻮﺳﻂ دﺳﺘﻮر زﯾﺮ اﺳﺖ‪.‬‬
‫‪wc -l :‬ﺗﻌﺪاد ﺧﻄﻮط را در ﯾﮏ ﻓﺎﯾﻞ ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪wc -w :‬ﺗﻌﺪاد ﮐﻠﻤﺎت را در ﯾﮏ ﻓﺎﯾﻞ ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪wc -c :‬ﺗﻌﺪاد ﺑﺎﯾﺖ ﻫﺎ را در ﯾﮏ ﻓﺎﯾﻞ ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪wc -m :‬ﺗﻌﺪاد ﮐﺎراﮐﺘﺮﻫﺎي ﯾﮏ ﻓﺎﯾﻞ را ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪wc -L :‬ﻓﻘﻂ ﻃﻮل ﻃﻮﻻﻧﯽ ﺗﺮﯾﻦ ﺧﻂ در ﯾﮏ ﻓﺎﯾﻞ را ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﺑﯿﺎﯾﯿﺪ ﺑﺒﯿﻨﯿﻢ ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﯿﻢ از دﺳﺘﻮر ‪wc‬اﺳﺘﻔﺎده ﮐﻨﯿﻢ ﺑﺎ ﺗﻌﺪاد ﭼﻨﺪ اﺳﺘﺪﻻل و ﻧﻤﻮﻧﻪ ﻫﺎي ﻣﻮﺟﻮد در‬
‫اﯾﻦ ﮐﺘﺎب‪.‬ﻣﺎ از ﻓﺎﯾﻞ ‪hosein .txt‬ﺑﺮاي آزﻣﺎﯾﺶ دﺳﺘﻮرات اﺳﺘﻔﺎده ﮐﺮده اﯾﻢ‪.‬ﺑﯿﺎﯾﯿﺪ ﺧﺮوﺟﯽ ﻓﺎﯾﻞ را ﺑﺎ اﺳﺘﻔﺎده از‬
‫دﺳﺘﻮر‪ cat‬ﺑﻪ زﯾﺮ ﻧﺸﺎن ﺑﺪﻫﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # cat hosein .txt‬‬

‫‪ 1.‬ﻣﺜﺎل اﺻﻠﯽ از ﻓﺮﻣﺎن‪WC‬‬


‫ﻓﺮﻣﺎن ' ‪ ' wc‬ﺑﺪون ﻋﺒﻮر از ﻫﺮ ﭘﺎراﻣﺘﺮي ﯾﮏ ﻧﺘﯿﺠﻪ اوﻟﯿﻪ از ﻓﺎﯾﻞ ‪hosein .txt‬را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬ﺳﻪ ﺷﻤﺎره زﯾﺮ‬
‫ﻧﺸﺎن داده ﺷﺪه در زﯾﺮ ( ‪12‬ﺗﻌﺪاد ﺧﻄﻮط)‪16 ( ،‬ﺗﻌﺪاد ﮐﻠﻤﺎت )و ( ‪112‬ﺗﻌﺪاد ﺑﺎﯾﺖ )ﻓﺎﯾﻞ اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # wc hosein .txt‬‬

‫‪1216112 hosein .txt‬‬


‫‪2.‬ﺗﻌﺪاد ﺗﻌﺪاد ﺧﻄﻮط‬
‫ﺑﺮاي ﺷﻤﺎرش ﺗﻌﺪاد ﺧﻄﻮط ﺟﺪﯾﺪ در ﯾﮏ ﻓﺎﯾﻞ از ﮔﺰﯾﻨﻪ ' ‪ ' -l‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪ ،‬ﮐﻪ ﺗﻌﺪاد ﺧﻄﻮط را از ﯾﮏ ﻓﺎﯾﻞ داده‬
‫ﺷﺪه ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬ﺑﮕﻮ‪ ،‬دﺳﺘﻮر زﯾﺮ ﺗﻌﺪاد ﺧﻄﻮط ﺟﺪﯾﺪ در ﯾﮏ ﻓﺎﯾﻞ را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬در ﺧﺮوﺟﯽ اوﻟﯿﻦ ﻓﯿﻠﺪ ﺑﻪ‬
‫ﻋﻨﻮان ﺷﻤﺎرش اﺧﺘﺼﺎص داده ﺷﺪه و ﻓﯿﻠﺪ دوم ﻧﺎم ﻓﺎﯾﻞ اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # wc -l hosein .txt‬‬
‫‪12 hosein .txt‬‬

‫‪155‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪156‬‬

‫‪3.‬ﻧﻤﺎﯾﺶ ﺗﻌﺪاد واژﮔﺎن‬


‫ﺑﺎ اﺳﺘﻔﺎده از آرﮔﻮﻣﺎن " ‪ " -w‬ﺑﺎ ﻓﺮﻣﺎن " ‪ " wc‬ﺗﻌﺪاد ﮐﻠﻤﺎت را در ﯾﮏ ﻓﺎﯾﻞ ﭼﺎپ ﻣﯽ ﮐﻨﺪ‪.‬دﺳﺘﻮر زﯾﺮ را ﺑﺮاي‬
‫ﺷﻤﺎرش ﮐﻠﻤﺎت در ﯾﮏ ﻓﺎﯾﻞ ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # wc -w hosein .txt‬‬
‫‪16 hosein .txt‬‬
‫‪4.‬ﺷﻤﺎرش ﺗﻌﺪاد ﺑﺎﯾﺖ ﻫﺎ و ﺷﺨﺼﯿﺖ ﻫﺎ‬
‫ﻫﻨﮕﺎم اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﻫﺎي ' ‪ ' -c‬و ' ‪ ' -m‬ﺑﺎ دﺳﺘﻮر ‪ ،wc‬ﺗﻌﺪاد ﮐﻞ ﺑﺎﯾﺖ ﻫﺎ و ﮐﺎراﮐﺘﺮ ﻫﺎ در ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﺗﺮﺗﯿﺐ‬
‫اﻧﺠﺎم ﻣﯽ ﺷﻮد‪.‬‬
‫‪[ root@ hosein ~] # wc -c hosein .txt‬‬

‫‪112 hosein .txt‬‬


‫‪[ root@ hosein ~] # wc-m hosein .txt‬‬

‫‪112 hosein .txt‬‬


‫‪5.‬ﻧﻤﺎﯾﺶ ﻃﻮﻻﻧﯽ ﺗﺮﯾﻦ ﺧﻂ‬
‫دﺳﺘﻮر ‪wc‬ﺑﻪ اﺳﺘﺪﻻل " ‪ " -L‬اﺟﺎزه ﻣﯽ دﻫﺪ‪ ،‬آن را ﻣﯽ ﺗﻮان ﺑﺮاي ﭼﺎپ ﻃﻮل ﻃﻮﻻﻧﯽ ﺗﺮﯾﻦ ( ﺗﻌﺪاد ﮐﺎراﮐﺘﺮ )ﺧﻂ‬
‫در ﯾﮏ ﻓﺎﯾﻞ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﻣﺎ داراي ﻃﻮﻻﻧﯽ ﺗﺮﯾﻦ ﺧﻂ ﺷﺨﺼﯿﺖ '( ﻋﻠﻤﯽ )'‪linux‬در ﯾﮏ ﻓﺎﯾﻞ اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # wc -L hosein .txt‬‬

‫‪16 hosein .txt‬‬


‫‪6.‬ﮔﺰﯾﻨﻪ ﻫﺎي ﺑﯿﺸﺘﺮ ‪ WC‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‬
‫ﺑﺮاي اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ و ﮐﻤﮏ در دﺳﺘﻮر ‪ ،wc‬ﺳﺎده ' ‪ ' wc -help‬ﯾﺎ ' ‪ ' man wc‬را از ﺧﻂ ﻓﺮﻣﺎن اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # wc‬‬ ‫‪--help‬‬

‫‪: wc [OPTION] ... [FILE] ...‬اﺳﺘﻔﺎده‬

‫‪: wc [OPTION] ...‬ﯾﺎ‬ ‫‪--files0-from = F‬‬


‫ﺗﻌﺪاد ﺧﻄﻮط ﺟﺪﯾﺪ‪ ،‬ﮐﻠﻤﻪ و ﺑﺎﯾﺖ را ﺑﺮاي ﻫﺮ ‪ FILE‬ﭼﺎپ ﮐﻨﯿﺪ‪ ،‬و اﮔﺮ ﮐﻞ ﺧﻂ ﺑﺎﺷﺪ‬
‫ﺑﯿﺶ از ﯾﮏ ﻓﺎﯾﻞ ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ ﺑﺪون ‪ FILE‬ﯾﺎ زﻣﺎﻧﯽ ﮐﻪ ‪ FILE‬اﺳﺖ‪، -‬‬

‫‪156‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪157‬‬

‫‪wget‬‬
‫ﻗﺼﺪ دارﯾﻢ اﺑﺰار ‪wget‬را ﺑﺮرﺳﯽ ﮐﻨﯿﻢ ﮐﻪ ﻓﺎﯾﻞ ﻫﺎ را از وب ﺳﺎﯾﺖ ﺟﻬﺎﻧﯽ ) ‪( WWW‬ﺑﺎزﯾﺎﺑﯽ ﻣﯽ ﮐﻨﺪ ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﭘﺮوﺗﮑﻞ ﻫﺎي ﮔﺴﺘﺮده ﻣﺎﻧﻨﺪ ‪HTTPS ،HTTP‬و ‪FTP .‬اﺑﺰار ‪Wget‬ﺑﺴﺘﻪ آزاداﻧﻪ ﻣﻮﺟﻮد اﺳﺖ و ﻣﺠﻮز ﺗﺤﺖ‬
‫ﻣﺠﻮز ‪ GNU GPL‬اﺳﺖ‪.‬اﯾﻦ اﺑﺰار ﻣﯽ ﺗﻮاﻧﺪ ﻫﺮ ‪ system‬ﻋﺎﻣﻞ ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ‪Windows‬و ‪MAC OS‬را‬
‫‪ install‬ﮐﻨﺪ‪.‬اﯾﻦ ﯾﮏ اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن ﻏﯿﺮ ﺗﻌﺎﻣﻠﯽ اﺳﺖ‪.‬وﯾﮋﮔﯽ اﺻﻠﯽ ‪Wget‬آن اﺳﺘﺤﮑﺎم اﺳﺖ‪.‬اﯾﻦ ﺑﻪ ﻃﻮري‬
‫ﻃﺮاﺣﯽ ﺷﺪه اﺳﺖ ﮐﻪ در اﺗﺼﺎﻻت ﺷﺒﮑﻪ آﻫﺴﺘﻪ ﯾﺎ ﻧﺎﭘﺎﯾﺪار ﺷﺒﮑﻪ ﮐﺎر ﮐﻨﺪ ‪.Wget‬ﺑﻪ ﺻﻮرت ﺧﻮدﮐﺎر ﺷﺮوع ﺑﻪ‬
‫‪ download‬ﻣﯿﮑﻨﺪ و در ﺻﻮرت ﻣﺸﮑﻠﯽ در ﺷﺒﮑﻪ‪ ،‬آن را ﺗﺮك ﮐﺮد‪.‬ﻫﻤﭽﻨﯿﻦ ﻓﺎﯾﻠﻬﺎ را ﺑﻪ ﺻﻮرت ﺑﺎزﮔﺸﺘﯽ ﺑﺎرﮔﯿﺮي‬
‫ﻣﯽ ﮐﻨﺪ‪.‬اﯾﻦ ﺗﻼش را اداﻣﻪ ﺧﻮاﻫﺪ داد ﺗﺎ ﻓﺎﯾﻞ ﺑﻪ ﻃﻮر ﮐﺎﻣﻞ ﺑﺎزﯾﺎﺑﯽ ﺷﻮد‪.‬‬

‫ﻣﺜﺎل دﺳﺘﻮراﻟﻌﻤﻞ ‪Wget linux‬‬


‫اﺑﺘﺪا ﺑﺮرﺳﯽ ﮐﻨﯿﺪ ﮐﻪ آﯾﺎ اﺑﺰار ‪wget‬ﻗﺒﻼ ‪ install‬ﺷﺪه اﺳﺖ ﯾﺎ ﻧﻪ در ﺟﻌﺒﻪ ‪ linux‬ﺧﻮد‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر زﯾﺮ‪.‬‬
‫‪# rpm -qa wget‬‬

‫‪wget-1.12-1.4.el6.i686‬‬
‫ﻟﻄﻔﺎ آن را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪ YUMinstall‬ﮐﻨﯿﺪ در ﺻﻮرﺗﯽ ﮐﻪ ‪wget‬ﻗﺒﻼ ‪ install‬ﻧﺸﺪه ﯾﺎ ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ‬
‫ﺗﻮاﻧﯿﺪ ﺑﺴﺘﻪ ﺑﺎﯾﻨﺮي را در ‪ http://ftp.gnu.org/gnu/wget/download‬ﮐﻨﯿﺪ‪.‬‬
‫‪# yum - install wget‬‬
‫ﮔﺰﯾﻨﻪ ‪-y‬ﮐﻪ در اﯾﻨﺠﺎ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬ﻗﺒﻞ از ‪ install‬ﻫﺮ ﺑﺴﺘﻪ‪ ،‬ﭘﯿﺸﮕﯿﺮي از ﺗﺄﯾﯿﺪ ﭘﯿﺸﮕﯿﺮي اﺳﺖ‪.‬ﺑﺮاي ﻣﺜﺎل‬
‫ﻧﻤﻮﻧﻪ و ﮔﺰﯾﻨﻪ ﻫﺎي دﺳﺘﻮر ‪YUM‬ﺑﯿﺸﺘﺮ از ‪ 20‬دﺳﺘﻮراﻟﻌﻤﻞ ‪YUM‬ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ ﺑﻨﺪي ‪ linux‬اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫‪.‬داﻧﻠﻮد ﻓﺎﯾﻞ ﺗﻨﻬﺎ‬
‫ﻓﺮﻣﺎن ﯾﮏ ﻓﺎﯾﻞ و ﻓﺮوﺷﮕﺎه را در ﯾﮏ داﯾﺮﮐﺘﻮري ﺟﺎري ‪ download‬ﻣﯽ ﮐﻨﺪ‪.‬ﻫﻤﭽﻨﯿﻦ در ﺣﺎل ﺑﺎرﮔﯿﺮي ﭘﯿﺸﺮﻓﺖ ‪،‬‬
‫اﻧﺪازه ‪ ،‬ﺗﺎرﯾﺦ و زﻣﺎن ‪ download‬را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz‬‬

‫ﻓﺎﯾﻞ را ﺑﺎ ﻧﺎم ﻣﺘﻔﺎوت ‪ download‬ﮐﻨﯿﺪ‬


‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ( ‪-O‬ﺑﺰرگ)‪ ،‬ﺑﺎرﮔﯿﺮي ﻓﺎﯾﻞ ﺑﺎ ﻧﺎم ﻓﺎﯾﻞ ﻫﺎي ﻣﺨﺘﻠﻒ‪.‬در اﯾﻨﺠﺎ ﻧﺎم ﻓﺎﯾﻞ ‪wget.zip‬را ﺑﻪ ﻋﻨﻮان‬
‫ﻧﺸﺎن داده ﺷﺪه در زﯾﺮ آورده اﯾﻢ‪.‬‬
‫‪# wget -O wget.zip http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz‬‬

‫‪157‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪158‬‬

‫ﻓﺎﯾﻞ ﭼﻨﺪﮔﺎﻧﻪ را ﺑﺎ ﭘﺮوﺗﮑﻞ ‪ http‬و‪ ftp download‬ﮐﻨﯿﺪ‬


‫در اﯾﻨﺠﺎ ﻣﯽ ﺑﯿﻨﯿﻢ ﮐﻪ ﭼﮕﻮﻧﻪ ﻓﺎﯾﻞ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ را ﺑﺎ اﺳﺘﻔﺎده از ﭘﺮوﺗﮑﻞ ‪HTTP‬و ‪FTP‬ﺑﺎ دﺳﺘﻮر‪ wget‬در آن ﻫﺎ‬
‫ﺑﺎرﮔﯿﺮي ﮐﻨﯿﻢ‪.‬‬
‫‪# wget http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz ftp://ftp.gnu.org/gnu/wget/wget-‬‬
‫‪1.10.1.tar.gz.sig‬‬ ‫‪http://ftp.gnu.org/gnu/wget/wget-1.5.3.tar.gz‬‬
‫ﯾﮏ ‪ URL‬ﺑﺨﻮاﻧﯿﺪ‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺗﻌﺪادي ‪URL‬را در ﻓﺎﯾﻞ ﻣﺘﻨﯽ ذﺧﯿﺮه ﮐﺮده و آﻧﻬﺎ را ﺑﺎ ﮔﺰﯾﻨﻪ ‪ -idownload‬ﮐﻨﯿﺪ‪.‬در ﭘﺎﯾﯿﻦ ﻣﺎ‬
‫‪tmp.txt‬را در داﯾﺮﮐﺘﻮري ‪ wget‬اﯾﺠﺎد ﮐﺮدﯾﻢ ﮐﻪ در آﻧﺠﺎ ﻣﺠﻤﻮﻋﻪ اي از ‪URL‬ﻫﺎ را ﺑﺮاي ‪ download‬ﻗﺮار ﻣﯽ‬
‫دﻫﯿﻢ‪.‬‬
‫‪# wget -i / wget / tmp.txt‬‬

‫‪.‬ﺑﺎزﺧﻮاﻧﯽ ‪ download‬ﻧﺎﺗﻤﺎم‬
‫در ﺻﻮرت ‪ download‬ﻓﺎﯾﻞ ﺑﺰرگ‪ ،‬ﻣﻤﮑﻦ اﺳﺖ ﺑﻌﻀﯽ وﻗﺖ ﻫﺎ ﺑﺮاي ﺟﻠﻮﮔﯿﺮي از ‪ download‬در اﯾﻦ ﻣﻮرد اﺗﻔﺎق‬
‫ﺑﯿﻔﺘﺪ‪ ،‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﻓﺎﯾﻞ ﻣﺸﺎﺑﻬﯽ را ﮐﻪ در آن ﺑﺎ ﮔﺰﯾﻨﻪ ‪-c‬ﮐﻨﺎر ﮔﺬاﺷﺘﻪ ﺷﺪ‪ download ،‬ﮐﻨﯿﺪ‪.‬اﻣﺎ ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺷﻤﺎ‬
‫ﺷﺮوع ﺑﻪ ‪ download‬ﻓﺎﯾﻞ ﺑﺪون ﻣﺸﺨﺺ ﮐﺮدن ‪-c‬ﮔﺰﯾﻨﻪ ‪wget‬اﺿﺎﻓﻪ ﺧﻮاﻫﺪ ﺷﺪ ‪.1‬ﭘﺴﻮﻧﺪ در ﭘﺎﯾﺎن ﻓﺎﯾﻞ‪ ،‬ﺑﺎ ﺗﻮﺟﻪ‬
‫ﺑﻪ ﻋﻨﻮان ‪ download‬ﺗﺎزه‪.‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﺗﻤﺮﯾﻦ ﺧﻮﺑﯽ ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ‪-c‬ﻫﻨﮕﺎم ﺑﺎرﮔﯿﺮي ﻓﺎﯾﻠﻬﺎي ﺑﺰرگ اﺳﺖ‪.‬‬
‫‪# wget -c http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-‬‬
‫‪LiveDVD.iso‬‬

‫ﻓﺎﯾﻞ را ﺑﺎ اﺿﺎﻓﻪ ﺷﺪن ‪ 1.‬در ﻧﺎم ﻓﺎﯾﻞ ‪ download‬ﮐﻨﯿﺪ‬


‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﺷﻤﺎ ﺷﺮوع ﺑﻪ ‪ download‬ﮐﻨﯿﺪ ﺑﺪون ﮔﺰﯾﻨﻪ ‪-c‬ﮔﺰﯾﻨﻪ ‪wget‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ ‪.1‬در ﭘﺎﯾﺎن ﻓﺎﯾﻞ و ﺑﺎ‬
‫‪ download‬ﺗﺎزه ﺷﺮوع ﮐﻨﯿﺪ‪.‬اﮔﺮ ‪.1‬در ﺣﺎل ﺣﺎﺿﺮ وﺟﻮد دارد ‪.2‬در ﭘﺎﯾﺎن ﻓﺎﯾﻞ اﺿﺎﻓﻪ ﺷﺪه اﺳﺖ‪.‬‬
‫‪# wget http://mirrors.hns.net.in/centos/6.3/isos/x86_64/CentOS-6.3-x86_64-‬‬
‫‪LiveDVD.iso‬‬

‫ﻓﺎﯾﻞ ﻫﺎ را در ﭘﺲ زﻣﯿﻨﻪ ‪ download‬ﮐﻨﯿﺪ‬


‫ﺑﺎ ﮔﺰﯾﻨﻪ ‪-b‬ﻣﯿﺘﻮاﻧﯿﺪ ﺑﻼﻓﺎﺻﻠﻪ ﭘﺲ از ‪ download download‬در ﭘﺴﺰﻣﯿﻨﻪ ارﺳﺎل ﮐﻨﯿﺪ و ﺳﯿﺎﻫﻬﻬﺎي ﻣﺮﺑﻮط ﺑﻪ‬
‫ﻓﺎﯾﻞ ‪/wget/log.txt‬ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‪.‬‬
‫‪# wget -b /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-cd/6.0.5/i386/iso-dvd/debian-‬‬
‫‪6.0.5-i386-DVD-1. iso‬‬
‫اداﻣﻪ در ﭘﺲ زﻣﯿﻨﻪ‪pid 3550 . ،‬‬

‫‪158‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪159‬‬

‫ﻣﺤﺪودﯾﺖ ﺳﺮﻋﺖ ‪ download‬را ﻣﺤﺪود ﮐﻨﯿﺪ‬


‫ﺑﺎ‪ ، Option -limit-rate = 100k‬ﻣﺤﺪودﯾﺖ ﺳﺮﻋﺖ ‪ download‬ﺑﻪ ‪k 100‬ﻣﺤﺪود ﻣﯽ ﺷﻮد و ﺳﯿﺎﻫﻬﻬﺎي‬
‫ﻣﺮﺑﻮط ﺑﻪ زﯾﺮ ‪/wget/log.txt‬اﯾﺠﺎد ﺧﻮاﻫﺪ ﺷﺪ‪ ،‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪# wget -c --limit-rate = 100k /wget/log.txt ftp://ftp.iinet.net.au/debian/debian-‬‬
‫‪cd/6.0.5/i386/iso-dvd/debian-6.0.5 -i386-DVD-1.iso‬‬

‫ﻣﺸﺎﻫﺪه ﻧﺴﺨﻪ ‪ wget‬و ﮐﻤﮏ‬


‫ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎ ‪-version‬و ‪-help‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻧﺴﺨﻪ و ﮐﻤﮏ را در ﺻﻮرت ﻧﯿﺎز ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬‬
‫‪# wget‬‬ ‫‪--version‬‬

‫‪# wget –help‬‬


‫اﯾﺠﺎد و ﺣﺬف ﻓﺎﯾﻞ ﻫﺎ و راﻫﻨﻤﺎﻫﺎ‬
‫‪touch‬‬
‫‪touch ali‬‬
‫‪touch ahmad reza javad‬‬
‫ﺑﺮاي اﯾﺠﺎد ﻓﺎﯾﻞ اﺳﺖ‪ ،‬اﻣﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮان آن را ﺑﺮاي اﯾﺠﺎد ﺳﺮﯾﻊ ﻓﺎﯾﻞ ‪ empty‬اﺳﺘﻔﺎده ﮐﺮد‪ .‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ‬
‫ﻓﺎﯾﻞ ﺟﺪﯾﺪ را ﺑﺎ ﺑﺎز ﮐﺮدن آن ﺑﺎ ﯾﮏ وﯾﺮاﯾﺸﮕﺮ ﻣﺘﻦ ﻣﺎﻧﻨﺪ ‪ nano‬اﯾﺠﺎد ﮐﻨﯿﺪ ‪:‬‬
‫‪12:17 | hossein@pc01 ex | nano a‬‬

‫‪mkdir / rm / rmdir‬‬
‫‪ mkdir‬ﺑﺮاي اﯾﺠﺎد داﯾﺮﮐﺘﻮري ﺟﺪﯾﺪ و ‪ empty‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪mkdir c‬‬

‫ﯾﮏ ﭘﻮﺷﻪ ‪ empty‬را ﺑﺎ ‪ rmdir‬ﺣﺬف ﻣﯿﮑﻨﯿﻢ‪.‬‬


‫‪rm a‬‬
‫ﺣﺬف ﭘﻮﺷﻪ ﺑﺎ ﭘﺮﺳﺶ ﺳﻮال‬
‫‪rm-i b‬‬

‫ﺣﺬف ﭘﻮﺷﻪ اي ﮐﻪ ‪ empty‬ﻧﯿﺴﺖ ﺑﺎ ﺳﻮﯾﭻ ‪f‬‬


‫‪rm –rf test‬‬

‫‪159‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪160‬‬

‫اﻧﺘﻘﺎل و ﮐﭙﯽ ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎ‪ ،‬اﯾﺠﺎد ﻟﯿﻨﮏ ﻫﺎ‪ ،‬ﺗﺎرﯾﺨﭽﻪ دﺳﺘﻮر‬
‫‪mv / cp / ln‬‬
‫‪mv‬ﯾﮏ ﻓﺎﯾﻞ ﯾﺎ ﻓﻬﺮﺳﺖ را اﻧﺘﻘﺎل ﻣﯽ دﻫﺪ‬
‫‪mv /ali/a.txt /bahram/‬‬

‫ﮐﭙﯽ ﯾﮏ ﻓﺎﯾﻞ ﺑﻪ ﻣﮑﺎن دﯾﮕﺮ‬


‫‪cp /ali/a.txt /bahram/‬‬

‫‪ LN‬اﯾﺠﺎد ﯾﮏ ﻟﯿﻨﮏ ﺳﺨﺖ ﺑﻪ ﯾﮏ ﻓﺎﯾﻞ‪:‬‬


‫‪ln /var/strace.log /ali/‬‬

‫دﺳﺘﻮر ﺗﺎرﯾﺨﭽﻪ‬
‫‪ bash‬داراي دو وﯾﮋﮔﯽ ﺑﺰرگ اﺳﺖ ﮐﻪ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ دﺳﺘﻮرات ﮐﺎﻣﻞ و دوﺑﺎره اﺟﺮا ﮐﻨﯿﺪ‪ ،‬ﺑﻪ ﺳﺎدﮔﯽ ﻗﺴﻤﺖ‬
‫اول ﯾﮏ دﺳﺘﻮر را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪ ،‬ﮐﻠﯿﺪ >‪ <tab‬را ﺑﺰﻧﯿﺪ و ﺗﺮﻣﯿﻨﺎل ﺣﺪس ﻣﯿﺰﻧﺪ ﭼﻪ ﮐﺎري اﻧﺠﺎم ﻣﯿﺨﻮاﻫﯿﺪ اﻧﺠﺎم دﻫﯿﺪ‪.‬‬
‫>‪ls<ENTER‬‬
‫>‪ls t <TAB‬‬
‫ﺑﺎ دﺳﺘﻮر ‪ tab‬دﺳﺘﻮر ﺷﻤﺎ ﮐﺎﻣﻞ ﻣﯽ ﺷﻮد‪.‬‬
‫‪ bash‬ﯾﮏ ﺗﺎرﯾﺨﭽﻪ ﮐﻮﺗﺎه از دﺳﺘﻮرات را ﮐﻪ ﻗﺒﻼ وارد ﮐﺮده اﯾﺪ ﻧﮕﻪ ﻣﯽ دارد و اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ از ﻃﺮﯾﻖ آن‬
‫دﺳﺘﻮرات را ﺑﺎ ﺗﺎﯾﭗ ﮐﺮدن‬
‫‪ (Ctrl + r‬ﺟﺴﺘﺠﻮ ﮐﻨﯿﺪ‪.‬‬
‫درﺧﺘﺎن راﻫﻨﻤﺎﯾﯽ‪ ،‬اﺳﺘﻔﺎده از دﯾﺴﮏ‪ ،‬و ﻓﺮآﯾﻨﺪﻫﺎ‬
‫‪tree‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﭘﻮﺷﻪ ﻫﺎي ‪ empty‬در ﺧﺮوﺟﯽ درﺧﺖ ﻧﺸﺎن دﻫﯿﺪ‪.‬‬
‫‪tree‬‬
‫‪clear‬‬
‫ﺑﺮاي ﭘﺎﮐﺴﺎزي ﻓﻀﺎي ﮐﺎري ﺷﻤﺎ ﺧﻮب اﺳﺖ‪ .‬ﯾﺎ ﮐﻠﯿﺪ ﻣﯿﺎﻧﺒﺮ ‪ctrl +l‬‬
‫‪$ clear‬‬
‫دﯾﺴﮏ‪ memory ،‬و اﺳﺘﻔﺎده از ﭘﺮدازﻧﺪه‬

‫‪160‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪161‬‬

‫‪ncdu‬‬
‫‪) ncdu‬اﺳﺘﻔﺎده از ‪ (Disk Usage NCurses‬ﯾﮏ ﻣﺮور ﮐﻠﯽ ﻗﺎﺑﻞ اﺳﺘﻔﺎده ﺑﺮاي اﺳﺘﻔﺎده از ﻓﻀﺎي ﻓﺎﯾﻞ را ﻓﺮاﻫﻢ‬
‫ﻣﯽ ﮐﻨﺪ‬
‫‪| hossein@pc01 ~ | ncdu‬‬

‫‪htop‬‬
‫ﻧﻤﺎﯾﺶ ﺗﻤﺎم ﻓﺮآﯾﻨﺪﻫﺎي در ﺣﺎل ﺣﺎﺿﺮ در ﺣﺎل اﺟﺮا و ﺻﺎﺣﺒﺎن آﻧﻬﺎ‪ ،‬اﺳﺘﻔﺎده از ‪ memory‬را ﻧﺸﺎن ﻣﯿﺪﻫﺪ‪.‬‬
‫‪hossein@pc01 ~ | htop‬‬

‫[ ‪1‬‬ ‫[ ‪0.0%] 9‬‬ ‫[ ‪0.0%] 17‬‬ ‫[ ‪0.0%] 25‬‬ ‫]‪0.0%‬‬


‫[ ‪2‬‬ ‫[ ‪0.0%] 10‬‬ ‫[ ‪0.0%] 18‬‬ ‫[ ‪0.0%] 26‬‬ ‫]‪0.0%‬‬
‫[ ‪3‬‬ ‫[ ‪0.0%] 11‬‬ ‫[ ‪0.0%] 19‬‬ ‫[ ‪0.0%] 27‬‬ ‫]‪0.0%‬‬
‫[ ‪4‬‬ ‫[ ‪0.0%] 12‬‬ ‫[ ‪0.0%] 20‬‬ ‫[ ‪0.0%] 28‬‬ ‫]‪0.0%‬‬
‫[ ‪5‬‬ ‫[ ‪0.0%] 13‬‬ ‫|[ ‪0.0%] 21‬‬ ‫[ ‪1.3%] 29‬‬ ‫]‪0.0%‬‬
‫[ ‪6‬‬ ‫[ ‪0.0%] 14‬‬ ‫[ ‪0.0%] 22‬‬ ‫|[ ‪0.0%] 30‬‬ ‫]‪0.6%‬‬
‫[ ‪7‬‬ ‫[ ‪0.0%] 15‬‬ ‫[ ‪0.0%] 23‬‬ ‫[ ‪0.0%] 31‬‬ ‫]‪0.0%‬‬
‫[ ‪8‬‬ ‫[ ‪0.0%] 16‬‬ ‫[ ‪0.0%] 24‬‬ ‫[ ‪0.0%] 32‬‬ ‫]‪0.0%‬‬
‫‪Mem[||||||||||||||||||||1.42G/252G] Tasks: 188, 366 thr; 1 running‬‬
‫|[‪Swp‬‬ ‫‪2.47G/256G] Load average: 0.00 0.00 0.00‬‬
‫‪Uptime: 432 days(!), 00:03:55‬‬

‫‪PID USER‬‬ ‫‪PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command‬‬
‫‪9389 hossein 20 0 23344 3848 2848 R 1.3 0.0 0:00.10 htop‬‬
‫‪10103 root‬‬ ‫‪20 0 3216M 17896 2444 S 0.7 0.0 5h48:56 /usr/bin/dockerd‬‬
‫‪1 root‬‬ ‫‪20 0 181M 4604 2972 S 0.0 0.0 15:29.66 /lib/systemd/syst‬‬
‫‪533 root‬‬ ‫‪20 0 44676 6908 6716 S 0.0 0.0 19.77 /lib/systemd/syst‬‬
‫ﻣﺘﻐﯿﺮﻫﺎي ﻣﺤﯿﻄﯽ و ﻧﺎم ﻣﺴﺘﻌﺎر‬
‫ﻣﺘﻐﯿﺮﻫﺎي ﻣﺤﯿﻄﯽ )ﮔﺎﻫﯽ اوﻗﺎت ﺑﻪ "‪ "env vars‬ﮐﻮﺗﺎه ﻣﯽ ﺷﻮﻧﺪ( ﻣﺘﻐﯿﺮﻫﺎي ﭘﺎﯾﺪار ﻫﺴﺘﻨﺪ ﮐﻪ ﻣﯽ ﺗﻮاﻧﻨﺪ در ﭘﻮﺳﺘﻪ‬
‫‪ bash‬ﺷﻤﺎ اﯾﺠﺎد و اﺳﺘﻔﺎده ﺷﻮﻧﺪ ‪ .‬آﻧﻬﺎ ﺑﺎ ﻋﻼﻣﺖ ﺑﺮاﺑﺮ ) = ( ﺗﻌﺮﯾﻒ ﺷﺪه و ﺑﺎ ﻋﻼﻣﺖ دﻻر ) ‪ ( $‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮﻧﺪ‪.‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺗﻤﺎم ﺗﻨﻈﯿﻤﺎت ﻓﻌﻠﯽ ﺗﻌﺮﯾﻒ ﺷﺪه را ﺑﺎ ‪ printenv‬ﺑﺒﯿﻨﯿﺪ‬
‫‪14:33 | hossein@pc01 ~ | printenv‬‬
‫‪SPARK_HOME=/usr/local/spark‬‬
‫‪TERM=xterm‬‬

‫‪161‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪162‬‬

‫ﻧﺎم ﻣﺴﺘﻌﺎر‬
‫ﻧﺎم ﻣﺴﺘﻌﺎر ﺷﺒﯿﻪ ﺑﻪ ﻣﺘﻐﯿﺮﻫﺎي ﻣﺤﯿﻄﯽ اﺳﺖ‪ ،‬اﻣﺎ ﻣﻌﻤﻮﻻ ﺑﻪ ﺻﻮرت ﻣﺘﻔﺎوﺗﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد ‪ -‬ﺑﺮاي ﺟﺎﯾﮕﺰﯾﻨﯽ‬
‫دﺳﺘﻮرات ﻃﻮﻻﻧﯽ ﺑﺎ آن ﻫﺎ ﮐﻮﺗﺎه ﺗﺮ‬
‫‪14:44 | hossein@pc01 apidocs | ls-l-a-h-t‬‬
‫‪total 220K‬‬
‫‪drwxr-xr-x 5 hossein hossein 4.0K Dec 21 12:37 .‬‬
‫‪-rw-r --r -- 1 hossein hossein 9.9K Dec 21 12:37 help-doc.html‬‬
‫‪-rw-r --r -- 1 hossein hossein 4.5K Dec 21 12:37 script.js‬‬
‫دﺳﺘﻮر ﮐﻮﺗﺎه ﺷﺪه‬
‫"‪14:44 | hossein@pc01 apidocs | alias lc="ls -l -a -h -t‬‬

‫‪$ lc‬‬
‫ﻟﻐﻮ دﺳﺘﻮر‬
‫‪unalias lc‬‬

‫ﭘﯿﻨﮓ ‪wget / curl /‬‬


‫ﭘﯿﻨﮓ ﺗﻼش ﻣﯽ ﮐﻨﺪ ﺧﻂ ارﺗﺒﺎﻃﯽ ﺑﺎ ﯾﮏ ‪host‬ﺷﺒﮑﻪ ﺑﺎز ﮐﻨﺪ‪ .‬ﺑﻪ ﻃﻮر ﻋﻤﺪه‪ ،‬ﺑﺮاي ﺑﺮرﺳﯽ اﯾﻨﮑﻪ آﯾﺎ اﺗﺼﺎل اﯾﻨﺘﺮﻧﺖ‬
‫ﺷﻤﺎ ﺑﺮﻗﺮار اﺳﺖ ﯾﺎ ﺧﯿﺮ‪.‬‬
‫‪12:30 | hossein@pc01 ~ | ping google.com‬‬
‫‪PING google.com (74.125.193.100) 56(84) bytes of data.‬‬
‫‪Pinging 74.125.193.100 with 32 bytes of data:‬‬
‫‪Reply from 74.125.193.100: bytes=32 time<1ms TTL=64‬‬
‫‪ Curl‬و ‪ wget‬ﻧﻘﺎط ﻗﻮت و ﺿﻌﻒ ﺧﻮد را دارﻧﺪ‪ Curl .‬ﭘﺸﺘﯿﺒﺎﻧﯽ از ﭘﺮوﺗﮑﻞ ﻫﺎي دﯾﮕﺮ و ﺑﯿﺸﺘﺮ از ‪ wget‬در‬
‫دﺳﺘﺮس اﺳﺖ ‪ curl .‬ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﺪ داده ﻫﺎ را ارﺳﺎل ﮐﻨﺪ‪ ،‬در ﺣﺎﻟﯽ ﮐﻪ ‪ wget‬ﻣﯽ ﺗﻮاﻧﺪ ﻓﻘﻂ داده ﻫﺎ را درﯾﺎﻓﺖ‬
‫ﮐﻨﺪ‪ wget .‬ﻣﯽ ﺗﻮاﻧﺪ ﻓﺎﯾﻞ ﻫﺎ را ﺑﻪ ﻃﻮر ﺑﺎزﮔﺸﺘﯽ ‪ download‬ﮐﻨﺪ‬
‫‪wget http://releases.ubuntu.com/18.10/ubuntu-18.10-desktop-amd64.iso‬‬

‫‪curl http://releases.ubuntu.com/18.10/ubuntu-18.10-desktop-amd64.iso‬‬

‫‪162‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪163‬‬

‫‪apt / gunzip / tar / gzip‬‬


‫ﺗﻮزﯾﻊ ‪ linux‬دﺑﯿﺎن داراي ﯾﮏ اﺑﺰار ﻣﺪﯾﺮﯾﺖ ﻓﻮق اﻟﻌﺎده ﺑﻪ ﻧﺎم ‪ apt‬اﺳﺖ ‪ .‬اﯾﻦ ﻣﯽ ﺗﻮاﻧﺪ ﻣﻮرد اﺳﺘﻔﺎده ﺑﺮاي ‪،install‬‬
‫ارﺗﻘﺎء ﯾﺎ ﺣﺬف ﻧﺮم اﻓﺰار ﺑﺮ روي دﺳﺘﮕﺎه ﺷﻤﺎ ﺑﺎﺷﺪ‪ .‬ﺑﺮاي ﺟﺴﺘﺠﻮي ‪ apt‬ﺑﺮاي ﯾﮏ ﻗﻄﻌﻪ ﺧﺎص از ﻧﺮم اﻓﺰار‪ ،‬از‬
‫ﺟﺴﺘﺠﻮي ‪ apt‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ و آن را ﺑﺎ ‪ install apt install‬ﮐﻨﯿﺪ ‪:‬‬
‫ﺑﺎزﮐﺮدن ﻓﺎﯾﻞ زﯾﭗ‬
‫‪14:18 | hossein@pc01 ~ | gunzip atom-amd64.tar.gz‬‬
‫ﺑﺎزﮐﺮدن ﯾﮏ ﻓﺎﯾﻞ ‪TAR‬‬
‫‪tar-xf atom-amd64.tar‬‬

‫ﻧﺼﺐ ﺑﺮﻧﺎﻣﻬﺎ از ﺗﺮﻣﯿﻨﺎل‬


‫‪apt-get install packagename‬‬
‫‪apt-get remove packagename‬‬
‫‪apt-get update; apt-get upgrade‬‬

‫ﺑﺮاي ﺗﻮزﯾﻊ ﻫﺎي ﭘﺎﯾﻪ ﻓﺪورت و ردﻫﺖ‬

‫‪yum install packagename‬‬


‫‪yum remove packagename‬‬
‫‪yum update‬‬

‫ﺑﺮاي ﺗﻮزﯾﻊ ﻫﺎي ﭘﺎﯾﻪ آرچ‬


‫‪pacman -S package_name‬‬
‫‪pacman -R package_name‬‬

‫‪163‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪164‬‬

‫ﭼﮕﻮﻧﮕﯽ اﺳﺘﻔﺎده از ﺟﺪﯾﺪ ﺑﺴﺘﻪ اﺑﺰار ﭘﯿﺸﺮﻓﺘﻪ )‪ (APT‬در ‪ / ubuntu‬دﺑﯿﺎن‬


‫ﯾﮑﯽ از ﻣﻬﻢ ﺗﺮﯾﻦ ﻣﻮاردي اﺳﺖ ﮐﻪ ﺗﺤﺖ ‪ / system linux‬ﺳﺮور اداره ﻣﯽ ﺷﻮد ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ ﺑﺎ اﺳﺘﻔﺎده از‬
‫اﺑﺰارﻫﺎي ﻣﺨﺘﻠﻒ ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ اﺳﺖ‪.‬‬
‫ﺗﻮزﯾﻊ ﻫﺎي ﻣﺨﺘﻠﻒ ‪ linux‬ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﮐﺎرﺑﺮدي را در ﯾﮏ ﺑﺴﺘﻪ ﭘﯿﺶ ﺳﺎﺧﺘﻪ ﺷﺪه ﮐﻪ ﻓﺎﯾﻞ ﻫﺎي ﺑﺎﯾﻨﺮي‪ ،‬ﻓﺎﯾﻞ ﻫﺎي‬
‫ﭘﯿﮑﺮﺑﻨﺪي و ﻫﻤﭽﻨﯿﻦ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ واﺑﺴﺘﮕﯽ ﻫﺎي ﺑﺮﻧﺎﻣﻪ را ﺷﺎﻣﻞ ﻣﯽ ﺷﻮﻧﺪ‪ install ،‬ﻣﯽ ﮐﻨﺪ‪.‬‬
‫اﺑﺰار ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ ﺑﻪ ﻣﺪﯾﺮان ‪ / system‬ﺳﺮور ﺑﻪ ﻃﺮق ﻣﺨﺘﻠﻒ از ﺟﻤﻠﻪ‪:‬‬
‫‪ download‬و ‪ install‬ﻧﺮم اﻓﺰار‬ ‫‪.1‬‬
‫ﻧﺮم اﻓﺰار را از ﻣﻨﺒﻊ ﺗﻬﯿﻪ ﮐﻨﯿﺪ‬ ‫‪.2‬‬
‫ﻧﮕﻪ داﺷﺘﻦ ﭘﯿﮕﯿﺮي ﺗﻤﺎم ﻧﺮم اﻓﺰار ‪ install‬ﺷﺪه‪ ،‬ﺑﻪ روز رﺳﺎﻧﯽ و ارﺗﻘﺎء آن‬ ‫‪.3‬‬
‫واﺑﺴﺘﮕﯽ ﺑﻪ اداره‬ ‫‪.4‬‬
‫و ﻫﻤﭽﻨﯿﻦ ﻧﮕﻪ داﺷﺘﻦ اﻃﻼﻋﺎت دﯾﮕﺮ در ﻣﻮرد ﻧﺮم اﻓﺰار ‪ install‬ﺷﺪه و ﺑﺴﯿﺎري دﯾﮕﺮ‬ ‫‪.5‬‬
‫در اﯾﻦ راﻫﻨﻤﺎ‪ ،‬ﻣﺎ ‪15‬ﻧﻤﻮﻧﻪ از ﻧﺤﻮه اﺳﺘﻔﺎده از ‪APT‬ﺟﺪﯾﺪ )‪ (Package Tool Advanced‬را در ‪ system‬ﻫﺎي‬
‫‪ ubuntu linux‬ﺧﻮاﻫﯿﻢ داﺷﺖ‪.‬‬
‫‪APT‬ﯾﮏ اﺑﺰار ﻣﺒﺘﻨﯽ ﺑﺮ ﺧﻂ ﻓﺮﻣﺎن اﺳﺖ ﮐﻪ ﺑﺮاي ﻣﻘﺎﺑﻠﻪ ﺑﺎ ﺑﺴﺘﻪ ﻫﺎ در ‪ system‬ﻫﺎي ‪ linux‬ﻣﺒﺘﻨﯽ ﺑﺮ ‪ubuntu‬‬
‫اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﯾﮏ راﺑﻂ ﺧﻂ ﻓﺮﻣﺎن ﺑﺮاي ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ در ‪ system‬ﺷﻤﺎ اراﺋﻪ ﻣﯽ دﻫﺪ‪.‬‬
‫‪ 1. install‬ﯾﮏ ﺑﺴﺘﻪ‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﯾﮏ ﺑﺴﺘﻪ را ﺑﻪ ﺻﻮرت زﯾﺮ ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‪ ،‬ﺑﺎ ﻧﺎم ﯾﮏ ﺑﺴﺘﻪ واﺣﺪ را ﻣﺸﺨﺺ ﮐﻨﯿﺪ ﯾﺎ ﺑﺴﺘﻪ ﻫﺎي زﯾﺎدي را‬
‫ﺑﺎ ﯾﮏ ﻟﯿﺴﺖ ﺑﺎ ﻧﺎم ﺗﻤﺎم اﺳﺎﻣﯽ آﻧﻬﺎ ‪ install‬ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt install glances‬‬

‫‪164‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪165‬‬

‫ﯾﮏ ﺑﺴﺘﻪ را ‪ install‬ﮐﻨﯿﺪ‬


‫ﻣﺤﻞ ﺳﮑﻮي ﺑﺴﺘﻪ ‪ install‬ﺷﺪه را ﭘﯿﺪا ﮐﻨﯿﺪ‬
‫ﻓﺮﻣﺎن زﯾﺮ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﺧﻮاﻫﺪ ﮐﺮد ﮐﻪ ﻟﯿﺴﺘﯽ از ﺗﻤﺎم ﻓﺎﯾﻞ ﻫﺎﯾﯽ ﮐﻪ در ﺑﺴﺘﻪ اي ﺑﻪ ﻧﺎم ‪glances‬وﺟﻮد دارد‬
‫)ﭘﯿﺸﺮوي اﺑﺰار ﻣﺎﻧﯿﺘﻮرﯾﻨﮓ )‪linux‬ﺑﺎﺷﺪ‪.‬‬
‫ﻧﮕﺎﻫﯽ ﺑﻪ ﻣﺤﺘﻮاي ﻣﺤﺘﻮاي‪sudo apt‬‬

‫ﭘﯿﺪا ﮐﺮدن ﻓﺎﯾﻞ ﻫﺎي ﻧﺼﺐ ﺷﺪه‬


‫ﻫﻤﻪ واﺑﺴﺘﮕﯽ ﻫﺎي ﯾﮏ ﺑﺴﺘﻪ را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‬
‫اﯾﻦ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ اﻃﻼﻋﺎت ﺧﺎم درﺑﺎره واﺑﺴﺘﮕﯽ ﻫﺎي ﺧﺎص ﺑﺴﺘﻪ اي ﮐﻪ ﻣﺸﺨﺺ ﻣﯽ ﮐﻨﯿﺪ ﻧﻤﺎﯾﺶ داده‬
‫ﺷﻮد‪.‬‬
‫‪$ sudo apt‬‬

‫‪165‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪166‬‬

‫ﺟﺴﺘﺠﻮ ﺑﺮاي ﺑﺴﺘﻪ‬


‫ﮔﺰﯾﻨﻪ ﺟﺴﺘﺠﻮ ﺑﺮاي ﻧﺎم ﺑﺴﺘﻪ داده ﺷﺪه ﺟﺴﺘﺠﻮ ﻣﯽ ﮐﻨﺪ و ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎي ﻣﺘﻨﺎﺳﺐ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬
‫‪$ sudo apt search apache2‬‬

‫ﺟﺴﺘﺠﻮ ﺑﺮاي ﺑﺴﺘﻪ‬


‫ﻣﺸﺎﻫﺪه اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺑﺴﺘﻪ‬
‫اﯾﻦ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﮐﻪ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﺑﺴﺘﻪ ﯾﺎ ﺑﺴﺘﻪ ﻫﺎ را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ ،‬دﺳﺘﻮر زﯾﺮ را ﺑﺎ ﻣﺸﺨﺺ ﮐﺮدن‬
‫ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎﯾﯽ ﮐﻪ ﻣﯽ ﺧﻮاﻫﯿﺪ اﻃﻼﻋﺎت را ﻧﻤﺎﯾﺶ دﻫﯿﺪ‪ ،‬اﺟﺮا ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt show firefox‬‬

‫‪166‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪167‬‬

‫ﺗﺄﯾﯿﺪ ﺑﺴﺘﻪ ﺑﺮاي ﻫﺮ واﺑﺴﺘﮕﯽ ﺷﮑﺴﺘﻪ‬


‫ﮔﺎﻫﯽ اوﻗﺎت در ﻃﻮل ‪ install‬ﺑﺴﺘﻪ‪ ،‬ﺷﻤﺎ ﻣﻤﮑﻦ اﺳﺖ اﺷﺘﺒﺎﻫﺎت ﻣﺮﺑﻮط ﺑﻪ واﺑﺴﺘﮕﯽ ﺑﺴﺘﻪ ﻫﺎي ﺑﺴﺘﻪ را ﺑﺪﺳﺖ‬
‫آورﯾﺪ‪ ،‬ﺗﺎ ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻪ اﯾﻦ ﻣﺸﮑﻼت را اﺟﺮا ﻧﮑﺮدﯾﺪ‪ ،‬دﺳﺘﻮر زﯾﺮ را ﺑﺎ ﻧﺎم ﭘﮑﯿﺞ وارد ﮐﻨﯿﺪ‪.‬‬

‫ﺑﺴﺘﻪ ﺑﻨﺪي را ﺑﺮاي واﺑﺴﺘﮕﯽ ﻫﺎي ﺷﮑﺴﺖ ﺑﮑﺸﯿﺪ‬


‫ﻟﯿﺴﺖ ﺑﺴﺘﻪ ﻫﺎي اراﺋﻪ ﺷﺪه از دﺳﺖ رﻓﺘﻪ ﺗﻮﺻﯿﻪ ﺷﺪه را اراﺋﻪ ﻣﯽ دﻫﺪ‬
‫‪$ sudo apt recommends apache2‬‬

‫ﻣﺸﺎﻫﺪه ﺑﺴﺘﻪ ﻫﺎي ﺗﻮﺻﯿﻪ ﻧﺸﺪه ﮔﻤﺸﺪه‬

‫‪167‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪168‬‬

‫ﮔﺰﯾﻨﻪ 'ﻧﺴﺨﻪ'ﺑﻪ ﺷﻤﺎ ﻧﺴﺨﻪ ‪ install‬ﺷﺪه ﺑﺴﺘﻪ را ﻧﺸﺎن ﻣﯽ دﻫﺪ‪.‬‬


‫‪$ sudo apt version firefox‬‬

‫ﻧﺴﺨﻪ ﺑﺴﺘﻪ ‪ install‬ﺷﺪه را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‬

‫ﺑﻪ روز رﺳﺎﻧﯽ ﺑﺴﺘﻪ ﻫﺎي ‪system‬‬


‫اﯾﻦ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ ﻟﯿﺴﺘﯽ از ﺑﺴﺘﻪ ﻫﺎي ﻣﺨﺎزن ﻣﺨﺘﻠﻒ ﻣﻮﺟﻮد در ‪ system‬ﺧﻮد را ﺑﺎرﮔﯿﺮي ﮐﻨﯿﺪ و آﻧﻬﺎ‬
‫را ﺑﻪ روز رﺳﺎﻧﯽ ﮐﻨﯿﺪ‪ ،‬زﻣﺎﻧﯽ ﮐﻪ ﻧﺴﺨﻪ ﻫﺎي ﺟﺪﯾﺪ ﺑﺴﺘﻪ ﻫﺎ و واﺑﺴﺘﮕﯽ ﻫﺎي آﻧﻬﺎ وﺟﻮد دارد‪.‬‬
‫‪$ sudo apt update‬‬

‫‪system‬ﺑﻪ روز رﺳﺎﻧﯽ ﺑﺴﺘﻪ ﻫﺎي‬

‫‪168‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪169‬‬

‫ارﺗﻘﺎ ‪system‬‬
‫اﯾﻦ ﺑﻪ ﺷﻤﺎ ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ ﻧﺴﺨﻪ ﻫﺎي ﺟﺪﯾﺪي از ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد در ‪ system‬ﺧﻮد را ‪ install‬ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt update‬‬

‫ارﺗﻘﺎ ‪system‬‬
‫ﺣﺬف ﺑﺴﺘﻪ ﻫﺎي اﺳﺘﻔﺎده ﻧﺸﺪه‬
‫ﻫﻨﮕﺎم ‪ install‬ﯾﮏ ﺑﺴﺘﻪ ﺟﺪﯾﺪ در ‪ system‬ﺧﻮد‪ ،‬واﺑﺴﺘﮕﯽ ﻫﺎ ﻧﯿﺰ ‪ install‬ﺷﺪه اﻧﺪ و از ﺑﺮﺧﯽ از ﮐﺘﺎب‪home‬‬
‫ﻫﺎي ‪ system‬ﺑﺎ ﺑﺴﺘﻪ ﻫﺎي دﯾﮕﺮ اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﻨﺪ‪.‬ﭘﺲ از ﺣﺬف اﯾﻦ ﺑﺴﺘﻪ ﺧﺎص‪ ،‬واﺑﺴﺘﮕﯽ ﻫﺎ در ‪ system‬ﺑﺎﻗﯽ‬
‫ﺧﻮاﻫﻨﺪ ﻣﺎﻧﺪ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮاي ﺣﺬف آﻧﻬﺎ از ‪ autoremove‬ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪$ sudo apt autoremove‬‬

‫ﺑﺴﺘﻪ ﻫﺎي ﻧﺎﺧﻮاﺳﺘﻪ را ﺣﺬف ﮐﻨﯿﺪ‬


‫‪12.‬ﭘﺎك ﮐﺮدن ﻣﺨﺰن ﻗﺪﯾﻤﯽ ﺑﺴﺘﻪ ﻫﺎي ‪ download‬ﺷﺪه‬
‫ﮔﺰﯾﻨﻪ '‪ 'clean‬ﯾﺎ '‪ 'autoclean‬ﺗﻤﺎم ﻣﺨﺰن ﻣﺤﻠﯽ ﻗﺪﯾﻤﯽ ﻓﺎﯾﻞ ﻫﺎي ﺑﺴﺘﻪ ‪ download‬را ﺣﺬف ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ sudo autoclean‬‬
‫ﯾﺎ‬
‫‪$ sudo apt clean‬‬

‫‪169‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪170‬‬

‫ﺣﺬف ﺑﺴﺘﻪ ﻫﺎ ﺑﺎ ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي آن‬


‫ﻫﻨﮕﺎم اﺟﺮاي ﻣﻨﺎﺳﺐ ﺑﺎ ﺣﺬف ‪ ،‬ﻓﺎﯾﻠﻬﺎي ﺑﺴﺘﻪ را ﺣﺬف ﻣﯽ ﮐﻨﺪ‪ ،‬اﻣﺎ ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ﺑﺮ روي ‪ system‬ﺑﺎﻗﯽ ﻣﯽ‬
‫ﻣﺎﻧﻨﺪ‪.‬ﺑﻨﺎﺑﺮاﯾﻦ ﺑﺮاي ﺣﺬف ﯾﮏ ﺑﺴﺘﻪ و ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي آن ﺑﺎﯾﺪ از ﭘﺎك ﮐﺮدن اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬

‫ﺣﺬف ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي ﺑﺴﺘﻪ‬


‫ﻧﺼﺐ ﺑﺴﺘﻪ‪.deb‬‬
‫ﺑﺮاي ‪ install‬ﯾﮏ ﻓﺎﯾﻞ ‪ ،.deb‬دﺳﺘﻮر زﯾﺮ را ﺑﺎ ﻧﺎم ﻓﺎﯾﻞ ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺗﻮﺿﯿﺢ ﺑﻪ ﺻﻮرت زﯾﺮ اﺟﺮا ﮐﻨﯿﺪ‪:‬‬
‫‪$ sudo apt deb atom-amd64.deb‬‬

‫‪ install‬ﺑﺴﺘﻪ ‪Deb‬‬

‫‪170‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪171‬‬

‫ﭘﯿﺪا ﮐﺮدن راﻫﻨﻤﺎ در ﻫﻨﮕﺎم اﺳﺘﻔﺎده از‪APT‬‬


‫ﻓﺮﻣﺎن زﯾﺮ ﺗﻤﺎم ﮔﺰﯾﻨﻪ ﻫﺎي ﺷﻤﺎ را ﺑﺎ ﺷﺮح آن در ﻣﻮرد ﻧﺤﻮه اﺳﺘﻔﺎده از ‪APT‬در ‪ system‬ﺷﻤﺎ ﻟﯿﺴﺖ ﻣﯽ ﮐﻨﺪ‪.‬‬

‫دﺳﺘﻮرات ‪ APT-GET‬و ‪APT-CACHE‬‬


‫ﭼﮕﻮﻧﻪ ﺳﺮﯾﻊ ﻣﯽ ﺗﻮاﻧﯿﺪ ‪ ، install‬ﺣﺬف ‪ ،‬ﺑﻪ روز رﺳﺎﻧﯽ و ﺟﺴﺘﺠﻮ ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮرات‬
‫‪apt-get‬و ‪apt-cache‬از ﺧﻂ ﻓﺮﻣﺎن ﯾﺎد ﺑﮕﯿﺮﯾﺪ‪.‬اﯾﻦ ﮐﺘﺎب ﺑﺮﺧﯽ از دﺳﺘﻮرات ﻣﻔﯿﺪ را اراﺋﻪ ﻣﯽ دﻫﺪ ﮐﻪ ﺑﻪ ﺷﻤﺎ در‬
‫اداره ﮐﺮدن ﻣﺪﯾﺮﯾﺖ ﺑﺴﺘﻪ در ‪ system‬ﻫﺎي ﻣﺒﺘﻨﯽ ﺑﺮ دﺑﯿﺎن ‪ ubuntu /‬ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪apt-get‬ﭼﯿﺴﺖ؟‬
‫اﺑﺰار ‪apt-get‬ﯾﮏ ﺑﺮﻧﺎﻣﻪ ﻓﺮﻣﺎن ﺧﻂ ﻓﺮﻣﺎن ﻗﺪرﺗﻤﻨﺪ و ‪ free‬اﺳﺖ ﮐﻪ ﺑﺮاي ﮐﺎر ﺑﺎ ﮐﺘﺎب‪APT Ubuntu ( home‬‬
‫) ‪Advanced Packaging Tool‬ﺑﺮاي ‪ install‬ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري ﺟﺪﯾﺪ‪ ،‬ﺣﺬف ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري‬
‫ﻣﻮﺟﻮد‪ ،‬ارﺗﻘﺎء ﺑﺴﺘﻪ ﻫﺎ ي ﻧﺮم اﻓﺰاري ﻣﻮﺟﻮد و ﺣﺘﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ .‬ﺑﺮاي ارﺗﻘﺎي ﮐﻞ ‪ system‬ﻋﺎﻣﻞ اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد‪.‬‬
‫‪apt-cache‬ﭼﯿﺴﺖ؟‬
‫اﺑﺰار ﺧﻂ ﻓﺮﻣﺎن ‪apt-cache‬ﺑﺮاي ﺟﺴﺘﺠﻮي ﺑﺴﺘﻪ ﺑﻨﺪي ﺑﺴﺘﻪ ﻧﺮم اﻓﺰاري ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪.‬ﺑﻪ ﻋﺒﺎرت‬
‫ﺳﺎده‪ ،‬اﯾﻦ اﺑﺰار ﺑﺮاي ﺟﺴﺘﺠﻮ ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪ ،‬اﻃﻼﻋﺎت ﺑﺴﺘﻪ ﻫﺎ را ﺟﻤﻊ آوري ﻣﯽ‬
‫ﮐﻨﺪ و ﻫﻤﭽﻨﯿﻦ ﺑﺮاي ﺟﺴﺘﺠﻮ ﺑﺮاي ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد ﺑﺮاي ‪ install‬در ‪ system‬ﻫﺎي ﻣﺒﺘﻨﯽ ﺑﺮ دﺑﯿﺎن ﯾﺎ ‪ubuntu‬‬
‫ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﯽ ﮔﯿﺮد‪.‬‬

‫‪171‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪172‬‬

‫‪1.‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد را ﻟﯿﺴﺖ ﮐﻨﻢ؟‬


‫ﺑﺮاي ﻟﯿﺴﺖ ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد‪ ،‬دﺳﺘﻮر زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪.‬‬
‫‪$ apt-cache pkgnames‬‬
‫‪esseract-ocr-epo‬‬
‫‪pipenightdreams‬‬
‫‪mumudvb‬‬
‫‪libsvm-java‬‬
‫‪libmrpt-hmtslam0.9‬‬
‫‪libboost-timer1.50-dev‬‬
‫‪kcm-touchpad‬‬
‫‪g ++ - 4.5-multilib‬‬
‫ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ ﻧﺎم ﺑﺴﺘﻪ و ﺷﺮح ﻧﺮم اﻓﺰار را ﭘﯿﺪا ﮐﻨﻢ؟‬
‫ﺑﺮاي ‪ find‬ﻧﺎم ﺑﺴﺘﻪ و ﺑﺎ ﺗﻮﺿﯿﺤﺎت ﻗﺒﻞ از ‪ ،install‬از ﭘﺮﭼﻢ ﺟﺴﺘﺠﻮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬ﺑﺎ اﺳﺘﻔﺎده از « ﺟﺴﺘﺠﻮ »ﺑﺎ‬
‫‪apt-cache‬ﻟﯿﺴﺘﯽ از ﺑﺴﺘﻪ ﻫﺎي ﻫﻤﺎﻫﻨﮓ ﺑﺎ ﺗﻮﺿﯿﺤﺎت ﮐﻮﺗﺎه ﻧﻤﺎﯾﺶ داده ﻣﯽ ﺷﻮد‪.‬ﺑﮕﺬارﯾﺪ ﺑﮕﻮﯾﯿﻢ ﺷﻤﺎ دوﺳﺖ‬
‫دارﯾﺪ ﺗﻮﺿﯿﺤﺎت ﺑﺴﺘﻪ ‪vsftpd‬را ﺑﯿﺎﺑﯿﺪ‪ ،‬ﺳﭙﺲ دﺳﺘﻮر ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ apt-cache search vsftpd‬‬
‫‪ vsftpd -‬ﺳﺮور ‪ FTP‬ﮐﺎرآﻣﺪ و ﮐﺎرآﻣﺪ ﺑﺮاي اﻣﻨﯿﺖ ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ‬
‫‪ ccze -‬ﻗﻮي‪ ،‬ﻣﺪوﻻر ورود ﺑﻪ ‪ system‬رﻧﮓ ﺳﻨﺞ‬
‫‪ ftpd -‬ﭘﺮوﺗﮑﻞ اﻧﺘﻘﺎل ﭘﺮوﻧﺪه )‪ (FTP‬ﺳﺮور‬
‫ﯾﺎﺳﺎت ‪ -‬اﺑﺰار ﺣﺴﺎﺑﺮﺳﯽ اﺣﻤﻘﺎﻧﻪ ﺳﺎده‬
‫ﺑﺮاي ‪ find‬و ﻓﻬﺮﺳﺖ ﮐﺮدن ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎﯾﯽ ﮐﻪ از ‪vsftpd‬ﺷﺮوع ﻣﯽ ﺷﻮﻧﺪ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﺪ از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ apt-cache pkgnames vsftpd‬‬
‫‪vsttpd‬‬
‫‪5.‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ آﻣﺎر ‪ Cache‬را ﺑﺮرﺳﯽ ﮐﻨﻢ‬
‫ﻓﺮﻣﺎن "ﻓﺮﻣﺎن "آﻣﺎر ﮐﻠﯽ آﻣﺎر ﻣﺮﺑﻮط ﺑﻪ ‪ cache memory‬را ﻧﻤﺎﯾﺶ ﻣﯽ دﻫﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﻧﻤﺎﯾﺶ‬
‫داده ﺧﻮاﻫﺪ ﺷﺪ ‪ Packets‬ﻣﺠﻤﻮع ﺗﻌﺪاد ﺑﺴﺘﻪ ﻫﺎي ﻣﻮﺟﻮد در ﮐﺶ اﺳﺖ‪.‬‬
‫‪$ apt-cache stats‬‬
‫ﭼﮕﻮﻧﮕﯽ ﺑﻪ روز رﺳﺎﻧﯽ ﺑﺴﺘﻪ ﻫﺎي ‪system‬‬
‫ﻓﺮﻣﺎن ' ‪ ' update‬ﺑﺮاي ‪ resynchronize‬ﻓﺎﯾﻠﻬﺎي ﻓﻬﺮﺳﺖ ﺑﺴﺘﻪ از ﻣﻨﺎﺑﻊ ﺧﻮد ﮐﻪ در ﻓﺎﯾﻞ‬
‫‪/etc/apt/sources.list‬ﻣﺸﺨﺺ ﺷﺪه اﺳﺖ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻓﺮﻣﺎن ﺑﻬﺮوزرﺳﺎﻧﯽ ﺑﺴﺘﻬﻬﺎ را از ﻣﮑﺎﻧﻬﺎي ﺧﻮد درﯾﺎﻓﺖ‬
‫ﮐﺮد و ﺑﺴﺘﻬﻬﺎ را ﺑﻪ ﻧﺴﺨﻪ ﺟﺪﯾﺪﺗﺮ ارﺗﻘﺎ داد‪.‬‬
‫‪$ sudo apt-get update‬‬

‫‪172‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪173‬‬

‫ﭼﮕﻮﻧﻪ ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري را ارﺗﻘﺎ دﻫﯿﺪ‬


‫ﻓﺮﻣﺎن ' ‪ ' upgrade‬ﺑﺮاي ارﺗﻘﺎء ﺗﻤﺎم ﺑﺴﺘﻪ ﻫﺎي ‪ install‬ﺷﺪه در ﺣﺎل ﺣﺎﺿﺮ ‪ install‬ﺷﺪه در ‪ system‬اﺳﺘﻔﺎده‬
‫ﻣﯽ ﺷﻮد‪.‬ﺗﺤﺖ ﻫﯿﭻ ﺷﺮاﯾﻄﯽ ﺑﺴﺘﻪ ﻫﺎي ‪ install‬ﺷﺪه در ﺣﺎل ﺣﺎﺿﺮ ﺣﺬف ﻧﻤﯽ ﺷﻮﻧﺪ ﯾﺎ ﺑﺴﺘﻪ ﻫﺎﯾﯽ ﮐﻪ در ﺣﺎل‬
‫ﺣﺎﺿﺮ ‪ install‬ﻧﺸﺪه اﻧﺪ و ﯾﺎ ﺑﺎزﯾﺎﺑﯽ ﻧﺸﺪه اﻧﺪ و ‪ install‬ﺷﺪه اﻧﺪ ﺑﺮاي ﺑﺮآورده ﺷﺪن واﺑﺴﺘﮕﯽ ﻫﺎي ارﺗﻘﺎ‪.‬‬
‫ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬اﮔﺮ ﻣﯽ ﺧﻮاﻫﯿﺪ ارﺗﻘﺎ دﻫﯿﺪ‪ ،‬از اﯾﻨﮑﻪ آﯾﺎ ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري ﺑﺮاي ﺗﮑﻤﯿﻞ واﺑﺴﺘﮕﯽ ﻫﺎ اﺿﺎﻓﻪ ﻣﯽ ﺷﻮﻧﺪ‬
‫ﯾﺎ ﺣﺬف ﻣﯽ ﺷﻮﻧﺪ‪ ،‬از "دﺳﺘﻮر ‪" dist-upgrade‬اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt-get dist-upgrade‬‬

‫ﭼﮕﻮﻧﻪ ﺑﺴﺘﻪ ﻫﺎي ﺧﺎﺻﯽ را ‪ install‬ﯾﺎ ارﺗﻘﺎ دﻫﻢ؟‬


‫ﻓﺮﻣﺎن "‪ " install‬زﯾﺮ ﯾﮏ ﯾﺎ ﭼﻨﺪ ﺑﺴﺘﻪ ﺑﺮاي ‪ install‬و ﯾﺎ ارﺗﻘﺎء ردﯾﺎﺑﯽ ﻣﯽ ﺷﻮد‪.‬‬
‫‪ $ sudo apt-get netcat‬را ‪ install‬ﮐﻨﯿﺪ‬

‫‪.‬ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ ﺑﺴﺘﻪ ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ را ‪ install‬ﮐﻨﻢ؟‬


‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺑﯿﺶ از ﯾﮏ ﻧﺎم ﺑﺴﺘﻪ را ﻫﻤﺮاه ﺑﺎ دﺳﺘﻮر اﺿﺎﻓﻪ ﮐﻨﯿﺪ ﺗﺎ ﭼﻨﺪﯾﻦ ﺑﺴﺘﻪ را در ﯾﮏ زﻣﺎن ‪ install‬ﮐﻨﯿﺪ‪.‬ﺑﻪ‬
‫ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﺑﺴﺘﻪ ﻫﺎي " ‪ " nethogs‬و " ‪ " goaccess‬را ‪ install‬ﺧﻮاﻫﺪ ﮐﺮد‪.‬‬
‫‪$ sudo apt-get install nethogs goaccess‬‬

‫ﻧﺤﻮه ‪ install‬ﭼﻨﺪﯾﻦ ﺑﺴﺘﻪ ﺑﺎ اﺳﺘﻔﺎده از‪Wildcard‬‬


‫ﺑﺎ اﺳﺘﻔﺎده از ﻋﺒﺎرت ﻣﻨﻈﻢ ﻣﯽ ﺗﻮاﻧﯿﺪ ﭼﻨﺪﯾﻦ ﺑﺴﺘﻪ ﺑﺎ ﯾﮏ رﺷﺘﻪ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬ﻣﺎ ﺑﺮاي اﺳﺘﻔﺎده از ﭼﻨﺪﯾﻦ‬
‫ﺑﺴﺘﻪ ي ﮐﻪ ﺷﺎﻣﻞ رﺷﺘﻪ " * ‪ " * name‬ﻫﺴﺘﻨﺪ‪ ،‬ﻣﺎ از* ‪ wildcard‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‪ ،‬ﻧﺎم "‪"package-name‬‬
‫اﺳﺖ‪.‬‬
‫'* ‪$ sudo apt-get install '* name‬‬
‫ﻧﺤﻮه ‪ install‬ﺑﺴﺘﻪ ﻫﺎ ﺑﺪون ارﺗﻘﺎء‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن زﯾﺮ ' ‪ ' -no-upgrade‬ﺑﺴﺘﻪ ﻫﺎي از ﻗﺒﻞ ‪ install‬ﺷﺪه از ارﺗﻘﺎء ﺟﻠﻮﮔﯿﺮي ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ sudo apt-get install packageName‬‬ ‫‪--no-upgrade‬‬

‫ﭼﮕﻮﻧﻪ ﻓﻘﻂ ﺑﺴﺘﻪ ﻫﺎي ﺧﺎص را ارﺗﻘﺎ دﻫﯿﺪ‬


‫ﻓﺮﻣﺎن " ﻓﻘﻂ ﺑﻪ روز رﺳﺎﻧﯽ "ﺑﺴﺘﻪ ﻫﺎي ﺟﺪﯾﺪي را ‪ install‬ﻧﻤﯽ ﮐﻨﺪ‪ ،‬اﻣﺎ ﻓﻘﻂ ﺑﺴﺘﻪ ﻫﺎي ‪ install‬ﺷﺪه را ارﺗﻘﺎ ﻣﯽ‬
‫دﻫﺪ و ﺑﺴﺘﻪ ﻫﺎي ﺟﺪﯾﺪ را ﻏﯿﺮ ﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ sudo apt-get install packageName -only-upgrade‬‬

‫‪173‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪174‬‬

‫ﭼﮕﻮﻧﻪ ﻧﺴﺨﻪ ﺧﺎص ﺑﺴﺘﻪ را ‪ install‬ﮐﻨﻢ؟‬


‫ﺑﮕﺬارﯾﺪ ﺑﮕﻮﯾﯿﻢ ﺷﻤﺎ ﻣﺎﯾﻠﯿﺪ ﻓﻘﻂ ﻧﺴﺨﻪ ﺧﺎﺻﯽ از ﺑﺴﺘﻪ ﻫﺎ را ‪ install‬ﮐﻨﯿﺪ‪ ،‬ﺑﻪ ﺳﺎدﮔﯽ ﺑﺎ اﺳﺘﻔﺎده از ' = ' ﺑﺎ ﻧﺎم ﭘﮑﯿﺞ‬
‫و اﺿﺎﻓﻪ ﮐﺮدن ﻧﺴﺨﻪ دﻟﺨﻮاه‪.‬‬
‫‪$ sudo apt-get install vsftpd = 2.3.5-3ubuntu1‬‬

‫ﭼﮕﻮﻧﻪ ﺑﺴﺘﻪ ﻫﺎ را ﮐﺎﻣﻼ ﺣﺬف ﮐﻨﻢ‬


‫ﺑﺮاي ﺣﺬف ﺑﺴﺘﻪ ﻫﺎي ﻧﺮم اﻓﺰاري از ﺟﻤﻠﻪ ﻓﺎﯾﻞ ﻫﺎي ﭘﯿﮑﺮﺑﻨﺪي آن‪ ،‬از دﺳﺘﻮر زﯾﺮ ﭘﺎك ﮐﺮدن زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt-get purge vsftpd‬‬

‫ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ ﻓﻀﺎي دﯾﺴﮏ را ﭘﺎك ﮐﻨﻢ‬


‫ﻓﺮﻣﺎن " ‪ " clean‬ﺑﺮاي آزاد ﺳﺎزي ﻓﻀﺎي دﯾﺴﮏ ﺑﺎ ﺗﻤﯿﺰ ﮐﺮدن ﺑﺎزﯾﺎﺑﯽ )‪download) .deb‬ﻓﺎﯾﻞ ﻫﺎ )ﺑﺴﺘﻪ ﻫﺎ( از‬
‫ﻣﺨﺰن ﻣﺤﻠﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ sudo apt-get clean‬‬

‫ﭼﮕﻮﻧﻪ ﻓﻘﻂ ﮐﺪ ﻣﻨﺒﻊ ﺑﺴﺘﻪ را ‪ download‬ﮐﻨﻢ‬


‫ﺑﺮاي ‪ download‬ﻓﻘﻂ ﮐﺪ ﻣﻨﺒﻊ ﺑﺴﺘﻪ ﺧﺎص‪ ،‬از ﮔﺰﯾﻨﻪ ' ‪ ' -download-only source‬ﺑﺎ ﻧﺎم‪'package-‬‬
‫'‪name‬ﺑﻪ ﻋﻨﻮان ﻧﺸﺎن داده ﺷﺪه اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt-get -download-only source vsftpd‬‬

‫ﭼﮕﻮﻧﻪ ﻣﯽ ﺗﻮاﻧﻢ ﯾﮏ ﺑﺴﺘﻪ را ‪ download‬و ﺑﺎزﭘﺮداﺧﺖ ﮐﻨﻢ‬


‫ﺑﺮاي ‪ download‬و ﺑﺎز ﮐﺮدن ﮐﺪ ﻣﻨﺒﻊ ﯾﮏ ﺑﺴﺘﻪ ﺑﻪ ﯾﮏ داﯾﺮﮐﺘﻮري ﺧﺎص‪ ،‬دﺳﺘﻮر زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt-get source vsftpd‬‬

‫ﭼﮕﻮﻧﻪ ﯾﮏ ﺑﺴﺘﻪ ﺑﺪون ‪ install‬را ‪ download‬ﮐﻨﻢ‬


‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ"‪ ، " download‬ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻫﺮ ﺑﺴﺘﻪ داده ﺷﺪه ﺑﺪون ‪ install‬آن را ‪download‬‬
‫ﮐﻨﯿﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﺗﻨﻬﺎ ﺑﺴﺘﻪ ‪nethogs‬را ﺑﻪ داﯾﺮﮐﺘﻮري ﮐﺎري ﻓﻌﻠﯽ ‪ download‬ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪$ sudo apt-get nethogs download‬‬

‫‪174‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪175‬‬

‫ﻓﺮﻣﺎن‪ATQ‬‬
‫دﺳﺘﻮر ‪atq‬ﺑﺮاي ﻣﺸﺎﻫﺪه ﻣﺸﺎﻏﻞ در ﺻﻒ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪$ atq‬‬
‫ﻓﺮﻣﺎن ‪atrm‬‬
‫دﺳﺘﻮر ‪atrm‬ﺑﺮاي ﺣﺬف ‪ /‬ﺣﺬف ﺷﻐﻞ )ﺷﻨﺎﺳﺎﯾﯽ ﺷﺪه ﺗﻮﺳﻂ ﺷﻤﺎره ﺷﻐﻞ ﺧﻮد( از در ﺻﻒ ﻓﺮﻣﺎن اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪:‬‬
‫‪$ atrm 2‬‬

‫دﺳﺘﻪ اي ﻧﯿﺰ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ رﯾﺰي وﻇﺎﯾﻒ ﺑﺮاي اﺟﺮاي ﯾﮏ زﻣﺎن آﯾﻨﺪه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬ﺷﺒﯿﻪ ﺑﻪ ﻓﺮﻣﺎن‪.‬‬

‫دﺳﺘﻮر ﻓﺮﻣﺎن‪basename‬‬
‫ﻓﺮﻣﺎن ‪basename‬ﮐﻤﮏ ﻣﯽ ﮐﻨﺪ ﺗﺎ ﻧﺎم ﻓﺎﯾﻞ ﺳﻨﺪ ﺳﺎزي داﯾﺮﮐﺘﻮري ﻫﺎ را در ﻣﺴﯿﺮ ﻣﻄﻠﻖ ﭼﺎپ ﮐﻨﯿﺪ‪:‬‬
‫‪$ basename bin / findhosts.sh‬‬
‫در اﯾﻦ آﻣﻮزش‪ ،‬ﻣﺎ در ﻣﻮرد ﻧﺤﻮه ﻓﺸﺮده ﺳﺎزي و ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎي ‪.bz2‬ﺑﺎ اﺳﺘﻔﺎده از اﺑﺰار ‪ bzip2‬در ‪linux‬‬
‫ﺧﻮاﻫﯿﻢ دﯾﺪ‪.‬‬
‫‪Bzip2‬ﯾﮏ اﺑﺰار ﻓﺸﺮده ﺳﺎزي ﺷﻨﺎﺧﺘﻪ ﺷﺪه اﺳﺖ و در ﺑﯿﺸﺘﺮ ﯾﺎ ﻧﻪ ﻫﻤﻪ ﺗﻮزﯾﻊ ﻫﺎي ‪ linux‬ﻣﻬﻢ اﺳﺖ‪ ،‬ﻣﯿﺘﻮاﻧﯿﺪ از‬
‫دﺳﺘﻮر ﻣﻨﺎﺳﺐ ﺑﺮاي ﺗﻮزﯾﻊ ﺧﻮد ﺑﺮاي ‪ install‬آن اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪$ sudo apt install bzip2‬‬
‫‪$ sudo yum install bzip2‬‬
‫‪$ sudo dnf install bzip2‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده ﻣﻌﻤﻮﻟﯽ ‪bzip2 :‬‬
‫ﻧﺤﻮه اﺳﺘﻔﺎده از ‪ bzip2‬ﺑﺮاي ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ در ‪linux‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻓﺎﯾﻞ زﯾﺮ را ﻓﺸﺮده ﮐﻨﯿﺪ‪ ،‬ﺟﺎﯾﯽ ﮐﻪ ﭘﺮﭼﻢ ‪-z‬ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ را ﻓﻌﺎل ﻣﯽ ﮐﻨﺪ‪:‬‬
‫‪$ bzip2 filename‬‬
‫ﯾﺎ‬
‫‪$ bzip2 -z myfoldername‬‬
‫ﺑﺮاي ﻓﺸﺮده ﺳﺎزي ﯾﮏ ﻓﺎﯾﻞ ‪.tar‬ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن ﻓﺮﻣﺎن‪:‬‬
‫‪$ bzip2-z backup.tar‬‬
‫ﻣﻬﻢ ‪:‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪bzip2 ،‬ﻓﺎﯾﻠﻬﺎي ورودي را در ﻫﻨﮕﺎم ﻓﺸﺮده ﺳﺎزي ﯾﺎ ﻓﺸﺮده ﺳﺎزي ﺣﺬف ﻣﯽ ﮐﻨﺪ‪ ،‬ﺑﺮاي‬
‫‪keep--‬ﮐﻨﯿﺪ‪.‬‬ ‫ﺣﻔﻆ ﻓﺎﯾﻞ ﻫﺎي ورودي‪ ،‬از ﮔﺰﯾﻨﻪ ‪-k‬ﯾﺎ‬
‫‪force force bzip2 --‬را ﻣﺠﺒﻮر ﺑﻪ ﺑﺎزﻧﻮﯾﺴﯽ ﯾﮏ ﻓﺎﯾﻞ ﺧﺮوﺟﯽ ﻣﻮﺟﻮد ﻣﯽ ﮐﻨﺪ‪.‬‬ ‫ﻋﻼوه ﺑﺮ اﯾﻦ‪ ،‬ﭘﺮﭼﻢ ‪-f‬ﯾﺎ‬
‫ﺑﺮاي ﻧﮕﻪ داﺷﺘﻦ ﻓﺎﯾﻞ ورودي ‪-- -- --‬‬ ‫‪-- -- --‬‬

‫‪175‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪176‬‬

‫‪$ bzip2-zk myfile‬‬


‫‪$ bzip2-zk backup.tar‬‬
‫‪fast to -9 --fast--‬ﻫﻤﺎﻧﻄﻮر‬ ‫‪ ،fast--‬ﺑﺎ اﺳﺘﻔﺎده از ‪-1‬ﯾﺎ‬ ‫ﺷﻤﺎ ﻫﻤﭽﻨﯿﻦ ﻣﯽ ﺗﻮاﻧﯿﺪ اﻧﺪازه ﺑﻠﻮك را ﺗﺎ ‪100k‬ﺗﺎ‬
‫ﮐﻪ در ﻣﺜﺎل ﻫﺎي زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ‪:‬‬
‫‪$‬‬ ‫‪bzip2-k1 Etcher-linux-x64.AppImage‬‬
‫‪$‬‬ ‫‪ls -lh Etcher-linux-x64.AppImage.bz2‬‬
‫‪$‬‬ ‫‪bzip2 -k9 Etcher-linux-x64.AppImage‬‬
‫‪$‬‬ ‫‪bzip2-kf9 Etcher-linux-x64.AppImage‬‬
‫‪$‬‬ ‫‪ls -lh Etcher-linux-x64.AppImage.bz2‬‬
‫ﺗﺼﻮﯾﺮ زﯾﺮ ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﭼﮕﻮﻧﻪ از ﮔﺰﯾﻨﻪ ﻫﺎﯾﯽ ﺑﺮاي ﻧﮕﻪ داﺷﺘﻦ ﻓﺎﯾﻞ ورودي اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪force bzip2 ،‬‬
‫را ﺑﺮاي ﺑﺎز ﮐﺮدن ﯾﮏ ﻓﺎﯾﻞ ﺧﺮوﺟﯽ و ﺗﻨﻈﯿﻢ اﻧﺪازه ﺑﻠﻮك در ﻫﻨﮕﺎم ﻓﺸﺮده ﺳﺎزي‪.‬‬

‫ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ ﺑﺎ اﺳﺘﻔﺎده از ‪ bzip2‬در ‪linux‬‬


‫ﻧﺤﻮه اﺳﺘﻔﺎده از ‪ bzip2‬ﺑﻪ ﻓﺸﺮده ﺳﺎزي ﻓﺎﯾﻞ ﻫﺎ در ‪linux‬‬
‫‪decompress--‬ﻣﺎﻧﻨﺪ زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪:‬‬ ‫‪decompress--‬ﮔﺰﯾﻨﻪ ‪-d‬ﯾﺎ‬ ‫ﺑﺮاي ﻓﺸﺮده ﮐﺮدن ﯾﮏ ﻓﺎﯾﻞ‬
‫‪$ bzip2 -d filename.bz2‬‬
‫ﺗﻮﺟﻪ ‪:‬ﻓﺎﯾﻞ ﺑﺎﯾﺪ ﺑﺎ ﻓﺮﻣﺖ ‪.bz2‬ﺑﺮاي دﺳﺘﻮر ﺑﺎﻻ ﮐﺎر ﮐﻨﺪ‪.‬‬
‫‪$ bzip2 -vd Etcher-linux-x64.AppImage.bz2‬‬
‫‪$ bzip2 -vfd Etcher-linux-x64.AppImage.bz2‬‬
‫‪$ ls -l Etcher-linux-x64.AppImage‬‬

‫‪176‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪177‬‬

‫ﺑﺮاي ﻣﺸﺎﻫﺪه ﺻﻔﺤﻪ راﻫﻨﻤﺎي راﻫﻨﻤﺎ ‪bzip2‬و ﺻﻔﺤﻪ‪ ، man‬دﺳﺘﻮر زﯾﺮ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪$ bzip2 -h‬‬
‫‪$ man bzip2‬‬
‫در ﻧﻬﺎﯾﺖ‪ ،‬ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﯿﺤﺎت ﺳﺎده ﺑﺎﻻ‪ ،‬ﻣﻦ ﻣﻌﺘﻘﺪم ﮐﻪ ﺷﻤﺎ در ﺣﺎل ﺣﺎﺿﺮ ﻗﺎدر ﺑﻪ ﻓﺸﺮده ﺳﺎزي و ﻓﺸﺮده ﺳﺎزي‬
‫ﻓﺎﯾﻞ ﻫﺎي ‪.bz2‬ﺑﺎ اﺳﺘﻔﺎده از اﺑﺰار ‪bzip2‬در ‪ linux‬ﻫﺴﺘﯿﺪ‪.‬ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬ﺑﺮاي ﻫﺮ ﮔﻮﻧﻪ ﺳﻮال و ﯾﺎ ﺑﺎزﺧﻮرد‪ ،‬ﺑﺎ اﺳﺘﻔﺎده‬
‫از ﺑﺨﺶ ﻧﻈﺮات زﯾﺮ‪ ،‬ﺑﻪ ﻣﺎ ﺑﭙﯿﻮﻧﺪﯾﺪ‪.‬‬

‫دﺳﺘﻮر ‪cal‬دﺳﺘﻮرات ﺧﺮوﺟﯽ اﺳﺘﺎﻧﺪارد را ﺑﻪ ﯾﮏ ﺗﻘﻮﯾﻢ ﻣﯽ ﻧﻮﯾﺴﺪ‪.‬‬


‫‪$ cal‬‬

‫ﻣﺪﯾﺮﯾﺖ ﮐﺎرﺑﺮ و ﮔﺮوه‬


‫ﮐﺎرﺑﺮان ﻧﺸﺎن ﻣﯽ دﻫﺪ ﮐﻪ ﺗﻤﺎم ﮐﺎرﺑﺮان در ﺣﺎل ﺣﺎﺿﺮ وارد ‪ system‬ﺷﺪه اﻧﺪ‪ .‬ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﮐﺎرﺑﺮ ﻣﯽ ﺗﻮاﻧﺪ‬
‫ﭼﻨﺪﯾﻦ ﺑﺎر وارد ‪ system‬ﺷﻮﯾﺪ‪،‬‬
‫ﺑﺮاي دﯾﺪن ﻫﻤﻪ ﮐﺎرﺑﺮان )ﺣﺘﯽ ﮐﺴﺎﻧﯽ ﮐﻪ وارد ﻧﺸﺪه اﯾﺪ(‪ etc / passwd / ،‬را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ ‪ ) .‬ﻫﺸﺪار ‪ :‬اﯾﻦ ﻓﺎﯾﻞ را‬
‫اﺻﻼح ﻧﮑﻨﯿﺪ! ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﺣﺴﺎب ﻫﺎي ﮐﺎرﺑﺮي ﺧﻮد را ﺧﺮاب ﮐﺮده و ورود ﺑﻪ ‪ system‬ﺧﻮد را ﻏﯿﺮ ﻣﻤﮑﻦ ﮐﻨﯿﺪ‪(.‬‬
‫‪17:40 | hossein@pc01 ~ | users‬‬
‫‪hossein colin colin colin colin colin krishna krishna‬‬
‫اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﮐﺎرﺑﺮ‬
‫‪17:52 | hossein@pc01 ~ | sudo useradd aardvark && au_apt‬‬

‫ﺣﺬف ﯾﮏ ﮐﺎرﺑﺮ‬
‫‪17:53 | hossein@pc01 ~ | sudo userdel aardvark && au_apt‬‬

‫ﻓﺮﻣﺎن‪adduser / addgroup‬‬
‫ﻫﻤﻪ ﻣﺎ در ﻣﻮرد ﻣﺤﺒﻮب ﺗﺮﯾﻦ ﻓﺮﻣﺎن ﺑﻪ ﻧﺎم ' ‪ ' useradd‬ﯾﺎ ' ‪ ' adduser‬در ‪ linux‬آﮔﺎﻫﯿﻢ ‪.‬زﻣﺎﻧﯿﮑﻪ ﯾﮏ ﻣﺪﯾﺮ‬
‫‪ linux system‬ﺧﻮاﺳﺘﻪ اﯾﺠﺎد ﺣﺴﺎب ﮐﺎرﺑﺮي در ‪ linux‬ﺑﺎ ﺑﺮﺧﯽ از وﯾﮋﮔﯽ ﻫﺎي ﺧﺎص‪ ،‬ﻣﺤﺪودﯾﺖ ﻫﺎ و ﯾﺎ ﻧﻈﺮات‬
‫اﺳﺖ ‪.‬‬
‫در ‪ linux‬ﯾﮏ دﺳﺘﻮر ‪useradd‬ﯾﮏ اﺑﺰار ﺳﻄﺢ ﭘﺎﯾﯿﻦ اﺳﺖ ﮐﻪ ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ‪ /‬اﯾﺠﺎد ﺣﺴﺎب ﻫﺎي ﮐﺎرﺑﺮي در‬
‫‪ linux‬و ﺳﺎﯾﺮ ‪ system‬ﻋﺎﻣﻞ ﻫﺎي ﻣﺸﺎﺑﻪ ﯾﻮﻧﯿﮑﺲ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪. adduser‬ﺑﺴﯿﺎر ﺷﺒﯿﻪ ﺑﻪ دﺳﺘﻮر ‪useradd‬‬
‫اﺳﺖ ‪ ،‬زﯾﺮا ﻓﻘﻂ ﯾﮏ ﻟﯿﻨﮏ ﻧﻤﺎدﯾﻦ ﺑﻪ آن اﺳﺖ‬

‫‪177‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪178‬‬

‫ر ﺑﻌﻀﯽ ﺗﻮزﯾﻊ ﻫﺎي ‪ linux‬دﯾﮕﺮ‪ ،‬دﺳﺘﻮر ‪useradd‬ﻣﻤﮑﻦ اﺳﺖ ﺑﺎ ﻧﺴﺨﻪ ﻫﺎي ﻣﺨﺘﻠﻒ ﺗﻔﺎوت داﺷﺘﻪ ﺑﺎﺷﺪ ‪.‬ﭘﯿﺶ از‬
‫اﺳﺘﻔﺎده از دﺳﺘﻮراﻟﻌﻤﻞ ﻫﺎي ﺷﻤﺎ ﺑﺮاي اﯾﺠﺎد ﺣﺴﺎب ﻫﺎي ﮐﺎرﺑﺮي ﺟﺪﯾﺪ در ‪ ، linux‬ﺷﻤﺎ ﻗﺒﻞ از اﺳﺘﻔﺎده از اﺳﻨﺎد‬
‫ﺧﻮد ﺑﻪ ﺧﻮاﻧﺪن ﭘﯿﺸﻨﻬﺎد ﻣﯽ ﮐﻨﯿﺪ ‪.‬‬
‫ﻫﻨﮕﺎم اﺟﺮاي ﻓﺮﻣﺎن " ‪ " useradd‬در ﺗﺮﻣﯿﻨﺎل ‪ ،linux‬ﻣﻮارد زﯾﺮ را اﻧﺠﺎم ﻣﯽ دﻫﺪ ‪:‬‬
‫اﯾﻦ وﯾﺮاﯾﺶ‪/ etc / group ،/ etc / shadow ، / etc / passwd‬و ‪ / etc / gshadow‬ﻓﺎﯾﻞ‬ ‫‪.1‬‬
‫ﺑﺮاي ﺣﺴﺎب ﮐﺎرﺑﺮي ﺗﺎزه اﯾﺠﺎد ﺷﺪه اﺳﺖ ‪.‬‬
‫اﯾﺠﺎد ﯾﮏ ﭘﻮﺷﻪ ‪ home‬ﺑﺮاي ﮐﺎرﺑﺮ ﺟﺪﯾﺪ اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ ‪.‬‬ ‫‪.2‬‬
‫ﻣﺠﻮز ﻫﺎ و ﻣﺎﻟﮑﯿﺖ ﻫﺎ را ﺑﻪ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﺪ ‪.‬‬ ‫‪.3‬‬
‫‪ useradd [ .4‬ﮔﺰﯾﻨﻪ ﻫﺎ[ ﻧﺎم ﮐﺎرﺑﺮي‬
‫ﻓﺮﻣﺎن ‪adduser‬و ‪addgroup‬ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﮐﺎرﺑﺮ و ﮔﺮوه ﺑﻪ ‪ system‬ﺑﻪ ﺗﺮﺗﯿﺐ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﭘﯿﮑﺮﺑﻨﺪي‬
‫ﭘﯿﺶ ﻓﺮض در ﻓﺎﯾﻞ ‪/etc/adduser.conf‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫‪$ sudo adduser hosein‬‬
‫ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم ‪ ، hosein‬از دﺳﺘﻮر زﯾﺮ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd hosein‬‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻣﺎ ﯾﮏ ﮐﺎرﺑﺮ ﺟﺪﯾﺪ را در ‪ linux‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر ‪useradd‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ‪ ،‬آن را در ﺣﺎﻟﺖ ﻗﻔﻞ‬
‫ﺷﺪه اﯾﺠﺎد ﻣﯽ ﮐﻨﯿﻢ و ﺑﺮاي ﺑﺎز ﮐﺮدن ﻗﻔﻞ آن ﺣﺴﺎب ﮐﺎرﺑﺮي‪ ،‬ﺑﺎﯾﺪ ﯾﮏ رﻣﺰ ﻋﺒﻮر ﺑﺮاي آن ﺣﺴﺎب ﺑﺎ ﻓﺮﻣﺎن "‬
‫" ‪passwd‬ﺗﻨﻈﯿﻢ ﮐﻨﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # passwd hosein‬‬
‫ﺗﻐﯿﯿﺮ رﻣﺰ ﻋﺒﻮر ﺑﺮاي ‪ hosein‬ﮐﺎرﺑﺮ‬
‫رﻣﺰ ﯾﻮﻧﯿﮑﺲ ﺟﺪﯾﺪ‪:‬‬
‫دوﺑﺎره رﻣﺰ ﺟﺪﯾﺪ ﯾﻮﻧﯿﮑﺲ را ﺗﺎﯾﭗ ﮐﻨﯿﺪ‪:‬‬
‫‪ passwd:‬ﺗﻤﺎم ﺷﻨﺎﺳﻪ ﻫﺎي ﺗﺄﯾﯿﺪ اﻋﺘﺒﺎر ﺑﻪ ﻃﻮر ﻣﻮﻓﻘﯿﺖ آﻣﯿﺰ ﺑﻪ روز ﺷﺪ‪.‬‬
‫ﭘﺲ از اﯾﺠﺎد ﯾﮏ ﮐﺎرﺑﺮ ﺟﺪﯾﺪ‪ ،‬اﯾﻦ ورودي ﺑﻪ ﻃﻮر ﺧﻮدﮐﺎر ﺑﻪ ﻓﺎﯾﻞ ‪ / etc / passwd‬اﺿﺎﻓﻪ ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﭘﺮوﻧﺪه‬
‫ﺑﺮاي ذﺧﯿﺮه اﻃﻼﻋﺎت ﮐﺎرﺑﺮان اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد و ﺑﺎﯾﺪ وارد ﺷﻮد‬
‫‪hosein : x: 504: 504: hosein : / home / hosein : / bin / bash‬‬
‫ورودي ﺑﺎﻻ ﺷﺎﻣﻞ ﻣﺠﻤﻮﻋﻪ اي از ﻫﻔﺖ ردﯾﻒ ﺟﺪا ﺷﺪه از روده اﺳﺖ‪ ،‬ﻫﺮ ﻓﯿﻠﺪ داراي ﻣﻌﻨﺎي ﺧﺎﺻﯽ اﺳﺖ‪.‬ﺑﯿﺎﯾﯿﺪ‬
‫ﺑﺒﯿﻨﯿﻢ ﮐﻪ اﯾﻦ ﻓﯿﻠﺪﻫﺎ ﭼﻪ ﻫﺴﺘﻨﺪ‪:‬‬
‫ﻧﺎم ﮐﺎرﺑﺮي ‪:‬ورود ﺑﻪ ‪ system‬ﮐﺎرﺑﺮ ﺑﺮاي ورود ﺑﻪ ‪ system‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬اﯾﻦ ﺑﺎﯾﺪ ﺑﯿﻦ ‪ 1‬ﺗﺎ ‪ 32‬ﭼﻬﺮه ﻃﻮﻻﻧﯽ ﺑﺎﺷﺪ‪.‬‬ ‫‪.1‬‬
‫رﻣﺰ ﻋﺒﻮر ‪:‬رﻣﺰ ﻋﺒﻮر ﮐﺎرﺑﺮ )ﯾﺎ ﺷﺨﺼﯿﺖ )‪ x‬ذﺧﯿﺮه ﺷﺪه در ﻓﺎﯾﻞ ‪ / etc / shadow‬در ﻗﺎﻟﺐ رﻣﺰﮔﺬاري ﺷﺪه‪.‬‬ ‫‪.2‬‬

‫‪178‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪179‬‬

‫ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ ‪ (UID) :‬ﻫﺮ ﮐﺎرﺑﺮ ﺑﺎﯾﺪ ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ ﺷﻨﺎﺳﻪ )‪ (UID‬را داﺷﺘﻪ ﺑﺎﺷﺪ‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ‪ UID 0‬ﺑﺮاي ﮐﺎرﺑﺮ‬ ‫‪.3‬‬
‫‪ root‬ﻣﺤﻔﻮظ اﺳﺖ و ﻣﺤﺪوده ‪ UID 1-99‬ﺑﺮاي ﺳﺎﯾﺮ ﺣﺴﺎﺑﻬﺎي از ﭘﯿﺶ ﺗﻌﺮﯾﻒ ﺷﺪه رزرو ﺷﺪه اﺳﺖ ‪.UID‬ﻫﺎي ﺑﯿﺸﺘﺮ از ‪999-100‬‬
‫ﺑﺮاي ﺣﺴﺎب ﻫﺎي ‪ system‬و ﮔﺮوه ﻫﺎ اﺳﺖ‪.‬‬
‫ﺷﻨﺎﺳﻪ ﮔﺮوه ‪ (GID) :‬ﺷﻤﺎره ﺷﻨﺎﺳﺎﯾﯽ ﮔﺮوه ﮔﺮوه اﺻﻠﯽ )‪ (GID‬ذﺧﯿﺮه ﺷﺪه در ﻓﺎﯾﻞ ‪ / etc / group‬ذﺧﯿﺮه ﻣﯽ ﺷﻮد‪.‬‬ ‫‪.4‬‬
‫اﻃﻼﻋﺎت ﮐﺎرﺑﺮ ‪:‬اﯾﻦ ﻓﯿﻠﺪ اﺧﺘﯿﺎري اﺳﺖ و ﺑﻪ ﺷﻤﺎ اﻣﮑﺎن ﺗﻌﺮﯾﻒ اﻃﻼﻋﺎت اﺿﺎﻓﯽ در ﻣﻮرد ﮐﺎرﺑﺮ را ﻣﯿﺪﻫﺪ‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬ﻧﺎم ﮐﺎﻣﻞ‬ ‫‪.5‬‬
‫ﮐﺎرﺑﺮ‪.‬اﯾﻦ ﻓﯿﻠﺪ ﺑﺎ ﻓﺮﻣﺎن "اﻧﮕﺸﺖ" ﭘﺮ ﺷﺪه اﺳﺖ‪.‬‬
‫ﻓﻬﺮﺳﺖ اﺻﻠﯽ ‪:‬ﻣﺤﻞ ﻣﻄﻠﻮب داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ‪.‬‬ ‫‪.6‬‬
‫ﺷﻞ ‪:‬ﻣﻮﻗﻌﯿﺖ ﻣﻄﻠﻖ ﭘﻮﺳﺘﻪ ﮐﺎرﺑﺮ ﯾﻌﻨﯽ‪/ bin / bash.‬‬ ‫‪.7‬‬
‫ﯾﮏ ﮐﺎرﺑﺮ ﺑﺎ داﯾﺮﮐﺘﻮري ﻣﺨﺘﻠﻒ اﯾﺠﺎد ﮐﻨﯿﺪ‬
‫ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض دﺳﺘﻮر ‪useradd‬ﯾﮏ ﭘﻮﺷﻪ ‪ home‬ﮐﺎرﺑﺮ را در زﯾﺮ ﭘﻮﺷﻪ ‪/ home directory‬ﺑﺎ ﻧﺎم ﮐﺎرﺑﺮي‬
‫اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬ﺑﻨﺎﺑﺮاﯾﻦ‪ ،‬ﺑﺮاي ﻣﺜﺎل‪ ،‬ﻣﺎ در ﺑﺎﻻ ي ﺻﻔﺤﻪ اﺻﻠﯽ ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض ﺑﺮاي ‪user ' hosein ' ' /‬‬
‫' ‪home / hosein‬دﯾﺪه اﯾﻢ‪.‬‬
‫ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬اﯾﻦ ﻋﻤﻞ را ﻣﯽ ﺗﻮان ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ " ‪ " -d‬ﻫﻤﺮاه ﺑﺎ ﻣﺤﻞ داﯾﺮﮐﺘﻮري ﺟﺪﯾﺪ )ﯾﻌﻨﯽ ‪/‬داده ﻫﺎ ‪/‬‬
‫ﭘﺮوژه ﻫﺎ )ﺗﻐﯿﯿﺮ دﻫﯿﺪ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﯾﮏ‪ user anusha‬را ﺑﺎ ﯾﮏ ﭘﻮﺷﻪ ‪home / data / projects‬‬
‫اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd -d / data / projects anusha‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ داﯾﺮﮐﺘﻮري ﮐﺎرﺑﺮ و ﺳﺎﯾﺮ اﻃﻼﻋﺎت ﻣﺮﺑﻮط ﺑﻪ ﮐﺎرﺑﺮ ﻣﺎﻧﻨﺪ ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ‪ ،‬ﺷﻨﺎﺳﻪ ﮔﺮوه‪ ،‬ﭘﻮﺳﺘﻪ و ﻧﻈﺮات را‬
‫ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # cat / etc / passwd | grep anušha‬‬

‫‪anusha : x: 505: 505 :: / data / projects : / bin / bash‬‬


‫اﯾﺠﺎد ﯾﮏ ﮐﺎرﺑﺮ ﺑﺎ ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ ﺧﺎص‬
‫در ‪ ،linux‬ﻫﺮ ﮐﺎرﺑﺮ داراي ‪UID‬ﺧﻮد ( ﺷﻤﺎره ﺷﻨﺎﺳﺎﯾﯽ ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد )اﺳﺖ‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺸﻔﺮض‪ ،‬ﻫﺮ زﻣﺎن ﮐﻪ ﯾﮏ‬
‫ﺣﺴﺎب ﮐﺎرﺑﺮي ﺟﺪﯾﺪ در ‪ linux‬اﯾﺠﺎد ﮐﻨﯿﻢ‪502 ،501 ،userid 500 ،‬و ‪ ...‬را اﺧﺘﺼﺎص ﻣﯽ دﻫﺪ‪...‬‬
‫اﻣﺎ ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﮐﺎرﺑﺮ ﺑﺎ ﮐﺎرﺑﺮ ‪ custom‬را ﺑﺎ ﮔﺰﯾﻨﻪ ' ‪ ' -u‬اﯾﺠﺎد ﮐﻨﯿﻢ‪.‬ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻓﺮﻣﺎن زﯾﺮ ﯾﮏ ' ‪user‬‬
‫' ‪navin‬را ﺑﺎ ‪ userid custom 999‬اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd -u 999 navin‬‬
‫ﺣﺎﻻ اﺟﺎزه دﻫﯿﺪ ﮐﻪ ﮐﺎرﺑﺮ ﺑﺎ اﺳﺘﻔﺎده از ‪ UserID‬ﺗﻌﺮﯾﻒ ﺷﺪه ) ‪ ( 999‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر زﯾﺮ ﺗﺄﯾﯿﺪ ﺷﻮد‪.‬‬
‫‪[ root@ hosein ~] # cat / etc / passwd | grep hosein‬‬

‫‪navin: x: 999 : 999 :: / home / hosein : / bin / bash‬‬

‫‪179‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪180‬‬

‫ﻧﮑﺘﻪ ‪:‬ﻣﻄﻤﺌﻦ ﺷﻮﯾﺪ ﮐﻪ ارزش ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ ﺑﺎﯾﺪ از ﻫﺮ ﮐﺎرﺑﺮ دﯾﮕﺮي ﮐﻪ در ﺣﺎل ﺣﺎﺿﺮ در ‪ system‬اﯾﺠﺎد ﺷﺪه اﺳﺖ‪،‬‬
‫ﻣﻨﺤﺼﺮ ﺑﻪ ﻓﺮد ﺑﺎﺷﺪ‪.‬‬
‫اﯾﺠﺎد ﯾﮏ ﮐﺎرﺑﺮ ﺑﺎ ﺷﻨﺎﺳﻪ ﮔﺮوه ﺧﺎص‬
‫ﺑﻪ ﻃﻮر ﻣﺸﺎﺑﻪ‪ ،‬ﻫﺮ ﮐﺎرﺑﺮ داراي ‪GID‬ﺧﻮدش ( ﺷﻨﺎﺳﻪ ﮔﺮوه )اﺳﺖ‪.‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﮐﺎرﺑﺮان را ﺑﺎ ﺷﻨﺎﺳﻪ ﮔﺮوه ﺧﺎص و‬
‫ﻫﻤﭽﻨﯿﻦ ﺑﺎ ﮔﺰﯾﻨﻪ ‪-g‬اﯾﺠﺎد ﮐﻨﯿﻢ‪.‬‬
‫در اﯾﻨﺠﺎ در اﯾﻦ ﻣﺜﺎل‪ ،‬ﯾﮏ ' ‪ user ' tarunika‬را ﺑﺎ ﯾﮏ ‪UID‬و ‪GID‬ﺧﺎص ﺑﻪ ﻃﻮر ﻫﻤﺰﻣﺎن ﺑﺎ ﮐﻤﮏ ﮔﺰﯾﻨﻪ ﻫﺎي '‬
‫' ‪-u‬و ' ‪ ' -g‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # useradd -u 1000 -g 500 tarunika‬‬
‫ﺣﺎﻻ‪ ،‬ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮ اﺧﺘﺼﺎص داده ﺷﺪه و ﺷﻨﺎﺳﻪ ﮔﺮوه در ﻓﺎﯾﻞ‪ / etc / passwd‬را ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # cat / etc / passwd | grep tarunika‬‬

‫‪tarunika : x: 1000 : 500 :: / home / tarunika: / bin / bash‬‬


‫ﯾﮏ ﮐﺎرﺑﺮ را ﺑﻪ ﭼﻨﺪ ﮔﺮوه اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫ﮔﺰﯾﻨﻪ ' ‪ ' -G‬ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﮐﺎرﺑﺮ ﺑﻪ ﮔﺮوه ﻫﺎي اﺿﺎﻓﯽ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻫﺮ ﻧﺎم ﮔﺮوه ﺑﺎ ﮐﺎﻣﺎ‪ ،‬ﺑﺪون ﻓﻀﺎﻫﺎي‬
‫ﻣﺪاﺧﻠﻪ‪ ،‬ﺟﺪا ﻣﯽ ﺷﻮد‪.‬‬
‫در اﯾﻨﺠﺎ در اﯾﻦ ﻣﺜﺎل‪ ،‬ﻣﺎ ﯾﮏ ﮐﺎرﺑﺮ ' ‪ ' hosein‬را ﺑﻪ ﮔﺮوه ﻫﺎي ﭼﻨﺪﮔﺎﻧﻪ ﻣﺎﻧﻨﺪ ‪webadmin ،admins‬و‬
‫‪developer‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # useradd -G admins ،webadmin ،developers hosein‬‬

‫ﺑﻌﺪ‪ ،‬اﻃﻤﯿﻨﺎن ﺣﺎﺻﻞ ﮐﻨﯿﺪ ﮐﻪ ﭼﻨﺪﯾﻦ ﮔﺮوه ﺑﻪ ﮐﺎرﺑﺮ ﺑﺎ دﺳﺘﻮر ‪ id‬داده ﺷﺪه اﺳﺖ‪.‬‬
‫‪[ root@ hosein ~] # id hosein‬‬

‫) ‪uid = 1001 ( hosein ) gid = 1001 ( hosein‬‬


‫)ﺗﻮﺳﻌﻪ دﻫﻨﺪﮔﺎن ( ‪)501 ، ( webadmin )502 ،‬ﻣﺪﯾﺮان ( ‪ ( hosein )500 ،‬ﮔﺮوه ﻫﺎ = ‪1001‬‬
‫‪context = root: system_r: unconfined_t: SystemLow-System High‬‬
‫ﯾﮏ ﮐﺎرﺑﺮ ﺑﺪون ﺻﻔﺤﻪ اﺻﻠﯽ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫در ﺑﺮﺧﯽ ﻣﻮارد‪ ،‬ﺟﺎﯾﯽ ﮐﻪ ﻣﺎ ﻧﻤﯽ ﺧﻮاﻫﯿﻢ ﯾﮏ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﺑﺮاي ﯾﮏ ﮐﺎرﺑﺮ اﺧﺘﺼﺎص دﻫﯿﻢ‪ ،‬ﺑﻪ دﻻﯾﻞ‬
‫اﻣﻨﯿﺘﯽ‪.‬در ﭼﻨﯿﻦ وﺿﻌﯿﺘﯽ‪ ،‬زﻣﺎﻧﯽ ﮐﻪ ﯾﮏ ﮐﺎرﺑﺮ وارد ‪ system‬ﻣﯽ ﺷﻮد ﮐﻪ ﺗﺎزه راه اﻧﺪازي ﺷﺪه اﺳﺖ‪ ،‬داﯾﺮﮐﺘﻮري‬
‫اﺻﻠﯽ آن ‪ root‬ﺧﻮاﻫﺪ ﺑﻮد‪.‬وﻗﺘﯽ ﮐﺎرﺑﺮ ﭼﻨﯿﻦ دﺳﺘﻮرات ‪ su‬رااﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ‪ ،‬داﯾﺮﮐﺘﻮري ورود آن داﯾﺮﮐﺘﻮري‬
‫ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ ﻗﺒﻠﯽ ﺧﻮاﻫﺪ ﺑﻮد‪.‬‬
‫ﺑﺮاي اﯾﺠﺎد ﮐﺎرﺑﺮ ﺑﺪون داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﺧﻮد‪" -M " ،‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬دﺳﺘﻮر زﯾﺮ ﯾﮏ ﮐﺎرﺑﺮ "‬
‫" ‪shilpi‬را ﺑﺪون ﯾﮏ ﭘﻮﺷﻪ ﺧﺎﻧﮕﯽ اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ‪.‬‬

‫‪180‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪181‬‬

‫‪[ root@ hosein ~] # useradd -M shilpi‬‬


‫اﮐﻨﻮن‪ ،‬اﺟﺎزه دﻫﯿﺪ ﮐﻪ ﮐﺎرﺑﺮ ﺑﺪون داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ اﯾﺠﺎد ﺷﻮد‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‪ls.‬‬
‫‪[ root@ hosein ~] # ls -l / home / shilpi‬‬

‫‪ ls: can not access / home / shilpi :‬اﯾﻦ ﻓﺎﯾﻞ ﯾﺎ داﯾﺮﮐﺘﻮري وﺟﻮد ﻧﺪارد‬
‫اﯾﺠﺎد ﯾﮏ ﮐﺎرﺑﺮ ﺑﺎ ﺗﺎرﯾﺦ اﻧﻘﻀﺎي ﺣﺴﺎب‬
‫ﺑﻪ ﻃﻮر ﭘﯿﺸﻔﺮض ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﮐﺎرﺑﺮ را ﺑﺎ دﺳﺘﻮر ‪useradd‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﯿﻢ‪ ،‬ﺣﺴﺎب ﮐﺎرﺑﺮي ﻫﺮﮔﺰ ﺑﻪ ﭘﺎﯾﺎن ﻧﻤﯽ رﺳﺪ‪،‬‬
‫ﯾﻌﻨﯽ ﺗﺎرﯾﺦ اﻧﻘﻀﺎي آن ﺑﻪ ( ‪0‬ﯾﻌﻨﯽ ﻫﺮﮔﺰ ﻣﻨﻘﻀﯽ ﻧﺸﺪه اﺳﺖ‪).‬‬
‫ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﺗﺎرﯾﺦ اﻧﻘﻀﺎ را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ' ‪ ' -e‬ﺗﻨﻈﯿﻢ ﮐﻨﯿﻢ ﮐﻪ ﺗﺎرﯾﺦ را در ﻗﺎﻟﺐ‪YYYY-‬‬
‫‪MM-DD‬ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﺪ‪.‬اﯾﻦ ﺑﺮاي اﯾﺠﺎد ﺣﺴﺎب ﻫﺎي ﻣﻮﻗﺖ ﺑﺮاي ﯾﮏ دوره زﻣﺎﻧﯽ ﺧﺎص ﻣﻔﯿﺪ اﺳﺖ‪.‬‬
‫در اﯾﻨﺠﺎ در اﯾﻦ ﻣﺜﺎل ﻣﺎ ﯾﮏ ﮐﺎرﺑﺮ ‪aparna‬ﺑﺎ ﺗﺎرﯾﺦ اﻧﻘﻀﺎ ﺣﺴﺎب ﯾﻌﻨﯽ ‪27‬آورﯾﻞ ‪ 2014‬در ﻗﺎﻟﺐ‪YYYY-MM-‬‬
‫‪DD‬اﯾﺠﺎد ﻣﯿﮑﻨﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # useradd -e 2014-03-27 ali‬‬
‫ﺑﻌﺪ‪ ،‬ﭘﺲ از ﺗﻨﻈﯿﻢ ﺗﺎرﯾﺦ اﻧﻘﻀﺎي ﺣﺴﺎب‪ ،‬ﺳﻦ ﮐﺎرﺑﺮي ﺣﺴﺎب و رﻣﺰ ﻋﺒﻮر را ﺑﺎ دﺳﺘﻮر ' ‪' chage‬ﺑﺮاي ﮐﺎرﺑﺮ ‪aparna‬‬
‫ﺗﺎﯾﯿﺪ ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # chage -l ali‬‬

‫اﺳﺘﺪﻻل ' ‪ ' -f‬ﺑﺮاي ﺗﻌﺮﯾﻒ ﺗﻌﺪاد روزﻫﺎي ﭘﺲ از ﭘﺎﯾﺎن رﻣﺰ ﻋﺒﻮر اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﻣﻘﺪار ‪0‬ﻏﯿﺮ ﻓﻌﺎل ﺣﺴﺎب ﮐﺎرﺑﺮي‬
‫در اﺳﺮع وﻗﺖ رﻣﺰ ﻋﺒﻮر ﻣﻨﻘﻀﯽ ﺷﺪه اﺳﺖ‪.‬ﺑﻪ ﻃﻮر ﭘﯿﺶ ﻓﺮض‪ ،‬ﻣﻘﺪار اﻧﻘﻀﺎي رﻣﺰ ﻋﺒﻮر ﺑﻪ ‪-1‬ﻣﻌﻨﯽ اﺳﺖ ﮐﻪ ﻫﺮﮔﺰ‬
‫ﻣﻨﻘﻀﯽ ﻣﯽ ﺷﻮد‪ .‬در اﯾﻨﺠﺎ در اﯾﻦ ﻣﺜﺎل‪ ،‬ﯾﮏ ﺗﺎرﯾﺦ اﻧﻘﻀﺎي ﺣﺴﺎب ﮐﺎرﺑﺮي را ﺑﺮاي ‪45‬روز در ' ‪ user ' hosein‬ﺑﺎ‬
‫اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﻫﺎي ' ‪ ' -e‬و ' ‪ ' -f‬ﺗﻌﯿﯿﻦ ﻣﯽ ﮐﻨﯿﻢ‪.‬‬
‫‪[ root@ hosein ~] # useradd -e 2014-04-27 -f 45 hosein‬‬
‫ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ ﻧﻈﺮات ﺳﻔﺎرﺷﯽ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫ﮔﺰﯾﻨﻪ ' ‪ ' -c‬ﺑﻪ ﺷﻤﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﺗﺎ ﻋﺒﺎرات ﺳﻔﺎرﺷﯽ ﻣﺎﻧﻨﺪ ﻧﺎم ﮐﺎرﺑﺮي‪ ،‬ﺷﻤﺎره ﺗﻠﻔﻦ و ﻏﯿﺮه را ﺑﻪ ﻓﺎﯾﻞ ‪/ etc /‬‬
‫‪passwd‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪.‬ﻧﻈﺮ را ﻣﯽ ﺗﻮان ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺧﻂ ﺑﺪون ﻫﯿﭻ ﻓﻀﺎﯾﯽ اﺿﺎﻓﻪ ﮐﺮد‪.‬‬
‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻓﺮﻣﺎن زﯾﺮ ‪mansi‬ﮐﺎرﺑﺮ را اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ و ﻧﺎم ﮐﺎﻣﻞ ﮐﺎرﺑﺮ‪ ali ،‬در ﻗﺴﻤﺖ ﻧﻈﺮ وارد ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd -c ali‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﻧﻈﺮات ﺧﻮد را در ﻓﺎﯾﻞ " ‪ " / etc / passwd‬در ﺑﺨﺶ ﻧﻈﺮات ﻣﺸﺎﻫﺪه ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # tail -1 / etc / passwd‬‬

‫‪ali : x: 1006: 1008:‬‬ ‫‪: / home / mansi: / bin / sh‬‬

‫‪181‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪182‬‬

‫ﺗﻐﯿﯿﺮ ﮐﺎرﺑﺮ ﭘﻮﺳﺘﻪ ﭘﻮﺳﺘﻪ‪:‬‬


‫ﮔﺎﻫﯽ اوﻗﺎت‪ ،‬ﻣﺎ ﮐﺎرﺑﺮان را اﺿﺎﻓﻪ ﻣﯿﮑﻨﯿﻢ ﮐﻪ ﻫﯿﭻ ارﺗﺒﺎﻃﯽ ﺑﺎ ‪ shell login‬ﻧﺪارد و ﮔﺎﻫﯽ اوﻗﺎت ﻣﺎ ﻧﯿﺎز ﺑﻪ اﺧﺘﺼﺎص‬
‫ﭘﻮﺳﺘﻬﻬﺎي ﻣﺨﺘﻠﻒ ﺑﻪ ﮐﺎرﺑﺮاﻧﻤﺎن دارﯾﻢ‪.‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ﭘﻮﺳﺘﻪ ﻫﺎي ورودي ﻣﺨﺘﻠﻒ را ﺑﻪ ﻫﺮ ﮐﺎرﺑﺮ ﺑﺎ ﮔﺰﯾﻨﻪ ' ‪' -s‬‬
‫اﺧﺘﺼﺎص دﻫﯿﻢ‪ .‬در اﯾﻨﺠﺎ در اﯾﻦ ﻣﺜﺎل‪ ،‬ﮐﺎرﺑﺮ " ‪ " hosein‬را ﺑﺪون ﭘﻮﺳﺘﻪ ‪ login‬ﯾﻌﻨﯽ ' ‪' / sbin / nologin‬‬
‫‪shell‬اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd -s / sbin / nologin hosein‬‬
‫ﺷﻤﺎ ﻣﯽ ﺗﻮاﻧﯿﺪ ﭘﻮﺳﺘﻪ ﺗﻌﯿﯿﻦ ﺷﺪه را ﺑﻪ ﮐﺎرﺑﺮ در ﻓﺎﯾﻞ‪ / etc / passwd‬ﭼﮏ ﮐﻨﯿﺪ‪.‬‬
‫‪[ root@ hosein ~] # tail -1 / etc / passwd‬‬
‫‪hosein : x: 1002: 1002 :: / home / hosein : / sbin / nologin‬‬

‫ﻗﺴﻤﺖ دوم ‪ -‬اﺳﺘﻔﺎده ﭘﯿﺸﺮو از دﺳﺘﻮرات ‪useradd‬‬


‫ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ داﯾﺮﮐﺘﻮري ﺧﺎص ﺧﺎص‪Shell ،‬ﭘﯿﺶ ﻓﺮض و ﻧﻈﺮ ﺳﻔﺎرﺷﯽ اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫دﺳﺘﻮر زﯾﺮ ﮐﺎرﺑﺮ ' ‪ ' ravi‬را ﺑﺎ ﭘﻮﺷﻪ‪default shell / bin / bash ، home / var / www / hosein‬اﯾﺠﺎد‬
‫ﻣﯽ ﮐﻨﺪ و اﻃﻼﻋﺎت اﺿﺎﻓﯽ در ﻣﻮرد ﮐﺎرﺑﺮ را اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪[ root@ hosein ~] # useradd -m -d / var / www / ravi -s / bin / bash -c " hosein‬‬
‫‪Owner" -U‬‬
‫در ﻓﺮﻣﺎن ﺑﺎﻻ ‪-m -d‬ﮔﺰﯾﻨﻪ ﯾﮏ ﮐﺎرﺑﺮ ﺑﺎ داﯾﺮﮐﺘﻮري ﻣﺸﺨﺺ را اﯾﺠﺎد ﻣﯽ ﮐﻨﺪ و ﮔﺰﯾﻨﻪ ' ‪ ' -s‬ﭘﻮﺳﺘﻪ ﭘﯿﺶ ﻓﺮض‬
‫ﮐﺎرﺑﺮ ﯾﻌﻨﯽ ‪/ bin / bash‬را ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﺪ‪.‬ﮔﺰﯾﻨﻪ ' ‪ ' -c‬اﻃﻼﻋﺎت اﺿﺎﻓﯽ ﻣﺮﺑﻮط ﺑﻪ ﮐﺎرﺑﺮ را اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ و ﺑﺤﺚ '‬
‫' ‪-U‬اﯾﺠﺎد ‪ /‬اﺿﺎﻓﻪ ﮔﺮوﻫﯽ ﺑﺎ ﻫﻤﺎن ﻧﺎم ﮐﺎرﺑﺮي ﻣﯽ ﮐﻨﺪ‪.‬‬
‫‪.‬ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ داﯾﺮﮐﺘﻮري ﺻﻔﺤﻪ اﺻﻠﯽ‪ ،‬ﺳﻔﺎرﺷﯽ ﭘﻮﺳﺘﻪ‪ ،‬ﻧﻈﺮ ﺳﻔﺎرﺷﯽ و ‪ UID / GID‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫ﻓﺮﻣﺎن ﺑﺴﯿﺎر ﺷﺒﯿﻪ ﺑﻪ ﺑﺎﻻ اﺳﺖ‪ ،‬اﻣﺎ در اﯾﻨﺠﺎ ﻣﺎ ﭘﻮﺳﺘﻪ را ﺑﻪ ﻋﻨﻮان " ‪ " / bin / zsh‬و ‪UID‬ﺳﻔﺎرﺷﯽ و ‪GID‬را ﺑﻪ‬
‫" ‪user " tarunika‬ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﯿﻢ‪.‬ﺟﺎﯾﯽ ﮐﻪ‪ " -u " UID‬ﮐﺎرﺑﺮ ﺟﺪﯾﺪ را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ )ﯾﻌﻨﯽ ) ‪1000‬و در‬
‫ﻋﻮض‪" -g " GID‬را ﺗﻌﺮﯾﻒ ﻣﯽ ﮐﻨﺪ )ﯾﻌﻨﯽ ‪1000 ).‬‬
‫‪[ root@ hosein ~] # useradd -m -d / var / www / tarunika -s / bin / zsh -c " hosein‬‬
‫‪Technical Writer" -u 1000 -g 1000 tarunika‬‬
‫ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ‪ ،‬ﺑﺪون‪ ، Shell‬ﻧﻈﺮ ﺳﻔﺎرﺷﯽ و ﺷﻨﺎﺳﻪ ﮐﺎرﺑﺮي اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫ﻓﺮﻣﺎن زﯾﺮ ﺑﺴﯿﺎر ﺷﺒﯿﻪ ﺑﻪ دو دﺳﺘﻮر ﻓﻮق اﺳﺖ‪ ،‬ﺗﻔﺎوت ﺗﻨﻬﺎ اﯾﻨﺠﺎ اﺳﺖ‪ ،‬ﻣﺎ ﭘﻮﺳﺘﻪ ورود ﺑﻪ ‪ system‬را ﺑﻪ ﮐﺎرﺑﺮ ﺑﺎ ﻧﺎم‬
‫‪avishek‬ﺑﺎ ﺷﻨﺎﺳﻪ ﺳﻔﺎرﺷﯽ )ﯾﻌﻨﯽ ) ‪1019‬ﻏﯿﺮﻓﻌﺎل ﻣﯽ ﮐﻨﯿﻢ‪ .‬در اﯾﻨﺠﺎ ﮔﺰﯾﻨﻪ ‪' s ' default shell / bin /‬‬
‫‪bash‬را اﺿﺎﻓﻪ ﻣﯽ ﮐﻨﺪ‪ ،‬اﻣﺎ در اﯾﻦ ﻣﻮرد ﻣﺎ ورود ﺑﻪ ' ‪ ' / usr / sbin / nologin‬را ﺗﻨﻈﯿﻢ ﻣﯽ ﮐﻨﯿﻢ‪.‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ‬
‫ﮐﻪ ﮐﺎرﺑﺮ ‪avishek‬ﻗﺎدر ﺑﻪ ورود ﺑﻪ ‪ system‬ﻧﺨﻮاﻫﺪ ﺑﻮد‪.‬‬

‫‪182‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪183‬‬

‫‪[ root@ hosein ~] # useradd -m -d / var / www / avishek -s / usr / sbin / nologin -‬‬
‫‪c " hosein Sr. Technical Writer" -u 1019 avishek‬‬
‫‪.‬ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ‪Custom Skell / Comment ،Shell ،‬و ‪ User ID‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ‬
‫ﺗﻨﻬﺎ ﺗﻐﯿﯿﺮ در اﯾﻦ ﻓﺮﻣﺎن‪ ،‬ﻣﺎ از ﮔﺰﯾﻨﻪ ‪-k‬ﺑﺮاي ﺗﻨﻈﯿﻢ داﯾﺮﮐﺘﻮري ﺳﻔﺎرﺷﯽ ‪skettle‬ﺑﻪ ﻧﺎم ‪/etc/custom.skell‬‬
‫اﺳﺘﻔﺎده ﮐﺮدﯾﻢ ‪ ،‬ﻧﻪ ﺑﻪ ﺻﻮرت ﭘﯿﺸﻔﺮض ‪/ etc / skel .‬ﻣﺎ ﻫﻤﭽﻨﯿﻦ از ﮔﺰﯾﻨﻪ " ‪ " -s‬ﺑﺮاي ﺗﻌﺮﯾﻒ ﺷﯽ ﭘﻮﺳﺘﻪ ‪ie /‬‬
‫‪bin / tcsh‬ﺑﻪ ﮐﺎرﺑﺮ " ‪ " navin‬اﺳﺘﻔﺎده ﮐﺮدﯾﻢ‪.‬‬
‫‪[ root@ hosein ~] # useradd -m -d / var / www / navin -k /etc/custom.skell -s /‬‬
‫‪bin / tcsh -c " hosein " -u 1027 navin‬‬

‫دﺳﺘﻮراﻟﻌﻤﻞ ‪ usermod‬ﻓﺮﻣﺎن‬
‫ﻓﺮﻣﺎن " ‪ " useradd‬ﯾﺎ " ‪ " adduser‬ﺑﺮاي اﯾﺠﺎد ﺣﺴﺎب ﮐﺎرﺑﺮي در ‪ system‬ﻫﺎي ‪ linux‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺮاي‬
‫ﮐﺴﺐ اﻃﻼﻋﺎت ﺑﯿﺸﺘﺮ در ﻣﻮرد ﻧﺤﻮه اﯾﺠﺎد ﮐﺎرﺑﺮان ‪ ،system‬راﻫﻨﻤﺎي ﮐﺎﻣﻞ ﻣﺎ را در‪:‬‬
‫راﻫﻨﻤﺎي ﮐﺎﻣﻞ ﺑﺮاي ‪ "useradd" Command‬در ‪linux‬‬ ‫‪.1‬‬
‫ﭘﺲ از اﯾﺠﺎد ﺣﺴﺎب ﻫﺎي ﮐﺎرﺑﺮي‪ ،‬در ﺑﺮﺧﯽ از ﺷﺮاﯾﻂ ﮐﻪ در آن ﻣﺎ ﻧﯿﺎز ﺑﻪ ﺗﻐﯿﯿﺮ وﯾﮋﮔﯽ ﻫﺎي ﯾﮏ ﮐﺎرﺑﺮ ﻣﻮﺟﻮد ﻣﺎﻧﻨﺪ‬
‫ﺗﻐﯿﯿﺮ داﯾﺮﮐﺘﻮري ﺧﺎﻧﮕﯽ ﮐﺎرﺑﺮ‪ ،‬ﻧﺎم ﮐﺎرﺑﺮي‪ ،‬ﭘﻮﺳﺘﻪ ورود‪ ،‬ﺗﺎرﯾﺦ اﻧﻘﻀﺎ رﻣﺰ ﻋﺒﻮر‪ ،‬و ﻏﯿﺮه‪ ،‬در ﺟﺎﯾﯽ ﮐﻪ در اﯾﻦ ﺻﻮرت‬
‫دﺳﺘﻮر '‪'usermod‬اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬‬
‫ﻫﻨﮕﺎﻣﯽ ﮐﻪ ﻣﺎ دﺳﺘﻮر '‪ 'usermod‬را در ﺗﺮﻣﯿﻨﺎل اﺟﺮا ﻣﯽ ﮐﻨﯿﻢ‪ ،‬ﻓﺎﯾﻞ ﻫﺎي زﯾﺮ ﻣﻮرد اﺳﺘﻔﺎده و ﺗﺤﺖ ﺗﺎﺛﯿﺮ ﻗﺮار ﻣﯽ‬
‫ﮔﯿﺮﻧﺪ‪.‬‬
‫‪/ etc / passwd -‬اﻃﻼﻋﺎت ﺣﺴﺎب ﮐﺎرﺑﺮي‬ ‫‪.1‬‬
‫‪/ etc / shadow -‬اﻃﻼﻋﺎت ﺣﺴﺎب اﻣﻦ‬ ‫‪.2‬‬
‫‪/ etc / group -‬اﻃﻼﻋﺎت ﺣﺴﺎب ﮔﺮوﻫﯽ‪.‬‬ ‫‪.3‬‬
‫‪/ etc / gshadow -‬اﻃﻼﻋﺎت ﺣﺴﺎب اﻣﻦ ﮔﺮوه‪.‬‬ ‫‪.4‬‬
‫‪/etc/login.defs -‬ﭘﯿﮑﺮﺑﻨﺪي ﻣﺠﻤﻮﻋﻪ اي از رﻣﺰ ﻋﺒﻮر ﺳﺎﯾﻪ‬ ‫‪.5‬‬
‫ﻧﺤﻮ ﭘﺎﯾﻪ ﻓﺮﻣﺎن‪:‬‬
‫ﮔﺰﯾﻨﻪ ﻫﺎ[ ﻧﺎم ﮐﺎرﺑﺮي[ ‪usermod‬‬
‫اﻟﺰاﻣﺎت‬
‫ﻣﺎ ﺑﺎﯾﺪ ﺣﺴﺎب ﮐﺎرﺑﺮي ﻣﻮﺟﻮد ﺑﺮاي اﺟﺮاي دﺳﺘﻮر ‪ usermod‬داﺷﺘﻪ ﺑﺎﺷﯿﻢ‪.‬‬ ‫‪.1‬‬
‫ﻓﻘﻂ ﮐﺎرﺑﺮ ﻓﻮق )‪ (root‬اﺟﺎزه اﺟﺮاي دﺳﺘﻮر ‪ usermod‬را ﻣﯿﺪﻫﺪ‪.‬‬ ‫‪.2‬‬
‫ﻓﺮﻣﺎن ‪ usermod‬را ﻣﯽ ﺗﻮان در ﻫﺮ ﺗﻮزﯾﻊ ‪ linux‬اﺟﺮا ﮐﺮد‪.‬‬ ‫‪.3‬‬
‫ﺑﺎﯾﺪ داﻧﺶ ﭘﺎﯾﻪ اي از ﻓﺮﻣﺎن ‪ usermod‬ﺑﺎ ﮔﺰﯾﻨﻪ ﻫﺎ داﺷﺘﻪ ﺑﺎﺷﺪ‬ ‫‪.4‬‬

‫‪183‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪184‬‬

‫ﮔﺰﯾﻨﻪ ﻫﺎي‪Usermod‬‬
‫ﻓﺮﻣﺎن " ‪ " usermod‬ﺳﺎده اﺳﺖ ﮐﻪ ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ﻫﺎي زﯾﺎدي ﺑﺮاي اﯾﺠﺎد ﺗﻐﯿﯿﺮات در ﯾﮏ ﮐﺎرﺑﺮ ﻣﻮﺟﻮد‬
‫اﺳﺘﻔﺎده ﺷﻮد‪.‬ﺑﻪ ﻣﺎ اﺟﺎزه ﻣﯽ دﻫﺪ ﻧﺤﻮه اﺳﺘﻔﺎده از ﻓﺮﻣﺎن ‪ usermod‬را ﺑﺎ ﺗﻐﯿﯿﺮ ﺑﺮﺧﯽ از ﮐﺎرﺑﺮان ﻣﻮﺟﻮد در ﺟﻌﺒﻪ‬
‫‪ linux‬ﺑﺎ ﮐﻤﮏ ﮔﺰﯾﻨﻪ ﻫﺎي زﯾﺮ ﺑﺒﯿﻨﯿﺪ‪.‬‬
‫= ‪-c‬ﻣﺎ ﻣﯿﺘﻮاﻧﯿﻢ ﻓﯿﻠﺪ ‪ comment‬را ﺑﺮاي ‪ useraccount‬اﺿﺎﻓﻪ ﮐﻨﯿﻢ‪.‬‬ ‫‪.1‬‬
‫= ‪-d‬ﺗﻐﯿﯿﺮ داﯾﺮﮐﺘﻮري ﺑﺮاي ﻫﺮ ﺣﺴﺎب ﮐﺎرﺑﺮ ﻣﻮﺟﻮد‪.‬‬ ‫‪.2‬‬
‫= ‪-e‬ﺑﺎ اﺳﺘﻔﺎده از اﯾﻦ ﮔﺰﯾﻨﻪ ﻣﯽ ﺗﻮاﻧﯿﻢ ﻣﺪت زﻣﺎن ﻣﺸﺨﺺ ﺣﺴﺎب ﮐﺎرﺑﺮي را ﻟﻐﻮ ﮐﻨﯿﻢ‪.‬‬ ‫‪.3‬‬
‫= ‪-g‬ﮔﺮوه اﺻﻠﯽ را ﺑﺮاي ﯾﮏ ﮐﺎرﺑﺮ ﺗﻐﯿﯿﺮ دﻫﯿﺪ‪.‬‬ ‫‪.4‬‬
‫= ‪-G‬اﺿﺎﻓﻪ ﮐﺮدن ﯾﮏ ﮔﺮوه ﻣﮑﻤﻞ‬ ‫‪.5‬‬
‫= ‪-a‬ﺑﺮاي اﺿﺎﻓﻪ ﮐﺮدن ﻫﺮ ﮔﺮوه از ﮔﺮوه ﺑﻪ ﯾﮏ ﮔﺮوه ﺛﺎﻧﻮﯾﻪ‪.‬‬ ‫‪.6‬‬
‫= ‪-l‬ﺑﺮاي ﺗﻐﯿﯿﺮ ﻧﺎم ورود از ‪ hosein‬ﺑﻪ‪hosein _admin.‬‬ ‫‪.7‬‬
‫= ‪-L‬ﺑﺮاي ﻗﻔﻞ ﮐﺮدن ﺣﺴﺎب ﮐﺎرﺑﺮﯾﺎﯾﻦ رﻣﺰ ﻋﺒﻮر را ﻗﻔﻞ ﻣﯽ ﮐﻨﺪ‪ ،‬ﺑﻨﺎﺑﺮاﯾﻦ ﻧﻤﯽ ﺗﻮاﻧﯿﻢ از ﺣﺴﺎب اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬ ‫‪.8‬‬
‫= ‪-m‬اﻧﺘﻘﺎل ﻣﺤﺘﻮﯾﺎت ﭘﻮﺷﻪ ﺧﺎﻧﮕﯽ از ‪ home‬ﻣﻮﺟﻮد ﺑﻪ ﭘﻮﺷﻪ ﺟﺪﯾﺪ‪.‬‬ ‫‪.9‬‬
‫= ‪-p‬ﺑﺮاي اﺳﺘﻔﺎده از رﻣﺰ ﻋﺒﻮر رﻣﺰﮔﺬاري ﻧﺸﺪه ﺑﺮاي رﻣﺰ ﻋﺒﻮر ﺟﺪﯾﺪ(‪.‬ﻏﯿﺮ اﻣﻦ‪).‬‬ ‫‪.10‬‬
‫= ‪-s‬ﯾﮏ ﭘﻮﺳﺘﻪ ﻣﺸﺨﺺ ﺑﺮاي ﺣﺴﺎب ﻫﺎي ﺟﺪﯾﺪ اﯾﺠﺎد ﮐﻨﯿﺪ‪.‬‬ ‫‪.11‬‬
‫= ‪-u‬ﺑﻪ ‪ UID‬اﺧﺘﺼﺎص داده ﺷﺪه ﺑﺮاي ﺣﺴﺎب ﮐﺎرﺑﺮي ﺑﯿﻦ ‪ 0‬ﺗﺎ ‪.999‬‬ ‫‪.12‬‬
‫= ‪-U‬ﺑﺮاي ﺑﺎز ﮐﺮدن ﺣﺴﺎب ﻫﺎي ﮐﺎرﺑﺮي‪.‬اﯾﻦ ﻗﻔﻞ رﻣﺰ ﻋﺒﻮر را ﺣﺬف ﻣﯽ ﮐﻨﺪ و ﺑﻪ ﻣﺎ اﺟﺎزه ﻣﯽ دﻫﺪ از ﺣﺴﺎب‬ ‫‪.13‬‬
‫ﮐﺎرﺑﺮي اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪.‬‬

‫اﺿﺎﻓﻪ ﮐﺮدن اﻃﻼﻋﺎت ﺑﻪ ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﮔﺰﯾﻨﻪ ' ‪ ' -c‬ﺑﺮاي ﺗﻨﻈﯿﻢ ﯾﮏ ﻧﻈﺮ ﻣﺨﺘﺼﺮ )اﻃﻼﻋﺎت( در ﻣﻮرد ﺣﺴﺎب ﮐﺎرﺑﺮ اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪.‬ﺑﺮاي ﻣﺜﺎل‪ ،‬اﺟﺎزه دﻫﯿﺪ‬
‫اﻃﻼﻋﺎﺗﯽ را در ﻣﻮرد ﮐﺎرﺑﺮ ‪ hosein‬اﺿﺎﻓﻪ ﮐﻨﯿﻢ‪ ،‬ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر زﯾﺮ‪.‬‬
‫‪# usermod -c‬‬ ‫‪hosein‬‬
‫ﭘﺲ از اﺿﺎﻓﻪ ﮐﺮدن اﻃﻼﻋﺎت در ﻣﻮرد ﮐﺎرﺑﺮ‪ ،‬ﻧﻈﺮ ﻫﻤﺎن را ﻣﯽ ﺗﻮان در ﻓﺎﯾﻞ ‪ / etc / passwd‬ﻣﺸﺎﻫﺪه ﮐﺮد‪.‬‬
‫‪# grep -E‬‬ ‫‪--color ' hosein ' / etc / passwd‬‬

‫‪ hosein : / home / hosein : / bin / sh‬اﯾﻦ ‪hosein : x: 500: 500:‬‬

‫‪184‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪185‬‬

‫اﺿﺎﻓﻪ ﮐﺮدن اﻃﻼﻋﺎت ﺑﻪ ﮐﺎرﺑﺮ‬


‫ﻓﻬﺮﺳﺖ داﯾﺮﮐﺘﻮري ﮐﺎرﺑﺮ را ﺗﻐﯿﯿﺮ دﻫﯿﺪ‬
‫در ﻣﺮﺣﻠﻪ ﻓﻮق ﻣﯽ ﺗﻮاﻧﯿﻢ ﺑﺒﯿﻨﯿﻢ ﮐﻪ داﯾﺮﮐﺘﻮري ‪ home‬ﻣﺎ زﯾﺮ ‪/ home / hosein /‬اﺳﺖ ‪ ،‬اﮔﺮ ﻣﺎ ﺑﺎﯾﺪ آن را ﺑﻪ‬
‫داﯾﺮﮐﺘﻮري دﯾﮕﺮ ﺗﻐﯿﯿﺮ دﻫﯿﻢ‪ ،‬ﻣﯽ ﺗﻮاﻧﯿﻢ آن را ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ‪-d‬ﺑﺎ دﺳﺘﻮر ‪ usermod‬ﺗﻐﯿﯿﺮ دﻫﯿﻢ‪.‬‬
‫ﺑﻪ ﻋﻨﻮان ﻣﺜﺎل‪ ،‬ﻣﻦ ﻣﯽ ﺧﻮاﻫﻢ داﯾﺮﮐﺘﻮري ‪ home‬را ﺑﻪ ‪/ var / www /‬ﺗﻐﯿﯿﺮ دﻫﻢ‪ ،‬اﻣﺎ ﻗﺒﻞ از ﺗﻐﯿﯿﺮ‪ ،‬اﺟﺎزه دﻫﯿﺪ‬
‫ﮐﻪ داﯾﺮﮐﺘﻮري ‪ home‬ﻓﻌﻠﯽ ﯾﮏ ﮐﺎرﺑﺮ را ﺑﺎ اﺳﺘﻔﺎده از ﻓﺮﻣﺎن زﯾﺮ ﺑﺮرﺳﯽ ﮐﻨﯿﻢ‪.‬‬
‫‪# grep -E-color '/ home / hosein ' / etc / passwd‬‬

‫‪ hosein : / home / hosein : / bin / sh‬اﯾﻦ ‪hosein : x: 500: 500:‬‬


‫ﺣﺎﻻ‪ ،‬داﯾﺮﮐﺘﻮري ‪ home‬را از ‪ / home / hosein‬ﺑﻪ ‪/ var / www /‬ﺗﻐﯿﯿﺮ دﻫﯿﺪ و ﭘﺲ از ﺗﻐﯿﯿﺮ‪ ،‬ﻣﺪﯾﺮ ﺳﺎﯾﺖ را‬
‫ﺗﺄﯾﯿﺪ ﮐﻨﯿﺪ‪.‬‬
‫‪# usermod -d / var / www / hosein‬‬
‫‪# grep -E-color '/ var / www /' / etc / passwd‬‬

‫‪hosein : x: 500: 500:‬‬ ‫‪hosein : / var / www : / bin / sh‬‬

‫ﺗﻐﯿﯿﺮ داﯾﺮﮐﺘﻮري ﺻﻔﺤﻪ ﮐﺎرﺑﺮ‬


‫ﺗﺎرﯾﺦ اﻧﻘﻀﺎ ﺣﺴﺎب ﮐﺎرﺑﺮي را ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ‬
‫ﮔﺰﯾﻨﻪ ' ‪ ' -e‬ﺑﺮاي ﺗﻌﯿﯿﻦ ﺗﺎرﯾﺦ اﻧﻘﻀﺎء در ﯾﮏ ﺣﺴﺎب ﮐﺎرﺑﺮ ﺑﺎ ﻓﺮﻣﺖ ﺗﺎرﯾﺦ ‪YYYY-MM-DD‬اﺳﺘﻔﺎده ﻣﯽ‬
‫ﺷﻮد‪.‬ﻗﺒﻞ از ﺗﻨﻈﯿﻢ ﺗﺎرﯾﺦ اﻧﻘﻀﺎء ﺑﺮ روي ﯾﮏ ﮐﺎرﺑﺮ‪ ،‬اﺑﺘﺪا اﺑﺘﺪا وﺿﻌﯿﺖ اﻧﻘﻀﺎ ﺣﺴﺎب ﺟﺎري را ﺑﺎ اﺳﺘﻔﺎده از دﺳﺘﻮر‬
‫( ‪chage‬ﺗﻐﯿﯿﺮ اﻃﻼﻋﺎت اﻧﻘﻀﺎي ﮐﺎرﺑﺮ( ﺗﻐﯿﯿﺮ دﻫﯿﺪ‪.‬‬
‫‪# chage -l hosein‬‬

‫وﺿﻌﯿﺖ ﻣﻨﻘﻀﯽ از ﯾﮏ ﮐﺎرﺑﺮ ‪ " hosein " 2014‬دﺳﺎﻣﺒﺮ ‪ 1‬اﺳﺖ ‪ ،‬اﺟﺎزه دﻫﯿﺪ آن را ﺑﻪ ‪2014 1 november‬‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﯾﻨﻪ ' ‪ ' usermod -e‬ﺗﻐﯿﯿﺮ دﻫﯿﻢ و ﺗﺎرﯾﺦ اﻧﻘﻀﺎ را ﺑﺎ دﺳﺘﻮر ' ‪' chage‬ﺗﺎﯾﯿﺪ ﮐﻨﯿﻢ‪.‬‬

‫‪185‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪186‬‬

‫‪# usermod -e 2014-11-01 hosein‬‬


‫‪# chage -l hosein‬‬

‫ﺗﻨﻈﯿﻢ ﺗﺎرﯾﺦ اﻧﻘﻀﺎ ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﺗﻐﯿﯿﺮ ﮔﺮوه اوﻟﯿﻪ ﮐﺎرﺑﺮ‬
‫ﺑﺮاي ﺗﻨﻈﯿﻢ ﯾﺎ ﺗﻐﯿﯿﺮ ﯾﮏ ﮔﺮوه اوﻟﯿﻪ ﮐﺎرﺑﺮ‪ ،‬از ﮔﺰﯾﻨﻪ ' ‪ ' -g‬ﺑﺎ ﻓﺮﻣﺎن ‪ usermod‬اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﯿﻢ‪.‬ﻗﺒﻞ از ﺗﻐﯿﯿﺮ ﮔﺮوه‬
‫اوﻟﯿﻪ ﮐﺎرﺑﺮ‪ ،‬اﺑﺘﺪا اﻃﻤﯿﻨﺎن ﺣﺎﺻﻞ ﮐﻨﯿﺪ ﮐﻪ ﮔﺮوه ﻓﻌﻠﯽ ﺑﺮاي ‪hosein _test‬ﮐﺎرﺑﺮ‪.‬‬
‫‪# id hosein _test‬‬

‫)‪uid = 501 ( hosein _test) gid = 502 ( hosein _test ) groups = 502 ( hosein _test‬‬

‫ﺣﺎﻻ‪ ،‬ﮔﺮوه ‪babin‬را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﮔﺮوه اﺻﻠﯽ ﺑﻪ ‪ user hosein _test‬ﺗﻨﻈﯿﻢ ﮐﻨﯿﺪ و ﺗﻐﯿﯿﺮات را ﺗﺄﯾﯿﺪ ﮐﻨﯿﺪ‪.‬‬
‫‪# usermod-g babin hosein _test‬‬
‫‪# id hosein _test‬‬

‫)‪ ( hosein _test‬ﮔﺮوه = ‪uid = 501 ( hosein _test) gid = 502 ( babin ) 502‬‬

‫‪186‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪187‬‬

‫ﺗﻐﯿﯿﺮ ﮔﺮوه اوﻟﯿﻪ ﮐﺎرﺑﺮ‬


‫اﻓﺰودن ﮔﺮوه ﺑﻪ ﯾﮏ ﮐﺎرﺑﺮ ﻣﻮﺟﻮد‬
‫اﮔﺮ ﻣﯿﺨﻮاﻫﯿﺪ ﯾﮏ ﮔﺮوه ﺟﺪﯾﺪ ﺑﻪ ﻧﺎم ' ‪ ' hosein _test0‬ﺑﻪ ﮐﺎرﺑﺮ ' ‪ ' hosein‬اﺿﺎﻓﻪ ﮐﻨﯿﺪ‪ ،‬ﻣﯿﺘﻮاﻧﯿﺪ از ﮔﺰﯾﻨﻪ‪' -‬‬
‫' ‪G‬ﺑﺎ دﺳﺘﻮر ‪ usermod‬ﻫﻤﺎﻧﻄﻮر ﮐﻪ در زﯾﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ اﺳﺘﻔﺎده ﮐﻨﯿﺪ‪.‬‬
‫‪# usermod-g hosein _test0 hosein‬‬
‫‪# id hosein‬‬

‫ﻗﻔﻞ ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﺑﺮاي ﻗﻔﻞ ﮐﺮدن ﻫﺮ ﺣﺴﺎب ﮐﺎرﺑﺮ ‪ ،system‬ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ از ﮔﺰﯾﻨﻪ( ' ‪ ' -L‬ﻗﻔﻞ( اﺳﺘﻔﺎده ﮐﻨﯿﻢ‪ ،‬ﺑﻌﺪ از اﯾﻨﮑﻪ ﺣﺴﺎب‬
‫ﻗﻔﻞ ﺷﺪ ﻣﺎ ﻧﻤﯽ ﺗﻮاﻧﯿﻢ ﺑﺎ اﺳﺘﻔﺎده از رﻣﺰ ﻋﺒﻮر وارد ﺷﻮﯾﺪ و ﺷﻤﺎ ﯾﮏ !ﻗﺒﻞ از رﻣﺰ ﻋﺒﻮر رﻣﺰ ﺷﺪه در ﻓﺎﯾﻞ ‪/ etc /‬‬
‫‪shadow‬اﺿﺎﻓﻪ ﺷﺪه اﺳﺖ‪ ،‬ﯾﻌﻨﯽ رﻣﺰ ﻋﺒﻮر ﻏﯿﺮﻓﻌﺎل ﺷﺪه اﺳﺖ‪.‬‬
‫‪# usermod-l babin‬‬
‫ﺣﺴﺎب ﮐﺎرﺑﺮي ﻗﻔﻞ ﺷﺪه را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‪.‬‬
‫‪# grep -E‬‬ ‫‪--color 'babin' cat / etc / shadow‬‬

‫‪187‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪188‬‬

‫ﻗﻔﻞ ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﺣﺴﺎب ﮐﺎرﺑﺮي را ﺑﺎز ﮐﻨﯿﺪ‬
‫ﮔﺰﯾﻨﻪ ' ‪ ' -U‬ﺑﺮاي ﺑﺎز ﮐﺮدن ﻫﺮ ﮐﺎرﺑﺮ ﻗﻔﻞ ﺷﺪه اﺳﺘﻔﺎده ﻣﯽ ﺷﻮد‪ ،‬اﯾﻦ را ﺣﺬف ﻣﯽ ﮐﻨﺪ !ﻗﺒﻞ از ﮔﺬرواژه رﻣﺰﮔﺬاري‬
‫ﺷﺪه‬
‫‪# grep -E --color 'babin' / etc / shadow‬‬
‫‪# usermod -U babin‬‬

‫ﺗﺄﯾﯿﺪ ﮐﺎرﺑﺮ ﭘﺲ از ﺑﺎزﮐﺮدن ﻗﻔﻞ‬


‫‪# grep -E‬‬ ‫‪--color 'babin' / etc / shadow‬‬

‫ﺑﺎز ﮐﺮدن ﺣﺴﺎب ﮐﺎرﺑﺮي‬


‫ﺗﻐﯿﯿﺮ ‪ UID‬و ‪ GID‬ﯾﮏ ﮐﺎرﺑﺮ‬
‫ﻣﺎ ﻣﯽ ﺗﻮاﻧﯿﻢ ‪ UID‬و ‪ GID‬ﯾﮏ ﮐﺎرﺑﺮ ﻓﻌﻠﯽ را ﺗﻐﯿﯿﺮ دﻫﯿﻢ‪.‬ﺑﺮاي ﺗﻐﯿﯿﺮ ﺑﻪ ‪ GID‬ﺟﺪﯾﺪ ﻣﺎ ﻧﯿﺎز ﺑﻪ ﯾﮏ ﮔﺮوه ﻣﻮﺟﻮد‬
‫ﻫﺴﺘﯿﻢ‪.‬در اﯾﻨﺠﺎ در اﯾﻨﺠﺎ ﯾﮏ ﺣﺴﺎب ﮐﺎرﺑﺮي ﺑﻪ ﻧﺎم ﻧﺎرﻧﺠﯽ ﺑﺎ ‪ GID‬از ‪777‬وﺟﻮد دارد‪.‬‬
‫در ﺣﺎل ﺣﺎﺿﺮ ﺣﺴﺎب ﮐﺎرﺑﺮي ﺟﮏ ﻣﻦ ﻣﯽ ﺧﻮاﻫﯿﺪ ﺑﺎ ‪ UID‬از ‪666‬و ‪ GID‬ﻧﺎرﻧﺠﯽ ) ‪ ( 777‬اﺧﺘﺼﺎص داده ﺷﻮد‪.‬‬
‫ﻗﺒﻞ از اﺻﻼح‪UID ،‬و ‪ GID‬ﻓﻌﻠﯽ را ﺑﺮرﺳﯽ ﮐﻨﯿﺪ‪.‬‬

‫‪188‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪189‬‬

‫‪# id ali‬‬
‫ﺗﻐﯿﯿﺮ ‪ UID‬و‪GID‬‬
‫‪# usermod -u 666 -g 777 ali‬‬
‫ﺑﺮاي ﺗﻐﯿﯿﺮات را ﭼﮏ ﮐﻨﯿﺪ‪.‬‬
‫‪# id ali‬‬

‫ﺗﻐﯿﯿﺮ ‪ UID‬ﮐﺎرﺑﺮ و ‪GID‬‬


‫دﺳﺘﻮرات ﻣﻤﻨﻮﻋﻪ‬
‫دﺳﺘﻮرات ﺗﺮﻣﯿﻨﺎل ﻟﯿﻨﻮﮐﺲ ﻗﺪرﺗﻤﻨﺪ ﻫﺴﺘﻨﺪ و ﻟﯿﻨﻮﮐﺲ اﮔﺮ ﺷﻤﺎ ﯾﮏ ﻓﺮﻣﺎن را اﺟﺮا ﮐﻨﯿﺪ ﮐﻪ ﺳﯿﺴﺘﻢ ﺷﻤﺎ را ﺧﺮاب‬
‫ﻣﯽ ﮐﻨﺪ‪ ،‬از ﺷﻤﺎ درﺧﻮاﺳﺖ ﺗﺎﯾﯿﺪ ﻧﻤﯽ ﮐﻨﺪ ‪.‬ﮐﺎرﺑﺮان ﻣﻌﻤﻮﻟﯽ ﻟﯿﻨﻮﮐﺲ اﯾﻦ دﺳﺘﻮرات را ﺑﻪ ﻋﻨﻮان ﯾﮏ ﺷﻮﺧﯽ ﺗﻮﺻﯿﻪ‬
‫ﻧﻤﯽ ﮐﻨﻨﺪ‪.‬‬

‫‪rm -rf /‬‬


‫‪mkfs.ext4 /dev/sda1‬‬ ‫‪– Formats a Hard Drive‬‬
‫‪command > /dev/sda‬‬ ‫‪– Writes Directly to a Hard Drive‬‬
‫‪dd if=/dev/random of=/dev/sda‬‬ ‫‪– Writes Junk Onto a Hard Drive‬‬
‫‪mv ~ /dev/null‬‬ ‫‪– Moves Your Home Directory to a Black Hole‬‬

‫‪189‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪190‬‬

‫ﻣﻔﻬﻮم ‪TLDR‬‬
‫‪Easy to Understand Man Pages for Every Linux User‬‬

‫ﯾﮑﯽ از روﺷﻬﺎي راﯾﺞ ﺗﺮﯾﻦ و ﻗﺎﺑﻞ اﻃﻤﯿﻨﺎن ﺑﺮاي درﯾﺎﻓﺖ ﮐﻤﮏ در ﺳﯿﺴﺘﻢ ﻫﺎي ﯾﻮﻧﯿﮑﺲ از ﻃﺮﯾﻖ ﺻﻔﺤﻪ ﻫﺎي‬
‫ﺷﺨﺼﯽ اﺳﺖ ‪.‬ﺻﻔﺤﺎت ‪ Man‬ﻣﺴﺘﻨﺪات اﺳﺘﺎﻧﺪارد ﺑﺮاي ﻫﺮ ﯾﻮﻧﯿﮑﺲ ﻣﺎﻧﻨﺪ ﺳﯿﺴﺘﻢ ﻫﺴﺘﻨﺪ و آﻧﻬﺎ را ﺑﻪ ﮐﺘﺎﺑﭽﻪ ﻫﺎي‬
‫آﻧﻼﯾﻦ ﺑﺮاي ﺑﺮﻧﺎﻣﻪ ﻫﺎ‪ ،‬ﺗﻮاﺑﻊ‪ ،‬ﮐﺘﺎﺑﺨﺎﻧﻪ ﻫﺎ‪ ،‬ﺗﻤﺎس ﻫﺎي ﺳﯿﺴﺘﻢ‪ ،‬اﺳﺘﺎﻧﺪاردﻫﺎي رﺳﻤﯽ و ﮐﻨﻮاﻧﺴﯿﻮن ﻫﺎ‪ ،‬ﻓﺮﻣﺖ ﻫﺎي‬
‫ﻓﺎﯾﻞ و ﻏﯿﺮه ﻣﻄﺎﺑﻘﺖ دارد ‪.‬ﺑﺎ اﯾﻦ ﺣﺎل‪ ،‬ﺻﻔﺤﺎت ﻣﺮد رﻧﺞ ﻣﯽ ﺑﺮﻧﺪ از ﺑﺴﯿﺎري از ﻧﻘﺺ ﮐﻪ ﯾﮑﯽ از آﻧﻬﺎ ﺑﯿﺶ از ﺣﺪ‬
‫ﻃﻮﻻﻧﯽ اﺳﺖ و ﺑﺮﺧﯽ از ﻣﺮدم ﻓﻘﻂ دوﺳﺖ ﻧﺪارﻧﺪ ﻣﺘﻦ ﺑﯿﺶ از ﺣﺪ در ﺻﻔﺤﻪ را ﺑﺨﻮاﻧﺪ‪.‬‬

‫ﺻﻔﺤﺎت( ‪ TLDR‬ﺑﻪ ﻣﻌﻨﺎي "ﺑﯿﺶ از ﺣﺪ ﻃﻮﻻﻧﯽ؛ ﺧﻮاﻧﺪن" ﻧﯿﺴﺘﻨﺪ( ﺧﻼﺻﻪ ﻋﻤﻠﯿﺎت ﻧﻤﻮﻧﻪ ﻫﺎﯾﯽ از دﺳﺘﻮرات در‬
‫ﺳﯿﺴﺘﻢ ﻋﺎﻣﻞ ﻫﺎي ﻣﺨﺘﻠﻒ از ﺟﻤﻠﻪ ﻟﯿﻨﻮﮐﺲ اﺳﺖ ‪.‬آﻧﻬﺎ ﺑﺎ اراﺋﻪ ﻧﻤﻮﻧﻪ ﻫﺎي ﻋﻤﻠﯽ ﺳﺎده ﺻﻔﺤﺎت اﻧﺴﺎن را ﺳﺎده ﻣﯽ‬
‫ﮐﻨﻨﺪ‪ .‬دﻓﻌﺎت ﺑﺎزدﯾﺪ‪ 5 :‬اﺑﺰار ﻣﻔﯿﺪ ﺑﻪ ﯾﺎد داﺷﺘﻪ ﺑﺎﺷﯿﺪ دﺳﺘﻮرات ﻟﯿﻨﻮﮐﺲ ﺑﺮاي ﻫﻤﯿﺸﻪ ﻟﻄﻔﺎ ﺑﺮاي ‪TLDR‬ﯾﮏ‬
‫ﻋﺎدت اﯾﻨﺘﺮﻧﺘﯽ اﺳﺖ‪ ،‬ﺑﻪ اﯾﻦ ﻣﻌﻨﯽ ﭘﺴﺖ‪ ،‬ﻣﻘﺎﻟﻪ‪ ،‬ﻧﻈﺮ ﯾﺎ ﻫﺮ ﭼﯿﺰ دﯾﮕﺮي ﻣﺎﻧﻨﺪ ﯾﮏ ﺻﻔﺤﻪ ﮐﺘﺎﺑﭽﻪ راﻫﻨﻤﺎي ﮐﺎرﺑﺮ ﺑﯿﺶ‬
‫از ﺣﺪ ﻃﻮل ﻣﯽ ﮐﺸﺪ و ﻫﺮ ﮐﺴﯽ ﮐﻪ از ﻋﺒﺎرت اﺳﺘﻔﺎده ﻣﯽ ﮐﻨﺪ ﺑﻪ آن دﻟﯿﻞ ﻧﻤﯽ ﺧﻮاﻧﺪ ‪.‬ﻣﺤﺘﻮاي ﺻﻔﺤﺎت ‪TLDR‬‬
‫ﺑﻪ ﻃﻮر آﺷﮑﺎر ﺗﺤﺖ ﻣﺠﻮز ‪ MIT‬ﻣﺠﺎز اﺳﺖ‪.‬‬
‫‪Install TLDR‬‬
‫‪$ sudo npm install -g tldr‬‬
‫‪$ sudo snap install tldr‬‬
‫ﻣﺜﺎل‪:‬‬
‫‪$ tldr ls‬‬

‫‪190‬‬
‫‪ 1001‬دﺳﺘﻮر ﻟﯿﻨﻮﮐﺴﯽ‬ ‫‪191‬‬

‫‪191‬‬

You might also like