查看某进程名 的 进程号 pidof name
top 命令 查看指定进程 top -p pid
sed -i(直接修改文件,不在命令行输出) sed -e 只在命令行输出,不修改文件
sed -i 's/zhangsan/lisi/g' *.txt
find . -name \*.txt |xargs sed -i 's/444/666/g'
find . |grep -ril "dmg.zhonghuass.cn" |xargs sed -i 's/kang/dmg/g'
grep -ril "dmg.zhonghuass.cn" |xargs sed -i 's/kang/dmg/g'
find . -name "*.html" |grep -ril href=.http:..img.zhonghuass.cn |xargs sed -i s/href=.http:..img.zhonghuass.cn/href=\"/g
Linux & 进程前后台切换
cmd & cmd命令将在后台进行运行
执行 jobs 命令列出所有正在后台运行的进程列表。
执行 fg 命令将后台执行的命令调至前台运行
执行 ctrl + z 将前台正在执行的命令放到前台。
执行 bg 命令将在后台暂停的命令 继续执行。
php页面报502错误
执行free -m 查看内存使用情况, buff/cache 已经使用绝大部分内存
手动进行内存的清理和释放
echo 1 > /proc/sys/vm/drop_caches
192.168.10.0/24 指 192.168.10.0,192.168.10.1,192.168.10.2,192.168.10.3
192.168.10.0/16 值 192.168.。。。。
192.168.10.0/8 指 192 。。。。。
cat /etc/passwd |cut -d : -f 1-3
awk 指定分隔符打印
awk -F 'p' '{print $1}' 3.txt 以p为分隔符打印第一列。
uniq 筛选(和sort结合使用,隔行重复的不行,得用sort)
cat access.log | awk '{print $1}' | sort | uniq
打印多列时中间如果不加分隔符会导致 挤在一起
cat 1.txt |awk '{print $1 "\t" $2}'
在shell 脚本中 使用 $() 来代替 `` 反斜杠。 反斜杠不好看,会和引号混淆
linux 服务开机自启动
在 /etc/rc.d/rc.local 中假如要执行的命令
给予文件执行权限 chmod +x /etc/rc.d/rc.local
date -r filename 文件最后的修改时间
关于 grep -q 不打印任何标准输入输出,适合于 if 判断语句
if netstat -tnpl | grep -q nginx;then。。。。
关于 selinux
查看 selinux 配置 cat /etc/selinux/config
阿里云默认 SELINUX=disabled 为关闭状态。 有三种状态 enforcing 开启 permissive 提醒 disabled
更新配置中的状态后需要重启机器,不方便重启时 可以直接 setenforce 0 (关闭)
关于查看Linux 核数
cat /proc/cpuinfo |grep processor |wc -l
sar 命令 查看 服务器性能,包括文件读写,系统的调用情况,磁盘I/O ,cpu 效率,内存的使用情况等。
进程活动,以及IPC 等 有关的活动,命令由 sysstat 包 提供。
yum -y install sysstat
-A:所有报告的总和
-b:显示I/O和传递速率的统计信息
-B:显示换页状态
-d:输出每一块磁盘的使用信息
-e:设置显示报告的结束时间
-f:从制定的文件读取报告
-i:设置状态信息刷新的间隔时间
-P:报告每个CPU的状态
-R:显示内存状态
–u:输出cpu使用情况和统计信息
–v:显示索引节点、文件和其他内核表的状态
-w:显示交换分区的状态
-x:显示给定进程的装
-r:报告内存利用率的统计信息
统计 CPU 的使用情况,每一秒统计一次,统计三次
[root@caiji ~]# sar -u 1 3 Linux 3.10.0-327.22.2.el7.x86_64 (caiji) 06/20/2017 _x86_64_ (4 CPU) 03:46:03 PM CPU %user %nice %system %iowait %steal %idle 03:46:04 PM all 0.25 0.00 0.00 0.00 0.00 99.75 03:46:05 PM all 0.25 0.00 0.25 0.00 0.00 99.50 03:46:06 PM all 0.00 0.00 0.00 0.00 0.00 100.00 Average: all 0.17 0.00 0.08 0.00 0.00 99.75
关于 sar 命令的 具体使用方法 请参看 http://www.cnblogs.com/howhy/p/6396437.html
关于 xargs ,可以先和 xargs echo 查看下参数。
ls |xargs -I{} echo {} >> 1.txt
cat hosts | xargs -I{} ssh root@{} hostname
pstree -p 查看进程树
使用 ss -plat 查看哪些进程在监听端口。
关于shell 编程中的 单引号 双引号
dir=/home/dir echo "$dir" 输出 /home/dir echo '$dir' 输出 $dir
获取一个sh 脚本内容并执行
curl -sSL http://IP/1.sh |sh
关于lsof
lsof -i tcp:80 查看 http进程
lsof 1.txt 显示打开文件的指定进程
lsof -i :22 查看22 端口的使用状况
lsof -i -sTCP:LISTEN 找出正在等待连接的端口
在编写脚本的时候在前面加上
set -e
当脚本运行失败时候退出
set -u
当脚本使用未声明变量时脚本退出
bash -n script.sh 对脚本进行语法检车,不执行脚本
服务器设置禁ping(禁止发送icmp包)
/etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all=1 禁止ICMP
net.ipv4.icmp_echo_ignore_all=0 允许ICMP
关于环境变量的配置。
vim /etc/profile
PATH=$PATH:/dir/bin
export $PATH
source /etc/profile
ta