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
参考
更新履歴
- 新規作成。
- 更新。