جمعه ترمینال: باش [گسترش کلید]

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

انبساط بریس

به نظر من اسپانیایی کلید گسترش عملکردی است که از آن الهام گرفته شده است سی شل، این ترکیبی بین نویسه هایی است که در داخل مهاربندها وارد می شوند ، نظم مورد استفاده از چپ به راست است. این اصلاً پیچیده نیست ، اما گزینه ای است که در تورهای گنو / لینوکس بسیار مفید خواهد بود.

به عنوان مثال:

$ echo a {1,2,3،1،2} a3 aXNUMX aXNUMX

وقتی با ویرگول استفاده می شود (،) ترکیبی بین مقدار a و مقادیر داخل مهاربندها ایجاد می کند. اگر هیچ مقداری در خارج از کلیدها وجود نداشت ، هر مقداری که کلید حاوی آن است فقط یک بار نشان داده می شود.

$ echo {a، b، c} abc

استفاده از آن به هیچ وجه پیچیده نیست ، مثالهای متداول دیگری نیز وجود دارد مانند ایجاد بسیاری از فهرست ها در یک پوشه

$ mkdir ~ / مشاغل / {یک ، دو ، سه ، چهار ، پنج}

با این کار پنج پوشه در پوشه مشاغل ایجاد می شود ، مثل اینکه همزمان یک دستور وارد کنید. ایجاد 5 دایرکتوری

دو نقطه وجود دارد .. این یک سری اعداد یا حرف ایجاد می کند که از مقدار اولیه به مقدار نهایی می رسند ، از اعداد حروف استفاده نمی کنند.

echo $ 1 5 1 رنگ آبی با حرف

با ایجاد چرخه می توانیم در وقت صرفه جویی کنیم برای

# به جای نوشتن $ برای ((i = 1؛ i <= 5؛ i ++))؛ تکرار "شماره من $ i" ؛ انجام شده شماره من 1 شماره من 2 شماره من 3 شماره من 4 شماره من 5 # ذخیره کد با استفاده از گسترش مهاربند. $ برای من در {1..5} ؛ echo "شماره من $ i؛ انجام شده شماره من 1 شماره من 2 شماره من 3 شماره من 4 شماره من 5 # البته استفاده از آن معتبر است اگرچه خروجی متفاوت است. $ echo" شماره من "{1..5} شماره من 1 شماره من 2 شماره من 3 شماره من 4 شماره من 5

خوب من فکر می کنم مفهوم روشن است ، ههههههههههههههههههههههههههله من نظر می دهم که قابل ترکیب و تو در تو باشد.
با قابلیت ترکیبی که می توانیم به یک یا چند کلید بپیوندیم

$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3

با لانه سازی همانطور که بسیاری تصور می کنند می توانید از کلیدهای توسعه در داخل کلیدهای توسعه استفاده کنید

$ echo {a، c {1..3}، d} a c1 c2 c3 d

و سرانجام از باش 4 امکان افزایش مقادیر وجود دارد.

$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20

این همه برای امروز است ، بنابراین با تشکر برای خواندن من مردم

اضافی

نحوه ایجاد یک سطل آشغال محلی

وقتی می گویم الف صندوق منظور من از محلی دایرکتوری است که ما در آن اسکریپت های خاص خود را داریم و امکان اجرای آنها به عنوان یک دستور ساده وجود دارد ...

دستیابی به این امر نسبتاً آسان است ، اولین کاری که باید انجام دهید ایجاد یک دایرکتوری است که در آن اسکریپت ها را ذخیره خواهیم کرد.

mkdir / .bin # در این مثال پنهان می شود

اکنون پوشه خود را برای ذخیره اسکریپت ها داریم اما تا زمانی که مسیر .bin جدید را به $ PATH اضافه نکنیم کار نمی کند
برای این پرونده ویرایش می شود bash_profile، و خط اضافه می شود.

PATH صادرات = $ PATH: ~ / .bin

و voila که برای ایجاد یک bin محلی کافی است ، مطمئناً در صورت لزوم مجوزهای root را درخواست می کند برای مثال برای نوشتن یک اسکریپت سریع.

#! / bin / bash echo "سلام 1 $ ، حال شما چطور است؟"

آن را با نام ذخیره کنید سلام
به اسکریپت اجازه اجرا داده می شود و فقط کافی است از ترمینال فراخوانی شود

$ hello wada # این پیام سلام وادا را نشان می دهد ، حال شما چطور است؟

بنابراین با این ترفند سریع می توانید اسکریپت های خود را سریعتر اجرا کنید

این همه برای افرادی است که امروز خوب هستند
PS اگر خطاهایی وجود دارد ، ببخشید ، چشمهای من در حال بسته شدن است ههههه ...


محتوای مقاله به اصول ما پیوست اخلاق تحریریه. برای گزارش یک خطا کلیک کنید اینجا.

26 نظر ، نظر خود را بگذارید

نظر خود را بگذارید

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

*

*

  1. مسئول داده ها: میگل آنخل گاتون
  2. هدف از داده ها: کنترل هرزنامه ، مدیریت نظرات.
  3. مشروعیت: رضایت شما
  4. ارتباط داده ها: داده ها به اشخاص ثالث منتقل نمی شوند مگر با تعهد قانونی.
  5. ذخیره سازی داده ها: پایگاه داده به میزبانی شبکه های Occentus (EU)
  6. حقوق: در هر زمان می توانید اطلاعات خود را محدود ، بازیابی و حذف کنید.

  1.   خشونت dijo

    من مدتهاست که در مسئله bash بوده ام و با تشکر از درک گسترده این مهارها نفهمیده ام.

    در ترفند مسیر ، فدورا به طور پیش فرض چیزی شبیه به این را انجام می دهد اما در "~ / .local / bin" ، به یک قطعه از bash_profile که برای جسی آورده ام نگاه کنید.

    PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
    مسیر صادرات

    1.    ریکاردو dijo

      من برخی از نگرانی ها:
      1. چگونه می توانم او را وادار کنم که دو فاصله با افزایش امتیاز داشته باشد. سن {1..24,55،90..1} و من سنین را از 24 به 55 سال افزایش می دهم و با XNUMX تا XNUMX سالگی ادامه می دهم. همانطور که من انجام دادم نتیجه ای نداشت. چرا؟

      2. اگر می خواهم اولین مقدار پوچ باشد و با شماره گذاری ادامه دهید:
      wget: http://manga.favorito / تصویر http://manga.favorito/imagen1
      من روش زیر را امتحان کردم اما wget دریافت نکرد: http://manga.favorito/imagen{، 1..42} به گفته من ، من باید نام اول را بدون شماره بگذارم و با شماره از 1 تا 42 ادامه دهم اما اینطور نبود. چرا؟

    2.    وادا dijo

      حق با شما است. برخی از توزیع ها یک .bin دارند یا داشتند ، اما به این دلیل است که همه می توانند درک کنند و ببینند که انجام این کار در هر distro امکان پذیر است: D ، از اینکه متوقف شدید متشکرم.

  2.   نسخه ی نمایشی dijo

    بسیار خوب ، بسیار خوب برای این کمک های دانش به دنیای لینوکس و امنیت آن ، جمعه ها امیدوارم بتوانم نحوه قالب بندی pendrive را در ترمینال و رایت یک تصویر ISO / DVD از هر سیستم رایگان در ترمینال را بخوانم.

    1.    وادا dijo

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

  3.   edoardo_ یا dijo

    مقاله عالی ترمینال ، بهترین مطلبی که من مدتها خوانده ام ، با شمارش چندین وبلاگ که آموزشهای این سبک را منتشر می کنند. خیلی ممنون!!

    1.    وادا dijo

      بسیار متشکرم ... سعی خواهم کرد که همگام باشم.

  4.   جوآنلی dijo

    نکته عالی از سطل آشغال محلی!
    سلام!

    1.    وادا dijo

      عالی ، عالی که برای شما مفید است ، بسیار ممنونم از اینکه برادر را رد کردید

  5.   گیسکارد dijo

    خیلی خوب! هیچ نظری در این مورد ندارید. با تشکر

    1.    وادا dijo

      خوش آمدید برادر از شما متشکرم که وقت خود را برای خواندن آن گذاشتید

  6.   ریکاردو dijo

    من برخی از نگرانی ها:
    1. چگونه می توانم او را وادار کنم که دو فاصله با افزایش امتیاز داشته باشد. سن {1..24,55،90..1} و من سنین را از 24 به 55 سال افزایش می دهم و با XNUMX تا XNUMX سالگی ادامه می دهم. همانطور که من انجام دادم نتیجه ای نداشت. چرا؟

    2. اگر می خواهم اولین مقدار پوچ باشد و با شماره گذاری ادامه دهید:
    wget: http://manga.favorito/imagen http://manga.favorito/imagen1

    من روش زیر را امتحان کردم اما wget دریافت نکرد: http://manga.favorito/imagen{، 1..42} به گفته من ، من باید نام اول را بدون شماره بگذارم و با شماره از 1 تا 42 ادامه دهم اما اینطور نبود. چرا؟
    * ببخشید اما من اولین پست را به عنوان پاسخ قرار دادم و در بعضی قسمت ها اشتباه بود

    1.    وادا dijo

      1.- منطق شما اشتباه است شما باید آن را لانه کنید hahaha سعی کنید با آن $ echo {{1..24},{55..90}}

      2.- همان مورد قبلی ... $ echo "URL"{,{1..42}}

      نگران نباش برادر ، ما اینجا هستیم تا به ما کمک کنیم

  7.   jvk85321 dijo

    برای جایگزینی for با echo اینگونه به نظر می رسد

    تکرار "شماره من" {1..5} $ '\ n' | sed -e: a -e '$! N؛ s / \ n / \ n /؛ ta' | sed -e: a -e '$! N؛ s / 5 \ n / 5 /؛ ta'

    اما من printf را ترجیح می دهم

    printf "من ، من٪ d \ n" {1..5}

    و از همان مفهوم گسترش کلید استفاده کنید

    غیا
    jvk85321

    1.    jvk85321 dijo

      چگونه می توان جعبه های ترمینال را قرار داد ؟؟؟؟

      غیا
      jvk85321

  8.   jvk85321 dijo

    در صورت آزمایش برچسب کد
    از Jeje

    برای جایگزینی for با echo اینگونه به نظر می رسد

    echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’

    pero prefiero printf

    printf “Mi numero %d\n” {1..5}

    و از همان مفهوم گسترش کلید استفاده کنید

    غیا
    jvk85321

    1.    jvk85321 dijo

      من با برخی از اشکالات روبرو شده ام اما جواب داد

      من زنده هستم مالکو

      معذرت می خواهم برای مزاحمت

      غیا
      jvk85321

      1.    وادا dijo

        هااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا بدون فاصله ...

        و در صورت جایگزینی برای ، لازم نیست اینقدر لوله انجام دهید hahahaha به اندازه کافی با:
        echo -e "Mi numero "{1..5}"\n\b"

        صادقانه بگویم printf بهترین راه برای چاپ متن در اسکریپت ها است ، قابل حمل تر است اما به طور سنتی از echo استفاده می کند.

      2.    وادا dijo

        من فضاها را می گیرم! ههههههههه

        حالا ببینیم

      3.    وادا dijo

        لعنت "کمتر از" کد "بزرگتر از" "کمتر از" / کد "بزرگتر از" هاهاهاها است

      4.    jvk85321 dijo

        مشکلی که echo -e استاندارد نیست ، بنابراین روی همه سیستم ها جواب نمی دهد.

        همچنین کثیف بیرون می آید
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5

        jvk@jvktos:~$
        و با این
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        فکر می کنم مورد دوم نتیجه را بهتر ارائه می دهد ، هاها

        غیا
        jvk85321

      5.    jvk85321 dijo

        این برچسب ها کلاهبرداری است ، هههه ، بیایید ببینیم اکنون کار می کنند یا نه
        jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        و با این
        jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
        Mi numero 1
        Mi numero 2
        Mi numero 3
        Mi numero 4
        Mi numero 5
        jvk@jvktos:~$

        فکر می کنم مورد دوم نتیجه را بهتر ارائه می دهد ، هاها
        غیا
        jvk85321

      6.    jvk85321 dijo

        به هر حال ، فاصله های بین خطوط را ترک کنید ، به همین دلیل من از html متنفرم ، هااهاا

  9.   خواکین dijo

    عالی! به پاهات می زنم ها ها

    من نمی دانستم که می توان کلیدها را تو در تو قرار داد ، زیرا من هرگز سعی نکرده ام از آنها استفاده کنم ، این باعث صرفه جویی در تعداد زیادی کد می شود و همچنین از این طریق خواندن آن بیشتر است. متشکرم!

    1.    وادا dijo

      با تشکر از شما برای عبور از برادر ، خوشحالم که مفید بود

      1.    خواکین dijo

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