دستورات کاربردی لینوکس
یکی از مواردی که باید با آن آشنا باشید، دستورات کاربردی لینوکس است که جهت ادامه کار باید با آن ها آشنا باشید. در ادامه به معرفی این دستورات می پردازیم.
pwd: این دستور دایرکتوری که در حال حاضر در آن قرار دارید را به شما نمایش می دهد. پس از ورود به لینوکس با توجه به اینکه شما با چه کاربری وارد شده باشید، به صورت پیش فرض در دایرکتوری آن کاربر خواهید بود.
whoami: این دستور به شما نشان می دهد که با چه کاربری وارد سیستم شده اید.
cd: این دستور برای تغییر دایرکتوری یا Change Directory مورد استفاده قرار می گیرد و پس از آن باید نام دایرکتوری که قصد وارد شدن به آن دارید را قرار دهید.
همچنین با استفاده از دو نقطه می توانید وارد دایرکتوری قبل از دایرکتوری موجود شوید. با توجه به این موضوع اگر قصد رفتن به دو دایرکتوری بالاتر را داشته باشید عبارت دو نقطه را دو بار نوشته و اگر قصد رفتن به سه دایرکتوری بالاتر را دارید سه بار عبارت دو نقطه را تایپ می کنید.
ls: از این دستور برای لیست نمودن فایل ها و دایرکتوری های موجود در دایرکتوری حاضر و یا دایرکتوری دیگر استفاده می شود. برای مشاهده جزئیات بیشتر در مورد محتویات دایرکتوری و همچنین دایرکتوری ها و فایل های مخفی شده می توانید از دستور ls -la استفاده کنید.
راهنمای دستورات: برای مشاهده راهنمای دستورات یا ابزارها در لینوکس می توانید از دو عبارت -h و یا –help در انتهای دستور استفاده نمایید. توجه داشته باشید که در لینوکس اگر از یک کلمه به عنوان سوییچ یک دستور استفاده می کنید نیاز به دو — بوده و در صورتی که از یک حرف استفاده نمایید نیاز به استفاده از یک – می باشد.
مشاهده Manual Page دستورات: علاوه بر سوییچ help برخی اکثر دستورات و برنامه ها یک صفحه راهنمای یا Manual دارند که اطلاعات بیشتری را در اختیار شما قرار می دهند. برای مشاهده این صفحات کافی است تا درابتدای دستور یا ابزار مورد نظر خود عبارت man را تایپ نمایید. پس از مشاهده این صفحه با فشردن کلید q می توانید از بخش Manual خارج شوید.
locate: یکی از دستورات مربوط به جست و جو در لینوکس است که در ادامه آن عبارتی که قصد جست و جوی آن را دارید قرار می گیرد. این دستور کل سیستم فایل را برای پیدا نمودن عبارت مورد نظر جست و جو نموده و نتیجه آن را به شما نمایش می دهد.
نکته: این دستور کامل نبوده و در برخی موارد نتایج جست و جوی آن قابل اطمینان نمی باشد. دستور locate از یک دیتابیس استفاده می کند که معمولا به صورت روزانه بروزرسانی می شود و اگر شما یک فایل را طی چند دقیقه یا چند ساعت گذشته ایجاد کرده باشید، ممکن است توسط این دستور شناسایی نشود.
whereis: اگر شما به دنبال یک فایل باینتری می گردید، می توانید از دستور whreris برای این منظور استفاده نمایید. این دستور نه تنها مسیر باینری آن را به شما نمایش می دهد بلکه منبع اصلی و صفحه Manual آن را در صورت وجود برای شما نمایش خواهد داد.
در این مورد دستور whereis به جای بازگرداند هر مسیری که عبارت مورد نظر در آن قرار دارد، فقط مسیر باینری و صفحه Manual آن را باز می گرداند.
which: این دستور تنها مسیر باینری های موجود در متغیر PATH در لینوکس را نمایش می دهد. البته در بخش های بعدی به متغیر PATH اشاره خواهیم کرد. اما در حال حاضر همین مقدار بدانید کافی است که PATH، دایرکتوری های مربوط به دستورات وارد شده توسط شما در خط فرمان را نگه می دارد تا بتواند آن ها را اجرا نماید. به عنوان مثال هنگامی که شما دستور aircrack-ng را در خط فرمان وارد می کنید، سیستم عامل به متغیر PATH نگاه کرده تا دایرکتوری مربوط به aircrack-ng را پیدا نماید.
find: از این دستور هم برای جست و جو در سیستم عامل لینوکس مورد استفاده قرار می گیرد. با استفاده از این دستور شما می توانید در هر دایرکتوری جست و جو نموده و یا جست و جو را بر اساس پارامترهای مختلف شامل نام فایل، تاریخ ایجاد و تغییر، نام مالک، گروه، مجوزها و یا سایز، انجام دهید. ساختار استفاده از دستور find به صورت زیر است:
find directory options expression
بنابراین اگر بخواهیم یک فایل را که نام آن apache2 باشد و جست و جو را از دایرکتوری root آغاز کند، دستور جست جو به صورت زیر خواهد بود:
find / -type f -name apache2
نکته: دستور find تنها مواردی را که دقیقاً مشابه با نام جست و جو شده باشد را نمایش می دهد به عنوان مثال اگر شما عبارت apache2 را جست و جو کرده باشید، اگر این فایل دارای یک پسوند باشد مانند apache2.conf، دستور find آن را پیدا نخواهد کرد. البته ما می توانیم این محدودیت را با استفاده از Wildcard ها حل کنیم. در مثال زیر فایل هایی که با apache2 شروع شده با هر پسوندی را جست و جو خواهد نمود:
find /etc -type f –name apache2.*
کوتاه در مورد wildcard ها
برای مثال ما یک جست و جو را در دایرکتوری که فایل های cat، hat، what و bat در آن قرار دارند انجام می دهیم. Wildcard ها می تواند شامل * . , ? and [] باشد. عبارت ? برای یک کاراکتر استفاده می شود. بنابراین نتایج جست و جو با عبارت ?at فایل های hat، cat و bat بوده و شامل what نمی شود زیرا فایل what دارای دو کاراکتر پیش از at است و شامل نتایج این جست و جو نمی شود. عبارت [] برای جست وجوی حروف یا کلماتی است که در داخل آن استفاده می شوند.
به عنوان مثال اگر جست و جو برای عبارت [c,b]at انجام شود، نتایج فایل های cat و bat بوده و فایل های hat و what نمایش داده نمی شوند. Wildcard دیگر * است که کاربرد بیشتری دارد و تمام کاراکترهایی با هر اندازه ای را شامل می شود بدین صورت که اگر شما در جست و جو عبارت *at را وارد نمایید، نتایج آن cat، bat، hat و what خواهد بود.
کاربرد wildcard در عبور از فایروال ها
یکی از مواردی که می توان از wildcard استفاده نموده، عبور از امضاهای فایروال ها و سیستم های تشخیص نفوذ است. یکی از دستوراتی که در حملات Command Injection کاربرد دارد، دستور cat /etc/passwd می باشد. برخی از فایروال ها این عبارت را به عنوان دستور مخرب شناسایی نموده و اجازه اجرای آن را نمی دهند. با توجه به مواردی که در خصوص wildcard خدمت شما مطرح نمودیم، شما می توانید به جای استفاده از عبارت اصلی، از دستور cat /etc/pass?? استفاده نمایید که این دستور می تواند منجر به عبور از امضای فایروال یا سیستم تشخیص نفوذ شود.
grep: اکثر اوقات شما از دستورات مختلف استفاده می کنید ولی شما تنها به دنبال کلمه با عبارت خاصی هستید. برای این منظور استفاده از grep به شما پیشنهاد می گردد. به عنوان مثال دستور ps با سوییچ aux اطلاعات مربوط به کلیه پروسس های در حال اجرا را به شما نمایش می دهد. برای اینکه بخواهید تنها اطلاعات مربوط به یک پروسس خاص را مشاهده نمایید می توانید از grep به صورت زیر برای این منظور استفاده نمایید.
ps aux | grep apache2
در واقع این دستور به لینوکس می گوید که کلیه پروسس ها را نمایش داده و سپس خروجی آن را به grep ارسال کند و در ادامه تنها بخش هایی که عبارت apache2 در آن وجود دارد را نمایش بده.
ایجاد و تعییرات در فایل و دایرکتوری
در ادامه معرفی دستورات کاربردی لینوکس به نحوه ایجاد و تغییرات در فایل و دایرکتوری می پردازیم. برای ایجاد فایل راه های مختلفی وجود دارد که در این بخش به برخی از آن ها اشاره می کنیم.
cat: از این دستور معمولا برای مشاهده محتویات فایل ها استفاده می شود ولی شما می توانید به وسیله آن یک فایل نیز ایجاد کنید. البته پیشنهاد می شود از این دستور برای مشاهده فایل های کوچک استفاده کنید و برای مشاهده فایل های حجیم از ابزارهایی مانند vim، leafpad، gedit و ابزارهای مشابه استفاده نمایید.
برای ایجاد فایل با استفاده از دستور cat به صورت زیر عمل می کنیم:
cat > securityworld
پس از تایپ دستور بالا و فشردن کلید Enter، لینوکس وارد مد interactive شده و منتظر می ماند تا شما محتوای دلخواه خود را برای فایل securityworld تایپ نمایید. پس از تایپ محتوا، با فشردن کلید CTRL و D شما از این محیط خارج خواهید شد. اگر بخواهید که محتوایی را به انتهای فایل بالا اضافه نمایید به جای استفاده از > باید از >> استفاده نمایید.
touch: از این دستور نیز می توان برای ایجاد فایل استفاده نمود.
mkdir: از این دستور برای ایجاد یک دایرکتوری استفاده می شود.
cp: از این دستور برای کپی فایل ها استفاده می شود که نحوه استفاده از آن به صورت زیر است:
cp securityworld /root/test
mv: متاسفانه لینوکس دستور مجزایی برای تغییر نام فایل ها نداشته و از دستور mv برای این منظور استفاده می کند. از دستور mv به صورت پیش فرض برای move نمودن فایل ها استفاده می شود.
rm: از این دستور برای حذف یک فایل استفاده می شود.
rmdir: از این دستور برای حذف یک دایرکتوری استفاده می شود. توجه داشته باشید این دستور، دایرکتوری که خالی نباشد را حذف نمی کند و برای حذف دایرکتوری در هر شرایطی باید از سوییچ -r استفاده نمایید.