環境説明
オペレーティングシステム: CentOS Linux release 7.6.1810 (Core)
コマンドと設定方法
エラーメッセージと対処法
bash: ip コマンドが見つかりません
エラーメッセージ:
bash: ip コマンドが見つかりません
解決策:
yum -y install net-tools
-bash: telnet: コマンドが見つかりません
エラーメッセージ:
-bash: telnet: コマンドが見つかりません
インストール:
yum install telnet-server
-bash: netstat: コマンドが見つかりません
エラーメッセージ:
-bash: netstat: コマンドが見つかりません
サービスをインストール:
yum install net-tools
-bash: zip: コマンドが見つかりません
エラーメッセージ:
-bash: zip: コマンドが見つかりません
サービスをインストール:
yum install zip unzip
RPMパッケージ取得:
wget http://example.com/unzip-6.0.rpm
wget http://example.com/zip-3.0.rpm
-bash: tree: コマンドが見つかりません
エラーメッセージ:
-bash: tree: コマンドが見つかりません
サービスをインストール:
yum -y install tree
-bash: vim: コマンドが見つかりません
エラーメッセージ:
-bash: vim: コマンドが見つかりません
サービスをインストール:
yum install vim-enhanced
-bash: wget: コマンドが見つかりません
エラーメッセージ:
-bash: wget: コマンドが見つかりません
サービスをインストール:
yum -y install wget
-bash: rz: コマンドが見つかりません
エラーメッセージ:
-bash: rz: コマンドが見つかりません
または
-bash: sz: コマンドが見つかりません
サービスをインストール:
yum -y install lrzsz
repomd.xml ファイルが見つからない
Yumリポジトリを設定する際、repomd.xmlファイルが見つからないというメッセージが出ることがあります。これは以前に設定したYumリポジトリが誤っているためです。
cd /etc/yum.repos.d/
効いている設定ファイルを見つけて、誤ったリポジトリ設定を削除します。 キャッシュをクリアします:
yum clean all
yum makecache
これでYumは正常に動作します。
$‘\r’: コマンドが見つかりません
エラー情報:
$'\r': コマンドが見つかりません
原因: Windows形式の改行コードを使用している場合があります。
対処法:
yum -y install dos2unix
dos2unix example.sh
電源管理
スタートアッププログラム設定
例:ファイアウォール
スタートアップ設定確認:
systemctl is-enabled firewalld.service
結果(有効の場合):
enabled
無効化:
systemctl disable firewalld.service
変更後の確認:
systemctl is-enabled firewalld.service
結果(無効化後):
disabled
有効化:
systemctl enable firewalld.service
自作スクリプトの自動起動設定
この方法はCentOS 6/7共通です。
ディレクトリ:
cd /etc/rc.d/
ファイル:
rc.local
実行権限を付与:
chmod +x /etc/rc.d/rc.local
ファイル末尾に以下を追加:
# test
sh /root/startup.sh
ファイル startup.sh の内容:
touch /root/file.txt
/root/ ディレクトリ下に file.txt がないことを確認し、再起動してテストします。
安全なシャットダウン
Linuxでは多くのデータがメモリ上に存在するため、安全なシャットダウンを行うには以下のコマンドを使います。
sync; sync; shutdown -h now
安全な再起動
同様に安全な再起動は以下の通りです。
sync; sync; reboot
日付と時刻
手動設定
現在の日付や時刻を確認する:
timedatectl status
日付と時刻を設定する:
timedatectl set-time "YYYY-MM-DD HH:MM:SS"
タイムゾーンを設定する:
timedatectl set-timezone Asia/Tokyo
ntpを停止する必要がある場合:
timedatectl set-ntp false
自動同期
chrony を使用して時刻を自動同期します。
インストール:
yum -y install chrony
設定ファイル(同期サーバーを指定可能):
/etc/chrony.conf
自動起動設定:
systemctl enable chronyd
ステータス確認:
systemctl status chronyd
ディレクトリとファイル操作
ファイルの最後数行を表示
filename ファイルの最後の内容を監視します(デフォルト10行):
tail -f filename
ファイル内検索
grep コマンドを使用してファイル内の文字列を検索します:
grep "target_string" filename.log
大文字小文字を無視する場合:
grep -i "target_string" *.log
ファイル検索
特定の名前を持つファイルをディレクトリから検索します:
find / -name filename
vi 編集器
vi コマンドを使用してファイルを編集します:
vi filename
vi +n filename # n 行目にカーソル移動
vi + filename # 最終行にカーソル移動
vi +/pattern filename # 指定パターンにカーソル移動
:%s#old#new#g # abc を 123 に置換
ファイル末尾にデータ追加
sed コマンドを使って filename.txt の最後にメッセージを追加します:
sed -i '$a message' filename.txt
ファイル内容クリア
ファイルの内容を空にする:
cat /dev/null > filename.txt
ディスク使用量確認
ディレクトリのサイズを確認します:
du -sh
du -h --max-depth=1 ./
SCPを使用したファイル転送
SCPはSSHプロトコルを使った安全なファイル転送コマンドです。
基本的な使い方:
scp local_file remote_user@remote_ip:/remote/path
scp -r local_dir remote_user@remote_ip:/remote/path
マウントポイントの設定
/dev/vdb デバイスを /mnt/data にマウントする手順:
lsblk
sudo fdisk /dev/vdb
sudo mkfs.ext4 /dev/vdb1
sudo mkdir -p /mnt/data
sudo mount /dev/vdb1 /mnt/data
df -Th
sudo vi /etc/fstab
# 追記:
# /dev/vdb1 /mnt/data ext4 defaults 0 2
ネットワーク設定
ファイアウォール設定
ポートの開放状況を確認:
firewall-cmd --zone=public --list-ports
ポートを開く:
firewall-cmd --zone=public --add-port=80/tcp --permanent
ポートを閉じる:
firewall-cmd --zone=public --remove-port=80/tcp --permanent
設定を反映させるには、ファイアウォールを再起動します:
systemctl restart firewalld.service
リスニングポート確認
netstat コマンドを使用してリスニングポートを確認します:
netstat -tulnp | grep 8080
ss コマンドも利用できます:
ss -tnlp | grep 22
静的IP設定
ネットワーク設定ファイルを編集します:
vi /etc/sysconfig/network-scripts/ifcfg-ens*
必要な設定項目:
ONBOOT=yes
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=8.8.8.8
ネットワークを再起動します:
systemctl restart network
DNS設定
DNSサーバーを設定する方法:
vi /etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
hostname変更
現在のホスト名を確認:
hostname
ホスト名を変更:
hostnamectl set-hostname new_hostname
変更を反映させるには再起動が必要です:
reboot
curlコマンド
curlはHTTPリクエストを送信するための強力なツールです。
詳細情報を取得する:
curl -v http://example.com
出力をファイルに保存:
curl -o output.txt http://example.com
SELinux設定
SELinuxを一時的に無効化する方法:
setenforce 0
恒久的に無効化するには:
vi /etc/selinux/config
SELINUX=disabled
reboot
ソフトリンク作成
ソフトリンクを作成する:
ln -s /path/to/source /path/to/link
JARファイルのバックグラウンド実行
JARファイルをバックグラウンドで実行する:
nohup java -jar app.jar > logs/output.log 2>&1 &
環境変数の設定
一時的な環境変数の設定:
export MY_VAR=value
echo $MY_VAR
永続的な環境変数の設定:
vi /etc/profile
export MY_VAR=value
source /etc/profile
OSバージョン確認
OSバージョンを確認する:
cat /etc/os-release
文字セットの設定
現在の文字セットを確認する:
locale
文字セットを変更する:
localectl set-locale LANG=ja_JP.UTF-8
reboot
ファイルチェックサム
MD5チェックサムを計算する:
md5sum filename
圧縮と解凍
ZIP
ZIPファイルを作成する:
zip -r archive.zip /path/to/files
ZIPファイルを解凍する:
unzip archive.zip
TAR
TARファイルを作成する:
tar -cvf archive.tar /path/to/files
TAR.GZファイルを作成する:
tar -czvf archive.tar.gz /path/to/files
RPMとYUM
RPM
RPMパッケージをインストールする:
rpm -ivh package.rpm
RPMパッケージをアンインストールする:
rpm -e package_name
YUM
YUMリポジトリリストを確認する:
yum repolist
パッケージをインストールする:
yum install package_name
パッケージをアンインストールする:
yum remove package_name
定期タスク
cronジョブを設定する:
crontab -e
毎日の午前3時にスクリプトを実行する例:
0 3 * * * /path/to/script.sh
SSHによる無パスワードログイン
AからBへの無パスワードログインを設定する:
ssh-keygen
scp ~/.ssh/id_rsa.pub user@B:/home/user/.ssh/
ssh user@B 'cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'
ユーザー管理
ユーザーを追加する:
useradd new_user
passwd new_user
ユーザーを削除する:
userdel new_user
sudoers設定
sudoアクセスを許可する:
visudo
new_user ALL=(ALL) NOPASSWD:ALL
ハードウェア情報
CPU情報を確認する:
lscpu
メモリ情報を確認する:
free -m