初学者向け卒業研究をしていてよく使ったLinuxコマンド10選
どうも、今回はLinux端末で色々な作業をしていていつの間にか身についていたLinuxコマンドを紹介していきます。いつの間にか身についていた…つまりは便利なコマンドたちということです。しかし玄人さんから見たら初歩コマンドばかりなので温かい目でどうぞ。さて、長ったらしい前置きはこのへんにして早速紹介していきます。
OS : Ubuntu 14.04 LTS
OS : Ubuntu 16.04 LTS
Contents
1. ファイルの中身を見る(cat,tail)
というわけで、まずは基本の基ということとで、ファイルの中身をみるコマンドです。ちょっとしたプログラムのコードやログを見るときいちいちエディタなんかを開いてはいられませんよね。というわけで、身についたのは以下の2つです。
1 2 |
$ cat [file_path] # ファイルの中身全部 $ tail [file_path] # ファイルの末尾からn行 |
“tail”とは逆にファイルの先頭を見る”head”というコマンドもありますが、使用頻度は”tail”程ではなかったので除外です。ちなみに、”tail”と”head”は”-n”というオプションを持たせることによって表示する行数を変えられるので、覚えておくと吉です。
2. ファイルを流し見る(tail -f)
さて、たったいま出てきた”tail”コマンドですが、実はログファイルを見るときにおすすめの機能があります。ログファイルのようなどんどん行が追加されていくようなファイルを見る際に”-f”というオプションをつけるだけで、行が追加されるたびにそれを表示してくれるという機能があるんです。文字に起こすと限りなく地味な機能に感じますが、バックグランドでプログラムを走らせている時など意外と便利です。
3. 特定の語が含まれる行だけ出力(grep)
では、次は渡された文字列内で特定の語が含まれる行だけを選んで出力してくれるコマンドです。これを知っていると設定がどうなっているのかコンフィグファイルを開いて頑張って探すなんて手間がちょとだけ省けるかもしれません。
1 |
$ cat [text] | grep [target_word] |
上記の例のように基本的にこのコマンドは単体では使いません。これは何かしらの出力(今回はcat)をパイプ(上記コマンド内の”|”)でつなぐことにより効力を発揮します。上記の例ですと、[text]内にある[target_word]という語が含まれた行だけを出力します。ここで出てきたパイプですが、慣れるとものすごく力強いのですが、最初は意味不明です。はじめのうちはつなげると効力を発揮するとだけふんわり理解しておけば良いのではないでしょうか。
4. 何行あるかをカウントしてくれる(wc -l)
次は渡されたテキストは何行なのかを数えてくれるコマンドです(正確にはもっと機能はありますが、自分は行数カウントしか使わないのでお許しを…)。これまた地味なコマンドですが、なぜか使用頻度はとても高かったです。というのも機能としては単純に何行か数えるだけなのですが、先程も出てきましたパイプを使うことによって効力を発揮します。
1 2 3 4 5 6 |
# テキストファイルは何行か? $ wc -l [text_file] # ディレクトリ内のファイルの個数は何個か? $ ls -l | wc -l # ある単語が含まれる行数は何行か? $ cat [txt] | grep [word] | wc -l |
3つ例を挙げてみましたが、組み合わせによって使い勝手はいくらでも向上します。ちなみに例に出てきた”ls”はディレクトリ内のファイル一覧を出力するコマンドです。
5. 無駄なものを(見かけ上)消去(clear)
さて、これは正直覚えていたところで実用性は限りなく低いのですが個人的にお気に入りのコマンドです。
1 |
$ clear |
このコマンドはその名の通り、端末の表示を消してくれるコマンドです。消してくれると言っても空行を追加するだけのようで、ファイルが削除されるなんてことはありませんのでご安心を。
6. バックグラウンド実行(&)
次は、プログラムをバックグラウンドで実行するコマンドです。…コマンドって言って良いのかは不明ですが、バックグラウンドで実行したいコマンドの最後に”&”をつけるだけです。例を載せてもしょうがないのですが、一応。
1 |
$ [command] & |
7. ログアウトしても実行し続ける(nohup)
SSHなんか遠隔操作している時、機械学習の学習のような実行時間が果てしなく長いプログラムでは、ずっと接続したままにしておくのは大変です。そこで、ログアウトしても実行させ続けさせるコマンドがこれです。使い方は簡単で、実行したいコマンドの前にこのコマンドをくっつけるだけです。
1 |
$ nohup [command] & |
自分はいつも、例のように最後に”&”をつけてバックグランドで実行しています。
8. 指定時間に自動的にコマンド実行(crontab)
ここで、すべてを説明するのは諦めますが、cronという指定時間にコマンドを実行する機能があります。このコマンドは、その機能の設定なんかを行うことができるのですが、スペースの都合上ここでは省略させてください。そのうちこれだけで一つ記事を書きます。
9. 必要なものをインストール(apt-get)
これはUbuntuを使っていたらおそらく避けては通れないコマンドでしょう。なにかしようと思ったらまずapt-getで環境を整えるという場合が多いと思います。さらに環境の更新やアップグレードなんかもこのコマンドで行うので、とても大事なコマンドの一つと言っても過言では無いでしょう。ちなみに、別のOSでは”yum”とか別のコマンドになるので、自身のOSにあったものを覚えておきましょう。
10. Python実行後にそのまま対話モード(python -i)
ここに載せるか悩みましたが、載せることにします。普段”python”だけで実行すると対話モードになりPythonが実行されます。またファイル名を持たせると、そのファイルのコードを実行して終了しちゃいます。コードが終わったらそのまま対話モードにしたい時がたまにあります(変数の中身を手動で見たい時とか)。そこで使うのが”-i”というオプションです。これをつけることによってコード実行後に変数やライブラリの環境そのままに対話モードに入ってくれます。すると、変数名を入れればその中身が出力されますし、関数の実行なんかも手動で行うことができるようになります。余談ですが対話モードを終えたいときは”quit()”とすれば大丈夫です。
おわりに
というわけで色々紹介しましたが自分が知らないだけで、この世にはもっと使えるコマンドはたくさんあると思います。みなさんも自分のタスクにあったコマンドを身につけて作業効率アップなんか狙ってみてください。