توزيعة 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 ابتداء من السطر الذي يتواجد به اسم المستخدم الخاص بنا .

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

البحث عن الملفات و المجلدات باحترافية باستخدام الامر Find

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



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

وفي سلسلة من المواضيع سأحاول طرح عدد من الاوامر الهامة التي على كل مستخدم أن يحفظها، و بالأخص المبتدئين. و سأفتتح بأمر find للبحث عن المجلدات و الملفات.

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

الصيغة العامة 
$ find location comparison-criteria search-term
location = مسار البحث
comparison-criteria = خصائص البحث
search-term= اسم الملف

عند تطبيق الامر بدون اي اضافة


البحث في مجلد معين "في هاته الحالة سيعرض لنا الأمر كل الملفات المتواجدة في هذا المسار و بطريقة تشعبية"
find /home/testing/linux
 البحث في مجلد عن ملف معين
find /home/testing/linux -name "abc.html"
البحث في المجلد عن الملف/الملفات من نوع محدد
find /home/testing/linux -name "*.html"
 البحث عن ملفات بشرط عدم تحقق الشرط عليه أي ألا يكون ملف html في هاته الحالة
find /home/testing/linux -not -name "*.html"
أو
 find /home/testing/linux ! -name "*.html"
يمكن البحث باستخدام الشرطين مثلا
find /home/testing/linux -name "abc*" ! -name "*.html"
 يمكن أيضا البحث بوضع شرطين لكن بطريقة اختيارية أي سيظهر أي نتيجة تحقق شرط واحد
find /home/testing/linux -name "*.html" -o -name "*.txt"
بالإضافة إلى إمكانية وضع شرطين إجباريين باستبدال خاصية o- ب and- أي سيظهر النتائج التي تحقق الشرطين معا


 البحث عن الملفات فقط
find /home/testing -type f -name "linux"
 البحث عن المجلدات فقط
find /home/testing -type d -name "abc.html"
البحث عن الملفات المخفية في Home
find ~ -type  f ".*"
 البحث عن ملفات التي تحقق الصلاحيات المطلوبة ، في هذا المثال سنقوم ببحث عن ملفات ذات صلاحيات 777
find . -type f -perm -777
 يمكن أيضا البحث عن ملفات التي لا تتضمن صلاحيات معينة مثلا777-
find . -type f ! -perm -777
 يمكن كذلك البحث انطلاقا من الصلاحيات بطريقة مختلفة مثلا فقط التنفيذ
find /bin -perm /a=x
 البحث عن مجلدات/ملفات تم حفضها في مدة تقل عن 50 يوم مثلا
find / -mtime 50
 البحث عن مجلدات/ملفات تم الولوج اليها مدة تقل عن 50 يوم مثلا
find / -atime 50
البحث عن مجلدات/ملفات حفضت في مدة زمنية معينة مثلا ما بين 50 الى 100 يوم
find / -mtime +50 -mtime -100
البحث ‫عن مجلدات/ملفات تم تعديل فيها (خصائص، صلاحيات ...)
 find ~ -cmin 27


البحث عن مجلدات/ملفات عن طريق الحجم
find / -size 50M
البحث عن مجلدات/ملفات حجمها محصور بين قيمتين
find / -size +50M -size -100M
يمكن أيضا تغيير وحدة الحجم التخزينية كما يوجد في الجدول الأتي:


 مسح ملفات ضمن  شروط خاصة مثلا ذات الامتداد .BAK
find / -type f -name "*.BAK" -delete
و يمكنكم أيضا أن تتعرفو أكثر على هذا أمز من man الخاص به :

man find

اتمنى ان اكون قد قمت بتغطية كل ما يلزم لاستخدام الأمر find ، ألقاكم في درس آخر إن شاء الله. بالتوفيق