Linux コマンド

ubuntu osの更新

利用可能なパッケージの一覧を更新

sudo apt update

パッケージのアップグレード

sudo apt upgrade

必要なくなったパッケージの削除

sudo apt autoremove

ubuntuをアップグレードする場合はパッケージ更新を終わらせてから実行する

sudo do-release-upgrade

ubuntuのバージョンを確認

lsb_release -a

再起動

システムの再起動

sudo reboot

sudo

コマンドをroot権限で実行

sudo コマンド

root権限でログインする

su -

ls

ファイルとディレクトリの一覧

ls

隠しファイルを表示

ls -a

詳細表示

ls -l

サイズ順に表示

ls -S

更新日時順に表示

ls -t

逆順に表示

ls -r

cd

ディレクトリの移動

cd /path/to/directory

ホームディレクトリに移動

cd

一つ前のディレクトリに移動

cd -

cat

ファイルの内容を表示

cat /path/to/file

複数のファイルを連結して表示

cat file1 file2

OS情報を表示

cat /etc/os-release

pwd

現在のディレクトリの表示

pwd

mkdir

ディレクトリの作成

mkdir /path/to/directory

複数のディレクトリを作成

mkdir -p /path/to/directory

ssh

リモートシステムがローカルシステムと同じユーザー名の場合

ssh ホスト名

リモートシステムが異なるユーザー名の場合

ssh ユーザー名@ホスト名

ポート指定

ssh -p ポート番号 ユーザー名@ホスト名

秘密鍵を指定

ssh -i 秘密鍵ファイル ユーザー名@ホスト名

コマンドを実行する

ssh ユーザー名@ホスト名 'コマンド'

ポートフォワーディング

ssh -L ローカルポート:宛先ホスト:宛先ポート ユーザー名@ホスト名

複数サーバを経由する場合

踏み台サーバへのconfig

 Host 踏み台サーバ
    HostName 踏み台のホスト
    User 踏み台のユーザ

目的サーバへのconfig

 Host 目的サーバ
    HostName 目的サーバのホスト
    User 目的サーバのユーザ
    ProxyCommand ssh -W %h:%p 踏み台サーバ

設定後、以下のコマンドで接続します

ssh 目的サーバ

scp

リモートのファイルをローカルにコピー

scp user@host:/path/to/file /path/to/file

ローカルのファイルをリモートにコピー

scp /path/to/file user@host:/path/to/file

ssh-keygen

rsa鍵の生成。作成する鍵のビット数を指定する。

ssh-keygen -t rsa -b 4096

ed25519鍵生成

ssh-keygen -t ed25519

鍵の保存先を指定

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

鍵のパスフレーズを設定

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N 'パスフレーズ'

鍵の指紋(fingerprint)を表示する形式を「sha256」(デフォルト)か「md5」で指定する

ssh-keygen -E md5 -lf ~/.ssh/id_rsa.pub

systemd

/etc/systemd/system/ディレクトリに新しいサービスファイルを作成する。 拡張子は任意ですが、.serviceが一般的です。

sudo nano /etc/systemd/system/myservice.service

サービスファイルの例

[Unit]
Description=My Custom Service
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ubuntu
ExecStart=/home/ubuntu/script.sh
Restart=always

[Install]
WantedBy=multi-user.target

サービスの読み込み

sudo systemctl daemon-reload

サービスの有効化

sudo systemctl enable myservice

サービスの開始

sudo systemctl start myservice

サービスの停止

sudo systemctl stop myservice

サービスの再起動

sudo systemctl restart myservice

サービスの状態

sudo systemctl status myservice

サービスのログ

sudo journalctl -u myservice

サービスのログをリアルタイムで確認する

sudo journalctl -f -u myservice

サービスを無効化する

sudo systemctl disable myservice

サービスを削除する

sudo rm /etc/systemd/system/myservice.service

サービスの一覧

sudo systemctl list-unit-files --type=service

crontab

crontabの編集

crontab -e

crontabのリスト

crontab -l

crontabの削除

crontab -r

crontabの例

# m h dom mon dow command
0 0 * * * /home/ubuntu/backup.sh

find

ファイル名検索

find /path/to/search -name 'filename'

ファイル名の一部で検索

find /path/to/search -name '*part-of-filename*'

ファイルの検索

find /path/to/search -type f

ディレクトリの検索

find /path/to/search -type d

tar

ファイルの圧縮

tar -czvf archive.tar.gz /path/to/file

ファイルの解凍

tar -xzvf archive.tar.gz

zip

ファイルの圧縮

zip archive.zip /path/to/file

ファイルの解凍

unzip archive.zip

curl

GETリクエスト

curl https://example.com

POSTリクエスト

curl -X POST -d 'param1=value1¶m2=value2' https://example.com

ヘッダーの追加

curl -H 'Content-Type: application/json' https://example.com

URLのファイル名でファイルのダウンロード

curl -O https://example.com/file

wget

ファイルのダウンロード

wget https://example.com/file

grep

文字列の検索

grep 'string' /path/to/file

正規表現で検索

grep -E 'pattern' /path/to/file

大文字小文字を区別しない

grep -i 'string' /path/to/file

sed

文字列の置換

sed -i 's/old/new/g' /path/to/file

行の削除

sed -i '/pattern/d' /path/to/file

行の挿入

sed -i '1i text' /path/to/file

cp

ファイルのコピー

cp /path/to/file /path/to/destination

ディレクトリのコピー

cp -r /path/to/directory /path/to/destination

mv

ファイルの移動

mv /path/to/file /path/to/destination

ディレクトリの移動

mv /path/to/directory /path/to/destination

rm

ファイルの削除

rm /path/to/file

ディレクトリの削除

rm -r /path/to/directory

削除の確認なし

rm -f /path/to/file

chmod

ファイルのパーミッションを変更

chmod 644 /path/to/file

ディレクトリのパーミッションを変更

chmod 755 /path/to/directory

ディレクトリ内のパーミッションを再帰的に変更

chmod -R 755 /path/to/directory

chown

ファイルのオーナーを変更

chown user:group /path/to/file

ディレクトリのオーナーを変更

chown -R user:group /path/to/directory

ps

プロセスの一覧

ps

全てのプロセスの一覧

ps -ef

プロセスの詳細

ps -p プロセスID

kill

プロセスの終了

kill プロセスID

プロセスの強制終了

kill -9 プロセスID

top

プロセスのリアルタイム表示

top

free

メモリの使用量

free

メモリの使用量を見やすく表示

free -h

tcpdump

トラフィックを視覚化

sudo tcpdump

10件表示

sudo tcpdump -c 10

ポート指定

sudo tcpdump port 80

ホスト指定

sudo tcpdump host example.com

df

ディスクの使用量

df

ディスクの使用量を見やすく表示

df -h

参考

更新履歴