تعرف على لغة البرمجة كوتلن، منافسة الجافا الحديثة

Kotlin و من منا لم يسمع عن هذا الدخيل الجديد الذي يهدد عرش Java , كيف لا و قد تم تطويرها من قبل شركة معروفة في تطوير أدوات المبرمجين هي JetBrains وذلك في سنة 2011 , و لم تلبث هذه اللغة حتى حازت على الاهتمام من مواقع وصفحات تكنولوجيا المعلومات ، و أنا منهم بصراحة رغم أن اشتغالي في البرمجة بعيد عن تطوير تطبيقات أندرويد . لكن ما جعلني أهتم بهذه اللغة و أبحث فيها قليلا هو خبر اعتمدها من قبل شركة Google كلغة رسمية لتطوير تطبيقات الأندرويد , هذا الخبر الذي كان كالصاعقة حينها على محبي Java ، لكن سرعان منقشع الغبار ، في الحقيقة لم يكن الأمر بذلك السوء ، فالواقع أن Java تستمر و تعتمد Kotlin أيضا دونما أي تعارض أو إقصاء ، أعتقد ألان أن أغلب القراء الكرام قد أصيبوا بالحيرة و ما الجديد في كل هذا ، نعم الجديد الذي سأحول أن اقدمه هذا اليوم هو : ليس الخبر بل هو تعريف بلغة Kotlin و بالتسهيلات التي تحملها معها لك كمبرمج ، فتابع معي .


ملاحظة : التعريف عام ، فهو لا يتطلب منك أي خبرة في لغة محددة أو مجال محدد ، إنما هي مفاهيم عامة في البرمجة تمكننا من التعرف أكثر على هذه اللغة .

تعريف باللغتين :

فلنبدأ مع لغة Java : في البداية لغة الجافا هي اللغة المستخدمة في تصميم وكتابة التطبيقات والألعاب أيضا ، أما لغة Kotlin فهي لغة برمجة مفتوحة المصدر من تطوير نفس الشركة التي تتعاون معها Google في تطوير منصة Android Studio وهي شركة JetBrains وهي متوافقة بشكل كامل مع حزمة تطوير جافا JDK ، وتتيح كتابة الشيفرة البرمجية بعدد أقل من الأسطر وبشكل أسرع وأكثر فعالية مقارنة مع لغة java , سنتعرف على هذه المميزات أكثر في الفقرة القادمة .

المهم هنا هو أنا Java و Kotlin يعملان على نفس بيئة العمل (JVM). هذا ليس كل ما في الأمر إنما يمكن أن يعمل كلاهما مع الآخر بشكل جيد . فقد اختبر البعض برمجيات تعمل على جافا مع إضافة أجزاء برمجية مكتوبة بلقة كوتلين و أيضا العكس , دون حصول اي مشاكل في البرنامج إلا نادرا. وهذا يعني انه يمكنك عدم الاستغناء الكلي عن برمجياتك القديمة في جافا خاصة الكبيرة منها إنما إعادة بناء وتطوير إضافات عليها في لغة كوتلين, طبعا هذا اختياري .



لكن لماذا لغة جديدة ؟, السبب هو أن التطور السريع في عالم البرمجيات يعني دائما أن عمر اللغات الافتراضي قصير نسبيا فما تقدمه اللغة اليوم على انه حديث ويساهم في تطوير برمجيات افضل و بشكل أسرع , سيصبح بعد سنوات قليلة قديم و يسبب عبئ كبير على المبرمجين الذين يسعون دائما لتطوير برمجيات اكثر تفوقا وبسرعة اكبر وجهد اقل .

إقرا أيضا :

بالطبع يجب أن أذكر أولاً أن Kotlin ليست هنا لتحل محل Java ليس بشكل رسمي ، فالدعم مستمر و أي كود يكتب Java سيعمل مع Kotlin والعكس صحيح , لكن اللبيب يفهم بالإشارة ، فا Google ضاقت ذرعا من دعوات أوراكل التي لا تنتهي . أيضا و كما نعلم عمر لغة الجافا 23 عاماً، أنشأتها أوراكل Oracle لتكون متوافقة مع ما سبقها، مما يعني أنه على كل نسخة جديدة أن تدعم ميزات موجودة في النسخ التي سبقتها. ولذلك مع كل تحديث يصبح من الأصعب تضمين ميزات جديدة، ونتيجة لهذا التراكم فإن كاتبت كود يقوم بمهمة بسيطة يمكن أن يتحول إلى حوار فلسفي مع IDE، "طبعا هذا من باب المزاح"، و على النقيد من ذلك فاللغات الحديث نسبيا مثل Python مثلا تقوم بإقصاء الأجزاء السابقة من الكود لحل هذه المعضلة بحيث أن الكود القديم المكتوب بي Python2.7 لن يعمل على الإصدار Python3.6 و مع كل إصدار تحسين جديد وحلول جديدة لتوفير الوقت، طبعا لهذا عيوبه أيضا، لكن هذا ليس بموضوعنا اليوم .


مقارنة بين Java و Kotlin في مجموعة من النقاط :

و الآن لنقم بمقارنة بين Java و ما تحمله Kotlin من الجديد : أولا يبدو أن احد اكثر الأسباب التي يتداولها مبرمجوا لغة Kotlin هو أن لغة Kotlin تحتاج لكود أقل في تطوير البرمجيات , كما أنها قدمت بعض الأكواد الجاهزة والمبنية بشكل جيد لتسهيل البرمجة وإعداد برامج اكثر كفاءة. هذا بالإضافة لان لغة Kotlin أسهل بكثير لتعلمها من لغة Java لكن من جهة أخرى كل من هو متمكن في لغة جافا يمكنه وخلال فترة قصيرة جدا تعلم لغة كوتلين . فالأساس هنا هو الخوارزميات و المبادئ و المفاهيم البرمجية العامة، فالبرمجة طريقة تفكير و ليست لغة أخرى تتقنها .

مع التأكيد بأن كلا اللغتين يعملان على نفس بيئة العمل وكلاهما ينتجان نفس الكود تقريبا عند عملية الترجمة ( Java bytecode) لذا لا يبدو أن Kotlin اسرع , و لكن يمكن القول أن Kotlin اعدت بعض البرمجيات الخاصة لتسريع عملية البرمجة بالإضافة لبنائها بشكل جيد , فهذا يعني ان البرمجيات المبنية على كوتلين تفادت الكثير من الأخطاء البرمجية والتي تؤثر على كفاءة وأداء البرامج خاصة (Data classes) .



دعونا نتعمق اكثر في هذه المشاكل التي تم حلها مع Kotlin، والتي كانت تواجه برمجيات جافا حيث تسبب التوقف الفجائي للبرامج (crushes). أولا تم تفادي مشكلة (null references) والتي كانت تعاني منها العديد من برمجيات جافا. كما أن آليات البرمجة حديثة , كيف ذلك؟ :

توليفة برمجية هي parameter لتوليفة أخرى : إن سبق لك التعامل مع لغة JavaScript فلا بد انك شاهدت أو استعملت التوليفات البرمجية (functions) كقيمة مرجعية (parameter) لتوليفة أخرى. هذا ممكن في جافا ولكن بطريقة طويلة وكود أكثر . وكما ذكرنا سابقا فإن Java في إصدارها الجديد , أضافت بعض المميزات مثل lambdas ولكنها للأسف لا تعمل في برمجة اندرويد حتى الآن وباستخدامك برمجة كوتلين يمكنك الاستفادة من هذه المميزات بسهولة.



توليفات إضافية : قد تحتاج احيانا لإضافة توليفة لنموذج (class) دون الحاجة لتوريثه. مثلا انت ترغب في إضافة توليفة جديدة على نموذج (String) لنسميها مثلا XYZ انظر كم هو سهل إضافتها في كوتلين وفي اي مكان في داخل الكود الخاص بك يمكنك إضافة
كود كوتلين :
StringExtensions.kt
fun String.XYZ(): String {
// … make the XYZ and return it
}
نموذج البيانات (Data classes) : كما ذكرت سابقا فإن Kotlin أعدت مجموعة من النماذج الجاهز والتي تساهم في تسريع عملية البرمجة واهم هذه النماذج , هو نموذج البيانات والذي من خلاله ستتمكن من إعداد نموذج متكامل من خصائص وتوليفات خاصة بتعديل القيمة وجلبها دون الحاجة لكتابة كل ذلك.


خلاصة : يمكننا القول بأن لغة Kotlin جيدة جدا في أختصار الوقت أثناء البرمجة ، فهي تقدم العديد من التسهيلات التي ما كنا لنحلم بها كمبرمجين على Java ، كما أن هذه اللغة لم تأتي لتزيح Java كليا و بمرة واحدة، وهذا كان ليكون خطء فادحا من Google لو حصل ، بل هي متوافقة معها و يمكن كتابة Code خاصتها مع Java و استعماله بكل يسر فالبيئة واحدة ، و أعتقد من باب النصح أن لهذه اللغة مستقبلا مهما في هذا المجال ، لهذا قد تكون إضافة مفيدة جدا لمهاراتك لو كنت من مبرمجي Java.

شكرا على متابعتك ، و إلى موضوع قادم بإذن الله .

تعرف أكثر على الثغرة الخطيرة المتداولة في معالجات Intel

أهلا بزوارنا الكرام , لا يخفى على أحد حديث الساعة عن ثغرة أمنية تم اكتشافها بمعالجات أنتل خصوصا التي تم تصنيعها في العقد الماضي , لكن المهم هنا أن هذه الثغرة لم تكن الوحيدة المكتشفة , فقد أماط باحثون "اللثام" عن مجموعة من الثغرات الأمنية التي قالوا إنها قد تتيح للمتسللين سرقة معلومات حساسة من كل جهاز حاسوب حديث تقريبا يحتوي على رقائق من شركات Intel و كذلك معالجات ARM , لكنها تتفاوت في الخطورة , خصوصا و أن ثغرة Intel الأمنية ستتطلب تعديلات على النواة من أجل إصلاحها و هذا قد يأذى حسب بعض الباحثين إلى انخفاض أداء هذه المعالجات بنسب متفاوتة بين أنظمة التشغيل , كما تتفاوت هذه النتائج مع مختلف إصدارات هذا المعالج .


تفاصيل الخبر :

و يتوقع من هذا التحديث المعتمد به إصلاح العلة أن يقلص أداء المعالج من 5 إلى 30 % على نظام لينكس حسب إصدار المعالج , وإلى غاية 50% على نظام Windows طبعا وتتفاوت النسب أيضا فبعض التوقعات لا تتجاوز 30% في انخفاض الأداء , و قد قال بريان كرزانيتش الرئيس التنفيذي لشركة Intel في مقابلة مع شبكة (سي.إن.بي.سي) مساء يوم الأربعاء أن :

”الهواتف وأجهزة الكمبيوتر، كل شيء سيصيبه بعض التأثير ولكن سيختلف الأمر من منتج لآخر“.


وكشف باحثون من Google Project Zero بالتعاون مع باحثين أكاديميين في القطاع من عدة دول عن ثغرتين.
  • الأولى والمسماة (ميلتداون) تأثر على رقائق إنتل وتتيح للمتسللين تجاوز الحاجز بين التطبيقات التي يشغلها المستخدمون وذاكرة الكمبيوتر، مما قد يتيح للمتسللين قراءة الذاكرة وسرقة كلمات المرور السرية.
  • أما الثانية التي تحمل الاسم (سبتكر) فهي تخص الرقائق المنتجة من شركات (إنتل) و(إيه.إم.دي) و(إيه.آر.إم) ويمكن أن تسمح للمتسللين بخداع التطبيقات الخالية من الأخطاء للحصول على معلومات سرية أيضا .


وفي مقابلة مع رويترز، قال "دانيال جروس" أحد الباحثين بجامعة "جراز" للتكنولوجيا والذين اكتشفوا الثغرة (ميلتداون) إنها ”على الأرجح إحدى أسوأ ثغرات وحدات التشغيل المركزية المتكشفة على الإطلاق“.
وقال جروس إن (ميلتداون) مشكلة أكثر خطورة على المدى القصير ولكن يمكن معالجتها تماما من خلال برامج الإصلاح , وأضاف أن الثغرة (سبتكر)، وهي الأوسع نطاقا والتي تؤثر على كافة الأجهزة الكمبيوترية تقريبا، يجد المتسللون صعوبة أكبر في استغلالها لكن يصعب إصلاحها أيضا وسوف تمثل مشكلة أكبر على المدى البعيد.


و أصرت شركة Intel على أن المشكلة ليست في تصميم المعالج نفسه , و نقص الأداء متعلق نسبيا بحجم العمل ,ففي حالة المستخدم العادي ليس بالشيء الكبير وأنه سيتم تداركه مع الوقت . كما تدعو المستخدمين للتحقق من توفر التحديثات وتنصيبها في أسرع وقت حال نزولها, وأن يتبعو الممارسات الأمنية الجيدة للحماية لتفادي أي استغلال محتمل للثغرة , و قد صدر توزيعات لينكس الرئيسية تحديثات للنواة لمعالجة هذه المشكلة , ومن المتوقع أن تقوم مايكروسوفت بإصدار الترقيعات الخاص بها في وقت قريب لأهمية و خطورة الثغرة .

لسوء الحظ، فإن التفاصيل المتعلقة بالثغرة الأمنية نادرة نسبيا في الوقت الراهن ، حيث تفيد التقارير بأن المعلومات تخضع للحظر، ومن المفترض أن تبقيها شركة Intel سرية لمنع أن يتم استغلالها من قبل القراصنة . هذا و تأتي هذه الأنباء لصالح شركة AMD حيث ارتفعت قيمة أسهمها بنحو 8.8% مقابل انخفاض قيمة أسهم شركة Intel بأكثر من 4% بأمريكا .

تعرف على أكثر الأوامر التي تستخدمها على Terminal



نعم يمكنك أن تتعرف على أكثر الأوامر التي تقوم باستخدامها بشكل يومي على سطر الأوامر، الطريقة التي سنتبعها لتعرف على ذالك هي بسيطة جدا و تعتمد على مخرجات أمر history لديك أرجو ألا تكون قد قمت بمسح هذا الأثر لأنه مفيد بالكثير من الأشكال كما هو مفيد لنا اليوم و الأمر الذي سنطبقه هو :

history | awk '{print $2}' | sort | uniq -c | sort -rn | head -10

الآن سيظهر لك أكثر 10 أوامر استخداما لديك بالترتيب و على جانبها ستجد عدد المرات التي استخدمتها فيها بالنسبة إلي كان الأمر الأول في القائمة هو sudo بعدد استخدامات هو 275 السبب لهذا هو أن الأمر الذي قمنا بإدخاله يقوم بأخذ العنصر الأول في الأمر فقط عن طريق خاصية '{print $2}' في الأمر awk و وهو أمر يستخدم لفلترة النصوص و يتعدى ذالك بكونه لغة برمجة و كنا قد تحدثنا عن أمر مشابه له في الأمر cut لقص واستخراج جزء من النص , و بما أن أمر sudo يكون في أول أي أمر نريد تطبيقه و الوصول عبره لصلاحيات Root فلن أستغرب إن كان في المرتبة الأولى.


ثم يليه في المرتبة الثانية yaourt وهو مستودع خارجي لتوزيعة Arch Linux بعدد استخدامات 108 و في المرتبة 3 الأمر echo بعدد 88 يبدو أني كنت أقوم بالكثير من التجارب به و هذا غريب لي أيضا ! ، نعم فبعض الأوامر التي لم تتوقع أن تجدها ستجدها في ترتيب عالي ، و المرتبة الرابعة كانت من نصيب man بعدد 85 مرة نعم من الطبيعي أن يكون هذا أمر من أكثر الأوامر استخداما لأي أحد يحب التعرف أكثر على سطر الأوامر و لكي تحسن تجربتك معه لا تنسى متابعة هذا الموضوع إجعل صفحات man أكثر سهولة للقراءة و الفهم عن طريق هاته الخاصية .


و يمكننا عبر التعديل على أحد العناصر من الأمر جعله يعرض معلومات أكثر أو مختلفة فيمكننا عرض ترتيب أوامر أكثر عن طريق التعديل على قيمة "-10" من أمر head وجعلها "-20" أي أكثر 20 أمر تستخدمه على سطر أوامر وهكذا .

كان هذا كل شيء لهذا اليوم لا تنسو أن تتفاعلو معنا بترتيب أوامركم . أتمنى أن هذا الشرح البسيط كان مفيد لكم ، كان معكم أخوكم عدنان شكرا على المتابعة و لا تنسونا بصالح الدعاء

توزيعة SteamOS المختصة بلألعاب




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

شاهد أيضا:
الطريقة المثلى لتثبيت واعداد wine لتشغيل اغلب البرامج الخاص ب windows.
بعض منصات الالعاب في نظام جنو/لينكس.

توزيعة ٍSteam OS ربما هي الأفضل، مبنية على على توزيعة Debian، ما يعني استخدم نظام تحزيم deb الأمر الذي اعطى دفعة قوية لكل التوزيعات الديبيانيه مثل اوبنتو و منت في التأقلم مع العتاد و تشغيل الالعاب. تم تصميم ستيم أو إس في المقام الأول للعب ألعاب الفيديو بعيدا عن جهاز الكمبيوتر عن طريق توفير تجربة وحدة التحكم خاصة (ك Playstation و XBOX) باستخدام التي يمكن الاتصال مباشرة على التلفزيون(نتحدث هنا عن جهاز SteamOS). مع امكانية تشغيل ألعاب مصممة فقط لنظام لينكس عن طريق شرائها من متجر Steam. يمكن أيضا تشغيله من على ويندوز، ماك أو لينكس، وأنه يشتمل على نفس الخصائص فقط بتشغيل برنامج Steam على سطح المكتب. ليس هذا فقط، اذ صرحت شركة Valve أنها "ضمنت تحسينات كثيرة في الأداء في معالجة الرسومات" في توزيعتها. نظام التشغيل مفتوح المصدر، مما يسمح للمستخدمين لبناء أو التكيف مع شفرة المصدر، ما عدا برنامج Steam الذي يلعب دور العميل بين المستخدم و الشركة.يتيح لكم ستيم شراء ألعاب جديدة أو تنزيل إضافات لألعاب. بإمكانكم أيضًا تنزيل نسخ تجريبية "Demo" ومشاهدة فيديوهات شرح، بالإضافة طبعا لتنزيل اللعبة.



بعد تثبيت التوزيعة، لديك حق الوصول لعدد متنوع من الألعاب على الانترنت، وكذلك الانضمام إلى مجتمع رائع من اللاعبين من جميع أنحاء العالم. كما يمكن للمستخدمين إنشاء ومشاركة المحتوى الخاص بهم مع أعضاء آخرين كثيرين من المجتمع.
ما الالعاب التي تشتغل على التوزيعة؟
يمكن تشغيل أي لعبة Steam تدعم لينكس على ستيم أو إس.

اذ هناك ما يقرب من 2324 لعبة لينكس متاحة من خلال Steam، بما في ذلك عناوين رئيسية مثل Counter Strick Global Offensive و غيرها.




ما مدى دعم التوزيعة للعتاد؟

سابقا وضعت شركة Valve مستلزمات صارمة فيما يخص متطلبات SteamOS في البداية. في البداية، كنت في حاجة إلى معمارية 64 بت INTEL أو AMD مع ما لا يقل عن 4GB من ذاكرة الوصول العشوائي، 500GB القرص الصلب أو أكثر، و كرت شاشة NVIDIA. للحصول عليها وتشغيلها عليك أيضا بحاجة إلى 4GB الحد الأدنى USB محرك الأقراص، واللوحة-UEFI متوافق.

اليوم، ستيم أو إس متوافق مع أنظمة BIOS القديمة أيضا، فتح تأييد واسع لأجهزة الألعاب القديمة. أيضا، واجهة تدعم الآن تشغيل مزدوج، لذلك لا داعي للتضحية بنظامك الخاص.

من مميزاتها:
  1. . انها عبر منصة
  2. . يدعم العديد من الألعاب في متجر Steam
  3. . يأتي مع بيئة سطح المكتب جنوم
  4. . تمكن استخدام لوحة المفاتيح أو جهاز التحكم الخاص للالعاب"Joysticks".
  5. . تقدم العديد من البرامج الأخرى الألعاب بسيطة بالإضافة إلى الكثير من الأشياء.












لتحميل التوزيعة اضغط هنا.

إدارة التطبيقات على جهازك الأندرويد من خلال لينكس


Android Debug Bridge ADB
هي أداة تسمح لك بالتواصل مع جهازك الأندرويد بإرسال ملفات أو تعليمات إليه .
تمكنك هذه الأداة على سبيل المثال من :


وفي هذا الموضوع سنركز حول إدارة التطبيقات من تثبيت وحذف وغيرها من الأمور .
طبعا لمن لم يتابع الموضوع السابق الذي تطرقنا فيه لكيفية تثبيت الأداة adb وبعض استخداماتها الأولية فليتفضل لمتابعته هنا

تثبيت وحذف تطبيق بامتداد .apk على جهازك الأندرويد
نفترض على أنّك لاتمتلك اتصال إنترنت على هاتفك وإنّما على حاسوبك وتود تثبيت تطبيق ما ، إذن فبالإمكان تحميل التطبيق بامتداد .apk على حاسوبك وبعد ربط الهاتف بالحاسوب عن طريق الكابل تقوم باستخدام adb لتثبيت التطبيق المحمّل بتطبيق الأمر التالي على الطرفية :
adb install appname.apk
appname.apk هو مسار التطبيق المحمّل
لإعادة تثبيت تطبيق مثبت مسبقا مع الحفاظ على ملفات إعداداته يمكنك استخدام الأمر التالي :
adb install -r appname.apk
تثبيت التطبيق على الذاكرة الخارجية sdcard :
adb install -s appname.apk
لتثبيت التطبيق على الذاكرة الداخلية :
adb install -f appname.apk
لتثبيت أكثر من تطبيق في نفس الوقت :
adb install-multiple appname1.apk appname2.apk ...
تثبيت كل التطبيقات المتواجدة في المسار الحالي :
for file in *.apk ; do adb install $file; done
لحذف تطبيق ، ومن أجل هذا نحتاج لاسم التطبيق وسنتعرف على كيفية عرض أسماء التطبيقات المثبتة في الفقرة التالية في الأسفل :
adb uninstall appname
ولحذف تطبيق مع الحفاظ على ملفات إعداداته وcache الخاص به :
adb uninstall -k appname
مدير الحزم pm
في الأمثلة السابقة يقوم adb باستدعاء أداة إدارة التطبيقات pm لتنفيذ تلك العمليات وبإمكاننا استخدامها مباشرة بعد الولوج لصدفة جهازنا الأندرويد عن طريق التالي :
adb shell


الآن بإمكاننا تنفيذ أوامر الطرفية والتحكم بجهازنا بشكل أكبر ضمن إطار الصلاحيات المتوفرة
وخذ بعين الاعتبار أنّنا الآن نبحر في نظام ملفات جهازنا وبالتالي لن نستطبع الوصول للملفات الموجودة في حاسوبنا لهذا إن كنت ستتعامل مع ملف .apk حمّلته مسبقا على حاسوبك فعليك نقله لهاتفك أولا .
الآن سنتعرض لأوامر مدير الحزم pm

لنستعرض قائمة بكل التطبيقات المثبتة :
pm list packages
تصفية النتائج بمساعدة sed لعرض أسماء التطبيقات فقط
pm list packages | sed 's/.*://'
للبحث ضمن التطبيقات المثبتة ، مثلا سأبحث عن التطبيقات التي يحتوي اسمها على calc ومن بينها تطبيق الآلة الحاسبة calculator
pm list packages | sed 's/.*://' | grep -i calc
من الممكن أن يكون الأمرين sed وgrep غير متوفرين على نظامك الأندرويد لهذا فحري بك أن تثبت تطبيق termux أو busybox
لعرض التطبيقات المثبتة مع مساراتها
pm list packages -f
لعرض التطبيقات الملغية disabled :
pm list packages -d
لعرض التطبيقات المفعّلة enabled :
  pm list packages -e

لعرض مكان تثبيت التطبيقات :
pm get-install-location

  • 0 : auto وهذا يعني أن النظام يختار المكان المناسب للتثبيت
  • 1: internal أي أنه يتم التثبيت في الذاكرة الداخلية للجهاز
  • 2: external الذاكرة الخارجية وفي الغالب فهي sdcard

بالنسبة لأجهزة الأندرويد القديمة يتعين عليك تطبيق الأمر التالي pm GetInstallLocation

لاختيار مكان تثبيت التطبيقات على الجهاز :
pm set-install-location
تقوم بتطبيق الأمر متبوعا برقم

  • 0 : auto وهذا يعني أن النظام سيختار المكان المناسب للتثبيت
  • 1 : internal أي أنه سيتم التثبيت في الذاكرة الداخلية للجهاز
  • 2 : external الذاكرة الخارجية وفي الغالب فهي sdcard

وفي حالة كنت تستخدم إصدار أندرويد قديم تطبق الأمر pm setInstallLocation متبوعا برقم كما ذكرنا
لتثبيت تطبيق :
pm install appname.apk
لتفعيل تطبيق سبق وألغيته :
pm enable appname
لحذف تطبيق معين :
pm uninstall appname
لإلغاء تفعيل تطبيق معين :
pm disable appname
لحذف الملفات المؤقتة وملفات الإعدادات الخاصة بتطبيق معين :
pm clear appname


انشاء نسخة احتياطية للملفات باستخدام الامر tar

بسم الله الرحمان الرحيم


موضوعنا اليوم يتمحور حول كيفية استعمال الأمرTar-(tape archive) لانشاء أرشيفات لملفات مع طرح امثلة بسيطة.
تتجلى اهمية هذا الامر في عمل نسخ احتياطية لملفات النظام و كذلك للملفات الشخصية،‫ وذلك لدواعي عدة منها الحفاظ على الملفات بطريقة آمنة أو نقلها  من جهاز لآخر.

بالنسبة لكيفية الاستعمال و التثبيت فالبرنامج ياتي افتراضيا في جل التوزيعات ان لم نقل كلها، وفي الفقرة التالية سنبين كيفية استخدام البرنامج.

فك ضغط أرشيف file.tar.gz

أشهر أمر لفك الضغط  :
$ tar -xvzf tarfile.tar.gz
الخصائص المستعملة في الامر تعني :
x - استخراج الملفات
v -  طباعة أسماء الملفات كما يتم استخراج واحدا تلو الآخر وهي خاصية اختيارية
z - تصفية أرشيف من خلال 'gzip'
f -  استخدام ارشيف ملف أو جهاز

فك الضغط أرشيف file.tar.bz2

$ tar -xvjf archivefile.tar.bz2
j - تصفية أرشيف من خلال BZIP2 المستخدم لضغط الملفات .bz2

فك ضغط أرشيف في مسار معين

$ tar -xvzf abc.tar.gz -C /home/extra

استخراج فقط ملف معين من أرشيف مضغوط

$ tar -xz -f abc.tar.gz "./usr/soood.txt"
استخراج ملفين أو 
$ tar -xv -f abc.tar.gz "./usr/soood.txt" "/home/sin/cod.html"

استخراج عدد من الملفات باستخدام خاصية --wildcards 

$ tar -xv -f abd.tar.gz --wildcards "*.txt"
في الامر السابق قمنا باستخراج فقط الملفات ذات الامتداد .txt

البحث في الأرشيف بدون فك الضغط

$ tar -tz -f abc.tar.gz
./new/
./new/cde.txt
./new/subdir/
./new/subdir/in.txt
./new/abc.txt ...
اذا كان الأرشيف ذو امتداد tar.bz2/bzip يجب اضافة خاصية -j

إنشاء ملف tar عادي

$ tar -cvf abc.tar ./files
انشاء أرشيف tar مضغوط فقط قم باضافة خاصية z أو j حسب نوع الضغط الذي تريده
$ tar -cvzf abc.tar.gz ./files

انشاء أرشيف tar مع تأكيد اختيار الملفات التي ستتضمنه

$ tar -czw -f abc.tar.gz ./files/*

add ‘./new/abc.txt’?y
add ‘./new/cde.txt’?y
add ‘./new/newfile.txt’?n
add ‘./new/subdir’?y
add ‘./new/subdir/in.txt’?n

اضافة ملفات لأرشيف tar موجود

$ tar -rv -f abc.tar new.text

 لا يمكن اضافة ملف لملف tar مضغوط، فقط الأرشيف العادي .tar

اضافة ملفات لملف مضغوط (tar.gz/tar.bz2)، يمكن ذلك فقط باستخدام الأمر gunzip لإلغاء ضغط الأرشيف، بعدها إضافة ملف لأرشفة والضغط عليه مرة أخرى.

$ gunzip archive.tar.gz
$ tar -rf archive.tar ./path/to/file
$ gzip archive.tar

لعمل نسخة احتياطية لملف ما

$ tar -cvz -f archive-$(date +%Ym%d).tar.gz ./files
سيقوم الامر السالف بعمل نسخة احتياطية للمجلد /files بجميع ملفاته و ستتم تسميته حسب تاريخ إنشائه 'archive-20170211.tar.gz' .




أتمنى ان اكون قد أفدتكم قدر المستطاع، شكرا على القراءة، بالتوفيق .

تصوير شاشة هاتفك الأندرويد عن طريق لينكس

السلام عليكم ورحمة الله وبركاته





Android Debug Bridge ADB

هي أداة تسمح لك بالتواصل مع جهازك الأندرويد بإرسال ملفات أو تعليمات إليه .
تمكنك هذه الأداة على سبيل المثال من :

-نقل الملفات من وإلى جهازك الأندرويد
-تطبيق أوامر الطرفية على جهازك الأندرويد
-أخذ لقطات من الشاشة أو تصويرها فيديو
-إدارة التطبيقات
-عمل نسخة احتياطية لبرامجك وملفات إعداداتها


وفي هذا الموضوع سنركز حول أخذ لقطة من الشاشة وكذلك تصويرها فيديو ، وفي القادم من المواضيع سنتطرق إلى أمور أخرى .

هذا الشّرح يتطلب جهاز بنسخة أندرويد 4.4 فما فوق

تثبيت adb


أول مرحلة هي مرحلة التثبيت ، فبالنسبة للتوزيعات الدبيانية تقوم بتثبيت الحزم التالية :  

android-tools-adb
android-tools-fastboot

بتنفيذ الأمر التالي :

sudo apt-get install android-tools-fastboot android-tools-adb


بالنسبة لباقي التوزيعات فتقوم بتثبيت الحزمة التالية : android-tools

استعمال adb


قبل كل شيء تحقق من تفعيل USB Debugging Mode على جهازك الأندرويد ، الطريقة تختلف من جهاز لآخر لهذا لن نتطرق لها

بعد ربط جهازك الأندرويد بالحاسوب عن طريق الكابل تقوم بالتحقق من كون adb قد قام بالتعرف على الجهاز المربوط :

$ adb devices
List of devices attached
1C1D674B0D55 device
السطر الأخير يدل على أنّه قد تمّ التعرف على إحدى الأجهزة المربوطة بالحاسوب

إن أتتك رسالة كالتالي :

List of devices attached

????????????   no permissions

فقم بتطبيق الأمرين التاليين على التوالي :

$ sudo adb kill-server

$ sudo adb start-server

بعدها قم بالتحقق من الأجهزة المربوطة عن طريق adb devices


أخذ لقطة من الشاشة



يستخدم في هذا الشأن الأداة screencap

$ adb shell screencap /sdcard/screen.png
$ adb pull /sdcard/screen.png                                  


عن طريق الأمر السابق قمنا بأخذ لقطة من الشاشة وحفظها في بطاقة sdcard تحت مسمى screen.png

بعدها قمنا بنسخ الصورة إلى حاسوبنا في المسار المتواجدين به ، عن طريق الخاصية pull


تصوير الشاشة فيديو


سنستخدم الأداة screenrecord المنوطة بتصوير الشاشة فيديو

adb shell screenrecord /sdcard/screen.mp4
الآن يبدأ تصوير الشاشة فيديو ولإيقاف التسجيل نضغض على ctrl+c أو سيتم إيقاف التسجيل تلقائيا بعد مرور ثلاث دقائق من التسجيل كما يمكنك التحكم في المدة الزمنية القصوى للتسجيل بإضافة الخاصية --time-limit متبوعة بعدد الثواني التي تريد

بعد انتهاء التسجيل يمكنك نسخ الفيديو إلى
حاسوبك كما تعودنا عن طريق الأمر التالي :

adb pull /sdcard/screen.mp4

خصائص الأداة screenrecord
 
--help
  
عرض وصفي لخصائص الأداة

--size
widthxheight  

تحديد دقة العرض المستخدمة في التسجيل وبشكل افتراضي سيتم تحديد 1280x720 كدقة افتراضية

--bit-rate    
rate  

معدل البث بشكل افتراضيا يتم اختيار 4Mbps ، يمكنك اختيار قيمة أعلى مثلا 6Mbps وكل ما كان bitrate أعلى كل ما كانت الجودة أفضل وحجم الفيديو أكبر

screenrecord --bit-rate 6000000 /sdcard/demo.mp4
--rotate
  
تدوير الشاشة 90 درجة عند التسجيل ، وهذه الميزة لاتزال تجريبية

--verbose

تفعيل وضع verbose لتظهر معلومات إضافية عند تطبيق الأمر

كان هذا كلّ ما في الموضوع، لاتترددوا في طرح تساؤلاتكم

تعرف على كيفية التقسيم ببرنامج gparted

بسم الله الرحمن الرحيم



أهلا بكم مرة اخرى , تدوينة اليوم ستكون عبارة عن شرح مفصّل لتقسيم الهارد ديسك عن طريق البرنامج الشهير gparted والذي يتيح التحكم في الأقراص الموصولة بجهازك وكذا قطع USB , وذالك عبر العديد من الخصائص الرائعة التي يتمتع بها بما فيه من دعم للعديد من أنظمة الملفات وغيرها , وهو برنامج حر مفتوح المصدر تحت رخصة جنو العمومية تم تطويره سنة 2004 بلغة c++ و c بالإعتماد على مكتبيات gtk و هو مجرد واجهة رسومية للبرنامج gnu parted الذي يعمل عن طريق سطر الأوامر التابع لمشروع جنو وأدوات أخرى عند الحاجة, كما أن للبرنامج توزيعة خاصة به ISO تستطيع أن تستعملها عن طريق live وبحيث انه تحتوي على الكثير من البرامج الخاصة بإصلاح الهارد ديسك وكذا إصلاح النظام , أما البرنامج فهو متاح في أغلب توزيعات جنولينكس .

أول ما سنبدأ به هو  تشغيل البرنامج , يمكنك تشغيل البرنامج عن طريق سطر الأوامر بكتابته مباشرة بعد sudo في المحث ثم اضغط enter ثم قم بكتابة كلمة السر وسيشتغل أو ستجده في قائمة إبدء في قسم أدوات النظام أي system tools و بعده سيطلب كلمة السر أكتبها و ها هو البرنامج أمامك , ستلاحظ أن واجهة البرنامج سهلة وبسيطة لاكنها لا تخلو من بعض التعقيد , و في سبيل التجربة سأستخدم قطعة usb الخاصة بي كمثال .
في البداية سوف نختار القرص الذي سنقوم بالتحكم به وذالك كما في الصورة 

 
كما تلاحظ البرنامج يقوم بعرض بعض المعلومات الأساسية التي تمكنك من معرفة القرص الذي انت فيه الان بحيث يعرض معلومات حول سعة القرص وكذا نوع نظام الملفات والسعة المملوءة والغير مستعملة وكذا إسم القرص في حالة وجوده وعدد التقسيمات في حالة كان قرصا أساسيا أو في حالة وجود تقسيمات , الان سنقوم     بشرح الخيارات الأولى في البرنامج وفي الأخير سنقوم بعمل مثال لإعداد قسم  كتجربة :



- الخيار Gparted يحتوي على
 1 refresh devices : تحديث الأجهزة والذي يستخدم عند تشغيل البرنامج ثم تقوم بوصل القرص
2  devices : الأقراص الموصولة بالحاسب 
3  quit  الخروج من البرنامج 
- الخيار edit يحتوي على :
undo last operation : التراجع عن آخر التغييرات 
clear all operations : التراجع عن جميع التغييرات 
apply all operations تأكيد وتطبيق جميع التغييرات
- الخيار  view يحتوي على ;
1  devices information : عرض معلومات عن الأقراص
pending operations : عرض جميع التغييرات التي ستطبق 
file system support : يعرض أنظمة الملفات المدعومة في حاسوبك 
- الخيار device يحتوي على :
1 create partition table : هذا الخيار يسمح لك إنشاء واختيار لصيغة جدول التقسيم والذي يدعم الكثير من الصيغ منها msdos و gpt و bsd و mac و غيرها , و لا ننصح بإستخدامها إلا إذا كنت تعرف ماذا تفعل
attempt data rescue : لمحاولة إنقاد ما يمكن إنقاذه من البيانات في حالة حدوث خطأ ما وهو يستعمل أداة gpart لفعل ذالك .
- الخيار partition و هي القائمة التي ستظهر عند الضغط على الزر الأيمن للفأرة على أي قسم في القرص
New  1 : لانشاء قسم جديد ويكون فعال بعد حذف ما بداخل القسم
Delete  2 : لحذف قسم
3  Resize/Move : لتغيير مساحة القسم أو تحريكه
Copy  4 : نسخ محتويات القسم
Past  5 لصق : المحتويات المنسوخة مسبقا للقسم المحدد
Format to  6 : تحديد نوع نظام الملفات
Unmount  7 : لايقاف الوصول للقسم
Manage flags  8 : لتحديد خصائص اضافية للقسم 
check  9 : لفحص واصلاح أخطاء نظام ملفات .
Label  10 : اعطاء اسم لقسم تحدده أنت


مثال عن طريقة إستعمال البرنامج كما قلت في البداية نقوم أولا بإختيار الهارد ديسك المراد تقسيمه أو التعديل عليه ثم نتأكد من أن الأقسام المراد التعديل عليها غير موصولة أي ليس هناك أيقونة مفتاح أمام القسم و إذا كانت كذالك فقم بالضغط على القسم الموصول  بزر الأيمن للفأرة ثم عمل Unmount , والأن في حالة أردنا أن نقوم بفرمتة قسم معين نقوم بالتأشير عليه بزر الأيسر للفأرة ثم نضغط على أيقونة الحذف كما في الصورة 


وهكذا نكون قد حذفنا جميع البيانات التي كانت في القسم , ثاني خطوة هي تهيئة القسم أي تحديد نظام الملفات و السعة التي تريدها ان تكون في القسم ويمكنك ذالك عبر الضغط على أيقونة الإنشاء , وقبل هذه المرحلة هنالك مرحلة غير مهمة ولكن يجب أن تعرفها وهي انك إذا أردت تغيير صيغة نظام الملفات فيمكنك تغيرها فقط في هذه المرحلة أي عندما يكون الهارد ديسك فارغا ولتعرف اكثر على هذه المرحلة يرجى متابعة هذا الدرس لبعض صيغ أنظمة الملفات 


ثم نقوم بهيئة التي نريد بحيث يمكنك اختيار السعة التي تريد وكذا نظام الملفات و تحديد إسم للقسم وهناك أيضا خاصية رائعة والتي هي create as التي تسمح لك بعمل تقسيمات عديدة ضمن قسم معين في حالة إخترنا extend partition وكما هو معلوم أن صيغة نظام الملفات mbr لا تسمح إلا بأربعة تقسيمات فتعتبر هذه الخاصية مفيدة جدا في هاته الحالة , ثم بعد الانتهاء من تعبئة المعلومات نقوم بالضغط على الزر add 
كما في الصورة



وآخر مرحلة وهي تأكيد التغييرات التي أجريناها على الأقسام وذالك بالضغط على الأيقونة apply لتأكيد التغيرات كما في الصورة 

وهكذا تنبثق لك هده النافذة لتخبرك بكل التغيرات التي تحصل 


و هكذا نكون قد تطرقنا إلى أهم الأشياء التي يجب ان تعرفها لإستخدام البرنامج , وإلى هنا نصل إلى نهاية الدرس نلقاكم في الموضوع القادم إن شاء الله و إن كانت هناك أي استفسارات أو أسئلة أو إضافات فلا تترددو في كتابتها في التعليقات 

أهم عشرة أوامر لاستعراض محتوى الملفات على لينكس


السلام عليكم ورحمة الله وبركاته




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


cat


من أكثر الأوامر شعبية في جنو لينكس، يقوم بنسخ محتوى مجرى الدخل القياسي نحو مجرى الخرج القياسي الذي هو افتراضيا الشاشة ، باستغلال الإمكانيات التي يوفرها shell بإمكاننا فعل العديد من الأمور بcat

الاستخدام الأبسط له هو عرض محتوى ملف معين كالتالي :


otmangx@20:15:[~]: cat /etc/issue
Ubuntu 14.04.5 LTS \n \l

 
وكون أنّ الأمر يقبل أكثر من ملف كوسيط فيمكننا تمرير أكثر من ملف مع الأمر لعرضهم جميعا :

otmangx@20:33:[~]: cat /etc/issue /etc/resolv.conf
Ubuntu 14.04.5 LTS \n \l

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
nameserver 208.67.220.220


وبهذا يمكننا مثلا إنشاء ملف يضم محتويات الملفين السابقين معا على التوالي بعد توجيه المخرجات إلى ملف معين  :


otmangx@20:34:[~]: cat /etc/issu/etc/resolv.conf > file.txt
otmangx@20:37:[~]: cat file.txt
Ubuntu 14.04.5 LTS \n \l

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
nameserver 208.67.220.220



يمكننا كذلك عن طريق cat إنشاء ملفات نصية تحتوي على نصوص ندخلها عن طريق لوحة المفاتيح كالتالي :


otmangx@20:37:[~]: cat > text.txt
Hello
I am fine
otmangx@20:40:[~]: cat text.txt
Hello
I am fine



إذن فكما ترى فالأمر إن لم نقم بتمرير ملف له فيقوم بالقراءة من مجرى الدخل القياسي ألا وهو لوحة المفاتيح وقمنا بتمرير المخرجات للملف text.txt

عند تطبيق الأمر نقوم بإدخال النصوص التي نريد وللانتقال للسطر التالي نضغط enter وللحفظ والخروج نقوم بالضغط على ctrl+d فينتج لنا الملف text.txt



هناك الكثير من الأمور الأخرى التي بإمكاننا فعلها بcat ربما نتعرض لموضوع في المستقبل يتناول الكثير من هذه التقنيات .



tac


عكس cat فهو يقوم بعرض الملف ابتداء من آخر سطر


otmangx@20:49:[~]: cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
otmangx@20:49:[~]: tac /etc/shells
/bin/rbash
/bin/bash
/bin/dash
/bin/sh
# /etc/shells: valid login shells



nl


يقوم بعرض الملف مع ترقيم الأسطر ، كما يمكنك عمل نفس الشيء بcat عن طريق الخاصية -n



otmangx@20:48:[~]: nl /etc/shells
1 # /etc/shells: valid login shells
2 /bin/sh
3 /bin/dash
4 /bin/bash
5 /bin/rbash



head


يقوم افتراضيا بعرض عشرة أسطر الأولى من ملف

otmangx@20:50:[~]: head /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin


otmangx@20:53:[~]: head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync





tail


عكس head فهو يقوم بعرض آخر عشرة أسطر مع إمكانية تحديد عدد الأسطر للعرض كما هو الحال بالنسبة لhead



otmangx@20:53:[~]: tail /etc/passwd
mysql:x:999:999::/home/mysql:
pulse:x:105:122:PulseAudio daemon,,,:/var/run/pulse:/bin/false
rtkit:x:109:124:RealtimeKit,,,:/proc:/bin/false
lightdm:x:107:115:Light Display Manager:/var/lib/lightdm:/bin/false
postgres:x:110:120:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash
statd:x:111:65534::/var/lib/nfs:/bin/false
usr1:x:1001:1001:,,,:/home/usr1:/bin/bash
usr2:x:1002:1002::/home/usr2:
usr3:x:1003:1003::/home/usr3/usr3:
usr:x:1004:1004:,,,:/home/usr:/bin/bash

otmangx@20:54:[~]: tail -3 /etc/passwd
usr2:x:1002:1002::/home/usr2:
usr3:x:1003:1003::/home/usr3/usr3:
usr:x:1004:1004:,,,:/home/usr:/bin/bash

يستخدم غالبا لعرض سجلات log لمعرفة آخر التغييرات .

pg


عرض ملف نصي صفحة بصفحة بالضغط على space وللخروج تضغط على q ثم enter . 


more


يقوم باستعراض ملف نصي في وضع الشاشة الكاملة مع إمكانية التنقل صفحة بصفحة بالضغط على الزر space أو التنقل سطرا بسطر بالضغط على enter وللخروج تضغط على q .



less


من أوامر الشاشة الكاملة مثله مثل more ،ويعتبر الخيار الافتراضي لعرض صفحات المساعدة وقد تمّ تصميمه لكي يكون بديلا أفضل من more وأسرع منه وهذا يتجلى في كون الأداة less لاتقوم بتحميل الملف كاملا وتنتقل بين سطوره عن طريق الضغط على السّهم العلوي أو السّفلي ، أو يمكنك كذلك التنقل بالصفحات عن طريق الزر space بهذا فالأمر يخول لك التنقل للأمام والخلف عكس more الذي يسمح فقط بالانتقال للأمام

وللخروج من less تضغط على q . 


otmangx@21:04:[~]: less /etc/passwd



يتوفر less على نظام تفاعلي يمكّنك من تنفيذ بضعة تعليمات عند عرضك لملف ما ، حيث يمكنك على سبيل المثال لاالحصر البحث عن كلمة معينة من خلال كتابة التعليمة التالية : /word أو?word هذا النظام التفاعلي قريب نوعا ما لما عند vi لكن هناك اختلاف في الأوامر كذلك بالنسبة للأوامر المتوفرة لless هي نفسها تقريبا يمكنك تنفيذها على كل من more و pg كذلك 

strings

أمر يقوم بعرض نصوص ascii المقروءة في الملفات الثنائية

في هذا المثال سنستخدم strings لعرض المحتوى المقروء من /usr/bin/less



otmangx@20:58:[~]: strings /usr/bin/less
/lib/ld-linux.so.2
libtinfo.so.5
_ITM_deregisterTMCloneTable
__gmon_start__
_Jv_RegisterClasses
_ITM_registerTMCloneTable
_init
tgetnum
tgetstr
tgetent
...

vi

فكما هو معلوم فvi أو نسخته المطورة vim محرر نصوص أكثر من كونه مستعرضا لها كما سبق وتعرفنا عليه وعلى محررات أخرى في موضوع أفضل ثمانية محررات نصوص في لينكس لكننا في حالتنا هذه سنستخدمه فقط لاستعراض النصوص بتمرير الخيار -R معه لتشغيل الأمر بصلاحيات القراءة فقط وهو بهذا لن يسمح بأي تعديل يجري على الملف ، طبعا استعراض محتوى ملف ما بvi سيسمح لنا بالاستفادة من الإمكانيات الرهيبة التي يوفرها لنا هذا المحرر .






الآن نكون قد وصلنا لنهاية الموضوع، وقبل التطرق للتمارين نذكِّركم إلى أنّه قد سبق وتطرقنا إلى أدوات الفلترة tr و cut التي قد تحتاجها لفلترة المخرجات وأنت تستعرض محتوى الملفات 
كما ندعوكم لزيارة موضوع أوامر المساعدة في نظام جنو/لينكس
الشيء الذي قد تحتاجه لامحالة للتعرف أكثر على خصائص الأوامر وإرشادات تخصها كما هو الحال للأوامر التي سبق وذكرناها في هذا الموضوع فلم نقم بذكر إلا نبذة عن استخداماتها وتبقى لك الفرصة للتعرف عليها أكثر .



تمارين

عن طريق استخدام الأوامر التي ذكرناها في هذا الموضوع فقط قم بإنجاز التمارين التالية :


1- عن طريق cat قم بنسخ الملف /etc/group على مجلد المنزل تحت إسم : groupbckp

2- قم بإظهار 12 أسطر الأولى من الملف groupbckp

3-قم بعرض السطر الأخير من الملف groupbckp

4-قم بعرض الملف groupbckp من السطر 10 إلى السطر 20 .

5-قم بعرض الملف /etc/passwd ابتداء من السطر 10 .

6-قم بعرض الملف /etc/passwd ابتداء من السطر الذي يتواجد به اسم المستخدم الخاص بنا .

لاتنسوا مشاركتنا الحلول التي قد توصّلتم لها في التعليقات.