/Linuxコマンド

開発ツール

エディタと開発の小道具

vim・nano の最低限の操作、make・gcc でのビルド、hyperfine での計測、シェルスクリプトの型。

nanoかんたんなエディタ

画面の下に操作方法が出る、初心者向けのかんたんなエディタです。

bash
$ nano ~/.bashrc

画面の下に操作が出ています(^ は Ctrl)。

キー動作
Ctrl+O Enter保存
Ctrl+X終了
Ctrl+W検索
Ctrl+K / Ctrl+U行を切り取り / 貼り付け
Alt+U元に戻す

vim定番のエディタ

vim には「ノーマルモード」(移動や操作)と「挿入モード」(文字を打つ)があります。迷ったら Esc を押すとノーマルモードに戻ります。

キー動作
i / a / oカーソル位置で / 後ろで / 下に行を作って挿入モードへ
Escノーマルモードに戻る
:w / :q / :wq保存 / 終了 / 保存して終了
:q!保存せずに終了
h j k l左・下・上・右
gg / G先頭行 / 最終行
dd / yy / p行を削除 / コピー / 貼り付け
u / Ctrl+R元に戻す / やり直す
/文字列検索(n で次)
:%s/old/new/gファイル全体で置換
:set nu行番号を表示

makeビルドの手順をまとめて実行する

Ubuntu には最初から入っていません。 で入れられます。

Makefile に書いたビルドなどの手順を、名前を指定して実行します。

Makefile
.PHONY: build test clean

build:
	go build -o bin/app ./cmd/app

test:
	go test ./...

clean:
	rm -rf bin/
bash
$ make               # 最初のターゲット(build)
$ make test
$ make -j"$(nproc)"  # 並列で

gccC のコンパイラ

Ubuntu には最初から入っていません。 で入れられます。

C 言語のプログラムをコンパイルします。

bash
$ gcc -Wall -O2 -o hello hello.c
$ ./hello

build-essential を入れると、gcc・g++・make などが一式そろいます。

python3Python を実行する

Python のプログラムを実行します。便利な機能をモジュールとして呼び出すこともできます。

bash
$ python3 script.py
$ python3 -m http.server 8000        # 今のディレクトリを http://localhost:8000 で公開
$ python3 -m json.tool data.json     # JSON を整形
$ python3 -c 'import sys; print(sys.version)'

nodeJavaScript を実行する

Ubuntu には最初から入っていません。 で入れられます。

JavaScript のプログラムを実行します。

bash
$ node app.js
$ node -e 'console.log(process.versions)'
$ node --watch server.js             # ファイルを変えると自動で再起動

hyperfineコマンドの実行時間を比べる

Ubuntu には最初から入っていません。 で入れられます。

何回も実行して平均やばらつきを出してくれるので、time より正確に比べられます。

bash
$ hyperfine 'grep -r TODO .' 'rg TODO'
$ hyperfine --warmup 3 'npm run build'
$ hyperfine -P n 1 4 'make -j{n}'     # パラメータを変えて比べる
$ hyperfine --export-markdown result.md 'cmd1' 'cmd2'

シェルスクリプトの型

bash
#!/usr/bin/env bash
set -euo pipefail   # エラー・未定義の変数・パイプ途中の失敗で止まる

usage() { echo "使い方: $0 <名前>" >&2; exit 1; }
[ $# -ge 1 ] || usage

name="$1"
for f in *.txt; do
echo "処理中: $f"
done

if [ -f config.env ]; then
source config.env
fi

echo "こんにちは、${name}さん"
bash
$ chmod +x hello.sh && ./hello.sh alice
$ bash -x hello.sh alice        # 実行する行を表示しながら動かす(デバッグ)
書き方意味
[ -f file ] / [ -d dir ]ファイル / ディレクトリがある
[ -z "$s" ] / [ -n "$s" ]空 / 空でない
[ "$a" = "$b" ]文字列が等しい
[ "$n" -gt 5 ]数値の比較(-eq -ne -lt -le -ge)
$# / $1 / $@引数の数 / 1つ目 / すべて

emacs多機能なエディタ

Ubuntu には最初から入っていません。 で入れられます。

拡張性の高い定番のエディタです。

bash
$ emacs -nw notes.org      # 端末の中で開く(-nw)
キー動作
Ctrl+X Ctrl+S保存
Ctrl+X Ctrl+C終了
Ctrl+X Ctrl+Fファイルを開く
Ctrl+S検索
Ctrl+G今の操作をやめる
Ctrl+/元に戻す

nvim (Neovim)vim の後継

Ubuntu には最初から入っていません。 で入れられます。

vim を改良したエディタです。

bash
$ nvim file.txt
$ nvim -d a.txt b.txt       # 差分を並べて表示

設定は ~/.config/nvim/init.lua(または init.vim)に書きます。

shellcheckシェルスクリプトの間違いを見つける

Ubuntu には最初から入っていません。 で入れられます。

シェルスクリプトのよくある間違いや危ない書き方を見つけて教えてくれます。

bash
$ shellcheck deploy.sh
$ shellcheck -S warning *.sh      # 警告以上だけ

クォート忘れや、cd の失敗を確かめていない、などのよくある間違いを教えてくれます。

shfmtシェルスクリプトを整形する

Ubuntu には最初から入っていません。 で入れられます。

シェルスクリプトのインデントや書き方を整えます。

bash
$ shfmt -i 2 -w deploy.sh        # 2スペースで整形して上書き
$ shfmt -d .                     # 差分だけ表示

goGo のツールチェイン

Ubuntu には最初から入っていません。 で入れられます。

Go 言語でプログラムを作る・ビルドする・テストするためのコマンドです。

bash
$ go mod init example.com/app
$ go run .
$ go build -o bin/app ./cmd/app
$ go test ./...
$ go install github.com/user/tool@latest     # ~/go/bin に入る
$ GOOS=windows GOARCH=amd64 go build -o app.exe .   # Windows 向けにビルド

cargo / rustupRust

Ubuntu には最初から入っていません。 で入れられます。

Rust 言語でプログラムを作る・ビルドするためのツールです。

bash
$ cargo new hello && cd hello
$ cargo run
$ cargo build --release
$ cargo install ripgrep          # Rust 製のツールを入れる
$ rustup update                  # rustup で入れた場合の更新

cmakeC/C++ のビルド設定

Ubuntu には最初から入っていません。 で入れられます。

C / C++ のプロジェクトのビルド手順を作るツールです。

bash
$ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j"$(nproc)"

python3 の便利なモジュール

bash
$ python3 -m venv .venv                # 仮想環境
$ python3 -m pip install --upgrade pip
$ python3 -m json.tool < data.json     # JSON 整形
$ python3 -m base64 -d < in.b64
$ python3 -m zipfile -e a.zip out/     # zip を展開
$ python3 -m timeit '"-".join(map(str, range(100)))'   # 実行時間を測る
$ python3 -m calendar 2026             # カレンダー