.CFG Configuration File
.cfg

Configuration File

ملف CFG (ملف الإعدادات) هو ملف نصي يحفظ إعدادات التطبيقات والألعاب والأنظمة. لا يوجد معيار واحد لصيغة CFG — نفس الامتداد تستخدمه مئات التطبيقات بقواعد بنية مختلفة تماماً. صفحة مرجعية فقط في FileDex.

بنية الصيغة
Header magic bytes
Sections code · data
نص1980
بواسطة FileDex
غير قابل للتحويل

تحويل ملفات CFG غير متاح — CFG اصطلاح تسمية وليس صيغة واحدة. استخدم محرر نصوص لقراءة ملفات الإعدادات وتعديلها مباشرة.

أسئلة شائعة

ما هو ملف CFG وكيف أفتحه؟

ملف CFG (ملف الإعدادات) هو ملف نصي يحفظ إعدادات التطبيقات والألعاب والأنظمة. لا يوجد معيار واحد لصيغة CFG — نفس الامتداد تستخدمه مئات التطبيقات بقواعد بنية مختلفة. افتحه بأي محرر نصوص: Notepad على Windows أو TextEdit على macOS أو VS Code على أي نظام. المحتوى دائماً نص قابل للقراءة.

كيف أعدّل ملف autoexec.cfg في Counter-Strike 2؟

افتح ملف autoexec.cfg بمحرر نصوص من مجلد cfg داخل مجلد اللعبة في Steam. كل سطر أمر طرفي مستقل — مثلاً sensitivity "1.6" لحساسية الماوس أو bind "mwheeldown" "+jump" لربط عجلة الماوس بالقفز. احفظ الملف وأعد تشغيل اللعبة. إذا لم تعمل التغييرات، تأكد أنك تُعدّل النسخة الصحيحة في المجلد الذي يقرأه Steam.

ما الفرق بين ملف CFG وملف INI؟

كثير من ملفات CFG تستخدم صيغة INI — أقسام [Section] مع أزواج key=value — لكن CFG أوسع. ملفات Source Engine في الألعاب تحتوي أوامر طرفية وليست أزواج key=value. ملفات Cisco IOS تستخدم بنية هرمية. ملفات Kconfig في نواة Linux تستخدم صيغة CONFIG_OPTION=y. امتداد .ini يُشير تحديداً لاتفاقية الأقسام والمفاتيح بينما .cfg لا يضمن أي بنية معينة.

هل ملفات CFG آمنة للتحميل من الإنترنت؟

ملفات CFG نص صريح ولا تستطيع تنفيذ شيفرات برمجية بذاتها. الخطر يعتمد على التطبيق: ملفات Source Engine تُنفَّذ كأوامر طرفية عند تحميلها في اللعبة — ملف autoexec.cfg محمّل قد يُعيد ربط المفاتيح أو يُغيّر الإعدادات. افحص أي ملف CFG محمّل في محرر نصوص قبل استخدامه.

لماذا حلّ TOML محل ملفات CFG في المشاريع الحديثة؟

ملفات CFG/INI تفتقر لمواصفات رسمية ونظام أنواع — كل القيم نص خام. TOML أنشأه Tom Preston-Werner عام 2013 بمواصفات مُحددة تدعم أعداداً صحيحة وتواريخ ومنطقية وجداول متداخلة مع مجموعة اختبارات. Python استبدلت setup.cfg بـ pyproject.toml ولغة Rust تبنّت Cargo.toml منذ إصدارها الأول.

كيف أحمي كلمات المرور في ملفات CFG؟

لا تحفظ كلمات المرور أو مفاتيح API في ملفات CFG كنص صريح. استخدم متغيرات البيئة (environment variables) أو مدير أسرار مثل HashiCorp Vault أو AWS Secrets Manager. إن كان لا بد من استخدام ملف CFG، أضفه إلى ملف .gitignore لمنع إيداعه في المستودع بالخطأ. إيداع واحد بالخطأ يكشف بيانات الاعتماد في تاريخ Git بشكل دائم.

لماذا لا تعمل التغييرات التي أجريتها على ملف CFG؟

أغلب التطبيقات تقرأ ملفات CFG عند بدء التشغيل فقط — أعد تشغيل التطبيق بعد الحفظ. بعض الألعاب تُعيد كتابة ملف CFG عند الخروج فتمسح تعديلاتك — عدّل الملف واللعبة مغلقة واجعله للقراءة فقط (read-only) إن استمرت المشكلة. تأكد أيضاً أنك تُعدّل النسخة الصحيحة من الملف في المجلد الذي يقرأه التطبيق.

ما يميز .CFG

الامتداد الأكثر غموضاً
امتداد واحد، خمس بنى غير متوافقة
INI وأوامر Source Engine ومتغيرات Quake وهرمية Cisco IOS وKconfig في نواة Linux — جميعها تستخدم امتداد .cfg. لا يوجد امتداد آخر من ثلاثة حروف يُشير إلى هذا العدد من الصيغ المختلفة.
طقس autoexec.cfg
كل لاعب CS2 تنافسي يملك ملف إعدادات شخصي
منذ Quake عام 1996، يُعدّ اللاعبون التنافسيون ملفات autoexec.cfg بإعدادات شبكية ونقاط تصويب وحساسية ماوس مخصصة. لاعبو CS2 المحترفون ينشرون إعداداتهم — في السعودية والإمارات يتداولها اللاعبون عبر Discord.
مقبرة كلمات المرور
ملفات CFG مصدر رئيسي لتسريب الأسرار
كلمات مرور قواعد البيانات ومفاتيح API وبيانات SMTP تُحفظ كنص صريح في أزواج key=value. إيداعات Git بالخطأ تكشفها بشكل دائم في تاريخ المستودع.
استُبدل لكنه لم يَمُت
TOML صُمّم لاستبدال CFG — لكن CFG يستمر
Tom Preston-Werner أنشأ TOML عام 2013 تحديداً لأن CFG/INI يفتقر لمواصفات. Python استبدلت setup.cfg بـ pyproject.toml. لكن محركات الألعاب وCisco والأنظمة القديمة لا تزال تُنتج ملايين ملفات CFG.

امتداد CFG. هو على الأرجح أكثر امتداد ملفات غموضاً في عالم الحوسبة. مئات التطبيقات تستخدمه دون أي اتفاق على المحتوى الداخلي. ملف database.cfg بصيغة INI (مفتاح-قيمة) لا يشبه ملف autoexec.cfg في Counter-Strike 2 الذي يحتوي أوامر طرفية، ولا يشبه ملف إعدادات موجّه Cisco IOS الذي يعتمد على مستويات المسافة البادئة.

اكتشف التفاصيل التقنية

لم تنشر أي جهة معايير مواصفات لصيغة CFG. لا يوجد نوع MIME مسجّل في IANA سوى text/plain. لا يوجد توقيع PRONOM لأنه لا توجد بايتات تعريفية يمكن مطابقتها. السياق — المجلد الذي يحتوي الملف والتطبيق الذي أنشأه — هو الطريقة الوحيدة الموثوقة لفهم محتوى ملف CFG.

خمس عائلات بنية مختلفة بامتداد واحد

صيغة INI تستخدم رؤوس [Section] مع أزواج key=value في كل سطر. التعليقات تبدأ بـ # أو ;. هذه الصيغة يقرأها مكتبة configparser في Python. ملفات MySQL وPHP وGit تتبع هذا النمط.

[database]
host = localhost
port = 3306
password = secret

محرك Source من Valve يعامل ملفات CFG. كنصوص أوامر طرفية تُنفَّذ سطراً بسطر. الأمر bind يربط مفتاحاً بفعل، وexec يُحمّل ملف CFG. آخر. ألعاب Counter-Strike 2 وHalf-Life 2 وPortal وDota 2 تستخدم هذه الصيغة.

// autoexec.cfg — إعدادات CS2 مخصصة
cl_interp_ratio "2"
rate "786432"
bind "mwheeldown" "+jump"

محرك Quake يستخدم أوامر seta وset لتعيين متغيرات وحدة التحكم. شركة id Software أسّست هذا التقليد عام 1996 مع لعبة Quake الأصلية.

Cisco IOS يستخدم بنية هرمية تعتمد على المسافة البادئة. أمر interface GigabitEthernet0/1 يُتبع بأوامر فرعية بمسافة بادئة تنطبق على هذا المنفذ.

Kconfig يستخدم صيغة CONFIG_OPTION=y في نظام بناء نواة Linux وBuildroot.

ثقافة autoexec.cfg في عالم الألعاب

كل لاعب Counter-Strike جاد يملك ملف autoexec.cfg شخصياً — ملف أوامر طرفية يُنفَّذ تلقائياً عند بدء اللعبة. يحتوي إعدادات معدّل البيانات الشبكي وحساسية الماوس ونقطة التصويب وربط المفاتيح.

هذه العادة بدأت مع Quake عام 1996 عندما اكتشف اللاعبون أن تعديل config.cfg يمنحهم تحكماً في إعدادات غير متاحة من قوائم اللعبة. بحلول Counter-Strike 1.6 أصبحت مشاركة ملفات autoexec.cfg ممارسة معتادة في مجتمعات اللاعبين المحترفين. لاعبو CS2 المحترفون ينشرون إعداداتهم، والمتابعون يقلّدونها ويعدّلونها.

في منطقة الخليج العربي — حيث CS2 من أشهر الألعاب التنافسية في السعودية والإمارات — يتداول اللاعبون ملفات autoexec.cfg عبر Discord وتويتر. الإعدادات الأكثر أهمية للاعبين في المنطقة:

  • rate "786432" — عرض النطاق الشبكي بالبايت في الثانية
  • cl_interp_ratio "1" — نسبة التقحيم لدقة إصابة الهدف
  • sensitivity "1.6" — حساسية الماوس
  • bind "mwheeldown" "+jump" — ربط عجلة الماوس بالقفز

محرك Source يقرأ config.cfg للإعدادات الافتراضية ثم يُنفّذ autoexec.cfg الذي يتجاوز أي إعداد سابق. هذه البنية ثنائية الملفات تسمح بإعادة الإعدادات الافتراضية بحذف autoexec.cfg دون فقدان إعدادات اللعبة الداخلية.

لماذا لا يوجد معيار

ملفات CFG سبقت عصر المواصفات الرسمية لصيغ الملفات. عندما احتاج مطوّرو Unix في أوائل الثمانينيات لحفظ إعدادات التطبيقات، كتبوا محلل نصوص بسيط وحفظوا المخرجات كملف .cfg. لم يكن هناك تنسيق بين التطبيقات. Microsoft فعلت الشيء ذاته مع ملفات INI. لنظام Windows 1.0 عام 1985.

غياب المعيار يستمر لأنه لا يوجد ضغط للتوحيد. كل تطبيق يملك محلل CFG الخاص به. محركات الألعاب تُعرّف قواعد أوامرها الخاصة. معدّات الشبكات تُعرّف لغة إعدادات خاصة بالشركة المصنّعة.

من INI إلى TOML: مسار التطوّر

صيغة INI من Microsoft (1985) كانت أول اتفاقية واسعة الانتشار لملفات الإعدادات. قدّمت أقسام [Section] وأزواج key=value لكنها لم تُحدَّد رسمياً.

JSON (معيار RFC 8259) قدّم إعدادات قابلة للتحليل الآلي لكن بنيته عدائية للتحرير اليدوي — فاصلة مفقودة واحدة تُعطّل الملف بالكامل ولا يدعم التعليقات.

TOML (2013، أنشأه Tom Preston-Werner مؤسس GitHub المشارك) صُمّم تحديداً لاستبدال ملفات CFG/INI. يوفر قيماً مُنمّطة (أعداد صحيحة وتواريخ ومنطقية) وجداول متداخلة ومواصفات رسمية مع مجموعة اختبارات. Python استبدلت setup.cfg بـ pyproject.toml. لغة Rust تبنّت Cargo.toml منذ إصدارها الأول.

الخطر الأمني: كلمات المرور بالنص الصريح

ملفات CFG هي مصدر متكرر لتسريب بيانات الاعتماد. كلمات مرور قواعد البيانات ومفاتيح API وبيانات SMTP تُحفظ كنص صريح في أزواج key=value:

[smtp]
password = P@ssw0rd123

عند إيداع هذه الملفات في مستودع Git بالخطأ، تصبح بيانات الاعتماد جزءاً من تاريخ المستودع بشكل دائم حتى بعد حذف الملف. الحل: استخدام متغيرات البيئة أو مدير أسرار بدلاً من حفظ كلمات المرور في ملفات CFG.

ملفات إعدادات Cisco IOS تحمل خطراً مميزاً — تحتوي عناوين IP لجميع المنافذ وسلاسل SNMP ومفاتيح VPN المشتركة مسبقاً. نسخة احتياطية واحدة مكشوفة تُعرّض البنية التحتية الكاملة للشبكة.

السلوك حسب نظام التشغيل

Windows تاريخياً يربط ملفات CFG. بالتطبيق المُنشئ. النقر المزدوج قد يفتح التطبيق بدلاً من محرر النصوص. سجل Windows (Registry) حلّ محل ملفات CFG/INI لإعدادات النظام منذ Windows 95 لكن ملفات الإعدادات على مستوى التطبيقات لا تزال موجودة.

macOS وLinux يعاملان ملفات CFG كنص عادي. أداة file تُعرّفها كـ text/plain بناءً على تحليل المحتوى لأنه لا توجد بايتات سحرية.

منصات توزيع الألعاب (Steam) تحفظ ملفات CFG في مجلدات خاصة. على Windows عادةً في مسار C:\Program Files (x86)\Steam\steamapps\common\<game>\cfg\. تعديل النسخة الخاطئة سبب شائع لشكوى "التغييرات لا تعمل".

مقارنة .CFG مع البدائل

مقارنة .CFG مع الصيغ البديلة
المقارنة المعيار الفائز
.CFG vs .INI
وضع المواصفات
لا يملك أيٌّ منهما مواصفات رسمية. INI له اتفاقية ضمنية أضيق ([أقسام] مع key=value). CFG يشمل خمس عائلات بنية غير متوافقة بما فيها أوامر Source Engine وهرمية Cisco IOS وKconfig.
تعادل
.CFG vs .TOML
أمان الأنواع
TOML v1.0.0 (مارس 2021) يُعرّف أعداداً صحيحة وعشرية ومنطقية وتواريخ ونصوصاً ومصفوفات وجداول متداخلة مع قواعد نحوية رسمية. CFG بصيغة INI يعامل كل القيم كنص خام بلا نظام أنواع.
TOML أفضل
.CFG vs .YAML
سهولة التحرير اليدوي
صيغة key=value في CFG لا تتطلب معرفة بقواعد المسافات البادئة أو الأحرف الخاصة. المسافات البادئة الدلالية في YAML وفواصل النقطتين والتنميط الضمني (النص 'no' يتحول إلى false) تسبب أخطاء تحرير متكررة.
CFG أفضل
.CFG vs .JSON
دعم التعليقات
JSON (RFC 8259) يمنع التعليقات صراحةً. ملفات CFG تدعم التعليقات عالمياً عبر # أو ; أو // أو ! حسب المتغيّر. ملفات الإعدادات التي يُحررها البشر تحتاج تعليقات.
CFG أفضل
.CFG vs .YAML
اتساق المحللات
YAML يملك مواصفات رسمية (yaml.org/spec/1.2.2) ومجموعة اختبارات توافق. CFG لا يملك مواصفات، فالمحللات تختلف حسب التطبيق. محللات YAML عبر اللغات تُنتج مخرجات متطابقة لنفس المدخل.
YAML أفضل

المرجع التقني

نوع MIME
text/plain
المطوّر
Various
سنة التقديم
1980
معيار مفتوح
لا

البنية الثنائية

ملفات CFG نص صريح بلا بنية ثنائية ولا بايتات سحرية ولا ترويسة ملف. الصيغة الداخلية تعتمد كلياً على التطبيق المستهلك. النمط الأكثر شيوعاً هو أزواج key=value مفصولة بأسطر جديدة ومُجمّعة اختيارياً تحت رؤوس [Section] بصيغة INI. ملفات Source Engine تحتوي أوامر طرفية بسطر لكل أمر. ملفات Cisco IOS تستخدم بنية هرمية تعتمد على المسافة البادئة. جميع المتغيّرات موجّهة سطرياً — المحللات تعالج ملفات CFG سطراً بسطر.

1980تطبيقات Unix تبدأ استخدام ملفات نصية بنمط key=value للإعدادات، مع .cfg كأحد الامتدادات الشائعة إلى جانب .conf و .rc1985نظام Windows 1.0 من Microsoft يُقدّم صيغة INI — أقسام [Section] مع أزواج key=value. المطوّرون يستخدمون .ini و .cfg بالتبادل1996لعبة Quake من id Software تُرسّخ ملفات .cfg كصيغة إعدادات الألعاب القياسية باستخدام أوامر 'seta' لتعيين متغيرات وحدة التحكم2004محرك Source من Valve يُضفي طابعاً رسمياً على ملفات .cfg كنصوص أوامر طرفية قابلة للتنفيذ مع أوامر bind وexec وalias2013Tom Preston-Werner يُنشئ TOML كبديل رسمي لملفات CFG/INI بمواصفات مُحددة وقيم مُنمّطة2021نشر TOML v1.0.0 (10 مارس). Cargo.toml في Rust وpyproject.toml في Python يُثبّتان TOML كصيغة الإعدادات الحديثة2023Counter-Strike 2 يحلّ محل CS:GO حاملاً تقليد autoexec.cfg إلى جيل جديد من اللاعبين على محرك Source 2
تحديد نوع ملف CFG باستخدام أداة file أخرى
file -bi config.cfg

يعرض نوع MIME والترميز. المخرج دائماً text/plain لأن CFG لا يملك بايتات سحرية. حقل charset يكشف الترميز (us-ascii أو utf-8).

تحليل ملف CFG بصيغة INI باستخدام Python أخرى
python3 -c "import configparser; c=configparser.ConfigParser(); c.read('config.cfg'); [print(f'[{s}]', dict(c[s])) for s in c.sections()]"

يقرأ ملف CFG بصيغة INI باستخدام المكتبة القياسية في Python ويطبع جميع الأقسام بأزواج key=value. يعمل فقط مع ملفات CFG بنمط INI — ملفات Source Engine أو Cisco IOS ستفشل.

البحث عن كلمات المرور في ملفات CFG أخرى
grep -rn 'password' /etc/*.cfg ~/.config/**/*.cfg 2>/dev/null

يبحث عن النص 'password' في ملفات CFG تحت /etc ومجلدات إعدادات المستخدم. مفيد لتدقيق تعرّض بيانات الاعتماد بالنص الصريح.

مقارنة ملفي CFG مع تجاهل التعليقات أخرى
diff <(grep -v '^[#;]' config.cfg | grep -v '^$') <(grep -v '^[#;]' config.cfg.bak | grep -v '^$')

يقارن ملفين CFG بعد إزالة أسطر التعليقات (التي تبدأ بـ # أو ;) والأسطر الفارغة. يكشف الفروقات الفعلية في الإعدادات دون ضوضاء.

متوسط

نقاط الضعف

  • بيانات اعتماد بالنص الصريح — ملفات CFG تحفظ كلمات مرور قواعد البيانات ومفاتيح API وبيانات SMTP كأزواج key=value غير مشفّرة. إيداعات Git بالخطأ تكشفها بشكل دائم في تاريخ المستودع
  • حقن الإعدادات — التطبيقات التي تُقحم قيم CFG في أوامر أو استعلامات SQL بدون تعقيم قد تتعرض لهجمات حقن عبر قيم إعدادات مصنوعة
  • اجتياز المسار عبر القيم — ملف CFG بقيمة مثل output_dir=../../etc/passwd قد يُجبر التطبيق على القراءة أو الكتابة خارج مجلده المقصود
  • سلسلة exec في Source Engine — ملف .cfg محمّل يحتوي 'exec malicious.cfg' يجعل وحدة التحكم تُنفّذ ملفات إضافية قد تُعيد ربط المفاتيح أو تُغيّر إعدادات اللعبة
  • كشف إعدادات Cisco IOS — ملفات CFG الاحتياطية من الموجّهات تحتوي طوبولوجيا الشبكة الكاملة وسلاسل SNMP وبيانات اعتماد خوادم المصادقة

الحماية: FileDex لا يفتح أو يُنفّذ أو يُحلل ملفات CFG. هذه صفحة مرجعية فقط. لحماية بيانات الاعتماد: استخدم متغيرات البيئة أو مدير أسرار بدلاً من إدخالات CFG بالنص الصريح. أضف ملفات .cfg الحساسة إلى .gitignore.

Notepad++ أداة
محرر نصوص مجاني مع تلوين بنيوي لملفات INI/CFG وأدوات تحويل نهايات الأسطر
VS Code أداة
محرر مجاني مع كشف تلقائي للغة لمتغيّرات INI وproperties وCFG عبر الاستدلال المدمج والإضافات
Python configparser مكتبة
مكتبة قياسية في Python لقراءة وكتابة ملفات CFG بصيغة INI مع تقحيم الأقسام والقيم الافتراضية
محرك ألعاب Valve (CS2 وHalf-Life 2 وPortal وTF2) يستخدم ملفات .cfg كنصوص أوامر طرفية قابلة للتنفيذ
CiscoConfParse مكتبة
مكتبة Python لتحليل ملفات إعدادات Cisco IOS وNX-OS وASA مع فهم البنية الهرمية المبنية على المسافة البادئة