
مثال هایی از ۳۰ دستور مهم ترمینال لینوکس
در این مطلب، مثال هایی از ۳۰ دستور مهم و پراستفاده ترمینال لینوکس را برای شما آماده کرده ایم. با ما همراه باشید.
این لیست آن قدر مشروح و پر طول و تفصیل نیست که سر شما را به درد بیاورد! در عوض نقطه شروعی برای استفاده قدرتمندتر از سیستم عامل لینوکس است؛ و همچنین بتوانید به خوبی قدرت خط فرمان و ابزارهای یونیکسی/لینوکسی را درک کنید. می توانید آدرس این صفحه را برای مراجعات بعدی خود به مثال های این دستورات، به عنوان بوکمارک ذخیره کنید.
اگر فکر می کنید دستور مهم تری از این لیست جا افتاده است، برای ما در قسمت نظرات آن را بنویسید تا ما هم توصیه شما را در لیست اعمال کنیم. نظرات شما کاربران اوپن مایند، برای ما بسیار پرارزش است 🙂
۱. دستور tar
برای ساخت یک فایل فشرده tar
1 | $ tar cvf archive_name.tar dirname/ |
اکسترکت کردن یک فایل tar
1 | $ tar xvf archive_name.tar |
مشاهده لیست محتویات یک فایل tar
1 | $ tar tvf archive_name.tar |
۲. دستور grep
جستجو برای یک رشته در داخل یک فایل (جستجو به بزرگی و کوچکی حروف حساس است)
1 | $ grep -i "game" demo_file |
چاپ خط حاوی کلمه جستجو شده، به همراه سه خط بعدی آن
1 | $ grep -A 3 -i "example" demo_file |
جستجو برای یک رشته در میان تمام فایل ها و زیر فایل های دایرکتوری فعلی (جستجو به صورت بازگشتی در تمام زیر پوشه ها)
1 | $ grep -r "Daniel" * |
۳. دستور find
جستجو برای یک یا چند فایل با استفاده از نام فایل ها (جستجو به بزرگی و کوچکی حروف حساس است)
1 | # find -iname "MyCProgram.c" |
اجرای دستورات روی فایل های پیدا شده توسط دستور find
1 | $ find -iname "MyCProgram.c" -exec md5sum {} ; |
پیدا کردن تمام فایل های خالی در مسیر خاص (در اینجا در مسیر home جستجو می شود)
1 | # find ~ -empty |
۴. دستور ssh
ورود به سیستم ریموت با ssh
1 | ssh -l jsmith remotehost.example.com |
نمایش جزئیات اتصال (به منظور خطایابی)
1 | ssh -v -l jsmith remotehost.example.com |
نمایش نسخه ssh نصب شده روی سیستم client
1 | $ ssh -V |
۵. دستور awk
نمایش خطوط غیر تکراری داخل یک فایل (حذف تکرارها)
1 | $ awk '!($0 in array) { array[$0]; print }' filename |
نمایش تمام خطوط از مسیر etc/passwd/ که uid و gid یکسانی دارند
1 | $ awk -F ':' '$3==$4' passwd.txt |
نمایش فیلدهای خاصی از هر خط داخل یک فایل
1 | $ awk '{print $2,$5;}' employee.txt |
۶. دستور diff
مقایسه دو فایل
1 | $ diff empfile1.txt empfile2.txt |
نادیده گرفتن اختلاف در جاهای خالی (white-space) هنگام مقایسه فایل ها
1 | $ diff -w name_list.txt name_list_new.txt |
۷. دستور sort
مرتب کردن محتویات داخل یک فایل با ترتیب صعودی
1 | $ sort names.txt |
مرتب کردن محتویات داخل یک فایل با ترتیب نزولی
1 | $ sort -r names.txt |
مرتب کردن فایل passwd بر اساس فیلد سوم هر خط
1 | $ sort -t: -k 3n /etc/passwd | more |
۸. دستور export
مشاهده متغیرهای محیطی (environment variable) مرتبط با اوراکل
1 2 3 4 5 | $ export | grep ORACLE declare -x ORACLE_BASE="/u01/app/oracle" declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0" declare -x ORACLE_SID="med" declare -x ORACLE_TERM="xterm" |
اضافه کردن یک متغیر محیطی جدید در ترمینال لینوکس
1 | $ export ORACLE_HOME=/u01/app/oracle/product/10.2.0 |
۹. دستور ls
نمایش حجم فایل ها در لیست فایل ها و پوشه ها (به شکلی که خواندن آن آسان باشد. مثل: KB و MB)
1 2 | $ ls -lh -rw-r----- 1 hamed dev 18.9M Sep 12 15:27 arch-linux.txt.gz |
مرتب سازی لیست خروجی بر اساس زمان ویرایش به ترتیب معکوس
1 | $ ls -ltr |
طبقه بندی دیداری فایل ها با کاراکترهای خاص
1 | $ ls -F |
۱۰. دستور pwd
pwd مخفف Print working directory است. این دستور مسیر جاری انتخاب شده در ترمینال لینوکس را نمایش می دهد.
1 | $ pwd |
۱۱. دستور cd
تغییر مسیر جاری ترمینال
1 | $ cd /directory/to/change |
برای تغییر مسیر به home
1 | $ cd ~ |
تغییر مسیر به دو پوشه بالاتر از سطح مسیر جاری
1 | $ cd ../.. |
۱۲. دستور gzip
ساخت یک فایل فشرده با فرمت *.gz
1 | $ gzip test.txt |
اکسترکت کردن یک فایل با فرمت *.gz
1 | $ gzip -d test.txt.gz |
نمایش نرخ فشردگی یک فایل فشرده
1 2 3 | $ gzip -l *.gz compressed uncompressed ratio uncompressed_name 23709 97975 75.8% asp-patch-rpms.txt |
۱۳. دستور unzip
اکسترکت کردن یک فایل با فرمت *.zip
1 | $ unzip test.zip |
نمایش اسامی و مشخصات محتویات فایل فشرده zip (بدون اکسترکت کردن آن)
1 2 3 4 5 6 7 8 | $ unzip -l jasper.zip Archive: jasper.zip Length Date Time Name -------- ---- ---- ---- 40995 11-30-16 23:50 META-INF/MANIFEST.MF 32169 08-25-16 21:07 classes_ 15964 08-25-16 21:07 classes_names 10542 08-25-16 21:07 classes_ncomp |
۱۴. دستور shutdown
خاموش کردن فوری سیستم از طریق ترمینال
1 | # shutdown -h now |
خاموش کردن سیستم بعد از ۱۰ دقیقه از طریق ترمینال
1 | # shutdown -h +10 |
ری استارت کردن فوری سیستم از طریق ترمینال
1 | # shutdown -r now |
اجبار به بررسی فایل سیستم (filesystem) در حین ری استارت کردن سیستم
1 | # shutdown -Fr now |
۱۵. دستور crontab
نمایش کرون تب ذخیره شده یک کاربر خاص
1 | # crontab -u hamed -l |
ایجاد یک زمان بندی کرون تب برای هر ۱۰ دقیقه یک بار
1 | */10 * * * * /home/hamed/check-disk-space |
۱۶. دستور ps
دستور ps برای نمایش اطلاعاتی درباره پروسه های در حال اجرای سیستم است. این دستور تعداد زیادی از آرگومان را برای موارد مختلف می پذیرد. ما در اینجا برخی از آرگومان های متداول را در قالب مثال ذکر کرده ایم.
برای نمایش اطلاعات پروسه های در حال اجرای فعلی
1 | $ ps -ef | more |
نمایش پروسه های در حال اجرای فعلی در قالب ساختار درختی (آرگومان H برای نمایش ساختار درختی اضافه شده است)
1 | $ ps -efH | more |
۱۷. دستور tail
این دستور به صورت پیشفرض ۱۰ خط آخر یک فایل را نمایش می دهد
1 | $ tail filename.txt |
نمایش N خط آخر یک فایل (در این مثال فایل filename.txt)
1 | $ tail -n N filename.txt |
نمایش خطوط آخر یک فایل در حال تغییر (در حال بزرگ شدن) به صورت آنی و زنده (real-time) با آرگومان f-
1 | $ tail -f log-file |
۱۸. دستور df
دستور df میزان استفاده از هر درایو سیستم را نمایش می دهد (به صورت پیشفرض اعداد به بایت هستند)
1 2 3 4 | $ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 29530400 3233104 24797232 12% / /dev/sda2 120367992 50171596 64082060 44% /home |
با افروزدن آرگومان h- اعداد در قالبی نمایش داده می شوند که خواندن و درک آن برای انسان ساده تر باشد (human-readable)
1 2 3 4 | $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 3.1G 24G 12% / /dev/sda2 115G 48G 62G 44% /home |
برای نمایش نوع فرمت درایوها از آرگومان T- استفاده می شود
1 2 3 4 | $ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda1 ext4 29530400 3233120 24797216 12% / /dev/sda2 ext4 120367992 50171596 64082060 44% /home |
۱۹. دستور kill
برای خاتمه دادن به اجرای یک پروسه فعال از دستور kill استفاده می شود. برای مشخص کردن پروسه، ابتدا شناسه پروسه (process id) را با دستور ps -ef پیدا کنید و سپس برای خاتمه داد سریع آن، شناسه را به دستور kill -9 بدهید (عدد ۹ به عنوان آرگومان، موجب خاتمه دادن سریع و یک سویه از طرف سیستم عامل می شود).
به مثال زیر برای از بین بردن پروسه فعال vim دقت کنید:
1 2 3 4 | $ ps -ef | grep vim hamed 7243 7222 9 22:43 pts/2 00:00:00 vim $ kill -9 7243 |
۲۰. دستور rm
این دستور برای حذف کردن فایل ها استفاده می شود. اما به صورت پیشفرض، قبل از حذف کامل فایل از شما سوالی درباره تایید حذف، پرسیده نمی شود. برای دریافت پرسش تایید قبل از حذف کامل فایل (فایل ها)، از آرگومان i- استفاده می شود.
1 | $ rm -i filename.txt |
این حالت به خصوص در مواقعی که قصد انتخاب و حذف گروهی از فایل ها را دارید بسیار مفید است و از خطاهای مهلک (حذف دائم و ناخواسته فایل های ضروری) جلوگیری می کند (مثال استفاده از عبارات منظم در اسم فایل ها).
1 | $ rm -i file* |
برای حذف یک پوشه و تمام زیرپوشه و زیرفایل ها از دستور زیر استفاده می شود (خود پوشه اصلی هم پاک می شود)
1 | $ rm -r example_directory |
۲۱. دستور cp
کپی یک فایل به مسیر دیگری با حفظ تمام ویژگی های فایل (mode , ownership , timestamp)
1 | $ cp -p file1 example/file1 |
در صورتی که در مسیر کپی فایل، فایلی با همان نام وجود داشته باشد، دستور cp به صورت پیشفرض فایل را جایگزین می کند و این مسئله را به شما اطلاع نمی دهد! اگر مایلید در موقعیت مشابه پرسش تاییدی برای آگاه کردن و دریافت نظر شما وجود داشته باشد، از آرگومان i- استفاده کنید. مثال:
1 | $ cp -i file1 example/file1 |
۲۲. دستور mv
تغییر نام یک فایل از ترمینال با کمک دستورهای mv و rm (در این مثال در صورتی که فایل file2 از قبل وجود داشته باشد، ابتدا درباره جایگزینی با فایل جدید سوال پرسیده می شود)
1 2 | $ mv -i file1 file2 $ rm -i file1 |
نمایش لیست و جزییات فایل (فایل های) در حال انتقال با آرگومان v- (مفید برای انتقال گروهی فایل های انتخاب شده توسط عبارات منظم)
1 | $ mv -v pic* ../new_pictures |
۲۳. دستور cat
نمایش محتویات (کاراکتر اسکی) داخل یک یا چند فایل با دستور cat
1 | $ cat file1 file2 |
اضافه کردن شماره خطوط در نمایش محتویات فایل با آرگومان n-
1 2 3 4 5 6 | $ cat -n dog.txt 1 The 2 quick brown fox 3 jumps over 4 the 5 lazy dog |
۲۴. دستور chmod
دستور chmod برای تغییر حق دسترسی های یک فایل یا پوشه استفاده می شود.
اعطای حق دسترسی کامل (خواندن، نوشتن و اجرا کردن) برای کاربر و گروه، روی یک فایل
1 | $ chmod ug+rwx file.txt |
حذف تمام دسترسی های گروه، روی یک فایل
1 | $ chmod g-rwx file.txt |
اعمال تغییرات به صورت عمقی (بازگشتی) روی تمام فایل و پوشه های مسیر جاری و زیرفایل و زیرپوشه ها
1 | $ chmod -R ug+rwx ./* |
۲۵. دستور chown
دستور chown برای تغییر دادن صاحب (owner) فایل و گروه آن استفاده می شود.
تغییر صاحب فایل DBOptimize.sh به oracle و گروه آن به dba
1 | $ chown oracle:dba dboptimize.sh |
استفاده از آرگومان R- برای تغییر مالکیت (ownership) و گروه به صورت عمقی (بازگشتی)
1 | $ chown -R oracle:dba /home/oracle |
۲۶. دستور passwd
تغییر پسورد حساب کاربری وارد شده در ترمینال لینوکس (در اجرای این دستور بدون دسترسی سوپریوزر، ابتدا پسورد فعلی و سپس پسورد جدید پرسیده می شود)
1 | $ passwd |
با حق دسترسی سوپریوزر، می توان پسورد بقیه کاربران ثبت شده روی سیستم را هم عوض کرد (در حالت پسورد فعلی کاربر پرسیده نمی شود)
1 | # passwd USERNAME |
حذف و غیرفعال سازی پسورد برای یک کاربر خاص
1 | # passwd -d USERNAME |
۲۷. دستور mkdir
دستور مثالی زیر یک پوشه به نام temp را در مسیر home سیستم شما ایجاد می کند
1 | $ mkdir ~/temp |
ساخت تو در توی پوشه های مختلف با دستور mkdir (اگر پوشه ای وجود داشته باشد که هیچ، در غیر این صورت به صورت تو در تو پوشه ها ساخته می شوند)
1 | $ mkdir -p dir1/dir2/dir3/dir4/ |
۲۸. دستور whereis
برای پیدا کردن فایل های یک دستور اجرایی یونیکسی/لینوکسی (unix/linux command) از دستور whereis استفاده می کنیم.
برای نمایش مسیر فایل های دستور ls
1 2 | $ whereis ls ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz |
توجه کنید که به صورت پیش فرض، دستور whereis تنها در مسیرهای ثبت شده سیستم (environment path) جستجو می کند (مثلاً /usr/bin). اما اگر بخواهید یک فایل اجرایی را در مسیر دیگری توسط whereis جستجو کنید، باید از آرگومان B- استفاده کنید. به مثال زیر دقت کنید:
1 2 | $ whereis -u -B /tmp -f myssh myssh: /tmp/myssh |
۲۹. دستور whatis
برای دریافت یک توضیح خلاصه و مفید درباره دستورات ترمینال لینوکس، می توان از دستور whatis استفاده کرد.
1 2 3 4 5 | $ whatis ls ls (1) - list directory contents $ whatis ifconfig ifconfig (8) - configure a network interface |
۳۰. دستور wget
استفاده از دستور wget راهی موثر و سریع برای دانلود فایل ها با استفاده از ترمینال لینوکس است.
ما قبلاً در وبسایت اوپن مایند یک مطلب مفصل درباره این دستور تحت عنوان آشنایی با دستور wget منتشر کرده ایم. حتما به آن سری بزنید!
در ادامه هم دو مثال از کاربردهای دستور wget را می بینید.
دانلود یک فایل از آدرس آن (با حفظ نام اصلی فایل)
1 | $ wget "http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz" |
دانلود فایل و ذخیره با نام دلخواه با استفاده از آرگومان O-
1 | $ wget -O list.zip "http://www.vim.org/scripts/download_script.php?src_id=7701" |
ممنونم از مطلب خوبتون. فقط ای کاش awk و chown رو بیشتر توضیح می دادید. در هر حال دمت گرم عالی بود.
خیلی خوب بود! جمع و جور و مرتب! بعضی هاشو بلد نیستم گذاشتم توی لیست پست هایی که باید بخونم تا بعدا سر حوصله اونا رو هم یاد بگیرم.