لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 02/13/23 في كل الموقع
-
مرحبااا لدي فورم تسجيل ضمن صفحة Html يوجد سكربت يقوم بالحصول على موقع المستخدم <script> var x = document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = "Geolocation is not supported by this browser."; } } function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; } </script> احاول تمرير القيم الى المربع تلقائيا (الصورة لتوضيح مااحاول القيام به) <div class="col-md-6 form-group mt-3 mt-md-0"> <input class="form-control" id="imagee" placeholder="imagee" {{form_hospital.imagee}} <br> <input type="text" name="latitude" value="" {{location.lat}}//// احتاج تمرير قيمة Latitude هنا بدل من طباعتها على الشاشة <input type="text" name="longitude" value="" {{location.lng}}//// احتاج تمرير قيمة Longitude هنا بدل من طباعتها على الشاشة2 نقاط
-
انا الان في منتصف مسار الى عالم الويب واشعر ان كمية المعلومات الجديدة كبيرة جدا اواجه صعوبة كبيرة في الفهم ما المطلوب تعلمه من هذا المسار؟ اي يجب ان اعرف البروتوكولات والشبكات؟ هل يجب حفض اسمائها والفروق بينها؟ او مجرد مشاهدة لاخذ فكرة ؟ ما المطلوب ان افعله اثناء او بعد المشاهدة؟ هل يجب ان اتعمق في الاشياء المذكورة في الفيديو واقرأ اكثر عنها ام ما في الفيديو يكفي؟2 نقاط
-
2 نقاط
-
السلام عليكم. هذا الكود فيه مشكلتين: المشكلة الأولى: أريد تغيير النص الثابت في self.wt في كل مرة يتم فيها إرسال إجابة صحيحة لتغيير الحرف الذي يجب كتابته. المشكلة أن الحرف المطلوب يتغير لكن النص في self.wt لا يتغير, كود التغيير موجود في دالة onsend. المشكلة الثانية: الكود self.write.Value="" في الشرط الموجود في دالة onsend لا يقوم بتفريغ مربع الكتابة. فما الحل للمشكلتين؟ الكود: ``` import wx import winsound enletters= ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] class len(wx.Frame): def __init__(self, parent): super(len,self).__init__(parent,-1, title= 'النظام التعليمي, الأحرف الإنجليزية المرتبة') self.p = wx.Panel(self,-1) self.lettern= (0) self.letter= (enletters[self.lettern]) wx.StaticText(self.p, -1, "الإجابات: ") self.verify = wx.TextCtrl(self.p, -1, style=wx.TE_READONLY+wx.TE_MULTILINE+wx.HSCROLL) self.wt= wx.StaticText(self.p, -1, f"اكتب حرف {self.letter} ") self.write = wx.TextCtrl(self.p, -1) self.write.SetFocus() self.send= wx.Button(self.p, -1, "إرسال الإجابة") self.send.Bind(wx.EVT_BUTTON, self.onsend) self.Show() def onsend(self, event): self.result= self.write.GetValue() if self.result == self.letter: self.verify.write(f'''صحيح {self.letter} ''') winsound.PlaySound('data\yes.wav', 1) self.lettern= self.lettern+1 self.letter= (enletters[self.lettern]) self.wt= wx.StaticText(self.p, -1, f"اكتب حرف {self.letter} ") self.write.SetFocus() self.write.Value="" app = wx.App() len(None) app.MainLoop() ```1 نقطة
-
يواجه الكل هذه المشكلة وذلك في بداية تعلمهم لمهارة جديده وليس هناك مشكلة في ذلك حيث أن عند دراسة مفاهيم جديدة مثلاً تعلم ال loop في لغة برمجة ما فعند التطبيق عليها بمثال بسيط يصبح الأمر سهل ولكن عند التفكير في طرق استخدامها في مشروع كامل ستجد الأمر أصعب من المثال البسيط لذلك يعتبر هذه المشكلة موجودة في البداية والكل واجه هذه المشكلة وهي تطبيق جميع المهارات التي تعلمتها في مشروع كامل والحل لهذه المشكلة هو التطبيق على مشروعات أو مواقع كاملة وراء مدرب أكثر من مرة والمحاولة بعدها بناء مشروع كامل بنفسك وستجد أن بناء المشروع بمفردك أصبح أسهل من ذي قبل قراءة والإطلاع على أكواد تطبيقات كاملة ويوجد لديك github يحتوي على ملايين التطبيقات قم بالتعلم منها طريقة بناء المشروع كاملاً وستتعرف وقتها على الطرق العملية لاستخدام المفاهيم التي تعلمتها1 نقطة
-
إن كررت نفس الخطوات وراء المدرّب ستحصل على النتيجة الصحيحة، حاول في كل مرة بعد الانتهاء من المشروع التعديل على نفس المشروع بإضافات بسيطة وحاول زيادتها تدريجياً من تغيير التنسيقات والصفحات وحتى بنية بعض التوابع والأدوات حاول إعادة بنائها وإضافة المزيد من الخاصيات لها وبذلك لن تبدأ المشروع من الصفر وسيكون لديك مرجع صحيح تعود له. والأخطاء التي تظهر لك يمكنك البحث عنها على الانترنت وستجد العديد من الإجابات والنصائح وطرق الاستخدام. النقطة الأهم هي أن تحاول الاعتماد على نفسك وتجنّب الحلول الجاهزة والأسئلة قدر المستطاع وإلا لن تستطيع تنمية مهارات حل المشاكل والتفكير المنطقي لديك وستبقى هذه المشكلات عقبات لديك بدون القدرة على حلها بنفسك. بالتوفيق،1 نقطة
-
كلمة شبكات تحوي العديد من المجالات الفرعية وهو مصطلح كبير وعام، ولكن بالنسبة لمطوري الواجهة الخلفية يكفي كبداية أن تتعلّم أساسيات اتصالات الانترنت من طلبات HTTP ومحتوياتها، التمييز بين أنواع الطلبات، التوثيق والتحقق، بالإضافة لقواعد البيانات وأي لغة برمجة أو إطار عمل تجده مريح لبناء خادم الويب. أما بقية التفاصيل الخاصة بإعداد الشبكات وبيئة النشر والتعامل مع جدار الحماية وغيرها فهي تندرج تحت مسميات أخرى ولا بأس بأن تطلع عليها ولكنها ليست من ضمن المهام الأساسية لمطور الواجهة الخلفية بصورة عامة. قد تختلف المتطلبات من مسمى لآخر ومن وظيفة لأخرى ضمن الشركات، ولكن بشكل عام حاول قدر المستطاع ألا تشتت نفسك بكافة الأمور مع بعضها البعض.1 نقطة
-
في حال كان توجهك إلى الإختصاص في Back - End لا تحتاج إلى التعمق كثيراً في مجال الشبكات فقط يمكنك الإهتمام في أهم البروتوكولات التي ربما تستخدمها في مجال Back - End .1 نقطة
-
من خلال المعلومات الموجودة في هذا المسار فهي أساسيات كافية ولكن إذا أردت التعمق أكثر فذلك بالطبع إضافة قوية لك في مجال الباك اند1 نقطة
-
يعتبر مسار إلى عالم الويب من أكثر المسارات أهمية في هذه الدورة حيث يتم دراسة آلية عمل الويب والشبكات والمتصفحات أي أنه يجب عليك دراسة المسار بتركيز أكبر لفهم المعلومات بشكل أكبر ويمكنك زيادة التركيز والإستفادة من هذا المسار من خلال التركيز على فهم الدروس وتعلم كيفتسير الأمور في الويب التركيز على المصطلحات بالطبع واجب حيث أن هذه المصطلحات مهمة في عالم الويب والأفضل هو تدوين هذه المصطلحات حتى لا تنساها بعد فترة ويمكنك أيضاً التعمق فيها لاحقاً إن لم تستطع فهم جزئية معينة يمكنك طرح السؤال ليجيبك أي مدرب حتى تثبت لديك المعلومة بشكل أكبر والأفضل حالياً هو دراسة ما في هذا المسار حالياً ولاحقاً يمكنك التعمق في هذه المفاهيم من خلال التدوينات التي تقوم بها1 نقطة
-
من الطبيعي أن تشعر أن المواضيع أصبحت كثيرة ويوجد بها بعض الصعوبة ، وسبب ذلك أنك تتقدم في المسارات وتتقدم في مستوى الخبرة لديك ، في حال كنت تريد أن تتخصص في موضوع الشبكات يجب عليك حفظ أسماء البروتوكولات والفروق بينهما ومعرفة كل برتوكول ووظيفته أما إن كنت لا تريد التعمق في مجال الشبكات يمكنك الإكتفاء بالإطلاع عليهم ومحاولة حفظ أهم البرتوكولات التي ممكن أن تستخدمها في مجال وعالم الويب . أثناء مشاهدة الدرس يمكنك أن تقوم بتدوين ما يتم شرحه في الدرس لرجوع إليه في حال إحتجت إليه في المستقبل والتدوين يزيد من تمكين المعلومة وترسيخ المعلومات لديك ، كما يمكنك الإستفادة من الشروحات الموجودة أسفل الدروس .1 نقطة
-
في أي دورة أو فيديو تشاهده ستتعلم الأساسيات التي تحتاجها في تطوير الويب، والأفكار التي يتم شرحها شاملة لجميع جوانب تطوير الويب على جميع المستويات في حال كنت مبتدئ أم لديك خبرة مسبقة من خلال المشاريع العملية بالإضافة للأفكار النظرية. أما بالنسبة لمسارك المهني، فحتماً يجب عليك الاطلاع على المزيد من التفاصيل والبحث والتوسع في فهم الأفكار والتقنيات التي يتم التطرق إليها ضمن الدروس التي تشاهدها حتى تزيد من خبرتك في هذا المجال. كما أن البرمجة في تطور مستمر والتقنيات يتم تطويرها بسرعة كبيرة لذلك مجال تطوير الويب يتطلب من المطور أن يبقى على اطلاع في هذه الأمور. أما بالنسبة للأمور التي تجدها أكثر تعقيداً مثل الشبكات والبروتوكولات، فلا داعي لأن تشتت نفسك الآن في أكثر من مجال. يمكنك أن تضع هدف بسيط أمامك وهو إنهاء مسار محدد والبحث ضمن هذا المسار فقط ومن بعدها يمكنك الانتقال لأي أفكار أخرى تجد نفسك بحاجة للتوسع فيها. إنما الأساسيات التي يتم شرحها في الفيديوهات تكفي لإكمال المسار ومن ثم يمكنك التوسع بنفسك في البحث وتطوير خبرتك. وفي النهاية، ليس بالضرورة على المبرمج أو المطوّر أن يعرف كافة التقنيات والمجالات الموجودة بإتقان كامل، اختصاصك في مجال محدد سيسهّل عليك التقدّم.1 نقطة
-
السلام عليكم. عندي جدول بإسم users (id, name, status)أريد جلب المشاهدات الخاصة بالمستخدم من جدول views(user_id, content_id, status) إذا كان العامود status الخاص بجدول الusers يساوي 1 أريد جلب المشاهدات عندما يكون العامود status بجدول views يساوي 3 وإذا كان العامود status الخاص بجدول الusers يساوي 2 أريد جلب المشاهدات عندما يكون العامود status بجدول views يساوي 4 هل يمكنني فعل ذلك بquery واحدة؟ استخدم لارافل 81 نقطة
-
الكود <html> <head> <title>Voice to Text</title> <script> function erasText(){ document.getElementById("name").innerHTML = ""; } </script> </head> <body> <form> <label>Enter Text: </label> <textarea placeholder="Enter text here for detection." id="name" name="name" class="result" > </textarea> </form> <div class="options" style="display:none"> <div class="anguage" > <p>Language</p> <select name="input-language" id="language"></select> </div> </div> <button class="btn record" id='myid'> <p><b> Start Listening</b></p> </button> <div style="margin-top:-50px;" class="buttons"> <button class="btn clear" id='clr' style="margin-left:150px" onClick="erasText()"> <b>Clear</b> </button> </div> <script> myid.addEventListener('click',function(){ var speech = true; window.SpeechRecognition = window.webkitSpeechRecognition; const recognition = new SpeechRecognition(); recognition.interimResults = true; recognition.addEventListener('result', e => { const transcript = Array.from(e.results) .map(result => result[0]) .map(result => result.transcript) .join('') document.getElementById("name").innerHTML = transcript; console.log(transcript); }); if (speech == true) { recognition.start(); } }) clr.addEventListener("click", () => { document.getElementById("name").innerHTML = ""; }) </script> </body> </html> عندما أقوم بالنقر فوق الزر "clear" ، لا يتم مسح النص الموجود على منطقة النص وعندما أضغط على "Start Listening" ، يعمل هذا الزر. أعتقد أن وظيفة `erasText '' لا يتم استدعاءها وأن الوظيفة التالية فقط هي التي ينم استدعاءها clr.addEventListener("click", () => { document.getElementById("name").innerHTML = ""; }) أرجو منك المساعدة1 نقطة
-
1 نقطة
-
1 نقطة
-
يعتقد الكثير من المبرمجين المبتدئين أن استخدام واجهة سطر الأوامر أمر معقد، ما يجعله حكرًا على المحترفين، وهو اعتقاد مغلوط، إذ لا بدّ من التعامل مع واجهة سطر الأوامر بدءًا من مرحلة إعداد بيئة بايثون، وصولًا إلى تشغيل مرحلة البرامج. يتضمن هذا المقال قائمة مختصرة بالأوامر الشائعة والتي لابد من استخدامها في نافذة سطر الأوامر، من المؤكد وجود كم من الأوامر والوسطاء أكبر يكثير من هذا الموجود هنا، ولكن تعامل مع هذه القائمة على أنها الحد الأدنى المطلوب للمضي في استخدام نافذة سطر الأوامر. كما يقدّم هذا المقال تعريفًا بمفهوم متغيرات البيئة وكيفية عرضها والتعامل معها. سنعبر عن وسطاء سطر الأوامر في هذا القسم بتضمين كل منها بين قوسين متوسطين، فعلى سبيل المثال العبارة cd متبوعًأ باسم المجلد المستهدف تعني أنه يجب إدخال الأمر cd متبوعًا بوسيط هو اسم مجلد جديد لتغيير الدليل إليه. مطابقة أسماء المجلدات والملفات مع محارف البدل تتعامل الكثير من الأوامر مع أسماء المجلدات والملفات كوسطاء، كما تتعامل مع الأسماء المتضمنة محارف بدل مثل * و ?، ما يسمح لنا بتحديد عدة ملفات مطابقة، حيث يطابق محرف البدل * كافة الملفات الموافقة للمحارف التي تليه، في حين يطابق المحرف ? أي محرف مفرد مكانه، وندعو العبارات التي تستخدم محارف البدل * و? بالأنماط العامة. تسمح الأنماط العامة بتحديد أنماط للملفات، فعلى سبيل المثال يمكن تنفيذ الأمر dir أو ls لعرض جميع الملفات والمجلدات في دليل العمل الحالي، لكن إن أردنا عرض ملفات بايثون فقط، فنستخدم الأمرين بالشكل dir *.py أو ls *.py بغية عرض الملفات التي تنتهي باللاحقة py. فقط. فمثلًا النمط العام py.* يعني "أي مجموعة من المحارف المتبوعة بـ py.": C:\Users\Al>dir *.py Volume in drive C is Windows Volume Serial Number is DFF3-8658 Directory of C:\Users\Al 03/24/2019 10:45 PM 8,399 conwaygameoflife.py 03/24/2019 11:00 PM 7,896 test1.py 10/29/2019 08:18 PM 21,254 wizcoin.py 3 File(s) 37,549 bytes 0 Dir(s) 506,300,776,448 bytes free إن النمط العام records201?.txt يعني أي ملف يبدأ بالسلسلة records201 متبوعة بأي محرف متبوعًا بالسلسلة txt.، وهذا ما يوافق بالنتيجة كافة الملفات ابتداءً من records2010.txt وصولًا إلى records2019.txt (مع أي ملفات بأسماء من قبيل records201X.txt)، في حين أن النمط العام record20??.txt يوافق أي ملف بأي محرفين مكان ?? مثل records2021.txt أو records20AB.txt. تغيير المجلدات باستخدام الأمر cd إن تنفيذ الأمر cd متبوعًا باسم المجلد المستهدف يغير دليل العمل الحالي في الصَدَفَة إلى المجلد المطلوب: C:\Users\Al>cd Desktop C:\Users\Al\Desktop> تعرض الصدفة دليل العمل الحالي كجزء من موجه الأوامر، وأي مجلدات أو ملفات مستخدمة لاحقًا في الأوامر سيتم التعامل معها نسبةً إلى هذا الدليل. وفي حال كون اسم المجلد يتضمن مسافات، فلابد من تضمينه بين علامتي اقتباس مزدوجة. ولتغيير دليل العمل الحالي ليكون المجلد الرئيسي للمستخدم، نكتب الأمر cd ~ وذلك في نظامي التشغيل ماك أو إس ولينكس، أما في نظام ويندوز فنكتب الأمر cd %%USERPROFILE. وإن رغبت بتغيير محرك الأقراص الحالي أيضًا في ويندوز، فلابد بدايةً من إدخال اسم القرص المطلوب كأمرٍ منفصل: C:\Users\Al>d: D:\>cd BackupFiles D:\BackupFiles> أما لتغيير دليل العمل ليصبح هو المجلد الأب لدليل العمل الحالي، يكفي استخدام .. كاسم للمجلد، بالشكل: C:\Users\Al>cd .. C:\Users> عرض قائمة بمحتويات مجلد باستخدام الأمرين dir و ls يعرض الأمر dir الملفات والمجلدات ضمن دليل العمل الحالي وذلك في نظام التشغيل ويندوز، ويؤدي الأمر ls نفس المهمة في نظامي التشغيل ماك أو إس ولينكس، كما يمكن عرض محتويات مجلد آخر باستخدام الأمر dir أو ls متبوعًا باسم المجلد الآخر. يعد كل من رمزي الانتقال l- و a- وسيطًا مساعدًا مفيدًا للأمر ls، الذي يعرض افتراضيًا أسماء الملفات والمجلدات الموجودة فقط، أما لعرض قائمة أكثر تفصيلًا تحتوي على أحجام الملفات وسماحياتها وتاريخ آخر تعديل عليها وغيرها من المعلومات، فنستخدم الوسيط l-. يعامِل كل من نظامي التشغيل ماك أو إس ولينكس الملفات التي تبدأ بنقطة على أنها ملفات إعدادات، فيبقيانها مخفية عن الأوامر العادية، وهنا من الممكن استخدام الوسيط -a ليعرض الأمر ls جميع الملفات بما فيها المخفية، ولعرض قائمة المعلومات الموسعة والملفات المخفية معًا ندمج وسيطي التحويل كما يلي ls -al، وفيما يلي مثال من نافذة موجه الأوامر في نظام ماك او إس أو لينكس: al@ubuntu:~$ ls Desktop Downloads mu_code Pictures snap Videos Documents examples.desktop Music Public Templates al@ubuntu:~$ ls -al total 112 drwxr-xr-x 18 al al 4096 Aug 4 18:47 . drwxr-xr-x 3 root root 4096 Jun 17 18:11 .. -rw------- 1 al al 5157 Aug 2 20:43 .bash_history -rw-r--r-- 1 al al 220 Jun 17 18:11 .bash_logout -rw-r--r-- 1 al al 3771 Jun 17 18:11 .bashrc drwx------ 17 al al 4096 Jul 30 10:16 .cache drwx------ 14 al al 4096 Jun 19 15:04 .config drwxr-xr-x 2 al al 4096 Aug 4 17:33 Desktop --snip-- يعد الأمر dir في نظام ويندوز نظير الأمر ls -al، وفيما يلي مثال من نافذة موجه الأوامر في نظام ويندوز: C:\Users\Al>dir Volume in drive C is Windows Volume Serial Number is DFF3-8658 Directory of C:\Users\Al 06/12/2019 05:18 PM <DIR> . 06/12/2019 05:18 PM <DIR> .. 12/04/2018 07:16 PM <DIR> .android --snip-- 08/31/2018 12:47 AM 14,618 projectz.ipynb 10/29/2014 04:34 PM 121,474 foo.jpg عرض محتويات المجلدات الفرعية باستخدام الأمرين dir /s و find بتنفيذ الأمر dir /s في نظام التشغيل ويندوز تعرض المجلدات مع ما تحويه من مجلدات فرعية، فعلى سبيل المثال يعرض الأمر التالي جميع المجلدات التي تنتهي باللاحقة py. في المجلد C:\github\ezgmail مع كافة المجلدات الفرعية ضمنه: C:\github\ezgmail>dir /s *.py Volume in drive C is Windows Volume Serial Number is DEE0-8982 Directory of C:\github\ezgmail 06/17/2019 06:58 AM 1,396 setup.py 1 File(s) 1,396 bytes Directory of C:\github\ezgmail\docs 12/07/2018 09:43 PM 5,504 conf.py 1 File(s) 5,504 bytes Directory of C:\github\ezgmail\src\ezgmail 06/23/2019 07:45 PM 23,565 __init__.py 12/07/2018 09:43 PM 56 __main__.py 2 File(s) 23,621 bytes Total Files Listed: 4 File(s) 30,521 bytes 0 Dir(s) 505,407,283,200 bytes free ويؤدي الأمر find . –name في نظامي ماك أو إس ولينكس الوظيفة ذاتها، كالتالي: al@ubuntu:~/Desktop$ find . -name "*.py" ./someSubFolder/eggs.py ./someSubFolder/bacon.py ./spam.py وجود النقطة (.) يجعل الأمر find يبحث في دليل العمل الحالي، والخيار name- يجعله يبحث عن جميع أسماء المجلدات والملفات، أما الوسيط py.* ذو محرف البدل فيجعل الأمر find يعرض كافة المجلدات والملفات ذات الأسماء التي تتطابق النمط العام py.*، ومن الجدير بالملاحظة أن الأمر find يتطلب كون أي سلسلة تلي الوسيطname- محصورة بين علامتي اقتباس مزدوجتين. نسخ الملفات والمجلدات باستخدام الأمرين copy و cp لإنشاء نسخة من ملف أو مجلد في مجلد آخر، نكتب الأمر copy [source file or folder] [destination folder] أو cp [source file or folder] [destination folder] ، وفيما يلي مثال من نافذة موجه الأوامر في نظام لينكس: al@ubuntu:~/someFolder$ ls hello.py someSubFolder al@ubuntu:~/someFolder$ cp hello.py someSubFolder al@ubuntu:~/someFolder$ cd someSubFolder al@ubuntu:~/someFolder/someSubFolder$ ls hello.py الأسماء المختصرة للأوامر: عندما بدأت بتعلم نظام التشغيل لينكس، تفاجأت عندما اكتشفت أن الأمر copy الخاص بويندوز يدعى cp في نظام لينكس، إذ أن الاسم "copy" كان أكثر وضوحًا من "cp"، وفكرت حينها، هل يستحق اختصار محرفين جعل الاسم غامضًا؟ ومع الوقت ومع اكتسابي للمزيد من الخبرة في نوافذ سطر الأوامر، وجدتُ أن الجواب هو نعم بكل تأكيد. ففي حين أننا نقرأ الشيفرة المصدرية أكثر مما نكتبها، فإن استخدام أسماء كاملة وطويلة للمتغيرات والدوال مفيد بالفعل، أما في نافذة سطر الأوامر فإننا نكتب الأوامر أكثر بكثير من قراءتها، وبالتالي في هذه الحالة العكس هو الصحيح، بمعنى أن استخدام أسماء مختصرة أو قصيرة للأوامر يجعل من عبء كتابتها أيسر. نقل الملفات والمجلدات باستخدام الأمرين move و mv في نظام التشغيل ويندوز، يمكننا نقل ملف أو مجلد من مصدره إلى مجلد وجهة جديد من خلال تنفيذ الأمر move [source file or folder] [destination folder]، وبنفس الطريقة يؤدي الأمر mv [source file or folder] [destination folder] نفس الوظيفة في كل من نظامي التشغيل ماك أو إس ولينكس، فيما يلي مثال من نافذة موجه الأوامر في ويندوز: al@ubuntu:~/someFolder$ ls hello.py someSubFolder al@ubuntu:~/someFolder$ mv hello.py someSubFolder al@ubuntu:~/someFolder$ ls someSubFolder al@ubuntu:~/someFolder$ cd someSubFolder/ al@ubuntu:~/someFolder/someSubFolder$ ls hello.py إذ تم نقل الملف hello.py من مصدره ~/someFolder إلى الوجهة الجديدة ~/someFolder/someFolder، ولم يعد ظاهرًا في موقعه الأصلي. إعادة تسمية الملفات والمجلدات باستخدام الأمرين ren و mv بتنفيذ الأمرren [file or folder] [new name] نعيد تسمية الملف أو المجلد في نظام ويندوز، وبطريقة مشابهة يتم ذلك في نظامي ماك أو إس ولينكس باستخدام الأمر mv [file or folder] [new name]، ومن الجدير بالملاحظة أنه من الممكن استخدام الامر mv في نظامي ماك أو إس ولينكس لإعادة تسمية الملفات ونقلها أيضًا، ففي حال تم وضع اسم ملف موجود مسبقًا في موقع الوسيط الثاني المخصص للاسم الجديد للملف في حالة الرغبة بإعادة تسميته، فعندها ينقل الأمر mv الملف أو المجلد من مصدره إلى ذلك المجلد، أما في حال وضع اسمًا جديدًا لا يطابق أي من أسماء المجلدات الموجودة أصلًا، عندها يعيد الأمر mv تسمية الملف أو المجلد، وفيما يلي مثال من نافذة موجه الأوامر في نظام التشغيل لينكس: al@ubuntu:~/someFolder$ ls hello.py someSubFolder al@ubuntu:~/someFolder$ mv hello.py goodbye.py al@ubuntu:~/someFolder$ ls goodbye.py someSubFolder وبذلك تغير اسم الملف hello.py ليصبح goodbye.py. حذف الملفات والمجلدات باستخدام الأمرين del و rm لحذف ملف أو مجلد في نظام التشغيل ويندوز ننفذ الأمرdel [file or folder]، أما في نظامي التشغيل ماك أو إس ولينكس فننفذ الأمرrm [file] (إذ أن rm هو اختصار لكلمة remove). ولأمري الحذف السابقين اختلافات بسيطة، إذ أن تنفيذ الأمر del في نظام ويندوز على مجلد ما يؤدي إلى حذف كافة ملفاته دون مجلداته الفرعية، كما أن هذا الأمر لن يحذف المجلد المصدري، ولحذفه بكامل محتوياته بالكامل، استخدام أحد الأمرين rd أو rmdir اللذان سنشرحهما في فقرة "حذف الملفات باستخدام الأمرين rd وrmdir" لاحقًا، وبالتالي فإن تنفيذ الأمر del [folder] لن يحذف أي ملفات داخل المجلدات الفرعية لهذا المجلد المصدري، ولحذفها ننفذ الأمر بالشكل del /s /q [folder]، حيث يضمن الوسيط /s تطبيق الأمر del على المجلدات الفرعية، في حين يمثل الوسيط q/ تأكيدًا للعملية، ويوضح الشكل التالي هذا الفرق. القسم الأيسر يبين كيفية حذف الملفات في حال تنفيذ الأمرdel delicious، أما القسم الأيمن لحالة تنفيذ الأمر بالشكل del /s /q delicious من غير الممكن استخدام الأمر rm في نظامي التشغيل ماك أو إس ولينكس لحذف المجلدات وحده، لكن من الممكن استخدامه بالشكل rm -r [folder] لحذف المجلد بجميع محتوياته، وينفذ الأمر rd /s /q [folder] في نظام التشغيل ويندوز المهمة ذاتها، ويوضح الشكل التالي هذه الفكرة. يتم حذف المجلد بكامل محتوياته عند تنفيذ الأمر rd /s /q delicious أو rm -r delicious. إنشاء المجلدات باستخدام الأمرين md و mkdir من الممكن إنشاء مجلد جديد فارغ في نظام التشغيل ويندوز بتنفيذ الأمر md [new folder]، أما في نظامي ماك أو إس ولينكس فيتم ذلك باستخدام الأمر mkdir [folder]، كما يعمل الأمر mkdir أيضًا في نظام ويندوز، إلا ان الأمر md أسهل في الكتابة، وفيما يلي مثال من نافذة موجه الأوامر في لينكس: al@ubuntu:~/Desktop$ mkdir yourScripts al@ubuntu:~/Desktop$ cd yourScripts 1 al@ubuntu:~/Desktop/yourScripts$ ls al@ubuntu:~/Desktop/yourScripts$ نلاحظ أن الملف الجديد الذي تم إنشاؤه فارغ وبالتالي لا يظهر أي شيء لدى تنفيذ أمر عرض المحتويات ls (السطر المشار له بالرقم 1). حذف المجلدات باستخدام الأمرين rd و rmdir في نظام ويندوز، وبتنفيذ الأمر rd [source folder] يتم حذف المجلد المصدري، ولإنجاز نفس المهمة في نظامي التشغيل ماك أو إس ولينكس، نستخدم الأمر rmdir [source folder]. مع ملاحظة أن الأمر rmdir يؤدي أيضًا نفس الوظيفة في نظام ويندوز، إلا أن rd أسهل للكتابة، ولابد من كون المجلد فارغًا لنتمكن من حذفه، وفيما يلي مثال من نافذة موجه الأوامر في نظام التشغيل ويندوز: al@ubuntu:~/Desktop$ mkdir yourScripts al@ubuntu:~/Desktop$ ls yourScripts al@ubuntu:~/Desktop$ rmdir yourScripts al@ubuntu:~/Desktop$ ls al@ubuntu:~/Desktop$ أنشأنا في المثال السابق مجلدًا فارغًا باسم yourScript، ومن ثم حذفناه. أما لحذف المجلدات غير الفارغة (مع كل ما تتضمنه من ملفات ومجلدات)، فننفذ الأمر rd /s /q [source folder] في نظام التشغيل ويندوز، أو الأمر rm -rf [source folder] في نظامي التشغيل ماك أو إس ولينكس. إيجاد البرامج باستخدام الأمرين where و which بتنفيذ الأمر where [program] في نظام التشغيل ويندوز أو الأمر which [program] في نظامي ماك أو إس ولينكس نتبين الموقع المحدد للبرنامج، فعندما ندخل أمرًا في نافذة سطر الأوامر، يبدأ الحاسوب بالبحث عن البرنامج في المجلدات الموجودة في متغير البيئة PATH (رغم أن نظام ويندوز يبحث أولًا في دليل العمل الحالي). إذ تبين لنا هذه الأوامر أي من برامج بايثون التنفيذية سيتم تشغيلها لدى استخدام الأمر pythin في الصَدَفَة، ففي حال وجود عدة إصدارات من بايثون مثبتة على الجهاز، فسيتضمن بالنتيجة عدة برامج تنفيذية وبنفس الاسم، وستكون أفضلية التشغيل حسب ترتيبها في متغير البيئة PATH، وهنا يأتي دور الأمرين where و when لعرضه، كما في المثال: C:\Users\Al>where python C:\Users\Al\AppData\Local\Programs\Python\Python38\python.exe يشير اسم المجلد في المثال السابق إلى أن نسخة برنامج بايثون التي تعمل من الصدفة موجودة في المسار الآتي: C:\Users\Al\AppData\Local\Programs\Python\Python38 تنظيف نافذة موجه الأوامر باستخدام الأمرين cls و clear لحذف كافة النصوص من نافذة موجه الأوامر، ننفذ الأمر cls في نظام التشغيل ويندوز أو الأمر clear في نظامي التشغيل ماك أو إس أو لينكس، الأمر المفيد لدى رغبتك بالبدء بنافذة سطر أوامر جديدة فارغة. متغيرات البيئة ومتغير المسار PATH تحتوي جميع العمليات قيد التنفيذ وبغض النظر عن اللغة البرمجية التي كتبت بها، على مجموعة من المتغيرات المسماة متغيرات البيئة، وهي قادرة على تخزين السلاسل النصية. وعادةً ما تتضمن متغيرات البيئة إعداداتٍ على مستوى النظام، والتي يحتاجها أي برنامج، فعلى سبيل المثال يحتوي متغير البيئة TEMP على مسار الملف الذي يمكن لأي برنامج أن يخزن فيه الملفات المؤقتة. عندما يُشغّل نظام التشغيل برنامجًا (مثل نافذة سطر الأوامر)، فتتلقى العملية المنشأة حديثًا هذه نسختها من متغيرات ومعطيات البيئة الخاصة بنظام التشغيل. ومن الممكن تعديل متغيرات البيئة الخاصة بالعملية فرديًا، دون تعديل مجموعة متغيرات البيئة الخاصة بنظام التشغيل، ما يضمن تطبيق التغيرات فقط على هذه العملية وليس على نظام التشغيل أو على غيرها من العمليات. والهدف الأساس من التطرق إلى متغيرات البيئة في هذا المقال، هو أن المتغير PATH وهو أحدها، قادر على المساعدة في تشغيل البرامج باستخدام نافذة سطر الأوامر. عرض متغيرات البيئة من الممكن عرض قائمة بمتغيرات البيئة الخاصة بنافذة موجه الأوامر باستخدام الأمر set (في نظام التشغيل ويندوز) أو الأمر env (في نظامي التشغيل ماك أو إي ولينكس)، كما في المثال: C:\Users\Al>set ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Al\AppData\Roaming CommonProgramFiles=C:\Program Files\Common Files --snip-- USERPROFILE=C:\Users\Al VBOX_MSI_INSTALL_PATH=C:\Program Files\Oracle\VirtualBox\ windir=C:\WINDOWS إن النص على يسار إشارة المساواة (=) هو اسم متغير البيئة والنص على يمينها هو قيمة السلسلة التي يتضمنها، ولكل عملية مجموعتها الخاصة من متغيرات البيئة لذلك يمكن لسطر الأوامر المختلفة أن تمتلك قيمًا مختلفة لمتغيرات البيئة نفسها. كما من الممكن عرض قيمة متغير بيئة بحد ذاته باستخدام الأمر echo، فمثلًا بتنفيذ الأمر echo %HOMEPATH% في نظام التشغيل ويندوز أو الأمر echo $HOME في نظامي التشغيل ماك أو إس ولينكس، تُعرض قيمة متغيرات البيئة HOMEPATH أو HOME على التوالي، والتي تحتوي على المجلد الرئيسي الحالي للمستخدم، ويبدو الأمر كالتالي في نظام التشغيل ويندوز: C:\Users\Al>echo %HOMEPATH% \Users\Al أما في نظامي التشغيل ماك أو إس ولينكس، فيبدو بالشكل: al@al-VirtualBox:~$ echo $HOME /home/al إن قامت تلك العملية بإنشاء عملية أخرى (كأن يقوم برنامج سطر الأوامر بتشغيل مفسر بايثون) فإن العملية الابن تحصل على نسختها الخاصة من متغيرات البيئة الخاصة بالعملية الأب، ومن الممكن التعديل على متغيرات البيئة للعملية الابن دون التأثير على متغيرات البيئة الخاصة بالعملية الأب وبالعكس. وبالتالي من الممكن عد متغيرات البيئة الخاصة بنظام التشغيل على أنها "مجموعة رئيسية"، تنسخ منها العمليات متغيرات البيئة اللازمة لعملها، وإجمالًا فإن متغيرات البيئة الخاصة بنظام التشغيل قد تُعدل بطريقة أقل مما هو عليه لمتغيرات البيئة الخاصة ببرنامج بايثون، وفي الواقع فمن النادر أن يعدل المستخدمون متغيرات البيئة مباشرةً. الخلاصة يتضمن ضبط البيئة كافة الخطوات الضرورية لجعل الحاسوب قادرًا على تشغيل برامجنا بسهولة، وتتطلب هذه العملية منا معرفة بعض مفاهيم الأولية حول كيفية عمل الحاسوب، كفهم نافذة سطر الأوامر وأهم الأوامر ووسطاء كل منها. ورغم اختلاف موجه الأوامر وأسماء الأوامر الشائعة باختلاف أنظمة التشغيل، إلا أنها تؤدي بالنتيجة المهام ذاتها. قد يستغرق الأمر وقتًا لتعتاد التعامل مع موجه الأوامر، نظرًا لكثرة الأوامر ووسطاء كل منها، لذا لا تتردد في البحث مطولًا على الإنترنت عن المساعدة، فهو الأمر الطبيعي الذي يقوم به مطورو البرامج يوميًا. ترجمة -وبتصرف- للفصل الثاني "إعداد البيئة وواجهة سطر الأوامر" من كتاب Beyond the Basic Stuff with Python لصاحبه Al Sweigart. اقرأ أيضًا المقال السابق: إعداد البيئة وواجهة سطر الأوامر في بايثون دليل استخدام سطر الأوامر في عملية تطوير الويب من طرف العميل المرجع الشامل إلى تعلم لغة بايثون تعرف على المتغيرات وكيفية التعامل معها في بايثون1 نقطة
-
لو قمت بالبحث على محرك البحث جوجل أدوات مجاني في كتابة المحتوي و تصميم الصور سوف يظهر لك العديد من نتئج البحث التي ممكن أن تقترح لك العديد من الأدوات التي تساعدك في كتابة المحتوي و تصميم الصور ، و من هذه الأدوات :- أدوات مساعدة في كتابة المحتوى مجال الكتابة والنحو مثل :- Grammarly المدقق الآلي في مجال وسائل التواصل الإجتماعي والإحصائيات التسويقية مثل :- Hootsuite Buffer BuzzStream Yoast SEO for WordPress Plugin Google Search Console أدوات مساعدة في الوسائط Canva Venngage Snappa1 نقطة