日常开发,上线的服务器系统一般都是Linux系统,所以,熟练的掌握常用的命令操作就尤其的重要了
1) 查看某个服务的运行情况 (例如Redis)
ps -ef | grep redis //e-显示程序使用的环境变量 f-显示UID,PPIP,C与STIME栏位
2) 查看某个端口是否在监听
netstat -lntp | grep 6379
//查看监听的端口的程序 netstat -anp | grep 9501
可以使用一下命令查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个进程 ps -aux | sort -k3nr | head -n 10
参数说明:
sort
-k: 进行排序的栏位
4/3 对应的栏位位置
-n: 按照数值大小排序
-r: 反向排序
动态的查看进程: 用top命令指定固定的PID
top -p 32199
使用了top期间,支持命令,
h ==》 会显示如何使用的帮助
M ==〉 通过内存占用率大小进行排序
P ==》 按照CPU使用率进行大小排序
默认只是显示部分的进程数据, 如果想要查看全部的进程信息, 可以将信息重定向到文件中
top -n -b 1 -d 3 >> file.txt
参数:
-b :batch模式,可以重定向到文件中
-n 1:一共取1次top数据。后边加数字,表示次数
-d 3:每次top时间间隔是3秒钟
-c : 不仅仅显示进程名称, 而是显示完整执行命令
查看更详细的内存占比
cat /proc/10997/status Name: java State: S (sleeping) Tgid: 10997 Ngid: 0 Pid: 10997 PPid: 1959 TracerPid: 0 Uid: 1000 1000 1000 1000 Gid: 1000 1000 1000 1000 FDSize: 256 Groups: 4 24 27 30 46 113 128 130 132 134 1000 1002 NStgid: 10997 NSpid: 10997 NSpgid: 10987 NSsid: 10914 VmPeak: 11522940 kB VmSize: 11522940 kB VmLck: 0 kB VmPin: 0 kB VmHWM: 65176 kB VmRSS: 65176 kB VmData: 11462972 kB VmStk: 140 kB VmExe: 4 kB VmLib: 17064 kB VmPTE: 460 kB VmPMD: 28 kB VmSwap: 0 kB HugetlbPages: 0 kB Threads: 25 SigQ: 0/128292 SigPnd: 0000000000000000 ShdPnd: 0000000000000000 SigBlk: 0000000000000000 SigIgn: 0000000000000003 SigCgt: 2000000181005ccc CapInh: 0000000000000000 CapPrm: 0000000000000000 CapEff: 0000000000000000 CapBnd: 0000003fffffffff CapAmb: 0000000000000000 Seccomp: 0 Cpus_allowed: ff Cpus_allowed_list: 0-7 Mems_allowed: 00000000,00000001 Mems_allowed_list: 0 voluntary_ctxt_switches: 86 nonvoluntary_ctxt_switches: 2
VmRSS为内存
Redis
(1) 开启客户端连接Redis
redis-cli
(2) 退出客户端的连接
redis-cli shutdown
或
kill -9 PID
(3)常用启动/停止/重启
./etc/init.d/redis-server start ./etc/init.d/redis-server stop ./etc/init.d/redis-server restart
MySQL
查看MySQL的运行状态
/etc/rc.d/init.d/mysqld status
频繁使用
1. 计算某个文件大小
1) du -h 文件
2) ls -hl 文件
2. 重启网卡服务
service network restart
3. 相关服务重启
/etc/init.d/redis restart
4. 查看磁盘信息
df -h //以kb显示(常用) 默认使用b显示
5. 关机,重启
init 0 //关机 init 6 //友好重启 reboot //出状况或强制重启
6. 软连接
ln -s 源文件 目标文件
7.查找某个命令或文件
find / -name 文件名称 // find的方式进行查找 whereis 文件名称 //使用whereis方式进行查找 which 文件名称 // 使用which的方式进行查找 locate 文件名称 //使用locate的方式进行查找
8. 常见统计
wc -l 文件名称 // 统计行数 wc -c 文件名称 // 统计字节数 wc -w 文件名称 // 统计字数 //以上命令可以同时组合使用,例如: wc -lwc file1 file2 872526 5390372 92673673 14.sql 744 3711 35936 15.sql 873270 5394083 92709609 total
9. 文件排序
1. 按照文件大小排序 ls -lSh total 89M 0 -rw-r--r-- 1 Administrator 197121 0 8月 31 17:44 14 89M -rw-r--r-- 1 Administrator 197121 89M 8月 31 16:13 14.sql 36K -rw-r--r-- 1 Administrator 197121 36K 8月 31 16:13 15.sql 20K -rw-r--r-- 1 Administrator 197121 17K 8月 31 16:14 17.sql 16K -rw-r--r-- 1 Administrator 197121 15K 8月 31 16:13 16.sql 4.0K -rw-r--r-- 1 Administrator 197121 3.3K 8月 31 16:14 18.sql 解释: -l : 长格式显示 -S: 排序,默认降序(注意是大写S) -h: 表示文件大小转成M来显示 当然可以使用升序 -r : 升序排列 2. 按照文件修改时间排序 ls -lt total 90580 -rw-r--r-- 1 Administrator 197121 0 8月 31 17:44 14 -rw-r--r-- 1 Administrator 197121 3342 8月 31 16:14 18.sql -rw-r--r-- 1 Administrator 197121 17240 8月 31 16:14 17.sql -rw-r--r-- 1 Administrator 197121 14609 8月 31 16:13 16.sql -rw-r--r-- 1 Administrator 197121 35936 8月 31 16:13 15.sql -rw-r--r-- 1 Administrator 197121 92673673 8月 31 16:13 14.sql 解释: -t: 最近的修改时间 默认是降序: 最后修改的在前面 当然也可以加上参数 -r 进行升序排序
10.文件或目录统计
1. 显示目录或者文件所占空间 du 2. 显示指定文件所占空间 du filename/dirname 3. 显示多个文件所占空间 du file1 file2 file3 4. 只显示总和的大小 du -sh -s:仅显示总计 -h:以友好的单位显示K,M,G 5. 显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和 du -ch file1 file2 file3 6. 按照空间大小排序 du|sort -nr|more 7. 输出当前目录下各个子目录所使用的空间 du -h --max-depth=1
8. 统计目录下文件大小
du -sh *
9. 统计文件大小并排序
du -s * | sort -nr (倒叙)
10 内容匹配 grep
grep -rn '匹配词' . //递归的匹配所有的搜索词
11. 文件压缩与解压 tar
文件压缩:
tar zcvf FileName.tar.gz DirName
文件解压:
tar zxvf FileName.tar.gz
tar.bz2格式
解压:[*******]$ tar jxvf FileName.tar.bz2
压缩:[*******]$ tar jcvf FileName.tar.bz2 DirName
tar.gz格式
解压:[*******]$ tar zxvf FileName.tar.gz
压缩:[*******]$ tar zcvf FileName.tar.gz DirName
tar格式
解包:[*******]$ tar xvf FileName.tar
打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
zip格式
解压:[*******]$ unzip FileName.zip
压缩:[*******]$ zip FileName.zip DirName
rar格式:
压缩:rar a FileName.rar FileName
解压:unrar x FileName.rar
x: 解压文件到完整路径
e: 解压文件到当前目录
rar安装:
1)下载源码包 https://www.rarlab.com/download.htm
2)下载并解压 tar -zxvf rarlinux-5.5.0.tar.gz
3) cd rar
4) make
问题: 如果在备份的过程中,文件发生变化会出现报错的情况,导致终端, 可以添加命令 --warning=no-file-changed
12. 查看当前登陆的终端
w 22:19:00 up 26 days, 23:29, 1 user, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 58.101.106.224 21:40 4.00s 0.10s 0.00s w 用户名 终端 登陆IP 登陆时间 正在执行的操作
13. 查看CPU信息
1. 物理CPU的个数: cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2. 每个物理CPU的核心数量: cat /proc/cpuinfo | grep "cpu cores" | uniq 3. 逻辑CPU个数: cat /proc/cpuinfo | grep "processor" | wc -l
centos7
1)systemctl 命令
设置nginx为开机启动项:
systemctl enable nginx
服务相关操作
systemctl start/stop/reload/restart nginx (服务名称)
防火墙
查看防火墙开启状态: systemctl status firewalld
启动/关闭/重启 防火墙
systemctl [start|stop|restart] firewalld.service 查看80端口是否开放成功: firewall-cmd --zone=public --query-port=80/tcp 永久开放80端口: firewall-cmd --zone=public --add-port=80/tcp --permanent
移除80端口号:
firewall-cmd --permanent --zone=public --remove-port=80/tcp 重启防火墙(设置完成一定要设置): firewall-cmd --reload
2)sudo
临时获取最高权限
sudo -s
切换用户
su - vagrant //切换回vagrant用户
华丽分割线
命令安装
1) locate
可能一开始使用这个命令的时候,是无法使用的,需要你自己进行安装
yum install locate //可能发生的错误, 没有可用的软件包 locate 的情况 //进行安装mlocate进行解决 yum install -y mlocate //安装成功之后,就可以愉快的使用locate命令进行内容的查找了, 呃呃呃,但是好像还是有问题,还差一步,对,那就是更新索引库 updatedb //如果更新之后,还是搜索不到的话,那么可以查看配置文件,是否有限制 vim /etc/updatedb.conf
- PRUNE_BIND_MOUNTS = “yes” 表示开启搜索限制,如果为’no’则表示不开启搜索限制;
- PRUNEFS = 表示搜索时,不搜索的文件系统;
- PRUNENAMES = 表示搜索时,不搜索的文件类型;
- PRUNEPATHS = 表示搜索时,不搜索的路径;
日常
pbcopy < ~/.ssh/id_rsa.pub //Windows中的类似使用 clip < ~/.ssh/id_rsa.pub
//使用命令split (windows 下使用git bash工具即可使用该命令) 常用参数: -<行数> : 指定每多少行切成一个小文件 -b<字节> : 指定每多少字节切成一个小文件 1KB = 1000B 1MB = 1000KB --help : 在线帮助 --version : 显示版本信息 -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性 [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号 //实例: split -3000 index.log #将index.log文件每3000行分割成一个文件 默认多个以''x''开头的文件
3) kill 掉所有匹配到名字的进程
ps aux | grep swoole_job | awk '{print $2}' | xargs kill -9
ps 列出所有进程,
参数:
a - 显示现行终端机下的所有进程,包括其他用户的进程;
u - 以用户为主的进程状态 ;
x - 通常与 a 这个参数一起使用,可列出较完整信息。
grep 过滤掉不包含 "swoole" 的行
awk '{print $2}' 获取进程 ID (PID, Process Identification),我们想 kill 掉某一个进程的时候需要通过 PID 指定特定进程
xargs 将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。
也就是将管道传递过来的每一个 PID 作为 kill -9 的参数
find /tmp -mtime +21 -exec rm -rf {} ; 注意: 不要忘记最后的分号 mtime: 修改时间(天) {} ; 固定写法, 一堆大括号+空格+;