Categories: UNIX

Macを使い始めたらとりあえずは覚えたい12のUNIXコマンド

Mac の使い始めに ターミナル を立ち上げる機会が増え時に毎回 UNIX コマンドを調べている方もいらっしゃると思い、よく使う12個の コマンド をまとめておきました。どれも簡単なのでサクっと覚えてしまいましょう!

環境

  • Mac OS X El Capitan
  • zsh (Mac付属のターミナルならばなんでも良いです)

この投稿のゴール

  • 基本的な UNIX コマンドを叩けるようになるよ

ターミナルが叩けるようになると..

  • モテる

Mac OSX Yosemite でターミナルを起動してみる

アプリケーションフォルダの「ユーティリティ」内にターミナルはいるよ

構文

基本的には「コマンド」「オプション」「引数」を「半角スペース」で区切った組み合わせで構成されるよ。組み合わせの例として

  • コマンドのみ
  • コマンド + オプション
  • コマンド + 引数
  • コマンド + オプション + 引数

が挙げられるよ。実際にはパイプという機能を使い、あるコマンドの出力結果を他のコマンドの入力として利用したりして、上記の組み合わせだけにとどまらないこともあるけれど基本は上記のパターンを基本としておさえておこう。

また、4つ目の組み合わせ「コマンド + オプション + 引数」に於いて「オプション」と「引数」は必ず「オプションが先」になることも覚えておこうね。

実行は、入力後に Enter キーを操作することで実行が始まるよ

画面の説明

ウィンドウの見た目はもうちょっと地味目かもしれないけど、デフォルトの設定では以下の様な文字が出てくるよ

各文字列や、記号は以下のとおり

  • Chrowa3 は ユーザー名
  • WEBYAIN は マシン名
  • ~ は 作業ディレクトリ(※)
  • $ はプロンプトといって、システムが入力を待機している状態を示す記号

※ 作業ディレクトリとは、現在参照している場所を示していて、例えばデスクトップならばこの部分は「Desktop」となるよ。~(チルダ)に関しては次項で説明

絶対パスと相対パス(と~について)

作業ディレクトリを示す部分では、~(チルダ)や、/(スラッシュ)の「記号」で示す場所や、単純に Desktop などの「文字列」で示す場合があるよ。

/(スラッシュ)で表すのは「ルートディレクトリ」で UNIX 系 OS では最上位のディレクトリを示し、Windows でいう C:¥ みたいなイメージ

この /(スラッシュ)から指定したパスは「絶対パス」と呼ばれ、最上位からのファイルやディレクトリの指定になるよ。下図でいう root から辿ってくイメージ

これに対し、相対パスは .(ピリオド)や ..(ピリオド x2)で表し、「.」はカレントディレクトリ(作業ディレクトリ:現在のディレクトリ)を示し、「..」では、一つ上の階層(ペアレントディレクトリ)を示すよ。

上図でいうと、たとえば Chrowa3 にいる状態で「.」は Chrowa3 を示し、「..」は Users を示すことになるんだ。

ちなみにさっきからちょいちょい出てくる ~(チルダ)は、ホームディレクトリを示すよ。ターミナルを立ち上げた直後は Chrowa3 がカレントディレクトリとなり、他の場所にいる場合でも ~(チルダ)に移動すれば Chrowa3 に移動することができるんだ

pwd (print working directory)

作業(カレント)ディレクトリを出力

$ pwd

pwdは「現在の作業ディレクトリ」をルートディレクトリからのパスの形で出力します

[Chrowa3@WEBYAIN WEBYA]$ pwd
/Users/chrowa3/Desktop/WEBYA

cd (change directory)

作業(カレント)ディレクトリの変更

$ cd [Target]

pwdコマンドをいろいろな場所で試す為にも、ディレクトリの移動が出来るようになりたいところだよね。ディレクトリの移動には cd コマンドを使うよ

引数には「ルートディレクトリからの位置を指し示す絶対パス」や「現在の作業ディレクトリからの位置を指し示す相対パス」で指定するよ

[Chrowa3@WEBYAIN ~]$ cd /Users/chrowa3/Desktop/WEBYA
[Chrowa3@WEBYAIN dphp]$ pwd
/Users/chrowa3/Desktop/WEBYA

[Chrowa3@WEBYAIN WEBYA]$ cd ../../../..
[Chrowa3@WEBYAIN /]$ pwd
/

tab補完

bashでは補完対象が一つに絞り込める場合は、コマンドやパスの入力途中でtabキーを押すと入力補完が行われるよ。もし一つに絞り込めない場合は、もう一度tabキーを押すと入力した文字の時点での入力候補がリスト表示されるよ。

ls (list segments)

ファイルの一覧を出力

$ ls [option]

これまでのコマンドで、現在の作業ディレクトリを確認することや作業ディレクトリの変更をおこなえるようになったね。

しかし何かしらの操作をしたいディレクトリに「何が存在するのか、作業ディレクトリをどこに変更するのか」がわからないと操作のしようがないよね。そこで ls コマンドを用いてファイルの一覧を出力し、作業する対象のファイルやディレクトリを見つけるよ

ls コマンドにはファイル名やディレクトリ名などの一覧を表示するだけではなく、様々なオプションをつける事によって表示内容を変えることが出来ます。ここではよく使うようなオプションを纏めてみた

オプション 説明
-a 隠しファイルを含めたファイル全て表示
-l ファイルの詳細も表示
-F ファイルタイプを表す記号をつけて表示
※ディレクトリにはファイル名の最後に/(スラッシュ)がつく
-R サブディレクトリの中身も表示

※ オプションは ls -al の様に複数指定することもできます

chmod (change mode)

ファイルモードを変更

$ chmod [option] アクセス権 [fileName/dirName]

chmod ではパーミッションの設定 を変更することができるよ。パーミッションとは「ファイルやディレクトリに対してのユーザやグループが持つ権限」のことでこの設定によって行える操作が変わってくるんだ。

このパーミッションの設定を行うためにもパーミッションについて基礎的な知識が必要となるので軽めに説明するよ。

まずは、パーミッションの確認なんだけど、ls コマンドで l オプションを指定し、ファイル・ディレクトリの詳細な一覧を表示。

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

この ls -l で表示される内容は以下のとおり(左から)

  • ファイルの種類とパーミッション
  • ディレクトリ数もしくはハードリンク数
  • 所有者とグループ
  • 容量
  • 更新時刻
  • ファイル名(シンボリックリンクの場合はリンク先)

パーミッションは一番左側の「-rw-r–r–」や「drwxr-xr-x」です。最初の一文字目は「ファイルの種類」を示しているよ。「-」はファイルを、「d」はディレクトリを、「l」(エル)はシンボリックリンクを示しているよ。

2文字目から10文字目の9文字はパーミッションを示しているよ。パーミッションは9文字で表し、3文字ずつで1セット、このセットが3セットあるとして考えるんだ。

この3文字1セットの組み合わせは、左側から「User(所有者)」「Group(グループ)」「Other(その他のユーザー)」といったように各ユーザーに対しアクセスの制限を設定することができるんだ。

上図 a の通り、この3文字のセットはそれぞれ「r(readable)」「w(writable)」「x(executable)」「-(not permitting)」の意味を持つよ。また、パーミッションは文字以外でも数字で表すこともできるよ。上図 f はその数字の持つ意味を表しているよ。

実際に chmod にてパーミッションを変更する場合、引数に上記の記号や数値を渡すよ。たとえば文字で設定する例として =(イコール)を使って設定することもできます。下記例では、所有者(u)に対し、r(readable)、w(writable)、x(executable)の3つを与えます。それ以外は何も記述しないことによる「不許可」を設定しているよ。

[Chrowa3@WEBYA WEBYAIN]$ chmod u=wrx,g=,o= a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rwx------ 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

次は、+(プラス)記号を使った設定例。+r とすると全てのユーザーに、r(readable)を与えるよ

[Chrowa3@WEBYA WEBYAIN]$ chmod +r a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-r--r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

慣れるまで大変だけどすぐ慣れるよ!数値での設定も慣れちゃえばすごく便利。

数字での設定は、r(readable)を 4 、w(writable)を 2 、x(executable)を 1 、-(not permittingnot permitting)を 0 といった意味を持つよ。これらを足した数値を使い3桁で表すんだ。例えば、User(所有者)に、r と w を与え、それ以外を不許可にする場合は、4+2で6。それ以外は 0 なので 600 になるよ。以下、例を幾つか紹介するよ。

全部不許可

[Chrowa3@WEBYA WEBYAIN]$ chmod 000 a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
---------- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

全部許可

[Chrowa3@WEBYA WEBYAIN]$ chmod 777 a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rwxrwxrwx 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

全てのユーザーに読み込みと実行権限を与え、所有者のみに書き込み権限も与える

[Chrowa3@WEBYA WEBYAIN]$ chmod 755 a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rwxr-xr-x 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

全てのユーザーに読み込み権限を与え、所有者に書き込み権限も与える

[Chrowa3@WEBYA WEBYAIN]$ chmod 644 a.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

例えばディレクトリに全部不許可にしてみた場合に cd で移動しようとすると下部サンプルの様に「Permission denied」と表示されアクセスできません。

[Chrowa3@WEBYA WEBYAIN]$ chmod 000 hoge
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
d--------- 5 chrowa3 staff 170  6 15 01:04 hoge

[Chrowa3@WEBYA WEBYAIN]$ cd hoge
-bash: cd: hoge: Permission denied

各種オプション

オプション 説明
-f パーミッションの変更できないファイルを指定してもエラーが発生しないようにする。変更自体は行われない
-R 対象をディレクトリにした時に、その中に含まれるファイルやディレクトリ全てもパーミッションを変更させる

mkdir (make directory)

ディレクトリを作成する

$ mkdir [option] dirName

mkdir でディレクトリを作成できるよ。作成時には「パーミッションの設定」や「サブディレクトリを含むディレクトリの作成」も同時に行えるオプションを設定することもできるよ。

-p オプションでは「サブディレクトリを含むディレクトリの作成」をするよ。

[Chrowa3@WEBYA WEBYAIN]$ ls -al
total 0
drwxr-xr-x   4 chrowa3 staff  136  6 15 01:04 .
drwx------+ 32 chrowa3 staff 1088  6 14 22:15 ..
-rw-r--r--   1 chrowa3 staff    0  6 15 01:04 a.txt
drwxr-xr-x   5 chrowa3 staff  170  6 15 01:04 hoge

[Chrowa3@WEBYA WEBYAIN]$ mkdir -pv a/b/c/d
mkdir: created directory ‘a’
mkdir: created directory ‘a/b’
mkdir: created directory ‘a/b/c’
mkdir: created directory ‘a/b/c/d’

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
drwxr-xr-x 3 chrowa3 staff 102  6 15 01:16 a
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

-m オプションではディレクトリの作成と同時にパーミッションを設定を行うよ。

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
drwxr-xr-x 3 chrowa3 staff 102  6 15 01:16 a
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge

[Chrowa3@WEBYA WEBYAIN]$ mkdir -m 000 zzz
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
drwxr-xr-x 3 chrowa3 staff 102  6 15 01:16 a
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge
d--------- 2 chrowa3 staff  68  6 15 01:17 zzz

rm (remove)

ファイルやディレクトリを削除する

$ rm [option] fileName

オプションを指定しなければ基本的にはファイルの削除コマンドです。オプションを指定すればディレクトリも削除することができるよ。

rmdir というディレクトリを削除するコマンドありますが、空のディレクトリしか削除できないのに対し、rm は ディレクトリが空でなくても削除することができるので便利なんだ。

[chrowa3@dphp dphp]$ ls -l
total 0
drwxr-xr-x 3 chrowa3 staff 102  6 15 01:16 a
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge
d--------- 2 chrowa3 staff  68  6 15 01:17 zzz

[chrowa3@dphp dphp]$ rm -rf a
[chrowa3@dphp dphp]$ ls -l
total 0
-rw-r--r-- 1 chrowa3 staff   0  6 15 01:04 a.txt
drwxr-xr-x 5 chrowa3 staff 170  6 15 01:04 hoge
d--------- 2 chrowa3 staff  68  6 15 01:17 zzz

ワイルドカードついて

次項で説明する find コマンドなどで利用するワイルドカードやメタキャラクタについて触れておくよ。通常、find コマンドに於いては扱えるワイルドカードは以下のとおり。

find で扱えるメタキャラクタ

メタキャラクタ 説明
? 任意の一文字
* 任意の文字列
[…] ブラケット内の任意の一文字
[^…] ブラケット内の文字以外の一文字
{…,…} カンマで区切られた文字列のうちのどれか

grep や sed で扱えるメタキャラクタ

メタキャラクタ 説明
. 任意の一文字
* 直前の文字0回以上の繰り返し
^ 行頭
$ 行末
[…] ブラケット内の任意の一文字
[^…] ブラケット内の文字以外の一文字
+ 直前の文字1回以上の繰り返し
? 直前の文字 0個 or 1個
{n} 直前の文字 n個の繰り返し
{n,} 直前の文字 n個以上の繰り返し
{,m} 直前の文字 m個以下の繰り返し
{n,m} 直前の文字 n個以上、m個以下の繰り返し
patternA|patternB  patternA もしくは patternB に一致
 (pattern)  パターンのグルーピング。キャプチャも可能

find

ファイルやディレクトリを検索する

$ find [option] [parameter]

find コマンドでは、条件に応じたファイルやディレクトリを検索することができるよ。条件は複合的に指定することもでき、以下のような条件を指定することができるよ(抜粋)

  • 日付
  • ファイル名
  • アクセス権
  • ファイルサイズ
  • ファイルタイプ
  • ユーザー名、グループ名

このポストではよく使うであろう、ワイルドカードを使ったファイルの検索と、更新日を指定した検索をご紹介

更新日で探す例

更新日で探すには -mtime オプションを指定するよ。日付で探すオプションは他にも -atime(最後にアクセスされた時刻)、-ctime(ファイルのステータスが最後に変更された時刻)があるよ。

これらの日付で探す際にはオプションの後に「日数」を指定します。FreeBSD では時刻や分、秒まで指定できるのでかなり詳細な指定が可能。

日付の指定には以下の様な方法があるよ。「この一週間で操作したファイルなんだよな~」ですと -7 を指定し、「一週間以上は経ってんだよなー」ですと +7 を指定するイメージ。

指定 説明
n 数日前のその日
+n 数日前以上前
-n 数日前以降

ではサンプル。以下のディレクトリででは、touch コマンドでタイムスタンプを一日ずつずらしたテキストファイルを用意してみた。

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 0
-rw-r--r-- 1 chrowa3 staff 0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff 0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff 0  6  9 00:00 c.txt
-rw-r--r-- 1 chrowa3 staff 0  6  8 00:00 d.txt
-rw-r--r-- 1 chrowa3 staff 0  6  7 00:00 e.txt
-rw-r--r-- 1 chrowa3 staff 0  6  6 00:00 f.txt

[Chrowa3@WEBYA WEBYAIN]$ find . -mtime -6 -ls
7727879 0 drwxr-xr-x 8 chrowa3 staff 272  6 15 01:58 .
7807303 0 -rw-r--r-- 1 chrowa3 staff   0  6 11 00:00 ./a.txt
7807410 0 -rw-r--r-- 1 chrowa3 staff   0  6 10 00:00 ./b.txt

[Chrowa3@WEBYA WEBYAIN]$ find . -mtime +6 -ls
7807412 0 -rw-r--r-- 1 chrowa3 staff 0  6  8 00:00 ./d.txt
7807413 0 -rw-r--r-- 1 chrowa3 staff 0  6  7 00:00 ./e.txt
7807414 0 -rw-r--r-- 1 chrowa3 staff 0  6  6 00:00 ./f.txt

[Chrowa3@WEBYA WEBYAIN]$ find . -mtime 6 -ls
7807411 0 -rw-r--r-- 1 chrowa3 staff 0  6  9 00:00 ./c.txt

ワイルドカードを使ってファイルを探す例

find コマンドで一番良く使うのが「ワイルドカード」を使ったファイル検索だと思います。ファイル名に .txt が含まれるファイルを探し出し、検索されたファイルに対して ls コマンドを実行する例をご紹介。

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff 0 6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff 0 6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff 0 6 9 00:00 c.txt
drwxr-xr-x 6 chrowa3 staff 204 6 15 02:05 hoge
-rw-r----- 1 chrowa3 staff 247597 6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff 99420 6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684 6 6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ find . -name "*.txt" -exec ls -al {} \;
-rw-r--r-- 1 chrowa3 staff 0 6 11 00:00 ./a.txt
-rw-r--r-- 1 chrowa3 staff 0 6 10 00:00 ./b.txt
-rw-r--r-- 1 chrowa3 staff 0 6 9 00:00 ./c.txt
-rw-r--r-- 1 chrowa3 staff 0 6 8 00:00 ./hoge/d.txt
-rw-r--r-- 1 chrowa3 staff 0 6 7 00:00 ./hoge/e.txt
-rw-r--r-- 1 chrowa3 staff 0 6 6 00:00 ./hoge/f.txt

メタキャラクタを利用するときの注意点として、文字列をダブルクォーテーション(”)で囲う必要があるということを忘れないでね。

この処理の結果として hoge ディレクトリ内の .txt も探してきてくれています。検索結果に対し指定したコマンドを実行するには -exec オプションを使うよ。

この例では ls コマンドを使っていますが、最後に {} \ ; と謎の記号があります。{} は 検索でヒットしたファイル名に置き換えられるだけだよ。-exec オプションは ;(セミコロン)を終端としますが、; はキチンとエスケープしないと bash に思わぬ解釈をされてしまうので気をつけてね。

※余談ですが、ls だったら -exce を使わなくとも -ls と指定することも出来るよ

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 c.txt
drwxr-xr-x 6 chrowa3 staff    204  6 15 02:05 hoge
-rw-r----- 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ find . -name "*.txt" -ls
7807303 0 -rw-r--r-- 1 chrowa3 staff 0  6 11 00:00 ./a.txt
7807410 0 -rw-r--r-- 1 chrowa3 staff 0  6 10 00:00 ./b.txt
7807411 0 -rw-r--r-- 1 chrowa3 staff 0  6  9 00:00 ./c.txt
7807412 0 -rw-r--r-- 1 chrowa3 staff 0  6  8 00:00 ./hoge/d.txt
7807413 0 -rw-r--r-- 1 chrowa3 staff 0  6  7 00:00 ./hoge/e.txt
7807414 0 -rw-r--r-- 1 chrowa3 staff 0  6  6 00:00 ./hoge/f.txt

各種オプション(抜粋)

オプション 説明
-atime 最後にアクセスされた時間と比較
-ctime 最後にステータスが変更された時間と比較
-mtime 最後に更新された時間と比較
-name ファイル名を指定して検索
-type ファイルタイプを指定して検索
-size ファイルサイズを比較して検索
-user ファイルの所有者を指定して検索
-group ファイルのグループを指定して検索
-exec 検索結果ほ他のコマンドに引き渡す
-newer 基準となるタイムスタンプを持つファイルと更新日時を比較して検索
-print 条件にマッチしたファイルの名前を表示する
-perm アクセス権(8進数)で比較して検索

grep

テキストファイルの中から正規表現に一致する行を検索して出力

$ grep [option] [pattern] [target]

grep ではファイル内の文字列をあいまい検索してくれるコマンドだよ。探したい文字列を正規表現で指定しその一覧を出力してくれる超便利ツール

次のサンプルの正規表現としては「^Siz{2}le」で次の文字列にマッチします。

  1. 先頭文字が S
  2. 次に i
  3. 次に z
  4. z が 2回繰り返される、いわゆる「zz」にマッチ
  5. 次に l
  6. 次に e

結果は以下のとおり

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 c.txt
drwxr-xr-x 6 chrowa3 staff    204  6 15 02:05 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ grep -rn "^Siz\{2\}le" .
./jquery.js:1395:Sizzle.matches = function( expr, elements ) {
./jquery.js:1399:Sizzle.matchesSelector = function( elem, expr ) {
./jquery.js:1428:Sizzle.contains = function( context, elem ) {
./jquery.js:1436:Sizzle.attr = function( elem, name ) {
./jquery.js:1457:Sizzle.error = function( msg ) {
./jquery.js:1465:Sizzle.uniqueSort = function( results ) {

各種オプション(抜粋)

オプション 説明
-i 大文字・小文字の区別をしない
-n 行番号も出力
-r 検索対象をファイルではなく、ディレクトリにした場合に指定したディレクトリ配下全てのテキストファイルを捜査する

cp(copy)

ファイルやディレクトリの複製をつくる

$ cp [option] [source] [target]

source がコピー元、targetがコピー先です。よく使うオプションは以下のとおり

各種オプション(抜粋)

オプション 説明
-f コピー先に既に同名のファイルがあったとしても、ユーザへの確認無しにコピーが行われる(厳密にはコピー先のファイルの削除を試みる)
-i コピー先に同名のファイルがあった場合に、ユーザへの確認を行う
-r ディレクトリを再帰的にまるごとまるっと複製したいときはこのオプション

サンプルです

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 c.txt
drwxr-xr-x 7 chrowa3 staff    238  6 15 10:01 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ cp c.txt ./hoge
[Chrowa3@WEBYA WEBYAIN]$ ls -l hoge
total 0
-rw-r--r-- 1 chrowa3 staff 0  6 15 10:02 c.txt
-rw-r--r-- 1 chrowa3 staff 0  6  8 00:00 d.txt
-rw-r--r-- 1 chrowa3 staff 0  6  7 00:00 e.txt
-rw-r--r-- 1 chrowa3 staff 0  6  6 00:00 f.txt

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 c.txt
drwxr-xr-x 7 chrowa3 staff    238  6 15 10:01 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

mv(move file)

ファイルやディレクトリを移動(同一ディレクトリに別名で移動すれば名称変更に)

$ mv [option] [source] [target]

source が移動する元ファイル(ディレクトリ)で、target 移動先での名前になるよ。移動先がディレクトリの場合は名前はそのままに移動するよ。

各種オプション(抜粋)

オプション 説明
-f 移動先に既に同名のファイルがあったとしても、ユーザへの確認無しに上書きが行われる
-i 移動先に同名のファイルがあった場合に、ユーザへの確認をおこなう

ファイル名変更の例

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 c.txt
drwxr-xr-x 7 chrowa3 staff    238  6 15 10:01 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ mv c.txt changeC.txt
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 changeC.txt
drwxr-xr-x 7 chrowa3 staff    238  6 15 10:01 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

パスを指定してファイルを移動する例

[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 changeC.txt
drwxr-xr-x 7 chrowa3 staff    238  6 15 10:01 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ mv b.txt ./hoge
[Chrowa3@WEBYA WEBYAIN]$ ls -l
total 628
-rw-r--r-- 1 chrowa3 staff      0  6 11 00:00 a.txt
-rw-r--r-- 1 chrowa3 staff      0  6  9 00:00 changeC.txt
drwxr-xr-x 8 chrowa3 staff    272  6 15 10:06 hoge
-rwxr-xr-x 1 chrowa3 staff 247597  6 14 22:14 jquery.js
-rw-r--r-- 1 chrowa3 staff  99420  6 14 23:52 logo.png
-rw-r--r-- 1 chrowa3 staff 288684  6  6 07:43 score.pdf

[Chrowa3@WEBYA WEBYAIN]$ ls -l hoge
total 0
-rw-r--r-- 1 chrowa3 staff 0  6 10 00:00 b.txt
-rw-r--r-- 1 chrowa3 staff 0  6 15 10:02 c.txt
-rw-r--r-- 1 chrowa3 staff 0  6  8 00:00 d.txt
-rw-r--r-- 1 chrowa3 staff 0  6  7 00:00 e.txt
-rw-r--r-- 1 chrowa3 staff 0  6  6 00:00 f.txt

history

シェルへの入力履歴を表示する

$ history

各種オプション(抜粋)

オプション 説明
-c 履歴をクリア
-r 逆順に表示

まとめ

他にも沢山の UNIX コマンドはありますが、さしあたり且つ簡単なやつばかりを纏めてみたよ。特に find コマンドは突き詰めていけばより凝った使い方もできるので各人で研究してみるといいかもね!これでチミもモテモテだ!

chrowa3

Share
Published by
chrowa3

Recent Posts

ざっくり ECMAScript 2020

ざっくりと ES2020 のお…

3年 ago

ざっくり ECMAScript 2019

ざっくりと ES2019 のお…

3年 ago

ざっくり ECMAScript 2018

ざっくりと ES2018 のお…

3年 ago

ざっくり ECMAScript 2017

ざっくりと ES2017 のお…

3年 ago

ざっくり ECMAScript 2016

ざっくりと ES2016 のお…

3年 ago

ざっくり ECMAScript 2015

ざっくりと ES2015 のお…

3年 ago