タグ別アーカイブ: Linuxコマンド

grepコマンドでAND・OR検索

grepコマンドでのAND検索は、パイプで検索文字列を追加。
OR検索は、検索文字列の間に「\|」を入れること。

# Apacheのアクセスログから「feed」を含む文字列を参照
cat /var/log/httpd/access_log |grep "feed"
#上記のログを、検索文字列「feed」「403」でAND検索
cat /var/log/httpd/access_log | grep "feed" | grep "403"
#上記のログを、検索文字列「feed」「403」でOR検索
cat /var/log/httpd/access_log | grep "feed\|403"

Linuxでコマンド履歴を残さない方法

本来ならば、コマンド履歴は記録に残して然るべきですが
そうとも言えない場合の裏ワザが御座いまして。
当然悪用厳禁。

・先頭がスペースであるコマンドを履歴に残さない方法
※はてなブックマークでの補足コメント、有難う御座いました。

export HISTCONTROL=ignorespace

・先頭がスペースであるコマンドを履歴に残さない+重複コマンドを記録しない方法

export HISTCONTROL=ignoreboth

多用するなら「~/.bashrc」に書き込んでおくと便利。

環境変数「export」は、ユーザがログアウトするかシステムを再起動するまで有効。
それを好まない場合でコマンド履歴を残さない方法が以下の通り。

・一行のコマンドを履歴に残さない方法

`example-command`;history -d `history|awk '{a=$1;}END{print a;}'`

・一連の作業でコマンド履歴を残さない方法

#秘密作業開始
HISTIGNORE=*;history -d `history|awk '{a=$1;}END{print a;}'`
#秘密作業終了
unset HISTIGNORE

・コマンド履歴の削除
※ historyコマンドで、該当コマンドの履歴番号を確認しておくこと

#1行コマンドの削除
history -d 履歴番号
#コマンド全履歴の削除
history -c
#コマンド履歴に残さず1行コマンドを削除する
`history -d 履歴番号`;history -d `history|awk '{a=$1;}END{print a;}'`
#コマンド履歴に残さずコマンド全履歴を削除する
`history -c`;history -d `history|awk '{a=$1;}END{print a;}'`

情報提供元:
ぽりぽりLinux: Linux(Bash)でコマンド履歴を残さない

Linuxサーバ実機のターミナル上で、コンソールログの出力レベルを調整する方法

通常サーバを操作するとすれば、sshやtelnetをお使いになっていると思いますが
仮に遠隔上のターミナルではなく、実機を操作する際に
コマンドの入力中にログがリアルタイムに出力されて、鬱陶しい思いをしたことのある方は少なからずいらっしゃるのでは。
今日は、そんな邪魔なコンソールエラーを消す方法をご紹介。

#syslogのコンフィグを編集
vi /etc/sysconfig/rsyslog
#↓以下をコメントアウト
#SYSLOGD_OPTIONS="-c 5"
#追加
SYSLOGD_OPTIONS="-x -c 4"
# syslog再起動
sudo systemctl restart rsyslog

※1 コンフィグの内訳:IP→ホストの名前引きをせず、エラーレベル4以下(レベル5~7)のログ出力をしない。
-x:IP→ホストの名前引きをせず、IPのみ記録する
-c:コンソールに出力するログのレベルの既定値を指定する(例:-c 4)

※2 エラーレベルの内訳:
0:システムが利用できなくなった
1:早急に対応しなくてはならない
2:緊急状態
3:エラー発生状態
4:注意が必要
5:お知らせ程度
6:情報
7:デバッグメッセージ

有効なコンフィグだけを抜き出す正規表現

要は、コンフィグファイルを覗いて
設定変数の頭にコメントアウトが入っていなければ、その設定が生きているということ。
なので、こう。

cat /path/to/config_file | grep ^[^\#\;\/]