یکی از مفیدترین نکتههایی که بسیاری از افرادی که سالها با لینوکس کار کرده و از آن اطلاعی ندارند، جایگزین کردن عبارتی در دستوری که قبلا زدهاند است.
یکی از مفیدترین نکتههایی که بسیاری از افرادی که سالها با لینوکس کار کرده و از آن اطلاعی ندارند، جایگزین کردن عبارتی در دستوری که قبلا زدهاند است.
بعضی مواقع در لینوکس case sensitive بودن در هنگام استفاده از Tab و یا به عبارتی auto completion آزار دهنده می شود . به طور نمونه فایلی داریم با نام Mahdi و یا دایرکتوری به نام Blog که می خواهیم در ابتدا فایل Mahdi را بخوانیم و سپس به دایکتوری Blog مراجعه کنیم .
اگر برای خواندن محتوای فایل Mahdavifar ما دستور cat mah را تایپ کنیم و Tab را بزنیم هر چقدر که این عملیات را انجام دهیم دستور برای ما کامل نخواهد شد و به همین منوال برای رفتن به دایرکتوزی Laitec اگر ما دستور cd lai را بزنیم با زدن Tab برای ما دستور کامل نخواهد شد . در بعضی مواقع قابلیت case sensitive بودن در هنگام استفاده از Tab در لینوکس آزار دهنده است ولی از آنجایی که در لینوکس همه چیز قبل تغییر است میتوانید این قابلیت را نیز off کنید !!!
برای اینکار کافی است دستور زیر را در .bashrc یوزر مربوطه ای که میخواهید قابلیت case sensitive بودن در هنگام bash completion برای او غیر فعال شود را قرار دهید:
bind 'set completion-ignore-case on'
و یا عبارت:
set completion-ignore-case on
را در فایل etc/inputrc/ اضافه کنید
حال یک shell جدید باز کنید این بار با زدن دستور cat mah و زدن کلید Tab دستور فوق کامل گردیده و cat Mahdi برای ما کامل می گردد و همین اتفاق نیز برای دستور cd blo و زدن کلید Tab را رخ می دهد که با این کار عبارت cd Blog برای ما کامل میشود !
جالبه نه!! هیچ چیز در لینوکس غیر قابل تغییر نیست!
تایپ کردن در کامند لاین ساده نیست. در ابتدا زمان زیادی وقتتون رو میگیره تا یاد بگیرید چطور کامندهای گوناگون کار میکنن ولی حتی بعد از اون هم شما باید در مورد اسامی فایلها و دایرکتوریها بسیار دقیق باشید در غیر این صورت و دقیق نبودن شما باید کامندها را تکرار و تکرار کنید.
ولی!! همیشه در لینوکس راهی وجود دارد!! Bash دارای یک کامند داخلی به نام shop می باشد که به ما اجازه می دهد که option های گوناگونی برای command line ست کنیم. برای مثال با زدن دستور:
Shopt -s cdspell
ما به bash قابلیت تصحیح غلط های املایی هنگام تایپ نام دایرکتوریهای را میدهیم به عنوان مثال اگر شما به جای اینکه برای رفتن به دایرکتوری یوزر mghaffari دستور cd /home/madhavifar را بزنید به صورت خودکار bash اشتباه شما را تصحیح کرده و شما را به نزدیک ترین دایرکتوری از نظر اسمی که در اینجا /home/mghaffari است منتقل میکند .
همچنین شما می توانید با استفاده از دستور:
Shopt -s nocaseglob
در هنگامی که اسم یک فایل را میزنید و tab را فشار میدهید برای autocomplete ، bash برای ما search و جست جوی فایل را به صورت case-insensitive انجام می دهد . توجه کنید که در این مورد bash عملیات autocomplete را به صورت case insensitive انجام نمیدهد بلکه عملیات search را به این صورت انجام میدهد .
برای نمونه فرض کنید که شما می خواهید به دایرکتوری Desktop مراجعه کنید برای این منظور اگر قابلیت nocaseglob را فعال کرده باشید اگر ما عبارت cd desk* را استفاده کنیم ، به عبارتی از wild card ها استفاده کنیم بعد از زدن دستورات به طور خودکار ما به دایکتوری Desktop انتقال پیدا خواهیم کرد.
برای غیر فعال سازی قابلیتهای معرفی شده در بالا نیز کافیست به جای استفاده از سوییچ -s از سوییچ –u استفاده کنیم .
برای دیدن تمامی option های قابل ست کردن برای shell و همینطور فعال بودن و نبودن آنها نیز زدن دستور shop کافیست .
On به معنای فعال و off به معنای غیر فعال می باشد .