IT

Linuxコマンド入門:基本操作から効率的な作業まで

昔学んでいた時のメモが出てきたのでせっかくなのでAIを利用して、ブログ化します。

基本的な操作コマンドとオプション、実行結果を書いているので、結構有用だと思います。

概要

Linuxは、その強力なコマンドラインインターフェースのおかげで、世界中の開発者やシステム管理者から高い評価を受けています。この記事では、Linuxの基本的なコマンドをいくつか紹介し、それらがどのようにして日々の作業を効率化するのかを見ていきましょう。

1. ディレクトリの操作

ディレクトリの内容を見る:ls

lsコマンドは、ディレクトリ内のファイルやサブディレクトリのリストを表示します。

# 基本的な使用法
$ ls
Documents  Downloads  Pictures  Videos
# 詳細情報を表示
$ ls -l
total 16
drwxr-xr-x 2 user group 4096 Oct  6 10:00 Documents
drwxr-xr-x 2 user group 4096 Oct  6 10:01 Downloads
drwxr-xr-x 2 user group 4096 Oct  6 10:02 Pictures
drwxr-xr-x 2 user group 4096 Oct  6 10:03 Videos
# 隠しファイルも含めて表示
$ ls -a
.  ..  .bashrc  Documents  Downloads  Pictures  Videos
# タイムスタンプ降順で表示
$ ls -lt
total 16
drwxr-xr-x 2 user group 4096 Oct  6 10:03 Videos
drwxr-xr-x 2 user group 4096 Oct  6 10:02 Pictures
drwxr-xr-x 2 user group 4096 Oct  6 10:01 Downloads
drwxr-xr-x 2 user group 4096 Oct  6 10:00 Documents
# タイムスタンプ昇順で表示(よく使われる)
$ ls -ltr
total 16
drwxr-xr-x 2 user group 4096 Oct  6 10:00 Documents
drwxr-xr-x 2 user group 4096 Oct  6 10:01 Downloads
drwxr-xr-x 2 user group 4096 Oct  6 10:02 Pictures
drwxr-xr-x 2 user group 4096 Oct  6 10:03 Videos

現在のディレクトリを確認する:pwd

pwdコマンドは、現在の作業ディレクトリのパスを表示します。これは以下のような場面で特に有用です:

  • 絶対パスが必要な他のコマンドにパスを提供する
  • 複雑なディレクトリ構造を移動した後、現在位置を確認する
  • スクリプト内で現在のディレクトリパスを取得する
# 作業中のディレクトリパスを表示
$ pwd
/home/user
# 移動した階層の確認
$ cd Documents/Projects/Website
$ pwd
/home/user/Documents/Projects/Website
# スクリプト内での使用例
#!/bin/bash
current_dir=$(pwd)
echo "現在の作業ディレクトリは ${current_dir} です。"

ディレクトリを移動する:cd

cdコマンドは、作業ディレクトリを変更します。

$ cd Documents
$ pwd
/home/user/Documents

$ cd ..
$ pwd
/home/user

.. で一階層上を示します。二階層に移動したいばあいには、../../ という形式で対応できます。

ディレクトリを作成する:mkdir

mkdirコマンドは、新しいディレクトリを作成します。

$ mkdir new_directory
$ ls
Documents  Downloads  new_directory  Pictures  Videos

2. ファイル操作

ファイルの内容を表示する:less

lessコマンドは、ファイルの内容を表示します。大きなファイルを扱う際に便利です。

$ less filename.txt
I am the cat

似たようなコマンドにcatmoreもありますが、lessの方が多機能の為、最近はlessを利用される方が多い認識です。

ファイルやディレクトリを削除する:rm

rmコマンドは、ファイルやディレクトリを削除します。

# 利用するファイルの作成と確認
$ touch file.txt
$ ls
file.txt
# ファイルを削除
$ rm file.txt
$ ls
(何も表示されません)
# 利用するディレクトリの作成と確認
$ mkdir test_dir
$ ls
test_dir
# ディレクトリの削除
$ rm -r test_dir
$ ls
(何も表示されません)

ファイルをコピーする:cp

cpコマンドは、ファイルやディレクトリのコピーを作成します。

# 利用するファイルの作成
$ echo "Hello" > file1.txt
# file1.txtをfile2.txtとしてコピーし、内容確認
$ cp file1.txt file2.txt
$ cat file2.txt
Hello
# dir1ディレクトリをdir2として再帰的にコピー(中身ごと)
cp -r dir1 dir2

ファイルを移動または名前を変更する:mv

mvコマンドは、ファイルの移動や名前の変更に使用します。

# ファイル名を変更
$ mv file1.txt new_name.txt
$ ls
new_name.txt
# ファイルの移動
$ mkdir subdir
$ mv new_name.txt subdir/
$ ls subdir
new_name.txt

3. ファイルの権限と所有権

ファイルのアクセス権を変更する:chmod

chmodコマンドは、ファイルやディレクトリのアクセス権を変更します。

# ファイルの権限確認
$ ls -l script.sh
-rw-r--r-- 1 user group 0 Oct  6 11:00 script.sh
# スクリプトファイルに実行権限を付与し、確認
$ chmod 755 script.sh
$ ls -l script.sh
-rwxr-xr-x 1 user group 0 Oct  6 11:00 script.sh

ファイルの所有者を変更する:chown

chownコマンドは、ファイルやディレクトリの所有者やグループを変更します。このコマンドは通常、root権限が必要です。

# ファイルの所有者を変更
$ ls -l file.txt
-rw-r--r-- 1 olduser group 0 Oct  6 11:05 file.txt
$ sudo chown newuser file.txt
$ ls -l file.txt
-rw-r--r-- 1 newuser group 0 Oct  6 11:05 file.txt

# ファイルの所有者とグループを同時に変更
$ sudo chown newuser:newgroup file.txt
$ ls -l file.txt
-rw-r--r-- 1 newuser newgroup 0 Oct  6 11:05 file.txt

# ディレクトリとその中身の所有者を再帰的に変更
$ sudo chown -R newuser:newgroup directory/

4. ファイル検索と内容検索

ファイルやディレクトリを検索する:find

findコマンドは、ファイルシステム内でファイルやディレクトリを検索する強力なツールです。様々な条件を指定して柔軟な検索が可能です。

# カレントディレクトリとそのサブディレクトリから.txtファイルを検索
$ find . -name "*.txt"
./file1.txt
./subdir/file2.txt
./Documents/note.txt
# 最近24時間以内に変更されたファイルを検索
$ find . -mtime -1
./recent_file.txt
./Documents/today_work.doc
# 100MB以上のファイルを検索
$ find . -type f -size +100M
./large_file.iso
./backup/database_dump.sql

おまけ:サーバー全体を対象に検索する方法

# サーバー全体から特定の名前のファイルを検索
$ sudo find / -name "important_config.ini"
/etc/myapp/important_config.ini
/home/user/backup/important_config.ini

# 特定のユーザーが所有するファイルを検索
$ sudo find / -user johndoe
/home/johndoe/documents/report.pdf
/var/www/html/johndoe/index.html

# 7日以上アクセスされていないファイルを検索
$ sudo find / -type f -atime +7
/var/log/old_logs/system.log.3
/home/user/forgotten_document.txt

サーバー全体の検索は、システムリソースを大量に消費する可能性があります。
権限のないディレクトリにアクセスすると、「Permission denied」エラーが大量に表示される可能性があるので、注意が必要です。

ファイル内の文字列を検索する:grep

grepコマンドは、ファイル内で特定の文字列やパターンを検索し、ログファイルの解析等に用いられます。

# ファイル内で "error" という単語を含む行を検索
$ grep "error" logfile.txt
2023-10-06 15:30:12 ERROR: Database connection failed
# 大文字小文字を区別せずに検索
$ grep -i "warning" logfile.txt
2023-10-06 14:45:30 Warning: Disk space is low
2023-10-06 16:20:45 WARNING: Memory usage exceeds 80%
# 複数のファイルから検索
$ grep "TODO" *.txt
file1.txt:TODO: Implement new feature
file2.txt:TODO: Fix this bug later
# 行番号を表示
$ grep -n "important" document.txt
15:This is an important note
42:Another important point to remember

おまけ:よくつかうオプション

# ディレクトリ内のすべてのファイルから再帰的に検索
$ grep -r "confidential" /path/to/directory
/path/to/directory/file1.txt:This information is confidential
/path/to/directory/subdir/file2.txt:Confidential: Do not share
# 検索パターンに一致しない行を表示
$ grep -v "debug" application.log
2023-10-06 12:00:01 INFO: Application started
2023-10-06 12:05:23 ERROR: Critical failure occurred
# 検索結果の前後の行も表示(コンテキスト表示)
$ grep -C 2 "error" logfile.txt
2023-10-06 15:29:50 INFO: Processing request
2023-10-06 15:30:00 INFO: Connecting to database
2023-10-06 15:30:12 ERROR: Database connection failed
2023-10-06 15:30:15 INFO: Retrying connection
2023-10-06 15:30:20 INFO: Connection successful
# 正規表現を使用した検索
$ grep -E "[0-9]{3}-[0-9]{3}-[0-9]{4}" contacts.txt
John Doe: 123-456-7890
Jane Smith: 987-654-3210

5. システム情報

ディスク使用状況を表示する:df

dfコマンドは、ファイルシステムのディスク使用状況を表示します。

# 人間が読みやすい形式で表示
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        20G   10G   9G  53%  /
/dev/sda2       100G   30G   65G  32%  /home

Tips

  • ファイル名の自動補完: タブキーを使ってファイル名やコマンドを自動補完できます。
  • - コマンド履歴: 上下矢印キーでコマンド履歴を参照できます。
  • マニュアルページmanコマンドを使って、各コマンドの詳細な使用方法を確認できます(例:man ls)。
  • パイプとリダイレクト|>>>を使って、コマンドの出力を他のコマンドに渡したり、ファイルに保存したりできます。
$ ls | grep "txt"
file1.txt
file2.txt

$ echo "Hello" > greeting.txt
$ cat greeting.txt
Hello
  • ワイルドカード*?などのワイルドカードを使って、複数のファイルを一度に操作できます。
$ ls *.txt
file1.txt  file2.txt  greeting.txt

これらの基本的なLinuxコマンドをマスターすることで、日々の作業効率を大幅に向上させることができます。初心者の方は、少しずつ試しながら慣れていくことをおすすめします。コマンドラインの力を活用して、Linuxの可能性を最大限に引き出しましょう。

以上、どなたかのお役にたてば、幸いです。

  • この記事を書いた人

緑川縁

ニートからシステムエンジニアになった人
クラウド案件をメインにやっています。
保持資格:CCNA,AWS SAA&SAP,秘書検定2級
趣味でボカロ曲作り始めました。

-IT
-,