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サーバーを起動する
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 対象ファイル名 移動フォルダ名"
unzip ファイル名.zip
wget ダウンロードファイルのパス
ls
各DBに応じたコマンドを実行し、DBに接続することで、ターミナル上でSQLが記述できるようになる
ターミナルまたはコマンドプロンプトで以下のコマンドを実行する
指定したDBが存在しない場合は、新しいデータベースファイルを作成する
sqlite3 your_database_name.db
DBへ接続が完了すると、新しくコマンドを入力する行がsqLiteとなる
CSVモードにする
.mode csv
CSVファイルを読み込む
.import fileName.csv
DB内にどの様なテーブルがあるかを取得する
.schema
.timer on
新しくコマンドを入力する行がsqLiteから$/code>へ戻る
.quite
特定のURLに対するHTTPリクエストを送信し、その応答ヘッダーのみを表示する
以下の情報を得ることが出来る
・HTTPステータスコード(例:200 OK、404 Not Found)
・コンテンツタイプ(例:text/html、application/json)
・サーバー情報(例:サーバーの種類とバージョン)
・日付と時刻、その他のヘッダー情報
curl -I https://www.~/
Node.js で作成されたシンプルな HTTP サーバーを起動する
http-server
主に静的なWebコンテンツをローカルで手軽に配信するために使用され、
動的Webコンテンツを実行する際は、別の適切なコマンドを使う
// (例:PythonでFlaskを使用していた場合)
flask run