ترمینال لینوکس یکی از دوست داشتی ترین محیط هایی ست که صاحبان سرور علاقه مندند با آن کار کنند . در ادامه کارهای شگفت انگیزی که در این محیط می توانید انجام دهید را خواهید دید. با دستورات لینوکس بیشتر آشنا شوید.
انواع دستورات لینوکس
در ادامه به معرفی رایج ترین و پرکاربردترین دستورات لینوکس می پردازیم.
1-جستجوی فایل
از پرکاربردترین دستورات لینوکس کدهای مربوط به جستجوی یک فایل است.
Searching for certain files are inevitable for admins. find /home -type f -name "*.conf"
استفاده از دستور locate که ساده ترین و بهترین راه و از معروف ترین دستورات لینوکس است:
sudo updatedb locate mickey.cpp
در میان انواع دستورات لینوکس کدهای مربوط به جستجوی فایل نیز وجود دارد. جستجوی فایل با دستور grep
$ cat /etc/ hosts | grep -i "localhost"
برای لیست کردن فایل هایی که حجمشان بیشتر از 500mb هست از دستور زیر استفاده کنید .
find /home/ -type f -size +500M -exec ls -lh {} \;
2-زیپ کردن و از زیپ خارج کردن
شما با دستور زیر به سادگی میتوانید فایل های با پسوند .tar.gz و .bz2. را فشرده سازی کنید یا از از حالت فشرده خارج کنید . لطفا به این نکته توجه کنید که فایل های bz2 با استفاده از “j” flag مدت بیشتری زمان نیاز خواهد داشت .
tar cvfj example.tar.bz2 /home/example (create .bz2 using j flag) tar cvzf example.tar.gz /home/images (create .tar.gz using z flag) tar -xzf example.tar.gz -C /home/justin (extract .tar.gz using x and z flag) tar -xjf example.bz2 -C /home/melissa (extract .bz2 using x and j flag)
3- پاکسازی فایل ها
شما می توانید فایل هایتان را با استفاده از دستورات sed ، tr و awk پاکسازی کنید (بسیار سریع تر از نوشتن یک اسکریپت).
دستور tr تمام حروف الفبا ، اعداد و کاراکتر ها ی خاص را از فایل های ورودی پاکسازی میکند .
tr -c "A-Za-z0-9@-._ \n" " " < input.txt > output.txt
دستور زیر حروف بزرگ را به کوچک ترجمه خواهد کرد
tr '[:upper:]' '[:lower:]' < rawfiltered.txt > data.txt
دستور sed برای جایگزینی یک رشته یا کلمه در فایل به کار می رود .
sed 's/unix/linux/g' myfile.txt
دستور زیر خطوط خالی را در فایل حذف می کند .
sed '/^$/d' input.txt > output.txt
همچنین می توانید از sort استفاده کنید تا محتویات را در یک فایل مرتب کنید، این دستور می تواند با sed هم ادغام شود.
sort data.txt > output.txt
4-امنیت
یکی دیگر از انواع دستورات لینوکس netstat است. این دستور برای بررسی اتصالات آی پی های یکسان از پورت 80 برای چندین حمله ی دیداس می باشد .
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 netstat -apn | grep ":80"
و هم چنین کد زیر فرایند های http را بررسی می کند .
netstat -n | grep :80 |wc -l
5-ارور های هارد درایو
با استفاده از smartctl میتوانید مشکلات هارد درایو را جستجو کنید .
$ smartctl -q errorsonly -H -l selftest -l error /dev/sda Warning: ATA error count 17 inconsistent with error log pointer 1 ATA Error Count: 17 (device log contains only the most recent five errors) Error 17 occurred at disk power-on lifetime: 47355 hours (1973 days + 3 hours) Error 16 occurred at disk power-on lifetime: 47355 hours (1973 days + 3 hours) Error 15 occurred at disk power-on lifetime: 47355 hours (1973 days + 3 hours) Error 14 occurred at disk power-on lifetime: 47355 hours (1973 days + 3 hours) Error 13 occurred at disk power-on lifetime: 47355 hours (1973 days + 3 hours)
هم چنین می توانید از iostat برای مانیتور کردن کارایی هارد محلی و دیسک های راه دور استفاده کنید
# iostat Linux 2.6.18-308.1.1.el5 (server1.example.com) 02/24/2016 avg-cpu: %user %nice %system %iowait %steal %idle 2.72 0.05 1.11 0.22 0.00 95.89
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 10.71 390.59 208.68 301731339 161206205 sda1 0.00 0.27 0.00 210670 4 sda2 4.81 112.90 94.88 87211079 73297681 sda3 2.23 67.60 37.70 52217183 29124792 sda4 0.00 0.00 0.00 134 0 sda5 1.02 29.13 42.69 22504042 32978328 sda6 0.04 5.43 0.00 4195402 1200 sda7 2.45 175.25 29.83 135379849 23041280 sda8 0.16 0.02 3.58 12282 2762920
6- بکاپ و ریستور کردن در سی پنل
با استفاده از دستور زیر می توانید از یک اکانت در سی پنل بکاپ گیری کنید یا یک بکاپ را ریستور کنید . اینگونه دستورات لینوکس باعث صرفه جویی در زمان می شوند.
/scripts/pkgacct username /scripts/restoracct username
7-انتقال فایل راه دور
با استفاده از دستور زیر می توانید از یک هاست به هاست دیگری اطلاعات را منتقل کنید .
scp /home/file.tar.gz user@host.example.com:21Feb16/
8-بارگزاری های سرور
از جمله دستورات لینوکس برای بررسی لود یوزرها ، میزان استفاده از سی پی یو و لود سرور میتوانید از دستورات زیر استفاده کنید .
$ uptime 19:07 up 29 mins, 2 users, load averages: 0.48 0.59 0.55
$ w 18:27 up 2:08, 2 users, load averages: 1.25 1.53 1.44 USER TTY FROM LOGIN@ IDLE WHAT prabhubalakrishnan console - 16:20 2:06 - prabhubalakrishnan s000 - 17:21 - w
$ iostat disk0 cpu load average KB/t tps MB/s us sy id 1m 5m 15m 51.45 12 0.60 4 1 94 1.06 1.42 1.40
برای بررسی فرآیندهای در حال اجرا و برای بررسی اینکه آیا هر پردازش حافظه بیش از حد حجم پردازنده را می گیرد می توانید از دستور زیر استفاده کنید .
$ ps aux | more
9-فضای خالی دیسک
ابتدا با دستور زیر فضای دیسک را چک کنید. این یکی از پرکاربردترین دستورات لینوکس است.
# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda5 9.7G 533M 8.7G 6% / /dev/sda8 996M 34M 911M 4% /tmp /dev/sda7 194G 4.2G 180G 3% /home /dev/sda3 9.7G 2.1G 7.2G 23% /var /dev/sda2 9.7G 6.0G 3.2G 66% /usr /dev/sda1 99M 17M 77M 18% /boot tmpfs 1014M 0 1014M 0% /dev/shm
سپس فایل های بزرگتر از 100 mb را جستجو کنید.
find /var/www/ -size +100000000c | more
10-تنظیمات DNS
با استفاده از دستور زیر میتوانید تنظیمات صحیح DNS را بررسی کنید .(A و AAA ipv6)
dig example.com host -t A example.com (ipv4) host -t AAAA example.com (ipv6)
11- ردیابی مسیر شبکه
Traceroute یک ابزار بسیار مفید برای رفع مشکلات مسیر شبکه است. این ابزار مسیر انتقال را در سراسر شبکه ها برای قاره های مختلف نشان می دهد.
$ traceroute example.com
traceroute to example.com (93.184.216.34), 64 hops max, 52 byte packets 1 192.168.0.1 (192.168.0.1) 1.267 ms 1.601 ms 1.009 ms 2 10.23.240.1 (10.23.240.1) 7.628 ms 15.619 ms 11.351 ms 3 113.193.5.169 (113.193.5.169) 9.953 ms 19.261 ms 8.973 ms 4 59.163.111.81.static-chennai.vsnl.net.in (59.163.111.81) 9.017 ms 13.421 ms 9.451 ms 5 172.25.81.134 (172.25.81.134) 56.100 ms 59.540 ms 172.31.29.245 (172.31.29.245) 52.476 ms 6 ix-0-100.tcore1.mlv-mumbai.as6453.net (180.87.38.5) 69.474 ms 67.030 ms 47.591 ms 7 if-9-5.tcore1.wyn-marseille.as6453.net (80.231.217.17) 157.941 ms 153.891 ms 159.319 ms 8 if-8-1600.tcore1.pye-paris.as6453.net (80.231.217.6) 164.418 ms 170.447 ms 159.127 ms 9 if-2-2.tcore1.pvu-paris.as6453.net (80.231.154.17) 183.550 ms 158.083 ms 166.330 ms 10 ae-7.r04.parsfr01.fr.bb.gin.ntt.net (129.250.8.1) 165.362 ms 171.770 ms 167.023 ms 11 ae-8.r23.londen03.uk.bb.gin.ntt.net (129.250.6.206) 162.218 ms 164.905 ms 165.397 ms 12 ae-0.r22.londen03.uk.bb.gin.ntt.net (129.250.4.85) 168.716 ms 176.386 ms 173.211 ms 13 ae-5.r24.nycmny01.us.bb.gin.ntt.net (129.250.2.18) 262.749 ms 305.414 ms 307.083 ms 14 ae-1.r07.nycmny01.us.bb.gin.ntt.net (129.250.3.181) 307.158 ms 306.288 ms 307.215 ms 15 ae-0.edgecast.nycmny01.us.bb.gin.ntt.net (129.250.196.174) 308.608 ms 302.816 ms 307.224 ms 16 93.184.216.34 (93.184.216.34) 306.972 ms 243.375 ms 261.559 ms
12-Bootable drive
شما می توانید یک درایو قابل بوت USB از ISO دلخواهتان را با یک تک دستور در ترمینال ایجاد کنید.
$ dd if=/home/user/Downloads/ubuntu.iso of=/dev/sdb1 bs=512M; sync
13-MySQL database
شما می توانید با پایگاه داده های MySQL با استفاده از خط فرمان به طور مستقیم ارتباط برقرار کنید و آنها را مدیریت کنید، روشی ساده تر از این برای مدیریت پایگاه داده ها وجود ندارد . شما به phpmyadmin نیاز ندارید .:)
mysql -u root -p create database mydatabase; create user 'myuser'@'localhost' identified by 'password'; grant all previleges on * . * to 'newuser'@'localhost'; Flush previleges
این روش در شرایطی که میخواهید بدون هیچ نرم افزار اضافی و با سرعت بالا ، CMS نصب کنید یا اینکه یک دیتابیس بسازید .
14-Mass Deletion یا حذف جمعی
برای حذف تمام فایل ها میتوانید از r(recursive) و f (force) استفاده کنید ، پس دستور rf.
rm -Rf /home/temp *.tar.gz
لطفا از این دستور با دقت استفاده کنید زیرا تمام فایل ها و پوشه ها را بدون هیچگونه هشداری حذف می کند .
شما می توانید تمام فایل های موجود در پارتیشن را با استفاده از دستور زیر بازیابی کنید :
extundelete utility for ext3/ext4 file systems
$ extundelete /dev/sda4 --restore-all
این دستور همه ی فایل ها را در پارتیشن بازیابی می کند .
15- نصب ابزار های توسعه
قبل از اینکه هر پکیج یا نرم افزاری را کامپایل کنید ، باید اطمینان حاصل کنید که سرورتان با GNU c/c++ و کتابخانه های توسعه ای آماده شده باشد .
yum groupinstall "Development Tools"
16- تاریخچه ی دستورات
گاهی اوقات شما میخواهید تاریخچه ی دستوراتتان را مشاهده کنید . برای اینکار تنها یک دستور ساده نیاز است .
$ history 3 sed -f <(sed 's/.*/s|\\b&\\b||g/' stopwords.txt) rawfiltered.txt > data.txt 4 sed -f -i <(sed 's/.*/s|\\b&\\b||g/' stopwords.txt) rawfiltered.txt > data.txt 5 sed -fi <(sed 's/.*/s|\\b&\\b||g/' stopwords.txt) rawfiltered.txt > data.txt 6 sed -i <(sed 's/.*/s|\\b&\\b||g/' stopwords.txt) rawfiltered.txt > data.txt 7 tr -s '[:blank:]' '\n' < rawfiltered.txt | fgrep -vwf stopwords.txt > data.txt 8 sed -e -f rawfiltered.txt stopwords.txt > data.txt 9 sed -ef rawfiltered.txt stopwords.txt > data.txt
17-Dropbox
شما میتوانید در ترمینال لینوکس dropbox را نصب کنید .
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf - ~/.dropbox-dist/dropboxd
18-اسکرین شات گرفتن از سرور
با استفاده از دستور زیر میتوانید اسکرین شاتی از سرور بگیرید ، گرچه شما این عملیات را مشاهده نمیکنید و فقط تصویر اسکرین شات بصورت محلی ذخیره می شود .
./screenshot.sh urls.txt
19- تبدیل تصویر
شما می توانید تغییر اندازه، تبدیل تصاویر به فرمت های مختلف با استفاده از ابزار تبدیل imagemagick انجام دهید . ویژگی های دیگر شامل blur، threshold، morphology و tonnes از جمله چیزهایی ست که با این ابزار انجام می شود .
convert rose.jpg -resize 50% rose.png convert dragon.gif -resize 64x64 resize_dragon.gif
هم چنین با استفاده از دستور زیر میتوانید تصاویر را به pdf تبدیل کنید .
convert -density 300 -trim example.pdf -quality 100 pdf.jpg
با استفاده از دستور زیر میتوان دسته ای از تصاویر را به PDF تبئیل کنید .
convert *.JPG output.pdf
20-Cron Jobs
شما می توانید اسکریپت های خاصی را به صورت روزانه یا هفتگی یا در روزهای خاص با استفاده از CRON اجرا کنید. اگر شما ترافیک بالایی در سرور دارید ، می توانید به طور خودکار زمانی که در طول روزهای کم ترافیک مثل روزهای تعطیل هستید، به طور خودکار چنین چیزی را برنامه ریزی کنید.
فایل cron را ویرایش کرده و دستور زیر را جایگزاری کنید :
$crontab -e
فرمت به شکل زیر است :
a b c d e /home/backup.sh
a: Minute (0-59)
b: Hours (0-23)
c: Day (0-31)
d: Month (0-12)
e: Day of the week(0-7 starts Sunday as 0)
* denotes every day
اسکریپت زیر بصورت روزانه ساعت 12:00 AM آغاز می شود
0 24 * * * /scripts/shell.py
اسکریپت زیر هر یکشنبه راس ساعت 5 اغاز می شود
0 5 * * 0 /scripts/backups.php
21-تبدیل داکیومنت به پی دی اف
شما می توانید استاد را به پی دی اف تبدیل کنید با استفاده از
sudo apt-get install wv tetex-extra ghostscript wvPDF test.doc test.pdf
یا با استفاده از ابزار cups pdf میتوانید اینکار را انجام دهید
sudo apt-get install cups-pdf oowriter -pt pdf your_word_file.doc
امیدواریم از آموزش دستورات لینوکس راضی بوده باشید. موفق باشید.