pipe file

ژانویه 16, 2016

در ادامه حل تمرين بايد از pipe file استفاده ميکنيم که standard input را به standard output مي برد به طور کل ما گواهینامه ssl زماني از pipe استفاده ميکنيم که بخواهيم خروجي استاندارد را از طريق لوله که pipe اين نقش را براي ما اجرا ميکند به جاي نمايش روي مانيتور به يک فرمان ديگر ميفرستيم. به طور کلي: PIPE File استاندارد Input را به استاندارد output ميبرد. : حالا ميخواهيم همين اسمها را جدا کنيم و ايميل کنيميعني به جاي اينکه نمايش دهيم روي صفحه از طريق pipe به فرمان mail ميفرستيم: [N.pardis@Lpi1~]$ cut -c1-10 namef | mail -s names-listn.pardis حالا دوبارهفرمان mail که بزنيم آن را ميبينيم. حالا شماره ايميل را ميزنيم تا باز شود و آن را ببينيم. sort اين فرمان همان طور که از اسمش مشخص است براي ما sort مي کند و اگر خروجييک فرمان را به اينفرم ان ب ده يم sort م ي کند خروجي را. [N.pardis@Lpi1~]$ man sort در ادامه اين تمرين از يک فرمان ديگر به نام uniq هم استفاده مي کنيم که کار واحد سازي را انجام مي دهد و اس مها ي ش ب يه هم را از هر کدام يکي مي شمارد. حالا ميخواهيم اين اطلاعا را sort کنيم و ايميل کنيم. [N.pardis@Lpi1~]$ cut -c1-10 namef |sort| mail -s names n.pardis اوّل cut آن را جدا ميکند بعد به sort ميدهد و sort هم به mail ميدهد. حالا ميبينيم که اسمها sort شدهاند و ايميل شده اند. حالا ميخواهيم هر اسم را با تعداد تکرار آن يک بار بنويسيد و آپشن –f را هم اضافه ميکنيم تا case sensitive نباشد . [N.pardis@Lpi1~]$ cut -c1-10 namef |sort -u –f | mail-s names n.pardis حالا ميخواهيم از هراسم بگويد که چند تا داريم؟ [N.pardis@Lpi1~]$ cut -cl-10 namef |sort| uniq -c آپشن –u را از sort بر ميداريم چون اگر اين باشد از هر کدام يکي ميدهد به unique : اگر sort را برداريم اشتباه ميشود. چون uniq مثلاً amir را ميبيند و بعد زيرش mohammad را ميبيند و فکر م ي- کند amir يکي است. الان مي خواهيم به طور مثال history خودمان را براي همه کساني که هم اکنون به سيستم متصل هستند ارسال نماييم : [n.pardis@Lpi1~]$ history | mail –s my-hist `users` ميبينيد که users را درون back tick يعني “ قرار مي دهيم که با اين کار users را به عنوان يک اسمم در نر ر نم ي گي رد بلکه مقدار آن يعني userid کل کاربران را در نرر مي گيرد. پس تا اينجا sort و uniq را ياد گرفتيم. حالا ميخواهيم اين فايل را بر اساس نمره sort کنيم ونمايش دهيم: [N.pardis@Lpi1~]$ sort -k3 -r -n namef آپشن –k3 يعني بر اساس کليد سوم sort کن و –r يعني revers مرتب کن و –n يعني کليد سوم از نوع numeric مي باشد و بر اساس نوع داده numeric در نرر بگير و مرتب کن. headtail فرمان بعدي که با هم ياد ميگيريم head است که اين فرمان 12 خط اوّل فايل را به طور پيش فرض بيرون ميکشيد: در مثال هاي زير فقط 5 خط را نمايش مي دهد: [N.pardis@Lpi1~]$ head-5 file-name [N.pardis@Lpi1~]$ head-5 namef حالا اگر بخواهيم 12 خط آخر فايل را نشان دهيم از فرمان tail استفاده ميکنيم: [N.pardis@Lpi1~]$ tailnamef و اگر بخواهيم 5 خط آخر را نمايش دهد: [N.pardis@Lpi1~]$tail -5 namef حالا اگر بخواهيم خط آخر را نشان دهيم اين فرمان را ميزنيم: [N.pardis@Lpi1~]$ tail -1 namef 1: شاگرد سوّم را ميخواهيم نمايش دهد: [N.pardis@Lpi1~]$ sort -k3 –r-n namef |head-3 شاگرد يکي به آخر را نمايش دهد [N.pardis@Lpi1~]$sort -k3-r -n namef |tail-2| head-1 : خط 13 فايل namef را نمايش دهيد: [N.pardis@Lpi1~]$ head -13 namef |tail-1| mail -s sort2 sabt tac همان طور که قبلا گفتيمفرمان cat محتويا يک فايل را نمايش ميدهد: [N.pardis@Lpi1~]$ cat namef و فرمان tac که عکس فرمان cat است معکوس فايل را نمايش مي دهد: [N.pardis@Lpi1~]$ tac file-name [N.pardis@Lpi1~]$ tac namef rev اين فرمان هم فيلدها و محتويا داخل آنها را برعکس ميکند : [N.pardis@Lpi1~]$ rev namef اين فرمان هم کاري نميکند فقط معکوس معکوس است : [N.pardis@Lpi1~]$ rev namef |rev less [N.pardis@Lpi1~]$ man less فرمان cat اطلاعا را نمايش ميدهد ولي چون scroll ميشود همه اطلاعا را نميتوانيم در يک ص فحه ببين يم. م يت وان يم از less استفاده نماييم. [N.pardis@Lpi1~]$ less nemef فرمان More و Most و less کاري که انجام ميدهند اينست که صفحه به صفحه نمايش ميدهند و در لينوکس بيشتر از less استفاده مي شود.خصوصيت مهم less اينست که امکان search را به ما ميدهد وقتي فايل نمايش داده ش د ب ا زدن / و نوش تن کلمه مورد نرر آن را پيدا کنيم: ) پس less امکان search را به ما ميدهد.( [N.pardis@Lpi1~]$ less file-name و اگر رشته مورد نرر را پيدا نکرد پي ام Pattern not found را ميدهد. دستور زير کلماتي که 0 تا oo ندارند را نمايش دهد. [N.pardis@Lpi1~]$ less namef /!oo