久保清隆のブログ

ライフハック、健康、旅行など、役立つ情報を書きます。

Linux素人がLinuxを使えるようになるための基礎知識

今までLinuxは使う機会がなかったのでほとんど勉強してこなかったが、業務でLinuxを使いこなせた方が便利だし、最近は、Railsで有名な松田さんid:yuum3さんにコーチングをして頂いていて、Linuxを使えないとコーチングの進行に支障をきたすので、勉強することにした。

すでにcoLinuxがインストールされていてLinuxは使える状態にあるので、実務で使えるようになるため、まず手始めにコマンドとショートカットとディレクトリ構成を覚えようと思う。これを覚えておけばそれなりに使いこなせるかな。
歴史とか概要は後で気が向いた時に勉強する。

基本コマンド

基本的なコマンドの意味と書き方。この辺を知っておけば何とかなるかな。オプションまで使えるようになるとよりいいと思う。

ファイル操作
コマンド 動作内容
ls(list) ファイル名やディレクトリの一覧を取得。
ls ディレクトリ名
とするとディレクトリ内のファイルやディレクトリ一覧を取得。
オプション:-a=隠しファイルも表示。-l=詳細も表示。-t=更新時間によって並び替え。-r=逆順にする。
cp(copy) ファイルのコピー。
cp コピー元ファイル名 コピー先ファイル名
オプション:-i=処理を行う時に確認の問い合わせをしてくる。-f=強制的に処理を実行。-R=ディレクトリとその中身をコピー。-p=元ファイルの属性情報なども保持。
mv(move) ファイルを移動。同時にファイル名の変更も行える。移動先がディレクトリ名の場合、ディレクトリに入る。移動元がディレクトリ名の場合はディレクトリが移動する。
mv 移動元ファイル名 移動先ファイル名
オプション:-i=処理を行う時に確認の問い合わせをしてくる。-f=強制的に処理を実行。
rm(remove) ファイルを削除。
rm ファイル名
オプション:-i=処理を行う時に確認の問い合わせをしてくる。-f=強制的に処理を実行。-r=ディレクトリを対象にする。ディレクトリの中の、ファイルやディレクトリも削除。
cat(concatenate) ファイルの中身を表示
オプション:-n=行数を表示
more ページャ。
less ページャ。moreを拡張したもの。

ページャとは、ファイル内容が長すぎて表示が流れるのを防ぐために、ファイル内容が長くても画面制御を行ってスクロールを途中で止めるコマンドのこと。

  • ページャのコマンドを入力すると、以下のコマンドを使って操作ができるようになる。
j 1行下に移動
k 1行上に移動
スペース 1画面下に移動
b 1画面上に移動
/単語 単語を検索。nで検索結果をジャンプ
q ページャコマンドを終了
ディレクトリ操作
コマンド 動作内容
pwd 現在のディレクトリの表示
cd 現在いるディレクトリの変更
mkdir ディレクトリの作成。
mkdir ディレクトリ名
オプション:-p=多階層のディレクトリをまとめて作成。
mkdir -p dir1/dir2/dir3
rmdir ディレクトリの削除。ディレクトリの中にファイルがあると削除できない。中のファイルも消したい時はrm -rを使う。
rmdir ディレクトリ名
オプション:-p=ディレクトリの中にある、指定したディレクトリを消す。
rmdir -p dir1/dir2/dir3
  • カレントディレクトリ(.)
    • 現在いるディレクトリを指す。
  • 親ディレクトリ(..)
    • 一階層上のディレクトリ。
  • ホームディレクトリ(~)
    • ユーザの作業開始位置になるディレクトリ。ログインするとここにくる。
  • ルートディレクトリ(/)
    • ディレクトリ階層の一番上。
検索
コマンド 動作内容
grep ファイルの中からデータを検索する。
grep 検索条件 [指定ファイル]
検索条件には正規表現を用いる。
find ディレクトリツリーの中からファイルを探す。
find [パス] [オプション] [検索条件] [アクション]
find ~ -name '*.rb'
でhomeディレクトリにある*.rbファイルを検索。*はワイルドカード。要は全てってこと。
マニュアル

UNIXにはオンラインマニュアルがある。

man コマンド名
  • manコマンドから抜けるにはqを押す。
  • オプション

オプションとして、単語が含まれるエントリー一覧を出力できる。

-k 単語
  • マニュアルのセクション

マニュアルのセクションとは、マニュアルの内容をいくつかに分類したもの。
マニュアルを表示した時、コマンド名(番号)という表示がある。この番号の部分にあたる。
セクションには以下のような番号が付いている。

1 ユーザコマンド(誰でも実行可能)
2 UNIXのシステムコール(カーネルが提供する関数)
3 UNIXのシステムライブラリや関数
4 デバイスやデバイスドライバ(/dev ディレクトリのスペシャルファイル)
5 ファイルの形式
6 ゲームやデモ
7 その他
8 システム管理用のコマンド
9 カーネル系の情報
    • 使い方
man セクション番号 コマンド
パイプ

パイプを知っておくことは、Linuxを使いこなす上で大切。とても便利。
パイプとは、出力と入力をつなげること。
平たく言うと、コマンドを使って得られたデータを次のコマンドに渡すこと。
「|」という記号を用いる。
例えば、

ls /usr/bin | grep abc

とすると、user/binの中にあるファイルの中から、abcという文字列を含むものを検索する。

ショートカットキー

基本
ショートカット 動作内容
Tab コマンド、ディレクトリ名、ファイル名の自動補完(足りない文字を自動入力)
Ctrl + c 実行中のコマンドを停止
Ctrl + z 実行中のコマンドを一時停止(fgで再開)
Ctrl + p コマンドのひとつ前の履歴を呼び出す。(↑キー)
Ctrl + n コマンドのひとつ後の履歴を呼び出す。(↓キー)
Ctrl + r コマンドの履歴を検索
Ctrl + a 一文字目に移動(homeキー)
Ctrl + e 最後に移動(endキー)
Ctrl + f 右に移動
Ctrl + b 左に移動
Ctrl + k 現在のカーソル位置から末尾まで削除
Ctrl + d 一文字削除(delキー)
Ctrl + h 一文字削除(BackSpaceキー)
Ctrl + y 削除した文字を貼り付け
Ctrl + l 画面をクリア
Ctrl + s 画面表示を停止
Ctrl + q 画面表示を再開
Ctrl + d ログアウト
マニア
ショートカット 動作内容
Ctrl + Alt + Backspace Xが応答しなかったり、1つのプログラムのせいでデスクトップがフリーズして、何をやってもだめな時に使う。これを使えば、Xからログアウトし、ログイン画面に戻る。全デスクトップ環境とウィンドウマネージャで利用可能。
Ctrl + Alt + Delete あらゆる手段がダメでリブートしないといけない時、このショートカットですぐに再起動できる。全てのデータが失われるので注意。このショートカットは、全デスクトップ環境とウィンドウマネージャで利用可能。
Ctrl + Alt + F* 覚えておくと人によっては劇的に便利になる。仮想端末を切り替えるのに使う。デフォルトのターミナルは6番。従って、Ctrl + Altを押しながら、F1、F2、F3、F4、F5、F7などを押せば、他の仮想端末に切り替わる。ここで対象としているのは仮想端末なので、もしGUIを使っているなら、このキーはテキストベースのターミナルウィンドウの中でしか働かない。デスクトップ上でデバッグをしたり、Xを完全には落とさずにフリーズしたアプリケーションをkillしたい場合等に便利。
Alt + 矢印キー マウスをスクリーン端まで持って行く代わりに、Altと左矢印キーあるいは右矢印キーを同時に押すことで、デスクトップを切り替えることができる。この機能は、全デスクトップ環境とウィンドウマネージャで利用可能。

ディレクトリ構成

LinuxもWindowsと同様にディレクトリ構成があり、それぞれのディレクトリに意味があるので、それを知っておく必要がある。

  • / ルートディレクトリ
    • bin 必須バイナリコマンド群のためのディレクトリ
    • boot ブートローダ関連ファイル(起動時に必要なファイル)のためのディレクトリ
    • dev デバイスファイルのためのディレクトリ
    • etc システム固有の設定ファイルをおくためのディレクトリ
      • X11 X Window System用設定ファイルのためのディレクトリ
      • opt optディレクトリに追加したアプリケーション用設定ファイルのためのディレクトリ
    • home ユーザのホームディレクトリ
    • lib システムに必須となる共有ライブラリ群のためのディレクトリ
      • modules カーネルモジュール群のためのディレクトリ
    • mnt 一時的なマウントポイント用のディレクトリ
    • opt 追加アプリケーションのインストール先ディレクトリ
      • パッケージ名
    • root rootユーザ用のホームディレクトリ
    • sbin システム管理用バイナリコマンド群(init, reboot, fdisk, ifconfigなど)のためのディレクトリ
    • tmp 一次ファイルを置くためのディレクトリ
    • usr 様々なファイルを置くための二次的なディレクトリ
      • X11R6 X Window Systemバージョン11リリース6用ファイルのためのディレクトリ
      • bin ユーザが利用するコマンド群のためのディレクトリ
      • games ゲームプログラムや教育用バイナリを置くためのディレクトリ
      • include 一般的に使用されるインクルードファイルのためのディレクトリ
      • lib プログラミング用ライブラリのためのディレクトリ
      • local システム管理者がローカル用にファイルをインストールする時に使用するディレクトリ
      • sbin 非標準のシステム管理用バイナリコマンド群のためのディレクトリ
      • share アーキテクチャ依存データのためのディレクトリ
      • src ソースコードを置くためのディレクトリ
    • var ログなどの動的なデータを格納するためのディレクトリ
      • account アカウントのログを格納するためのディレクトリ
      • cache キャッシュデータを保存するためのディレクトリ
      • crash システムがクラッシュした際、ダンプデータを保存するためのディレクトリ
      • games ゲームプログラムの動的データを格納するためのディレクトリ
      • lib 動的な状態ステータス情報を保存するためのディレクトリ
      • lock ロックファイル群を保存するためのディレクトリ
      • log ログファイル群を保存するためのディレクトリ
      • mail ユーザ用のメールを格納するためのディレクトリ
      • opt /optディレクトリに格納した各アプリケーションの動的データを格納するディレクトリ
      • run 実行プロセスの動的データの格納ディレクトリ
      • spool スプールデータ群を格納するためのディレクトリ
      • tmp システムリブートでも残る一時退避ファイル
      • yp Network Information Service(NIS)のためのディレクトリ

UNIX系OSの特徴

ついでにLinuxの特徴についても。

ソフトウェアの分類

一般的に、ソフトウェアは以下のように整理できる。

  • 基本ソフトウェア(Operating System) Linux、Windowsなど
    • カーネル
      • ハードウェアの資源(機能、能力)を管理。コンピュータによってハードウェアに生じる様々な差異を吸収する。
    • ユーザランド
      • カーネルが提供してくれている環境の下で、応用ソフトウェアを動作させる。
  • 応用ソフトウェア(アプリケーションソフトウェア)
Linuxの特徴
  • Linuxは、狭義ではカーネルのこと、広義ではハードウェア、カーネル、ユーザランドのことを指す。
  • UNIX系OSでは、基本的にはコマンドで操作する(CUI)

※ X Window SystemというGUI環境もあり、マウスで操作することもできる。

  • UNIX系OSでは、利用開始時にログインする。
    • ログインしないと、利用許可を得られない。
    • ログイン名とパスワードの組み合わせをアカウントという。
  • UNIXには、対話型のコマンド入力環境があり、それをシェルと呼ぶ。
    • シェルは入力されたコマンドを理解し、実行する。

参考書籍・記事

UNIXコマンドリファレンスユーザー便利帳 (Quick master (05))

UNIXコマンドリファレンスユーザー便利帳 (Quick master (05))

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道


お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。

にほんブログ村 IT技術ブログ プログラム・プログラマへ人気ブログランキングへ Subscribe with livedoor Reader


◆◆このブログのサイトマップへ◆◆