شما برای مطالعه این مقاله فقط 5 دقیقه وقت نیاز دارید

source-command-in-linux
دسته بندی : آموزش لینوکس

آموزش دستور source در لینوکس به همراه مثال

5/5 - (1 امتیاز)

اگر می خواهید یک لیست از دستورات لینوکس را به صورت متوالی اجرا کنید و دوست ندارید این دستورات را یکی یکی در ترمینال وارد کنید، می توانید تمام  این دستورات را در یک فایل ذخیره کنید و بعد دستور source در لینوکس را اجرا کنید تا آنها را بخواند و اجرا کند.

دستور source یک دستور داخلی در شل Bash است که برای اجرای دستورات موجود در یک فایل، اسکریپت shell یا اعمال تغییرات محیطی استفاده می شود. این دستور هیچ آپشن خاصی ندارد و کافیست فقط فایل موردنظر را به آن اضافه کنید.

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

پیش نیازهای استفاده از دستور source در لینوکس

  • سیستم یا سرور لینوکس 
  • یک کاربر با امتیازات Sudo
  • دسترسی به ترمینال
  • نصب بودن دستور source

دستور source یک دستور داخلی در پوسته Bash است و نیازی به نصب جداگانه ندارد ولی محض احتیاط بهتر است با دستور زیر، از نصب بودن دستور source در سیستم خود مطمئن شوید:

 bash --version

اگر در خروجی این دستور، شماره ورژن را دیدید که کارتان راحت است، می توانید شروع به استفاده از آن کنید.

در غیر این صورت، قبل استفاده از دستور، باید Bash را در سیستم خود نصب کنید.

دستور نصب Bash در اوبونتو – دبیان

sudo apt update

sudo apt install bash

دستور نصب Bash در CentOS – فدورا

sudo yum update

sudo yum install bash

یا

sudo dnf update

sudo dnf install bash

دستور نصب Bash در آرچ لینوکس 

sudo pacman -Syu

sudo pacman -S bash

سینتکس دستور source در لینوکس

سینتکس پایه دستور source به صورت زیر است:

source Filename

Filename همان مسیر فایلی است که حاوی لیست دستورات موردنظر است.

اما برخلاف اکثر دستورات دیگر، آپشن خاصی ندارد و به سادگی فایل موردنظر را در محیط شل فعلی اجرا می کند.

مثال های کاربردی از دستور source لینوکس

با بررسی مثال های زیر می توانید درک واضح تری از کاربرد دستور source داشته باشید:

اجرای چند دستور به صورت یک جا

  • یک فایل متنی با پسوند txt. ایجاد کنید.
  • دستورات موردنظر خود را به آن اضافه کنید.
pwd

date

time

ls

یا اینکه با دستور cd در مسیر فایلی که قبلاً آماده کرده اید، قرار بگیرید که البته به جای آن می توانید در دستور source هم مسیر فایل را لحاظ کنید.

دستور source را به شکل زیر اجرا کنید:

source example.txt

دستور source به صورت خط به خط، تمام دستورات موجود در فایل example.txt را اجرا می کند و خروجی مربوط به آن را در اختیار شما قرار می دهد.

اگر می خواهید خروجی مربوط به هر کدام از دستورات برایتان قابل تفکیک باشد، می توانید از از دستور echo کمک بگیرید.

فایل موردنظر را باز کنید و قبل از هر دستور، یک پیام مناسب برای تفکیک خروجی دستورات را بنویسید.

echo "The current directory is:"
pwd
echo "Today's date is:"
date
echo "The time is:"
time
echo "List the contents of the current directory:"
ls

شاید بپرسید که فقط دستوراتی که یک پیام یا محتوای خاص را نشان می دهند، می توانند در فایل قرار بگیرند یا نه، دستوراتی مثل cd که برای انجام یک اکشن خاص هستند هم می توانند در این لیست قرار بگیرند؟

خبر خوبی که داریم این است که دستور source از هر دستوری که در یک اسکریپت Bash معتبر است، پشتیبانی می کند. این مجموعه شامل دستورات داخلی shell مثل cd ،alias و export، دستورات کنترلی، دستورات مدیریت شبکه، دستورات مدیریت فایل و … است که در مقاله دستورات اصلی لینوکس به اکثر آنها اشاره کرده ایم.

اجرای اسکریپت شل 

یکی از اصلی ترین کاربردهای دستور source، اجرای اسکریپت هایی است که از توابع، متغیرها و سایر ویژگی های shell تشکیل شده اند.

کلیک کنید  نحوه لیست کردن برنامه ها و فرایندهای در حال اجرا در لینوکس

کافیست اسکریپت موردنظر را با پسوند sh. ایجاد کنید و آن را با دستور source فراخوانی  کنید.

بیایید چند اسکریپت را توسط دستور source اجرا کنیم:

تعریف متغیر و استفاده از آن در دستور echo

#!/usr/bin/env bash

MY_VARIABLE="Hello World"

echo $MY_VARIABLE

حالا اگر دستور source لینوکس را اجرا کنید، با خروجی Hello World مواجه خواهید شد.

ولی قشنگی دیگری هم که دارد، این است که بعد از اجرای این دستور، متغیر MY_VARIABLE در محیط شل فعلی تعریف می شود و می توانید به شکل دلخواه از آن در این محیط استفاده کنید.

تعریف یک تابع shell

با تعریف یک تابع در داخل فایل اسکریپت و اجرای آن با دستور source می توانید تابع را اجرا کرده و بعداً آن را به صورت مستقیم در داخل محیط شل هم فراخوانی کنید.

ابتدا اسکریپت را به صورت زیر ایجاد کنید:

#!/bin/bash
my_function() {
echo “This is my custom function”
}

سپس آن را با دستور source اجرا کنید:

source my_functions.sh

علاوه بر اینکه پیام This is my custom function را در خروجی این دستور خواهید دید، می توانید هر موقع که خواستید اسم تابع را در شل فعلی فراخوانی کنید تا اجرا شود:

my_function

آپدیت فایل پیکربندی

بعضی مواقع، فایل های پیکربندی مربوط به برنامه ها نیاز به تغییر دارند و برای اینکه این تغییرات فوراً در shell فعلی وارد عمل شوند، حتماً باید با دستور source بارگذاری شوند.

به عنوان مثل، اگر یک alias جدیدی را برای دستور ls ایجاد کرده اید:

alias ll='ls -la'

برای اینکه بتوانید در شل فعلی از این alias استفاده کنید، باید فایل پیکربندی bashrc را لود کنید تا آپدیت شود و این تغییر جدید را لحاظ کند. برای این کار می توانید از دستور source در لینوکس استفاده کنید:

source ~/.bashrc

اکنون، می توانید در خطوط دستورات بعدی از alias جدیدی که ایجاد کرده اید، استفاده کنید.

پس می توان نتیجه گرفت که دستور source برای زمانی مفید است که تنظیماتی را در فایل پیکربندی ذخیره کرده اید و می خواهید بدون باز کردن ترمینال جدید، فوراً در جلسه جاری ترمینال اعمال شود.

مدیریت متغیر PATH

فرض کنید شما یک مسیر جدید به متغیر PATH اضافه کرده اید و دستور زیر را در ترمینال وارد می کنید:

export PATH="/my/new/directory:$PATH"

با این کار، این مسیر به PATH اضافه می شود اما موقت است و فقط برای همین جلسه ترمینالی که باز کرده اید، تعریف شده است. به این صورت که اگر ترمینال را ببندید و دوباره باز کنید، این تغییر از بین می رود.

برای اینکه این تغییر برای همیشه باقی بماند، باید دستور بالا را به فایل پیکربندی bashrc اضافه کنید و سپس از دستور source بخواهید که این فایل پیکربندی را دوباره بخواند و تغییرات لازم را در همان لحظه به صورت دائمی اعمال کند.

source ~/.bashrc

فعال سازی محیط مجازی

اگر تا الان با پایتون کار کرده اید، مطمئناً می دانید که محیط مجازی یا همان virtual environment، حکم یک محیط ایزوله ای دارد که می توانید ورژن موردنظر پایتون، پکیج ها و ابزارهای موردنیاز برای یک پروژه خاص را در آن نصب کنید و از این محیط فقط برای کار کردن با آن پروژه استفاده کنید.

منتها برای این که این محیط را برای پروژه موردنظر خود فعال کنید باید دستور activate را اجرا کنید و برای این کار می توانید از دستور source استفاده کنید.

با دستور زیر یک محیط جدید با اسم دلخواه ایجاد کنید:

python -m venv myenv

سپس با دستور زیر، این محیط را در ترمینال فعال کنید:

source myenv/bin/activate

یا اگر قبلاً محیط را ایجاد کرده اید، می توانید آن را در دستور بالا لحاظ کنید.

در کل، دستور source این امکان را به شما می دهد دستورات و عملیات موردنظر خود را با سرعت و کیفیت بالاتری در ترمینال جاری اجرا کنید و تنظیمات و تغییرات موردنظر را در همان ترمینال بارگذاری و اعمال کنید.

سخن آخر

دستور source در لینوکس برای اجرای دستورات و اسکریپت های shell تعریف شده در یک فایل استفاده می شود و در حالت کلی، سرعت انجام یک سری عملیات را ارتقا می دهد.

مطالب مشابهی که شاید علاقمند باشید

من زهرا پیرجانی دانشجوی رشته نرم افزار هستم. علاقه ای که به یادگیری مطالب جدید دارم باعث شد که انگیزم برای فعالیت در حوزه تولیدمحتوا بیشتر شود. تمام تلاشم این است که با درک کامل موضوع، محتوایی ساده و کامل تهیه کنم که برای همه علاقمندان مفید و کاربردی باشد. یادگیری مطالب جدید و آموزش اونها به بقیه، بهترین کاری هست که می توانم برای رشد خودم و همچنین کمک به رشد علاقمندان به مباحث مورنظر انجام بدم.

دیدگاه های شما

برای دریافت این مقاله لطفا ایمیلتان را وارد کنید

می توانید مقاله را دانلود کنید یا پرینت بگیرید