وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

تغییر مسیر ورودی-خروجی در اوبونتو

0 11
زمان لازم برای مطالعه: 3 دقیقه


در لینوکس، هر کدام process دارای سه کانال ارتباطی: ورودی استاندارد، خروجی استاندارد و خطای استاندارد. این کانال های ارتباطی به کاربران کمک می کند تا با فرآیندها تعامل داشته باشند روی یک سیستم لینوکس کانال ارتباطی ورودی استاندارد (STDIN) ورودی را از کاربر می گیرد terminal به عنوان یک دستور، و سپس پس از پردازش دستور با هسته لینوکس، terminal نتیجه را از طریق کانال ارتباطی خروجی استاندارد (STDOUT) یا خطای استاندارد (STDERR) نشان می دهد. خروجی استاندارد (STDOUT) یا خطای استاندارد (STDERR) یک فرمان را می توان به عنوان ورودی استاندارد (STDIN) برای دستور دیگری با استفاده از تغییر مسیر ورودی/خروجی “>” هدایت کرد و به طور مشابه، یک ورودی استاندارد (STDIN) را می توان هدایت کرد. به عنوان خروجی استاندارد (STDOUT) برای دستور دیگری با استفاده از تغییر مسیر I/O “<".

ورودی استاندارد

ورودی استاندارد یا STDIN دستوری است که در آن تایپ می کنیم terminal برای تعامل با هسته لینوکس.

Ubuntu@Ubuntu:~$ ls -لا

در مثال بالا، “ls -la” ورودی استاندارد یا STDIN است.

خروجی استاندارد

خروجی استاندارد یا STDOUT خروجی یک در حال اجرا است process یا دستوری که از طریق ورودی استاندارد به هسته لینوکس داده شده و نمایش داده می شود روی را terminal. به عنوان مثال، در بالا داده شده، خروجی مانند است

Ubuntu@Ubuntu:~$ ls -لا

… برش …
-rwxr-x— 1 اوبونتو اوبونتو 89 ژان 4 2021 arith.sh
-rw-r–r– 1 اوبونتو اوبونتو 3771 ژوئن 3 2020 .bashrc
drwx—— 28 اوبونتو اوبونتو 4096 اوت 1 13:10 کش
drwxr-xr-x 36 اوبونتو اوبونتو 4096 ژوئیه 29 18:30 پیکربندی
drwx—— 3 اوبونتو اوبونتو 4096 نوامبر 18 2020 dbus
drwxr-xr-x 5 اوبونتو اوبونتو 4096 ژوئیه 30 16:28 دسکتاپ
drwxr-xr-x 13 اوبونتو اوبونتو 12288 ژوئیه 28 19:53 دانلودها
… برش …

هر خروجی یک مکان پیش فرض از پیش تعریف شده برای رفتن در سیستم عامل های مبتنی بر یونیکس دارد. برخی از روش های تغییر مسیر خروجی در زیر آورده شده است.

  • تغییر مسیر استاندارد خروجی “>”
  • تغییر مسیر ورودی استاندارد “<"
  • تغییر مسیر خطای استاندارد “2>”
  • خروجی استاندارد و تغییر مسیر خطا “&>”
  • تغییر مسیر استاندارد خروجی “>>”
  • تغییر مسیر ورودی استاندارد “<<"
  • تغییر مسیر با استفاده از لوله های “|”
پیشنهاد می‌کنیم بخوانید:  روش نصب Snort روی اوبونتو 22.04

تغییر مسیر استاندارد خروجی ” > “

تغییر مسیر خروجی روشی است که در آن خروجی استاندارد یک فرمان را می توان به فایل ها یا به عنوان ورودی استاندارد برای دستور دیگری هدایت کرد. علامت “>” برای تغییر مسیر خروجی استفاده می شود. را terminal خروجی را نشان نمی دهد. در عوض، در یک فایل نوشته می شود یا به عنوان ورودی به دستور دیگری هدایت می شود. مثلا

Ubuntu@Ubuntu:~$ echo سلام دنیا > file.txt

یا

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames > packegnames

به جای خروجی نشان داده شده روی را terminal، به فایل file.txt یا pakegsNames هدایت می شود. برای تأیید اینکه آیا خروجی تغییر مسیر داده شده است یا خیر، از گربه دستور خواندن فایل ها

Ubuntu@Ubuntu:~$ گربه file.txt

Ubuntu@Ubuntu:~$ گربه pakegName

این عملگر “1>” برای تغییر مسیر خروجی استاندارد نیز استفاده می شود.

تغییر مسیر ورودی استاندارد ” < "

تغییر مسیر ورودی روشی است که در آن ورودی استاندارد یک فرمان از یک فایل یا خروجی استاندارد یک فرمان دیگر هدایت می شود. علامت “<" برای تغییر مسیر ورودی استفاده می شود. این بیشتر عمل پیش فرض یک فرمان است. مثلا

Ubuntu@Ubuntu:~$ کمتر < /و غیره/passwd

عین این است.

Ubuntu@Ubuntu:~$ کمتر /و غیره/passwd

از فایل ورودی می گیرد /etc/passwd به جای کیبورد علامت “0<" همچنین می تواند برای تغییر مسیر ورودی استاندارد استفاده شود.

تغییر مسیر خطای استاندارد “2>”

با روش تغییر مسیر، می توان خطاهای استاندارد را هدایت کرد و در یک فایل نوشت. مثلا

Ubuntu@Ubuntu:~$ sudo آپدیت apt-get 2> خطا

اگر خطایی رخ دهد، نشان داده نمی شود روی را terminal پنجره؛ بلکه در یک فایل خطا ذخیره می شود. اگر فایل خطا از قبل وجود داشته باشد، بازنویسی خواهد شد.

خروجی استاندارد و تغییر مسیر خطای استاندارد ” &> “

با علامت “&>”، راه کارآمدتری برای تغییر مسیر خروجی استاندارد و خطای استاندارد به طور همزمان با علامت “&>” وجود دارد. مثلا

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames &> pkgnames

تمام نام های بسته و خطاها در فایل pkgname ذخیره می شوند.

تغییر مسیر استاندارد خروجی ” >>”

این روش تغییر مسیر خروجی استاندارد یک دستور یا یک فایل را به فایل دیگری هدایت می کند. تفاوت در استفاده از تغییر مسیر “>>” است، اگر فایل از قبل وجود داشته باشد، داده ها به فایل اضافه می شوند. بنابراین فایل رونویسی نخواهد شد.

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames >> pkgnames

اگر فایل pkgname از قبل وجود داشته باشد، محتوای آن رونویسی نخواهد شد. بلکه خروجی در انتهای فایل اضافه خواهد شد.

پیشنهاد می‌کنیم بخوانید:  روش نصب Metasploit Framework در اوبونتو 22.04

تغییر مسیر ورودی استاندارد ” << "

این روش تغییر مسیر ورودی کاربر را از روی می خواند terminal و سپس آن را به فایل اضافه می کند.

Ubuntu@Ubuntu:~$ گربه pkgnames << pkgnames
> اوبونتو
> کروم
> pkgnames

اگر فایل pkgname از قبل وجود داشته باشد، محتوای آن بازنویسی نخواهد شد.

تغییر مسیر با استفاده از Pipes “ | “

لوله ها اغلب زمانی استفاده می شوند که می خواهید چندین دستور را ترکیب کنید. با لوله ها می توان از خروجی دستور اول به عنوان ورودی فرمان دوم استفاده کرد. مثلا

Ubuntu@Ubuntu:~$ sudo apt-cache pkgnames | کمتر

در دستور بالا، خروجی استاندارد دستور باقی مانده به لوله “|” علامت ورودی استاندارد دستور مستقیم به لوله “|” است. امضا کردن.

ترکیب عملگرهای تغییر مسیر

شما می توانید برخی از عملگرهای تغییر مسیر را ترکیب کنید زیرا استفاده از آنها به راحتی آسان است و زمان کمتری را می گیرد. برخی از عملگرهای ترکیبی تغییر مسیر در زیر آورده شده است.

2 >>: این عملگر برای هدایت مجدد خطاهای استاندارد به فایل استفاده می شود.
<>: این عملگر برای فایل های مشخص شده به عنوان ورودی استاندارد و خروجی استاندارد استفاده می شود.
>&: این عملگر خروجی یک فایل را به فایل دیگر هدایت می کند.
<&: این عملگر ورودی یک فایل را به فایل دیگر هدایت می کند.
2>&1: این عملگر برای هدایت خطای استاندارد به خروجی استاندارد استفاده می شود.
1>&2: این عملگر برای تغییر مسیر خروجی استاندارد به خطای استاندارد استفاده می شود.

نتیجه

به عنوان یک مدیر لینوکس، تغییر مسیر ورودی-خروجی یک روال بسیار رایج در کار روزانه است. ذخیره خروجی ها و خطاها برای استفاده بعدی و ترکیب دستورات متعدد کار شما را آسانتر می کند و زمان را کاهش می دهد تا بتوانید با پشتکار و کارآمد کار کنید. در بالا چند نکته برای انجام این کار وجود دارد که به شما در درک تغییر مسیرهای ورودی-خروجی کمک می کند.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1403-01-02 07:19:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید