PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مهمترین دستورات لینوکس برای آزمایشگاه سیستم عامل(پرکاربرد ترین دستورات کاربردی ترمینال لینوکس )



Borna66
05-29-2012, 11:05 PM
بدون شک قدرتمند ترین بخش سیستم عامل گنو لینوکس رابط خط فرمان ( CLI ) است. خیلی از کارها فقط از طریق خط فرمان قابل انجام هست و همچنین خیلی از اقدامات از طریق آن سریع تر انجام می شود. بنابراین لازم است که توجه ویژه ای به این بخش داشته باشیم. در این ارتباط سایت linuxcmd.org (http://www.linuxcmd.org) یک از دهها منبع کامل و جامع برای دستورات خط فرمان لینوکس است. در این راهنما که بخش اول آن را مطالعه می کنید قصد دارم بیشتر دستورات اشاره شده در این سایت را با توضیح فارسی مختصر بیان کنم.

قبل از اینکه به اصل موضوع بپردازیم چند نکته را باید بیان کنم. نکته اول اینکه الزاما تمام دستوراتی که اشاره خواهند شد به صورت پیش فرض در تمام توزیع های لینوکس وجود ندارند. بنابراین ممکن است بعضی از دستورات در بعضی از توزیع ها اجرا نشوند. نکته دوم اینکه با اجرای man قبل از دستور مورد نظر ( به عنوان مثال man ls ) , راهنمای کاملی از آن دستور را مشاهده خواهید کرد. همچنین میتوانید با استفاده از دستور زیر یک نسخه ی pdf از مستندات دستور مورد نظرتان را تهیه کنید.
$ man -t command | ps2pdf - > /home/<UserName>/man.pdf
به جای command نام دستور مورد نظر را قرار دهید.
و نکته ی سوم اینکه بعضی از دستورات را باید با کاربر ریشه ( root ) اجرا کنید. برای این کار باید از دستور sudo یا su به شکل زیر استفاده کنید:


$ su
< Enter Root Password >
# hdparm -tT /dev/sda
$ sudo hdparm -tT /dev/sda


توجه داشته باشید که برای اجرای بعضی دستورات باید سطح دسترسی بالا داشته باشید و یا باید آنها را مطابق نیازتان تغییر دهید

Borna66
05-29-2012, 11:06 PM
تبدیل دستورالعمل یک برنامه به pdf

man -t man | ps2pdf - > man.pdf
نمایش نام کامل مسیر اجرای یک برنامه

which command
نمایش زمان اجرای یک دستور

time command
شروع به کار کرونومتر ، برای توقف CTRL+D را فشار دهید

time cat
اجرای یک دستور با درجه اهمیت پایین ، به جای info دستور خود را قرار دهید

nice info
رفتن به شاخه قبلی

cd -
رفتن به شاخه خانه (Home)

cd
ورود به دایرکتوری یا شاخه ی مورد نظر مانند پوشه ی خانگی ( home )

cd /home
برگشتن به دایرکتوری قبلی
cd ..
برگشتن به دو دایرکتوری قبلی
cd ../..

رفتن به پوشه ی خانگی کاربر مورد نظر از هر مسیر دلخواه
cd ~user1

نمایش فایل ها و دایرکتوری های موجود در دایرکتوری جاری
ls
ls -F
همانند دو دستور قبلی با این تفاوت که فایل های مخفی نیز نمایش داده می شود
ls -a
نمایش جزئیات فایل ها و دایرکتوری های موجود در دایرکتوری جاری
ls -l
نمایش فایل ها و دایرکتوری هایی که اسم آنها شامل اعداد است
ls *[0-9]*
نمایش تمام فایل ها و دایرکتوری های یک شاخه
tree
lstree
ایجاد یک دایرکتوری با نام dir1 در مسیر مورد نظر
mkdir dir1
ایجاد دو دایرکتوری همزمان در مسیر مورد نظر
mkdir dir1 dir2
ایجاد یک شاخه ی دایرکتوری با شروع از root
mkdir -p /tmp/dir1/dir2
پاک کردن یک فایل با نام file1
rm -f file1
پاک کردن یک دایرکتوری با نام dir1
rmdir dir1
پاک کردن یک دایرکتوری با نام dir1 و محتویات آن به صورت بازگشتی
rm -rf dir1
پاک کردن دو دایرکتوری در مسیر مورد نظر و محتویات آنها به صورت بازگشتی
rm -rf dir1 dir2
تغییر نام یا جا به جا کردن ( move ) یک فایل یا دایرکتوری
mv dir1 new_dir
کپی کردن یک فایل با نام file1 به مسیر مورد نظر
cp /home/file1 /media/sda5
کپی کردن تمام فایل های موجود در دایرکتوری مورد نظر ( در این مثال دایرکتوری Videos ) به مسیر جاری که در آن هستید
cp /media/sda5/Videos/* .
کپی کردن دایرکتوری مورد نظر ( در این مثال دایرکتوری Videos ) به مسیر جاری که در آن هستید
cp -a /media/sda5/Videos .
کپی دایرکتوری مقصد ( dir1 ) به دایرکتوری مبدا ( dir2 ). به جای dir1 و dir2 مسیر کامل دایرکتوری های مقصد و مبدا را قرار دهید
cp -a dir1 dir2
ایجاد لینک نمادین ( میانبر ) به فایل یا دایرکتوری دلخواه. به جای file1 مسیر فایل یا دایرکتوری مورد نظر و به جای lnk1 مسیر دایرکتوری که قرار است فایل یا دایرکتوری میانبر در آن ایجاد شود را قرار دهید
ln -s file1 lnk1
تغییر تاریخ ویرایش یا تغییر یک فایل یا دایرکتوری. به جای file1 مسیر فایل یا دایرکتوری مورد نظر را قرار دهید
touch -t YYMMDDhhmm file1
نمایش نوع و ماهیت یک فایل به همراه مشخصات آن. به جای file1 مسیر فایل مورد نظر را قرار دهید
file file1
به شاخه dir برو و دستور مورد نظر (command) رو اجرا کن

(cd dir && command)
شاخه جاری را در استک قرار بده تا بتوانید بعدآ با popd به آن رجوع کنید
pushd .
لیست کردن فایل های مسیر جاری به ترتیب تاریخ ایجادشان
ls -lrt
لیست کردن فایل های مسیر وارد شده در 9 ستون از ترمینال
ls /usr/bin | pr -T9 -W$COLUMNS
جستجو ‘example’ در تمام فایل های مسیر جاری و شاخه ها
find -type f -print0 | xargs -r0 grep -F 'example'
جستجو ‘example’ در تمام فایل های مسیر جاری
find -maxdepth 1 -type f | xargs grep -F 'example'
اجرای هر آیتم به تعداد معین

find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; done
نمایش فایل هایی که توسط تمام کاربران قابل دیدن نیستند
find -type f ! -perm -444
نمایش شاخه هایی که توسط تمام کاربران قابل دسترسی نیستند
find -type d ! -perm -111
جستجو سریع دیکشنری برای پیشنود مورد نظر
look reference
مشخص کردن عباراتی که لغت مورد نظر در آن وجود دارد
grep --color reference /usr/share/dict/words
encrypt کردن فایل
gpg -c file
decrypt کردن فایل
gpg file.gpg
ایجاد فایل فشرده آرشیو از شاخه مورد نظر
tar -c dir/ | bzip2 > dir.tar.bz2
استخراج کردن فایل – از gzip به جای bzip2 برای استخراج کردن فایل tar.gz استفاده کنید
bzip2 -dc dir.tar.bz2 | tar -x
ایجاد فایل آرشیو encrypt شده از مسیر مورد نظر در کامپیوتری دیگر
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
ایجاد فایل آرشیو از شاخه مورد نظر و زیر مجموعه هایش

find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2
ایجاد یک کپی از مسیر مورد نظر و زیر مجموعه هایش

find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parents
گرفتن پشتیبان از هاردتان بر روی یک کامپیوتر دیگر

dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'
ذخیره یک نسخه قابل اجرا از صفحه سایت مورد نظرتان در شاخه جاری

(cd dir/ && wget -nd -pHEKk Linux Commands - A practical reference (http://www.pixelbeat.org/cmdline.html))

ادامه دادن دانلود فایلی که بصورت نیمه کاره رها شده

wget -c IANA &mdash; Example domains (http://www.example.com/large.file)
دانلود دسته ای از فایل ها در مسیر جاری

wget -r -nd -np -l1 -A '*.jpg' IANA &mdash; Example domains (http://www.example.com/dir/)
دانلود url مورد نظر در ساعت 1 صبح در مسیر جاری

echo 'wget url' | at 01:00

دانلود با درجه اهمیت پایین و سرعتی که به 20K محدود شده
wget --limit-rate=20k url
بررسی لینک های یک فایل

wget -nv --spider --force-html -i bookmarks.html
نمایش نسخه کرنل و معماری سیستم

uname -a
نمایش نام و نسخه توزیعی که استفاده می کنید
head -n1 /etc/issue
نمایش تمام پارتیشن هایی که در سیستم شما ثبت شده اند

cat /proc/partitions
نمایش حجم RAM شما که توسط سیستم شناسایی شده

grep MemTotal /proc/meminfo
نمایش اطلاعات CPU

grep "model name" /proc/cpuinfo
نمایش اطلاعات PCI

lspci -tv
نمایش اطلاعات USB

lsusb -tv
نمایش فایل های MOUNT شده در سیستم و چینش آنها بصورت ستونی
mount | column -t
نمایش وضعیت سلول های باتری لپتاپ

grep -F capacity: /proc/acpi/battery/BAT0/info
نمایش اطلاعات دیسک
hdparm -i /dev/sda
تست سرعت خواندن اطلاعات از دیسک

hdparm -tT /dev/sda
تست برای پیدا کردن بلاک های غیر قابل خواندن

badblocks -s /dev/sda
نمایش وضعیت ethernet interface eth0

sudo apt-get install ethtool
تنظیم دستی سرعت ethernet interface

ethtool --change eth0 autoneg off speed 100 duplex full
نمایش وضعیت wireless interface eth1

iwconfig eth1
تنظیم دستی سرعت wireless interface

iwconfig eth1 rate 1Mb/s fixed
لیست کردن شبکه های بیسیم موجود

iwlist scan
لیست کردن interface های شبکه

ip link show
تغییر نام interface eth0 به wan

ip link set dev eth0 name wan
لیست کردن ip های interface ها

ip addr show
افزودن ip و mask

ip addr add 1.2.3.4/24 brd + dev eth0
نمایش جدول routing

ip route show
تنظیم کردن default gateway به 1.2.3.254

ip route add default via 1.2.3.254
پیدا کردن DNS ip address و یا بالعکس

host pixelbeat.org
پیدا کردن local ip address

hostname -i
نمایش whois برای آدرس سایت و یا ip

whois pixelbeat.org
لیست کردن سرویس های اینترنتی یک سیستم

netstat -tupl
لیست کردن اتصالات ورودی و خروجی

netstat -tup
جستجوی فایل

find / -name file1
جستجوی فایل و دایرکتوری در داخل پارتیشن لینوکس ( root )
find / -user user1
نمایش فایل و دایرکتوری های متعلق به user1
find /home/user1 -name *.bin
جستجوی فایل های با پسوند bin در داخل دایرکتوری home/user1/
find /usr/bin -type f -atime +100

نمایش فایل هایی از دایرکتوری bin که در ۱۰۰ روز گذشته استفاده نشده اند
find /usr/bin -type f -mtime -10
نمایش فایل های ایجاد شده با تغییر کرده در طول ۱۰ روز گذشته در دایرکتوری bin
find / -name *.rpm -exec chmod 755 ‘{}’ ;

جستجوی فایل های با پسوند rpm و تغییر مجوز آنها !
find / -xdev -name *.rpm
جستجوی فایل های با پسوند rpm بدون جستجو در پارتیشن های removable مانند سی دی رام , حافظه فلش و …
locate *.ps
نمایش فایل های با پسوند ps
whereis halt
نمایش مکان یک فایل اجرایی , سورس یا مستندات
which halt
نمایش مسیر کامل یک فایل باینری یا اجرایی استقرار ( mount ) یک فایل سیستم

fuser -km /mnt/sda2
مجبور کردن پارتیشن sda2 برای خارج شدن ( unmount ) از مسیر /mnt/sda2
mount /dev/sda2 /mnt/sda2

استقرار ( mount ) پارتیشن با نام sda2 در مسیر /mnt/sda2 برای دیدن محتویات آن پارتیشن
mount /dev/fd0 /mnt/floppy
استقرار ( mount ) یک فلاپی دیسک
mount /dev/cdrom /mnt/cdrom
استقرار ( mount ) یک سی دی رام یا دی وی دی رام
mount -o loop file.iso /mnt/cdrom
استقرار ( mount ) یک فایل ایمیج ( iso ) در مسیر مورد نظر
mount -t vfat /dev/sda5 /mnt/sda5
استقرار ( 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/sda2
خارج کردن پارتیشن با نام sda2 از مسیر /mnt/hda2
umount -n /mnt/sda2

Borna66
05-29-2012, 11:06 PM
دستوراتی که مربوط به اطلاعات سیستم میشوند (System Information )


arch
نمایش معماری سیستم

uname -m
نمایش معماری سیستم

uname -r
نمایش ورژن ( نسخه ) کرنل استفاده شده در سیستم

dmidecode -q
نمایش بسیار کامل اجزای سخت افزاری سیستم

hdparm -i /dev/sda
نمایش مشخصات و ویژگی های دیسک سخت

hdparm -tT /dev/sda
انجام آزمایش خواندن ( reading ) بروی دیسک سخت ! این دستور , سرعت خواندن دیسک سخت را مشخص می کند.

cat /proc/cpuinfo
نمایش اطلاعات CPU

cat /proc/meminfo
نمایش اطلاعات حافظه ی سیستم

cat /proc/swaps
نمایش اطلاعات حافظه ی مجازی یا swap

cat /proc/version
نمایش نام توزیع و نسخه ی کرنل استفاده شده در سیستم

cat /proc/net/dev
نمایش آمار و اطلاعات کارت های شبکه و وایرلس

lspci
نمایش قطعات و دستگاههای متصل شده به پورت PCI

lsusb
نمایش قطعات و دستگاههای متصل شده به پورت USB

date
نمایش تاریخ سیستم

cal 2008
نمایش تقویم سال ۲۰۰۸ میلادی

date 041217002007.00
تنظیم تاریخ سیستم - به ترتیب از چپ به راست : ماه , روز , ساعت , دقیقه , سال , ثانیه

Borna66
05-29-2012, 11:06 PM
shutdown -h now
init 0
telinit 0

هر سه دستور بالا برای خاموش کردن سیستم به کار می رود.

خاموش کردن سیستم در ساعت و دقیقه ی معین
shutdown -h hours:minutes &

لغو کردن ( cancel ) خاموش شدن سیستم در زمان معین
shutdown -c
هر دو دستور برای راه اندازی مجدد ( restart ) سیستم به کار می رود
shutdown -r now
reboot

خارج شدن از سیستم و رفتن به صفحه ی ورود مجدد ( Login )

logout
اگر می خواهید کاربران ( users ) دیگر را از سیستم خارج کنید, بایستی با کاربر root دستور بالا را اجرا کنید. به جای {username} نام کاربر مورد نظر را قرار دهید.
pkill -KILL -u {username}

who
دستور فوق برای مشاهده ی لیست کاربرانی هست که هم اکنون درون سیستم هستند
( list of logged in users )