よく使うUNIXコマンド

#操作共通

まず、どのコマンドにも共通するテクニックをご紹介します。
それは、help 機能です。

どのようなコマンドであっても、そのコマンドの後に -- help と続けて入力することで、その具体的な利用方法が表示されます。

例えば、mvコマンドの使い方がわからなかった場合

```
sh-3.2# mv -- help
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
```

あるいは、省略して

```
sh-3.2# mv -- h
usage: mv [-f | -i | -n] [-v] source target
       mv [-f | -i | -n] [-v] source ... directory
```

という形で使い方を表示してくれます。また、これだけではよくわからない場合、manコマンドで

```
man 調べる語句
```
と入力すると、その説明が表示されます。例えばmvの場合・・・

```
sh-3.2# man mv
```

```
NAME
     mv -- move files

SYNOPSIS
     mv [-f | -i | -n] [-v] source target
     mv [-f | -i | -n] [-v] source ... directory

DESCRIPTION
     In its first form, the mv utility renames the file named by the source operand to the destination path named by the target operand.  This form is assumed when the
     last operand does not name an already existing directory.

     In its second form, mv moves each file named by a source operand to a destination file in the existing directory named by the directory operand.  The destination
     path for each operand is the pathname produced by the concatenation of the last operand, a slash, and the final pathname component of the named file.

     The following options are available:

     -f      Do not prompt for confirmation before overwriting the destination path.  (The -f option overrides any previous -i or -n options.)

     -i      Cause mv to write a prompt to standard error before moving a file that would overwrite an existing file.  If the response from the standard input begins
 command [-pVv] command [arg ...]   compgen [-abcdefgjksuv] [-o option
 complete [-abcdefgjksuv] [-pr] [-o continue [n]

-省略-

：
```
Berkeley Software Distribution License

のように、詳しく使い方を表示してくれます。終了するときは、最後の：の後にqと入力します。

```
:q
```

これを使うことで、大抵の使い方はわかるようになるでしょう。(manで出てこないコマンドもあります。）

次に、よく使うコマンドと、特に知っておきたいコツについてご紹介します。


##cdコマンド 
change directory　の略で、現在のワーキングディレクトリ（カレントディレクトリ）を変更します。

### cdコマンド（ディレクトリを指定しない素のコマンドの動作）

```
cd
```
ディレクトリを指定せずに「cd」のみで実行すると、ホームディレクトリ(Terminalを開いた時に、一番最初に表示されているディレクトリ）に移動することができます。

### 指定したディレクトリに移動したいときの、cdコマンド

```
cd /home
```
指定したディレクトリに移動します。

### ディレクトを遡るcdコマンド
```
cd ..
```
一つ上のディレクトリに移動します。

##lsコマンド 
list segmentsの略で、ファイルやディレクトリの情報を表示します。

### 表示
lsだけだと、フォルダ・ファイル名だけ表示されます

```
sh-3.2# ls
Applications		Downloads		Music
Desktop			Library			Public
```

-ls を追加すると、その権限や容量やタイムスタンプまで見ることができます。

```
sh-3.2# ls -ls
 0 drwx------@   4 username  staff    128  4  5 13:02 Applications
 0 drwx------+  53 username  staff   1696  5  8 18:21 Downloads
 0 drwx------+   4 username  staff    128  4  9 11:11 Music
 0 drwx------@   4 username  staff    128  5  8 18:21 Desktop
 0 drwx------@  71 username  staff   2272  4  7 22:16 Library
 0 drwxr-xr-x+   7 username  staff    224  5  8 16:46 Public
```

##pwdコマンド 
present working directory　の略で「今作業しているディレクトリ」という意味です。
現在のディレクトリを絶対パスで表示することができます。

### 表示

```
sh-3.2# pwd
/Users/username
```

##catコマンド 
concatenate(連結すること)の略で、ファイルを連結させたり表示したりするのに用います。

### ファイルの表示

```
cat ファイル名
```

#ファイル操作
### ファイルの作成
touchコマンドは、ファイルの最終更新日を変更するコマンドです。 
ただ、よく使うのはファイルを作成するときで、新しいファイルを作成する機能だと覚えている人も多いと思います。

「touch ファイル名」でtouchコマンドを実行した時間がファイルの最終更新日となります。 
指定したファイルがない場合は、サイズが「0」のファイルが作成されます

```
touch ファイル名 
```


##mvコマンド 
move の略で、ファイルやディレクトリを移動したり、リネーム（ファイル名を変更する）したりするコマンドです。
「mv ファイル 移動先ディレクトリ」とすると、ファイルが指定したディレクトリに移動されます。 
異動先にファイル名まで指定した場合は、「ファイルからファイルへの移動＝リネーム」となります

### ファイル・ディレクトリの移動

```
mv ディレクトリ名 移動先のディレクトリ名
```

### ファイル名を変更する
```
mv ファイル名 新しいファイル名
```
##cpコマンド
copy　の略で、ファイルをコピーする際に利用するコマンドです。
 「cp コピー元 コピー先」のように指定すると、ファイルをコピーすることができます。
コピー先に「ディレクトリ」を指定した場合は、指定したディレクトリにコピー元と同じ名前のファイルが作成されます。

### ファイルのコピー

```
cp コピーするファイル名 新しいファイル名
```

##cpコマンド 
### ディレクトリのコピー

```
cp -r コピーするディレクトリ名 新しいディレクトリ名 
```
注意： -r をつけずにディレクトリをコピーしようとすると、エラーが出力され、コピーは実行されません。

##rmコマンド
remove　の略で、ファイルやディレクトリを削除するコマンドです。

### ファイルの削除

```
rm ファイル名 
```

### ディレクトリの削除

```
rm -r ディレクトリ 
```



注意： -r をつけずにディレクトリをコピーしようとすると、エラーが出力され、コピーは実行されません。

## コマンドの特性
+ 過去に実行したコマンドは、上矢印キー「↑」で入力することができる。
+ ファイルやフォルダがあると、頭文字を入力してTabキーを押すと入力補完される