[ندوة - يونكس قذائف، البيئات] [دوغلاس كلاين - جامعة هارفارد] [هذا CS50. - CS50.TV] موضوع اليوم هو قذيفة يونيكس. أنا دوغلاس كلاين، الخبير، أو مستخدم المختصة معقول على الأقل، من قذيفة. قذيفة هو واجهة للمستخدم لنظام التشغيل للكمبيوتر. اسم مضلل كما، على عكس قذيفة الحيوان، والتي من الصعب واقية، وقذيفة الكمبيوتر يسمح للاتصال. لذلك الغشاء المسامي ربما يكون استعارة أفضل. قذيفة الأصلي ليونكس هو قذيفة بورن. هو مكتوبة بورن B-O-U-R-N-E. كان بورن واحدة من الكتاب الأصلي من يونيكس، وهكذا يدعى قذيفة من بعده. اسم ذلك قذيفة كأمر هو ببساطة ش. هذا هو الأمر الذي يمكن تنفيذه. يبدأ قذيفة في تسجيل الدخول. عند تسجيل الدخول إلى الكمبيوتر، وقذيفة يبدأ تشغيل فقط بالنسبة لك، وهذا ما يأخذ الأوامر الخاصة بك. ويمكن ان تبدأ في أوقات أخرى أيضا. إذا كنت إحضار نافذة مع أي إشارة أخرى، فإنه سيتم البدء قذيفة بالنسبة لك. هذا كيف هو أنك يمكن أن تذهب إلى النافذة والبدء بكتابة الأوامر وهكذا دواليك هناك حتى ولو كنت لا تسجيل الدخول إلى تلك النافذة. بالإضافة إلى ذلك، إذا كنت تفعل الدخول عن بعد، ثم انها ستبدأ قذيفة على الكمبيوتر البعيد. وكان من الممكن لتشغيل الأوامر دون قذيفة التفاعلية. يمكن أن يعني في العملية الحالية الخاصة بك، ويمكن أيضا أن تعني عملية النائية. هل يمكن إرسال أمر إلى كمبيوتر آخر، والذي يتضمن بدء قذيفة هناك. في واقع الأمر، فإنه يجب أن تشمل بدء قذيفة هناك حتى لو كان هذا ليس الغرض النهائي الخاص بك. عندما يبدأ شيء ما من هذا القبيل، فإنه لا يبدأ بالضرورة قذيفة جديدة. إذا كنت إحضار نافذة جديدة، فمن الممكن أن أقول ذلك لإحضار محرر أو بعض الأوامر الأخرى. في هذه الحالة، فإن محرر نبدأ من الصفر. عندما تنتهي المحرر، ينتهي النافذة. هذا أمر غير مألوف قليلا ولكن يمكن القيام به. في تلك الحالات، فإنه لن يكون قذيفة. حتى انها ليست بالضرورة أن نافذة أو بعض هذا التطبيق سوف إحضار قذيفة. شل يوزع الأوامر. تحليل يعني تحديد العناصر المختلفة وتصنيفها. ضمن الأوامر، سلسلة كاملة التي تكتبها، سيكون هناك 1 أو أكثر الأوامر واحد ليتم تنفيذها. يمكن أن تكون عناصر أخرى الحجج. يمكن أيضا أن تكون هناك أحرف خاصة التي تؤثر على تنفيذ أمر. يمكنهم إرسال الإخراج في مكان آخر من الشاشة إذا كان الأمر سيرسل عادة إلى الشاشة. فإنه يمكن إعادة توجيه المدخلات، بل يمكن أن تفعل أشياء أخرى أيضا. هناك العديد من الرموز الأخرى، وشخصيات، وهكذا دواليك. ويشمل تحليل الكشف وتفسير تلك الأشياء. الآن إذا لم تكن هناك أسئلة أخرى، والتي من المرجح بدلا حيث لا توجد المزيد من الناس، سوف نذهب إلى الصفحة التالية بلدي هنا. قلت في وقت سابق ان بورن قذيفة قذيفة هي الأولي. وهناك آخرون. واحد هو C-قذيفة. الأمر هو مستشفى الدعم القتالي. اسم C-قذيفة هو مجرد لعب على الكلام. وقدم هذا قذيفة مع بيركلي يونكس في منتصف 1970s. كان بيركلي يونكس الحدث البارز في تطوير يونيكس. لقد كانت ثورة هائلة وشملت إدخال هذه الصدفة. السبب في ذلك لعب على الكلام، C-قذيفة، هو أن C-قذيفة لديها بعض الخصائص التي تشبه في ذلك لغة C، التي ليس لديها بورن قذيفة - أو أنه لم يكن لديهم في ذلك الوقت. هناك أيضا TC-قذيفة. هذا هو شاملة من C-قذيفة. لديها ميزات إضافية، وكثير منها هي مفيدة للاستخدام التفاعلي، مثل التذكير الأوامر في آلية التاريخ، التي سأصف لكم في وقت لاحق إلى حد ما - بطريقة بسيطة، على غرار محرر. كما أن لديها ارتباطات والتي تسمح لك لربط سلسلة مفتاح قصيرة إلى أمر لفترة أطول. نحن لن يكون الحصول في هذا اليوم. لديه بعض الميزات التي هي مفيدة للبرمجة. ومع ذلك، لا يتم في كثير من الأحيان استخدام C-قذيفة قذيفة للبرمجة. برامج شركة شل، وإذا كنت لا تعرف بالفعل، هي البرامج التي تتكون من خصائص قذيفة. هل يمكن تشغيل هذه البرامج كما. تكتب مجموعة من الأوامر قذيفة في ملف وتنفيذ الملف. أنت لا تحتاج إلى ترجمة عليه. هذه هي لغة تفسيرية. العبارة C-قذيفة الآن غامضة لأنها قد تشير فقط إلى الأصلي C-قذيفة، مستشفى الدعم القتالي، أو لجميع C-قذائف، بما في ذلك tcsh. انها غامضة قليلا. قذيفة في وقت لاحق هو كورن قذيفة، KSh الوحدات، الذي سمي على اسم مبرمج، كورن. حاول هذا قذيفة على أن تدرج في 1 قذيفة مزايا C-قذيفة للاستخدام التفاعلي وبورن قذيفة للبرمجة. قد تم استخدامها باعتبارها قذيفة التفاعلية من قبل بعض الناس - أقلية. على الرغم من وقت لاحق، كان هناك مقدمة أخرى، وقذيفة باش، BASH، مرة أخرى لعب على الكلام، قذيفة بورن مرة أخرى. انها امتدادا للقذيفة بورن. كورن قذيفة أيضا. كلاهما. لها نفس أهداف كورن قذيفة من دمج سي شل والمزايا بورن قذيفة في 1 قذيفة. يتم تضمين العديد من التحسينات من قذيفة كورن أيضا في باش. باش، ومع ذلك، لديها اكثر وبالتالي فهو الأفضل. ومرة أخرى بورن قذيفة وتسمى قذيفة كورن بورن من نوع قذائف لأنها تتضمن خصائص بورن قذيفة، و التي تتنافى في بعض النواحي مع C-قذائف. هناك قذائف أخرى إلى جانب هؤلاء، بعض المعدة للاستخدام مقيد، ربما تقتصر على بعض الأوامر، وربما أغراض المتخصصة، لا تستخدم في كثير من الأحيان. حسنا >>. البند التالي هنا. أصبح باش قذيفة المرتبطة أشكال مختلفة من لينكس. أنا لست متأكدا مما إذا كان هذا صحيحا من كل شكل. هناك أشكال كثيرة من هناك وأنا لم تستخدم كل منهم، ولكن في تلك التي كنت قد استخدمت أصبح يرتبط معها. حتى الآن ما أعرف، لا يوجد شيء حول باش الأمر الذي يجعل من أي أكثر توافقا مع لينكس أكثر من أي مجموعة أخرى من قذيفة ونظام التشغيل. وأعتقد أن هذا ربما يعكس مجرد الميول من المبرمجين. أنه أصبح يرتبط مع لينكس هو سبب آخر لتفضيل باش لKSH منذ الأمور من المحتمل أن تكون مكتوبة في ذلك، وأنه من المرجح أن تنتشر. سأعطيك أسباب أخرى لذلك في وقت لاحق. يجب أن البرامج النصية قذيفة بورن تعمل تحت قذيفة كورن أو باش. إذا كنت أكتب شيئا للصدفة بورن، ربما يمكنك تنفيذ ذلك تحت KSh الوحدات أو باش. من المحتمل تشغيل البرامج النصية قذيفة كورن تحت باش، ولكن لا يمكنني ان اضمن ذلك. في وقت لاحق هنا، يجب تشغيل البرامج النصية C-قذيفة تحت TC-قذيفة. وفعلا لم تستخدم قط على نطاق واسع في C-قذيفة للبرمجة منذ بورن قذيفة في وقت لاحق كانت قذائف من نوع بورن الأفضل لهذا الغرض. لذلك هذا هو حقا ليس كل ما الهامة. هناك الكثير جدا من بورن البرامج النصية قذيفة التي كانت مكتوبة منذ فترة طويلة، قبل كورن قذيفة أو قذيفة بورن مرة أخرى أدخلت. تلك لا تزال قيد الاستخدام، وهي جزء من أنظمة التشغيل، وهكذا سوف تجد لهم اذا نظرتم في نظام التشغيل أو بعض الحزم البرمجية القديمة. باش هو إلى حد ما أصبحت نوعا من لغة مشتركة لأنظمة التشغيل. لقد تم بالفعل تمديده إلى Windows وVMS. VMS، في حال كنت لا تعرف، هو نظام التشغيل الملكية من شركة المعدات الرقمية التي لا تزال قيد الاستعمال، إلى حد كبير وراء الكواليس. وإذا أريد لها أن تكون قيد التشغيل على عدة نظم تشغيل مختلفة، من المرجح أن الناس يميلون إلى التحول لذلك. ولكن هذا التطور هو حديث نسبيا. انها بداية فقط، لذلك لا أستطيع التكهن بما اذا كان هذا سوف تتحول إلى أن تكون حقا هذا النوع من لغة مشتركة. أيضا، لأن اسم الدليل الملفات والمكتبات تختلف بين هذه أنظمة تشغيل مختلفة، قد لا تكون قادرة على كتابة السيناريو باش على نظام تشغيل واحد ومن ثم تشغيله على بعضها البعض. يجب أن تكون قادرة على نقلها بين مختلف يونكس، لينكس أنظمة التشغيل Mac OS ولكن ليس بالضرورة إلى ويندوز أو نظام رصد السفن. قد تضطر إلى تغيير مسار ملف الأوصاف، وبعض المكتبات قد تكون مختلفة، والتي قد تؤثر على الطريقة التي تعمل بعض الأوامر أو كيف معالجة الحجج وما شابه ذلك. بالإضافة إلى ذلك، الحذر أخرى هنا هو أن ليس هناك ما يضمن أن جميع قذائف مختلفة لقد ذكر - بورن قذيفة، C-قذيفة، TC-قذيفة، كورن قذيفة، قذيفة بورن مرة أخرى - سوف تكون متاحة تحت أي يونكس أو لينكس أو كمبيوتر ماكنتوش. انهم ببساطة قد لا يكون هناك. هذا هو واحد من التحذيرات هنا. انها الحد المؤسف هنا منذ كنت أحب الأشياء للعمل في كل مكان، ولكن للأسف، لا يمكنك الاعتماد على ذلك. حسنا >>. احد القادم هنا. دعونا نقول ان كنت ترغب في كتابة السيناريو قذيفة، برنامج يتكون من الأوامر قذيفة. تكتب الأوامر الخاصة بك، ووضعها في ملف، وتنفيذ الملف. ما إذا كنت تريد أن تشمل الحجج؟ في حالة عمليات شركة شل، وتسمى الحجج المعلمات أو معلمات الموضعية وأنها سوف يتم استدعاؤها بواسطة علامة الدولار والأرقام، 1 دولار، 2 دولار. لذلك إذا كان لديه النصي هذا الاسم، أول حجتي قد يكون حجة 1 وبلدي الثاني قد يكون حجة 2، وداخل بلدي النصي إذا أريد أن أشير إلى هذه الأمور - دعونا محو هذه منذ أنا لا حقا لتشغيله - داخل بلدي النصي وأنا قد يكون 1 دولار إلى الرجوع إلى ARG1، 2 دولار، والتي سوف يخرج بهذه الطريقة، ARG2. حتى تتوفر للإشارة إلى الحجج تلك الرموز، وهذه تنطبق على كل من قذائف. بالإضافة إلى ذلك، هناك شخصيات أخرى. $ * يشير إلى القائمة الحجة كله، كل منهم. $ # يشير إلى عدد من الحجج. مرة أخرى، وهذا ينطبق على جميع القذائف. تلك الرموز، * و #، ويمكن استخدامها مع تلك المعاني في أماكن أخرى أيضا. ونحن لن يكون الحصول في ذلك. شل خط محدد. ما هذا عنه؟ دعونا نقول لكم لقد كتب السيناريو وانها لقذيفة معينة وتريد تشغيله. كيف يمكنك أن تعرف ما سوف قذيفة نظام التشغيل استخدامها لتشغيل البرنامج النصي الخاص بك؟ عند نقطة واحدة هل يمكن أن نفترض أنه سيكون تشغيله في وعاء بورن إذا كنت لم يقل غير ذلك، ولكن الناس لا كتابة البرامج النصية في بورن قذيفة أن الكثير بعد الآن وأنت لا تستطيع حتى تعتمد على ذلك بعد الآن. حتى هنا لدينا خط محدد قذيفة هنا. يحدد باش. نلاحظ أنه يحدد ذلك في مسار، / بن / سحق. إذا كان لديه جهاز كمبيوتر قذيفة باش ولكن ليس في الدليل بن، / بن، وهذا لن ينجح. هذا هو آخر مؤهل، والحذر أخرى هنا. الجنيه هو حرف سطر تعليق. الذي ينطبق على جميع القذائف. حالة خاصة هنا، #! في بداية السيناريو، هو حالة خاصة. يحدد قذيفة فيه لتشغيل البرنامج النصي. كما كنت أقول، أنه قد لا يكون نفس المكان / بن. بالإضافة إلى ذلك، هناك شيء آخر هنا. إذا كنت مجرد استخدام الجنيه مع عدم وجود علامة تعجب واسم المسار، يجب أن تشير إلى C-قذيفة. ومع ذلك، وأنا لا أنصح يفعل ذلك لأنني لست قادرة على ضمان التي من شأنها أن تعمل دائما. إذا كنت ترغب في C-قذيفة، وسيكون من الأفضل أن يقول ذلك. ثم هناك شيء مربكة نوعا ما هنا. إذا كنت تستخدم خط قذيفة محدد مثل / بن / سحق وأن قذيفة غير متوفرة هناك، ليس هناك شيء مثل / بن / سحق على هذا الكمبيوتر بالتحديد، إما لأنه لا يملك باش أو لأنه في موقع مختلف، ستحصل على خطأ تخبرك أن البرنامج النصي الذي ركض غير موجود. وبطبيعة الحال وجود السيناريو الخاص بك، بحيث رسالة الخطأ هو مربكة. السبب أن نظام التشغيل يوفر لك هذا الخطأ أو، بدقة أكثر، أن قذيفة التفاعلية التي تقوم بتشغيل هذا يعطي هذا الخطأ، هو أنه يفيد الأمر الذي استخدمته، والذي هو اسم البرنامج النصي. ودعا هذا الأمر بشكل فعال قذيفة من قبل اسم البرنامج النصي. حيث ان تحصل تلك الرسالة الخطأ مربكة. طريقة أخرى لدعوة شيل هو لتحديد قذيفة على سطر الأوامر، كما هنا. هذه هي وصية. هذا يقول باش تشغيل ثم قم بتشغيل البرنامج النصي في بلدي باش. سوف تأخذ الأسبقية على خط محدد، وهذا له ميزة تسمح لك لتوفير اسم الدليل متفاوتة. إذا كنت مجرد إعطاء الأوامر، ونظام التشغيل للبحث عن هذا الأمر في أماكن مختلفة. إذا كان متوفرا، يجب أن العثور عليه. سيقوم الكمبيوتر تجد باش أينما انها تقع وتشغيله، لذلك لا تحتاج بعد ذلك إلى أن تشعر بالقلق إزاء حيث يجد ذلك. هناك مخاوف محتملة أخرى هنا، كما لو كان هناك أكثر من 1 نسخة من باش، وهو أمر ممكن على الرغم من غير المرجح. بحيث طريقة أخرى للتعامل مع هذه الأمور. يمكن استدعاء أي خطوط محدد قذيفة. كما أنها يمكن أن نسمي الأشياء الأخرى من قذائف. والحوار الاقتصادي الاستراتيجي الأمثلة لدي هنا، وهو محرر تيار؛ AWK، وهي لغة معالجة النمط؛ وبيرل، لغة برمجة متطورة جدا. إذا وضعت خط محدد مشيرا إلى واحد من تلك البرامج في البداية، وسوف تذهب مباشرة إلى هذا البرنامج بدلا من البدء قذيفة. هذه البرامج لديها حدود لقدراتهم. بيرل هي قادرة جدا. رسب هو محرر. يمكن أن تفعل أشياء أبعد من مجرد تحرير. ولكن يمكن أن يكون من الصعب برمجة ذلك. بالإضافة إلى ذلك، تمرير الوسائط والاشياء الى السيناريو هو إما مستحيلة أو مربكة. حتى في تلك الحالات، مع AWK أو حوار، انها، على الأقل في تجربتي، من الأفضل أن يكتب شيل والدعوة AWK أو الحوار الاقتصادي الاستراتيجي من شيل بدلا من استدعاء AWK أو الحوار الاقتصادي الاستراتيجي كخط النصي محدد. بيرل هي لغة متنوعة للغاية، كما قلت. لا يمكنك تشغيل الأوامر التفاعلية في بيرل، وهو ما يعني أنه لا يمكن اختبار أجزاء من النصوص التي كنت النامية قبل تشغيلها بشكل تفاعلي. ومع ذلك، انها لغة قادرة للغاية وتطورت لتصبح أداة تستخدم على نطاق واسع جدا. هذا مجرد قليلا من ملاحظة قوسين حول خطوط محدد. في كل أو معظم أشكال لينكس - مرة أخرى، وأنا لا يمكن أن تكون على يقين من أن كل شيء - ونظام التشغيل Mac OS، إذا قمت بكتابة مستشفى الدعم القتالي تحصل tcsh، وإذا قمت بكتابة ركلات الترجيح تحصل باش. كانوا يحاولون هناك لتعطيك نسخة أكثر تطورا من هذه القذائف، ولكن هذا يمكن أن يكون مربكا. إذا كنت أكتب نصي باستخدام tcsh أو باش يتميز بينما يدعو مستشفى الدعم القتالي او ركلات الترجيح وحاول لتشغيله على جهاز الكمبيوتر الذي لا يملك tcsh أو باش، قد تحصل بعض الأخطاء إذا كانت هناك أوامر في هناك تلك التي لا تعترف قذائف. بالإضافة إلى ذلك، قد يكون لديك استدعاؤهم قذيفة على الكمبيوتر المحلي الخاص بك واصفا إياه كما SH أو مستشفى الدعم القتالي ومن ثم الحصول على قذائف أكثر تقدما. قد لا تفكر في حقيقة أن كنت تستخدم قذيفة أكثر تقدما. لذلك هذا هو شرك المحتملة. كيف يتم إثبات أن إذا قمت بكتابة ركلات الترجيح تحصل باش، إذا قمت بكتابة مستشفى الدعم القتالي تحصل TSCH؟ هناك أشياء في هذه الحواسيب تسمى الروابط التي يمكن الاتصال إلى ملف أسماء للإشارة إلى نفس الشيء. يمكن أن يكون إما 2 أسماء لنفس الملف أو ملف الذي يهدف إلى الرجوع إلى ملف آخر. انهم يسمى ارتباطات ثابتة ورمزية. نحن لن الخوض في ذلك بعد الآن اليوم. قد يكون هناك أيضا ملفات منفصلة - 1 ملف ش، 1 ملف باش - ولكن كلاهما تشغيل باش. ثم هناك تصفيات أخرى هنا. إذا كنت استدعاء إحدى هذه القذائف اسم واحد، قد تعتقد أنك سوف تحصل على نفس الوظائف ك اصفا اياه بالاسم أخرى. حسنا، هذا ليس صحيحا في الواقع بالضرورة. ويمكن لهذه الأوامر فحص الاسم الذي كانت تسمى ويمكن أن، على أساس أن اسم، تتصرف بشكل مختلف. قد تكون هناك قضايا من محاولة لتتوافق مع معيار. البعض منكم قد سمعت من معيار POSIX أو لآخر، ربما غيرها من الميزات. يمكن تحديد هذا في بعض الأحيان من قبل وسائط سطر الأوامر أو عن طريق وضع المتغيرات قذيفة. الدعوة بأنها ش باش أو قد يؤدي في الواقع إلى تنفيذ مختلف حتى لو كان نفس الملف الذي كنت المنفذة. شيء آخر للنظر هو أنه حتى لو جهاز كمبيوتر آخر لديه tcsh أو باش، إذا لم تكن مرتبطة كما هي على الكمبيوتر المحلي إذا كان لديك الكمبيوتر المحلي لينكس أو نظام التشغيل Mac OS، ثم مرة أخرى ستحصل على القذيفة التي يمكنك استدعاء SH أو مستشفى الدعم القتالي، وليس تلك التي قد تفضل. التيار بورن قذيفة ديه التحسينات أقل من تلك الموجودة في باش ولكن في الماضي تلك بورن الأصلي قذيفة. نتيجة لذلك، حتى بورن قذيفة الحالية، ش، حتى عندما لا يكون باش، تشبه لغة C أكثر من C-قذيفة لا. لم يكن ذلك صحيحا عندما تم إنشاء C-القذيفة الأولى، لكنها وضعت على هذا النحو. كنت قد لاحظت هنا أن جميع أسماء هذه قذيفة باستثناء قذيفة بورن لديك شيء للإشارة إلى أي قذيفة هم - مستشفى الدعم القتالي، باش - ولكن بورن قذيفة هو مجرد ش. لماذا؟ وكان أن قذيفة الأصلي. وكان قذيفة ثم، لا قذيفة، ونظرا لأنه كان وعاء، وليس هناك أي سبب لتمييزه عن قذيفة أخرى. ولهذا السبب كان لديه هذا الاسم لا يزال و. هذا أعلى هنا هو خط من قاعدة بيانات كلمة المرور لحساب لدي هناك على كمبيوتر آخر. انا ذاهب الى محاولة للحصول على هذا الاسم حتى تستطيع أن ترى هذا الجزء في نهاية، وقذيفة. يحمل قاعدة بيانات كلمة السر خصائص تسجيل الدخول لجميع المستخدمين. في بداية هو المستخدم، والتي تستطيع أن ترى في خطابات 2 مشاركة لي الآن. يتم فصل الحقول هنا من قبل كولون. الحقل الأخير، وكما ترون، هو بن / tcsh، وقذيفة. هذا هو محدد قذيفة. هناك شيء مثير للاهتمام هنا. عندما وضعت أول يونكس، لم يكن هناك سوى 1 قذيفة، لذلك لم يكن هناك خيار هناك. فلماذا يسمحون حقل في قاعدة بيانات كلمة السر لتحديد قذيفة؟ أنا لا أعرف، ولكن من حسن الحظ أن فعلوا ذلك. انها صعبة نوعا ما لإجراء تغييرات في شكل قاعدة بيانات كلمة السر لأن العديد من برامج الرجوع إلى شكله ويجب أن تكون إعادة كتابة. انها تنمية السعيدة أو محاسن أنها شملت هذا المجال. ويستخدم هذا النوع من خط ملف كلمة المرور على كافة أجهزة الكمبيوتر يونكس ولينكس حتى الآن ما أعرف. ماك لديها نظامها الخاص. انها فعلا ملف كلمة المرور مع خطوط في هذا الشكل، ولكن هذا ليس حيث يتم تعريف خصائص المستخدم. آخر تصريحات قوسين هناك. إذا كنت تتصل قذيفة، يمكنك تسميتها كما قذيفة فرعية من قذائف الموجودة لديك. حتى إذا ذهبت هنا، دعونا نتخلص من هذه الأشياء. أنا هنا في C-قذيفة. هذا المتغير، الذي يحدد بدقة بلدي شل، في الواقع ليست دائما وسيلة يمكن الاعتماد عليها لتحديد ما كنت قذيفة على التوالي، ولكن في هذه الحالة هو عليه. ماذا لو أنا فقط اكتب - الآن أنا في باش. بعض الامور تسير لتكون هي نفسها. ليرة سورية يقول لي وصاياي. إذا أنا لا تعليق على العودة الى بلدي C-قذيفة، ليرة سورية، نفسه. أليس كذلك؟ FG، المقدمة، والعودة إلى بلدي باش قذيفة. الأشخاص ذوي الإعاقة، الدليل الحالي، والعودة إلى C-قذيفة. الأشخاص ذوي الإعاقة، دليل مختلف - في الواقع ليست دليل مختلف في هذه الحالة. انها نفس الدليل. دعنا نقول أريد أن أدعو أمر هنا: حيث ليرة سورية. ماذا تفعل ذلك؟ يقول لي فيها قيادة ليرة سورية، يقع واحد أن يعطيني سرد ​​الدليل، في ليرة سورية. دعونا نعود إلى باش قذيفة. دعونا نحاول نفس الشيء. هم، مثيرة للاهتمام هناك، حيث: الأمر غير موجود. لماذا؟ حيث يتم بناء الأوامر في لC-قذيفة. هذا ليس الأمر الذي لابد من قراءة في الذاكرة من مكان آخر وأعدم. سي قذيفة يعمل عليه عن طريق نقل التنفيذ إلى جزء من التعليمات البرمجية الخاصة به وانها ليست في باش قذيفة. حتى باش، وليس وجود مثل هذا الأمر في البناء، يبدو لذلك، لا تجد، ونحصل على خطأ. حتى لا يكون هناك لدينا قذيفة باش التشغيل ضمن C-قذيفة، وندعو أن قذيفة الفرعية. وفقط في حال كنت غريبة، باش قذيفة لديها طريقتها الخاصة في تحديد الأوامر. يشير المجزأة إلى حقيقة أنه يمكن تنفيذها بسرعة أكبر، يتم العثور بسرعة أكبر. هذا هو واحد من التحسينات التي بنيت في بعض من هذه القذائف. ويفضل بورن من نوع قذائف للبرمجة. لديهم هياكل المراقبة مثل الحلقات، وعبارات الشرطي، هذا النوع من الأوامر التي قد تستخدم في لغات البرمجة مثل C أو أي لغة. ربما كنت البرمجة بلغة جافا أو أيا كان. قذائف يكون هؤلاء أيضا. قذائف بورن من نوع، ولا سيما باش، لديها أكثر وأنها مصممة مع قدر أكبر من المرونة. باش قذيفة ديه المصفوفات. وبورن الأصلي قذيفة لا. بحيث يمكن أن تكون مفيدة بشكل كبير للبرمجة. سي قذيفة في الواقع لا يكون المصفوفات ولكن ليس لديها الكثير من هذه الميزات الأخرى. سوف قذائف من نوع بورن تنفيذ أسرع إذا لم يكن لديهم الميزات التفاعلية المعدة للاستخدام. قمت بتحميل الأمور لغرض واحد، وهذا يحمل عليهم لغرض آخر. أن هناك مفاضلة هناك. تلك الميزات التي تهدف للاستخدام التفاعلي هي في الواقع من استخدام ضئيلة أو معدومة للبرمجة. فمن الممكن لاستخدام تفاعلية قذيفة الفرعية فقط مثل واحد بدأت هناك لاختبار الأوامر التي كنت تنوي استخدامها في برنامج نصي. هذا ما لا يمكنك أن تفعل مع بيرل. يمكنك أن تفعل ذلك مع قذائف. يمكن تشغيل حتى الهياكل مثل لحلقات وهكذا دواليك بشكل تفاعلي. فهي مفيدة في بعض الأحيان إلى تشغيل تفاعلي، ولكن على الأرجح كنت تستخدم لهم لتطوير السيناريو. أسماء مستعارة. هذه ستكون حول C-قذيفة. آلية التاريخ، حيث تحصل إلى الأوامر في وقت سابق أو أجزاء منها بعد أن قمت بتشغيل بالفعل. مرة أخرى، حول C-قذيفة، قذيفة بورن وكورن قذيفة لديك هذه الأشياء، ولكن أنا لن تحصل فيها. حتى هنا بعض الأسماء المستعارة المفيدة التي لدي. بدلا من كتابة ليرة سورية - انها أمر شائع - فقط اكتب لتر وتنقذ نفسك 1 حرف. ليرة سورية مع خيارات مختلفة، كل تلك الأعمال. نلاحظ أن تلك التعاريف ديك يقتبس من حولهم. في هذه الحالات، ويقتبس ليست ضرورية. إذا كان يمكنك تحديد تلك الأسماء المستعارة دون أن يستشهد، فإنه لا تزال تعمل. وأوصوا. هناك حالات حيث لا يمكنك استخدام الاقتباس لأنك تريد أن يحدث شيء الذي من شأنه أن يمنع الاقتباس. في بعض الأحيان يمكنك أقتبس جزءا من تعريف ولكن ليس كل من هو. هو أيضا يوصى بها عموما لاستخدام علامات الاقتباس المفردة بدلا من علامات الاقتباس المزدوجة. علامات الاقتباس المزدوجة لها آثار على تعريفات المتغير، وخاصة مما يسبب لهم ليتم تقييمها بدلا من منعها. لماذا نريد لوقف التقييم؟ وكيف نفعل ذلك نقلت لنا؟ هنا هو أمر التي قد تجد مثيرة للاهتمام. 'ز * ليرة سورية " ز *، كما تعلمون، هو تعبير البدل لجميع أسماء الملفات التي تبدأ ب ز. إذا أنا فقط أكتب في الأمر ls ز *، وأنا سوف تحصل على قائمة بجميع تلك الأسماء في الدليل بلدي الحالي. إذا كنت تعرف أن الاسم المستعار كما هو هنا مع علامات الاقتباس، فستعمل هذا الأمر في الدليل الحالي الخاص بك حيث كنت تشغيله. ولكن إذا قمت بتشغيل تعريف اسم مستعار دون أن يستشهد، فإنه سيتم تقييم البدل ز * عند تشغيله هذا الأمر حاسمة. وبالتالي فإن تعريف الاسم المستعار سيتم يرة سورية تليها قائمة الملفات في الدليل التي يتم فيها تنفيذ الأمر الاسم المستعار، بغض النظر عن المكان الذي تنوي فعلا لتشغيل الأمر. هذه ليست ذات فائدة كبيرة، وعلامات الاقتباس المفردة منع تقييم النجمة. لذلك أنت فقط الحصول على تعريف كائن ليرة سورية ز *. ثم عند تشغيل مستعار، LGS، فإنه ثم يضع أنه من أصل. الآن لا توجد علامات الاقتباس، وأنها سوف تقيم النجمة عند تشغيل الأمر الاسم المستعار. بحيث شيء واحد. أن التنصيص يكون هذا التأثير نفسه هنا، ولكن هناك حالات أخرى حيث أن التنصيص لا تعمل على ما يرام. هنا هو واحد آخر. هل يمكن أن نعرف الأمر البقرى. يمكن استخدام الأمر البقرى لمسح ملف للخطوط التي لديها بعض السلاسل. لذلك دعونا نذهب أكثر من هنا وأنا الخروج من بلدي شل بورن. بخير. وهنا ملف. دعنا نقول انها البقرى سلاسل حروف. هناك هو عليه. إذا كنت تفعل zddd البقرى، وأحصل على أي شيء. بخير. لذلك يجد سلسلة، فإنه تقارير، بل لا يجد، فإنه لا يعلم ذلك. ذلك بإخراج أي الخط الذي لديه هذه السلسلة على ذلك. هناك كل أنواع من الخيارات هنا والتي يمكنك أن تجد في الوثائق. هنا طريقة واحدة للقيام بذلك. ماذا عن هذا واحد، الاسم المستعار grabc 'البقرى اي بي سي "؟ وهذا ما سوف تشمل 1 حجة عند تعريف الاسم المستعار. حتى لو كنت تفعل ذلك هنا، والآن إذا كنت تفعل grabc، الآن الاسم المستعار تشمل أكثر من مجرد أمر بسيط. كما أن لديها حجة. حتى الآن أن يعمل. لدي أمر آخر هنا، هذا واحد، حتى تلك هي سلاسل مختلفة في هناك وتبين أن هذا لا تجد أي شيء هناك لأنه لا يطابق. ماذا لو أريد أن تدرج في تعريف الاسم المستعار الملف الذي أنا ذاهب للبحث وأريد أن أعطي كوسيطة إلى الاسم المستعار السلسلة التي أنا أبحث عنه؟ وأود أن أقول ABC كوسيطة إلى الاسم المستعار الخاص بي، ولكن الاسم المستعار حددت بالفعل الملف. وهذا هو المكان الذي يأتي هذا التعبير فيه. لاحظ هنا لدينا البقرى تماما مثل قبل. لدينا ملف هنا، سلاسل. \ ^، نوع من التعبير الغريب، أفترض، إذا كنت لم أر هذا من قبل. تعجب هو جزء من آلية التاريخ C-قذيفة. ويمكن ان نذكر الأوامر في وقت سابق، ويمكن ان نذكر الحجج لتلك الأوامر وهكذا دواليك. يتم استخدام آلية التاريخ كجزء من التعرجات. إذا قمت بتحديد السطر بعد علامة التعجب، وسوف أشير إلى هذا الخط في قائمة التاريخ، ونحن لن يكون الدخول الآن لأنه موضوع مختلف تماما. فمن الممكن لتحديد جزء من الخط. حتى 03:02! سيكون الوسيطة الثانية من الأمر رقم 3. والإقحام هنا في هذا التعبير لتقف على الوسيطة الأولى. إذا كنت لا تعطيه مؤشرا الأمر الذي كنت في اشارة الى، فإنه يشير إلى الأمر السابق على الفور، والإقحام هو رمز للالوسيطة الأولى. لأنها الإقحام وليس العدد، لا تحتاج إلى استخدام القولون، حتى! ^ يعني الوسيطة الأولى إلى الأمر السابق. يخلط قليلا هنا. في هذه الحالة، عند استخدام هذا بمثابة تعريف الاسم المستعار، المرجع التاريخ يشير إلى الأوامر التي يتم استخدام الاسم المستعار. لذلك هذا هو العودة 1 القيادة كعملية التاريخ، ولكن كعملية الاسم المستعار يشير إلى الأمر الذي ستكتب، أقول، grstrings_file. لدينا هنا يقتبس في ذلك. ما هو مائل لل؟ في هذه الحالة، كما في أماكن أخرى، ونحن لا نريد لتنفيذ آلية التاريخ مع تحديد الاسم المستعار. إذا لم يكن لدينا مائل هناك، فإن قذيفة سحب في الوسيطة الأولى الأمر الحق قبل أن يدير هذا الأمر اسم مستعار، وهو ما لا تريد. نحن نريد من هذه التي سيتم بناؤها في الأمر أن الاسم المستعار لاستدعاء حجة في وقت لاحق. ونقلت واحد لا الهروب تعجب، فإن الإشارة التاريخ. ربما كنت تعرف الهروب التعبير وسيلة لتغيير معنى لشيء ما. في هذه الحالة، فإن ذلك يعني شيئا لوقف من وجود معنى خاص. معنى خاص تعجب هو التاريخ. الهرب وأنه ليس لديه هذا المعنى. ونقلت لا تفعل ذلك؛ مائل يفعل. لذلك نحن في الواقع باستخدام مستويات 2 من الهروب هنا. أنا ذاهب لنقل هذا الأمر إلى إطار آخر دون كتابتها باستخدام هذه العمليات والتحرير، والتي قد تجد مفيدة. شيء آخر هنا سوف تظهر لك. إذا كنت فقط اكتب الاسم المستعار بدون وسائط، فإنه يقول لك كل ما تبذلونه من الحجج. هذا هو مجموعة من الأسماء المستعارة أنا بالفعل كان هنا إلى جانب تلك التي لقد تم استخدام هنا اليوم. ولكن إذا أنا فقط اكتب مع اسم مستعار، فإنه يقول لي ما يعنيه. تلاحظ أن يقتبس ولت وذهبت مائل. هذه السلسلة هنا هو نتيجة لهذا التعريف الاسم المستعار، والآن لديها فقط! ^ فيه. وهذا ما سوف ننظر في سلاسل ملف عن أي شيء. حتى لو كنت تفعل سلاسل grstrings_file، وأنا لم تعطيه أي شيء للبحث عن هناك، لكنه يبحث في السلاسل. أنها لم تجد السلاسل كلمة في سلاسل الملف، ولكنه لا يجد اي بي سي. وأنها لا تجد ذلك. حتى هنا نعطي حجة أن يضرب في تعريف الاسم المستعار، التي يتم إدراجها فيه. انها المكان الذي يأتي هذا التعبير من بينها. يمكنك استخدام أكثر من 1. والإقحام هو رمز للالوسيطة الأولى. إذا أردت استخدام الوسيطة الثانية، وكنت ثم يقول: 2. ليس هناك رمز خاص لالوسيطة الثانية. ولأن كنت تستخدم الأرقام، سيكون لديك لاستخدام القولون. هناك، ومع ذلك، خيار آخر هنا. علامة الدولار تقف على الحجة الماضي. ولأن هذا هو رمز، يمكنك حذف القولون. لذلك سيكون حجة الأخير في القائمة. وهناك أيضا أن واحدا. النجمة يعني كل، لذلك هذا هو حجة قائمة كاملة، ومرة أخرى، يمكنك حذف القولون لأنها ليست الأرقام. آمل كنت مراقبة جميع كل هذا. آلية التاريخ يمكن أن نعود إلى خطوط في وقت سابق في قائمة التاريخ. هل يمكن أن تفعل ذلك في تعريف الاسم المستعار. أنا لم أر قط هذا المنجز. كان يمكن أن يكون تأثير سحب الأوامر في وقت سابق من قائمة التاريخ عند تنفيذ الاسم المستعار، والتي يمكن أن تكون أوامر مختلفة اعتمادا على متى وأين كنت تنفيذه. تصور أنك قد ترغب في سحب هذه الإشارة فقط أن نعرف ما كان أمر في وقت سابق. أنا لم أر قط ذلك. أفترض شخص قد ترغب في، ولكن هذا من المستبعد جدا. هناك شيء آخر هنا. إذا كنت تستخدم هذا التاريخ من نوع المرجعية، ثم يتم استخدام سوى الحجج التي تكون هناك مثل هذه الإشارة. إذا كان لديك تعريف الاسم المستعار الذي لا استخدام مرجع التاريخ من نوع، إذا أصبح مجرد بداية الأمر وكان لديك المزيد من الحجج، ثم اكتب أي شيء بعد ذلك وستضاف إلى الأمر. في هذه الحالة، أنا فقط أعطى المثال هناك، كنا الوسيطة الأولى؛ لم نستخدم أي أشخاص آخرين. إذا أعطيت الحجج الأخرى على سطر الأوامر، وأنها لن تستخدم. حتى إذا كنت تستخدم الإشارة التاريخ في كل شيء، ثم يجب استخدامها للحصول على أي حجة. هناك شيء آخر هنا أريد فقط أن أذكر، بين قوسين جزئيا، أي أن هذه الآلية التاريخ مع علامة تعجب يعود إلى الأصلي C-قذيفة. عرض tcsh عمليات التاريخ التي تستخدم أنواع الأوامر وسلاسل من المحررين، إما إيماكس أو السادس. رأيي الشخصي هو إيماكس هو أسهل بكثير لاستخدامها لهذا الغرض حتى إذا كنت تستخدم السادس للتحرير العادية الخاصة بك. هناك العديد من أوامر ايماكس التي يتم تكييفها الآن للتاريخ. السيطرة P يحصل على السطر السابق في قائمة التاريخ. سوف تحكم أخرى P تحصل على واحدة قبل ذلك. السهم حتى يفعل الشيء نفسه. السيطرة N يحصل الأمر التالي إذا كنت قد تمريره بالفعل يعود بعض الطرق. السهم لأسفل يفعل ذلك أيضا. يمكنك تحرك اليسار إلى اليمين مع السهام وغيرها من الأمور المختلفة. وهذا يمكن الاستفادة من آلية التاريخ أسهل بكثير من استخدام بناء الجملة تعجب، ولكن هل لا استخدام ذلك في تعريف الاسم المستعار. سنذهب على أن بعض وقت آخر. المتغيرات. كنت تعرف ما هي المتغيرات في لغات البرمجة. قذائف يكون لهم أيضا. يستخدم C-قذيفة الأمر تعيين لتعيين المتغيرات، بحيث يحدد المتغير إلى قيمة ب - كما قلت، تعريفا غير مجدية ولكن توضيحا لكيفية استخدام هذا. فإن الأمر set بإنشاء متغير إذا لم يكن موجودا بالفعل. يمكن اعتبار المعلمات الموضعية للمخطوطات قذيفة المتغيرات، ولكن استخدام بينها وبين القواعد بالنسبة لهم هي مختلفة بعض الشيء. لا يمكنك تعيين قيمة 1 دولار في سياق برنامج نصي. قد تضطر إلى تعريف متغير جديد لهذا الغرض إذا كان بعض من أردت. اكتب تعيين بدون وسائط وتحصل على قائمة بجميع المتغيرات المعرفة حاليا. ودعونا نصل الى بلدي قذيفة أخرى هنا وانظر ماذا يحصل نرجو اذا لم نفعل ذلك. قائمة طويلة جدا هناك، أليس كذلك؟ انتقل إلى أعلى قليلا. ننظر في كل ذلك. وتعرف بعض من هذه الأمور تلقائيا بواسطة قذيفة. قذيفة يخلق متغير ويعطيها قيمة. يتم تعريف بعض منهم من قبل قذيفة ولكن بعد ذلك إعادة تعريف من قبل المستخدم وفقا لتفضيلاته. ومنهم من يتم إنشاؤها من قبل المستخدم اعتمادا على ما يفعل ذلك اليوم. ان مجموعة فقط بدون وسائط. هناك ميزة غريبة هنا من هذا الشيء. هناك يجب أن تكون إما بدون مسافات بين علامة التساوي واسم متغير والقيمة أو المساحات على جانبي علامة التساوي، كما هو الحال في هذا واحد. هذا لن ينجح، وهذا هو في الواقع أمر صحيح لكنها لن تفعل ما كنت تنوي. سيعمل هذا الأمر لأنه إذا كنت فقط يقول تعيين واسم متغير مع عدم وجود علامة التساوي أو مجموعة واسم متغير مع علامة التساوي وليس لها قيمة، فإنه سيتم تعيين المتغير إلى قيمة فارغة. حتى تعيين = هو أمر صحيح. الأمر set يمكن تعريف أكثر من متغير 1 على نفس الخط. لذلك هذا الأمر هنا له تأثير تعريف كل من أ و ب إلى فارغة القيم. ربما لا ما تريد. هذا واحد هنا، ذكر في وقت سابق، وسوف يؤدي إلى خطأ لأن = ب ليس تعبير صالح. لا يمكن أن يبدأ اسم المتغير مع علامة التساوي. وهناك مزيد من هذه الأشياء هنا. تم استخدام نقطتين لتحديد الحجج من خطوط التاريخ، ويمكن استخدامها - وأنا لم أذهب إلى قبل - لتعديل تلك الأشياء. أنها يمكن أن تستخدم أيضا لتعديل متغيرات قذيفة. هذا واحد هنا، $ A، له قيمة. : ص سوف تقلع امتدادا. وامتدادا يكون أي شيء بعد نقطة، نقطة وأي شيء بعد ذلك في نهاية ملف، فقط في نهاية القائمة بعد مائلة للمشاركة. وذلك لدي هنا. وغير ذلك. فإنه سيتم إسقاط. س. اذا لم يكن هناك تمديد، إلا أن اسم الدليل بعد مائلة للمشاركة، وسوف يكون له تأثير. و: ح، وهذا التعبير المتغير، سوف تقلع العنصر الأخير من قائمة الدليل، مرة أخرى، إلا بعد الخط المائل الماضي. حتى يصبح / أ / ب / ج / أ / ب، ولكن هذا واحد يتم تغيير لأن العنصر بعد لائحة فارغة. هنا هناك شيء والتي أيضا أريد أن أؤكد. هذه التصفيات لا بحث عن وجود هذه الملفات. هم ينظرون فقط للسلاسل. وتهدف هذه إلى التلاعب أسماء الملفات، اسم الدليل، ولكن يمكن استخدامها على أي سلسلة حتى لو انها ليست اسم الملف. وأنها لا نبحث عن وجود، حتى اذا لم يكن هناك مثل هذا الملف، / أ / ب / ج، وهذا سوف لا تزال تعمل. سواء كان ذلك من أي استخدام غير سؤال آخر، لكنها لا تزال تعمل. متغيرات مختلفة في قذائف بورن. سوف نصل الى ذلك لاحقا. علامة الدولار يمكن نجا تماما مثل علامة تعجب وعلامة النجمة. يمكن هرب علامة الدولار بخط مائل أو علامات الاقتباس المفردة. علامات الاقتباس المزدوجة لها تأثير غريب في جميع قذائف إجبار تقييم الدولار توقيع التعبير متغير. حتى لو كان يجري هرب في اتجاه واحد، ويمكن لعلامات التنصيص يكون له تأثير التسبب في أن يتم تقييمها على أي حال. هذا هو مربكة قليلا. إذا كانت هناك مستويات متعددة من الهروب، مثل علامات الاقتباس المفردة داخل علامات التنصيص أو علامات الاقتباس المزدوجة داخل علامات الاقتباس المفردة، يجب اختبار لمعرفة ما سيحدث إلى متغير إذا كنت تستخدم واحدة. تلك الحالات 2 - مزدوجة من داخل واحد، واحد داخل مزدوجة - لا تعطيك بالضرورة نفس النتيجة. متغيرات البيئة، ملزمة المتغيرات C-قذيفة. متغيرات البيئة هي أيضا المتغيرات في C-قذيفة، وأنها هي أيضا المتغيرات في قذائف أخرى أيضا. في C-قذيفة، فهي مجموعات متميزة. الأشياء كنت أقوله قبل ما يقرب من المتغيرات قذيفة. متغيرات البيئة هي مجموعة متميزة من المتغيرات باستثناء العديد من المتغيرات التي نسميها المتغيرات ملزمة، والتي هي مهمة جدا ونحن سوف نصل الى تلك في وقت لاحق. يتم تمرير متغيرات البيئة تلقائيا على لقذائف أو الأوامر التي يتم تشغيلها من قذيفة الخاص بك. الأشياء الأخرى ليست كذلك. المتغيرات قذيفة، والأسماء المستعارة ليست كذلك. متغيرات البيئة هي. لهذا السبب نحن نسميها متغيرات البيئة، والفكرة هي أن البيئة تمتد الماضي فقط قذيفة الحالي. أنها يمكن أن تستخدم لتحديد الامور للأوامر. هنا مثال على ذلك. PRINTER، LPDEST. كل من هذه المتغيرات يمكن تحديد الطابعة التي أمر سوف تستخدم لطباعة الأشياء. إذا كان لديك الطابعات متعددة حولها، قد ترغب في وضع واحد تريد. السبب لدينا 2 المتغيرات هو أن مجموعات مختلفة من الأوامر كانت مكتوبة باستخدام هذه المتغيرات المختلفة. قد منحهم قيم مختلفة. الأرجح أنك سوف نعطيهم كل من نفس القيمة. تلك الأشياء تعمل لأن الأوامر التي تفعل الطباعة كانت مبرمجة لدراسة قيم هذه المتغيرات. إذا لم تكن مكتوبة برنامج بهذه الطريقة، إذا كانت مكتوبة أن تفعل شيئا آخر، ان المتغير تكون في غير محلها. وبالتالي فإن نظام التشغيل لا تبحث عن هذه المتغيرات في كل مرة كنت أشير إلى طابعة. أمر الطباعة التي لا تبحث عن هذه المتغيرات إذا كانت مبرمجة بهذه الطريقة. وغالبا ما يتم تعريف هذه المتغيرات في ملفات التهيئة الخاصة بك ولكن ليس بالضرورة. يمكنك تعريف لهم على سطر الأوامر. قد يحدد في أمر. والأمر الذي يدير شيء قد يكون لها اختيار الخاصة من المتغيرات - المتغيرات التي هي فريدة من نوعها لمجموعة من البرامج على وجه الخصوص، على سبيل المثال. أنها سوف تكون محددة عند تشغيل تلك الحزمة. كيف يتم هذه المتغيرات التي تم تمريرها إلى قذيفة الفرعية؟ عند كتابة قذيفة الفرعية، فإنه لا يكتب في هذا المجال. منطقة قذيفة الفرعية التي تكرس جهودها لمتغيرات البيئة هو لم يكتب من قبل قذيفة الفرعية؛ الذي كتبت به النسخ. عند تشغيل أمر عادي، مثل هذه الأوامر لطباعة أو أيا كان، أنها تبدأ من خلال خلق قذيفة جديدة. قذيفة قذيفة يخلق ثم الكتابة فوق جزء منه مع الأوامر التي تقوم بتشغيل، والذي هو مربكة قليلا، ولكن هذه هي الطريقة التي تحصل على هذه الأوامر متغيرات البيئة انهم ثم ترجع الى وقت لاحق. الأمر هنا لتحديد setenv متغير. هذه هي الطريقة التي تحدد ذلك. انها 3 عناصر: setenv، متغير، والقيمة. إذا كنت فقط لا setenv بدون وسائط، ماذا يحصل؟ قائمة كل تلك المتغيرات. مرة أخرى، انها قائمة طويلة لطيفة و في هذه الحالة، كما في غيرها، يتم تعريف هذه المتغيرات إلى حد كبير من عملية تسجيل الدخول عن طريق بلدي قذيفة نفسها بدلا من أي شيء فعلته. هناك أمر آخر هنا، printenv. الذي يطبع أيضا إلى البيئة. تلاحظ هذا آخر شيء هنا، المحرر = السادس. الذي يقول أنه إذا أنا باستخدام شيء يدعو محرر وأنا لم تحدد محررا ويسمح لي الخيار، فإنه قد تعطيني السادس. ماذا لو أفعل المحرر printenv؟ يقول لي ما هو عليه. الحق قبل ذلك، كان هناك متغير، أي أقل. هذه هي الخيارات الافتراضات الخاصة بك عند تشغيل الأمر أقل، الذي يعرض الملفات. حتى لو كنت تفعل ذلك، يمكن أن يستغرق printenv 1 0 حجة أو الحجج، لا أكثر من 1. هناك أوامر أخرى أيضا، ولكن نحن لن ندخل في كل ذلك اليوم. تذكر كانت هناك معدلات للمتغيرات قذيفة مثل: ح، والتي سوف إسقاط العنصر الأخير من اسم مسار، أو: ص، والتي ستنخفض امتدادا. تلك ينطبق الآن إلى متغيرات البيئة أيضا. أنها لم تستخدم ل. كان عليه أن يكون أنها لا يمكن تعديلها. الآن أنها يمكن أن تكون. انها واحدة من التقدم مع تطورات قذائف على مر السنين. كنت أقول أن قذائف كجزء من بيئات والمتغيرات قذيفة في C-قذيفة هي، مع بعض الاستثناءات، ومجموعات متميزة. يمكنك إنشاء متغير بيئة ومتغير قذيفة بنفس الاسم. وأنها ستكون المتغيرات المختلفة، بل يمكن أن يكون لها قيم مختلفة. سوف تغيير قيمة واحدة لا تتغير قيمة أخرى. يتم تقييم كل هذه المتغيرات مع علامة الدولار - دولار، $ أيا كان. ذلك ما إذا كان لديك هذا؟ لا يمكنك أن تعرف أي واحدة أن تحصل عليه؟ في بلدي التجارب حصلت على متغير قذيفة، ولكن هذا لم يتم توثيقها وأنت لا يمكن الاعتماد على ذلك. لذلك أنا أطلب منكم، هو خلق قذيفة ومتغيرات البيئة مع نفس الأسماء فكرة جيدة؟ رقم حسنا. ما هي تلك الاستثناءات الرئيسية في البيئة التي وقذيفة المتغيرات ترتبط مع بعضها البعض؟ هناك هذه 4. حرف متغير البيئة الأجل، قذيفة المدى متغير في رسائل صغيرة، ونوع مضاهاة المحطة الطرفية. أنا مجرد الذهاب للذهاب إلى هنا وانا ذاهب الى القيام به الصدى، أمر مفيد هنا، $ $ الأجل الطويل. وهناك. إكس تيرم هو نوع المحطة الطرفية للنوافذ المعروضة في نظام نوافذ X. إكس تيرم لون هو الاختلاف من أن تسمح ألوان مختلفة. لماذا نحدد هذه؟ ما هو هذا جيد ل؟ إعادة ترتيب الأوامر التي الشاشة مثل المحرر إرسال تسلسل معين، وتسمى أحرف، إلى محطة أو نافذة لإعادة ترتيب ذلك وهكذا دواليك. تلك هي متواليات مختلفة لأنواع مختلفة من المحطات. هذا يقول انها تلك التي للاستخدام. أحيانا هناك قضايا هناك. قد ترغب في تغيير ذلك. اذا كانت الامور لا تعمل، وأحيانا يتم تعيين نوع المحطة الطرفية خاطئ، كنت قد تكون قادرة على اصلاحها من خلال إعادة تعريف المتغير المدى. في هذه الحالات، وتغيير متغير واحد، ومتغير البيئة أو متغير قذيفة، يجب تغيير الآخر. لقد اكتشفت من خلال التجربة أن تغيير مصطلح بحروف لا يتغير دائما قذيفة المدى متغير بأحرف صغيرة. هذا خطأ. أنا لا أعرف اذا كان هذا صحيحا دائما. أكثر من مرة أنه ليس صحيحا، لكنه يمكن أن يكون. حتى إذا قمت بإجراء تغيير، مجرد التحقق من ذلك. انها ليست في كثير من الأحيان أن كنت بحاجة إلى تغيير تلك القيمة، ولكن مرة واحدة في حين كنت تفعل. USER متغير البيئة. مرة أخرى، متغير البيئة في حروف، قذيفة متغير بأحرف صغيرة. هذا هو اسم المستخدم الخاص بك. انها فقط في ظروف استثنائية جدا ان كنت ترغب في تغيير ذلك. إذا كان اسم المستخدم الخاص بك هو شخص آخر، فإنه يمكن رمي كل أنواع الأشياء قبالة. الدليل الرئيسي، الدليل الرئيسي المستخدم. مرة أخرى، فإنك لن ترغب في تغيير ذلك. نلاحظ في كل هذه الحالات وتلك التي نحن على وشك أن تغطي، متغير المسار، متغير البيئة هو في حروف ومتغير قذيفة المربوطة بأحرف صغيرة. إذا قمت بتغيير واحد، يجب تغيير الآخر. لا يمكن تأسيس هذا النوع من الربط كما لا يمكن ربط 2 المتغيرات، بخلاف هذه 4، والربط في هذه المتغيرات لا يمكن التراجع، لا يمكنك فصل بينهما. لذلك لا بد من هذه الأزواج 4 المتغيرات. أنها ستظل دائما كذلك. لا شيء غيرها سوف يكون. بالإضافة إلى ذلك، سيكون من الممكن لخلق متغيرات مع نفس الأسماء أنواع المعاكس. هل يمكن جعل مصطلح متغير قذيفة في الحروف الصغيرة أو بيئة مصطلح متغير في الأحرف الكبيرة. أن هذه المتغيرات تكون مستقلة عن هذه المتغيرات المقترنة وأنها ستكون مستقلة عن بعضها البعض. لا أستطيع أن أتخيل لماذا كنت تفعل ذلك إلا إذا كنت تريد أن تخلط بين الناس. هذا واحد هنا، متغير المسار، وهذا هو واحد مهم حقا. شيء آخر هنا هو أنه لا يمكن أن تكون هناك حالات المتغيرات المقترنة مع أسماء مشابهة والتي لا بد أن بعضها البعض. يمكن أن يكون هناك متغيرات، SHELL وشركة شل، وبحروف كبيرة وصغيرة. بناء على هذا الاسم، وكنت لا أعرف إذا كان هذا المتغير هو متغير قذيفة أو متغير بيئة، وانهم لا بد أن بعضها البعض. لذلك هذا النوع من الأسماء المقترنة لا يعني المتغيرات منضم. متغير المسار، وهو ما كان يظهر من قبل، هي قائمة من اسم الدليل الذي يبحث عن قذيفة الأوامر. دعونا نصل الى هذه النافذة هنا وسنفعل $ صدى PATH، حروف - متغير البيئة - صدى $ المسار، الحروف الصغيرة - قذيفة متغير. لاحظ أن قائمة الدلائل هو نفسه. لا بد منها. تغيير واحد، يمكنك تغيير الأخرى. في متغير البيئة يتم فصل العناصر من قبل كولون. لاحظ أن. يتم فصل المتغيرات قذيفة بمسافات. هذا متغير البيئة هو سلسلة واحدة. المتغير هو قذيفة صفيف. فإن بورن قذيفة يكن لديك المصفوفات. باش لا، ولكن هذا هو بالفعل جزء ثابت من قذيفة. هذا هو سلسلة واحدة وليس مجموعة. كان C-قذيفة دائما صفائف. صفائف هي أسهل بكثير للعمل مع. يمكنك الرجوع إلى أجزاء منه. $ مسار صدى ذلك [1] وأحصل / البيرة / بن، العنصر الأول. مرة أخرى، تذكر الدولار علامة تقف على العنصر الأخير من قائمة التاريخ. ماذا يحدث هناك؟ أنها حاولت أن تجد علامة الدولار كرمز متغير. أنا الخروج منه. عفوا. فإنه لن يأخذ ذلك سواء. بعض هذه الامور لا تعمل على ما يرام. ربما سنقوم مجرد ترك ذلك للخروج. تشير النجمة إلى كل شيء، ولكن هذا ما تحصل عليه إذا لم تقم بتحديد عنصر. طريقة أخرى أن المتغيرات مجموعة يمكن التلاعب بها، هناك عدد من العناصر، 7 عناصر. ونحن هنا نضع علامة الجنيه قبل اسم المتغير. هنا واحد آخر. وضع علامة استفهام هناك. وهذا هو قيمة منطقية. الذي يشير إلى أن متغير موجودا. انها وسيلة أخرى للعمل مع المتغيرات. التي، بالمناسبة، لا يجب أن يكون متغير صفيف. يمكن أن يكون أي متغير. وإذا كنت تفعل، وليس هناك مثل هذا المتغير وأحصل على 0. آخر الشيء القليل هناك حوالي التقييمات متغيرة. إلى هذا واحد هنا، إذا لسبب ما كنت أرغب في العمل مع هذا بدلا من العمل مع مجموعة، متغير قذيفة، هناك الأوامر التي يمكن فصل هذه الأشياء على أساس القولون. في الواقع، إذا كنت تريد الذهاب لأن تفعل هذا في باش قذيفة ربما، نوع من الكتابة، من شأنها أن تكون على الارجح كيف ستفعل ذلك. ولكن في C-قذيفة انه من الاسهل بكثير لاستخدام صفيف. في بورن قذيفة، يتم تعيين المتغيرات التي كتبها تعبير واحد من هذا القبيل، مثل الطريقة التي قد تعيين متغير في لغة البرمجة، وهنا يجب أن يكون هناك مسافات. انه من الضروري أن يكون مجرد سلسلة 1. في قذائف بورن من نوع، وكلها متغيرات هي المتغيرات قذيفة. متغيرات البيئة هي مجموعة فرعية من المتغيرات قذيفة. وتتميز أنها من المتغيرات غير البيئة من خلال تصدير. الأمر لذلك هي تصدير، مثل PRINTER التصدير. إذا كان لنا أن تحديد هذا المتغير، إذا أردنا أمر الطباعة للعثور عليه، فإنه من الضروري أن يكون متغير بيئة، وهذه هي الطريقة التي تجعل منها واحدة. هنا هناك شيء نوع من الخلط. هذا التعبير، والتصدير للبيئة، تستمد من هذا المفهوم بورن قذيفة، وحتى الآن يتم استخدام هذا التعبير في وصف من C-قذيفة، حيث لا يوجد مثل هذا الأمر كما التصدير. إذا كنت أقول التصدير في حد ذاته، وتحصل على قائمة تصدير - حتى لو كنت فقط لا تصدير هنا، لا شيء من هذا القبيل. حسنا، هناك نذهب. هذه الأمور، بالمناسبة، كما تم تعريفها من قبل شركة شل. أنا لم تحدد أي من هذه بنفسي. قذيفة يفعل كل أنواع الأشياء من تلقاء نفسه. يجب أن تفعل أشياء تلقائيا. في باش أو كورن قذيفة، يمكنك تشغيل أمر مثل هذا، والتي سوف تعطي كل من متغير قيمة وتصديره في 1 الأوامر. في وعاء بورن أنها يجب أن تكون أوامر منفصلة مثل تصدير أ. هنا هو جانب آخر أن مربكة. ويعرف الأمر set في C-قذيفة المتغيرات وبدون وسائط يخبرك ما هي القيم المتغيرات 'هي. في باش قذيفة، الأمر set بدون وسائط يفعل الشيء نفسه، ولكن مع الحجج يفعل شيئا مختلفا تماما. لذلك فان هذه هي مختلف الحجج هنا. بعض هذه هي متغيرات البيئة، وبعضها متغيرات قذيفة. كلها متغيرات قذيفة حقا. بعض هذه هي متغيرات البيئة. الأمر set بحجج يمكن استخدامها لتشغيل على معلمات الموضعية لنصي، الذي هو وسيلة للحصول عليها في كل مرة. نحن لا يمكن أن تذهب فعلا الى أن اليوم. ويمكن أيضا أن تستخدم لتغيير السلوك قذيفة. ولا سيما في باش هناك متغيرات التي ستحدد كيفية تصرف قذيفة. ثم أيضا هذا فقط أمر واحد التي قد تراها، هذا الأمر. تنضيدها تليها المتغيرات وأنواع متغير يستخدم في كورن وباش قذائف. انها ليست إلزامية لكنها يمكن أن تستخدم لتقييد القيم من المتغيرات، والتي يمكن أن تكون مفيدة لمنع الأخطاء، وانها شائعة إلى حد ما. لذلك أنا فقط بالذكر أنه في حال كنت أراه في مكان ما. الأمر حيث. أتذكر ذكرت في وقت سابق حيث أمر في C-قذيفة، والتي يمكن أن أقول لكم مكان وجود مسار الأوامر. هنا هو استبدال القيادة. يجب أن تجد على لوحة المفاتيح الخاصة بك في مكان ما على الحرف الذي يبدو مثل هذا. الموقع على لوحة المفاتيح سوف تختلف. لقد يطلق عليه backquote. ولكن عن حجم الاقتباس. فإنه يذهب من اليسار العلوي إلى أسفل اليمين. هنا في بلدي لوحة المفاتيح ماك انها في الزاوية العليا اليسرى. ويمكن استخدام هذا الحرف لتنفيذ أمر ضمن الأوامر. إذا كان لديك تعبير داخل backquotes، هذا التعبير هو أمر، يتم تشغيله. إخراج هذا الأمر ثم يتم استبداله للتعبير backquote كله داخل الأمر الذي يعد ثم يعمل مع أن الناتج كجزء من سلسلة لها من الحجج وهكذا دواليك. هنا هو أمر الذي يستخدم ذلك. دعونا العرض لعمليات تشغيل هنا. دعونا نذهب هنا، واخراج backquotes. التحكم A يحصل لي إلى بداية السطر مع بناء الجملة تحرير ايماكس. حتى الآن على اسم الدليل هو ما حيث لا، ولكن عندما تفعل ذلك مثل هذا، ثم توضع في تلك القائمة من اسم الدليل بدلا من هذا التعبير backquote كله ويدير يرة سورية، ل عليها. نوع من مريحة، هاه؟ بحيث شيء واحد أنيق. هذه هي الطريقة التي تعمل backquotes. الآن دعونا نذهب أبعد قليلا إلى أسفل. هذه هي الأسماء المستعارة. أنا فعلا استخدام هذه. سأحاول الحصول على هذه العملية في 1 مع التحرير. بخير. الآن دعونا نرى كيف جاءت تلك التعاريف بها. الاسم المستعار LWH تقول لي كيف هو تعريفه. لاحظت انها هذا فقط، ولكن اتخذت الاقتباس الخارجي قبالة ويتم أخذ تعجب قبالة. ! *، قائمة كاملة من جميع الحجج. في تعريف الاسم المستعار أنها ستطبق العودة إلى حيث أنا استخدم هذا. LWH KSh الوحدات باش. بخير. انظر كيف يعمل؟ أنه يوفر لي بعض الكتابة. دعونا ترتفع قليلا فقط أن أذكر هنا شيئا آخر. لاحظ هنا هذه القذائف المختلفة. وأرجو أن يكون ذكرت هذا من قبل. في مستشفى الدعم القتالي لديه 2 أكثر من هنا وحتى لا / بن / tcsh. نتمكن من اقامة بوسائل أخرى أن تلك هي في الواقع نفس الملف. أتذكر كنت أقول إذا قمت بكتابة ركلات الترجيح تحصل باش. اكتب هذا وتحصل على هذا. ولكن تلك ليست مرتبطة. تلك واحدة منها لها هناك. وليس هذا هو نوع من الملفات التي يمكن استدعاء واحد آخر. حتى تلك هي ملفات منفصلة، ​​ومنها C-قذيفة هي نفس الملف. التراجع هنا، والآخر هنا، وهذا الاسم المستعار، نلاحظ أن يدير هذا الأمر، الملف. أن الاسم المستعار يدير ذلك. ملف يخبرك نوع ملف. FWH حتى باش KSh الوحدات. بخير. هذا هو إخراج الأمر ملف. أنا لا أعرف إذا كنت تعرف ماذا يعني هذا هنا، ماخ-O ثنائي عالمي مع 2 أبنية. هناك 2 أنواع المعالجات الممكنة في ماك، وكتبت بعض البرامج لتكون قادرة على تشغيل مع كليهما، والأمر ملف يمكن تحديد ذلك، وهذا ما يعني ذلك. كانت مكتوبة على حد سواء من هذه الملفات بهذه الطريقة. لذلك نحن نرى كيف يعمل الاسم المستعار، ونحن نرى كيف يعمل backquote، ونحن نرى كيف ليرة سورية ملف الفعلي أو ملف يعمل. هذا قد لا تعمل. محاولة "حيث حيث" و "LWH حيث". حسنا، دعونا نحاول ذلك. حيث مكان. حيث هو قذيفة مدمج. تذكر أظهرنا في وقت سابق أن باش لم يكن لديهم مكان. إذا كنت اكتب فيها في باش قذيفة، وتحصل على رسالة خطأ. انها مجرد جزء من قذيفة بدلا من أن تكون قيادة منفصلة. ماذا يحدث إذا أنا اكتب LWH يبحث عن أين؟ نرى ما يحدث هناك. ركض حيث حيث حصلت على هذا الإخراج، ثم حاولت تشغيل ليرة سورية كما لتر على المكان هو قذيفة مدمج. حيث هناك، ولكن بعضها الآخر لا وجود لها. لا شيء من هذه موجودة، في الواقع. بحيث لا يعمل دائما، ويوضح أيضا كيف أن بعض الأشياء لا تفعل تماما ما كنت قد يعتقد. دعونا نذهب أبعد قليلا إلى أسفل هنا. هذا هو هنا في باش. وهذا هو أيضا استبدال الأوامر مثل backquote. ولكن على عكس backquote، ويستخدم هذا النمط المتغير. هناك عدد من التعبيرات التي تبدأ مع علامة الدولار، وعلى الرغم من أن هذه ليست متغيرات، وأنها اقترضت استخدام علامة الدولار للإشارة إلى تعبير من نوع ما. التي يمكن أن تكون محاطة قوسين أو أقواس أو أقواس مزدوجة، الذي لديه هدف مختلف. أقواس واحد هنا هي إجراء تبديل الأوامر تماما مثل backquotes. أقواس مزدوجة هو في الواقع عملية حسابية. هناك جمل أخرى، غيرها من العمليات. جملة Backquote متاح في باش. ومع ذلك، هذا هو واحد من الأفضل. انه من الاسهل بكثير لقراءة ويسمح التعشيش. هل يمكن أن يكون داخل $ (الأمر) أمر آخر، شيء من هذا القبيل - يمكنني الحصول على قائمة هناك. التي من شأنها أن تعمل إذا كان لي backquote أيضا. ماذا لو كنت تريد أن تفعل شيئا من هذا القبيل - ربما كنت لا تستخدم في الواقع هذا الأمر، ولكن هذا الاستبدال أمر داخلي يردد أسماء جميع الملفات التي تبدأ مع، ثم هذا واحد يدير يرة سورية، ل على تلك الملفات، ثم هذا واحد فقط يردد الإخراج. كنت على الارجح لن تفعل هذا؛ كنت تفعل مجرد صدى أو ليرة سورية، ولكن هذا يوضح كيف أن تعشش من الأوامر يعمل. حتى مجرد ميزة أخرى هنا.  ذكرت هذا في وقت سابق، أنه عندما يكون لديك مكان في C-قذيفة، اكتب أعمال في قذائف من نوع بورن لتحديد الأوامر. الأوامر المضمنة، فقط ما كنت أقول هناك. الأوامر هي جزء من شركة شل، حيث مثل. عند تنفيذ أمر مثل قذيفة ليرة سورية، ويقع ذلك من خلال المسار، يرى أنه في بعض الدليل في مكان ما، يقرأ ذلك في الذاكرة، ويخلق قذيفة جديدة، يقرأ ليرة سورية الأمر أو أيا كان في قذيفة حيث توجد متغيرات البيئة بالفعل، وبعد ذلك ينقل التنفيذ إلى ذلك. المدمج في الأمر ورمز لهذا الأمر داخل وعاء، وبالتالي فإن مجرد قذيفة يبدأ تنفيذ جزء من التعليمات البرمجية الخاصة به. حيث مثل هذا الأمر. فإنه يحصل في الواقع أسرع. أنه لا يجب أن يقرأ شيئا في الذاكرة، بل بالفعل في الذاكرة. الأوامر المضمنة دائما تأخذ الأسبقية على الأوامر بنفس الاسم. الأوامر التي هي في الدلائل في مسار قد يكون لها نفس الاسم، الأوامر في دلائل مختلفة، ملفات في دلائل مختلفة. واحد التي تحدث في مسار في وقت سابق هو واحد ستحصل. إذا كان هناك أمر المضمنة، يمكنك دائما الحصول عليه. ليس هناك طريقة لإعطائها الأسبقية أقل من أمر في المسار. إذا كنت ترغب في الحصول على هذا الأمر مسار، يمكنك كتابة اسم المسار الكامل. إذا كان هناك أمر مكان في مسار في مكان ما، هل يمكن أن اكتب / بن / أين وكنت أحصل عليه. إذا كنت لا تريد أن اكتب اسم المسار كله، هل يمكن أن تحدد اسم مستعار. في الواقع، إذا أعطيته الاسم المستعار نفس اسم الأمر مدمج، انها ستعمل لأن يتم تقييم تعريف الاسم المستعار قبل يحدد قذيفة أنه أمر مدمج مما ينبغي تنفيذها. ثم وهذا يحصل قليلا أكثر تعقيدا مع بعض الأوامر هنا. حالة بعض الأوامر هي مدمجة في الواقع الأوامر وفي المسار. واحد منهم هو الصدى، الأمر أنا فقط تستخدم منذ بعض الوقت في تلك الأمثلة. الصدى هو الأمر في مسار وانها في كل قذيفة. انهم لا بالضرورة جميع تتصرف بنفس الطريقة. كان في الأصل الأمر فقط في المسار. أنها بنيت في وقت لاحق إلى قذائف. لأن هناك خيارات التي تعتمد على البيئة وخيارات سطر الأوامر، والأوامر المضمنة كانت مكتوبة لتعمل نفس الأمر التي كانت في الطريق، فمن غير المرجح أنها كانت مكتوبة بهذه الطريقة إذا لم تكن قد تم كتابة الأمر عن المسار. ولذلك فإن هذا له آثار جانبية. تاريخها له آثار هنا. هناك خيارات هناك. هناك أيضا خيار يحددها متغير في tcsh دعا echo_style. هذا هو واحد من هذه المتغيرات التي يمكن أن تغير الطريقة التي يعمل صدى. وهناك حالات أخرى حيث يمكنك تعيين متغير أن يغير الطريقة أن العملية قذيفة، بما في ذلك أمر مدمج، يعمل. فإنه لن يؤثر على أي شيء آخر منذ أوامر أخرى لم يكن لديك الوصول إلى المتغيرات قذيفة، فقط متغيرات البيئة. ولكن عمليات قذيفة يمكن قراءة المتغيرات قذيفة. هذا لن تعمل لمستشفى الدعم القتالي. هذا tcsh فقط. هذا هو واحد من التحسينات. تحليل لديها تسلسل عندما يقيم metacharacters، عندما تقوم بتقييم المتغيرات، والأسماء المستعارة والمراجع التاريخ. هناك تسلسل معين لهذه الأشياء. إذا كان يفعل أشياء في تسلسل معين ويحصل على شيء وهذا تعبير من نوع التي سبق تقييمها، فإنه لن يقيم مرة أخرى. إذا كان يحصل عليه، ثم فإنه يمر على الحروف. إذا كان الأمر كذلك تقييم بعض التعبيرات مثل استبدال القيادة أو متغير أو أي شيء يؤدي إلى تعبير التي كنت تريد أن يتم تقييمها، التي ستعمل فقط في حالة حدوث ذلك التقييم في وقت لاحق في التسلسل. أتمنى أنا أكون واضحة هناك. هذا التسلسل تحليل، عملية في C-قذيفة، ليست هي نفسها لأوامر المدمج في كما هو الحال بالنسبة الأوامر غير المضمنة. أنا لست متأكدة من باش هناك. على سبيل المثال، إذا أنتجت متغير قذيفة مرجع التاريخ، أنه ربما لن نعود في التاريخ. انها مجرد الحصول على علامة تعجب. في الواقع، يمكننا أن مجرد محاولة للخروج الآن. تعيين = وعلينا أن نضع هذا في هناك. أوه، الانتظار. آسف. أنا فعلت هذا في باش. أردت أن تفعل ذلك هنا. ترى، لذلك لم يتم تقييم تلك الإشارة التاريخ لأنه كان بالفعل في الماضي نقطة تقييم التعبيرات التاريخ عندما قيمت المتغير. ذلك أن تأثير 1 تحليل. ومرة أخرى، الأوامر المضمنة لا يتم بنفس الطريقة. حسنا. دعونا نذهب إلى المرحلة التالية هنا. والمقصود أن يكون خط 1، لكنه يجعلها أسهل في القراءة. ماذا تفعل ذلك؟ ولعلكم تذكرون أن نتمكن من تقييم العلامات النجمية كما البدل اسم الملف، وهناك أحرف البدل اسم الملف الأخرى مثل علامة الاستفهام والتعبيرات قوس. ويسمى هذا النوع من التقييم globbing. تعيين noglob في بداية هذا الأمر يقول لا تفعل ذلك. noglob ضبطه يقول أعود إلى ذلك. لاحظ أن هذه المجموعة غلوب يكن لديك هذا الغرض. في اللغة العادية، من شأنه أن يضبط غلوب أو noglob ضبطه ويبدو أن ما يعادلها، ولكن هنا الأمر ليس كذلك. انها noglob ضبطه. tset الآن. وقفت tset لمجموعة الطرفية. لا تستخدم في كثير من الأحيان أن الآن، ولكن قبل أن تصبح نظم النوافذ المتاحة وكان لديك محطة واحدة، قد يكون لديك لتحديد نوع. وإذا كان هناك شيء كانت قادمة عبر إيثرنت أو من الشبكة، قد أريد أن أقول انها VT100. VT100 هو نوع من القياسية في محطة تجارية. انها تأتي من محطة ديسمبر. إذا كنت تفعل مجرد الطلب الهاتفي - تلاحظ ذلك؟ هذا يعود على الطرق، هاه؟ حتى إذا نحن فقط لا tset أكثر من هنا، إذا كنت مجرد القيام tset، انها محطة إعادة بلدي، ولكن كنت لا ترى أي شيء. فإنه لم يغير أي شيء في الواقع. ليالي بخير. مصطلح setenv إكس تيرم لون. نحن نعلم بالفعل أن مصطلح تم تعيين بهذه الطريقة، بحيث لم يتغير. هذه هي الطريقة التي كنا نريد أن نفعل ذلك. ولكن لاحظ أن هذا الأمر، tset-S، خرج للتو هذه الأوامر. ولم تشغيلها. فإنه لم تشغيل هذه الأوامر، بل خرج منهم. بحيث يكون الغرض من هذه الأوامر لإنتاج التي سيتم بعد ذلك تشغيل. تتذكر الأمر في هذا الملف أنا فقط أظهرت كان لديك سؤال فيه. لذلك دعونا نفعل ذلك. سؤال يقمع بعض الانتاج، ولكن هذا لا يهم هنا، كما ترون. أنا فقط تفعل ذلك لتظهر لك أنه لا يهم. هذا هو في جملة backquote. لاحظ هنا backquote، backquote هنا. أنا إهمال هذه الأمور هنا. وهذه هي الحالات من قول ذلك ما يجب القيام به في حالة أنواع معينة من المحطات - إيثرنت، الشبكة، الاتصال الهاتفي، ماذا لديكم. لا يهم هنا لأننا لا تفعل في الواقع أي من هذه الأشياء. أنا فقط توضيح الأمر. إذا كنت تفعل هذا مع backquote، ما أنا ذاهب للحصول على؟ كما تلاحظ هنا أن هذه تضمنت مجموعة noglob وnoglob ضبطه، حتى تلك هي زائدة عن الحاجة الآن في التعريف. لم يكن ذلك صحيحا دائما، ولكن الآن انهم المدرجة في هذا الأمر. ولكن دعونا نرى ما سيحدث إذا فعلت ذلك وانتقل إلى بداية السطر مع التحكم A، وأنا أفعل ذلك. حسنا، مجموعة: القيادة غير موجود. هذا نوع من الغريب، أليس كذلك؟ مجموعة هو أمر معروف. انها جزء من قذيفة. مجموعة: القيادة لم يتم العثور؟ لماذا؟ هم. حسنا، دعونا نفكر في هذا. انها تعمل على استبدال القيادة backquote، ويحدث ذلك في جزء معين من تسلسل تحليل الأمر. مجموعة هو أمر المضمنة. ذلك في الوقت الذي يفعل ذلك استبدال الأوامر، انها حصلت بالفعل بعد نقطة من تحديد الأوامر المضمنة. لذلك يعامل تعيين كما لو كان أمر في المسار. وغني عن القول، فإنه لا تجد وتحصل على خطأ. أيضا. هناك مثال على تسلسل تحليل. وماذا نفعل حيال ذلك؟ لاحظت هذا الأمر مثير جدا للاهتمام هنا، وحدة التقييم. وأتساءل ما الذي يفعل. اذا نظرتم الى دليل - ودعونا نفعل ذلك تماما لاظهار كيف مربكة هذه الأدلة هي - رجل tcsh، دليل الخلط، وإيجاد الأشياء هنا ليست سهلة سواء. هنا نذهب، وحدة التقييم وسيطة، ولذا فإننا يمكن أن يكون 1 أو أكثر الحجج وهناك قائمة من الأشياء هناك. يعامل الحجج كمدخلات لقذيفة وينفذ الأوامر الناتجة في سياق قذيفة الحالية. وعادة ما يستخدم هذا لتنفيذ الأوامر ولدت نتيجة للقيادة أو استبدال متغير لتوزيع يحدث قبل هذه التبديلات. جيدة جدا. وهنا حتى أنها تشير إلى الأمر tset لاستخدام عينة مثل واحد أنا فقط أظهرت لك. الآن لا بد لي من الحصول على النافذة الخلفية لمكان مفيدة. دعونا الحصول على أكثر من هنا وسنرى أن يتم استخدام وحدة التقييم قبل ذلك. لذلك دعونا نرى ما سيحدث إذا وضعنا - هنا نذهب مع الأسهم لهذا الأمر وتحكم الألف إلى البداية، وحدة التقييم. حسنا، لذلك يعمل. عندما تفعل حدة التقييم، فإنه يأخذ ما يأتي بعد ذلك ويجعل من أمر. وهذا يتيح لك لتحليل أساسا مرتين. يدير القسم هنا هذا الأمر داخل backquotes، يحصل الإخراج. من المفترض أن يتم تشغيلها مثل تلك الأوامر هنا الناتج مثل هذه في هذا واحد وهذا واحد. حتى تلك الأوامر هي الآن هنا في هذا التسلسل، ولكن يتم بناؤها في هذه الأوامر وأنه لا يمكن الحصول عليها على الفور. لذلك نذهب إلى وحدة التقييم، وحدة التقييم يختار أن ما يصل، ويبدأ كل شيء من جديد، وأنه يعمل. مثال كل من backquoting، وحدة التقييم، تحليل، تحليل عواقب، وأمر الذي هو على الارجح من استخدام القليل جدا لك في الوقت الحاضر. بخير. كل الحق، umask. دعونا ننظر في هذا الأمر هنا، umask 022. وأتساءل ما الذي يفعل. دعونا فقط اكتب umask مع أي شيء بعد ذلك. 22. بخير. 022 ونفعل ذلك مرة أخرى. كما كنت قد خمنت، umask بدون وسائط يخبرك قناع الحالي؛ umask مع الحجج يجعل من ذلك، ولكن ذلك كان واحدة وأنا بالفعل كان. ماذا يعني 022؟ هذه هنا هي الحماية للملف. أنها تحدد من يسمح له قراءة أو كتابة أو تنفيذ الملف. وتسمى أيضا الحماية الأذونات. ص تقف للقراءة، ث للكتابة، والعاشر، الذي لم يكن موجودا هناك، لتقف على تنفيذه. هناك 3 فئات هناك. العناصر ال 3 الماضية هي في فئة المستخدم. هذه تنطبق على لي، المستخدم. هذه 3 هنا تنطبق على المجموعة. الملف ينتمي إلى المجموعة 1، يجوز لمستخدم وتنتمي إلى عدة مجموعات، ولكن إذا كان المستخدم في المجموعة التي ينتمي إليها هذا الملف، ثم سيتم تطبيق هذه الحماية له اذا كان لا المستخدم. وهذا هو واحد الجميع. هذه الفئات لا يجتمعان. تطبيق الحماية المستخدم له، تطبيق الحماية مجموعة لأعضاء مجموعة أخرى من المستخدمين، وتطبيق الحماية الأخرى فقط لأشخاص آخرين من المستخدم وأعضاء المجموعة. اذا كان هناك فصيل عبد الواحد ص أو أو العاشر، وهو ما يعني أن يتم منح الحماية. إذا كان هناك واصلة، فهذا يعني أنها ليست كذلك. هناك في الواقع غيرها من الأمور التي يمكن وضعها في هنا إلى جانب هذه، الذي أنا لن ندخل الآن. يحدد umask الافتراضي للملفات التي تقوم بإنشائها. وكقناع، وأساسا تقول البتات التي لم تقم بتعيين. كيف أصبح هذا بت؟ إذا كنت تعتقد كل من هذه إلى عدد ثماني، هذا هو الشيء 1S، و هذا هو 2S، وهذا هو 4S. لذلك 0 من خلال 7 ووصف ما مزيج من ص، وث، وعلامات x وكان لديك لهذه 3 ثم عدد مماثل لهذه ثم لهؤلاء. ذلك يعني 022 0 لأخرى، 2 للمجموعة، 2 للمستخدم. ولكن هذا هو قناع. القناع هو ما لم يكن لديك. أنا آسف. أنا فقط أعطاك الأشياء بالترتيب الخاطئ. انها أول 3. هذه هي 3 مستخدم، وهذه هي المجموعة 3، 3 هذه هي الأخرى. آسف أعطيتك هذه في أمر خاطئ. و0، الذي يعتبر الأول من تلك، لا يعرض القيمة، ولكن إذا كان العدد ليس هناك، انها 0. وهذا يعني انه لن يسمح كل 3 من هذه. تلاحظ أن لا يسمح للس في هذا واحد بعينه. والسبب هو أن قذيفة قادرة على تحديد ما إذا كان ينبغي تنفيذ ملف أم لا. لأن هذا ليس ملف تنفيذي، فإنه لم يتم تعيين س. 2 الوسائل التي الكتابة إذن، والفئة الثانية هنا، واحد في الوسط، تم رفض. ذلك مرة أخرى، وهذه هي الأشياء التي رفض. كذلك، يسمح العاشر ولكنها ليست هنا لأنها ليست قابلة للتنفيذ وبالمثل بالنسبة للآخرين. لذلك هذا هو umask المشتركة. واحد آخر شائع هو 700 - تعطي لنفسك كل شيء، وليس لأحد غيرهم أي شيء. وهناك احتمالات أخرى. سوف أعود إلى ذلك. باستخدام التاريخ يمكنني البحث مرة أخرى لذلك، LWH إلى هناك. بخير. حتى هنا، وهذه هي قذائف. باش، المالك الذي هو حساب النظام، يمكن أن تفعل كل شيء. يمكن الجماعة والجميع القيام بقراءة أو تنفيذ ولكن ليس الكتابة. هذا واحد حتى لا يسمح للمالك أن الكتابة إليه. إذا كان المالك يرغب في الكتابة إليه، حساب النظام، وقال انه كان لتغيير الحماية الأول. ولكن مرة أخرى، وumask يحدد الافتراضي عن طريق اخفاء ذلك، من خلال تحديد البتات التي لن يتم تعيين. هذا هو عادة في واحدة من ملفات التهيئة الخاص بك، والذي هو. cshrc لC-قذيفة أو. الملف الشخصي للقذائف من نوع بورن. يمكن أن يكون في مكان آخر أيضا إذا كانت هناك ملفات التهيئة أخرى على النظام. على أي حال، هذا umask. هناك شيء غريب نوع من هنا، وهذا هو، لماذا هناك أمر واحد لهذا؟ لو كنت أكتب هذا، وأود أن تجعل من متغير، umask = بعض القيمة. لماذا هناك أمر كله فقط لهذا الغرض؟ والسبب هو هذا يذهب لتوه إلى أصول يونكس. كان يونكس فقط بعض المشاريع البرمجة في مختبرات بيل في أوائل 1970s. الناس فقط حصلت معا لالبرنامج. انهم لم يقصد به أن يصبح نظام التشغيل في جميع أنحاء العالم. الناس مختلفة كتب أجزاء مختلفة من دون التفكير كثيرا كيف كانوا في طريقهم لاستخدامها - واضحة إلى حد ما. وجاء معا من هذا القبيل، وانها لا تزال من هذا القبيل في بعض النواحي. بحيث يعكس التاريخ، ومازالت هناك عناصر هذه التناقضات ونيف من ذلك. بخير. احد القادم هنا. كما كتبت في وقت سابق، لا يتم استخدام C-قذيفة حقا كثيرا للبرمجة، على الرغم من أنه يمكن أن يكون. ينفذ ببطء أكثر، ومرة ​​أخرى للمفاضلة بين استخدام تفاعلية، التي لديها اكثر من سرعة تجهيز المعنية، والتي يمكن أن تفعل ذلك بدون معالجة. ميزات اضافية تضاف إلى وعاء بورن من قبل كورن وبورن مرة أخرى قذائف لا يبدو لإبطاء، وأنا لا أعرف لماذا هذا هو. قد يكون مجرد برمجة أفضل، ولكن أنا لست في وضع يمكنها من معرفة. سرعة هنا هو في الواقع ليست مثل هذه الصفقة الكبيرة، على الرغم من أنه مذكور. والسبب هو أن البرامج النصية قذيفة في الواقع الحصول بسرعة إلى حد ما. إذا كان هناك الكثير من الأوامر مثل في برنامج حسابية، كنت على الارجح لن تفعل ذلك في برنامج نصي قذيفة. العمليات هناك بسيطة الى حد كبير ومباشر. تلك التي كنت من ذوي الخبرة التي تكون بطيئة جدا تشمل التطبيقات المتكررة للأوامر بطيئة. لقد ذكرت من قبل محرر تيار الحوار الاقتصادي الاستراتيجي. هذا الأمر بطيء. إذا كنت تنفيذ ااا مرات عديدة، وستحصل على برنامج نصي بطيئة، ولكنها ليست القذيفة التي بطيئة. سوف تشغيله في بورن قذيفة لا تكون أسرع بكثير من تشغيله في C-قذيفة، على الرغم من أن هناك ربما بعض المزايا هناك. قدرات البرمجة إضافية، من ناحية أخرى، أسباب هامة لماذا كنت تستخدم قذائف من نوع بورن. C-قذيفة من الميزات الفردية لذلك - حقيقة أن كنت لا تعرف ما إذا كان المتغير هو متغير قذيفة أو متغير بيئة. يمكن أن يكون مربكا للغاية. انها ليست من السهل جدا أن يكتب تستند فقط على تجربتك البرمجة بلغات أخرى. أعتقد أنك قد تجد قذائف من نوع بورن أكثر اتساقا مع تجربتك. بعض النصوص، رغم ذلك، يمكن أن يكون الآلاف من الخطوط في طول. تلك التي رأيتها تستخدم لترميم أنظمة التشغيل. تلك يمكن تنفيذ ببطء شديد، ولكن لم تقم بتشغيل تلك في كثير من الأحيان. انها فقط عندما كنت تفعل الترقيع، وانها فقط لمدير النظام الذي يفعل تلك الأشياء، حتى انها ليست حقا الكثير من قضية. تلك التي هي مئات طوابير طويلة تنفيذ في الواقع بسرعة إلى حد ما. ذكر هذا هنا، ما هي تلك التحسينات؟ لقد سبق ذكرها عدد قليل منهم - المصفوفات، العمليات الحسابية، و$ () التعبير لإجراء العمليات الحسابية في باش قذيفة، نوع آخر من استبدال القيادة. هناك أنواع مختلفة من الأوامر اختبار التي يمكنك القيام به اختبارات شرطية على وجود ملف أو أشياء أخرى. آخر هنا، هذا الأمر هنا. ماذا يعني هذا القيام به، وماذا أي شخص استخدامه؟ variablename printenv. نحن نعرف ما printenv لا. فإنه يروي لنا قيمة متغير. وسوف variablename printenv لا تخبرنا الكثير جدا لأنه لا توجد مثل هذه المتغير. فارغة. ولكن دعونا تعطيه شيء مفيد. هذا ليس هناك سواء. بخير. اعتقد انني لم يعرف ذلك. دعونا تحقق فقط بيئتي. هذا هو أمر آخر التي يمكنك فحص البيئة الخاصة بك. هناك المحرر الخوالي، واحد رأيناه من قبل. ماذا تفعل ذلك؟ هنا لدينا التعبير backquote. نتذكر هذا هو C-قذيفة. حتى المحرر printenv سوف تعطينا قيمة المحرر. انها السادس. وبعد ذلك سيتم تعيين هذه القيمة إلى متغير، الأمر set. حتى الآن إذا كنت تفعل صدى دولار، وأحصل السادس. لا يبدو من المفيد بشكل رهيب. ومع ذلك، فإنه في الواقع لا يكون لها هدف. وبما أننا لا نعرف ما إذا كان المتغير هو متغير قذيفة أو متغير بيئة باستخدام بناء الجملة التقييم علامة الدولار، يمكننا استخدام printenv للتأكد من أنه متغير بيئة. حتى إذا كانت هناك قذيفة محرر متغير، وهذا لن قد حصلت عليه. هذا يعمل فقط مع متغير البيئة. إذا كان هناك متغير قذيفة وأردت قيمته، كنت قد تجد بعض طريقة أخرى للقيام بذلك. أن طريقة واحدة للقيام بذلك يكون عن طريق القيام مجموعة والأنابيب. هذا هو واحد من metacharacters والأحرف الخاصة. فهو يرسل إخراج مجموعة إلى شيء آخر. دعونا نرى ما قد تجد هناك. لا شيء. بخير. دعونا نرى ما هو في وجود كل ذلك معا. كان echo_style، واحدة ذكرتها من قبل. حسنا، دعونا نفعل ذلك. أذكر أنني ذكرت من قبل، echo_style يحدد الطريقة سيتم تشغيل الأمر echo. BSD تقف على توزيع بيركلي قياسي. هذا هو بيركلي يونكس من 1970s. هذا هو واحد من الطرق التي يمكن تشغيلها صدى. ووضع echo_style إلى تلك القيمة في TC-قذيفة يسبب صدى على التصرف بهذه الطريقة. حتى تعيين يفعل ذلك، ولكن لا يحصل الا تعيين المتغيرات قذيفة. فإنه لن يجد المحرر، وهي ليست متغير قذيفة. لا شيء. ذلك أن طريقة واحدة لتمييزها. ولكن الحقيقة أن عليك أن تذهب من خلال بعض الأوامر غريبة من هذا القبيل التمييز بين المتغيرات قذيفة أو متغيرات البيئة يظهر هذا النوع من طبيعة عملي من C-قذيفة لبعض الأغراض. والآن، وربما مشاركة الأقل، وهذا هو صفحة رجل. أولئك الذين تعلمون، الرجل القصير هو أمر لدليل. صفحات الرجل لقذائف من الصعب قراءتها. انهم طويلة جدا. كنت تنظيمها بطريقة قد تجعل من الصعب العثور على ما كنت أبحث عنه. حتى إذا كنت تبحث عن شيء مع الغرض، قد لا أعرف إذا كان هذا الغرض هو متغير قذيفة أو أي شيء آخر، لذا قد لا تعرف أن ننظر فيها لذلك. يمكنك البحث عن سلاسل مختلفة، ولكن غالبا ما يتم تكرار الجمل. لذلك فمن الصعب قراءة عموما. ونحن ننظر فقط في الصفحة رجل TC-قذيفة قليلا قبل أن يجد الأمر وحدة التقييم. بعض الأشياء بشكل أسرع. نهج واحد هو البحث عن سلسلة. يمكنك استخدام البيجر. النداء لديه مائل للبحث عن أمر أو سلسلة داخل عملية الاستدعاء. والرجل بشكل افتراضي استخدام أجهزة الاستدعاء، وإما أن يكون أكثر أو أقل. أنا لا أعرف ما إذا كنت على دراية تلك، ولكن يمكن أن تظهر تلك الملفات شيئا فشيئا. لقد تم استخدام أقل لعرض هذه الملفات خاصة لدينا هنا. يمكنك البحث داخل هناك. يمكنك محاولة استخدام سلاسل البحث المختلفة. أيضا صفحات رجل في أنظمة تشغيل مختلفة قد لا تكون هي نفسها. يمكن أن تكون صفحات منفصلة لمستشفى الدعم القتالي وtcsh. انهم ليسوا على ماك، ولكن لأنها قد تكون تلك هي الأوامر إذا منفصلة. إذا ش لا يدعو حقا باش، وربما سيكون هناك صفحة رجل منفصلة. بعض الأنظمة لديها صفحات منفصلة رجل لمجرد C-قذيفة الأوامر المضمنة. في بعض الأحيان إذا كنت تريد أن تقرأ وصفا لأمر المدمج في وهذا أيضا في المسار، مثل الصدى، تحتاج إلى قراءة الصفحة رجل على هذا الأمر على الصدى لتحديد الكيفية التي سوف تعمل كأمر المدمج في حتى لو كنت لا ندعو الأمر المضمنة. وهذا العيب من نظام التشغيل بشكل عام، وليس فقط بالنسبة للقذائف، على الرغم من أن للقذائف وبخاصة صفحات الرجل هي طويلة جدا، ويرجع ذلك جزئيا انهم أضاف الخصائص المفيدة لهم، والتي قد تكون إيجابية. بخير. هل هناك أي أسئلة؟ أي الموضوعات التي تريد أن تجلب ما يصل؟ أي شيء ذات الصلة هنا؟ حسنا، انها كانت لطيفة جدا نتحدث لكم جميعا. آمل أنك حصلت على شيء من هذه الندوة التي من شأنها أن تكون مفيدة بالنسبة لك في مساعيكم في المستقبل. [CS50.TV]