- 追加された行はこの色です。
- 削除された行はこの色です。
-一行完結だが、役に立つコマンド等。ほとんどLinuxで確認しているのでSolarisだと使えないかもしれない。
#contents
*Telnet自動化 簡易版 [#kf022990]
コマンド内容をシェルに書いておく。速すぎると失敗するのでスリープを入れる
#!/bin/sh
sleep 2; echo LOGIN_ACCOUNT
sleep 2; echo PASSWORD
sleep 5; echo pwd
sleep 1; echo exit
実行は以下のように行う
sh test.txt | telnet 192.168.x.x
*コマンド集 [#x73ee2ca]
**ファイルを直接書き換える [#yacd8a8f]
sed -i 's/hogehoge/fugafuga/' hoge.txt
findとのあわせ技
find . -name "*.css" | xargs sed -i 's/fuga//'
**gzのファイルを展開せずにgrepする [#p3ae2a2c]
zgrep "キーワード" xxxlog.gz
-件数を確認するだけなら以下でよい
zgrep "キーワード" xxxlog.gz | wc -l
-結果をプレーンテキストに出力する
zgrep "キーワード" xxxlog.gz > grepresult.txt
**ftp専用ユーザの作成 [#tfbb30c4]
useradd -s /sbin/nologin ユーザ名
**ls編 [#g3d6594f]
|該当ディレクトリ以下ではなく該当ディレクトリだけの情報を見る|ls -d|
|ディレクトリだけ表示|ls -al | grep ^d|
**指定ディレクトリ以下の総ディスク使用量を求める。 [#xd9a3195]
du -h --max-depth=1 /var/tmp
**開いているポートを見る [#kb8f2365]
netstat -tpl
**touchで日付時刻指定 [#xd25a46a]
touch -t 200612312400 lastupdate
ファイルに基準時刻でtouchしておき、以下のコマンドでその時点以後に更新されたファイルがわかる。
find . -newer lastupdate
**findで複数場所から指定のファイルを探す [#p0c54dab]
find /usr/local /usr/bin /usr/sbin -type f -print
**findで最終更新日を基準にファイルを探す [#w0ab3edf]
-50日前より古い更新日付を持つファイル
find ./ -mtime +50 -name "*.gz"
-50日以内に更新されたファイル
find ./ -mtime -50 -name "*.gz"
-上記を消す場合(古いファイルを消す)
find ./ -mtime +50 -name "*.gz" | xargs rm -f
危険なのでいったんリストアップしてから、|以降の処理を加えるとよいだろう
-特定フォルダを除外してfind
find . -path "./backup" -prune -o -type f -name "*.txt"
ここではbackupフォルダを検索対象から外し、もうひとつの条件を-oオプションで付与している。
**ファイル数が多すぎるフォルダから1000ファイルずつバックアップ [#wf276cba]
rmやlsで「引数リストが長すぎます」のエラーが出てしまった時の対応でまずバックアップを取得したかったので1000ファイルずつ別のフォルダ(ここでは1_work)にコピーした。
ls --color=never | head -n 1000 | xargs -I {} mv -v {} ../1_work/
**emacsのバックアップを消す [#eea178b4]
find . -name "*~" | xargs rm
**特定の関数を使っているファイルをリストアップ [#f4a1be16]
find . -name '*.php' -type f -print | xargs grep wordwrap 2>/dev/null
find . -name "*.php" -type f | xargs grep echo
**自分がどのグループに所属するか等の情報を見るコマンド [#c953eb9f]
id
**isoイメージをマウントする [#l7cb5892]
mount -o loop xxxx.iso iso_tmp
**画面のログを取る〜script [#g06b6430]
script ログファイル名
exitするまで画面内容をログにためてくれる。エスケープシーケンスを正しく表示させるためログはcatでみるべし
**指定の行数でファイル分割〜split [#i459c248]
split -l ? intput.txt
**psですべてを表示させる [#p098da1f]
ps -efw
**不正侵入者のIP取得(Linux限定) [#qbaacafa]
grep Did secure* | awk -F" " '{print $12}'
grep Illegal secure* | awk -F" " '{print $10}' | uniq
**CSVの特定列取得 [#ta638cd9]
echo "removed,b,c,d" | awk -F"," '{print $2","$3","$4}'
**n日前GET [#r26e8c60]
date --date 'n days ago' '+%y%m%d'
**日付設定(Linux) [#febc9de2]
2006/02/15 11:30
date 0215113006
**特定のユーザーにのみsu - を許可 [#e6f523a8]
vi /etc/pam.d/suで下記部分をアンコメント
auth required /lib/security/pam_wheel.so use_uid
**シャットダウンする [#p06df3cc]
shutdown -h now(haltはNG)
**HDDの速度調査 [#za24ed34]
hdparm -ft /dev/hda
**ハードウェア情報 [#yd6ef53a]
lshwをインストールする。ほかにもlspciやlsusbがある
**コメント除去 [#eaff7378]
grep -v ^#
**コメントと空行も除去 [#ba2ead91]
grep -v -e "^[ \t]*#" -e "^$" /etc/httpd/conf/httpd.conf
**zipでディレクトリごと圧縮 [#e121c13e]
-圧縮したいディレクトリの上で以下のコマンドを実行
zip -r xxxx.zip ./圧縮したいディレクトリ
**改行コードをみる [#l021ce23]
cat -v ファイル名
CRLFなら^Mが行末に出る
**gzで圧縮されたファイルを解凍せずに見る [#h1b95464]
zcat ファイル.gz | more
*HOSTNAME変更 [#xd44ab4f]
hostname NEW_NAME
vi /etc/sysconfig/network編集
vi /etc/hosts編集
ネットワーク再起動
/etc/init.d/network restart
*キーボード編 [#n55023aa]
**CRL+Dでログアウト [#fef23802]
*有名ソフトウェア [#l52a2f3e]
**AWK [#eb9fffdd]
awk -F "delimiter" 'print {$1}'
grep wiki access_log | awk '{ printf("%10s,%10s\n",$1,$11)}' | grep -v "-" | grep -v 221.186.64.20
*ダウンロードテクニック [#j37836ea]
**正当性確認 [#hedb4126]
-ダウンロードした巨大ファイルはチェックサムで壊れてないか確認しましょう!
md5sum ファイル名
sha1sum ファイル名
*ネットワークの通信量を調べる [#k20c5368]
netstat -ic
ソースは以下のページ
http://www.math.kobe-u.ac.jp/~kodama/tips-netstatus.html
*文字コード変換 [#s04c11ff]
-nkfは知ってるけどiconvは使い方よくわからんかった。ともにEUC-JPのファイルをiso-2022-jpに変換するというもの。出力はコンソールなのでファイルに出したいならリダイレクトすればよい。
**nkf [#r87d1ce1]
nkf
**iconv [#f2ca3c57]
-fは入力ファイル文字コード。-tは出力文字コード。
iconv -f EUC-JP -t iso-2022-jp 入力ファイル名
#counter