بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

بلاگ پارسی سلمان م.

گنو، تریسکل، نرم‌افزار آزاد، ای‌مکس، اوبونتو، مهندسی عمران، برنامه‌نویسی، گنو/لینوکس، ...

آخرین نظرات
  • ۲۱ ارديبهشت ۰۱، ۱۸:۵۰ - فاطمه
    مرسی

۲ مطلب در فروردين ۱۳۹۲ ثبت شده است

سلام دوستان گرامی،  در این پست می‌خواهیم روش عوض کردن گزینه‌ی پیش‌فرض در گراب توی توزیع‌های بر پایه ی دبیان (تریسکل، اوبونتو و غیره) رو توضیح بدیم.

یعنی چی؟ فرض کنید که شما مثل من چندتا سیستم‌عامل در کنار هم نصب کردید (اوبونتو، تریسکل و ویندوز) و موقعی که کامپیوتر رو روش می‌کنید و به منوی انتخاب سیستم‌عامل (گراب) می‌رسید، حوصله‌ی بالا پایین کردن منوها رو ندارید، می‌خواید خودش به صورت پیش‌فرض روی سیستم‌عامل مورد علاقه‌تون باشه. این‌کار خیلی ساده هست. باید مراحل زیر رو طی کنید.


۱. با استفاده از دستور زیر یه نسخه‌ی پشتیبان از گراب می‌گیریم تا اگه خراب کاری کردیم راحت بشه همه‌چیز رو به حالت اول برگردوند. دستور زیر رو توی ترمینال وارد می‌کنیم.

$ sudo cp /etc/default/grub /etc/default/grub.poshtiban

۲. حالا یکی از دستورهای زیر رو با توجه به ویرایشگر مورد علاقه توی ترمینال بزنید تا بتونید که گراب رو دستکاری کنید. (هرکدوم رو که زدید فرق نمی‌کنه).

نکته: اگر بر روی سیستمتون بیش از یک گنو/لینوکس نصب دارید، باید این دستور رو در سیستم‌عاملی بزنید که GRUB رو کنترل می‌کنه، در سیستم من، گراب موجود در اوبونتو سیستم رو کنترل می‌کنه و نه گراب موجود در تریسکل. بنابراین دستورهای زیر رو توی اوبونتو اجرا می‌کنم. به صورت کلی، باید دستور زیر رو توی سیستم‌عاملی بزنید که آخر از همه نصب کردید.

$ sudo emacs -nw /etc/default/grub

یا

$ sudo nano /etc/default/grub

یا

$ gksudo gedit /etc/default/grub

خب الآن باید یک سری متن رو ببینید، که برای من (در تریسکل) این‌ها هست:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux-Libre (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

# Trisquel comes without kernel recovery entries to improve security.
GRUB_DISABLE_RECOVERY=true
خب الآن اگر خط ششم رو ببینیم نوشته:
GRUB_DEFAULT=0
این خط یعنی اینکه به صورت پیش‌فرض اولین گزینه موجود در گراب بوت بشه (شمارش از صفر شروع می‌شه و نه یک). اگر به طور مثال، موقع بوت گزینه‌ی مورد نظر شما از بالا به پایین گزینه‌ی پنجم است، در متن بالا 0 را به 4 تغییر می‌دیم و دخیره می‌کنیم. برای دخیره کردن در ای‌مکس از C-x C-s استفاده می‌کنیم و در nano از ctrl-o و در گدیت از Ctrl - s.

حال دستور زیر رو اجرا می‌کنیم تا گراب به روز رسانی بشه.
$ sudo update-grub
اگر سیستمتون رو ری‌استارت کنید، می‌بینید که به صورت پیش‌فرض سیستم‌عامل مورد نظرتون می‌یاد بالا :)
  • سلمان محمدی

شی‌بنگ چیست؟

۰۲
فروردين
خب دوستان عزیز، بعض از مدت‌ها تونستم یه وقت آزاد پیدا کنم و یه پست جدید بذارم :) امیدوارم که مفید باشه. تو این پست می‌خوایم کمی در رابطه با شی‌بنگ صحبت کنیم.
چی؟ این دیگه چه کلمه‌ای هست؟ شی‌بنگ فارسی شده‌ی کلمه‌ی Shebang تو انگلیسی هست و به جفت علامت زیر اطلاق می‌شه:
#!
به جز شی‌بنگ بهش هش‌بنگ (hashbang) یا ... هم گفته می شود.
کجا ازش استفاده می‌شه؟ از این جفت علامت توی برنامه‌نویسیِ برنامه‌‌هایی که می‌خوایم تحت ترمینال اجرا بشن، استفاده می‌کنیم.
یه مثال می‌زنی؟ به طور مثال، می‌خوایم برنامه‌ای رو به زبان «پایتون سه» بنوسیم تا تحت ترمینال اجرا می‌شه، کد زیر رو توی یک فایل به اسم مثلن mesal.py و دیرکتوری HOME ذخیره می‌کنیم.
#!/usr/bin/env python3
print ('Salam Donyaaaaa')
خب حالا این برنامه‌رو چجوری اجرا کنیم؟ برای اجرا باید ابتدا به این فایل اجازه‌ی اجرا شدن بدیم. چون برنامه‌مون برنامه‌ی خاصی نیست و خودمون هم نوشتیمش، با دستور زیر بهش اجازه می‌دیم که هرکی خواست اجراش کنه. (البته این اجازه رو نباید به هر فایلی که از این‌ور اون‌ور گیر آوردیم، بدیم)
$ chmod a+x mesal.py
خب الان که اجازه‌ی اجرا شدن اون توسط هر بنی‌بشری بهش داده شده :) از دو طریق می‌شه اون رو اجرا کنیم.
روش اول: توی این روش باید به صورت کاملن مشخص بگیم که خانم مفسر پایتون سه، تو رو جون هرکی دوست داری برو اجراش بکن :) .
$ python3 mesal.py
توی این روش چون داریم از روش «التماس به صورت مستقیم» استفاده می‌کنیم! و اسم python3 رو آوردیم، خط اول برنامه که شی‌بنگ داره بلا استفاده می‌مونه.
روش دوم: توی این روش، می‌تونیم از طریق دستور زیر برنامه رو اجرا کنیم.
$./mesal.py
یا از طریق دستور زیر (که با دستور بالا یکی هست):
$ /home/salman/mesal.py
توی این روش، بر خلاف روش اول، ما به طور مستقیم نرفتیم که التماس خانم پایتون سه بکنیم که بیا و برنامه رو برای ما اجرا کن! در یک حرکت کاملن حق‌به‌جانبانه، می‌گیم که، برنامه‌ی mesal.py اجرا بشو ! و از اون‌جایی که این mesal.py خیلی خنگ تشریف دارن! نمی‌دونن برن التماس کی کنن که برنامه رو اجرا کنه، برای همین ما قبلن توی خط اول برنامه بهش گفتیم که کجا بره و به کی بگه که برنامه رو اجرا کنه.

شد یه بار عین آدم حرف بزنی؟ درست بگو.
شی‌بنگ یک جفت علامت هست و در برنامه‌هایی استفاده می‌شه که می خواهیم برنامه‌ای که تحت ترمینال اجرا می‌شه به صورت خودکار هنگام اجرا شدن، مفسر را تشخیص دهد و نیازی نباشد که هر بار برای اجرا شدن، یه صورت مشخص مفسر را مشخص کنیم. تنها با اجرا کردن برنامه، خودش مفسر را جست‌و‌جو و پیدا می‌کند. (در صورتی جست‌و‌جو می‌کند که از دقیقن دستور بالا استفاده کرده باشیم).

نکته:  طبق اطلاع رسانی دوست خوبمون آقای امامیان، شی‌بنگ مخفف کلمه‌های زیر است.
 (#)SHarp
 (!)BANG


برای اطلاعات بیشتر: +
  • سلمان محمدی