04月09, 2020

Linux常用命令

通常可以使用top命令动态查看,然后按shift+F可以选择按内存或CPU排序

image.png

#查询哪些应用程序比较占用内存,显示前20个
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20

#虚拟内存
ps auxw|head -1;ps auxw|sort -rn -k5|head -10

#CPU
ps auxw|head -1;ps auxw|sort -rn -k3|head -10 
#查看磁盘占用情况
df -h
#查看根目录下磁盘占用状况,
du -ah --max-depth=1  /
#查看端口监听状况
netstat -anutp

MACOS上批量替换某文件夹下的所有文件的文字内容,可以使用sed

grep "2004001041" -rl . | xargs sed -i -e "s/2004001041/2004001066/g"
#统计当前目录下文件的个数(不包括目录)
ls -l | grep "^-" | wc -l
#统计当前目录下文件的个数(包括子目录)
ls -lR| grep "^-" | wc -l
#查看某目录下文件夹(目录)的个数(包括子目录)
ls -lR | grep "^d" | wc -l
#设置开机自启动项,CentOS 6为例
1. 编写脚本autostart.sh(这里以开机启动redis服务为例),脚本内容如下:

#!/bin/sh
#chkconfig: 2345 80 90
#description:开机自动启动的脚本程序

# 开启redis服务 端口为6379
/usr/local/service/redis-2.8.3/src/redis-server --port 6379 &
脚本第一行 “#!/bin/sh” 告诉系统使用的shell; 
脚本第二行 “#chkconfig: 2345 80 90” 表示在2/3/4/5运行级别启动,启动序号(S80),关闭序号(K90); 
脚本第三行 表示的是服务的描述信息

注意: 第二行和第三行必写,负责会出现如“服务 autostart.sh 不支持 chkconfig”这样的错误。

2. 将写好的autostart.sh脚本移动到/etc/rc.d/init.d/目录下

3. 给脚本赋可执行权限

cd /etc/rc.d/init.d/
chmod +x autostart.sh
4. 添加脚本到开机自动启动项目中

chkconfig --add autostart.sh
chkconfig autostart.sh on

如果有httpd+php的项目,通常出现占用内存过多,可能是以下原因导致:

配置文件 httpd.conf 中 work 的参数配置项:

<IfModule worker.c> 
ThreadLimit         100 
ServerLimit         256 
StartServers         8 
MaxClients         1200 
MinSpareThreads     100 
MaxSpareThreads     300 
ThreadsPerChild     100 
MaxRequestsPerChild  0 
</IfModule> 

关键的问题出现在 MaxRequestsPerChild 参数。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。 在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。 如果MaxRequestsPerChild缺省设为0(无限)可以使每个子进程处理更多的请求,不会因为不断终止、启动子进程降低访问效率。 但如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。

文件文字替换

# 替换当前文件夹下的所有文字,例如将最可靠替换为可靠

sed -i "s/最可靠/可靠/g" `grep 最可靠 -rl ./`
sed -i "s/最严格/严格/g" `grep 最严格 -rl ./`
sed -i "s/最经济/经济/g" `grep 最经济 -rl ./`
sed -i "s/最科学/科学/g" `grep 最科学 -rl ./`
sed -i "s/最精准/精准/g" `grep 最精准 -rl ./`
sed -i "s/最安全/安全/g" `grep 最安全 -rl ./`
sed -i "s/最先进/先进/g" `grep 最先进 -rl ./`
sed -i "s/最伟大/伟大/g" `grep 最伟大 -rl ./`
sed -i "s/最普通/普通/g" `grep 最普通 -rl ./`
find ./ -type f -exec sed -i '' -e "s/192.168.20.1/new.domain.com/" {} \;

参考:

https://blog.csdn.net/h330531987/article/details/74356308

http://httpd.apache.org/

https://cwiki.apache.org/confluence/display/HTTPD/PHP

https://blog.51cto.com/shuzonglu/2074448

https://stackoverflow.com/questions/19456518/invalid-command-code-despite-escaping-periods-using-sed

https://www.cnblogs.com/turtle-fly/archive/2013/03/13/2957212.html

本文链接:https://www.daguanren.cc/post/Linux-chang-yong-ming-ling.html

-- EOF --

Comments