ヒント一覧へ戻る
シェルタイピングBashスクリプト練習コマンドライン入力

Shellタイピングのコツ:コマンドライン構文をマスターしてスクリプト作成を高速化

シェルコマンドとスクリプトを素早く入力するためのコツを学びましょう。基本コマンドからパイプ、リダイレクト、ループまで、シェルスクリプトのタイピング速度と正確性を向上させます。

シェルスクリプト(Bash、Zshなど)は、システム管理、DevOps、自動化の基盤です。デプロイスクリプトの作成、サーバー管理、ワークフローの自動化など、シェルタイピングをマスターすることで効率を大幅に向上させることができます。

シェルタイピングスキルが重要な理由

シェルコマンドは開発ワークフローで常に使用されます。git操作からアプリケーションのビルドとデプロイまで。シェルコマンドを素早く正確に入力できれば、デバッグが速くなり、デプロイがスムーズになり、システム管理がより効率的になります。

マスターすべき重要なシェルコマンド

1

cd / ls / pwd

毎日何百回も使うナビゲーションの基本。

2

grep / find / xargs

ファイルの検索と処理に必須。

3

cat / head / tail / less

ファイル表示コマンド。

4

echo / printf

出力と変数の表示。

5

chmod / chown

権限管理。

基本的なコマンドパターン

これらの基本的なコマンドパターンを練習しましょう:

bash
ls -la /var/log
bash
grep -r "pattern" ./src
bash
find . -name "*.js" -type f

パイプとリダイレクトのパターン

パイプとリダイレクトはシェルスクリプトの力です:

bash
cat file.txt | grep "error" | wc -l
bash
ls -la > output.txt 2>&1

ループパターン

これらの一般的なループ構文をマスターしましょう:

bash
for file in *.txt; do
  echo "Processing $file"
done
bash
while read -r line; do
  echo "$line"
done < input.txt

条件分岐パターン

必須の条件構文:

bash
if [ -f "$file" ]; then
  echo "File exists"
fi
bash
[ -d "$dir" ] && cd "$dir"
bash
if [[ "$string" =~ ^[0-9]+$ ]]; then
  echo "Is a number"
fi

case文パターン

caseによる多方向分岐:

bash
case "$1" in
  start)
    echo "Starting service"
    ;;
  stop)
    echo "Stopping service"
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    ;;
esac

関数パターン

再利用可能な関数の定義:

bash
function log() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1"
}
bash
cleanup() {
  rm -rf "$tmpdir"
  exit "${1:-0}"
}
trap cleanup EXIT

配列パターン

bashでの配列操作:

bash
files=("file1.txt" "file2.txt" "file3.txt")
for f in "${files[@]}"; do
  echo "$f"
done
bash
declare -A map
map["key1"]="value1"
map["key2"]="value2"
echo "${map[key1]}"

パラメータ展開

高度な変数操作:

bash
filename="/path/to/file.tar.gz"
echo "${filename##*/}"  # file.tar.gz
echo "${filename%.*}"   # /path/to/file.tar
bash
name="hello"
echo "${name:-default}"  # 空なら default を使用
echo "${#name}"          # 長さ: 5

sedパターン

テキスト処理のためのストリーム編集:

bash
sed 's/old/new/g' file.txt
bash
sed -i '' 's/foo/bar/g' *.txt
bash
sed -n '10,20p' file.txt  # 10-20行目を表示

awkパターン

強力なテキスト処理:

bash
awk '{print $1, $3}' file.txt
bash
awk -F',' '{sum += $2} END {print sum}' data.csv
bash
awk '/error/ {count++} END {print count}' log.txt

xargsパターン

コマンドの構築と実行:

bash
find . -name "*.log" | xargs rm
bash
cat urls.txt | xargs -I {} curl -O {}

プロセス置換

コマンド出力をファイルとして使用:

bash
diff <(sort file1.txt) <(sort file2.txt)

ヒアドキュメント

複数行入力:

bash
cat <<EOF > config.txt
host=localhost
port=8080
EOF

エラーハンドリング

堅牢なスクリプトパターン:

bash
set -euo pipefail
bash
command || { echo "Failed"; exit 1; }

SSH・リモートコマンド

リモート実行パターン:

bash
ssh user@host 'ls -la /var/log'
bash
scp -r ./dist user@host:/var/www/
bash
rsync -avz --delete ./src/ user@host:/backup/

アーカイブと圧縮

一般的なアーカイブ操作:

bash
tar -czvf archive.tar.gz ./directory
bash
tar -xzvf archive.tar.gz -C /destination

よく使うシェル記号

パイプ (|) - 出力を次のコマンドに渡す

リダイレクト (> >>) - ファイルに書き込む

アンパサンド (&) - バックグラウンドで実行

ドル記号 ($) - 変数参照

バッククォート () または $() - コマンド置換

セミコロン (;) - コマンド区切り

ダブルアンパサンド (&&) - 前のコマンドが成功したら実行

練習のコツ

1. 基本的なナビゲーションコマンドから始める

2. パイプとリダイレクトに進む

3. 変数構文($VAR, ${VAR}, "$VAR")を練習

4. クォートのルール(シングル vs ダブル)をマスター

5. 特殊文字(*, ?, [], {})に慣れる

DevTypeのShell練習問題で定期的に練習することで、これらのパターンを身につけ、自信を持ってコマンドを入力できるようになります。

実際に練習してみましょう!

DevTypeで実際のコードを入力して、タイピングスキルを向上させましょう。

練習を開始