LinuxベースのOSが入ったIoTゲートウェイを触る時によく使うコマンドのメモです。
入門の位置付けなので、それぞれのコマンドのオプションなどの深追いはしていません。ここで挙げていないオプションもたくさんあるので、気になった方は調べてみてください。
※できるだけそのまま使えるように、コマンド開始記号は省いています。
端末への接続に関するもの
シリアル接続する
screen {接続先} {接続先端末のボーレート}
例えば、ボーレートが115200 bps、接続先が /dev/tty.usbserial-xxxxxx
の端末に接続したい場合
screen /dev/tty.usbserial-xxxxxx 115200
接続を終えたい場合は command + a + k
で セッションを終わらせましょう。セッションが残っていると、再接続の際にうまくいかないことがあります。
SSH接続する
ssh {ログインユーザ}@{送信先のIP}
例えば、 user1
というログインユーザを利用して、IPアドレス 192.168.0.10
の端末に入りたい場合
ssh user1@192.168.0.10
ユーザーに関するもの
ユーザーを切り替える
rootユーザーに切り替える
- su ←
super user
su
- パスワードが必要です
- デフォルトのパスワード設定は各機器の初期設定やOSによって異なります
例えば、 user1
に切り替える
su user1
パスワードを変更する
passwd
- その後、現在のパスワードを入力(
current
とある場合) - 変更したいパスワードを入力(
Retype
と出た場合はもう一度打つ)
実行に関するもの
実行中のプロセスのうちで特定のワードが含まれるものを出力する
- ps ←
process
ps aux | grep {検索したいワード}
実行中のプロセスを強制的に終わらせる
kill {終了させたいプロセスの番号}
過去の実行コマンドの履歴を出力する
history
過去の実行コマンドから特定のワードが含まれるものを出力する
history | grep {検索したいワード}
ファイルに関するもの
ファイル・ディレクトリの一覧表示
- ls ←
list
隠しファイル( .
始まり)も表示したい時
ls -a
ファイルサイズを単位つきでわかりやすくしたい時
ls -lh
オプションは組み合わせられます
ls -lah
ファイルコピー
ファイルを別の場所にコピーする
cp {コピー元ファイル名} {コピー先ディレクトリ}
ファイルの中身を別のファイルにコピーする(別名で保存する)
cp {コピー元ファイル名} {コピー先ファイル名}
ファイル検索
全ファイルから、ファイル名に特定のワードが含まれるファイルを出力する
find / -type f -name {検索したいワード}
-
/
の検索先が全てのディレクトリ(=全てのファイル)を表します - 検索には
*
のワイルドカードを利用します。利用しない場合は、一意のファイル名検索となります - ファイルではなくディレクトリを検索したい場合は、
-type d
にします
例えば、ファイル名に test
が含まれるファイルを出力したい場合
find / -type f -name `*test*`
全ファイルから、特定の期間に更新されたファイルを出力する
-
mtime
←modified time
find / -type f -mtime {数字}
例えば、現在時刻から三日(72時間)以内に更新されたファイルの場合
find / -type f -mtime -3
例えば、現在時刻から三日以上前に更新されたファイルの場合
find / -type f -mtime +3
例えば、現在時刻から三日前(72時間前〜96時間前)の間に更新されたファイルの場合
find / -type f -mtime 3
全ファイルから、特定の期間にアクセスされたファイルを出力する
-
atime
←accessed time
find / -type f -atime {数字}
例は mtime
を参考にしてください。
全ファイルから、特定の日時にアクセスされたファイルを出力する
find / -type f -daystart -atime {数字}
-
-daystart
オプションで、1日の始まりを0時とすることができます
例えば、三日前の0時から24時の間にアクセスされたファイルを出力する
find / -type f -daystart -atime 3
-
mtime
の例のような期間指定もできます
現在のディレクトリ以下から、ファイル内テキストに特定のワードが含まれるファイルを出力する
grep ./ {検索したいワード} -slr *
-
-s
オプションでディレクトリの場合の出力(エラー出力)をスキップします -
-l
オプションでファイル名だけ出力するようにします -
-r
オプションでディレクトリ内のさらにディレクトリに再起的に検索を行います
あるファイルの中で特定のワードが含まれる列を出力する
grep {検索対象のファイル} {検索したいワード} * -sn
-
-n
オプションで行数表示させます
例えば、 syslog
に出力された rc.local
の実行に関するログを見たい場合
grep /var/log/syslog rc.local * -sn
ファイル転送
手元の端末から別端末にファイルを転送する(SSHログインが必要)
scp {送信したいファイル} {ログインユーザ}@{送信先のIP}:{送信先フォルダ}
例えば、 user1
というログインユーザを利用して、IPアドレス 192.168.0.10
の端末に入って、そのディレクトリの /home/
以下にファイル test_script.sh
を置きたい場合
scp test_script.sh user1@192.168.0.10:/home/
別端末から手元の端末にファイルを転送する(SSHログインが必要)
上の方法の「送信元」と「送信先」を入れ替えただけです。
scp {ログインユーザ}@{送信元のIP}:{送信元ファイル} {送信先}
ログファイル
ログファイル名を指定し、ファイルの最終行から遡って10行分のログを表示し続ける
tail -F {コンソールに出力したいログファイル名}
- 途中でログローテートなどによりファイル名が変更された場合は、同名のファイルをもう一度探し、開き直してくれます
- ファイル名変更後も引き続き同じファイルを参照し続けたい場合は、
-F
オプションの代わりに-f
を使います - 行数を指定する場合は
-n
オプションを利用します - コンソールがログ出力で占拠されるので、別ターミナルを開くなどの工夫が必要です
圧縮ファイル
.xz
ファイルを解凍する
xz -d {file_name}.xz
圧縮されたファイルとは別のファイルとして解凍ファイルを作成する
xz -d {file_name}.xz --keep
ファイルを .xz
形式で圧縮する
xz -z {file_name}
- オプション指定で別の形式を選べます
元ファイルとは別のファイルとして圧縮ファイルを作成する
xz -z {file_name} --keep