開いているポートを調べる
nmap localhost
ディレクトリを固める
hogeディレクトリ以下をまとめたいとき
tar cvfz ocn.tar.gz hoge
解凍。
tar xvfz ocn.tar.gz hoge
中身を確認。
tar tvfz ocn.tar.gz hoge
プロセスを文字列指定で消す。
ps -e |grep -v grep|grep 文字列 | awk '{ print "kill -9 ",$1 }'| sh
指定ファイルの中に指定文字があるか検索
find . -name '*.php*' -print |xargs grep 'norm_*'
以下でもできるが、ファイル名が出ない。 {} の部分にファイル名が渡される。 \; はおまじない。
find . -name \*.c -exec grep hogehoge {} \;
http://10.1.1.86/html/puki/index.php?%BE%AE%B5%BB%2FUNIX#content_1_3
unixでのファイルの解凍・圧縮方法
.gz
解凍(元ファイルは消える)
gzip -d filename 標準出力して元ファイルを残す方法は以下 gzip -dc filename
圧縮(元ファイルは消える)
gzip filename
.zip
解凍
unzip filename
圧縮
zip compress.zip file1 file2
http://uguisu.skr.jp/Windows/tar.html
リダイレクトの話
- 前提 0 標準入力 1 標準出力 2 標準エラー
-
どちらかの出力を消す
command 1>/dev/null command 2>/dev/null
-
標準出力と標準エラーをまとめてコマンドへ
command 2>&1 |less
-
標準出力と標準エラーをまとめてファイル出力
command >file 2>&1
-
2>&1の意味
- 2 の出力先を、1 の出力先と同じものに設定する
- 2 の出力先を 1 にマージするではない
-
また、リダイレクトは左から順番に解析される
したがって下記の書き方ではうまくいかない
command 2>&1 1>file
最初に2が1と同じ画面に設定されr、その後1だけfileに設定されるから 一方以下の下記かたならばcommand 1>file 2>&1
最初に1の出力先がファイルになり、2の出力先が1と同じファイルに設定される。
http://x68000.q-e-d.net/68user/unix/pickup?%A5%EA%A5%C0%A5%A4%A5%EC%A5%AF%A5%C8
bashの設定ファイル
ログインした時の読み込み順
1 | /etc/profile | 全体に効く設定(ログイン時のみ) |
2 | /etc/bashrc | 全体に効く設定(毎回) |
3 | /.bashrc | ユーザごとに効く設定(毎回) |
4 | /.bash_profile | ユーザごとに効く設定(ログイン時のみ) |
実際には、システムにより/etc/profileが読み込まれ、 続いて、システムにより/.bash_profileが読み込まれるが先頭で.bashrcが読み込まれ さらに.bashrcでは先頭で/etc/bashrcが読み込まれるため上記のような順番になる。 ※profileは、ログイン時のみ必要な処理を記述する。
suの時の読み込み順
1 | /etc/bashrc | 全体に効く設定(毎回) |
2 | /.bashrc | ユーザごとに効く設定(ログイン時のみ) |
locate用のDBを更新する
$ updatedb
一定期間より前の古いファイルを削除したい
-
まずチェック用
find /hoge/log -type f -daystart -mtime +4 -printf "%TD %p\n" |grep -v '\.svn' |sort
-
削除用
find /hoge/log -type f -daystart -mtime +4 |grep -v '\.svn' |xargs rm
-
意味
-type f →ファイルのみを対象とする -daystart 基準時間をその日の0:00にする -mtime +4 →5日以前のファイルを対象とする (atime:アクセス日 ctime:ステータス変更 mtime:修正) -printf "%TD %p\n" タイムスタンプとファイル名を表示する grep - v '.*\.svn.*' →.svnを含まないものを対象とする
-
日付指定の仕方
-mtime +4 ...5日以前 -mtime 4 ...4日丁度 -mtime -4 ...3日以内
ディスク使用量
df -h
ディレクトリ使用量
du -sk ディレクトリ
- k デフォルトの 512 バイト単位の代わりに 1024 バイト単位を使用する。
- s 実際に引き数で指定された対象による使用量のみを表示し、そのサブディレクトリによる使用量は表示しない。
容量を食ってるディレクトリを特定する
以下のコマンドを「/」におりて実行
ls | sudo xargs du -sm | sort -nr
表示された一覧から、容量を食ってるディレクトリに移動して、 上記コマンドを繰り返す。
- s サブディレクトリを無視
- m 単位をMで
IPアドレスを調べる
/sbin/ifconfig
CPUを調べる
cat /proc/cpuinfo
メモリを調べる
free -m
- m MB単位で表示
OSを調べる
cat /etc/redhat-release
カーネルを調べる
uname -a
子供を飛ばして孫ディレクトリを作る
mkdir -p dir1/dir2
時刻の設定
date MMDDhhmmYY 例 sudo date 0810235500