自分用Linuxコマンドリファレンス

今日以降「あれ?どうすんだっけ?」となったコマンドは全てココに記録する所存。

1. システム関連

1-1. バージョン確認

//AlmaLinux
$ cat /etc/almalinux-release
AlmaLinux release 9.1 (Lime Lynx)

//CentOS
$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

//redhat系
$ cat /etc/redhat-release
AlmaLinux release 8.9 (Midnight Oncilla)
$ ll /etc/redhat-release
lrwxrwxrwx. 1 root root 17 11月 16  2023 /etc/redhat-release -> almalinux-release

1-2. メモリ確認

$ free -h
          total      used      free    shared  buff/cache   available
Mem:        62G      3.0G       55G      658M        4.3G         58G
Swap:      127G        0B      127G

1-3. CPU情報

$ lscpu
アーキテクチャ: x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
コアあたりのスレッド数:1
ソケットあたりのコア数:4
Socket(s):             1
NUMAノード:         1
ベンダーID:        GenuineIntel
CPUファミリー:    6
  :
  :

2. ファイル操作関連

2-1. ディレクトリを再帰的に表示

$ ll -R
.:
合計 8
drwxrwxr-x 3 www www 4096  6月 20  2018 backup
drwxrwxr-x 2 www www 4096  4月 17  2018 bin
  :
  :

//ベタに出力したい場合
$ ll -d $(find `pwd`)
rwx------ 8 www www       4096  5月 25 12:27 /home/www
-rw------- 1 www www      17386  5月 25 01:46 /home/www/.bash_history
-rw-r--r-- 1 www www         18  9月  7  2017 /home/www/.bash_logout
  :
  :

2-2. diffでディレクトリ間を再帰的に比較

diff -r hoge1 hoge2

3. ユーザ/グループ操作関連

3-1. グループを管理

//グループ一覧
$ cat /etc/group

//指定グループの所属ユーザ
$ cat /etc/group | grep グループ

//指定ユーザの所属グループ
$ groups ユーザ名

//ユーザuserfugaをグループgrouphogeに追加する
# gpasswd -a userfuga grouphoge

//ユーザuserfugaをグループgrouphogeから削除する
# gpasswd -d userfuga grouphoge
  • usermodコマンドでも変更できるけど、全所属グループを指定する必要があるのと、間違ってプライマリーグループを変更する可能性もあるのでgpasswdのがいいと思う。
  • グループへの追加削除はrootが必要。
  • グループの変更が反映されるのは次回ログインから。

4. その他

4-1. cron

$ crontab -l
05 01 01 * *     /usr/bin/php /hoge/app/batch/logRotate.php
30 19  * * *     /usr/bin/php /hoge/app/batch/backup.php
  :
  :

分   時   日   月   曜    コマンド
05   01   01   *   *    /usr/bin/php /hoge/app/batch/logRotate.php

パラメタ
 分  : 0-59
 時  : 0-23
 日  : 1-31
 月  : 1-12
 曜  : 0-7 (0|7=日曜)

指定方法
 リスト : 0,15,30,45(分で指定した場合、15分に一度処理実行)
 範 囲 : 1-5(曜で指定した場合、月~金に処理実行)

4-2. ftp

//ファイルを1個だけ転送するサンプル

$ cat ftp1.sh
#!/bin/sh

ftp -n <<END
open -xxx.xxx.xxx.xxx-
user -user- -password-
binary
prompt
lcd  $1
put  $2

$ ftp1.sh -転送元ディレクトリ- -転送ファイル-

ftp -n
 -nは自動ログインなし、ログインプロンプトの表示なし。
 シェルスクリプトでftpするときの定番おまじない。

open -xxx.xxx.xxx.xxx-
 リモートホストに接続。

close
 openで接続したリモートホストから切断する。

quit/by/bye/exit
 ftpを終了

binary
 ファイル転送時に改行コード変換をしない。
 対になるコマンドでascii(改行コード変換あり)がある。
 今の時代、転送時に改行コードを変換はしない、binary一択。

ls -dir-
 リモートホストのファイルを一覧する。

cd -dir-
 リモートホストのディレクトリを移動する

lcd  -dir-
 ローカルマシンのディレクトリを移動する

pwd
 リモートホストのカレントディレクトリを表示する。

mkdir
 リモートホストにディレクトリを作成する

chmod
 リモートホストのファイルやディレクトリのアクセス権を指定する。

!***
 ローカルマシンで任意のコマンド(***)を実行する

get -rfile- [-lfile-]
 リモートホストのファイルをローカルマシンへ受信する。-lfile-は省略可。

put -lfile- [-rfile-]
 ローカルマシンのファイルをリモートホストへ送信する。-rfile-は省略可。

mget -rfiles-
 リモートホストの複数ファイルをローカルマシンへ受信する。-rfiles-はワイルドカード使用可。

mput -lfiles-
 ローカルマシンの複数ファイルをリモートホストへ送信する。-lfiles-はワイルドカード使用可。

user -user- -password-
 指定ユーザ/パスワードでログイン。

prompt
 mget/mputしたときのプロンプトを抑止する。
 シェルスクリプトでftpするときの定番おまじない。