بدون شک قدرتمند ترین بخش
سیستم عامل گنو لینوکس رابط خط فرمان (CLI)
است. خیلی از کارها فقط از طریق خط فرمان قابل انجام هست و همچنین خیلی از اقدامات
از طریق آن سریع تر انجام می شود.
چند نکته:
قبل از اینکه به اصل
موضوع بپردازیم چند نکته را باید بیان کنم. نکته اول اینکه الزاما تمام دستوراتی
که اشاره خواهند شد به صورت پیش فرض در تمام توزیع های لینوکس وجود ندارند.
بنابراین ممکن است بعضی از دستورات در بعضی از توزیع ها اجرا نشوند. نکته دوم
اینکه با اجرای man قبل از دستور مورد
نظر (به عنوان مثالman
ls)
, راهنمای کاملی از آن دستور را مشاهده خواهید کرد. برای اجرای بعضی دستورات باید
سطح دسترسی بالا داشته باشید و یا باید آنها را مطابق نیازتان تغییر دهید. همچنین
می توانید با استفاده از دستور زیر یک نسخه ی pdf از
مستندات دستور مورد نظرتان را تهیه کنید.
$ man -t command | ps2pdf - > /home//man.pdf
به جای command نام دستور مورد نظر را قرار دهید.
و نکته ی سوم اینکه بعضی
از دستورات را باید با کاربر ریشه (root)
اجرا کنید. برای این کار باید از دستور sudo یا su به
شکل زیر استفاده کنید:
$ su
< Enter Root Password >
# hdparm -tT /dev/sda
$ sudo hdparm -tT /dev/sda
بدیل دستورالعمل یک
برنامه به 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
ادامه دادن دانلود فایلی
که بصورت نیمه کاره رها شده
wget -c
دانلود دسته ای از فایل
ها در مسیر جاری
wget -r -nd -np -l1 -A
'*.jpg'
دانلود 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