يُعدّ تطبيق Terminal في نظام macOS بمثابة أداة مساعدة للمستخدمين الفضوليين والمتقدمين: فهو يتيح لك تشغيل أوامر النظام في واجهات مثل Bash أو Zsh، ويحتفظ بسجلّ لما تفعله أسفله. هذا السجل هو سجل الأوامروباستخدامه يمكنك مراجعة التعليمات والبحث عنها وإعادة استخدامها دون الحاجة إلى إعادة كتابتها من الصفر.
ومع ذلك، قد يُصبح هذا التاريخ نفسه مشكلة تتعلق بالخصوصية إذا كنت تشارك معدات أو تتعامل مع بيانات حساسة. لذلك، من المهم إتقان كيفية الاستعلام والبحث والحذف سجل الجلسة والمستمر على القرص، بالإضافة إلى ضبط سلوكه لجعله أكثر فائدة وأمانًا في حياتك اليومية ودمجه مع التنظيف التلقائي للملفات المؤقتة.
ما هو التاريخ وكيف يعمل على macOS (Bash و Zsh)؟
في نظام macOS، يعتمد تطبيق Terminal على مُفسِّر أوامر (shell). في الإصدارات الحديثة، يكون shell الافتراضي هو Zshعلى الرغم من أن العديد من المستخدمين لا يزالون يستخدمون سحقيقوم كلاهما بحفظ سجل الجلسة في الذاكرة وأيضًا في ملف مخفي في مجلد المستخدم الخاص بك: ~/.zsh_history لـ Zsh و ~ / .bash_history لباش.
يمكنك التنقل بين الأوامر الحديثة باستخدام الأسهم لأعلى/لأسفل، بالإضافة إلى عرض القائمة على الشاشة. يُعدّ التمييز بين سجل الذاكرة والملفات الدائمة أمرًا بالغ الأهمية: المؤقت يتم فقدها عند تسجيل الخروج إذا قررت إفراغها، بينما المستمر يتم تخزينه بين الجلسات حتى تقوم بحذفه أو تعديله.
كيفية عرض سجل المحطة الطرفية على جهاز Mac
هناك طريقتان عمليتان لمراجعة ما نفّذته: إما استدعاء أمر shell الذي يسرد السجل، أو قراءة الملف المخفي الذي يخزّنه. كلتا الطريقتين بسيطتان ومتكاملتان، وستتيح لك مراجعة مئات أو آلاف الإدخالات إذا قمت بتكوينه بهذه الطريقة.
- التحقق من التاريخ الأخير على الشاشة باستخدام تاريخ (باش و زش):
-
history history 20 history | head -n 10 history | less - مع تاريخ ستشاهد القائمة الكاملة التي يحتفظ بها الغلاف في الذاكرة؛ بإضافة رقم، مثل
history 20، فإنك تقصر الإخراج على أحدث المدخلات. إذا قمت بدمجه معheadأو معlessيمكنك ترقيم الصفحات أو عرض الصفحة الرئيسية فقط، وهو أمر مفيد عندما تكون القائمة طويل جدًا.
-
- إقرأ ال أرشيف تاريخي دائم: في Bash هو في
~/.bash_historyوفي Zsh في~/.zsh_history.يمكنك فحصه باستخدام:
cat ~/.bash_history cat ~/.zsh_history less ~/.zsh_history
اعتمادًا على إعداداتك، قد تكون هناك اختلافات بين ما تراه مع history وما يحتويه الملف. متغيرات مثل ارتفاع (الذاكرة) و حجم الملف (الملف) يتحكم في هذه الحدود، والتي يتم ضبطها في العديد من الأدلة عند 1000 و2000 على التوالي، على الرغم من قد يختلف على نظام التشغيل macOS اعتمادًا على الغلاف وملفك الشخصي.
أوامر البحث وإعادة استخدام السجل (grep وCtrl+R والتوسيع)
عندما يصل مجموع الأسطر في السجل إلى مئات، فمن الطبيعي الاعتماد على المرشحات. الطريقة الأكثر مباشرة هي البقرى، مما يسمح لك بتحديد الأسطر التي تحتوي على كلمة أو نمط بغض النظر عن الحالة، مما يؤدي إلى تسريع عملية البحث بشكل كبير.
history | grep -i sudo
المعدِّل -i هل يقوم بالبحث غير حساس لحالة الأحرفبهذه الطريقة، يمكنك تضييق نطاق البحث في سجلّ من مئات الإدخالات إلى عدد قليل من التطابقات ذات الصلة. لمزيد من التحسين، يمكنك استخدام التعبيرات العادية الموسعة:
history | grep -E 'apt.*--purge' history | grep 'apt\|--purge'
لتحديد آخر أمر يحتوي على مصطلح بشكل تفاعلي، استخدم البحث العكسي باستخدام CTRL + R إنه مريح للغاية: اضغط على المجموعة، واكتب جزءًا من الأمر، وانتقل إلى المباريات السابقة عن طريق التكرار CTRL + R حتى تجد ما تريد تشغيله.
بمجرد تحديد موقع الطلب حسب رقم السطر الخاص به (العمود الأيسر الذي يظهر history) ، يمكنك ذلك أعد تشغيله بدون إعادة كتابته مع توسع الإعجاب:
!281 # ejecuta la entrada con número 281 !! # repite el último comando
من الممكن أيضًا ربط عدة أرقام، على الرغم من تذكر أن الحرف & يُطلق عمليات خلفية، ومن الجيد معرفة ما تفعله قبل دمج إدخالات السجل بهذه الطريقة. المفتاح هو تجنب الأخطاء مع الأوامر المدمرة المحتملة.
مسح السجل على جهاز Mac: الجلسة الحالية والملف الدائم
هناك حالتان شائعتان عند التنظيف: إزالة ما تم تحميله في الجلسة (الذاكرة) وحذف الملف الدائم أو إفراغه. من الضروري فهم الفرق لتجنب أي آثار غير مقصودة، أو حذف أكثر من اللازم. في كلتا الحالتين، اصنع نسخة إذا كنت تعتقد أنك ستحتاج إلى التاريخ لاحقًا.
مسح تاريخ الجلسة الحالية
في باش، إفراغ القائمة المحملة إنه أمر بسيط مثل الجري:
history -c
في Zsh، يستشهد العديد من الأدلة التاريخ - ص مثل "التطهير"، ولكن في الواقع -p توسيع الأحداث الماضية دون حفظها؛ لمسح القائمة استخدم أيضًا التاريخ -جإذا كنت تريد تجاهل التغييرات بطريقة أكثر تقدمًا في Zsh، فيمكنك إنشاء "مكدس محلي" باستخدام fc -p، ولكن لمسح التاريخ في الذاكرة التاريخ -ج ومن المتوقع ذلك.
حذف أو اقتطاع الملف المستمر
إلى اتركه فارغا أو احذف سجل القرص، يمكنك حذف الملف أو تركه فارغًا. في Zsh:
rm ~/.zsh_history # elimina el archivo : > ~/.zsh_history # lo trunca a tamaño 0
وفي باش:
rm ~/.bash_history : > ~/.bash_history
تظهر بعض الأدلة اختلافات مثل echo ' ' > ~/.zsh_history (الذي يترك مساحة في الملف) أو حتى rm > ~/.zsh_history (وهذا غير صحيح). الطريقة النظيفة على نظام macOS هي نقل o قطع مع إعادة التوجيه أو مع truncate إذا كان متاحًا لديك.
لضمان عدم استبدال الإدخالات عند تسجيل الخروج، أغلق جميع نوافذ الطرفية قبل الحذف، ثم أعد فتحها لاحقًا. إذا كنت ترغب في فرض الكتابة/القراءة، فتذكر هذه الأوامر الفرعية (Bash):
history -w # escribe la historia actual al archivo history -a # añade nuevas entradas al archivo history -r # lee el archivo y lo carga a memoria
النمط المفيد لتنظيف الذاكرة والملفات في Bash هو:
history -c && history -w
ضع في اعتبارك أنه بعد التفريغ، سيتم تنفيذ الأوامر أثناء عملية الحذف نفسها (مثل rm) إذا كانت مكتوبة في النهاية. لهذا السبب من المهم إغلاق وإعادة فتح المحطة الطرفية، وإذا كان ذلك ممكنًا، استخدم history -w بوعي.
إعادة تسمية واستعادة التاريخ

إذا كنت تفضل عدم الحذف بشكل دائم، يمكنك إعادة تسمية الملف واحفظه. على سبيل المثال، في Bash:
mv /Users/tu_usuario/.bash_history ~/.bash_history_old rm /Users/tu_usuario/.bash_history 2>/dev/null || true mv ~/.bash_history_old ~/.bash_history
قد يحتفظ الجهاز نفسه بذاكرة مؤقتة للقائمة، لذا يُنصح أغلق وافتح قم بتشغيل التطبيق في كل مرة تقوم فيها بإعادة تسمية الملف أو استعادته لرؤية التغييرات في سلوكه history.
ضبط سلوك السجل (الحجم، التكرارات، الأوقات)
لتكييف السجل مع احتياجاتك، عدّل ملف تعريف shell الخاص بك. في Bash، يُستخدم عادةً ~ / .bashrc o ~ / .bash_profile، وفي Zsh ~ / .zshrc o ~/.zprofile. افتح الملف باستخدام محرر النصوص المفضل لديك:
nano ~/.bashrc # Bash nano ~/.zshrc # Zsh
سعة التاريخ (Bash):
HISTSIZE=30000 HISTFILESIZE=40000
حتى تتمكن من رؤية ما يصل إلى 30.000 انتراداس في الذاكرة، وحفظ ما يصل إلى 40.000 في الملف. عدّل القيم حسب رغبتك. في Zsh، يتم التحكم في الحجم الرئيسي باستخدام HISTSIZE والملف مع SAVEHIST.
التكرارات والأوامر ذات المسافات البادئة (Bash):
HISTCONTROL=ignoreboth # equivale a ignorespace,ignoredups # Alternativas: # HISTCONTROL=ignorespace # HISTCONTROL=ignoredups # HISTCONTROL=ignorespace,erasedups
مع ignorespace لا يتم حفظ الأوامر التي تبدأ بمسافة؛ مع ignoredups لا يتم تسجيل أي تكرارات متتالية؛ مع erasedups يتم الاحتفاظ فقط بآخر ظهور لكل أمر. هذه المرشحات مفيدة لحفظ السجل. نظيفة ومفيدة.
الطوابع الزمنية (Bash):

HISTTIMEFORMAT="%F %T: " # Año-mes-día hora:minuto:segundo
مع هذا المتغير، history سيعرض تاريخ ووقت كل إدخال. في Zsh، إذا كنت مهتمًا بالأوقات المفصلة، ففعّل setopt EXTENDED_HISTORY وسوف يقوم Zsh بإضافة طوابع زمنية بالدقة الثانية إلى الملف.
تجنب فقدان الأوامر مع النوافذ المتعددة (Bash):
shopt -s histappend
لذا بدلاً من الكتابة فوق الملف، سيذهب Bash ضم إدخالات جديدة. إذا كنت بحاجة إلى المزامنة "فورية" بين الجلسات، يمكنك استخدام PROMPT_COMMAND في باش:
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
تضيف هذه الحيلة آخر أمر مُنفَّذ إلى الملف، وتمسح الذاكرة، وتُعيد تحميل الملف عند كل مُطالبة، مما يُفرض ترتيبًا أكثر اتساقًا مع ما تفعله بالتوازي. استخدمها بحكمة لأن يعدل الدورة تحديث التاريخ.
أمثلة عملية: القائمة، التصفية، حذف أسطر معينة
بعض الوصفات النموذجية التي تساعدك على اكتساب الثقة: اكتب قسمًا قصيرًا، انظر إلى بدايته، ابحث بالكلمة، ثم نفّذ سطرًا محددًا دون إعادة كتابته. كل هذا يساعدك. توفيرا للوقت وتجنب الأخطاء الكتابية.
# Mostrar los últimos 20 comandos env HISTTIMEFORMAT="%F %T: " history 20 # Ver las 10 primeras entradas cargadas en memoria history | head -n 10 # Filtrar por una palabra y ejecutar por número history | grep apt !1884 # Borrar una entrada específica en Bash history -d 500
تذكر أن تبدأ السطر بمسافة (إذا كنت تستخدم HISTCONTROL=ignorespace) سيمنع حفظه، وهو أمر مفيد عندما تنوي كتابة شيء تفضله لا تسجل مؤقتا في التاريخ.
الخصوصية والأمان: ما الذي يجب حذفه وما الذي يجب حمايته

إذا كنت تشارك جهاز كمبيوتر أو تتعامل مع أسرار (مفاتيح API، مسارات حساسة)، فمن الحكمة حذف سجل الجلسة، والملف الدائم إن وجد. كذلك، إذا كنت تدير تصفح الإنترنت أو تشارك جهاز Mac، ففكّر في: حذف سجل Safari تلقائيًا حيثما كان ذلك مناسبًا. يمكنك أيضًا تعطيل الحفظ الإعداد في Bash:
unset HISTFILE
في GNU/Linux هناك حيل مثل جعل الملفات غير قابلة للتغيير ~/.bash_history مع chattr +a لمنع الحذف، لكن هذا الأمر غير موجود على نظام macOS. بدلاً من ذلك، يمكنك استخدام chflags لتمييز الملف على أنه قابل للإضافة فقط أو غير قابل للتغيير؛ على سبيل المثال:
# En macOS, marcar inmutable (reversible con -nouchg) chflags uchg ~/.zsh_history
احذر من إغلاق الملف: إذا حدّدت الملف على أنه غير قابل للتغيير، فقد يفشل نظامك في الكتابة. تأكد من فهمك للتأثير وارجع إليه. chflags nouchg عندما تحتاج تعديل أو حذف الملف.
هناك توصية أخرى تظهر في أدلة الإدارة وهي تقييد الأصداف الأخرى التي لا تستخدمها، عن طريق تغيير أذونات الملفات القابلة للتنفيذ مثل csh, tcsh o ksh. في نظام macOS، سيتعين عليك ضبط الثنائيات الصحيحة (على سبيل المثال، /bin/csh)، ودائمًا ما أعلم أن لمس أذونات النظام قد يؤدي إلى آثار جانبية في المستخدمين والأدوات.
كملاحظة أخلاقية: إذا ارتكبت خطأً جسيمًا مع rm -rfحذف السجل لا يُصلح الضرر، وفي بيئات العمل، قد يُخالف السياسات. التصرف المسؤول هو احتفظ بالسجل الحادث، والاستعادة من النسخ الاحتياطية، وتعلم التدابير الوقائية (الأسماء البديلة الآمنة، والالتزامات، وسلة محذوفات zsh، وما إلى ذلك).
استكشاف الأخطاء وإصلاحها عند استخدام السجل

- بناء الجملة واستخدام الأحرف الكبيرة: نظام macOS حساس لحالة الأحرف في العديد من السياقات. فهو يتحقق من المسافات والواصلات و تهجئة الأوامرمثال نموذجي:
% opne -a TextEdit.app zsh: opne: command not found
- التحقق من الطرق:إذا لم يتم العثور على شيء، تحقق من المسارات باستخدام:
echo $PATH
إذا كنت بحاجة استعادة يمكنك تصدير PATH الأساسي في ملفات تعريف Bash أو Zsh على النحو التالي (اضبطه إذا كنت تستخدم Homebrew على Apple Silicon):
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
حفظ التغييرات في ~ / .bash_profile o ~ / .zshrc وإعادة شحنها مع sourceإذا لم يتمكن الجهاز الطرفي من القراءة/الكتابة إلى الدليل الخاص بك، فتحقق من تفضيلات النظام > الأمان والخصوصية > الوصول الكامل إلى القرص.
ما هي الواجهة التي تستخدمها: تأكد مما إذا كنت تستخدم Bash أو Zsh، وعدّل الملفات التي تُعدّلها والمتغيرات/الخيارات. يميل نظام macOS الحديث إلى استخدام Zsh، لذا قد يهمك الأمر. نقل إعداداتك a ~/.zshrc.
– إصدارات macOS: هناك فروق دقيقة بين الإصدارات؛ إذا لم يعمل أحد المفاتيح بنفس الطريقة، فاستشر تاريخ الرجل, رجل باش o رجل زش لرؤية تفاصيل نظامك المحدد.
خدعة إضافية في لوحة المفاتيح: تكرار الأحرف بدلاً من اللهجات البديلة
شاشات macOS متغيرات شخصية عند الضغط باستمرار على مفتاح (مفيد للعلامات التشكيلية). إذا كنت تفضل تكرار الحرف عند الضغط عليه باستمرار (كما في Windows)، يمكنك تغيير ذلك باستخدام:

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool FALSE
أعد تشغيل التطبيقات المتأثرة لتطبيق التغيير. للعودة إلى السلوك الأصلي للمتغيرات، استخدم:
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool TRUE
لا يؤثر هذا الإعداد بشكل مباشر تاريخ، ولكنه يحسن الكتابة في Terminal إذا قمت بتكرار المفاتيح بشكل متكرر (على سبيل المثال، الضغط باستمرار على السهم لأعلى للتنقل في السجل).
بديل من جهة خارجية للتنظيف العام (الخصوصية والذاكرة المؤقتة)
إذا كنت مهتمًا، بالإضافة إلى تاريخ shell، بكل ما يتعلق بالتتبعات في النظام (ذاكرة التخزين المؤقت وملفات تعريف الارتباط والتنزيلات والسجلات)، فهناك مجموعات تنظيف تعمل على مركزية المهام ويمكنك استكمالها بأدلة لـ مسح ذاكرة التخزين المؤقت لمتصفح Safariتذكر بعض الأدلة أدوات مثل ماكيوب، والتي تعد بتحديد ملفات البيانات القديمة والمكررة والمؤقتة وملفات التصفح للحذف الموجه.
وفقًا لهذه الأوصاف، يتضمن التطبيق وحداتٍ للخصوصية وتحسين القرص، ويستخدمه عددٌ كبيرٌ من المستخدمين. ليس ضروريًا لإدارة تاريخ، والذي يعمل بشكل مثالي مع الأوامر الأصلية، ولكن يمكن أن يساعدك في تدقيق وتنظيف ملفات النظام أو المتصفح الأخرى بشكل دوري.
يتكون التدفق النموذجي في هذا النوع من البرامج من: 1) المسح، 2) معاينة ما تم اكتشافه (ملفات تعريف الارتباط، والسجل، والذاكرة المؤقتة) و3) تأكيد ما يجب حذفه؛ من المستحسن دائمًا مراجعة العلامات بعناية حتى لا حذف شيء مفيد بسبب الإهمال.
إتقان الأمر تاريخ يتيح لك نظام macOS العمل بشكل أسرع مع أخطاء أقل: يمكنك مراجعة ما أنجزته والبحث فيه، وتكراره فورًا، وتعديل كمية المعلومات التي تحفظها وتنسيقها. إذا كنت تعرف كيفية تنظيف الجلسة والملف الدائم، فقم بتكوين HISTSIZE/HISTFILESIZE/HISTCONTROL، أضف الطوابع الزمنية واستفد من مجموعات مثل Ctrl+R o grep، سيكون لديك تاريخ مفيد حقًا؛ ومع إرشادات استكشاف الأخطاء وإصلاحها (PATH، والأذونات، والغطاء الصحيح) وملاحظات الخصوصية، ستضمن أن عملك في Terminal فعالة وآمنة من البداية إلى النهاية.

