انشاء نسخة احتياطية للملفات باستخدام الامر 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 ، ألقاكم في درس آخر إن شاء الله. بالتوفيق