دليل استخدام Berth

SFTP · طرفية · وحدة تحكم تسلسلية في نافذة واحدة — من إضافة خادم إلى اختصارات لوحة المفاتيح

🚀البدء

تخطيط الشاشة

أربع مناطق في نافذة واحدة.

إضافة أول خادم

  1. انقر بزر الفأرة الأيمن على مكان فارغ من الشريط الجانبي، أو اضغط ⌘N.
  2. اكتب الاسم وعنوان الخادم. إن تركت اسم المستخدم أو المنفذ فارغَين، تُستخدم القيم الافتراضية.
  3. النقر مرتين في القائمة يتصل. النقر مرة واحدة يحدّد.
💡 إذا كنت تتصل بهذا الخادم من قبل عبر ssh alias في الطرفية، فلا حاجة لكتابة شيء جديد. استوردها دفعة واحدة عبر الاستيراد من ‎~/.ssh/config‎(⌘⇧I) من قائمة الشريط الجانبي. يمكن أيضاً استيراد قائمة مواقع FileZilla.

تغيير اللغة

في قائمة Berth › الإعدادات (⌘,) اختر إحدى اللغات العشرين. اتّباع لغة النظام هو الافتراضي، واللغة المختارة تُطبَّق على هذا التطبيق فقط. يسري التغيير بعد إعادة تشغيل التطبيق.

🗂الخوادم والمجلدات

التجميع في مجلدات وتوريث الإعدادات

عند تجميع الخوادم في مجلد (⌘⇧Nتنزل الإعدادات إلى ما تحته. إذا ضبطت اسم المستخدم أو تصنيف الحذر مرة واحدة على المجلد، يرثه كل خادم تحته. هذا هو ما يمنع كتابة القيمة نفسها عشرين مرة لعشرين خادماً.

تُظهر كل خانة في نافذة الإعدادات أسفلها من أين أتت هذه القيمة (هل ضبطتها بنفسك أم ورثتها من مجلد)، وزر الاستعادة يعيدها إلى الوراثة.

تصنيف الحذر — التطوير · التجهيز · الإنتاج

التصنيف أقوى من اللون. عند الضبط على الإنتاج تُطلب تأكيدات إضافية قبل الإجراءات الخطيرة. في قائمة الجلسات يُملأ باللون الذي اخترته ويُميَّز بحدٍّ أحمر، لذا يمكن تمييز عدة خوادم إنتاج باللون. أما حيث يظهر واحد فقط في كل مرة (مثل نوافذ التأكيد) فيبقى أحمر كتحذير قوي.

قواعد النقر

🔑الاتصال والتحقق

عند الاتصال أول مرة — إذن المجلد

يتّبع Berth قواعد App Store (الصندوق الرملي)، فلا يقرأ المجلد الرئيسي بحرّية. عند فتح خادم لأول مرة، يطلب اختيار المجلد الذي يحتوي إعدادات SSH والمفاتيح وknown_hosts مرة واحدة (عادةً ‎~/.ssh‎). بمجرد الاختيار يُحفَظ ولا يُسأل مرة أخرى. إذا كانت مفاتيحك في مكان آخر، يمكنك اختيار المجلد الرئيسي بدلاً منه.

لنفس السبب، تستخدم لوحة الملفات المحلية أيضاً المجلد الذي اخترته كجذر — يمكن تغييره من فتح مجلد محلي… في رأس اللوحة، وهذا أيضاً يُحفَظ.

قراءة ‎~/.ssh/config‎

عند الاتصال بالاسم المستعار، تُقرأ من ذلك المدخل قيم المضيف والمنفذ والمستخدم وملف المفتاح وProxyJump وStrictHostKeyChecking وتُستخدم. حتى لو كان المنفذ المحفوظ قديماً، يَغلب ملف الإعدادات.

⚠️ ثمة أمران لا يعملان. ProxyCommand يشغّل برنامجاً خارجياً فيمنعه الصندوق الرملي — اكتب مضيف القفز بصيغة ProxyJump بدلاً من ذلك. ssh-agentأيضاً لا يمكن الوصول إليه، فتُقرأ ملفات المفاتيح مباشرة، وإن كان المفتاح محمياً بكلمة مرور، تُطلب كلمة المرور عند الاتصال.

طريقة التحقق

⚠️ إذا كان الخادم يتصل بمجرد ssh من الطرفية، فالتلقائي هو الخيار الصحيح. تحديد مفتاح ظناً أنه سيساعد يمنع الاتصال بدلاً من ذلك — لأنه يُجرَّب ذلك المفتاح المحدد وحده.

عندما يطلب الخادم

إذا حفظت كلمة المرور، تُستخدم تلقائياً مرة واحدة عند الاتصال. أما بقية الأسئلة — رمز التحقق بخطوتين، إعادة كتابة كلمة مرور خاطئة، كلمة مرور مفتاح محمي — فتظهر كما أرسلها الخادم تماماً في نافذة "ورد طلب من الخادم" وتجيب عليها بنفسك. حتى لا يُقفَل الحساب، تُدخَل كلمة المرور المحفوظة تلقائياً مرة واحدة فقط، ويُسأل عنها ثلاث مرات على الأكثر.

للتوقف عن كتابة كلمة المرور

انقر بزر الفأرة الأيمن على الخادم واختر تسجيل مفتاح عام على هذا الخادم… لرفع المفتاح العام الموجود في ‎~/.ssh‎ إلى الخادم. بعدها يتم الاتصال بالمفتاح.

كلمة المرور المحفوظة موجودة فقط في سلسلة مفاتيح macOS. في ملف الإعدادات تبقى فقط إشارة إلى أنها "محفوظة"، ولا تُخزَّن القيمة نفسها فيه.

خادم غير معروف، ومفتاح مضيف تغيّر

عند الاتصال بخادم لأول مرة، يعرض Berth نوع المفتاح وبصمته ويسأل إن كنت تريد تذكّره. إذا تذكّرته، يُكتَب في ‎~/.ssh/known_hosts‎ بنفس صيغة ssh، فلا يُسأل مرة أخرى.

يظهر أيضاً حين تكون هوية الخادم مختلفة عن المرة السابقة. قد يكون هجوم وسيط، أو ربما أعدت تثبيت الخادم فحسب. لا يقرر Berth بدلاً منك، بل يعطيك المعطيات — نوع وبصمة المفتاح القديم والجديد، وحتى الأمر الذي يمكنك تنفيذه مباشرة في طرفية الجهاز للمقارنة. بعد التأكد، إذا ضغطت "حذف المفتاح القديم وتذكّر الجديد" يُحذَف المدخل القديم (مع نسخة احتياطية في known_hosts.old) ويُكتَب المفتاح الجديد.

💡 بالنسبة لجهاز تراه هذه النافذة في كل مرة، مثل لوحة تطوير يُعاد تهيئتها كثيراً، يمكن تفعيل عدم تذكّر مفتاح المضيف من إعدادات ذلك الخادم. لا يُعدَّل known_hosts حتى يبقى الخطر مقتصراً على ذلك الجهاز وحده. لا يُفعَّل هذا في تصنيف الإنتاج.

لوحة الملفات (SFTP)

الرفع والتنزيل

اليسار هو جهاز Mac، واليمين هو الخادم. اسحب وأفلت، أو استخدم ⌥⌘→ (رفع) · ⌥⌘← (تنزيل) للإرسال. يتراكم التقدّم في صف النقل.

لوحة الملفات التي تتبع الطرفية

عند تنفيذ cd في الطرفية، تتبع اللوحة البعيدة المجلد نفسه. عندما يعيق هذا التتبّع العمل، أوقفه بـ⌘⇧L.

الأماكن المتكررة · طرق العرض

عرض الفروقات

بتفعيله عبر ⌘⇧Y يُقارَن المحلي والبعيد جنباً إلى جنب، ويظهر ما هو مختلف وما هو موجود في طرف واحد فقط. استخدمه عندما تريد إرسال ما تحتاجه فقط.

🌏 يكتب Mac وLinux أسماء الملفات الكورية واليابانية والفيتنامية بترميز بايت مختلف. يطابق Berth الأسماء فقط عند إجراء المقارنة، فلا يظهر الملف نفسه وكأنه "موجود في طرف واحد فقط". أما النقل الفعلي فيستخدم الاسم كما هو مخزَّن في الخادم.

حذف

⌘⌫ ينقل افتراضياً إلى سلة المهملات على جانب الخادم، ويطلب دائماً تأكيداً. في خادم أُوقفت فيه سلة المهملات، يُنبَّه مسبقاً بأن العملية لا يمكن التراجع عنها.

⌨️الطرفية

هذه شل حقيقية تعمل فيها vim وtmux وless كما هي. حدّد النص بسحب الفأرة وانسخه بـ⌘C، فيُلصَق الأمر نظيفًا دون مسافات الحشو في نهاية السطر.

تأكيد قبل اللصق

عند لصق عدة أسطر، يُعرَض أولاً ما سيُنفَّذ. لأن اللصق الذي يحوي فواصل أسطر يتحول فوراً إلى أوامر. ما يبدو خطيراً يُعرَض مع السبب.

التكبير

⌘↩ يكبّر المنطقة الحالية، واضغطه مجدداً للعودة. ⌥⌘↩ يكبّر لوحة واحدة فقط. حجم الخط يُضبَط بـ⌘+ · ⌘- · ⌘0. امسح الطرفية بـ ⌘L — تُمحى الشاشة وسجل التمرير، ويبقى سطر الموجّه الحالي فقط.

🔌وحدة التحكم التسلسلية (UART)

اختيار الجهاز

بـ⌃⌘N أضِف وحدة تحكم تسلسلية، واختر الجهاز الموصول من الإعدادات. لا يتذكّر Berth المسار بل الجهاز نفسه — بالرقم التسلسلي إن وُجد، وإلا فبنوعه. حتى لو وصلته بمنفذ USB آخر، يجد الجهاز نفسه.

💡 هذا الرقم التسلسلي هو رقم ما يُعدَّد عبر USB. إذا كنت تستخدم محوّل USB-تسلسلي، فإن ما يُحفَظ هو المحوّل نفسه، فإذا استبدلته وجب عليك الاختيار من جديد.

السرعة وإعدادات الخط

تُختار السرعة من القائمة أو تُكتَب مباشرة (تُقبَل قيم خارج المعيار أيضاً مثل 1,500,000 — يجب أن تكون قيمة يدعمها المحوّل). الافتراضي هو 8N1 · بلا تحكم بالتدفق، وهو ما تستخدمه معظم وحدات التحكم.

⚠️ في UART بلا تحكم بالتدفق، قد يتوقف الجهاز عن الإرسال أثناء اتصال مستمر أو كثيف البيانات. هذه ليست مشكلة في هذا التطبيق وحده بل خاصية في الخط نفسه (تحدث مع أي برنامج آخر على الكابل نفسه)، والحل الجذري هو تفعيل التحكم بالتدفق مع كابل من 4 أسلاك أو خفض السرعة من جهة اللوحة.

لوحة السجل

في جلسة تسلسلية، تتراكم على اليمين الأوامر التي تكتبها وردودها مع الوقت. يُخفى الإدخال في المواضع التي تُطلب فيها كلمة مرور.

اختصارات لوحة المفاتيح

تتضمن اختصارات التطبيق دائماً . أما تركيبات · فهي لِلشل ولواجهات TUI (مثل vim وtmux)، لذا لا يستولي عليها التطبيق.

⌨️ لا حاجة إلى الفأرة. لكل إجراء هنا اختصار — صُمّم لمن يفضّلون إبقاء أيديهم على لوحة المفاتيح.
المفتاحالوظيفة
⌘N · ⌃⌘N · ⌘⇧Nإضافة خادم · إضافة وحدة تحكم تسلسلية · إنشاء مجلد
⌘I · ⌘⇧Iإعدادات هذا الخادم · الاستيراد من ‎~/.ssh/config‎
⌘Kإلى أين — البحث بالاسم والانتقال مباشرة
⌘1⌘9تبديل الجلسة
⌃⌘← الانتقال بين اللوحات
⌘↩ · ⌥⌘↩تكبير / استعادة · تكبير هذه اللوحة فقط
⌘⇧S · ⌥⌘↑ ⌥⌘↓الشريط الجانبي · تحريك الفاصل
⌥⌘→ · ⌥⌘←رفع · تنزيل
⌘D · ⌘R · ⌥⌘Nتثبيت المسار أو إلغاؤه · إعادة القراءة · مجلد جديد
⌘↓ · ⌘↑ · ⌥⌘Tالدخول · التراجع · شجرة↔قائمة
⌘⌫ · ⌘⇧Fالحذف من الخادم البعيد · البحث في الخادم
⌘⇧V · ⌘⇧L · ⌘⇧Yالمسار إلى الطرفية · تتبّع الطرفية · عرض الفروقات
⌘+ ⌘- ⌘0 · ⌘⇧Wحجم الخط · إغلاق هذه الجلسة
⌘L · ⌘] ⌘[مسح الطرفية · تبديل تبويبات اللوحة اليمنى
⌘C · ⌘⇧P · ⌘⇧U · ⌘?نسخ · حفظ في السجل · إعادة إرسال البيان · دليل المستخدم

الأسئلة الشائعة

أين تُحفَظ كلمة المرور؟

تُحفَظ فقط في سلسلة مفاتيح macOS. في ملف الإعدادات تبقى فقط إشارة إلى أنها "محفوظة". تُفتَح سلسلة المفاتيح مرة واحدة فقط، لحظة الاتصال.

هل يجمع التطبيق بيانات استخدام؟

لا. لا يحتوي التطبيق على أي تتبّع. لا يُحصى ما تفتحه ولا الخوادم التي تتصل بها.

تتوقف وحدة التحكم التسلسلية في منتصف الطريق.

هذه خاصية في الخط تظهر مع الاتصال الكثيف على UART بلا تحكم بالتدفق. إذا كان الكابل من 4 أسلاك، فعّل التحكم بالتدفق (RTS/CTS) من الإعدادات، وإذا كان من 3 أسلاك فاخفض السرعة من جهة اللوحة أو قسّم الناتج إلى أجزاء أصغر.

هل يجب إعادة كتابة إعدادات SSH التي كنت أستخدمها؟

لا. عند الاستيراد من ‎~/.ssh/config‎ يتم الاتصال بالاسم المستعار كما هو، وتُقرأ من ذلك المدخل قيم المضيف والمنفذ والمستخدم والمفتاح وProxyJump وتُستخدم.

لديّ إعداد يستخدم ProxyCommand.

ProxyCommand يشغّل برنامجاً خارجياً، لذا لا يمكن استخدامه في الصندوق الرملي الخاص بـ App Store. إذا كان إعدادك يمر بمضيف قفز، يكفي تغييره إلى ProxyJump ليعمل بنفس الطريقة. كما لا يعمل ssh-agent للسبب نفسه؛ تُقرَأ ملفات المفاتيح مباشرة، وإن كان المفتاح محمياً بكلمة مرور تُطلب عند الاتصال.

ما إصدارات macOS المدعومة؟

macOS 14 (Sonoma) فأحدث، ويعمل على Apple Silicon وIntel كليهما.

إذا كان هذا مفيداً

Berth مجاني. يمكنك المساهمة في تطويره عبر دعم المشروع.