<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>linux &#8211; 个人随笔</title>
	<atom:link href="/label/linux/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description></description>
	<lastBuildDate>Tue, 22 Mar 2022 13:10:56 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.1</generator>

<image>
	<url>/wp-content/uploads/2022/01/cropped-截屏2022-01-01-18.57.09-32x32.png</url>
	<title>linux &#8211; 个人随笔</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>[资料]常用linux命令</title>
		<link>/uncategorized/8964.html</link>
					<comments>/uncategorized/8964.html#respond</comments>
		
		<dc:creator><![CDATA[Mr.Lee]]></dc:creator>
		<pubDate>Tue, 22 Mar 2022 12:58:23 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[基本操作]]></category>
		<category><![CDATA[未分类]]></category>
		<category><![CDATA[资料]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux命令]]></category>
		<category><![CDATA[正则]]></category>
		<category><![CDATA[面试]]></category>
		<guid isPermaLink="false">/?p=8964</guid>

					<description><![CDATA[linux也是我们在工作中，在开发中都会用到的。虽然你程序员不需要像运维工程师那样专业，但是基础的linux知 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>linux也是我们在工作中，在开发中都会用到的。虽然你程序员不需要像运维工程师那样专业，但是基础的linux知识你必须要懂，下面来看看总结的命令。</p>



<p>1、删除0字节文件</p>



<pre class="wp-block-code"><code>find -type f -size 0 -exec rm -rf {} \;</code></pre>



<p>2、查看进程<br>按内存从大到小排列</p>



<pre class="wp-block-code"><code>PS -e -o "%C : %p : %z : %a"|sort -k5 -nr</code></pre>



<p>3、按 CPU 利用率从大到小排列</p>



<pre class="wp-block-code"><code>ps -e -o "%C : %p : %z : %a"|sort -nr</code></pre>



<p>4、打印 cache 里的URL</p>



<pre class="wp-block-code"><code>grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F'http:' '{print "http:"$2;}'</code></pre>



<p>5、查看 http 的并发请求数及其 TCP 连接状态：</p>



<pre class="wp-block-code"><code>netstat -n | awk '/^tcp/ {++S&#91;$NF]} END {for(a in S) print a, S&#91;a]}'</code></pre>



<p>6、 <code>sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config</code> sed 在这个文里 Root 的一行，匹配 Root 一行，将 no 替换成 yes。<br>7、如何杀掉 MySQL 进程</p>



<pre class="wp-block-code"><code>ps aux |grep mysql |grep -v grep  |awk '{print $2}' |xargs kill -9 (从中了解到awk的用途)

killall -TERM mysqld

kill -9 `cat /usr/local/apache2/logs/httpd.pid`   试试查杀进程PID</code></pre>



<p>8、显示运行 3 级别开启的服务:</p>



<pre class="wp-block-code"><code>ls /etc/rc3.d/S* |cut -c 15-   (从中了解到cut的用途，截取数据)</code></pre>



<p>9、如何在编写 SHELL 显示多个信息，用 EOF</p>



<pre class="wp-block-code"><code>cat &lt;&lt; EOF
+--------------------------------------------------------------+
|       === Welcome to Tunoff services ===                |
+--------------------------------------------------------------+
EOF</code></pre>



<p>10、for 的巧用（如给 MySQL 建软链接）</p>



<pre class="wp-block-code"><code>cd /usr/local/mysql/bin
for i in *
do ln /usr/local/mysql/bin/$i /usr/bin/$i
done</code></pre>



<p>11、取 IP 地址</p>



<pre class="wp-block-code"><code>ifconfig eth0 |grep "inet addr:" |awk '{print $2}'| cut -c 6-  
或者
ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'</code></pre>



<p>12、内存的大小:</p>



<pre class="wp-block-code"><code>free -m |grep "Mem" | awk '{print $2}'</code></pre>



<p>13</p>



<pre class="wp-block-code"><code>netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort</code></pre>



<p>14、查看 Apache 的并发请求数及其 TCP 连接状态：</p>



<pre class="wp-block-code"><code>netstat -n | awk '/^tcp/ {++S&#91;$NF]} END {for(a in S) print a, S&#91;a]}'</code></pre>



<p>15、因为同事要统计一下服务器下面所有的 jpg 的文件的大小，写了个 SHELL 给他来统计。原来用 xargs 实现，但他一次处理一部分。搞的有多个总和……，下面的命令就能解决。</p>



<pre class="wp-block-code"><code>find / -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'</code></pre>



<p>CPU 的数量（多核算多个CPU，<code>cat /proc/cpuinfo |grep -c processor</code>）越多，系统负载越低，每秒能处理的请求数也越多。</p>



<p>16、CPU负载</p>



<pre class="wp-block-code"><code>cat /proc/loadavg</code></pre>



<p>检查前三个输出值是否超过了系统逻辑 CPU 的4倍。</p>



<p>17、 CPU负载</p>



<pre class="wp-block-code"><code>mpstat 1 1</code></pre>



<p>检查 %idle 是否过低（比如小于5%）。</p>



<p>18、内存空间</p>



<pre class="wp-block-code"><code>free</code></pre>



<p>检查 free 值是否过低，也可以用 <code># cat /proc/meminfo</code></p>



<p>19、SWAP 空间</p>



<pre class="wp-block-code"><code>free</code></pre>



<p>检查 swap used 值是否过高，如果 swap used 值过高，进一步检查 swap 动作是否频繁：</p>



<pre class="wp-block-code"><code>vmstat 1 5</code></pre>



<p>观察 si 和 so 值是否较大</p>



<p>20、磁盘空间</p>



<pre class="wp-block-code"><code>df -h</code></pre>



<p>检查是否有分区使用率（Use%）过高（比如超过90%）如发现某个分区空间接近用尽，可以进入该分区的挂载点，用以下命令找出占用空间最多的文件或目录：</p>



<pre class="wp-block-code"><code>du -cks * | sort -rn | head -n 10</code></pre>



<p>21、磁盘 I/O 负载</p>



<pre class="wp-block-code"><code>iostat -x 1 2</code></pre>



<p>检查I/O使用率（%util）是否超过 100%</p>



<p>22、网络负载</p>



<pre class="wp-block-code"><code>sar -n DEV</code></pre>



<p>检查网络流量（rxbyt/s, txbyt/s）是否过高</p>



<p>23、网络错误</p>



<pre class="wp-block-code"><code>netstat -i</code></pre>



<p>检查是否有网络错误（drop fifo colls carrier），也可以用命令：<code># cat /proc/net/dev</code></p>



<p>24、网络连接数目</p>



<pre class="wp-block-code"><code>netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n</code></pre>



<p>25、进程总数</p>



<pre class="wp-block-code"><code>ps aux | wc -l</code></pre>



<p>检查进程个数是否正常 (比如超过250)</p>



<p>26、可运行进程数目</p>



<pre class="wp-block-code"><code>vmwtat 1 5</code></pre>



<p>列给出的是可运行进程的数目，检查其是否超过系统逻辑 CPU 的 4 倍</p>



<p>27、进程</p>



<pre class="wp-block-code"><code>top -id 1</code></pre>



<p>观察是否有异常进程出现。</p>



<p>28、网络状态，检查DNS，网关等是否可以正常连通</p>



<p>29、用户</p>



<pre class="wp-block-code"><code>who | wc -l</code></pre>



<p>检查登录用户是否过多 (比如超过50个) 也可以用命令：# uptime。</p>



<p>30、系统日志</p>



<pre class="wp-block-code"><code># cat /var/log/rflogview/*errors</code></pre>



<p>检查是否有异常错误记录 也可以搜寻一些异常关键字，例如：</p>



<pre class="wp-block-code"><code>grep -i error /var/log/messages
grep -i fail /var/log/messages</code></pre>



<p>31、核心日志</p>



<pre class="wp-block-code"><code>dmesg</code></pre>



<p>检查是否有异常错误记录。</p>



<p>32、系统时间</p>



<pre class="wp-block-code"><code>date</code></pre>



<p>检查系统时间是否正确。</p>



<p>33、打开文件数目</p>



<pre class="wp-block-code"><code>lsof | wc -l</code></pre>



<p>检查打开文件总数是否过多。</p>



<p>34、日志</p>



<pre class="wp-block-code"><code># logwatch –print</code></pre>



<p>配置 <code>/etc/log.d/logwatch.conf</code>，将 Mailto 设置为自己的 email 地址，启动 mail 服务(sendmail或者postfix)，这样就可以每天收到日志报告了。<br>缺省 logwatch 只报告昨天的日志，可以用 <code># logwatch –print –range all</code> 获得所有的日志分析结果。<br>可以用 <code># logwatch –print –detail high</code> 获得更具体的日志分析结果(而不仅仅是出错日志)。<br>35、杀掉80端口相关的进程</p>



<pre class="wp-block-code"><code>lsof -i :80|grep -v “ID”|awk ‘{print “kill -9”,$2}’|sh</code></pre>



<p>36、清除僵死进程</p>



<pre class="wp-block-code"><code>ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9</code></pre>



<p>37、tcpdump 抓包，用来防止80端口被人攻击时可以分析数据</p>



<pre class="wp-block-code"><code>tcpdump -c 10000 -i eth0 -n dst port 80 &gt; /root/pkts</code></pre>



<p>38、然后检查IP的重复数并从小到大排序 注意 “-t\ +0” 中间是两个空格</p>



<pre class="wp-block-code"><code># less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0</code></pre>



<p>39、查看有多少个活动的 php-cgi 进程</p>



<pre class="wp-block-code"><code>netstat -anp | grep php-cgi | grep ^tcp | wc -l</code></pre>



<p>40、查看系统自启动的服务</p>



<pre class="wp-block-code"><code>chkconfig --list | awk '{if ($5=="3:on") print $1}'</code></pre>



<p>41、kudzu 查看网卡型号</p>



<pre class="wp-block-code"><code>kudzu --probe --class=network</code></pre>



<p>常用正则表达式</p>



<p>1.匹配中文字符的正则表达式： </p>



<p><code>[\u4e00-\u9fa5]</code></p>



<p>评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</p>



<p>2.匹配双字节字符(包括汉字在内)：</p>



<p><code>[^\x00-\xff]</code></p>



<p>评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</p>



<p>3.匹配空白行的正则表达式：</p>



<p><code>\n\s*\r</code></p>



<p>评注：可以用来删除空白行</p>



<p>4.匹配 HTML 标记的正则表达式：</p>



<p><code>&lt;(\S*?)[^>]*>.*?&lt;/\1>|&lt;.*? /></code></p>



<p>评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</p>



<p>5.匹配首尾空白字符的正则表达式：</p>



<p><code>^\s*|\s*$</code></p>



<p>评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式</p>



<p>6.匹配Email地址的正则表达式：</p>



<pre class="wp-block-code"><code>\w+(&#91;-+.]\w+)*@\w+(&#91;-.]\w+)*\.\w+(&#91;-.]\w+)*</code></pre>



<p>评注：表单验证时很实用</p>



<p>7.匹配网址URL的正则表达式：</p>



<p><code>[a-zA-z]+://[^\s]*</code></p>



<p>评注：网上流传的版本功能很有限，上面这个基本可以满足需求</p>



<p>8.匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：</p>



<p><code>^[a-zA-Z][a-zA-Z0-9_]{4,15}$</code></p>



<p>评注：表单验证时很实用</p>



<p>9.匹配国内电话号码：</p>



<p><code>\d{3}-\d{8}|\d{4}-\d{7}</code></p>



<p>评注：匹配形式如 0511-4405222 或 021-87888822</p>



<p>10.匹配腾讯QQ号：</p>



<p><code>[1-9][0-9]{4,}</code></p>



<p>评注：腾讯QQ号从10000开始</p>



<p>11.匹配中国邮政编码：</p>



<p><code>[1-9]\d{5}(?!\d)</code></p>



<p>评注：中国邮政编码为6位数字</p>



<p>12.匹配×××：</p>



<p><code>\d{15}|\d{18}</code></p>



<p>评注：中国的×××为15位或18位</p>



<p>13.匹配ip地址：</p>



<p><code>\d+\.\d+\.\d+\.\d+</code></p>



<p>评注：提取 IP 地址时有用</p>



<p>14.匹配特定数字：</p>



<p><code>^[1-9]\d*$</code>　 　</p>



<p>//匹配正整数</p>



<p><code>^-[1-9]\d*$</code>　</p>



<p>//匹配负整数</p>



<p><code>^-?[1-9]\d*$</code>　　</p>



<p>//匹配整数</p>



<p><code>^[1-9]\d*|0$</code>　</p>



<p>//匹配非负整数（正整数 + 0）</p>



<p><code>^-[1-9]\d*|0$</code>　　</p>



<p>//匹配非正整数（负整数 + 0）</p>



<p><code>^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$</code>　　</p>



<p>//匹配正浮点数</p>



<p><code>^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$</code>　</p>



<p>//匹配负浮点数</p>



<p><code>^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$</code>　</p>



<p>//匹配浮点数</p>



<p><code>^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$</code>　　</p>



<p>//匹配非负浮点数（正浮点数 + 0）</p>



<p><code>^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$</code>　</p>



<p>//匹配非正浮点数（负浮点数 + 0）</p>



<p>评注：处理大量数据时有用，具体应用时注意修正</p>



<p>15.匹配特定字符串：</p>



<p><code>^[A-Za-z]+$</code>　</p>



<p>//匹配由26个英文字母组成的字符串</p>



<p><code>^[A-Z]+$</code>　</p>



<p>//匹配由26个英文字母的大写组成的字符串</p>



<p><code>^[a-z]+$</code>　</p>



<p>//匹配由26个英文字母的小写组成的字符串</p>



<p><code>^[A-Za-z0-9]+$</code>　</p>



<p></p>



<p>//匹配由数字和26个英文字母组成的字符串</p>



<p><code>^\w+$</code>　</p>



<p>//匹配由数字、26个英文字母或者下划线组成的字符串</p>



<p>评注：最基本也是最常用的一些表达式</p>



<p>以上是本文的全部内容，希望对大家的学习有帮助，觉得有用，有需要就支持一下吧</p>
]]></content:encoded>
					
					<wfw:commentRss>/uncategorized/8964.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
