2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Linuxについて[概要とコマンド]

2
Last updated at Posted at 2021-10-11

Linuxとは

UNIXから派生してつくられたられた基本ソフトウェア(OS)

Linuxの仕組み

ソフトウェアは基本ソフトウェアと応用ソフトウェアに分かれるが、
基本ソフトウェアはさらに2つの領域に分かれる

カーネル

OSの中核部分
ハードウェア(PCなど)と直接やりとりするなど中心的な役割を受け持ち、
ハードウェアが違っても、プログラムが同じように動作するよう働く

ユーザランド

OSが動作するのに必要なカーネル以外の部分
ファイルシステムやファイル操作コマンド、シェルなどの基本的なソフトウェア群を指す

このようにカーネル、ユーザランドそしてハードウェアをまとめて広義のLinux
カーネルを狭義のLinuxと呼ぶ

Linuxの操作

基本的にコマンド操作でありユーザランドで動作する

LinuxにX Windows SystemとGNOME、KDE、Xfceなどデスクトップ環境を導入する
とマウス入力による操作が可能となる

シェルとは

対話型コマンド入力環境で入力されたコマンドを理解し実行する
大きく2つの機能があり、

  • コマンド入力を受け付けること

  • シェルスクリプトの実行

    シェルスクリプトとはコマンド入力を自動化するためのもので、1つのファイルに
    コマンドを1行ずつ記述する。

    作成したシェルスクリプトを実行することで、コマンドの実行を自動化する。

ディストリビューション

Linuxをインストールするためのプログラムをまとめたものでこれを使うと簡単に
インストールが可能となる

ディストリビューター

ディストリビューションを開発する団体

Canonical(Red Hat,Debian,Projectを開発)が代表的なLinuxディストリビューターで

様々な団体からLinuxはリリースされ続けている

パッケージ

LInuxに追加機能を提供するもの

応用ソフトウェアを簡単に追加できるよう、ディストリビューターがパッケージを作り提供している

パッケージマネージャ

応用ソフトウェアを導入する場合、関連した応用ソフトウェアやライブラリが必要な場合があり、

依存したソフトウェアがさらに別の応用ソフトウェアに依存しているとなると、正しいインストールや
保管が必須となる。

また、バグの修正や改善などの更新が行われる場合は古いバージョンを削除し、新しいバージョンを
インストールするなど、これら操作は非常に困難で手間もかかる。

これら作業を簡単に行えるためのものがパッケージマネージャであり、Linuxディストリビューションには
必ず用意されている。

これでインターネットにつながっている限り最新の状態を容易に導入・更新できる。

LinuxのDL

DLに必要なもの

LinuxをDLするためにはディストリビューションであるCent OSをインストールする

Cent OSはインストール用DVDを用意してそこに入れる

  • マシン本体
    いわゆるパソコン
    VirtualBoxなど仮想環境でCent OSをインストールすれば元のOSは消去されない

  • 実装メモリ

  • DVD光学ドライブ
    Cent OSの公式HPが配布しているISOファイルをDLし、Cent OSをインストールする

※ISOファイルとは
要はCDやDVDなどの中身を1つにまとめたファイルのこと

これをイメージファイルなどと呼ぶ。

  • ハードディスク
    Linuxをインストールするためには約10GBの空きが必要
    また、Linuxはハードディスクを初期化してインストールされるので、ハードディスクをクリアにしていいもの、
    もしくはバックアップを取ってから作業を開始する

  • キーボード、マウス、ディスプレイなど周辺機器

Linuxのコマンド

ファイル操作

ファイル

文書や画像などのデータをコンピュータ上に保存するための形式

ディレクトリ

複数のファイルをまとめたもの

ファイルやディレクトリの参照

ls

ファイル名やディレクトリ名を指定し情報を取得する

例えばディレクトリ名を指定した場合、その中にあるファイルやディレクトリ名の
一覧を取得できる

例)$ ls 
ダウンロード デスクトップ ビデオ 画像
テンプレート ドキュメント 音楽 公開

ちなみに*や?をワイルドカードとして使うこともできる

記号 意味 内容
* 任意の文字列を表している ls*.conf confで終わるファイルがリスト表示される
? 1個につき1文字を示す ls hosts.???? hosts.denyのように4文字で終わるファイルが表示される

ls [オプション] [ファイル]

オプションとは

コマンドにオプションをつけることで動作を変えることができる

lsオプション

 オプション  意味
-a .で始まるファイル等全て(all)表示される
-l 長(long)形式で出力
-t 最終更新時間(time)によってソートを出力
-r 逆順(reverse) にソートをして出力

オプション部分はまとめて使ったり、さらに順不同で入れ替えて表示しても同じ結果となる

$ ls-la
$ ls-al
$ ls-l-a
$ ls-a-l

上記は全て同じ意味

ただし、コマンドによっては順序と文法が細かく決まっているものもある

cp [オプション] コピー元 コピー先

$ cp src-file dst-file
  • どちらもファイル名の場合
    src-fileのコピーとしてdst-fileを作成している

  • dst-fileがディレクトリの場合
    src-fileファイルのコピーがdst-fileディレクトリの下にコピーされる

  • cpオプション

オプション 意味
-i ファイルの上書きコピーするなどコンピュータが確認のため問い合わせをする誤って上書きするのを防ぐ
-r ディレクトリ内にある全ファイル•ディレクトリに対しコピーを行う
-p 元ファイルの情報を保存するなど古い情報を保持したままコピーを作成したい場合に使う

mv 移動元ファイル 移動先ファイル

移動元ファイルを移動先ファイルに移動することができる
また、名前の変更も可能

  • mvオプション
オプション 意味
-i ファイルの上書きコピーするなどコンピュータが確認のため問い合わせをし、誤って上書きするのを防ぐ
-f mvは一部の処理を確認のため問い合わせするがそれを無視し、強制処理を行う

rm ファイル名

作成ファイルを削除する

  • rmオプション
オプション 意味
-i ファイルの上書きコピーするなどコンピュータが確認のため問い合わせをし、誤って上書きするのを防ぐ
-f 一部の処理を確認のための問い合わせを無視して強制処理する
-r ディレクトリ内にある全ファイル•ディレクトリを削除する

ディレクトリの操作

pwd

階層構造となっているディレクトリにおいて、現在どの階層にいるのかを表示する

例)
$ pwd
/home/penguin

現在homeディレクトリの中のpenguinディレクトリにいるという意味
/ はディレクトリの区切りを示している

cd [ディレクトリ名]

現在いるディレクトリを変更することができる
cdの後にディレクトリを指定しない場合は、ホームディレクトリに移動する

mkdir [ディレクトリ名]

  • mkdirオプション
        ディレクトリの作成を行う
オプション 意味
-p 指定されたディレクトリの上位ディレクトリを作成する
$ mkdir -p dir1/dir2/dir3

dir1にはdir2が作られ、dir2にはdir3が作られる

rmdir [ディレクトリ名]

ディレクトリの削除を行う

削除する際はディレクトリ内は空でなければいけない

  • rmdirオプション
オプション 意味
-p 指定した階層までのディレクトリを一括削除
このコマンドがない場合は最下層のディレクトリのみ削除される

特別なディレクトリ

記号 名前 意味
. カレントディレクトリ 現在いるディレクトリ
.. 親ディレクトリ 1階層上のディレクトリ
~ ホームディレクトリ ユーザの作業開始位置となるディレクトリ
/ ルートディレクトリ ディレクトリ階層の最上位

絶対(パス)指定と相対(パス)指定

  • 絶対(パス)指定
    最上位のディレクトリ(/)からディレクトリ•ファイル名を指定すること
/use/bin/XXX
  • 相対(パス)指定
    現在自分がいる位置から見てディレクトリ•ファイルを指定
../bin/XXX

ファイルの内容を表示

  • cat ファイル名
オプション 意味
-n 行番号を付加して表示できる

more ファイル名 と less ファイル名

catコマンドによりファイル内容を表示しても行数が多いと表示が流れてしまう

大体の場合、25行で設定されているので、これを超えると確認ができない

その時に画面制御を行なってスクロールを止めてくれる機能をページングといい、
それを実現するコマンドをページャという

代表的なページャに
moreとlessがある

* moreコマンド

項目 内容
スペース 次のページに進む
b 前の1画面に戻る
f 次の1画面に進む
/単語 単語を検索しnキーで検索結果にジャンプ
q ページャコマンドを終了
  • lessコマンド
項目 内容
スペース 次のページに進む
b 前の1画面に戻る
f 次の1画面に進む
前の行に進む
次の行に進む
/単語 単語を検索しnキーで検索結果にジャンプ
q ページャコマンドを終了

find パス -name ファイル名

ファイルがどこのディレクトリに存在するのか検索できる

例)
find /etc/-name hosts
find:~/etc/pki/CA/private`:許可がありません
...
...
...

/etc/hosts
/etc/avahi/hosts

これは/etc配下にあるhostsという名前のファイルを検索している

また、findはパスで指定した配下の全てのディレクトリを検索するので、
許可がないものについては一般ユーザには権限が与えられていないため、
適切な権限を持ったユーザへ切り替えが必要

コマンドのパス

コマンドの実態もプログラムである

プログラムもファイルの一種であり、/binや/sbinなどプログラム用のディレクトリに配置されている
PATHという環境変数にプログラムが配置されているディレクトリが設定されている

  • which コマンド名

コマンドのパスを調べるためのコマンド
ただし、PATH環境変数に含まれていないとエラーとなる
これは管理者権限が必要なコマンドへのパスは一般ユーザでは設定されていないためwhichコマンドでは
確認できないから

例)
$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/linuxtext/bin

$ which cat
/bin/cat

上のコマンドではユーザが参照できるパスを確認しており
下のコマンドでcatコマンドが/bin配下に配置されていることがわかる
PATH環境変数内に/binが存在しているのでエラーは表示されない

ヘルプ

  • コマンド --help

コマンドの実行に使えるオプションを調べることができる

例)
$ ls --help
使用法:ls [オプション]...[ファイル]...
説明文がくる...

長いオプションに必須の引数は短いオプションにも必須です
-a, --all          説明文...
-A, --almost-all   説明文...

マニュアル

  • man コマンド名

Linuxにはオンラインマニュアルが含まれている

オプション 意味
-k 単語が含まれるエントリ一覧を出力
例)
$ man lS
LS(1)                                 LS(1)                                                  
 名前
        ls,dir,vdir-ディレクトリの中身を表示する
 書式
        ls [OPTION]...[FILE]
 -l     ファイルのモード・リンクの数・所有者名・グループ名・(バイト単位の)サイズ・タイムスタンプ・
         名前を(1 列形式で)書き出す。
         ...以下、説明文...
        

コマンドのマニュアルを調べることで名前、書式等やオプションの情報の他に

  • 説明
         

プログラムに関する説明

  • POSIX/GNUオプション
      プログラムで利用可能なオプション
  • 関連項目
      関連するコマンドや他機能について
  • 注意
      注意事項やバグの報告先などの情報が書かれてている

などが表示される

セクション

マニュアル内容を分野ごとに分け指定したもの
lSのマニュアル内にあるLS(1)というのはISのマニュアルがセクション1にあるという意味

マニュアルのセクション

項目 内容
1 ユーザコマンド
2 システムコール
3 システムライブラリや関数
4 デバイスやデバイスドライバ
5 ファイルの形式
6 ゲームやデモなど
7 その他
8 システム管理系のコマンド
9 カーネルなどの情報
例)
$ man passwd

関連項目
          group(5),passwd(5),shadow(5)

passwdコマンドのマニュアルを検索し、読み進めていくと、関連項目が出てくる
「セクション5にpasswdというエントリがあり参照できる」という意味

例)
$ man 5 passwd
PASSWD(5)          File Formats and Conversions          PASSWD(5)
NAME
         passwd - the password file

実際にセクション5のpasswdのエントリを見るにはこのようにコマンドする
同じエントリでも複数のマニュアルが表示された場合は、セクションを変更して
参照できる

標準入出力

Linuxのプログラムには、「1つの入り口と2つの出口」があり、
それぞれ

  • 標準入力
    プログラムに入っているデータのことで、標準入力先は一般的にはキーボード

  • 標準出力
    プログラムの実行結果を書き出す先のことを示し、
    標準出力は一般的にはプログラムを実行した端末のディスプレイ

  • 標準エラー出力
    エラーメッセージを書き出す先のことを示し、
    標準エラー出力は一般的にはプログラムを実行した端末のディスプレイ

lsとコマンドを打った場合、カレントディレクトリのファイルとディクトリの一覧が画面上に表示される

このようにコマンドを実行した結果が画面上に表示されることを
標準出力に出力されたと表現する

リダイレクト

リダイレクト >

コンソールに標準出力された文字列はリダイレクトを使ってファイルに書き込むことができる

例)
$ ls > ls-output

リダイレクトコマンドを実行すると、ls-outputというファイルが作成され、lsを実行したときと同じ内容が含まれる
出力先を変更しファイルに出力を格納することができる

アペンド >>

すでにls-outputが存在しているときは、前のls-outputが削除されて新しいls-outputが作成されるので、
上書きせず追記したい場合はアペンドを使う

catコマンドとリダイレクト

内容表示に使うcatコマンドでもリダイレクトを使うことで、自由な内容で
ファイルを作成することができる

例)
$ cat > cat-output
Hello
This is cat redirect.
(「Ctrl」Dを押す)
$

cat-outputファイルの中にHello This is cat redirect.を出力

Linuxではデータの読み込みが最後になると、「Ctrl」DはEOF(End OfF ile)を示すキーで、
データ入力の終わりを示す

標準エラー出力

例)
$ ls -l tekitou > ls-l-output(tekitouというディレクトリ内の詳細出力をlsloutputにリダイレクト)
ls: cannot access tekitou: そのようなファイルやディレクトリはありません
(tekitouというディレクトリが見つからなかったというエラーメッセージ)

tekitouというディレクトリが存在しなかった場合、「そのようなファイルやディレクトリはありません」
というエラーメッセージが標準出力される

例)
$ ls -l tekitou 2 > ls-l-output(エラー出力をls-l-outputにリダイレクト)

コマンド中で指定している"2"は、標準エラー出力を示しており、エラーメッセージは画面に現れず、
指定したファイルに出力される
標準出力は"1"を指定

例)
$ ls -l tekitou > ls-l-output
second 2 > &1

標準出力と標準エラー出力を1つのファイルに出力したい場合はこのように入力する

パイプ

$ ls – l/usr/bin

例えばこの入力では、画面にファイル一覧が流れるが、/usr/binにはコマンドが
1000以上あるのですべてのコマンドを画面に表示しきれない

そこで

$ ls – l/usr/bin|less

コマンドとコマンドを「|(パイプ)」でつなぐことにより、パイプの前のコマンドを後ろのコマンドの標準出力とすることができる
lessコマンドをつなぐことで、ページング表示できるようになる

grep

ファイルの中からデータを検索する
「| grep」とすることで標準入力から入ったデータに対して検索可能となる

grep [オプション] 検索条件 [指定ファイル]

指定ファイルは1つでも複数でもOK

例)
$ grep abc /etc/*

/etc/services:abcvoice-port   3781/tcp

/etc ディレクトリにあるファイルで abcという文字列を含むものを検索
している

 正規表現

高度な検索条件を与える表現方法

記号 意味
^ 行頭を表す
$ 行末を表す
. 任意の一字を意味する
* 直前文字の0回以上の繰り返しを意味する
[…] ..の中の任意の一字を意味する
[^…] ..の文字が含まれないことを意味する
|正規表現の記号をエスケープする

(使用例)

記号 意味
^a aで始まっている行
b$ bで終わっている行
a.b aとbの間に1文字入っている
[ab]ab aもしくはbに続くab(aab、bab)
[^ab]ab aもしくはbで始まらない(not)で、abが続くもの(例:xab、zab等)
例)
$ grep ^xy /etc/*

/etc/services:xyplex-mux   173/tcp

/etcディレクトリにあるファイルで行の先頭がxyで始まっているものを検索している

grepコマンド

オプション 意味
-a 文字列を検索パターンとして扱う
-i 検索パターンと入力ファイルの双方で、英大文字と小文字の区別を行わない
-v 検索パターンとマッチしなかった行を選択する
例)
$ grep –i hostname /etc/*

/etcディレクトリにある、大文字又は小文字のhostnameという文字列を含むファイルを検索

例)
$ grep abc /etc/*| grep –v tcp

/etcディレクトリにある、abcという文字列を含むが、tcpという文字列は含まないファイルを検索

例)
$ ls /usr/bin/ |grep –e d$

ファイル名がdで終わるファイルを/usr/binから検索
このように標準入力からの入力をマッチさせることもできる

参考書籍

『Linux標準教科書 v3.0.2』 LPI-Japan 2019年

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?