shellコマンド（自分用メモ）①

#shellコマンド まとめ
##操作系

- <b>cd</b>　→　cdコマンドはフォルダを移動するコマンド

```
$ cd フォルダ名（ディレクトリ）
```


- <b>ls</b>　→　lsコマンドは、入れ物の中身を全て表示するコマンド

```
$ ls 
```

- <b>diff</b>　→　ファイル同士を比べる

```
$ diff ファイル1 ファイル2
```

- <b>su - </b>　→　rootユーザーに切り替える　　（shellマーク　bash → $,　zsh・csh → %）

```
$ su -　　　　と入力するとshマークが　＄　から　＃　に変わる
```

- <b>sudo</b>　→　suコマンドが用意されていないディストリビューションの場合はsudoコマンドを使う。別のユーザーとしてコマンドを実行する。

```
$ sudo
```

- <b>exit</b>　→　ターミナルを閉じるコマンド

```
$ exit
```

- <b>man</b>　→　マニュアルを表示する

```
$ man 使い方を知りたいコマンド名
```
　
##プロセス関係

- <b>pstree</b>　→　プロセスの親子関係を分かりやすく表示する

```
$ pstree
```
- <b>top</b>　→　リアルタイムで動くプロセスの状況を確認するコマンド。終了したい場合は、キーボードのqキー（大文字で言えばQキー）を押す

```
$ top
```
- 　<b>|　</b>　→　【パイプ】と言い、前のプロセスの結果を次のプロセスに渡すためのもの
- <b>grep</b>　→　何かしらの結果から、特定のキーワードが含まれた行だけを表示する

```
$  ls | grep ruby  　 ←　lsコマンド の中から"ruby"と名のついた物を探す
ruby　　　　　　　　　　 ←　検索結果
```
 

- <b>less</b>　→　パイプと一緒に使い、スライドして表示結果を全て見る事が出来る

```
$ ls | less
``` 

- <b>kill</b>　→　プロセスを強制終了する

```
$ kill プロセス番号
``` 
　
##ファイル作ったり、ダウンロードしたり、削除したり、移動したり

- <b>wget</b>　→　画像や動画、音楽などダウンロードする　（http:// 〜〜〜.png ）

```
$ wget ダウンロードしたいもの
``` 
 

- <b>adduser</b>　→　使っているOSに別のユーザーを追加する（ root権限でないと出来ない ）

```
# adduser      →　add(加える) ＋ user
```
 

- <b>userdel</b>　→　一般ユーザーを削除する（root権限でないと出来ない）

```
# userdel -r 削除したいユーザーのユーザー名　　→　-r はオプション  ・ user + del 【delete（消す）】
```

- <b>mkdir</b>　→　ディレクトリを作成するコマンド　

```
$ mkdir 新しく作るディレクトリのディレクトリ名　　　　→　make + directory
```

- <b>touch</b>　→　空ファイルを作成するコマンド

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

- <b>mv</b>　→　ファイルを移動させるコマンド（ moveと言う意味 ）　・名前も変えられる

```
① $ mv 移動させたいファイル 移動先
② $ mv 名前を変えたいディレクトリのディレクトリ名 好きな名前のディレクトリ名
```

- <b>cp</b>　→　ファイルやディレクトリのコピーを行う

```
① $ cp コピーしたいファイル コピー先
② $ cp -R コピーをしたいディレクトリ 好きな名前のディレクトリ
# オプションの　-R をつける。中のファイルも一緒にコピーされる。
```

- <b>rm</b>　→　ファイルやディレクトリの削除を行う　（ removeと言う意味 ）

```
① $ rm 削除したいファイル名
② $ rm -R 削除したいディレクトリ名
# オプションの -R をつける。中のファイルも一緒に削除される。
```
- <b>file</b>　→　何のファイルなのか調べるコマンド

```
① $ file ファイル名
② find 検索を開始するディレクトリ -name ファイル名
```

- <b>locate</b>　→　高速検索が出来るコマンド
　データベースからの検索なので、最初に使うときはデータベースの更新が必要。
 `$ sydo /usr/libexec/locate.updatedb`とすれば仕様可
 `# updatedb`でも可。データベースに変更があった場合は更新しておく。

```
$ locate パターン
```
　

##aptitudeシリーズ
- <b>aptitude search</b>  →　パッケージを検索する

```
$ aptitude search 検索したいパッケージ名
```
- <b>aptitude show</b>  →　検索したパッケージの中で詳しい情報を表示

```
$ aptitude show パッケージ名
```
`＊ 情報の検索や詳細は一般ユーザーでもできるが、インストールや削除、更新はrootユーザー権限が無ければ行えない`
su - か sudo をして

- <b>aptitude install</b>  →　パッケージのインストール

```
# aptitude install パッケージ名
```
- <b>aptitude remove</b>  →　パッケージの削除

```
# aptitude remove パッケージ名
```
- <b>aptitude update</b> / <b>aptitude safe-upgrade</b>  →　パッケージ全体の更新
 
```
# aptitude update
# aptitude safe-upgrade
```
　
##アドレス系

- <b>lwp-request</b>  →　ウェブサーバーに情報をリクエストするコマンド

```
$ lwp-request 要求先のアドレス
```

- <b>nslookup</b>  →　DNSサーバーに問い合わせてホスト名からIPアドレス。または逆にIPアドレスからホスト名を検索するコマンド

```
$ nslookup ホスト名またはIPアドレス
```

- <b>whois</b>  →　ドメイン名、またはIPアドレスからドメインの情報を取得するコマンド

```
$ whois ドメイン名またはIPアドレス
```

- <b>ifconfig</b>  →　プライベートIPアドレスを検索するコマンド（ root権限でないと出来ない ）

```
# ifconfig
```

- <b>ping</b>　→　アドレスからそのアドレス先のIPを調べる

```
$ ping アドレス
```

- <b>traceroute</b>　→　リモートホスト名（アドレス）のドメインにたどり着くまでのネットワークの経路を示す。

```
$ traceroute リモートホスト名（アドレス）
```
　
##参考
https://www.garunimo.com/program/linux/