Linuxコマンド完全ガイド:初級者から上級者まで必須の32コマンド

ソフトウェア開発者にとって、Linuxとの接触は避けられません。Linuxには多数のコマンドが存在しますが、日常業務をこなすためには、よく使用するコマンドを習得するだけで十分です。ここでは、開発実務で最も頻繁に使用する32のコマンドをまとめました。

1. cd - ワーキングディレクトリの変更

最も基本的で頻繁に使用されるコマンドです。現在のディレクトリを変更するために使用します。引数には移動先のディレクトリパスを指定し、絶対パスと相対パスの両方が使用可能です。

cd /var/www   # /var/wwwディレクトリに移動
cd ./project  # カレントディレクトリのprojectサブディレクトリに移動
cd ../config  # 親ディレクトリのconfigに移動

2. ls - ファイルとディレクトリの表示

ファイルとディレクトリの内容を表示する便利なコマンドです。主なオプション:

  • -l:詳細情報(権限、所有者、サイズなど)を表示
  • -a:隠しファイル(ドットで始まるファイル)を含むすべてのファイルを表示
  • -h:ファイルサイズを人間が読みやすい形式(KB、MB、GB)で表示
  • -R:サブディレクトリを再帰的に表示
ls -la        # 詳細情報で隠しファイルを含めて表示
ls -lh        # サイズを読みやすい形式で表示
tree -L 2 -I "node_modules"  # ツリー構造で2階層まで表示、node_modulesを除外

3. grep - テキストパターン検索

テキストから特定のパターンを検索する強力なツールです。パイプと組み合わせて使用することが多いです。

  • -i:大文字小文字を区別しない
  • -v:パターンに一致しない行を表示
  • -c:一致した行数をカウント
  • -n:行番号を表示
ps aux | grep -i java  # javaプロセスを検索(大文字小文字無視)
grep -n "error" app.log | head -20  # エラー行を先頭20行表示

4. cat - テキストファイルの内容表示

テキストファイルの内容を表示します。パイプと組み合わせてページャ(less、more)と共によく使用されます。

cat /proc/cpuinfo | grep "model name"  # CPUモデル名を表示
cat -n config.properties | grep -i "port"  # 設定ファイルのポート設定を表示

5. tail - ファイル末尾の表示

ファイルの末尾部分を表示します。-fオプションでリアルタイム監視が可能です。

tail -f /var/log/syslog  # システムログをリアルタイム監視
tail -n 100 access.log  # アクセスログの最後100行を表示

6. find - ファイル検索

柔軟なファイル検索コマンドです。様々な条件で検索可能です。

find /home -name "*.conf" -type f  # .confファイルを検索
find /var -size +100M -mtime -7  # 100MB以上で7日以内に変更されたファイル

7. locate - 高速ファイル検索

データベースを使用した高速なファイル検索ツールです。

locate nginx.conf  # nginx.confの位置を検索
sudo updatedb  # データベースを更新

8. cp - ファイルコピー

ファイルやディレクトリをコピーします。

cp -r source_dir destination/  # ディレクトリを再帰的にコピー
cp -p file1 file2  # 属性を保持してコピー

9. scp - リモートファイルコピー

SSHを使用した安全なリモートファイル転送です。

scp file.tar user@remote:/backup/  # リモートサーバーにコピー
scp -r user@remote:/data/ ./local/  # リモートからディレクトリをコピー

10. vim - テキストエディタ

強力なテキストエディタです。

vim script.sh  # スクリプトファイルを編集
# vim内での基本操作
# i: 挿入モード
# ESC: コマンドモード
# :wq: 保存して終了
# :q!: 保存せず終了

11. mv - ファイル移動とリネーム

ファイルを移動またはリネームします。

mv old_name.txt new_name.txt  # ファイル名を変更
mv *.log archive/  # すべてのログファイルをarchiveディレクトリに移動

12. rm - ファイル削除

ファイルやディレクトリを削除します。注意して使用してください。

rm -rf temp/  # ディレクトリを強制削除(慎重に!)

13. ln - シンボリックリンク作成

ファイルやディレクトリのリンクを作成します。

ln -s /opt/app/bin/app /usr/local/bin/app  # シンボリックリンク作成

14. chmod - ファイル権限変更

ファイルやディレクトリの権限を変更します。

chmod 755 script.sh  # 実行権限を設定
chmod u+x deploy.sh  # 所有者に実行権限を追加

15. chown - 所有者変更

ファイルの所有者とグループを変更します。

chown user:group file.txt  # 所有者とグループを変更
chown -R www-data /var/www  # 再帰的に所有者を変更

16. ps - プロセス表示

実行中のプロセスを表示します。

ps aux  # すべてのプロセスを詳細表示
ps -ef | grep mysql  # MySQLプロセスを検索

17. top - システムリソース監視

リアルタイムでシステムリソースを監視します。

top -u username  # 特定ユーザーのプロセスを監視
# top実行中の操作
# M: メモリ使用順にソート
# P: CPU使用順にソート
# k: プロセス終了

18. kill - プロセス終了

プロセスにシグナルを送信して終了させます。

kill -9 1234  # PID 1234のプロセスを強制終了
kill -15 $(pidof httpd)  # httpdプロセスを正常終了

19. tar - アーカイブと圧縮

ファイルのアーカイブと圧縮を行います。

tar -czf backup.tar.gz directory/  # ディレクトリをgzip圧縮
tar -xzf backup.tar.gz -C /tmp/  # /tmpに解凍

20. zip/unzip - ZIP圧縮

ZIP形式での圧縮と解凍です。

zip -r project.zip project/  # プロジェクトをZIP化
unzip project.zip -d /dest/  # 指定ディレクトリに解凍

21. curl - データ転送

様々なプロトコルでデータを転送します。

curl -X POST -H "Content-Type: application/json" \
-d '{"key":"value"}' https://api.example.com  # API呼び出し

22. wget - ファイルダウンロード

Webからファイルをダウンロードします。

wget -c https://example.com/file.iso  # レジューム機能付きでダウンロード

23. free - メモリ使用量表示

システムのメモリ使用状況を表示します。

free -h  # 人間が読みやすい形式でメモリ情報を表示

24. df - ディスク使用量表示

ディスクの使用状況を表示します。

df -h  # すべてのファイルシステムの使用量を表示

25. du - ディレクトリ使用量表示

ディレクトリのディスク使用量を表示します。

du -sh *  | sort -rh  | head -10  # サイズの大きいディレクトリTOP10

26. crontab - 定期タスク設定

定期的に実行するタスクを設定します。

crontab -e  # crontab編集
# 毎日午前2時にバックアップ実行
0 2 * * * /usr/local/bin/backup.sh

27. history - コマンド履歴

実行したコマンドの履歴を表示します。

history | grep git  # git関連のコマンド履歴を検索

28. which - コマンドの場所検索

コマンドのフルパスを表示します。

which python  # pythonコマンドの場所を表示

29. useradd/userdel - ユーザー管理

ユーザーの追加と削除を行います。

sudo useradd -m -s /bin/bash newuser  # 新規ユーザー作成
sudo userdel -r olduser  # ユーザー削除(ホームディレクトリも削除)

30. passwd - パスワード変更

ユーザーのパスワードを変更します。

passwd  # 現在ユーザーのパスワード変更
sudo passwd username  # 特定ユーザーのパスワード変更

31. su/sudo - 権限昇格

ユーザー権限を変更します。

su - username  # ユーザー切り替え
sudo command  # 管理者権限でコマンド実行

32. netstat - ネットワーク接続表示

ネットワーク接続と統計を表示します。

netstat -tulpn  | grep LISTEN  # 待機中のポートを表示

7月24日 21:18 投稿