Nov20th

ターミナルの使い方 の変更点

Top / ターミナルの使い方


#contents
*ターミナルとは [#v83f1632]
MacOSのパソコンに最初から入っているアプリケーションです。
今でこそパソコンはアイコンをマウスでクリックするという視覚的にわかりやすいものになっていますが、その発明以前はキーボーのみで動かす代物でした。(正直世代じゃないのでまー聞きかじった話です)
ターミナル(Windowsにおいてはコマンドプロンプト)は、キーボードを通してパソコンを操作するための道具です。
いわば旧時代式でパソコンを使う方法です。
なんでまた古い方法でと思うかもしれませんが、マウスやアイコンを使ってPCを動かす方法は所詮後から現れたものです。
プログラミングの場合はファイル操作をかなり頻繁に行いますが、慣れてしまえばマウスでファイルエクスプローラーやfinderをポチポチするよりもターミナルやコマンドプロンプトを使った方がよほど速く開発ができます。
コマンドラインで使えるエディタ(vim、emacsなど)も同様にキーボードのみで動かせるので慣れればとても速くファイルの編集が出来ます。oで改行、vで選択、yでコピー、pでペーストとかです。
詳しい使い方は自分で調べてもらうとして、ここでは簡単なコマンドのみ書いておきます。試しに使って見て下さい。
*簡単な使い方 [#l3b06404]
以下に色々コマンドが出てきますが、コマンドの後にtabを2回押すと、候補となるファイルやディレクトリが一覧表示されて大変便利なので是非覚えておいて下さい。
あと、↑矢印キーを押すと直前に使ったコマンドが出てくるのでこれも覚えておきましょう。

*ゼッタイ覚えておきたいコマンド [#s0b6f63d]
**lsコマンド [#w4b1363b]
list segmentsの略。ターミナルにおけるlsはFinderでフォルダの中身を表示するのと同じです。
例えばtestフォルダにtest.txtが入っていると、FInderではこんな感じで表示されます。
&ref(スクリーンショット 13:05:18 21:55.png);
一方でターミナルでtestフォルダの中でlsコマンドをするとこんな感じに表示されます。
&ref(スクリーンショット 13:05:18 21:58.png);

**cdコマンド [#ia2673d8]
current directoryの略。ターミナルにおけるcdはFinderでフォルダをクリックしたり戻ったりするのと同じです。
つまり、自分のいる階層を移動するということです。
使い方は
cd 移動したいディレクトリ(フォルダ)名
こんな感じ↓
&ref(スクリーンショット 13:05:18 22:01.png);
ちなみに
cd -
とすると移動する前のディレクトリに
cd ..
とすると一つ上のディレクトリに
cd
とだけするとホームディレクトリに移動します。

**mvコマンド [#k89fcab3]
ファイルの移動が出来ます。
使い方は
mv 移動したいファイル 移動先のディレクトリ
です。

**cpコマンド [#nbcb099f]
ファイルのコピーができます。
cp コピーしたいファイル コピー先のディレクトリ

**rmコマンド [#hc6a6889]
ファイルの削除ができます。
mv 削除したいファイル

**mkdirコマンド [#w664690f]
ディレクトリ(フォルダ)の作成ができます。
mkdir ディレクトリ名

**findコマンド [#t1b500fc]
ファイルを検索できます。
find ディレクトリ名
(-nameというオプションをつけるとファイル名で検索が出来ます。)
find . -name "*.rb" 
とすると現在のディレクトリ以下で.rbと付くファイル(Rubyファイル)を検索して下さい、という意味になります。
ページの下部に書く応用編も是非一緒に覚えてください。

**historyコマンド [#l1b88710]
自分の入力したコマンドの履歴が見れる。

以上基本的なやつです。
*開発に使うコマンド/知っておくと便利なコマンドです。 [#re681c97]

**catコマンド [#b0c1e167]
ファイルの中身を表示させるコマンド。短いテキストファイルの中身を見たいだけの時などに使うといいです。

**wcコマンド [#l6d624a5]
ファイルの行数を表示するコマンドです。

**javacコマンド [#hd260bcd]
javaファイルをコンパイルするコマンド。javaの開発をコマンドラインで行う場合は必須。
javac ファイル名

**javaコマンド [#wc63fcf0]
javaファイルを実行するコマンド。
java 拡張子を抜いたファイル名

**curlコマンド [#d1157412]
httpリクエストのレスポンスを表示する。ウェブアプリ開発をしている時に使うことがあるかも。

**sshコマンド [#s253a0fe]
これは"ssh"でググってどういうものかを調べてみてください。自分以外のパソコンにログインするために使います。
リモート環境で開発をする時に使います。

**vimコマンド [#oc402acf]
コマンドっていうかvimというエディタを是非覚えてほしいです。別に項を作りたいと思います。

**超便利!findコマンドの応用編 [#c40b0e40]
|(パイプ)というのを使います。パイプを使うとコマンドの実行結果に対して更にコマンドを実行出来ます。
下に書くのを例文としてひとカタマリで覚えて下さい。

find ディレクトリ名 (必要なら -name "探しているファイル名") -print0|xargs -0 grep 検索文字

これはファイルの中に検索文字を含むファイルを一覧表示してくれます。
ある関数名を変更するだとか消すだとかの時に、その関数を呼び出しているファイルを探し出してくれるコマンドです。
アプリ制作などをしている時に管理しているファイルや行数が多くなった時に大変重宝します。

例:現在のディレクトリ以下のjavaファイルのうちでprintlnメソッドを呼び出しているファイルを検索する
find . -name "*.java" -print0|xargs -0 grep println

他にも便利なコマンドはいっぱいあるので調べて見て下さい〜^^

*番外編 ドヤ顔したい時におもむろに打ち込みべきコマンド [#f028080f]
**top [#g99011dd]
デフォルトだと5秒ごと?に今走っているプロセスを表示してくれます。メモリの使用量とかわかるので、本来はパフォーマンス
の監視に役立ちます。

俺「なかなか重いプロセスだな・・・」

友「ああ・・特にこの○△□番」

俺「どうだ?対応できそうか?」

友「さあな・・・・」

俺「おいおい・・・運用担当がそんな弱気でどうすんだよ」

みたいなシチュエーションでどうぞ。

**ping [#q7eb26fe]
サーバーの応答を確認するのに使う?のかな。落ちてるサービスを見つけた時に

「pingが通らない。。大統領に連絡しろ。」

とおもむろにつぶやきましょう。

**kill [#o2e935ae]
topやpsで確認したプロセスを番号指定して殺せるコマンドです。結構普通につかうのですが、
「お前は知りすぎた。。」
と言いながら打ち込むといつもと違う自分を演出できます。

*コマンドラインで使える便利なショートカット [#x9d5e106]
**移動系 [#a7eabe70]
ctrl+A カーソルをコマンド行の先頭に移動
ctrl+E カーソルをコマンド行の終端に移動
ctrl+F カーソルを前に進める
ctrl+B カーソルを後ろに進める

**その他 [#u787fe81]
ctrl+J Enterキーと同じ
ctrl+H バックスペースと同じ
ctrl+D deleteと同じ
ctrl+K カーソルより後ろの文字を削除(というか切り取り)
ctrl+P コマンド履歴を前に遡る(上矢印キーと同じ)
ctrl+N コマンド履歴を後ろに移動する(下矢印キーと同じ)
ctrl+R コマンド履歴を検索する
ctrl+C コマンド等強制終了

*screen [#ra48c359]
コマンドラインで使えるscreenという道具があります。
自分の使っているコマンドラインでscreenと打ってみて、コマンドが入っているか調べてみましょう。
細かい使い方は今度書きますが、これがあるとほぼホームポジションから手を動かさずに作業できるようになります。
積極的に出来るぶっていきましょう^^