98.Terminal・CLI - YukaKoshiba/MyknowledgeDocs GitHub Wiki

Hardware @Japanese Version
Create Date:2025/3/12
Last Update Date:2025/7/8

目次

ターミナル  用語

ファイル操作ファイル作成  ファイル削除  コンパイル  プログラムの実行

フォルダ操作フォルダ作成  カレントフォルダ移動  ファイルのフォルダ移動 

その他ファイル操作ZIPファイル展開  ファイルのダウンロード  指定ディレクトリ内のファイル一覧表示 

DB操作DB接続 ( SQLite )
スキーマの取得(DBのテーブル情報) ( SQLite )
処理時間の計測 ( SQLite )
DBへ接続を解除する ( SQLite )

Webサーバ操作HTTPリクエスト/ステータスコードを確認する  HTTPサーバーを起動する


ターミナル(Terminal)

CUI/CLIを利用するためのソフトウェア(アプリケーション)のこと
=CUI環境をユーザーに提供するプログラム

ターミナルを使う理由

マウスで簡単に操作できるGUIがあるのにも関わらず、わざわざターミナルを使う主な理由は以下の通り:

1.より高度で細かい操作が可能
GUIでは用意されていないような、OSの深部にわたる設定変更や、複雑なシステム操作が可能
例えば、大量のファイルを一括でリネームしたり、特定の条件でファイルを検索・削除したりといった、GUIでは手間がかかる操作も、コマンド1つで実行できる

2.作業の自動化と効率化
複数のコマンドを組み合わせたスクリプト(一連の命令を記述したファイル)を作成することで、繰り返し行う作業を自動化できる
これは、開発者やシステム管理者にとって非常に強力なツールで
例えば、毎日決まった時間に特定のデータをバックアップするといったタスクを自動化できる

3.リモート操作
SSH(Secure Shell)などのプロトコルを使って、遠隔地にあるサーバーや他のコンピュータに接続し、そのコンピュータを直接操作できる
→ウェブサーバーの管理やクラウドサービスを利用する際に不可欠な機能

4.リソース消費の少ない
GUIはグラフィック表示のために多くのシステムリソース(メモリやCPU)を消費するが、
ターミナルは文字ベースであるため、消費リソースが非常に少なく、
非力なコンピューターや、サーバーのように安定稼働が求められる環境で特に有利

5.開発者にとっての必須ツール
プログラミング言語のコンパイル、Gitを使ったバージョン管理、npmやpipなどのパッケージ管理、デバッグなど、
現代のソフトウェア開発の多くの作業はターミナル上で行われる

プロフェッショナルな環境
特定のツール(例:vimやemacsのようなテキストエディタ、tmuxのようなマルチプレクサ)はターミナル環境に最適化されており、
習熟するとGUI環境よりも高速かつ効率的に作業を進めることができる

トラブルシューティングと診断
システムに問題が発生した際、GUIが起動しない場合でもターミナルからログを確認したり、システムの状態を診断できる


用語

  • CLI/CLI
    CUI(Character User Interface)またはCLI(Command Line Interface)
    コンピュータの操作方式の種類
    テキスト(文字)を入力してコンピュータに指示を与え、結果もテキストで受け取るインターフェースのこと
    これと対比されるのが、アイコンやウィンドウをマウスで操作するGUI(Graphical User Interface)
  • ソースコード
    人が書き、人が理解できるコードのこと
  • 機械語 or バイナリコード
    0と1だけで表現されたパソコンが理解できる(人が理解できない)コードのこと
  •  
  • コンパイル
    ソースコードを機械語に変換すること

Visual Studio Code(VS Code)のTERMINALなどで利用できる


ファイル操作

ファイル作成

code ファイル名.拡張子"

ファイル削除

rm ファイル名.拡張子

ファイルをコンパイルする

make ファイル名

ファイルを実行する

./ファイル名

ファイル名はコンパイル(機械語に変換された)ファイルを実行する

フォルダ操作

フォルダを新規作成する

mkdir フォルダ名

カレントフォルダを移動する

"cd フォルダ名"でカレントフォルダを移動する


// 移動したいフォルダ名(絶対パスor相対パス)
cd folderName
// 1つ上の階層へ移動する
cd ..
// 2つ上の階層へ移動する
cd ../..
// ホームディレクトリへ戻る
cd ~

ファイルのフォルダ移動

mv document.txt documents/

"mv 対象ファイル名 移動フォルダ名"


その他

ZIPファイル展開

unzip ファイル名.zip

ファイルをダウンロードする

wget ダウンロードファイルのパス

指定ディレクトリ内のファイル一覧表示

ls

DB操作

各DBに応じたコマンドを実行し、DBに接続することで、ターミナル上でSQLが記述できるようになる

DBへ接続する

SQLite

ターミナルまたはコマンドプロンプトで以下のコマンドを実行する
指定したDBが存在しない場合は、新しいデータベースファイルを作成する

sqlite3 your_database_name.db

DBへ接続が完了すると、新しくコマンドを入力する行がsqLiteとなる

CSVを取り込む

SQLite

CSVモードにする

.mode csv

CSVファイルを読み込む

.import fileName.csv

スキーマの取得

DB内にどの様なテーブルがあるかを取得する

SQLite
.schema

処理時間を計測する

SQLite
.timer on

DBへ接続を解除する

SQLite

新しくコマンドを入力する行がsqLiteから$/code>へ戻る

.quite

Webサーバ操作

HTTPリクエスト/ステータスコードを確認する

特定のURLに対するHTTPリクエストを送信し、その応答ヘッダーのみを表示する

以下の情報を得ることが出来る
・HTTPステータスコード(例:200 OK、404 Not Found)
・コンテンツタイプ(例:text/html、application/json)
・サーバー情報(例:サーバーの種類とバージョン)
・日付と時刻、その他のヘッダー情報

curl -I https://www.~/

HTTPサーバーを起動する

Node.js で作成されたシンプルな HTTP サーバーを起動する

http-server

主に静的なWebコンテンツをローカルで手軽に配信するために使用され、
動的Webコンテンツを実行する際は、別の適切なコマンドを使う


// (例:PythonでFlaskを使用していた場合)
flask run
⚠️ **GitHub.com Fallback** ⚠️