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

→
اقرأ أيضًا على مدونتنا سلسلة من المنشورات حول البرامج النصية للباشحيث
بينما تتعلم كيفية استخدام سطر أوامر Linux ، فقد تصادف العديد من المفاهيم التي ستكون مفيدة للتنقل. البعض منهم ، مثل "Linux" و "Unix" ، أو "command command" و "terminal" ، يتم خلطهم أحيانًا. دعنا نتحدث عن هذه الشروط وغيرها من المصطلحات المهمة.
Unix هو نظام تشغيل مشهور تم تطويره بواسطة Bell Labs في السبعينيات. كان رمزها خاصًا.
Linux هو نظام التشغيل الأكثر شيوعًا مثل Unix. يتم استخدامه اليوم على مجموعة متنوعة من الأجهزة ، بما في ذلك أجهزة الكمبيوتر.
الجهاز الطرفي أو المحاكي الطرفي هو برنامج يوفر الوصول إلى نظام التشغيل. يمكنك فتح العديد من النوافذ الطرفية في نفس الوقت.
shell هو برنامج يتيح لك إرسال أوامر مكتوبة بلغة خاصة إلى نظام التشغيل.
باش لتقف على بورن مرة أخرى شل. هذه هي لغة shell الأكثر شيوعًا المستخدمة للتفاعل مع نظام التشغيل. بالإضافة إلى ذلك ، يتم استخدام shell Bash الافتراضي بواسطة macOS.
واجهة سطر الأوامر (CLI) هي وسيلة للتفاعل بين شخص وجهاز كمبيوتر ، عند استخدام المستخدم الذي يدخل أوامر من لوحة المفاتيح ، والكمبيوتر ، وتنفيذ هذه الأوامر ، يعرض رسائل في شكل نص للمستخدم. بشكل أساسي ، يتم استخدام CLI للحصول على معلومات محدثة حول كيانات معينة ، على سبيل المثال ، الملفات والعمل مع الملفات. يجب تمييز واجهة سطر الأوامر عن واجهة المستخدم الرسومية (GUI) ، والتي يتم استخدامها بشكل أساسي بواسطة الماوس. يشار إلى واجهة سطر الأوامر غالبًا باسم سطر الأوامر.
البرنامج النصي هو برنامج صغير يحتوي على سلسلة من أوامر shell. تتم كتابة البرامج النصية إلى الملفات ، ويمكنك استخدامها بشكل متكرر. عند كتابة البرامج النصية ، يمكنك استخدام المتغيرات والبنيات الشرطية والحلقات والوظائف وغيرها من الميزات.
الآن وبعد أن نظرنا في المصطلحات المهمة ، أود أن أشير إلى أنني سأستخدم هنا مصطلحات "Bash" و "shell" و "سطر الأوامر" كتبادل ، وكذلك مفهومي "directory" و "folder".
التدفقات القياسية التي
سنستخدمها هنا هي الإدخال القياسي (الإدخال القياسي ،
stdin
) ، الإخراج القياسي (الإخراج القياسي ،
stdout
) وإخراج الخطأ القياسي (الخطأ القياسي ،
stderr
).
إذا كنت في أمثلة الأوامر التي سيتم تقديمها أدناه ، فقد صادفت شيئًا ما يشبه
my_whatever
- وهذا يعني أن هذه القطعة تحتاج إلى استبدالها بشيء خاص بك. على سبيل المثال ، اسم الملف.
الآن ، قبل متابعة تحليل الفرق التي تكرس لها هذه المواد ، دعونا نلقي نظرة على قائمتهم وأوصافهم المختصرة.
21 فريق باش
information الحصول على المعلومات
man
: يعرض دليل المستخدم (مساعدة) للأمر.pwd
: يعرض معلومات حول دليل العمل.ls
: يعرض محتويات الدليل.ps
: يسمح لك بمشاهدة المعلومات حول العمليات الجارية.
▍ معالجة نظام الملفات
cd
: تغيير دليل العمل.touch
: إنشاء ملف.mkdir
: إنشاء دليل.cp
: نسخ الملف.mv
: نقل أو حذف ملف.ln
: إنشاء الرابط.
▍ إعادة توجيه الإدخال / الإخراج وخطوط الأنابيب
<
: إعادة توجيه stdin
.>
: إعادة توجيه stdout
.|
: إعادة توجيه إخراج أمر واحد إلى إدخال أمر آخر باستخدام خط الأنابيب.
ead قراءة الملفات
head
: قراءة بداية الملف.tail
: قراءة نهاية الملف.cat
: قراءة ملف وعرض محتوياته على الشاشة أو تسلسل الملفات.
▍ حذف الملفات ، ووقف العمليات
rm
: احذف الملف.kill
: وقف العملية.
▍Poisk
grep
: البحث عن المعلومات.ag
: فريق البحث المتقدم.
▍Arhivatsiya
tar
: إنشاء والعمل مع المحفوظات.
دعونا نتحدث عن هذه الأوامر بمزيد من التفصيل.
تفاصيل الفريق
للبدء ، دعونا نتعامل مع الفرق التي يتم عرض نتائجها في شكل
stdout
. عادةً ما تظهر هذه النتائج في نافذة طرفية.
information الحصول على المعلومات
man command_name
: إخراج دليل الأوامر ، أي المعلومات المرجعية.
pwd
: يعرض المسار إلى دليل العمل الحالي. عند العمل مع سطر الأوامر ، يحتاج المستخدم غالبًا إلى معرفة مكان وجوده في النظام.
ls
: عرض محتويات الدليل. يستخدم هذا الأمر أيضًا كثيرًا.
ls -a
: إخراج الملفات المخفية.
ls
تطبيق علامة علم
ls
هنا. يساعد استخدام العلامات في تخصيص سلوك الفريق.
ls -l
: عرض معلومات الملف التفصيلية.
يرجى ملاحظة أنه يمكن الجمع بين الأعلام. على سبيل المثال ، مثل هذا:
ls -al
.
ps
: عرض العمليات الجارية.
ps -e
: يعرض معلومات حول جميع العمليات الجارية ، وليس فقط تلك المتعلقة بقذيفة المستخدم الحالي. غالبًا ما يستخدم هذا الأمر في هذا النموذج.
▍ معالجة نظام الملفات
cd my_directory
: تغيير دليل العمل إلى
my_directory
. للانتقال إلى مستوى أعلى في شجرة الدليل ، استخدم المسار النسبي
../
كـ
my_directory
.
قيادة سي ديtouch my_file
: قم بإنشاء
my_file
في المسار المحدد.
mkdir my_directory
: قم
my_directory
مجلد
my_directory
في المسار المحدد.
mv my_file target_directory
: انقل ملف
my_file
إلى مجلد
my_file
. عند تحديد الدليل الهدف ، يجب عليك استخدام المسار المطلق له (وليس إنشاء مثل
../
).
يمكن أيضًا استخدام الأمر
mv
لإعادة تسمية الملفات أو المجلدات. على سبيل المثال ، قد يبدو كالتالي:
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
mv my_old_file_name.jpg my_new_file_name.jpg
cp my_source_file target_directory
: قم بإنشاء نسخة من
my_source_file
ووضعها في مجلد
target_directory
.
ln -s my_source_file my_target_file
: إنشاء رابط رمزي
my_target_file
إلى
my_source_file
. إذا قمت بتغيير الرابط ، فإن الملف الأصلي سيتغير أيضًا.
إذا تم حذف الملف
my_source_file
،
my_target_file
. تسمح لك علامة
-s
للأمر
ln
بإنشاء روابط للأدلة.
الآن دعنا نتحدث عن إعادة توجيه الإدخال / الإخراج وخطوط الأنابيب.
▍ إعادة توجيه الإدخال / الإخراج وخطوط الأنابيب
my_command < my_file
: يستبدل واصف ملف الإدخال القياسي (
stdin
) بالملف
my_file
. قد يكون ذلك مفيدًا إذا كان الأمر يتوقع إدخال بعض البيانات من لوحة المفاتيح ، ويتم تخزين هذه البيانات في ملف مقدمًا.
my_command > my_file
: يعيد توجيه نتائج الأمر ، أي ما يحصل عادةً في
stdout
ويتم عرضه على الشاشة ، إلى ملف
my_file
. إذا كان الملف
my_file
غير موجود ،
my_file
إنشاؤه. في حالة وجود الملف ، يتم الكتابة فوقه.
على سبيل المثال ، بعد تنفيذ الأمر
ls > my_folder_contents.txt
، سيتم إنشاء ملف نصي يحتوي على قائمة بما هو موجود في دليل العمل الحالي.
إذا بدلاً من الرمز
>
استخدم الإنشاء
>>
، إذن ، بشرط أن يكون هناك ملف تتم إعادة توجيه إخراج الأمر إليه ، فلن تتم الكتابة فوق هذا الملف. ستتم إضافة البيانات إلى نهاية هذا الملف.
الآن نلقي نظرة على بيانات خطوط الأنابيب.
ما هي مخرجات أمر واحد يتم تغذية مدخلات أمر آخر. يشبه توصيل أنبوب إلى آخرfirst_command | second_command
first_command | second_command
: رمز الأنابيب ،
|
، يستخدم لإرسال نتائج فريق واحد إلى فريق آخر. حقيقة أن الأمر الموجود على الجانب الأيسر من البناء الموصوف يرسل إلى
stdout
يقع في
stdin
الأمر ، والذي يقع على يمين رمز خط أنابيب.
في Linux ، يمكن تنظيم بيانات خطوط الأنابيب باستخدام أي أمر مؤلف بشكل صحيح تقريبًا. كثيرا ما يقال أن كل شيء في لينكس هو خط أنابيب.
باستخدام رمز الناقل ، يمكنك تجميع العديد من الأوامر معًا. يبدو مثل هذا:
first_command | second_command | third_command
يمكن مقارنة ناقل من عدة فرق مع خط أنابيبلاحظ أنه عندما يكون الأمر على يسار
|
يطبع شيئًا ما في
stdout
، ما يتم طباعته فورًا يصبح متاحًا كقاعدة
stdin
للأمر الثاني. وهذا يعني ، باستخدام خط الأنابيب ، أننا نتعامل مع التنفيذ المتوازي للأوامر. في بعض الأحيان يمكن أن يؤدي هذا إلى نتائج غير متوقعة. تفاصيل حول هذا يمكن العثور عليها
هنا .
الآن دعنا نتحدث عن قراءة البيانات من الملفات وعرضها على الشاشة.
ead قراءة الملفات
head my_file
: يقرأ الأسطر من بداية الملف ويعرضها. لا يمكنك قراءة محتويات الملفات فحسب ، بل يمكنك أيضًا قراءة ما
stdin
الأوامر إلى
stdin
، باستخدام هذا الأمر كعنصر في خط الأنابيب.
tail my_file
: يقرأ الأسطر من نهاية الملف. يمكن أيضًا استخدام هذا الأمر في خط الأنابيب.
الرأس في المقدمة والذيل في الخلفإذا كنت تعمل مع البيانات باستخدام مكتبة الباندا ، فيجب أن تكون أوامر
head
tail
مألوفة بالنسبة لك. إذا لم تكن هذه هي الحالة ، فقم بإلقاء نظرة على الشكل أعلاه وسوف تتذكرها بسهولة.
دعونا ننظر في طرق أخرى لقراءة الملفات ، والتحدث عن
cat
.
يعرض
cat
إما محتويات الملف على الشاشة ، أو يسلسل عدة ملفات. يعتمد ذلك على عدد الملفات التي يتم تمريرها إلى هذا الأمر عند الاتصال.
فريق القطcat my_one_file.txt
: عندما يتم نقل أمر واحد إلى هذا الأمر ، فإنه يعرضه في
stdout
.
إذا أعطيتها ملفين أو أكثر ، فسيتصرف بشكل مختلف.
cat my_file1.txt my_file2.txt
: بعد تلقي عدة ملفات كمدخلات ، يقوم هذا الأمر بتسلسل محتوياتها ويعرض ما حدث في
stdout
.
إذا كانت هناك حاجة إلى حفظ نتيجة تسلسل الملفات كملف جديد ، فيمكنك استخدام عامل التشغيل:
cat my_file1.txt my_file2.txt > my_new_file.txt
الآن دعنا نتحدث عن كيفية حذف الملفات وإيقاف العمليات.
▍ حذف الملفات ، ووقف العمليات
rm my_file
: حذف ملف
my_file
.
rm -r my_folder
: حذف مجلد
my_folder
وجميع الملفات والمجلدات التي يحتوي عليها. تشير علامة
-r
إلى أن الأمر سيعمل في الوضع العودي.
لمنع النظام من طلب التأكيد أثناء كل عملية لحذف ملف أو مجلد ، استخدم علامة
-f
.
kill 012345
: توقف عملية التشغيل المحددة ، مما يتيح لها الوقت لإغلاق بشكل صحيح.
kill -9 012345
: إنهاء قسرا عملية التشغيل المحددة. علامة النموذج
-s SIGKILL
تعني نفس العلامة
-9
.
▍Poisk
يمكنك استخدام أوامر مختلفة للبحث عن البيانات. على وجه الخصوص ،
grep
،
ag
و
ack
. نبدأ
grep
لهذه الأوامر مع
grep
. هذا فريق موثوق به تم اختباره عبر الزمن ، ومع ذلك ، فهو أبطأ من الآخرين وليس مثلهم ، وهو مناسب للاستخدام.
قيادة Grepgrep my_regex my_file
: يبحث في
my_file
في
my_file
. عند العثور على التطابقات ، يتم إرجاع السلسلة بأكملها لكل منها. بشكل افتراضي ،
my_regex
التعامل مع
my_regex
كتعبير عادي.
grep -i my_regex my_file
: البحث غير حساس لحالة الأحرف.
grep -v my_regex my_file
: تقوم بإرجاع كافة الأسطر التي لا تحتوي على
my_regex
. تعني علامة
-v
الانقلاب ؛ فهي تشبه العامل
NOT
، والذي يتوفر في العديد من لغات البرمجة.
grep -c my_regex my_file
: تُرجع معلومات حول عدد التطابقات مع نمط البحث الموجود في الملف.
grep -R my_regex my_folder
: يجري بحثًا متكررًا في جميع الملفات الموجودة في مجلد معين وفي المجلدات الموجودة فيه.
الآن دعنا نتحدث عن فريق
ag
. ظهرت في وقت لاحق
grep
، إنها أسرع ، إنها أكثر ملاءمة للعمل معها.
فريق agag my_regex my_file
: تقوم بإرجاع معلومات حول أرقام الأسطر والخطوط نفسها ، حيث يتم العثور على
my_regex
مع
my_regex
.
ag -i my_regex my_file
: البحث غير حساس لحالة الأحرف.
يعالج الأمر
ag
ملف
.gitignore
تلقائيًا ويستبعد من الإخراج ما تم العثور عليه في المجلدات أو الملفات المدرجة في هذا الملف. انها مريحة جدا.
ag my_regex my_file -- skip-vcs-ignores
: لا يتم أخذ محتويات ملفات أنظمة التحكم في الإصدار التلقائي (مثل
.gitignore
) في الاعتبار أثناء البحث.
بالإضافة إلى ذلك ، من أجل إخبار الأمر
ag
بمسارات الملفات التي يجب استبعادها من البحث ، يمكنك إنشاء ملف
.agignore
.
في بداية هذا القسم ، ذكرنا الأمر
ack
. الأوامر
ack
و
ag
متشابهة للغاية ؛ يمكننا القول أنها قابلة للتبديل بنسبة 99٪. ومع ذلك ، فإن الأمر
ag
أسرع ، لذلك وصفته على وجه التحديد.
الآن دعونا نتحدث عن العمل مع المحفوظات.
▍Arhivatsiya
tar my_source_directory
: يدمج الملفات من مجلد
my_source_directory
في ملف tarball واحد. هذه الملفات ملائمة للاستخدام من أجل نقل مجموعات كبيرة من الملفات إلى شخص ما.
قيادة القطرانملفات tarball التي تم إنشاؤها بواسطة هذا الأمر هي ملفات ذات ملحق .tar (Tape ARchive). حقيقة أن كلمة "الشريط" مخفية في اسم الأمر وفي امتداد أسماء الملفات التي أنشأتها تشير إلى مدة وجود هذا الأمر.
tar -cf my_file.tar my_source_directory
: ينشئ ملف tarball يسمى
my_file.tar
مع محتويات مجلد
my_source_directory
. علامة
-c
تعني "إنشاء" ، بينما تشير علامة
-f
إلى "ملف".
لاستخراج الملفات الموجودة في ملف
.tar
، استخدم الأمر
tar
مع الإشارات
-x
("استخراج" ، استخراج) و
-f
("ملف" ، ملف).
tar -xf my_file.tar
:
tar -xf my_file.tar
الملفات من
my_file.tar
إلى دليل العمل الحالي.
الآن دعونا نتحدث عن كيفية ضغط وفك ضغط ملفات
.tar
.
tar -cfz my_file.tar.gz my_source_directory
: هنا ، يشير استخدام العلامة
-z
(خوارزمية ضغط "zip") إلى أنه يجب استخدام
gzip
(GNU zip) لضغط الملفات. ضغط الملفات يوفر مساحة على القرص عند تخزين هذه الملفات. إذا تم تخطيط الملفات ، على سبيل المثال ، لنقلها إلى مستخدمين آخرين ، فإن هذا يساهم في تنزيل أسرع لهذه الملفات.
يمكنك فك ضغط ملف
.tar.gz
عن طريق إضافة علامة
-z
إلى الأمر لاستخراج محتويات ملفات
.tar.gz
التي
.tar.gz
أعلاه. يبدو مثل هذا:
tar -xfz my_file.tar.gz
تجدر الإشارة إلى أن الأمر
tar
يحتوي على العديد من العلامات المفيدة.
باش الأسماء المستعارة
الأسماء المستعارة للباش (وتسمى أيضًا الأسماء المستعارة أو المختصرات) مصممة لإنشاء أسماء مختصرة للأوامر أو تسلسلاتها ، والتي يؤدي استخدامها بدلاً من الأوامر العادية إلى تسريع العمل. على
python setup.py sdist bdist_wheel
، إذا كان لديك اسم مستعار
bu
، حيث
python setup.py sdist bdist_wheel
، ثم للاتصال بهذا الأمر ، استخدم هذا الاسم المستعار فقط.
لإنشاء اسم مستعار ، ما عليك سوى إضافة الأمر التالي إلى ملف
~/.bash_profile
:
alias bu="python setup.py sdist bdist_wheel"
إذا كان النظام الخاص بك لا يحتوي على ملف
~/.bash_profile
، فيمكنك
~/.bash_profile
بنفسك باستخدام الأمر
touch
. بعد إنشاء اسم مستعار ، أعد تشغيل الجهاز ، وبعد ذلك يمكنك استخدام هذا الاسم المستعار. في هذه الحالة ، يحل إدخال حرفين محل إدخال أكثر من ثلاثين حرفًا من الأمر ، والذي تم تصميمه
لإنشاء حزم Python.
في
~/.bash_profile
يمكنك إضافة الأسماء المستعارة لأي أوامر شائعة الاستخدام.
▍ النتائج
في هذا المقال ، نظرنا إلى 21 فريقًا من فرق Bash الشهيرة وتحدثنا عن إنشاء أسماء مستعارة للفرق. إذا كنت مهتمًا بهذا الموضوع ،
فإليك سلسلة منشورات Bash.
هنا يمكنك العثور على نسخة pdf من هذه المنشورات. بالإضافة إلى ذلك ، إذا كنت ترغب في تعلم Bash ، تذكر أنه هنا ، كما هو الحال مع دراسة أي نظام برمجي آخر ، تعتبر الممارسة مهمة.
أعزائي القراء! ما هي الأوامر المفيدة للمبتدئين التي يمكنك إضافتها إلى تلك التي تمت مناقشتها في هذه المقالة؟
→
اقرأ أيضًا على مدونتنا سلسلة من المنشورات حول البرامج النصية للباش