تاریخچه لینوکس و کدهای دسترسی رایج

تاریخچه Linux چیست؟
عبارت Linux از سال ۱۹۸۴ شناخته شده است. اگر بخواهیم از لحاظ فنی آن را شرح دهیم، میتوان چنین گفت که به تنهایی به عنوان هسته سیستم عامل معرفی می گردد. اما از طرفی برخی نیز می گویند که لینوکس که با نماد پنگوئن شناخته می شود، هم نوعی سیستم عامل مانند ویندوز است. و دسته سوم هم که کلا اعتقاد بر این دارند Linux نام دیگر Ubunto است و این دو یکی هستند.
ما اینجاییم تا به شما بگوییم برنامه لینوکس چیست و چه کاربردی دارد.
سیستم عامل لینوکس چیست؟
در معرفی سیستم عامل لینوکس می توان گفت سیستم عامل لینوکس از قدرتمندترین سیستم عاملهای موجود در بازار است که بصورت متن باز ارائه می گردد. همچنین در بین مهندسان نرمافزار از محبوبیت ویژهای برخوردار است.
برای آشنایی با سیستم عامل لینوکس باید بدانید که سیستم عامل unix ( یونیکس ) در سال ۱۹۷۱ توسط شرکت تلفن و تلگراف آمریکا توسعه و گسترش پیدا کرد. این سیستم عامل گران قیمت بود و همه مردم نمیتوانستند به راحتی از آن استفاده کنند.
بنابراین سیستم لینوکس که بسیار شبیه به یونیکس و از زیر شاخههای آن است، به عنوان جانشین برگزیده شد. در سال ۱۹۹۱ تورالدز لینوکس هسته مرکزی لینوکس را ساخت. سیستم عامل لینوکس توسط کمپانیهای بسیاری پشتیبانی میشود.
کرنل یا هسته لینوکس چیست؟
به طور کلی میتوان گفت هر سیستم عاملی دارای هسته یا کرنل و رابط بین نرم افزار و سخت افزار سیستم است، در واقع میتوان گفت وظیفه انجام کارهای اساسی و پایه برعهده هسته یا کرنل است.
در اصل، لینوکس پایین ترین سطح اجزای نرم افزاری یک سیستم به شمار می رود و اگر این بخش آسیب ببیند بقیه نرم افزارها هم قادر به استفاده نخواهند بود. از وظایف هسته آن است که منابع سیستم را به برنامههای دیگر موجود در سیستم متصل میکند.
منظور از عمومی بودن linux چیست؟
لینوکس یک سیستم عامل عمومی و متن باز است و برنامه نویسان زیادی میتوانند آن را توسعه دهند و نیازهای خود را در حوزههای مختلف برطرف نمایند. در حال حاضر نرم افزارهای بسیار زیادی وجود دارند که از لینوکس به عنوان سیستم عامل زیرساخت استفاده میکنند. هر یک از این نرم افزارها میلیونها کاربر دارند و بسیار مورد توجه هستند.
با برنامه نویسی لینوکس می توان این سیستم عامل را توسعه داد و با زبان های مختلفی مانند python، php و … می توان برنامه نویسی در لینوکس را انجام داد.
کدهای دستوری لینوکس:
در این پست شما را با دستورات کامل لینوکس Centos آشنا خواهیم نمود.
اطلاعات سیستم
دستور | توضیح |
# arch | نمایش معماری سیستم |
# cal 2007 | نمایش تقویم سال ۲۰۰۷ میلادی |
# cat /proc/cpuinfo | نمایش اطلاعات CPU |
# cat /proc/interrupts | نمایش ‘خطوط در خواست وقفه’ ( IRQ ) سخت افزار های مختلف |
# cat /proc/meminfo | نمایش اطلاعات حافظه ی سیستم |
# cat /proc/swaps | نمایش اطلاعات حافظه ی مجازی |
# cat /proc/version | نمایش نام توزیع و نسخه ی هسته ی استفاده شده در سیستم |
# cat /proc/net/dev | نمایش آمار و اطلاعات کارت های شبکه و وایرلس |
# cat /proc/mounts | نمایش فایل سیستم های متصل شده به سیستم |
# clock -w | ذخیره ی تغییرات تاریخ بروی بایوس |
# date | نمایش تاریخ سیستم |
# date 041217002007.00 | تنظیم تاریخ سیستم – به ترتیب از چپ به راست : ماه , روز , ساعت , دقیقه , سال , ثانیه |
# dmidecode -q | نمایش بسیار کامل اجزای سخت افزاری سیستم |
# hdparm -i /dev/hda | نمایش مشخصات و ویژگی های دیسک سخت |
# hdparm -tT /dev/sda | انجام آزمایش ‘خواندن’ بروی دیسک سخت و تعیین سرعت آن |
# lspci -tv | نمایش قطعات و دستگاههای متصل شده به پورت PCI |
# lsusb -tv | نمایش قطعات و دستگاههای متصل شده به پورت USB |
# uname -m | نمایش معماری سیستم |
# uname -r | نمایش نسخه ی هسته ی استفاده شده در سیستم |
خاموش کردن, راه اندازی مجدد و خروج یک سیستم
دستور | توضیح |
# init 0 | این دستور برای خاموش کردن سیستم به کار می رود |
# logout | خارج شدن از سیستم و رفتن به صفحه ی ورود مجدد ( Login ) |
# reboot | این دستور برای راه اندازی مجدد ( restart ) سیستم به کار می رود |
# shutdown -h now | این دستور برای خاموش کردن سیستم به کار می رود |
# shutdown -h 16:30 & | خاموش کردن سیستم در ساعت و دقیقه ی معین |
# shutdown -c | لغو کردن ( cancel ) خاموش شدن سیستم در زمان معین |
# shutdown -r now | این دستور برای راه اندازی مجدد ( restart ) سیستم به کار می رود |
# telinit 0 | این دستور برای خاموش کردن سیستم به کار می رود |
فایل ها و دایرکتوری ها
دستور | توضیح |
# cd /home | ورود به دایرکتوری یا شاخه ی مورد نظر مانند پوشه ی خانگی ( home ) |
# cd .. | برگشتن به دایرکتوری قبلی |
# cd ../.. | برگشتن به دو دایرکتوری قبلی |
# cd | رفتن به پوشه ی خانگی ( home ) از هر مسیر دلخواه |
# cd ~user1 | رفتن به پوشه ی خانگی کاربر مورد نظر از هر مسیر دلخواه |
# cd – | برگشتن به آخرین دایرکتوری ( مسیر ) که در آن بوده اید |
# cp file1 file2 | کپی کردن یک فایل با نام file1 به مسیر مورد نظر |
# cp dir/* . | کپی کردن تمام فایل های موجود در دایرکتوری مورد نظر به مسیر جاری که در آن هستید |
# cp -a /tmp/dir1 . | کپی کردن دایرکتوری مورد نظر به مسیر جاری که در آن هستید |
# cp -a dir1 dir2 | کپی دایرکتوری مبدا ( dir1 ) به دایرکتوری مقصد ( dir2 ). به جای dir1 و dir2 مسیر کامل دایرکتوری های مبدا و مقصد را قرار دهید |
# cp file file1 | نمایش نوع و ماهیت یک فایل به همراه مشخصات آن. به جای file1 مسیر فایل مورد نظر را قرار دهید |
# iconv -l | نمایش لیست سیستم های کد گذاری |
# iconv -f fromEncoding -t toEncoding inputFile > outputFile | تبدیل سیستم کدگذاری ( encoding ) یک فایل ورودی به یک سیستم کدگذاری دیگر |
# find . -maxdepth 1 -name *.jpg -print -exec convert | تغییر اندازه ی دسته ای فایل ها در دایرکتوری جاری و ارسال آنها به یک دایرکتوری thumbnails ( به برنامه convert از Imagemagick نیاز می باشد ) |
# ln -s file1 lnk1 | ایجاد لینک نمادین ( میانبر ) به فایل یا دایرکتوری دلخواه. به جای file1 مسیر فایل یا دایرکتوری مورد نظر و به جای lnk1 مسیر دایرکتوری که قرار است فایل یا دایرکتوری میانبر در آن ایجاد شود را قرار دهید |
# ln file1 lnk1 | ایجاد لینک فیزیکی به یک فایل یا دایرکتوری ( در واقع همان عمل کپی می باشد ) |
# ls | نمایش فایل ها و دایرکتوری های موجود در دایرکتوری جاری |
# ls -F | نمایش فایل ها و دایرکتوری های موجود در دایرکتوری جاری |
# ls -l | نمایش جزئیات فایل ها و دایرکتوری های موجود در دایرکتوری جاری |
# ls -a | نمایش فایل ها و دایرکتوری های موجود و همچنین فایل های مخفی در دایرکتوری جاری |
# ls *[0-9]* | نمایش فایل ها و دایرکتوری هایی که اسم آنها شامل اعداد است |
# lstree | نمایش تمام فایل ها و دایرکتوری های یک شاخه |
# mkdir dir1 | ایجاد یک دایرکتوری با نام dir1 در مسیر مورد نظر |
# mkdir dir1 dir2 | ایجاد دو دایرکتوری همزمان در مسیر مورد نظر |
# mkdir -p /tmp/dir1/dir2 | ایجاد یک شاخه ی دایرکتوری با شروع از root |
# mv dir1 new_dir | تغییر نام یا جا به جا کردن ( move ) یک فایل یا دایرکتوری |
# pwd | نشان دادن مسیر دایرکتوری جاری |
# rm -f file1 | پاک کردن یک فایل با نام file1 |
# rm -rf dir1 | پاک کردن یک دایرکتوری با نام dir1 و محتویات آن به صورت بازگشتی |
# rm -rf dir1 dir2 | پاک کردن دو دایرکتوری در مسیر مورد نظر و محتویات آنها به صورت بازگشتی |
# rmdir dir1 | پاک کردن یک دایرکتوری با نام dir1 |
# touch -t 0712250000 file1 | تغییر تاریخ ویرایش یا تغییر یک فایل یا دایرکتوری. به جای file1 مسیر فایل یا دایرکتوری مورد نظر را قرار دهید |
# tree | نمایش تمام فایل ها و دایرکتوری های یک شاخه |
جستجوی فایل
دستور | توضیح |
# find / -name file1 | جستجوی فایل و دایرکتوری در داخل پارتیشن لینوکس ( root ) |
# find / -user user1 | جستجوی فایل و دایرکتوری متعلق به user1 |
# find /home/user1 -name \*.bin | جستجوی فایل های با پسوند bin در داخل دایرکتوری home/user1 |
# find /usr/bin -type f -atime +100 | جستجوی فایل های باینری که در ۱۰۰ روز گذشته استفاده نشده اند |
# find /usr/bin -type f -mtime -10 | جستجوی فایل های ایجاد شده با تغییر کرده در طول ۱۰ روز گذشته |
# find / -name *.rpm -exec chmod 755 ‘{}’ \; | جستجوی فایل های با پسوند rpm و تغییر مجوز آنها ! |
# find / -xdev -name \*.rpm | جستجوی فایل های با پسوند rpm بدون جستجو در پارتیشن های جداشدنی مانند سی دی رام , حافظه فلش و … |
# locate \*.ps | جستجو فایل های با پسوند ps – ابتدا دستور updatedb اجرا می شود |
# whereis halt | نمایش مکان یک فایل باینری , سورس یا مستندات |
# which halt | نمایش مسیر کامل یک فایل باینری یا اجرایی |
نصب و استقرار یک فایل سیستم
دستور | توضیح |
# fuser -km /mnt/hda2 | مجبور کردن پارتیشن hda2 برای خارج شدن ( unmount ) از مسیر mnt/hda2 |
# mount /dev/hda2 /mnt/hda2 | استقرار ( mount ) پارتیشن با نام hda2 در مسیر mnt/hda2 برای دیدن محتویات آن پارتیشن |
# mount /dev/fd0 /mnt/floppy | استقرار ( mount ) یک فلاپی دیسک |
# mount /dev/cdrom /mnt/cdrom | استقرار ( mount ) یک سی دی رام یا دی وی دی رام |
# mount /dev/hdc /mnt/cdrecorder | استقرار ( mount ) یک سی دی رایتر یا دی وی دی رام |
# mount /dev/hdb /mnt/cdrecorder | استقرار ( mount ) یک سی دی رایتر یا دی وی دی رام |
# mount -o loop file.iso /mnt/cdrom | استقرار ( mount ) یک فایل ایمیج ( iso ) در مسیر مورد نظر |
# mount -t vfat /dev/hda5 /mnt/hda5 | استقرار ( mount ) یک پارتیشن با فرمت FAT32 در مسیر مورد نظر |
# mount /dev/sda1 /mnt/usbdisk | استقرار ( mount ) یک حافظه فلش |
# mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share | استقرار ( mount ) یک دایرکتوری به اشتراک گذاشته شده در شبکه ی سمبا ( samba ) در مسیر mnt/share |
# umount /dev/hda2 | خارج کردن پارتیشن با نام hda2 از مسیر mnt/hda2 |
# umount -n /mnt/hda2 | اجرای عمل خارج کردن پارتیشن ( unmount ) بدون بازنویسی فایل etc/mtab |
فضای دیسک سخت
دستور | توضیح |
# df -h | نمایش لیست پارتیشن های مانت ( mount ) شده |
# dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n | نمايانگر فضاي اشغال شده توسط بستههاي نسب شدهي deb كه به ترتيب حجم فايل مرتب شدهاند ( براي debian, ubuntu و غيره) |
# du -sh dir1 | نمایش حجم استفاده شده توسط یک دایرکتوری با نام dir1 |
# du -sk * | sort -rn | نمایش حجم فایل ها و دایرکتوری ها که بر اساس حجم مرتب شده اند |
# ls -lSr |more | نمایش مشخصات کامل فایل ها و دایرکتوری ها که بر اساس حجم مرتب شده اند |
# rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n | نمایش فضای استفاده شده توسط بسته های نصب شده ی rpm که بر اساس حجم مرتب شده اند |
کاربرها و گروه ها
دستور | توضیح |
# chage -E 2005-12-31 user1 | تعیین محدودیت زمانی برای پسورد کاربر user1 |
# groupadd [group] | ایجاد یک گروه جدید |
# groupdel [group] | حذف یک گروه |
# groupmod -n moon sun | تغییر نام یک گروه از moon به sun |
# grpck | کنترل و بررسی گرامر و فرمت صحیح فایل etc/group و موجود بودن گروه ها |
# newgrp – [group] | وارد شدن به یک گروه جدید و تغییر گروه پیش فرض فایل های ایجاد شده ی جدید |
# passwd | تغییر پسورد کاربر ریشه ( root ) |
# passwd user1 | تغییر پسورد کاربر با نام user1 |
# pwck | کنترل و بررسی گرامر و فرمت صحیح فایل etc/passwd و موجود بودن کاربران [<a title=”کسب اطلاعات بیشتر درباره این دستور از مستنداتآیا این پاسخ مفید بود؟ |