ラベル Linux/Unix の投稿を表示しています。 すべての投稿を表示
ラベル Linux/Unix の投稿を表示しています。 すべての投稿を表示

2014/01/21

[Linux] treeコマンド ディレクトリの階層・ファイルとかをツリー表示

例) ディレクトリのみを ディレクトリ優先で 3階層目まで表示

tree -d  --dirsfirst -L 3

コマンドオプション)
-d          ディレクトリのみ表示する
-L level    指定したレベルのディレクトリ階層までしか検索しない。
--dirsfirst  ファイルよりディレクトリを前に表示する。


参考)
ディレクトリ構造のドキュメント化に便利なtreeコマンドのオプション一覧(linux) http://blog.layer8.sh/ja/2012/04/16/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E9%80%A0%E3%81%AE%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E5%8C%96%E3%81%AB%E4%BE%BF%E5%88%A9%E3%81%AAtree%E3%82%B3/


2013/01/07

[Linux] 鯖の日付時刻をセットし直す dateコマンド

いっつもいっつもいっつも忘れるのでめも

date setする
例) date -s "12/07 18:32 2012"

2012/11/09

[OpenSSH] chroot 機能

★OpenSSH 4.9 以降〜 正式サポート

chrootとは、UNIXオペレーティングシステムにおいて、現在のプロセスとその子プロセス群に対してルートディレクトリを変更する操作である。ルートディレクトリを別のディレクトリに変更されたプロセスは、その範囲外のファイルにはアクセスできなくなるため、この操作をchroot監獄などとも呼ぶ。

2012/06/05

同じネットワーク内でのvhosts設定

※まんま みーとくんからの転載 めもさせていただいた。


バーチャルホストの設定 - 肉になるメモ
http://d.hatena.ne.jp/kazumeat/20120130/1327918879

・/etc/httpd/con.d 以下にアプリ用のconfを作成
NameVirtualHost 192.168.1.111:80
#
# app1
#
<VirtualHost 192.168.1.111:80>
  DocumentRoot /var/www/app1
  ServerName app1.com
  ErrorLog logs/app1_error_log
  CustomLog logs/app1_access_log common
  <Directory "/var/www/app1">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>

#
# app2
#
<VirtualHost 192.168.1.111:80>
  DocumentRoot /var/www/app2
  ServerName app2.com
  ErrorLog logs/app2_error_log
  CustomLog logs/app2_access_log common
  <Directory "/var/www/app2">
      Options Indexes FollowSymLinks Includes ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
  </Directory>
</VirtualHost>
・ローカルのhostsファイル設定
C:\Windows\System32\drivers\etc\hosts
192.168.1.111        app1.com
192.168.1.111        app2.com

2012/05/27

ファイル名一括変更

※ Unixには無いらしい


rename [ -option ] perlexpr [ files ]
Unixには無いらしい
こんなファイルがあったとして
diary_YYYYMMDD.html
例)2011/08月分のファイルを一括バックアップリネーム→.html_bkにする
# 一覧確認
ls -l diary_201108??.html
rename 's/.html/.html_bk/' diary_201108??.html
# 一覧(再)確認
ls -l diary_201108??.html
参考)
ファイル名を一括変更するには(renameコマンド) - UbuntuJapanese Wiki






日付指定で touch


-d
touch -d "2 February 2011" [file_path]
touch -d "2003/1/1 00:00:00 am" [file_path]
 ※日時の設定は一般的な書き方をすることができる(例:"2000/1/8 13:14:00","Sat Jan 8 00:15:00 JST 2000",など)
-t
touch -t 200512011205 [file_path] 2005年12月1日12時05分に更新
 ※([CC]YY)MMDDhhmm[.SS]



2012/05/26

Vim コマンドとかショートカットとかイロイロ


■移動系
| 行の先頭に移動(空白を無視)
_ 行の先頭に移動
  1. 下の行の先頭に移動
$ 行の末尾に移動
■カーソルがあってる文字列で次を検索
# *の逆
% 対応するカッコに移動
( 次の段落に移動(次の空行など)
) (の逆
e 単語単位で次に移動
b eの逆
g ファイルの始点に移動
G ファイルの終端に移動
:数字 数字の行に移動
Ctrl + u 画面半分上に移動
Ctrl + d 画面半分下に移動
■入力モードへの変更
i カーソルの左側から入力開始
I 行の先端から入力開始
a カーソルの右側から入力開始
A 行の終端から入力開始
o カーソルの下に改行してから入力開始
O カーソルの上に改行してから入力開始
■その他
undo ヒストリーバック
Ctrl + r redo uの逆
コピペ削除など
dd 今いる行を切り取り
d数字 今いる行+下の数字分の行を切り取り
yy 今いる行をコピー
y数字 今いる行+下の数字分の行をコピー
文字列検索とか
文字列検索
/検索文字列
n 次の該当箇所
N 前の該当箇所
:%s/痴漢前/痴漢後/g 全部痴漢
■ビジュアルモード的な感じ
v 項目選択
vを押下後に十字キーもしくは、hjklで移動すると文字列を選択しながら移動する
V 現在の行を全て選択
選択した状態で以下のコマンド
y 選択箇所をコピー
d 選択箇所を切り取り
p 選択箇所に上書きでペースト
r後に任意のキー 選択箇所全てをキーの文字列痴漢
u 選択箇所を全て小文字に
U 選択箇所を全て大文字に
■File explorer
:Sex ウインドウを分割してファイルエクスプローラを開く

参考*1



2012/05/14

watch コマンド


$ watch -n 秒数 定期的に実行したいコマンド
◎1秒おきに ls
watch -dc -n 1 ls -al

findコマンド − 複数ファイル名を指定して検索


◎複数の名前条件を指定
find . -type f -name "*.gif" -o -name "*.png"
find . -type f \( -name "*.gif" -o -name "*.png" -o -name ".txt" \)
括弧をつけて指定するときは、括弧()の前後に1スペース開いてないとだめ

DIRA DIRB DIRC 3個のディレクトリから -name [pattern]のついてるファイルを探して、詳細表示
# find DIRA DIRB DIRC -type f -name "hoge.*" | xargs ls -l


2012/05/10

linuxのディストリビューションを調べる

cat /etc/issue | head -n 1

webサーバー運用系コマンド


#1 ディスク使用量を見る コマンド:df
df -a -h
Filesystem Size Used Avail Capacity Mounted on
/dev/da0s1a 1008M 74M 853M 8% /
/dev/da0s1h 24G 16G 5.5G 75% /home
/dev/da0s1f 1008M 4.5M 923M 0% /tmp
/dev/da0s1g 4.9G 3.7G 864M 81% /usr
/dev/da0s1e 1008M 216M 711M 23% /var
procfs 4.0K 4.0K 0B 100% /proc
#2ファイル/DIR検索 コマンド:find
・ファイルサイズ100MB以上のでかいファイルを探す
find /usr/ -type f -size +100000k -ls | sort -n | tail -5
#tail -5で大きい順に5件表示
#3 ディレクトリの使用サイズを調べる コマンド:du
# du -h /usr/local/apache2/logs/
ディレクトリの総容量
# du -h -s dir_name
512K dir_name ←総容量のみ表示される
・サブディレクトリ毎の容量
# du -h dir_name
12K dir_name/aaa
4K dir_name/bbb
54K dir_name/ccc
16K dir_name/ddd
178K dir_name/eee
40K dir_name/fff
56K dir_name/ggg
162K dir_name/hhh
512K dir_name ←最終行で総容量が表示される
・使用量の多いDIRワースト10表示
du -h | sort -n | tail | sort -r

.tar.gz 圧縮・解凍


# 圧縮
tar czvf package.tar.gz package-dir
解凍(元のパッケージ・ファイルを残す)
tar xzvf package.tar.gz
# .tar.gzファイルの中身を解凍せずに確認 コマンド:tar tzvf (.tar.gzファイル名)
tar tzvf 2006.tar.gz | head
#| head で、アーカイブ先頭から10行分だけ表示。

dateコマンドとunixtime


日付 から unixtime への変換方法
$ date +%s
1108218628
特定の日付を変換したいときは、'--date' オプションを利用する。
$ date +%s --date "2005-01-01 00:00"
1104505200
unixtime から 日付 への変換方法
awk使用。
$ echo 1104505200 | awk '{print strftime("%c",$1)}'
Sat Jan 1 00:00:00 2005
フォーマット
$ echo 1104505200 | awk '{print strftime("%Y-%m-%d %H:%M:%S",$1)}'
2005-01-01 00:00:00
参考)

↓こんなのもあった
date -d "@$(date +%s)"
参考)3分 Code Reading - date編

複数のログなどから重複している行を調べる


cat a.txt b.txt | sort | uniq -c | sort -n > hoge.txt
a.txt と b.txtをcatでマージ。
いったんソートして並べ替えて。(同じログの行なら隣同士になる)
ソートした中からユニークをカウント。
ユニーク数でソートしなおし。
あとは、awkとかで取り出せばいいかも。

2012/05/08

.gzファイルを元ファイルはそのままに、中身を標準出力に展開する -gunzipコマンド


gunzip -c request.log.5.gz | more
構文:gzip [オプション] [ファイル名]
-c 復元(伸長)したデータを標準出力する。
-d 圧縮されたファイルを復元する。
-f 同名ファイルが存在した場合、警告を表示せずに強制的に上書きする。
-h ヘルプを表示する。
-l 圧縮されたファイルの内容を表示する。
-q コマンドのメッセージを抑制する。
-S .suf 圧縮されたファイルに付与するサフィックス(接尾辞)を「.suf」にする
-t 圧縮されたファイルをチェックする。
-v 圧縮作業の状態の詳細を表示する
-n 圧縮速度を指定する(n=1(圧縮速度優先)~9(圧縮率優先))