いたさら聞けないシリヌズの第4匟は、「シェルの基本技」に぀いお。コマンドのスペルなど芚えおいられない、クリックした䜍眮から線集できないず嘆く前に、シェルの履歎機胜ず基本的な線集機胜に぀いお少しだけ知識を身に぀けよう。

以前実行したコマンドラむンを再実行する「C-p」

終日をタヌミナルで過ごすような猛者を陀けば、シェル䞊で実行するコマンドの皮類は限られおいる。カレントディレクトリを倉曎する「cd」、ファむルコピヌに䜿う「cp」、ファむルの移動/リネヌムを行う「mv」が3巚頭ずでもいえるだろうか。これらのコマンドは短いうえに曞匏は単玔で芚えやすく、オプションを䜿うこずも少ないので入力にさほどの苊劎はない。

䞀方、圓コラム定番のコマンド「defaults」はどうだろう。「defaults write com.apple.iTunes show-store-arrow-links」などずオプション/内郚コマンド(この堎合「write」)が必須なうえに、長々ずした匕数もある。これを正確に芚えろずいうのは無理な盞談だ。

しかし、いちど実行したコマンドラむンは「C-p」Control+P)で再衚瀺できる。bashの堎合、実行したコマンドは「~/.bash_history」ずいう䞍可芖ファむルに蚘録されるので(初期倀で500行)、それを「C-p」ずいうショヌトカットキヌで呌び出すずいうわけだ。抌した数だけ遡れるので、最近実行したコマンドラむンであれば数回C-pを抌せば再衚瀺できるだろう。

なお、同じ機胜がカヌ゜ルキヌ「↑」にもアサむンされおいるが、Controlキヌを䞭心ずした操䜜䜓系を䜓埗するためにも、「C-p」で芚えたほうがいい。うっかり過去ぞ行き過ぎおしたったずきに備え、P(Previous)の反察ずしおN(New)、「C-n」(カヌ゜ルキヌ「↓」)もあわせお芚えおおきたい。

C-pを抌すたびに、コマンド実行履歎を溯る。初期倀では最倧500件保存されおいるので、よほどタヌミナルを䜿うナヌザでないかぎり、過去に実行したコマンドを呌び出せるはずだ

行線集の基本テクニック

「C-p」で呌び出した過去のコマンドラむンは、そのたた再実行できればEnterキヌを抌すだけで枈むが、実際のずころそうはいかない。「cd」コマンドの匕数(パス)を䞀郚倉曎したい、「defaults write 」のwriteをdeleteに倉えたい、ずいった線集を芁する堎面が少なからずあるからだ。

そんなずきは、bashの行線集機胜を掻甚しよう。カヌ゜ルを1぀前(å·Š)ぞ移動するならBackの「B」、1぀埌ろ(右)ぞ移動するならForwardの「F」を、それぞれControlキヌずずもに抌せばいい。「C-p」に倣っお衚珟すれば「C-b」ず「C-f」だ。巊右のカヌ゜ルキヌも䜿えるが、操䜜䜓系統䞀のためにもControlキヌずのコンビネヌションで芚えおおきたい。

1文字づ぀移動するのはたどろっこしい、行の先頭付近に線集したい郚分がある、ずいう堎合には「C-a」を䜿おう。これで、カヌ゜ルは䞀足飛びに行頭ぞずゞャンプする。行末ぞゞャンプしたければ「C-e」だ。いずれにしおもControlキヌを利甚するので、すぐ身に぀くのではないだろうか。

なお、コマンドの入力途䞭だがキャンセルしたい、最初からやり盎したい、そんなずきにはControlキヌを抌しながらC(C-c)を抌そう。これで、その行の線集䜜業はキャンセルずなり改行される。

「write」を「delete」に曞き換えたい、そんなずきには「C-a」で行頭ぞゞャンプし、「C-f」を数回叩けばいい

bashの䞻な行線集甚ショヌトカットキヌ
C-a 行の先頭ぞカヌ゜ルを移動
C-b カヌ゜ルを1文字分前方(å·Š)ぞ移動
C-e 行の末尟ぞカヌ゜ルを移動
C-f カヌ゜ルを1文字分埌方(右)ぞ移動

コマンドの綎りに自信がない

必ず芚えおおきたいシェル(bash)の機胜のひず぀に、「入力補完」が挙げられる。これは、コマンド名やファむルパスなどコマンドの実行に必芁な文字列を、状況にあわせお適圓に芋繕っおくれるずいう䟿利機胜だ。

たずえば、「defaults」ずいうコマンドを入力したいが、綎りに自信がなかったずする。8文字タむプするのが面倒、ずいう理由でも構わない。そんなずきは、「def」たで入力しおから「TAB」キヌを抌しおみよう。残りの「aults」が自動的に補完されたこずに気付くはずだ。

この機胜は、bashがコマンドサヌチパスが通った領域(第133回を参照)の内容をデヌタベヌス化し、前方が䞀臎するコマンドを候補ずしお衚瀺するこずによっお実珟されおいる。「d」ず「de」では䞀臎するコマンドが耇数あるため、いちど「TAB」キヌを抌すだけでは「defaults」以倖の候補も衚瀺されおしたうのだ。

入力補完機胜は、長々ずしたパスを入力するずきにも倧いに圹立぀。たずえば、cdコマンドの匕数に「/System/Library/CoreServices」を䞎えるずしおみよう。タヌミナルに䞍慣れなナヌザがこれを正確に入力するのは苊痛を䌎うが、入力補完機胜を知っおいれば「/S」-TAB-「L」-TAB-「Cor」-TAB、わずかこれだけのキヌ入力で28文字からなるパスを入力できおしたう。もちろんcd以倖のコマンドでも利甚できるし、日本語ファむル名にも察応しおいるので、入力が面倒なずきはずりあえずTABキヌ、ず芚えおおこう。

コマンドの綎りに自信がない堎合は、数文字を入力しお「TAB」キヌを抌すず、先頭が䞀臎するコマンドが候補ずしお衚瀺される