আপনার প্রিয় কমান্ড লাইনের বৈশিষ্ট্য বা কৌশলগুলি কী কী?


94

ইউনিক্স / লিনাক্সের জন্য আপনার কমান্ড লাইনের বৈশিষ্ট্য এবং কৌশলগুলি ভাগ করুন। সম্ভব হলে এটিকে শেল / ডিস্ট্রো অজিনস্টিক রাখার চেষ্টা করুন। এলিয়াস, ওয়ান-লাইনার, কীবোর্ড শর্টকাট, ছোট শেল স্ক্রিপ্ট ইত্যাদি দেখতে আগ্রহী

উত্তর:


89

এই উত্তরে!! উল্লিখিত কৌশলটির উপর এটি কিছুটা প্রসারিত হয় । আসলে ইতিহাস-সম্পর্কিত কমান্ডগুলির একটি গোছা রয়েছে যা ভুলে যাওয়ার প্রবণতা রয়েছে (লোকেরা তাদের টাইপ করে জানতে পারে এমন কমান্ডের পরিবর্তে তারা 100 বার ছুরিকাঘাত করেছিল)।Up

  • historyকমান্ড বাঁদিকে একটি ইভেন্ট designator সঙ্গে সম্প্রতি চালানো কমান্ডের তালিকা দেখাবে
  • !N ইভেন্ট ডিজাইনেটরের সাথে সম্পর্কিত কমান্ডটি প্রতিস্থাপন করবে N
  • !-Nপ্রতিস্থাপন করে দেবে N তম সাম্প্রতিকতম কমান্ড; উদাহরণস্বরূপ !-1সর্বাধিক সাম্প্রতিক কমান্ড, !-2দ্বিতীয় সাম্প্রতিকতম ইত্যাদির বিকল্প নেওয়া হবে etc.
  • হিসাবে অন্যান্য উত্তরে উল্লেখ করা হয়েছে, !!জন্য সাধারণভাবে সংক্ষেপে হয় !-1দ্রুত শেষ কমান্ড খেলোয়াড়রা
  • !string সর্বাধিক সাম্প্রতিক কমান্ডটি শুরু করবে যা দিয়ে শুরু হবে string
  • !?string? সর্বাধিক সাম্প্রতিক কমান্ডটি অন্তর্ভুক্ত করবে string

!ফলাফল সংশোধন করার জন্য ওয়ার্ড ডিজাইনারদের একটি ইতিহাস কমান্ডে যুক্ত করা যেতে পারে । একটি কোলন ইভেন্ট এবং শব্দ ডিজাইনারদের যেমন পৃথক করে !!:0। ইভেন্ট ডিজাইনারকে !!সংক্ষিপ্তসার দেওয়া যেতে পারে !যখন কোনও শব্দ ডিজাইনার ব্যবহার করার সময়, !!:0তার সমতুল্য !:0

  • !:0 যে কমান্ডটি কার্যকর করা হয়েছিল তা পাবে
  • !:1প্রথম যুক্তি (এবং !:2দ্বিতীয়, ইত্যাদি) পাবে
  • !:2-3 দ্বিতীয় এবং তৃতীয় আর্গুমেন্ট পাবেন
  • !:^প্রথম যুক্তি পাওয়ার অন্য উপায়। !:$শেষ পেতে হবে
  • !:*সব আর্গুমেন্ট পাবেন (কিন্তু না কমান্ড)

সংশোধকগুলিকে একটি !ইতিহাস কমান্ডে যুক্ত করা যেতে পারে , প্রত্যেকটি কোলন দ্বারা উপস্থাপিত হয়। যে কোনও সংখ্যার উপর স্ট্যাক করা যায় (উদাঃ !:t:r:p)।

  • h - বেস ফাইল নাম পর্যন্ত লাইন
  • t - শুধুমাত্র বেস ফাইলের নাম
  • r - ফাইলের নাম এক্সটেনশনে লাইন করুন
  • e - কেবল ফাইল নাম এক্সটেনশন
  • s/search/replacement- এর searchসাথে প্রথম উপস্থিতিটি প্রতিস্থাপন করুনreplacement
  • gs/search/replacement- প্রতিস্থাপন এর সমস্ত সংঘটন searchসঙ্গেreplacement

3
এবং যদি আপনি বাশ ব্যবহার করেন (নির্দিষ্ট অন্যান্য শেলের জন্যও একই রকম হতে পারে), এম-^ (মেটা-you) আপনার জন্য উপরের ইতিহাস সম্প্রসারণ অপারেটরগুলি প্রসারিত করে, আপনি যদি বাস্তবে যা উল্লেখ করছেন তা দেখতে আপনি যদি চান প্রতি.
এরিক স্মিথ

1
আমি কখনও ব্যবহার খুঁজে পাই নি! কমান্ড জিনিস। কমান্ডটি চালানো আমার পক্ষে খারাপ লাগছে যা আমি দেখছি না। এটি টাইপ করা এত সহজ হতে পারে! -4 এর পরিবর্তে! -3, এবং কী হতে পারে কে জানে। যে কমান্ডটি আমি চালাতে চাইছি তার লাইন নম্বর সন্ধান করা সাধারণত এটির পক্ষে মূল্য ব্যয় হয়। যদিও দুর্দান্ত কৌশল, তবে আমি তাদের জন্য কখনও আসল ব্যবহার পাইনি।
ফালমারি

1
@ ফালমারী আমি এগুলি কখনই ব্যবহার করি না !-#। আমি !stringস্ট্রিং দিয়ে শুরু হওয়া শেষ কমান্ডটি চালানোর জন্য ব্যবহার করি তবে আমি সঠিক জিনিসটি চালাচ্ছি তা নিশ্চিত করার জন্য আমি সাধারণত এটি প্রথমে ট্যাব-সম্পূর্ণ (zsh) করি
মাইকেল মরোজেক

1
না! :) "রানিং !Nকমান্ডটি চালাবে ..." এটি একটি বিবরণ খুব সংকীর্ণ; আসলে, !Nআদেশ দ্বারা প্রতিস্থাপিত করা হবে ...; এবং উত্তরের সমস্ত বর্ণনার জন্য। আরও সঠিক এবং খোলার আরো অনেক দরকারী সম্ভাবনা! যেমন, উল্লিখিত sudo !!
ইম্জ - ইভান জ্যাচারিয়াশেভ

1
পূর্ববর্তী কমান্ডগুলি স্ট্রিং দ্বারা সন্ধান করতে আমি সাধারণত Ctrl-R টিপুন। একাধিক Ctrl-R ইতিহাসের আরও গভীর খনন করবে। এইভাবে, আমি অবিলম্বে পাওয়া কমান্ডটি দেখতে পাচ্ছি এবং এটিকে বাতিল করে আরও তাকাতে পারি। Ctrl-G এই মোড থেকে পালাতে পারে। একমাত্র অসুবিধা হ'ল Ctrl-R হল bash; ইমাক্স-এ, ইনপুট কমান্ড এবং মানগুলির ইতিহাস ব্রাউজ করতে (এমএক্স বা অন্যান্য পঠিত মানের জন্য) এর পরিবর্তে মেটা-আর ব্যবহার করা হয় (মেটা-আর eshellইমাসেও ব্যবহৃত হয় )। তাই আমি প্রায়শই তাদের জগাখিচুড়ি করি।
imz - ইভান জ্যাচারিয়াশেভ

65

বাশ - পূর্ববর্তী লাইনের চূড়ান্ত প্যারামিটার sertোকান

alt- এখন . পর্যন্ত সবচেয়ে দরকারী কী সমন্বয় এটি চেষ্টা করে দেখুন এবং দেখুন যে কোনও কারণে কেউ এ সম্পর্কে জানেন না।

পুরানো শেষ পরামিতিগুলি নির্বাচন করতে এটি বারবার টিপুন।

দুর্দান্ত আপনি যখন কিছুক্ষণ আগে আপনি যুক্তি / ফাইলটি ব্যবহার করার জন্য আরও কিছু করতে চান।


11
আপনি আগের কমান্ডের শেষ আর্গটি উল্লেখ করতেও! Use ব্যবহার করতে পারেন। এটি কার্যকর কারণ এটি স্ক্রিপ্টগুলির পাশাপাশি ইন্টারেক্টিভভাবে কাজ করে। (বাশ & zsh এ কাজ করে)

4
যতবার আপনি আঘাত করবেন alt- .এটি পূর্ববর্তী কমান্ডে যাবে এবং এটি থেকে শেষ যুক্তিটি টানবে। সুতরাং আপনি যদি তিনটি কমান্ড আগে সর্বশেষ যুক্তি চান, কেবল আঘাত alt- .তিনবার।
ক্লি

2
এটি yank-last-argরিডলাইন কমান্ডের জন্য ডিফল্ট কী বাঁধাই , সুতরাং এটি কেবল BASH বা ZSH নয়, পঠনের সাথে লিঙ্কযুক্ত যে কোনও প্রোগ্রামের সাথে কাজ করবে।
জেমস স্নেরিঞ্জার

: VI মোডে, আমি এই উত্তর অনুযায়ী Yank-শেষ ARG নতুন করে বাঁধানো ছিল superuser.com/questions/18498/...
Jeromy Anglim

এক্সটার্মে, মেটা-। ® উত্পাদন করে তবে আপনি মেটার পরিবর্তে এসকে ব্যবহার করতে পারেন (সাধারণভাবে ব্যাশে), তাই এসএস-। পরিবর্তে.
ডারোবার্ট

49

আমার পছন্দ

man 7 ascii

সহজ এবং তাই খুব দরকারী।

   Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
   ────────────────────────────────────────────────────────────────────────
   000   0     00    NUL '\0' (null character)   100   64    40    @
   001   1     01    SOH (start of heading)      101   65    41    A
   002   2     02    STX (start of text)         102   66    42    B
   003   3     03    ETX (end of text)           103   67    43    C
   004   4     04    EOT (end of transmission)   104   68    44    D
   005   5     05    ENQ (enquiry)               105   69    45    E
   006   6     06    ACK (acknowledge)           106   70    46    F
   007   7     07    BEL '\a' (bell)             107   71    47    G
   010   8     08    BS  '\b' (backspace)        110   72    48    H
   011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
   012   10    0A    LF  '\n' (new line)         112   74    4A    J
   013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
   014   12    0C    FF  '\f' (form feed)        114   76    4C    L
   015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
   016   14    0E    SO  (shift out)             116   78    4E    N
   017   15    0F    SI  (shift in)              117   79    4F    O
   020   16    10    DLE (data link escape)      120   80    50    P
   021   17    11    DC1 (device control 1)      121   81    51    Q
   022   18    12    DC2 (device control 2)      122   82    52    R
   023   19    13    DC3 (device control 3)      123   83    53    S
   024   20    14    DC4 (device control 4)      124   84    54    T
   025   21    15    NAK (negative ack.)         125   85    55    U
   026   22    16    SYN (synchronous idle)      126   86    56    V
   027   23    17    ETB (end of trans. blk)     127   87    57    W
   030   24    18    CAN (cancel)                130   88    58    X
   031   25    19    EM  (end of medium)         131   89    59    Y
   032   26    1A    SUB (substitute)            132   90    5A    Z
   033   27    1B    ESC (escape)                133   91    5B    [
   034   28    1C    FS  (file separator)        134   92    5C    \  '\\'
   035   29    1D    GS  (group separator)       135   93    5D    ]
   036   30    1E    RS  (record separator)      136   94    5E    ^
   037   31    1F    US  (unit separator)        137   95    5F    _
   040   32    20    SPACE                       140   96    60    `
   041   33    21    !                           141   97    61    a
   042   34    22    "                           142   98    62    b
   043   35    23    #                           143   99    63    c
   044   36    24    $                           144   100   64    d
   045   37    25    %                           145   101   65    e
   046   38    26    &                           146   102   66    f
   047   39    27    '                           147   103   67    g
   050   40    28    (                           150   104   68    h
   051   41    29    )                           151   105   69    i
   052   42    2A    *                           152   106   6A    j
   053   43    2B    +                           153   107   6B    k
   054   44    2C    ,                           154   108   6C    l
   055   45    2D    -                           155   109   6D    m

   056   46    2E    .                           156   110   6E    n
   057   47    2F    /                           157   111   6F    o
   060   48    30    0                           160   112   70    p
   061   49    31    1                           161   113   71    q
   062   50    32    2                           162   114   72    r
   063   51    33    3                           163   115   73    s
   064   52    34    4                           164   116   74    t
   065   53    35    5                           165   117   75    u
   066   54    36    6                           166   118   76    v
   067   55    37    7                           167   119   77    w
   070   56    38    8                           170   120   78    x
   071   57    39    9                           171   121   79    y
   072   58    3A    :                           172   122   7A    z
   073   59    3B    ;                           173   123   7B    {
   074   60    3C    <                           174   124   7C    |
   075   61    3D    =                           175   125   7D    }
   076   62    3E    >                           176   126   7E    ~
   077   63    3F    ?                           177   127   7F    DEL

এই ওয়েবসাইটটি দেখুন কমান্ডলাইনফু.কম

আপনি তার ব্লগে পিটারিস ক্রুমিনসের এই চারটি নিবন্ধটি একবার দেখে নিতে পারেন


2
পৃথক ascii প্রোগ্রামও দরকারী। একটি সারণী মুদ্রণের পাশাপাশি এটি আপনাকে এক বা একাধিক স্বতন্ত্র চরিত্রের জন্য জিজ্ঞাসা করতে দেয়।
ম্যাথু ফ্ল্যাশেন


42

এটি "কৌশল" হিসাবে গণ্য হয়েছে কিনা তা নিশ্চিত নন তবে লোকেরা স্ট্যান্ডার্ড রিডলাইন হটকিগুলি সম্পর্কে খুব অচেতন বলে মনে হয়। শাঁস বিশেষ ব্যবহার:

  • Ctrl+ U- বর্তমান লাইন কাটা
  • Ctrl+ Y- একটি লাইন কাটা Ctrl+ দিয়ে আটকানU
  • Ctrl+ L- স্ক্রিনটি সাফ করুন এবং বর্তমান লাইনটি পুনরায় আঁকুন
  • Ctrl+ G- একটি নতুন লাইন পান এবং বর্তমানটিকে ত্যাগ করুন

5
কেবলমাত্র এগুলিতে কয়েকটি যুক্ত করতে: লাইনের শুরুতে যেতে Ctrl + A, লাইনের শেষ প্রান্তে যেতে Ctrl + E, কার্সার থেকে রেখার শেষ পর্যন্ত মুছতে Ctrl-K।
rsuarez

Ctrl+Lফর্মফিড আসকি চরিত্রের সাথে সম্পর্কিত। এটি সাধারণত কোনও স্ক্রিন উইন্ডো সহ টেক্সট অ্যাপ্লিকেশনগুলিতে পর্দা পুনরায় আঁকবে (যেমন, ভিএম, কম, এমসি ইত্যাদি)। অন্য প্রোগ্রাম থেকে কিছু আউটপুট দ্বারা যদি পর্দাটি "দূষিত" হয়ে থাকে তবে খুব ভাল।
hlovdal

হট-কীগুলির তালিকায় যুক্ত করা: Ctrl+Wএকটি শব্দ পিছনের দিকে কাটা, একটি শব্দ Alt+Fএগিয়ে Alt+Bযেতে, একটি শব্দ একটি লাইনে পিছনে যেতে। আমি পছন্দ করি Ctrl+Yএবং Shift+Insertকারণ আপনার দুটি অনুলিপি করা লাইন থাকতে পারে। এর সাথে একটি Ctrl+U(এটি দিয়ে পেস্ট করুন Ctrl+Y) এবং একই সাথে আপনি অন্য শব্দের (লাইনটি নির্বাচন করুন) কপি করতে পারেন ( Shift+Insert) দিয়ে paste

36

CTRL+ +R অনুসন্ধানের / সক্রিয় করার পূর্বে মৃত্যুদন্ড কার্যকর কমান্ড (~ / .bash_history বিষয়বস্তু) -এর জন্য ব্যাশে।

এটি প্রায়শই অত্যন্ত সহায়ক। এই উপনামটি চালানো 8000 বন্দরে পিটিডাব্লুডিটিকে HTTP (ইনডেক্সড) এর মাধ্যমে পরিবেশন করবে:

alias webserver="python -m SimpleHTTPServer"

এবং যেহেতু আমি সব সময় তৈরি করি, এবং স্পাজ আউট করি এবং খুব দ্রুত টাইপ করি, এই এলিয়াসগুলি সম্ভবত আমার সবচেয়ে বেশি ব্যবহৃত হয় (গুরুতরভাবে):

alias maek=make
alias mkae=make
alias meak=make
alias amka=make
alias akme=make

এবং সম্ভবত আমার BASH এর প্রায়শই ব্যবহৃত টুকরোটি একটি সহজ স্ক্রিপ্ট যা আমি আপলোড বলি। আমি এটি আমার লিনোডে কোনও ধরণের সামগ্রী ব্লিট করতে ব্যবহার করি এবং এটি ফলাফলের এইচটিটিপি ইউআরএলটি আমার ক্লিপবোর্ডে অনুলিপি করে (মিডল ক্লিক)। আইআরসি-তে লোকদের কাছে স্টাফ আটকে দেওয়ার জন্য খুব দরকারী:

scp -r $* $user@$host:public_html && {
    URL="http://$host/~$user/$(basename $1)"
    echo "$URL"
    xselection -replace PRIMARY "$URL"
}

মাত্র একটি দম্পতি। আমি আরও অনেক পরে পোস্ট করতে পারি, অবশ্যই কাজে ফিরে যেতে হবে!


8
alias mk=makeদ্রুত টাইপ করা এবং ভুল হওয়ার সম্ভাবনা কম। বা হটকি ব্যবহার করে আপনার সম্পাদক থেকে সংকলন করুন ...
লার্স হগসথ

বিটিডাব্লু জেডএস-এর অন্তর্নির্মিত বানান সংশোধন রয়েছে যা সাধারণ টাইপগুলি সংশোধন করতে খুব ভাল।
অ্যাডাম বাইরটেক

Zsh এও, আমি মনে করি ডিফল্টটি হ'ল আপনি যখন আপ কীটি চাপান তখন এটি ইতিহাস অনুসন্ধান করে যেন আপনি সিটিআরএলকে আঘাত করেছিলেন। ডিফল্ট নাও হতে পারে তবে এটি একটি সেটিংস।
ফালমারি

আমি বিবেচনা করব alias m=make, বা এমনকি m=make -j6বা অনুরূপ - আমি ইতিমধ্যে alias m=mutt
jmtd

31

diff ম্যানুয়ালি একটি অস্থায়ী ফাইল তৈরি না করে দুটি কমান্ডের আউটপুট (বাশ):

diff <(ls dir1) <(ls dir2)

এটি commকেবল ফাইলগুলি নেয় বলে এটি অত্যন্ত কার্যকর , তবে প্রচুর ক্ষেত্রে আইডোডের অপচয় নেই।
মার্সিন

30

সুন্দর মৌলিক, তবে লোকেদের এটি জানা নেই বলে মনে হয়, আপনাকে পূর্ববর্তী দিরের কাছে ফিরিয়ে দেয়:

cd -

আমি আপনাকে বলি, cd..ডস থেকে আমার পেশীর স্মৃতিতে আবদ্ধ হয় ...
লরেন্স

এটি ধাক্কা দেওয়া এবং পপড করার একটি সস্তা সংস্করণ ...
রবার্ট ম্যাসাওলি

একইভাবে, cd(কোনও যুক্তি ছাড়াই) রয়েছে যা আপনাকে আপনার হোম ডিরেক্টরিতে নিয়ে যায়।
মেই

হ্যাঁ, এটা পাগল। ম্যান পৃষ্ঠায় এটি '-' এর প্রসারকে কোথায় দেখায়? আমি সর্বদা চেষ্টা করছি (এবং ভুলে যাচ্ছি) পুশ / পপড ব্যবহার করার জন্য
চক আর

29

ব্রেস সম্প্রসারণ :

ব্রেস এক্সপেনশন এমন একটি প্রক্রিয়া যার মাধ্যমে স্বেচ্ছাসেবী স্ট্রিংগুলি উত্পন্ন করা যেতে পারে।

এটি আপনাকে ক্লান্তিকর লাইনগুলি প্রতিস্থাপন করতে দেয়:

mv loong/and/complex/file/name loong/and/complex/file/name.bacukup

একটি সংক্ষিপ্ত উদাহরণ সহ

mv loong/and/complex/file/name{,backup}

কিছু অন্যান্য ব্যবহার

# to display the diff between /etc/rc.conf and /etc/rc.conf.pacsave
diff /etc/rc.conf{,.pacsave}

# to list files in both /usr/share and /usr/local/share
ls /usr/{,local}/share 

পাটিগণিত সম্প্রসারণ :

পাটিগণিতের বিস্তৃতি পাটিগণিতের বহিঃপ্রকাশের মূল্যায়ন এবং ফলাফলের পরিবর্তনের অনুমতি দেয়। পাটিগণিতের বিস্তারের জন্য ফর্ম্যাটটি হ'ল:

$((expression))

এক্সপ্রেশনটি এমনভাবে বিবেচনা করা হয় যেন এটি ডাবল কোটের মধ্যে থাকে তবে প্রথম বন্ধনের ভিতরে ডাবল উদ্ধৃতিটি বিশেষভাবে বিবেচনা করা হয় না। অভিব্যক্তির সমস্ত টোকেনগুলি প্যারামিটার সম্প্রসারণ, স্ট্রিং সম্প্রসারণ, কমান্ড প্রতিস্থাপন এবং উদ্ধৃতি অপসারণের মধ্য দিয়ে যায়। পাটিগণিতের বিস্তৃতি বাসা বাঁধতে পারে।

$ a=1
$ b=2
$ echo $(( a+(b*2) ))
5

3
ভাল, আমি বিশ্বাস করতে পারি না আমি এই সম্পর্কে ভুলে গেছি। আরও একটি কমপ্যাক্ট রয়েছে foo[123]যা এর মধ্যে প্রসারিত হবে foo1 foo2 foo3, তবে সে ক্ষেত্রে কাজ করার জন্য তাদের ফাইলের নাম হওয়া দরকার
মাইকেল মরোজেক

হেই .. ধন্যবাদ ... প্রতিদিন কিছু শিখুন +1
স্টেফান

29

এটি সাধারণত আমার স্টার্টআপ স্ক্রিপ্টে থাকে (.bashrc,। প্রোফাইল, যাই হোক না কেন)

shopt মঙ্গল, মন্তব্যগুলি পরীক্ষা করুন:

shopt -s cdspell        # try to correct typos in path
shopt -s dotglob        # include dotfiles in path expansion
shopt -s hostcomplete   # try to autocomplete hostnames

একটি উপনাম যা কীস্ট্রোকগুলি সংরক্ষণ করে: mkdirএবং cdএতে:

mkcd () { mkdir -p "$@" && cd "$@"; }

এবং সর্বশেষে তবে সর্বনিম্ন নয়, আমি তারার সিনট্যাক্স মুখস্থ করতে ছেড়ে দিয়েছি, তাই:

extract () {
    if [ -f $1 ] ; then
        case $1 in
            *.tar.bz2)  tar xjf $1      ;;
            *.tar.gz)   tar xzf $1      ;;
            *.bz2)      bunzip2 $1      ;;
            *.rar)      rar x $1        ;;
            *.gz)       gunzip $1       ;;
            *.tar)      tar xf $1       ;;
            *.tbz2)     tar xjf $1      ;;
            *.tgz)      tar xzf $1      ;;
            *.zip)      unzip $1        ;;
            *.Z)        uncompress $1   ;;
            *)          echo "'$1' cannot be extracted via extract()" ;;
        esac
    else
        echo "'$1' is not a valid file"
    fi
}

5
+1, আমি কেন এটি ভেবে দেখিনি? (নির্যাস)
, MAK

আমি mkcdআইডি নাম রাখি তার সাথে আমার একই রকম ফাংশন রয়েছে md। তবে সিডির পক্ষে আর্গুমেন্ট হিসাবে "$ @" ব্যবহার করা কোনও অর্থহীন নয় কারণ আপনি একাধিক ডিরেক্টরিতে সিডি করতে পারবেন না। "$ @" md () { mkdir -p "$1"; cd "$1" }
এমকিডিরের

আমি কীভাবে এই আদেশগুলি যুক্ত করব? কেবলমাত্র .bashrc হিসাবে আটকান বা তাদের আগে "উপনাম" যুক্ত করুন?
আসফ

22

দুটি বাশ ফাংশন যা আমাকে অনেকগুলি স্ট্রোক সংরক্ষণ করে।

প্রতিটি সাফল্যের সিডির পরে স্বয়ংক্রিয়ভাবে একটি এলএস করুন:

function cd {
    builtin cd "$@" && ls
}

এন স্তরের উপরে যান:

# Usage .. [n]
function .. (){
    local arg=${1:-1};
    local dir=""
    while [ $arg -gt 0 ]; do
        dir="../$dir"
        arg=$(($arg - 1));
    done
    cd $dir #>&/dev/null
}

4
আমি কখনই বুঝতে পারি নি যে আপনি builtin fooকোনও ফাংশন সংজ্ঞায়িত করার জন্য করতে পারবেন cd; আমি chdirআমার ফাংশন ব্যবহার করছি । হ্যান্ডি
মাইকেল মরোজেক

অসাধারণ. কেবল সিডি ফাংশনে এলএস-এফ যোগ করুন এবং এটি নিখুঁত (আমার জন্য)!
উদ্ভট

2
সিডির জন্য আপনার মতো আমিও তাই করি, তবে আমার আরও কয়েকটা সতর্কতা পরীক্ষা আছে এবং অ-ইন্টারেক্টিভ মোডে ls করা এড়াতে চাই: cd() { builtin cd -- "$@" && { [ "$PS1" = "" ] || ls -hrt --color; }; }
বিচক্ষণতা

17

যেহেতু আমি অনুসন্ধানের আগে সাধারণত কমান্ড লাইনে অর্ধেক হয়ে থাকি (ব্যাশ-এ CTRL-R) আমার .bashrc এ নিম্নলিখিতটি থাকে

bind '"\e[A"':history-search-backward
bind '"\e[B"':history-search-forward

এর অর্থ হ'ল আমি সিডি টাইপ করলে উপরে / নীচে টিপুন আমি সিডি করানো সমস্ত অপশন দেখতে পাচ্ছি। মূলত আমি এটি প্রায়শই ব্যবহৃত ডায়ারের জন্য ব্যবহার করি। "সিডি ডাব্লু" এর মতো এবং আমি প্রচুর ওয়ার্কস্পেসগুলিতে যাচ্ছি through


এই সত্যিই দুর্দান্ত! এটি তাদের প্রাথমিক কার্যকারিতা ভঙ্গ না করে তীরের আচরণকে প্রসারিত করে T ধন্যবাদ!
ফিলিফআর

17

একটি জিনিস যা আমাকে অনেক সময় বাঁচায় তা হ'ল পুশড / পপড কমান্ড। এই ছেলেরা আপনাকে ডিরেক্টরিগুলির একটি স্ট্যাক তৈরি করতে এবং টাইপিংকে অনেকটা কমাতে দেয়:

/foobar/ > pushd /src/whatever/foo/test
/foobar/src/whatever/foo/test > make run
/foobar/src/whatever/foo/test > popd
/foobar/ > make

2
হ্যাঁ! ওরফে ইউ = পুশড; ওরফে ও = পপড
ক্যানড প্রাইমেটস

2
.. এবং কি uএবং oএখানে জন্য দাঁড়ানো?
ডিজেল

@ ডিজেল: টাইপিং এড়ানোর জন্য নির্দিষ্ট কিছু নয়, কেবল একটি শর্টকাট।
অ্যাডাম বাইরটেক

2
কমান্ডের দ্বিতীয় অক্ষরের মতো দেখে মনে হচ্ছে, যেহেতু তারা উভয়ই পি দিয়ে শুরু হয়, আপনি এটি উভয়ের জন্য ব্যবহার করতে পারবেন না।
ক্যামহ

জেডএসএইচে আপনি setopt autopushdএবং সমস্ত ডিরেক্টরি পরিবর্তন স্বয়ংক্রিয়ভাবে
চাপতে পারবেন

14

দ্য screen হুকুম । এটি যখন আপনি ফিরে আসেন তখন এটি আপনার কমান্ড লাইন সেশনটি মূলত সংরক্ষণ করে। এটি উইন্ডো ম্যানেজারের মতো টার্মিনাল ম্যানেজারের মতো। এইভাবে, একক টার্মিনাল সেশনে আপনার একাধিক ভার্চুয়াল টার্মিনাল চালু থাকতে পারে। এটা অনেক ঠাণ্ডা.

যদি কেউ ব্যবহার করে তবে screenএই শেল ফাংশনটি (এটিকে দেওয়া .bashrc) অত্যন্ত কার্যকর:

function scr {
    if screen -ls | grep -q Main; then
         # reattach to Main: 
         screen -xr Main
    else
         # name session "Main":
         screen -S Main
    fi
   }

টাইপ করার পরে scrএটি আপনার প্রধান সেশনটি উপস্থিত রয়েছে কিনা তা পরীক্ষা করে এটির সাথে সংযুক্ত হবে will অন্যথায় এটি এটি তৈরি করবে।


প্রযুক্তিগতভাবে এটি একটি নিজস্ব আদেশ, একটি "কমান্ড" নয়।
unPress325680

1
আমি tmux বা dvtm ওভার স্ক্রিনের পরামর্শ দেব। তারা আরও আধুনিক এবং ক্লিনার প্রতিস্থাপন।
ডেল্টারে

হ্যাঁ, "tmux" স্ক্রিনের চেয়ে নিরপেক্ষভাবে অনেক ভাল।
কলিনম

এটি আরও নিবিড়ভাবে সংক্ষিপ্ত, সংক্ষিপ্ত নামগুলির ইউনিক্স সম্মেলন অনুসরণ করে :)
ব্যবহারকারী 394

13

আপনার যদি প্রয়োজন হয় বিশেষত দীর্ঘ কমান্ড লাইনে বাশ এডিট করতে

^X^E (Ctrl-X Ctrl-E) 

এটি সম্পাদক ($ সম্পাদনা) এ খুলবে)

Zsh এ আপনি .zshrc এ যুক্ত করে একই আচরণ পেতে পারেন:

autoload edit-command-line
zle -N edit-command-line
bindkey '^X^e' edit-command-line 

বাহ, যে বইতে যায়।
l0b0

হ্যাঁ, এবং আমার নোটে!
জাইজ

12

আপনি যদি একজন দ্রুত টাইপিস্ট হন তবে এগুলি কার্যকর হয়:

alias grpe='grep --color=tty'
alias gpre='grep --color=tty'
alias rgep='grep --color=tty'
alias gerp='grep --color=tty'

এই ম্যাক্রো আপনাকে আউটপুটগুলির একটি কলামের মোট গণনা করতে সহায়তা করে: ফাইলের আকার, বাইটস, প্যাকেটস, আপনাকে যা করতে হবে তা আপনাকে অবশ্যই যে কলামটি যুক্ত করতে চান তা নির্দিষ্ট করে:

total ()
{
        if [ x$1 = x ]; then set `echo 1`; fi
        awk "{total += \$$1} END {print total}"
}

আপনি এটির জন্য এটি উদাহরণস্বরূপ ব্যবহার করুন, কোনও যুক্তি ছাড়াই এটি প্রথম কলামটির মোট যোগ করেছে:

du | total

আপনি যদি যুক্তি সরবরাহ করেন তবে এটি সেই কলামটি যোগ করবে, উদাহরণস্বরূপ, এটি আপনাকে / tmp এর সমস্ত সি # ফাইল দ্বারা ব্যবহৃত মোট বাইট সংখ্যা দেয়:

ls -l /tmp/*cs | total 5

কখনও কখনও আপনার কনসোলটি বিভ্রান্ত হয়ে যায় কারণ আপনি দুর্ঘটনাক্রমে একটি বাইনারি ফাইল দেখেছেন (উদাহরণস্বরূপ বিড়াল / বিন / এলএস), আপনি এই শেল ফাংশনটি দিয়ে টার্মিনালটি পুনরুদ্ধার করতে পারেন:

restaura ()
{
    perl -e 'print "\e)B";'
}

আমি চাইছি আমার এলএস ফাইলগুলির শ্রেণীর পার্থক্য করতে অক্ষরগুলি ব্যবহার করতে, এবং আমার সম্পাদক দ্বারা উত্পন্ন ব্যাকআপ ফাইলগুলিও আড়াল করতে (ব্যাকআপ ফাইলগুলি ~ অক্ষরের সাথে শেষ হয়):

alias ls='ls -FB'

ভুলে যাবেন না: ওরফে জীবাণু = 'গ্রেপ - কালার = টিটি' আমি সর্বদা এটি করি ;-)
রবার্ট সুইশার

1
আমি যতটা উদ্বিগ্ন, আমি দ্রুত না হলেও "দ্রুত" গণনা করে না। আপনি GREP_COLORS এবং GREP_OPTIONS ভেরিয়েবলগুলিও দেখতে চাইতে পারেন।
অ্যান্ডি লেস্টার

2
s/fast/sloppy/
জোশ

1
resetআপনি যেখানে ব্যবহার করেন সেখানে আমি ব্যবহার করি restaura
jmtd

11
alias s='sudo'
alias r='rake' # i'm a ruby developer
alias ..='cd ..' # although with autocd feature for zsh this comes packed.

আমি ভুলে গেলে আমার পছন্দের একটি s:

$ s !! # last command with super user priviledges

2
আপনি যদি জেডএসএইচ ব্যবহার bindkey -s '\e[12~' "sudo !!\n"করেন তবে এই কমান্ডটি চালানোর জন্য F2 বাঁধাইয়ের মতো (এই ক্ষেত্রে) কিছু করতে পারেন । আমার কাছে এই বাঁধাই রয়েছে, তাই যখন আমি কিছু চালনা করি এবং "আপনি 'সুডো' ভুলে গিয়েছিলেন, বোকা" ত্রুটি বার্তাটি দেখেন, আমি বিরক্তিতে F2 তে কেবল ছুরিকাঘাত করতে পারি
মাইকেল মরোজেক

দরিদ্র এফ 2 কী ...।)
এমমান্টাস

আমি এই সব সময় ব্যবহার। আমি আমার হোস্ট ফাইলটি সম্পাদনার আগে ক্রমাগত sudo টাইপ করতে ভুলে যাই। যদি তা হয় তবে আমি কেবল সুডো চালাই !! +1
ব্রায়ান উইগগিন্টন

10

যদি কোনও কমান্ড স্ট্ডিন ইনপুট নেয়, আপনি ফাইলটি থেকে ইনপুটটি পড়তে পারেন <filename। এটি কমান্ডের যে কোনও জায়গায় উপস্থিত হতে পারে, সুতরাং এই লাইনগুলি সমান:

cat filename
cat <filename
<filename cat

এটি গ্রেপের পক্ষে বিশেষভাবে কার্যকর, কারণ এটি আপনাকে লাইনের শেষের দিকে অভিব্যক্তিটি রাখার অনুমতি দেয়, তাই আপনি Upফাইলের নামটি পাস করার জন্য বামদিকে স্ক্রোল না করেই হিট করে দ্রুত একটি গ্রেপ কমান্ডটি সংশোধন করতে পারেন :

<filename grep 'expression'

3
একটি ভাল টিপ! এটি আসলে কমান্ডের সাথে যুক্তিগুলিকে পুনরায় সাজিয়ে তোলে না তা লক্ষণীয়। পরিবর্তে এটি প্রক্রিয়াটি 'STDIN' এ ফাইলটি পাইপ করে, কারণ গ্রেপের এখন কোনও ফাইল যুক্তি নেই যা এটি STDIN থেকে পড়ার ক্ষেত্রে ডিফল্ট হয়। এটি বোঝার ফলে অন্যান্য কমান্ডগুলির সাথে এই কৌশলটি ব্যবহার করার অনেক সুযোগ উন্মুক্ত হবে এবং যখন প্রত্যাশা অনুযায়ী জিনিসগুলি কাজ করে না তখন কী চলছে তা লোকেরা বুঝতেও সহায়তা করবে। আরও তথ্যের জন্য পাইপ এবং পুনর্নির্দেশকারীর সন্ধান করুন: dsj.net/compedge/ Shellbasics1.html
মরিচটি

@ চিল ভাল পয়েন্ট; টিপটি আসলে এতটা দুর্বলভাবে বলা হত যে মূলত ভুল হতে পারে। আমি আপনার মন্তব্যের ভিত্তিতে এটি পুনরায়
লিখেছি

আমি সম্প্রতি যা কিছু জানতে পেরেছি: আপনি ইনপুটটিকে লুপগুলিতে পুনর্নির্দেশ করতে পারেন (এর জন্য, যখন ইত্যাদি)। FAQs.org/docs/abs/HTML/redircb.html দেখুন ।
লুকাস জোন্স

প্রচলিতভাবে আপনি পুনর্নির্দেশটি শেষে রেখেছিলেন। পাইপলাইন রূপকটি আরও ভাল দেখায় <input foo | bar | baz >output, আপনি যদি কিছু শেল লুপিং আদিমকে যেমন whileবা forমাঝখানে মিশ্রিত করার চেষ্টা করেন তবে এটি কাজ করে না । সুতরাং আমি হাল ছেড়ে দিয়েছি এবং এটি কনভেনশন অনুযায়ী শেষ পর্যন্ত রেখেছি।
jmtd

@jmtd ভাল, এটিকে শেষ করে দেওয়া "এটি গ্রেপের পক্ষে বিশেষত কার্যকর, কারণ এটি আপনাকে লাইনের শেষের দিকে অভিব্যক্তিটি রাখার অনুমতি দেয়, তাই আপনি স্ক্রোলের প্রয়োজন ছাড়াই দ্রুত একটি গ্রেপ কমান্ডটি এটির উপরে চাপিয়ে পরিবর্তন করতে পারেন sc ফাইলের
নামটি

9

আপনি CDPATHডিরেক্টরি সমতুল্য সেট আপ করতে ব্যবহার করতে পারেন PATH; যদি আপনি চেষ্টা cd fooএবং সেখানে কোন fooবর্তমান ডিরেক্টরির মধ্যে, শেল ডিরেক্টরি প্রতিটি চেক করবে CDPATHখুঁজছেন fooতাদের মধ্যে, এবং প্রথম এক এটি খুঁজে বের করে সুইচ:

export CDPATH="/usr"
cd bin # switches to 'bin' if there is one in the current directory, or /usr/bin otherwise

3
এটি সমস্যার কারণ হতে পারে। সফ্টপ্যানোরামা.আর. / স্ক্রিপ্টিং / শেলোরমা / সিডিপথ.শটিটিএমএল দেখুন "যদি $ সিডিপিএটিএইচ সেট করা থাকে তবে সিডি বিল্ট-ইন এতে স্পষ্টভাবে বর্তমান ডিরেক্টরিটি সংযোজন করবে না This এর অর্থ হ'ল সিডি ব্যর্থ হবে যদি কোনও বৈধ ডিরেক্টরি নাম কোনও থেকে তৈরি করা না যায় c $ CDPATH- এ থাকা এন্ট্রিগুলির মধ্যে, যদিও সিডির জন্য আর্গুমেন্ট হিসাবে দেওয়া নামের একই নামের একটি ডিরেক্টরি বর্তমান ডিরেক্টরিতে উপস্থিত রয়েছে। " আমি এটি দ্বারা কামড়েছি, কিছু মেকফিল কাজ বন্ধ করে দিয়েছে। সংযোজন। স্পষ্টত যদিও সাহায্য করতে পারে, তবে সেই সাথে কিছু সমস্যা রয়েছে।
ustun

9
vi `which scriptname`

কারণ কখন আপনি জানেন না যে কোনও জায়গায় কোথায় থাকে এবং আপনিও যত্নবান হন না।


8
আমি জেডএসএইচ বৈশিষ্ট্যগুলি প্লাগ করা চালিয়ে যাওয়া বোঝাতে চাইছি না, তবে আমি অন্য লোকেদের উত্তর হিসাবে সেগুলি ভাবতে থাকি :)। জেডএসএইচে আপনি whichস্বয়ংক্রিয়ভাবে প্রার্থনা করতে = ফু করতে পারেন , তাইvi =scriptname
মাইকেল মরোজেক

আপনার যদি ব্যাকটিক চরিত্রটি অনুসন্ধান করতে সমস্যা হয় তবে আপনি এটিও ব্যবহার করতে পারেন$(scriptname)
প্যাট্রিক

9

এম্পারসেন্ড । এটি আপনার কমান্ডটিকে পটভূমিতে রাখে যাতে আপনি টাইপ করা চালিয়ে যেতে পারেন।

$> sudo updatedb &

পাশাপাশি কাজ করা, এবং কিছুক্ষণ পরে আপনি দেখতে পাবেন:

[1] 17403

এবং আপনার প্রক্রিয়া শেষ! এমন জিনিসগুলির জন্য দুর্দান্ত যেখানে আপনার শেষ হওয়ার জন্য অপেক্ষা করতে হবে না।


11
এবং যদি আপনার অ্যাপ্লিকেশনটি জিইউআই হয় তবে আপনি সম্ভবত এটি চাকরিতে না রাখতে চান। সংযোজন করুন &!পটভূমি কাজ এবং শেল থেকে এটা অস্বীকার!
unPress325680

@ প্রোগো: এটি আমার পক্ষে কাজ করে না bash
নাথান ওসমান

@George। দেখে মনে হচ্ছে আপনি ঠিক বলেছেন আমি শিখেছি যে zsh এটি সমর্থন করেছে এবং পরে শুনেছি যে বাশও এটিকে সমর্থন করে। ওহ আমার :(
un23325680

1
@ প্রোগো: দেখা যাচ্ছে যে কমান্ডটি প্রেরণ করা nohupএটি সম্পাদন করে।
নাথান ওসমান

8

ট্যাব সমাপ্তি । আপনার যদি প্রতিটি পথের সমস্ত চরিত্র টাইপ করতে হয় তবে এটি কতটা খারাপ চুষবে?


5
সুইসাইড লিনাক্স আছে। আপনি যদি ভুলভাবে আদেশটি টাইপ করেন - এটি করে rm -fr /। হ্যাঁ, ট্যাব সমাপ্তি বেশ গুরুত্বপূর্ণ ...
আইমান্টাস

আপনি যা ভাবেন ঠিক ততটা খারাপ নয় (তবে এখনও খারাপ), আপনি কেবল সর্বত্রই ওয়াইল্ডকার্ড ছিটিয়ে দিন:ls /usr/lib/game-d*/rott*
জেএমডি

@ আইমান্তাস rm -rf /বেশিরভাগ লিনাক্স সিস্টেমে অক্ষম নয় ?
বার্নহার্ড হাইজস্টেক

@ ফাইকার - আমি সুইসাইড লিনাক্সের কথা উল্লেখ করেছি, "সমস্ত" নয়।
আইমান্তাস

7

সর্বশেষ মাউন্ট করা ডিভাইস:

mount /media/whatever
...
u!mo

!momo(কমপক্ষে ব্যাশে) দিয়ে শুরু হওয়া শেষ কমান্ডে প্রসারিত হয় । কখনও কখনও কেউ mvমাঝখানে করে, তাই u!mপ্রায়শই কাজ করবে না।


সুরক্ষা সতর্কতা হিসাবে চালিত না করে কমান্ডটি প্রসারিত করতে Ctrl + Shift + 6 (Ctrl + ^) ব্যবহার করুন
কলিনম

7

আমার .bashrc এ এটি আছে

#shortcut for CTRL+C and CTRL+V
alias c-c='xclip -sel clip'
alias c-v='xclip -o -sel clip'

 

function find-all() {
    python -c "import re
import sys
for i in re.findall('$1', sys.stdin.read()):
    if type(i) == type(''):
        print i
    else:
        print i[0]"
}

এবং যখন আমার ক্লিপবোর্ডে এইচটিএমএল উত্স কোড থাকে এবং আমি যে সমস্ত লিঙ্ক ব্যবহার করি তা সন্ধান করতে চাই

c-v | find-all 'href="([^"]*)"' | c-c

এবং ক্লিপবোর্ডে আমার সমস্ত ইউআরএল রয়েছে

আমি এই ফাংশন আছে

function lsq(){
    ls -lh $@ | tr -s ' ' | cut -d' ' -f5,8
}

যা প্রদর্শন আকার (মানব পাঠযোগ্য) এবং ফাইলের নাম।

alias temp='cat /proc/acpi/thermal_zone/THRM/temperature'

এই উপনাম শো টেমেরিটেশনের জন্য

function separate() {
    python -c "import sys,re; print '$1'.join(re.split('\s*', sys.stdin.read().strip()))";
}

এই ফাংশনটি দিয়ে আমি পণ্য বা যুক্তির যোগফল গণনা করতে পারি।

alias sum='separate + | bc'
alias product='separate * | bc'

function split-join() {
    python -c "import sys,re; print '$2'.join(re.split('$1', sys.stdin.read().strip()))";
}

এটি ইউজফুল ফাংশন যা স্ট্যান্ডার্ড ইনপুটটিকে রেগেক্স দ্বারা আলাদা করে এবং তারপরে ফলাফলটিতে যোগ দেয়।

function factorial() {
    seq -s* $1 | bc
}

ফ্যাক্টরিয়াল ফাংশন

function wiki() { dig +short txt $1.wp.dg.cx; }

এই ফাংশনটি ডিএনএসের মাধ্যমে উইকি পাঠ্য প্রদর্শন করে

আমি তিনটি রঙ ফানসিওন আছে

function blue() {
    echo -e "\x1b[34m\x1b[1m"$@"\x1b[0m";
}

function green() {
    echo -e "\x1b[32m\x1b[1m"$@"\x1b[0m";
}

function red() {
    echo -e "\x1b[31m\x1b[1m"$@"\x1b[0m";
}

 

function md5check() {
    test `md5sum $2 | cut -d' ' -f1` = "$1" && green [OK] || red [FAIL]
}

এই ফাংশনটি এমডি 5 হ্যাশ ফাইলটি বৈধতা দেয়।

এটি প্রদত্ত কোডের জন্য ত্রুটি বার্তা প্রদর্শন করবে

function strerror() { python -c "import os; print os.strerror($1)"; }

আপনি এর সাথে সমস্ত বার্তা মুদ্রণ করতে পারেন

alias all-errors='for i in `seq 131`; do echo -n "$i: "; strerror $i; done'

6

আর একটি দরকারী ZSH কৌশল:

একটি কমান্ডের আউটপুটটিকে একটি ফাইল হিসাবে বিবেচনা করুন:

emacs =(hg cat -r 100 somefile)

এটি সিনট্যাক্স-হাইলাইটেড দেখার জন্য ইমাক্স-এ একটি মার্চুরিয়াল ট্র্যাকড ফাইলের একটি পুরানো সংস্করণ খোলে। যে ছাড়া, আমি নিয়ে জগাখিচুড়ি করতে হবে hg revert, hg archiveঅথবা স্পষ্টভাবে পাঠাতেhg cat একটি অস্থায়ী ফাইল আউটপুট।

অবশ্যই, এটি ফাইলগুলিকে খোলে এমন কোনও প্রোগ্রাম এবং কোনও প্রোগ্রাম যা স্ট্যান্ডার্ড আউটপুটে প্রিন্ট করে তা নিয়ে কাজ করে।


5
আপনি <()
ScaryAardvark

5

একটি জেডএসএইচ-নির্দিষ্ট বৈশিষ্ট্যটি প্রত্যয় এলিয়াস, পতাকাটি aliasদিয়ে সেট করে -s:

alias -s ext=program

যদি কোনও প্রদত্ত এক্সটেনশনের প্রত্যয় ওরফে থাকে তবে আপনি সরাসরি সেই এক্সটেনশন সহ একটি ফাইল চালিয়ে দিতে পারেন এবং জেডএসএইচ প্রদত্ত প্রোগ্রামটি চালু করবে এবং ফাইলের নামটি একটি আর্গুমেন্ট হিসাবে পাস করবে। সুতরাং উপরের উপনামটি কার্যকর হলে, এই রেখাগুলি সমতুল্য:

/path/to/foo.ext
program /path/to/foo.ext

এটি একটি জিনিস যা আমি উইন্ডোজ সম্পর্কে সত্যিই মিস করেছি ... যতক্ষণ না বুঝেছি যে "প্রোগ্রাম" সর্বদা ইম্যাক্স, তাই আমি ফাইলগুলি খোলার জন্য শেল ব্যবহার বন্ধ করে দিয়েছিলাম এবং সদ্য Cx সিএফ (ডু) ব্যবহার করেছি।
হারপো

5

আমার সর্বকালের প্রিয় জেডএসএইচ বৈশিষ্ট্যগুলির একটির নাম ডিরেক্টরি রয়েছে। আপনি একটি নির্দিষ্ট পথের দিকে নির্দেশিত একটি মান সহ একটি প্রদত্ত নামের সাথে একটি চলক রফতানি করতে পারেন:

export foo=/usr/bin

এখন আপনি ~fooউল্লেখ করতে একটি আদেশ ব্যবহার করতে পারেন /usr/bin:

cd ~foo
~foo/ls
cat ~foo/filename

যদি আপনার প্রম্পটটি বর্তমান কার্যকারী ডিরেক্টরিটি প্রদর্শন করে তবে ভেরিয়েবলের নামগুলিও যতক্ষণ আমার মনে আছে সেখানে ব্যবহার করা হবে।
আন্দ্রে হল্জনার

4

এটা দেখ প্রশ্নটি

আপনি যখন দৌড়াবেন ps ax | grep string :

[steve@sage-arch ~]$ ps ax | grep 'openbox'
 3363 ?        Ss     0:00 /usr/bin/openbox
 3382 ?        Ss     0:00 /usr/bin/ssh-agent -- /usr/bin/openbox-session
 3386 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3388 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3389 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3390 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 5100 pts/0    S+     0:00 grep openbox

সমন্বিত শেষ লাইন grep সামান্য কিছু বিরক্তিকর is

আপনি চালিয়ে এই থেকে নিজেকে মুক্তি দিতে পারেন ps ax | grep '[s]tring':

[steve@sage-arch ~]$ ps ax | grep '[o]penbox'
 3363 ?        Ss     0:00 /usr/bin/openbox
 3382 ?        Ss     0:00 /usr/bin/ssh-agent -- /usr/bin/openbox-session
 3386 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3388 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3389 ?        S      0:00 /bin/sh /usr/bin/openbox-session
 3390 ?        S      0:00 /bin/sh /usr/bin/openbox-session

আপডেট : বা কেবল চালানpgrep string


হ্যাঁ, খুব দরকারী আপনার (যদিও '[o]penbox') ওপেনবক্সটি উদ্ধৃত করা উচিত । বন্ধনীগুলি একধরণের গ্লোব হিসাবে কাজ করবে, সুতরাং আপনার ডিরেক্টরিতে যদি ওপেনবক্স থাকে (বলুন আপনি ভিতরে আছেন /usr/bin) ব্যাশ কেবল ওপেনবক্স ব্যবহার করবে, যা গ্রেপ ট্রিককে আটকাবে।
ধনী হোমোলকা

4
  • করণীয় :হিসাবে কমান্ড

    while :; do :; done
  • লুপগুলির সাথে সংমিশ্রণে ব্রেস সম্প্রসারণ:

    for c in {1..3}; do :; done
  • !অপারেটর এবং শর্ট সার্কিট অপারেটর ||এবং&&

    [ -d /tmp/dir ] || mkdir /tmp/dir
    
    if ! ping 34.41.34.1; then :; fi
  • পপ / পুশের পরিবর্তে সাব শেল ব্যবহার করা (স্ক্রিপ্টগুলিতে কাজে আসে)

    ~$ ( cd /tmp; echo $PWD )
    /tmp
    ~$
  • কি ধরনের হুকুমtype

    ~$ type type
    type is a shell builtin
    ~$ type ls
    ls is aliased to `ls --color=auto'
    ~$ f(){ :; }
    ~$ type f
    f is a function
    f () 
    { 
         :
    
    }
  • এছাড়াও খুব সুন্দর: এখানে স্ট্রিংস

    ~$ cat <<<"here $PWD"
    here /home/yourname
    ~$
  • এবং আমার প্রিয়: কমান্ডের তালিকায় পুনঃনির্দেশ

    { w; ps; ls /tmp; } 2>/dev/null |less

3

আমি আমার পিএস 1 এর মধ্যে যতটা স্টাফ করতে পারি তা পছন্দ করি। মনে রাখার জন্য কয়েকটি দরকারী জিনিস:

\e[sএবং \e[uযথাক্রমে কার্সার অবস্থানটি সংরক্ষণ এবং আনইভ করুন। আমি এটি স্ক্রিনের শীর্ষে একটি 'তথ্য-বার' তৈরি করতে ব্যবহার করি, কয়েক লাইন দীর্ঘ, যা আরও স্টাফ ফিট করতে পারে। উদাহরণ:

PS1='\[\e[s\e[7m\e[1;1H\]\w\n\t        \j / \! / \#\[\e[u\e[0m\e[33;1m\][\u@\h \[\e[34m\]\W]\[\e[0m\]\$ '

সঙ্গে মেশা alias clear='echo -e "\e[2J\n"' । চেষ্টা কর!

এছাড়াও PROMPT_COMMAND ভেরিয়েবল পিএস 1 এর আগে প্রতিটি সময় কার্যকর করার জন্য একটি কমান্ডকে সংজ্ঞায়িত করে।

আর একটি হ'ল bgকমান্ড। আপনি যদি &কোনও কমান্ডের শেষে রাখতে ভুলে যান তবে কেবল টিপুন ^Zএবং টাইপ করুন bgএবং এটি ব্যাকগ্রাউন্ডে চলে।


এর জন্য ধন্যবাদ bg, যখন আমার পটভূমিতে একটি প্রোগ্রাম চলছে এবং ঘটনাক্রমে চাপ fgদিচ্ছি আমি কীভাবে এটি পিছনে
ঠেকাতে

আমি একটি ক্লিন পছন্দ করি PS1তাই আমি চাই বেশিরভাগ জিনিস আমার পর্দার নীচের লাইনে রাখি ...
জোশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.