はじめに
Linuxってなんなのか
OSの一種
コンピュータを動かすためのソフトでWindows、Mac OS X、AndroidもOSです
サーバー、組み込み、デスクトップ用と幅広い用途で使われている
特徴
・オープンソース
・世界中で使われているので信頼性が高い
・品質が高く多くのソフトウェアが使える
・自動化の仕組みによりサーバーの運用がしやすい
など幾つもの特徴があります。
欠点
・商用アプリケーション、Microsoft Officeが動作しない
・日本語対応されていない
Linuxの基礎用語
カーネル
OSの中核となるソフウトウェアでコンピュータのハードウェア制御などを行う
ディストリビューション
Linuxを使う上で必要なプログラムをまとめて簡単にインストールできるようにしたもの
1000種類以上ある
シェルとはなんなのか
LinuxのCLIを提供するソフトウェアでユーザーとカーネルの仲介をしている
機能
- ユーザーがプロンプトにコマンドを打つ
→ 入力されたコマンドを理解し、実行 - シェルが入力された名前のコマンドを探す
→ カーネルが見つかったコマンドを実行 - シェルが結果を画面に表示
種類
sh
最も古いシェルでほぼ全てのUnixで利用可能な標準的なシェル
機能は少ない
bash
shを基本としており機能を拡張されたシェル
Linux環境でデフォルトのシェル
zsh
bashの機能も取り込んでおり、独自の機能も追加されている
機能が豊富
Linuxのディレクトリ
ディレクトリの役割
/bin
一般ユーザ及び管理ユーザが使用可能なコマンドの実行ファイルを格納
特にLinuxの動作に最低限必要な極めて重要なコマンドを格納している
/dev
デバイスファイルを格納している
/etc
設定ファイルを格納している
Linuxの自体の設定やLinuxで動作するアプリケーションの設定ファイルなどを格納している
/home
ホームディレクトリが配置されている
ユーザーはホームディレクトリ内に自由に作成可能
/sbin
管理者ユーザー向けのコマンド実行ファイルを格納している
/tmp
一時的なファイルを格納している
/usr
各アプリケーションとそれに付随するファイルを格納している
/var
変化するデータを格納している
ログを格納
パス
ディレクトリやファイルの住所情報
・絶対パス
「/」ルートディレクトリから始まる確実なパス表記のこと
どのディレクトリにいてもパスを指定できる
例: 「/home/work/README.md」
・相対パス
カレントディレクトリ(現在いるディレクトリ)から始まるパス表記のこと
現在いるディレクトリが変わると利用できない(指定ができない)
例: 「../work/README.md」
具体的なコマンド
cd
ディレクトリに移動するコマンド
「.」カレントディレクトリ(現在自分がいるディレクトリ)
「..」親ディレクトリ(1つ上の階層のディレクトリ)
「~」ホームディレクトリ(「/home/ユーザー名」ディレクトリ)
「/」ルートディレクトリ(「/」ディレクトリ)
pwd
今いるディレクトリを表示するコマンド
ls
ファイルやディレクトリの一覧を表示するコマンド
書式:ls[option][file]
*オプションとはハイフンになにかの記号をつける形の引数のこと
option | |
---|---|
-l | ファイルの詳細を表示する |
-a | 隠しファイルも含めて全て表示する |
-F | ファイル種別を表示 |
mkdir
ディレクトリを作成できるコマンド
option | |
---|---|
-p | 指定されたディレクトリの上位ディレクトリも作成する |
rmdir
ディレクトリを削除できるコマンド
空ディレクトリしか削除できない。
option | |
---|---|
-p | 指定した階層までのディレクトリを一括で削除する |
Linuxのファイル操作
具体的なコマンド
cat
ファイルの中身を表示するコマンド
1画面に表示
option | |
---|---|
-n | 行番号を表示する |
less
ファイルの中身をスクロール表示するコマンド
長いファイルを見たい時に使う
・ファイル操作
command | |
---|---|
space or f | 一画面下へスクロール |
b | 一画面上にスクロール |
j | 一行下にスクロール |
k | 一行上にスクロール |
q | lessコマンドの終了 |
tail
ファイルの最後の数行を出力してくれるコマンド
option | |
---|---|
-c | 出力する文字数を指定 |
-n | 出力する行数を指定 |
-q | ファイル名を表示しない |
-v | ファイル名を常に表示 |
-f | ファイルの追記を監視 |
touch
新規の空のファイルを作成するコマンド
上書きしないから安全
rm
ファイル・ディレクトリを削除するコマンド
*ゴミ箱に行かずに削除されるから注意
option | |
---|---|
-r | ディレクトリも合わせて削除 |
-f | 警告文を表示せずに削除 |
-i | ファイル削除前に確認 |
mv
ファイルの場所移動・ファイル名を変更する。
option | |
---|---|
-i | 上書きする前に確認 |
-r | 強制実行 |
cp
ファイル・ディレクトリをコピーするコマンド
option | |
---|---|
-i | 上書きする前に確認 |
-r | ディレクトリをコピーする |
ln
長いパス名を省略したい時に使うコマンド
ファイルに別名をつけることをリンクを貼るという
・ハードリンク
1つのファイルの実態に複数の名前をつける
元のファイルを削除しても消えない
・シンボリックリンク
リンク先のパス名が書かれたファイル(ショートカットのようなもの)
ファイルの実体を削除したり、移動するともちろん参照できなくなる
option | |
---|---|
-s | シンボリックリンクを貼る |
オプションをつけないとハードリンクになる
find
ファイルを検索するコマンド
option | |
---|---|
-name | ファイル名を指定して検索(大文字小文字は区別する) |
-iname | ファイル名を指定して検索(大文字小文字は区別しない) |
-type | ファイルの種類で検索 |
-a | 複数の検索条件を指定(-aは省略可能) |
標準入出力
プログラムが特に何も指定されていない場合に利用するデータの標準的な入出力元
・標準入力
キーボードが通常使われる
・標準出力
ディスプレイが通常使われる
・標準エラー出力
エラーメッセージを出力
ディスプレイが通常使われる
リダイレクト
入出力先を変更する機能
出力とエラー出力は別
OSが識別するために用いる識別子
入出力 | 数値 |
---|---|
標準入力 | 0 |
標準出力 | 1 |
標準エラー出力入力 | 2 |
・出力とエラー入力をまとめる
2>&1
・リダイレクトで追記
大なり (>)を用います。
ファイルに追記したい場合はアペンド (>>)を用います。
パイプライン
複数のコマンドを連携させる機能
コマンドの標準出力を別のコマンドの標準入力に繋げる
$ ls /bin | less
パイプラインで繋げてスクロール表示できるようにする
grep
ファイルの中からデータを検索
| grep
とすることで入力されたデータに対して検索を行うことが可能
パーミッション
ファイルやディレクトリを「だれがどのように操作可能なのか」を決めているもの
ファイルにはオーナーとグループが設定されている
・オーナー:ファイルの所有者
・グループ:ユーザーをグループに所属させてグループに権限を与える
ls -l コマンドでファイルのオーナーとグループが確認可能
chmod
ファイルやディレクトリのパーミッションを設定するコマンド
ファイルのモードとして【読み込み・書き込み・実行】の3つの権限がある
chown
ファイルの所有者を変更するコマンド
sudo
管理者権限を持つ特別なユーザー
ルートユーザー
コマンドの前につけると実行できる
プロセス
実行中のプログラムのこと
コマンドを1つ実行すると新しいプロセスが1つ生成される
OS全体で統一して管理される
ps
実行中のプロセスを表示するコマンド
option | |
---|---|
aux | 全ユーザーのプロセスを表示 |
*オプションだけど - をつけなくてよい
ジョブ
まとめて実行されるプロセスの集まりのこと
シェルごとに管理される
kill
ジョブやプロセスを終了させるコマンド
シグナルを送信するコマンド
さいごに
ここにまとめたのは基本のコマンドについてです。
教科書でのinputも必要ですが、普段からターミナルを使ったりLinuxの試験をうけることでより深掘りできると思います。