forked from netkiller/netkiller.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.html
More file actions
192 lines (154 loc) · 10.7 KB
/
Copy pathexample.html
File metadata and controls
192 lines (154 loc) · 10.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>1.8. Example</title><link rel="stylesheet" type="text/css" href="..//docbook.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><meta name="keywords" content="shell,bash,zsh, awk,sed,curl,expect, grep,sort" /><link rel="home" href="../index.html" title="Netkiller Linux Shell 手札" /><link rel="up" href="index.html" title="第 1 章 Bash Shell" /><link rel="prev" href="select.html" title="1.7. User interfaces" /><link rel="next" href="../zsh/index.html" title="第 2 章 Z Shell" /></head><body><a xmlns="" href="http://www.netkiller.cn/">Home</a> |
<a xmlns="" href="http://netkiller.github.io/">简体中文</a> |
<a xmlns="" href="http://netkiller.sourceforge.net/">繁体中文</a> |
<a xmlns="" href="/journal/index.html">杂文</a> |
<a xmlns="" href="/search.html">Search</a> |
<a xmlns="" href="http://netkiller-github-com.iteye.com/">ITEYE 博客</a> |
<a xmlns="" href="http://my.oschina.net/neochen/">OSChina 博客</a> |
<a xmlns="" href="https://www.facebook.com/bg7nyt">Facebook</a> |
<a xmlns="" href="http://cn.linkedin.com/in/netkiller/">Linkedin</a> |
<a xmlns="" href="https://zb.oschina.net/profile/725072/market">作品与服务</a> |
<a xmlns="" href="mailto:netkiller@msn.com">Email</a><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">1.8. Example</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="select.html">上一页</a> </td><th width="60%" align="center">第 1 章 Bash Shell</th><td width="20%" align="right"> <a accesskey="n" href="../zsh/index.html">下一页</a></td></tr></table><hr /></div><table xmlns=""><tr><td><iframe src="http://ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=watch&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="http://ghbtns.com/github-btn.html?user=netkiller&repo=netkiller.github.io&type=fork&count=true&size=large" height="30" width="170" frameborder="0" scrolling="0" style="width:170px; height: 30px;" allowTransparency="true"></iframe></td><td><iframe src="http://ghbtns.com/github-btn.html?user=netkiller&type=follow&count=true&size=large" height="30" width="240" frameborder="0" scrolling="0" style="width:240px; height: 30px;" allowTransparency="true"></iframe></td></tr></table><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="example"></a>1.8. Example</h2></div></div></div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm45249931593616"></a>1.8.1. 有趣的Shell</h3></div></div></div>
<p>运行后会不停的fork新的进程,直到你的资源消耗尽。</p>
<pre class="screen">
:() { :|:& }; :
.() { .|.& }; .
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="example.backup"></a>1.8.2. backup</h3></div></div></div>
<pre class="screen">
#!/bin/sh
umount /mnt/backup
mount /dev/sdb1 /mnt/backup
if [ `date +%d` = '01' ] #每月1号进行完全备份
then
bakdir="/mnt/bak/daybak/month/"`date +%m%d`
zl="" #进行完全备份
else
backup_dir="/mnt/backup/"`date +%d`
zl="-N "`date +'%Y-%m-01 00:00:01'`; #差异备份
#zl="-N "`date -d '-1 day' +'%Y-%m-%d 00:00:01'` #日增量备份
fi
tar "${zl}" -czf ${backup_dir}/www.tgz /var/www
umount /mnt/backup
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="example.cpuinfo"></a>1.8.3. CPU 核心数</h3></div></div></div>
<pre class="screen">
cat /proc/cpuinfo | grep processor | wc -l
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="example.password"></a>1.8.4. Password</h3></div></div></div>
<div class="example"><a id="idm45249931586784"></a><p class="title"><strong>例 1.12. random password</strong></p><div class="example-contents">
<pre class="screen">
cat /dev/urandom | head -1 | md5sum | head -c 8
od -N 4 -t x4 /dev/random | head -1 | awk '{print $2}'
</pre>
</div></div><br class="example-break" />
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="processes"></a>1.8.5. processes</h3></div></div></div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931583840"></a>1.8.5.1. pid</h4></div></div></div>
<pre class="screen">
neo@debian:~/html/temp$ pidof lighttpd
2775
neo@debian:~/html/temp$ pgrep lighttpd
2775
neo@debian:~/html/temp$ pid=`pidof lighttpd`
neo@debian:~/html/temp$ echo $pid
2775
</pre>
<pre class="screen">
# user=`whoami`
# pgrep -u $user -f cassandra | xargs kill -9
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931581984"></a>1.8.5.2. kill</h4></div></div></div>
<p>kill 占用7800端口的进程</p>
<pre class="screen">
kill -9 `netstat -nlp | grep '192.168.0.5:7800' | awk -F ' ' '{print $7}' | awk -F '/' '{print $1}'`
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931580128"></a>1.8.5.3. pgrep</h4></div></div></div>
<pre class="screen">
#!/bin/bash
ntpdate 172.16.10.10
pid=$(pgrep rsync)
if [ -z "$pid" ]; then
rsync -auzP --delete -e ssh --exclude=example/images --exclude=project/product --exclude=project/templates/caches root@172.16.10.10:/www/project /www
fi
</pre>
</div>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="example1"></a>1.8.6. Shell 技巧</h3></div></div></div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931577440"></a>1.8.6.1. 行转列,再批评</h4></div></div></div>
<pre class="screen">
echo "abc def gfh ijk"| sed "s:\ :\n:g" |grep -w gfh
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931576064"></a>1.8.6.2. for vs while</h4></div></div></div>
<pre class="screen">
echo "aaa bbb ccc" > test.txt
echo "ddd eee fff" >> test.txt
</pre>
<pre class="screen">
for line in $(cat test.txt)
do
echo $line
done
</pre>
<pre class="screen">
cat test.txt| while read line
do
echo $line
done
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm45249931573696"></a>1.8.6.3. 遍历字符串</h4></div></div></div>
<pre class="screen">
# find . -name "*.html" -o -name "*.php" -o -name '*.dwt' -printf "[%p] " -exec grep -c 'head' {} \; | grep -v "0$" |more
</pre>
</div>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm45249931572064"></a>1.8.7. to convert utf-8 from gb2312 code</h3></div></div></div>
<pre class="programlisting">
perl - MEncode - pi - e ' $_=encode_utf8(decode(gb2312=>$_)) ' filename
for f in `find .`; do [ -f $f ] && perl -MEncode -pi -e '$_=encode_utf8(decode(gb2312=>$_))' $f; done;
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm45249931570544"></a>1.8.8. 使用内存的百分比 </h3></div></div></div>
<pre class="screen">
$ free | sed -n 2p | awk '{print "used="$3/$2*100"%","free="$4/$2*100"%"}'
used=53.9682% free=46.0318%
</pre>
</div>
<div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm45249931569136"></a>1.8.9. 合并apache被cronlog分割的log文件</h3></div></div></div>
<pre class="screen">
$ find 2009 -type f -name access.log -exec cat {} >> access.log \;
</pre>
</div>
</div><div xmlns="" id="disqus_thread"></div><script xmlns="" type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
//if(document.domain == 'netkiller.github.io'){
var disqus_shortname = 'netkiller'; // required: replace example with your forum shortname
//}else{
//var disqus_shortname = 'neochan';
//}
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script><noscript xmlns="">Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript><a xmlns="" href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a><br xmlns="" /><script xmlns="" type="text/javascript" id="clustrmaps" src="//cdn.clustrmaps.com/map_v2.js?u=r5HG&d=9mi5r_kkDC8uxG8HuY3p4-2qgeeVypAK9vMD-2P6BYM"></script><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="select.html">上一页</a> </td><td width="20%" align="center"><a accesskey="u" href="index.html">上一级</a></td><td width="40%" align="right"> <a accesskey="n" href="../zsh/index.html">下一页</a></td></tr><tr><td width="40%" align="left" valign="top">1.7. User interfaces </td><td width="20%" align="center"><a accesskey="h" href="../index.html">起始页</a></td><td width="40%" align="right" valign="top"> 第 2 章 Z Shell</td></tr></table></div><script xmlns="">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-11694057-1', 'auto');
ga('send', 'pageview');
</script><script xmlns="" type="text/javascript">
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F997cd4a7320a82d72cb74d179118f697' type='text/javascript'%3E%3C/script%3E"));
</script><script xmlns="" type="text/javascript" src="/js/q.js"></script></body></html>