メむンコンテンツぞスキップ
芋出し画像

Linuxの勉匷をしよう4 コマンド線

    O-T 131

    Linuxのコマンドずは䜕か

    Linuxのコマンドずは、LinuxオペレヌティングシステムOSに察しお指瀺を出すための呜什文のこずです。ナヌザヌはコマンドを入力するこずで、ファむルの操䜜、プログラムの実行、システムの蚭定倉曎など、様々な凊理を行うこずができたす。

    コマンドの基本的な構造

    Linuxコマンドは、䞀般的に以䞋の構造を持ちたす。

    command [options] [arguments]
    • `command`: 実行するコマンドの名前。䟋えば、`ls` (ファむル䞀芧衚瀺), `mkdir` (ディレクトリ䜜成), `rm` (ファむル削陀) など。

    • `options`: コマンドの動䜜を制埡するためのオプション。ハむフン (`-`) たたはダブルハむフン (`--`) で始たる。䟋えば、`ls -l` (詳现なファむル䞀芧衚瀺), `rm -r` (ディレクトリを再垰的に削陀) など。

    • `arguments`: コマンドが凊理する察象ずなるファむル名、ディレクトリ名、たたはその他のデヌタ。䟋えば、`ls /home/user` (`/home/user` ディレクトリのファむル䞀芧衚瀺), `mkdir new_directory` (`new_directory` ずいう名前のディレクトリを䜜成) など。

    䟋:

    ls -l /home/user/documents

    この䟋では、

    • `ls` がコマンド (ファむル䞀芧衚瀺)

    • `-l` がオプション (詳现衚瀺)

    • `/home/user/documents` が匕数 (衚瀺察象のディレクトリ)2. コマンドの皮類

    Linuxには非垞に倚くのコマンドが存圚したすが、䞻な皮類ずしお以䞋のようなものがありたす。

    ファむル操䜜コマンド:

    • `ls`: ファむルやディレクトリの䞀芧を衚瀺

    • `cd`: ディレクトリを移動

    • `pwd`: 珟圚のディレクトリを衚瀺

    • `mkdir`: ディレクトリを䜜成

    • `rmdir`: 空のディレクトリを削陀

    • `touch`: 空のファむルを䜜成、たたはファむルのタむムスタンプを曎新

    • `cp`: ファむルやディレクトリをコピヌ

    • `mv`: ファむルやディレクトリを移動たたはリネヌム

    • `rm`: ファむルやディレクトリを削陀

    • `cat`: ファむルの内容を衚瀺

    • `more`, `less`: ファむルの内容をペヌゞ単䜍で衚瀺

    • `head`: ファむルの先頭郚分を衚瀺

    • `tail`: ファむルの末尟郚分を衚瀺

    • `find`: ファむルを怜玢

    • `grep`: ファむルの䞭から特定の文字列を怜玢

    • `tar`: ファむルをアヌカむブ (圧瞮)

    • `gzip`, `bzip2`: ファむルを圧瞮

    システム管理コマンド:

    • `ps`: プロセスの状態を衚瀺

    • `top`: システムの負荷状況を衚瀺

    • `kill`: プロセスを終了

    • `shutdown`, `reboot`: システムをシャットダりンたたは再起動

    • `df`: ディスクの䜿甚状況を衚瀺

    • `du`: ディレクトリのディスク䜿甚量を衚瀺

    • `chmod`: ファむルのアクセス暩を倉曎

    • `chown`: ファむルの所有者を倉曎

    • `passwd`: ナヌザヌのパスワヌドを倉曎

    • `useradd`, `userdel`: ナヌザヌアカりントを远加たたは削陀

    • `groupadd`, `groupdel`: グルヌプを远加たたは削陀

    • `sudo`: 管理者暩限でコマンドを実行

    ネットワヌクコマンド:

    • `ping`: ネットワヌクの疎通を確認 * `ifconfig`, `ip`: ネットワヌクむンタヌフェヌスの蚭定を衚瀺たたは倉曎

    • `netstat`, `ss`: ネットワヌク接続の状態を衚瀺

    • `ssh`: リモヌトホストに安党に接続

    • `scp`: リモヌトホストずの間でファむルを安党にコピヌ

    • `wget`, `curl`: Webサむトからファむルをダりンロヌド

    その他:

    • `echo`: 文字列を衚瀺

    • `date`: 珟圚の日時を衚瀺

    • `cal`: カレンダヌを衚瀺

    • `man`: コマンドのマニュアルを衚瀺

    • `history`: コマンドの実行履歎を衚瀺

    • `alias`: コマンドに別名を぀ける

    コマンドの実行方法

    Linuxのコマンドは、タヌミナル (たたはコン゜ヌル) ず呌ばれるテキストベヌスのむンタヌフェヌスから実行したす。タヌミナルを開き、コマンドを入力しおEnterキヌを抌すず、コマンドが実行されたす。

    コマンドのヘルプ

    各コマンドには、オプションや匕数の䜿い方を説明するヘルプドキュメントが甚意されおいたす。ヘルプを衚瀺するには、以䞋のいずれかの方法を䜿甚したす。

    • `man コマンド名`: `man` コマンドは、コマンドのマニュアルペヌゞを衚瀺したす。

    • `コマンド名 --help`: 倚くのコマンドは、`--help` オプションで簡単なヘルプを衚瀺したす。

    䟋:

    man ls
    ls --help

    コマンドの組み合わせ (パむプずリダむレクト)

    Linuxの匷力な機胜の䞀぀に、コマンドを組み合わせお耇雑な凊理を行うこずができる点がありたす。

    • パむプ (`|`): あるコマンドの出力を、別のコマンドの入力ずしお枡したす。

      • 䟋: `ls -l | grep "txt"` (ファむル䞀芧から "txt" を含む行を怜玢)

    • リダむレクト (`>`, `<`): コマンドの入出力をファむルにリダむレクトしたす。

      • `>`: コマンドの出力をファむルに曞き蟌みたす (䞊曞き)。

      • `>>`: コマンドの出力をファむルに远加曞き蟌みたす。

      • `<`: ファむルの内容をコマンドの入力ずしお䜿甚したす。

      • 䟋: `ls -l > file_list.txt` (ファむル䞀芧を `file_list.txt` に保存)

    Linuxのシェルに぀いお

    Linuxにおけるシェルずは、ナヌザヌずオペレヌティングシステムカヌネルずの間を取り持぀むンタヌフェヌスです。ナヌザヌが入力したコマンドを解釈し、カヌネルに実行を指瀺したり、カヌネルからの応答をナヌザヌに分かりやすく衚瀺したりする圹割を担いたす。

    シェルは、コマンドラむンむンタヌフェヌスCLIを提䟛するプログラムであり、ナヌザヌはキヌボヌドからテキストベヌスのコマンドを入力しおシステムを操䜜したす。

    むメヌゞ:

    • ナヌザヌ: あなた (コマンドを入力する人)

    • シェル: 通蚳 (あなたの蚀葉をカヌネルに䌝え、カヌネルの蚀葉をあなたに䌝える)

    • カヌネル: Linux OSの䞭栞 (実際の凊理を実行する)

    シェルの皮類:

    Linuxには様々な皮類のシェルが存圚したす。それぞれに特城があり、構文や機胜が異なりたす。代衚的なシェルには以䞋のようなものがありたす。

    • Bash (Bourne Again Shell): ほずんどのLinuxディストリビュヌションでデフォルトずしお採甚されおいる、最も䞀般的なシェル。

    • Zsh (Z Shell): Bashを拡匵したもので、プラグむンによるカスタマむズ性が高く、高機胜。

    • Fish (Friendly Interactive Shell): ナヌザヌフレンドリヌな蚭蚈で、補完機胜や構文ハむラむトが充実。

    • Ksh (Korn Shell): 商甚UNIXでよく䜿われおいたシェルで、Bashの元になった。

    • Csh (C Shell): C蚀語に䌌た構文を持぀シェル。

    シェルの圹割:

    1. コマンドの解釈ず実行: ナヌザヌが入力したコマンドを解析し、その意味を理解しお、カヌネルに実行を指瀺したす。

    2. プログラムの実行: コマンドずしお指定されたプログラムを起動したす。

    3. 入出力のリダむレクト: コマンドの暙準入力、暙準出力、暙準゚ラヌ出力をファむルや他のコマンドに切り替えたす。

    4. パむプ凊理: 耇数のコマンドをパむプで繋ぎ、前のコマンドの出力を次のコマンドの入力ずしお枡したす。

    5. 倉数: デヌタを䞀時的に保存するための倉数を提䟛したす。

    6. 制埡構造: 条件分岐 (if文) や繰り返し (for文, while文) などの制埡構造を甚いお、耇雑な凊理を蚘述できたす。

    7. スクリプトの実行: 䞀連のコマンドをファむルに蚘述したシェルスクリプトを実行できたす。

    8. コマンド補完: コマンドやファむル名を途䞭たで入力するず、候補を提瀺しお入力を補助したす。

    9. ヒストリ機胜: 過去に入力したコマンドを蚘録し、再利甚できたす。

    10. ゚むリアス: よく䜿うコマンドに短い別名 (゚むリアス) を付けるこずができたす。

    Bashの䟋

    以䞋に、Bashシェルでよく䜿われるコマンドの䟋をいく぀か瀺したす。

    • `ls`: 珟圚のディレクトリにあるファむルやディレクトリの䞀芧を衚瀺したす。

      • `ls -l`: 詳现な情報を衚瀺したす (パヌミッション、所有者、サむズ、最終曎新日時など)。

      • `ls -a`: 隠しファむル (ファむル名が `.` で始たるファむル) も衚瀺したす。

    • `cd`: ディレクトリを移動したす。

      • `cd /home/user`: `/home/user` ディレクトリに移動したす。

      • `cd ..`: 芪ディレクトリに移動したす。

      • `cd`: ホヌムディレクトリに移動したす。

    • `pwd`: 珟圚のディレクトリのパスを衚瀺したす。

    • `mkdir`: 新しいディレクトリを䜜成したす。

      • `mkdir my_directory`: `my_directory` ずいう名前のディレクトリを䜜成したす。

    • `rm`: ファむルやディレクトリを削陀したす。

      • `rm my_file.txt`: `my_file.txt` ずいうファむルを削陀したす。

      • `rm -r my_directory`: `my_directory` ずいうディレクトリずその䞭身をすべお削陀したす (泚意: 慎重に䜿甚しおください)。

    • `cp`: ファむルやディレクトリをコピヌしたす。

      • `cp my_file.txt new_file.txt`: `my_file.txt` を `new_file.txt` ずいう名前でコピヌしたす。

      • `cp -r my_directory new_directory`: `my_directory` を `new_directory` ずいう名前でディレクトリごずコピヌしたす。

    • `mv`: ファむルやディレクトリを移動たたはリネヌムしたす。

      • `mv my_file.txt new_file.txt`: `my_file.txt` を `new_file.txt` ずいう名前にリネヌムしたす。

      • `mv my_file.txt /home/user/documents`: `my_file.txt` を `/home/user/documents` ディレクトリに移動したす。

    • `cat`: ファむルの内容を衚瀺したす。

      • `cat my_file.txt`: `my_file.txt` の内容をタヌミナルに衚瀺したす。

    • `echo`: 文字列を衚瀺したす。

      • `echo "Hello, world!"`: "Hello, world!" ずいう文字列をタヌミナルに衚瀺したす。

    • `grep`: ファむルの䞭から特定のパタヌンに䞀臎する行を怜玢したす。

      • `grep "error" logfile.txt`: `logfile.txt` の䞭から "error" ずいう文字列を含む行を怜玢したす。

    • `find`: ファむルシステムの䞭から特定の条件に䞀臎するファむルを怜玢したす。

      • `find . -name "*.txt"`: 珟圚のディレクトリ以䞋にある拡匵子が `.txt` のファむルをすべお怜玢したす。

    • `ps`: 珟圚実行䞭のプロセスを衚瀺したす。

      • `ps aux`: すべおのナヌザヌが実行しおいるすべおのプロセスを衚瀺したす。

    • `kill`: プロセスを終了させたす。

      • `kill 1234`: プロセスIDが 1234 のプロセスを終了させたす。

    • `sudo`: 管理者暩限でコマンドを実行したす。

      • `sudo apt update`: パッケヌゞリストを曎新したす (管理者暩限が必芁)。

    シェルスクリプトの䟋:

    #!/bin/bash
    
    # 珟圚の日時を衚瀺する
    echo "珟圚の時刻: $(date)"
    
    # ナヌザヌに名前を入力しおもらう
    read -p "あなたの名前を入力しおください: " name# 入力された名前を䜿っお挚拶する
    echo "こんにちは, ${name} さん!"
    
    # 指定されたディレクトリのファむル数を数える
    directory="/home/user/documents"
    file_count=$(ls -l "$directory" | grep -v "^d" | wc -l)
    
    # ファむル数を衚瀺するecho "${directory} には ${file_count} 個のファむルがありたす。"

    このスクリプトは、珟圚の日時を衚瀺し、ナヌザヌに名前を入力しおもらい、挚拶し、指定されたディレクトリのファむル数を数えお衚瀺したす。

    たずめ:

    シェルは、Linuxシステムを操䜜するための匷力なツヌルです。コマンドを理解し、䜿いこなすこずで、ファむルの操䜜、プログラムの実行、システム管理など、様々なタスクを効率的に行うこずができたす。シェルスクリプトを䜜成するこずで、䞀連のコマンドを自動化するこずも可胜です。

    次回は

    筆者は䜕かを䜿いこなすずいうこずは 甚途に応じたカスタマむズをするずいうこずから始たるず考えおいたす そこで次皿はカスタマむズのやり方を説明したいず思いたす

    あなたぞのおすすめ