CentOSを使用していますが、自分用にLinux系のコマンド・設定をまとめたページにしたいと思います。結構随時追加しています。
見出し
検索・ファイル内操作
find ファイル検索
1 |
$ find ファイル名 -ls |
grep ファイル内検索
1 |
$ grep "hoge" *.txt |
1 |
$ cat hoge.txt | grep "hoge" |
cut 区切り文字で分割
1 |
$ cut -d " " -f 1 hoge.txt |
※半角スペース” “区切りで1番目を取得
sort
1 |
$ sort hoge.txt |
1 |
$ cat hoge.txt | grep "hoge" | sort -r |
※-rをつけると降順になる
uniq 集約・集計
1 |
$ unic hoge.txt |
1 |
$ cat hoge.txt | grep "hoge" | sort -r | uniq -c |
※-cをつけると集約した件数も表示
head 先頭n文字取得
1 |
$ head -10 hoge.txt |
1 |
$ cat hoge.txt | grep "hoge" | sort -r | uniq -c | head -10 |
tail 末尾n文字取得
1 |
$ tail -10 hoge.txt |
1 |
$ cat hoge.txt | grep "hoge" | sort -r | uniq -c | tail -f |
※-fはリアルタイムで表示(ログを監視する際などに使用)
ディレクトリ内ファイル一覧表示
詳細情報まで表示
1 |
$ ls -la |
タイムスタンプ新しい順に表示
1 |
$ ls -lt |
タイムスタンプ古い順に表示
1 |
$ ls -ltr |
ファイルコピー
cp ファイルコピー
1 |
$ cp old.txt new.txt |
属性もコピー
1 |
$ cp -pold.txt new.txt |
ディレクトリごとコピー
1 |
$ cp -r old_dir new_dir |
ファイル削除
rm ファイル削除
1 |
$ rm [ファイル] |
ディレクトリごと削除
1 |
$ rm -rf [ディレクトリ] |
ディレクトリ作成
mkdir ディレクトリ作成
1 |
$ mkdir [ディレクトリ] |
サブディレクトリごと作成
1 |
$ mkdir -p [ディレクトリ]/[サブディレクトリ] |
ファイル同期
ディレクトリ同期・バックアップ
1 |
rsync -av test-dir/ testdir-bk/ |
ディレクトリ同期・バックアップ(ssh経由)
1 |
rsync -av -e "ssh -p 22" test-dir/ user@xxx.xxx.xxx.xxx:/test-dir/ |
ディレクトリ同期・バックアップ(ssh経由・削除あり)
同期先だけにあるファイルも削除されます。完全同期をとる場合に使用。
1 |
rsync -av --delete -e "ssh -p 22" test-dir/ user@xxx.xxx.xxx.xxx:/test-dir/ |
圧縮
tar 圧縮してアーカイブ
1 |
$ tar -cvzf testdir.gz /testdir |
解凍
tar 解凍して展開
1 |
$ tar xvzf testdir.gz |
シンボリックリンク
ファイル間でシンボリックリンクを貼る
例は1つ上の階層にあるファイルに貼ってみました。
1 |
$ ln -s ../test_file.txt test_file.txt |
ユーザ・パスワード管理
ユーザ作成
1 |
# useradd ユーザ名 |
ユーザ一覧確認
1 |
# cat /etc/passwd |
ユーザ削除
1 |
# userdel -r ユーザ名 |
パスワード設定変更
1 |
# passwd [ユーザ名] |
ユーザグループ
ユーザのグループ確認
1 |
# groups [ユーザ名] |
ユーザのグループ設定
1 |
# usermod -G [グループ名] [ユーザ名] |
グループのユーザ確認
1 |
# getent group [グループ名] |
権限関連
chown ファイル所有者変更
1 |
# chown user testfile |
chown ディレクトリ一括所有者変更
1 |
# chown -R user testdir |
chown グループにユーザ追加
1 |
# chown -G testgroup user |
chmod ファイル権限変更
1 |
# chmod 777 testfile |
chmod ディレクトリ一括権限変更
1 |
# chmod -R 777 testdir/ |
chmod ディレクトリのみ一括権限変更
1 |
# find . -type d -print | xargs chmod 755 |
※findでディレクトリのみ検索し、xargsでその結果を引数としてchmodに渡す。
chmod ファイルのみ一括権限変更
1 |
# find . -type f -print | xargs chmod 755 |
※findでファイルのみ検索し、xargsでその結果を引数としてchmodに渡す。
ログ確認
tail ログなどのリアルタイム表示
1 |
$ tail -f hoge.log |
alias
aliasに登録して短縮キー化(例としてls -laをllで登録)
1 |
$ alias ll='ls -la' |
alias ~/.bashrcに登録
1 2 3 4 5 |
$ vi ~/.bashrc で alias ll='ls -la' などと書き $ source ~/.bashrc で使えるようになる |
cron
cron設定確認
1 |
$ crontab -l |
cron編集
1 |
$ crontab -e |
cron削除(※禁止! 要注意)
1 |
$ crontab -r |
elinks
yum
RedHat系のパッケージ管理システムで、リポジトリからパッケージをダウンロードして、インストールできます。
yumインストール
1 |
# yum install [インストール対象] |
yumインストール(ログが日本語だとわかりづらい場合)
1 |
# LANG=C yuminstall [インストール対象] |
yum更新・アップデート
1 |
# yum update |
yumリスト
今持っているリポジトリにインストール対象があるかの確認時などに使用。
1 |
# yum list |
phpで絞りたい場合
1 |
# yum list | grep php |
yum リポジトリ格納場所
ダウンロード元リストの記載があるのでリポジトリを追加する際はこちらに追記する。
1 |
/etc/yum.repos.d/ |
自分のCentOS環境では以下ファイルに記載ありました。
1 |
/etc/yum.repos.d/CentOS-Base.repo |
rpm
インストールパッケージ確認
1 |
# rpm -qa | grep php |
上記例ではphpとつくパッケージを全部確認しています。
プロセス
実行中のプロセス確認
1 |
$ ps |
1 |
$ ps aux |
スペック確認
CentOS OSバージョン確認
1 |
$ cat /etc/redhat-release |
CentOSが32bitか64bitか確認
1 |
$ uname -a |
CentOS CPU確認(何を使用しているか
1 |
$ cat /proc/cpuinfo |
CentOS メモリ使用率確認
1 2 3 |
$ /usr/bin/free or $ free |
df -h 容量確認
1 |
$ df -h |
du -h ファイル容量確認
1 |
$ du -h testfile |
該当ディレクトリの容量確認
1 |
$ du [ディレクトリ名] --max-depth=1 -m |
mオプションでMB単位
メモリ・CPU負荷状況確認
例.2秒毎にコンソールに表示
1 |
$ vmstat 2 |
ネットワーク関連
IPアドレス確認
1 |
$ ifconfig |
1 |
$ ip addr show |
1 |
$ ip a |
IPアドレス設定(ローカルIP設定)
1 |
nmcli connection add type ethernet con-name local-eth1 ifname eth1 ip4 <span class="hljs-number">192.168</span><span class="hljs-number">.0</span><span class="hljs-number">.1</span>/<span class="hljs-number">24</span> gw4 <span class="hljs-number">192.168</span><span class="hljs-number">.0</span><span class="hljs-number">.254</span> |
※eth1に192.168.0.1/24を設定
※nmcli = net work manager command line interface
hostsファイルの場所・編集
1 |
$ vi /etc/hosts |
※windowsの「C:\Windows\System32\drivers\etc\hosts」に該当
ショートカット
Ctrl + d 終了・ログアウト
Ctrl + c 実行中のプログラムを強制終了
WHOISコマンド
WHOISインストール
# yum install jwhois
WHOIS確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
[root@localhost ~]# whois yahoo.co.jp [Querying whois.jprs.jp] [whois.jprs.jp] [ JPRS database provides information on network administration. Its use is ] [ restricted to network administration purposes. For further information, ] [ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e' ] [ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'. ] Domain Information: a. [Domain Name] YAHOO.CO.JP g. [Organization] Yahoo Japan Corporation l. [Organization Type] Corporation m. [Administrative Contact] HA14103JP n. [Technical Contact] KM43416JP p. [Name Server] ns01.yahoo.co.jp p. [Name Server] ns02.yahoo.co.jp p. [Name Server] ns11.yahoo.co.jp p. [Name Server] ns12.yahoo.co.jp s. [Signing Key] [State] Connected (2017/11/30) [Registered Date] 2000/11/17 [Connected Date] 2000/11/17 [Last Update] 2017/04/20 10:09:53 (JST) |
その他
コンパイル
1 |
$ make |
コマンド確認
1 |
$ which [コマンド] |
改行コード変換
1 |
$ sed -i 's/\r//' [対象ファイル] |
/bin/bash^M: bad interpreter: そのようなファイルやディレクトリはありません (No such file or directory)
というエラーが出てきた時には改行コード変換です。windowsからlinux環境へ転送する際に起きてしまう事があります。(設定による)
CentOS7
CentOS7でコマンドが変わったのでこちらに記載します。