学透Linux知识体系

admin 2020-06-08 416 阅读 0评论

系统相关操作

fdisk -l 查看硬盘及分区情况
df -h 查看分区空间使用情况(磁盘)安文件大小排序查看:du -sh /* | sort -nr使用find:find ./ -size +1G -exec du -h {} \;
top -d 进程号 进程内存使用情况
top -c cpu资源占用说明Tasks : 115 total  进程总数1 running  正在运行进程数114  sleeping  睡眠进程数0  stopped  停止进程数0  zombie  僵尸进程数Cpu(s) : 16.1%  us  用户空间占用CPU百分比2.0%  sy  内核空间占用CPU百分比0.0%  ni  用户进程空间内改变过优先级的进程占用CPU百分比79.5%  id  空闲CPU百分比1.4%  wa  等待输入输出的CPU时间百分比0.0%  hi0.0%  si序号列名含义PID    进程idPPID    父进程idRUSER    RealusernameUID    进程所有者的用户idUSER    进程所有者的用户名GROUP    进程所有者的组名TTY    启动进程的终端名。不是从终端启动的进程则显示为?PR    优先级NInice     值。负值表示高优先级,正值表示低优先级P    最后使用的CPU,仅在多CPU环境下有意义%CPU    上次更新到现在的CPU时间占用百分比TIME    进程使用的CPU时间总计,单位秒TIME+    进程使用的CPU时间总计,单位1/100秒%MEM    进程使用的物理内存百分比VIRT    进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESSWAP    进程使用的虚拟内存中,被换出的大小,单位kb。RES    进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATACODE    可执行代码占用的物理内存大小,单位kbDATA    可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kbSHR    共享内存大小,单位kbnFLT    页面错误次数nDRT    最后一次写入到现在,被修改过的页面数。S    进程状态。D=    不可中断的睡眠状态R=    运行S=    睡眠T=    跟踪/停止Z=    僵尸进程COMMAND    命令名/命令行WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名Flags    任务标志,参考sched.h
free -h 内存使用情况1.作用free命令用来显示内存的使用情况,使用权限是所有用户。2.格式free [-b-k-m] [-o] [-s delay] [-t] [-V]3.主要参数-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。-s delay:显示每隔多少秒数来显示一次内存使用情况。-t:显示内存总和列。-o:不显示缓冲区调节列。
iostat -x 查看io的性能安装:  
Iostat 是 sysstat 工具集的一个工具,需要安装。  
Centos的安装方式是:yum install sysstat  
Ubuntu的安装方式是:  aptitude install sysstat  
使用:iostat -dx 
显示磁盘扩展信息说明:rrqm/s:
每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge);
wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。
rsec/s:每秒读取的扇区数;
wsec/s:每秒写入的扇区数。
r/s 和 w/s 分别是每秒的读操作和写操作,
rKB/s 和wKB/s 列以每秒千字节为单位显示了读和写的数据量
await:每一个IO请求的处理的平均时间(单位是毫秒)。这里可以理解为IO的响应时间,一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。
%util:在统计时间内所有处理IO时间,除以总共统计时间。例如,如果统计间隔1秒,该设备有0.8秒在处理IO,而0.2秒闲置,那么该设备的%util = 0.8/1 = 80%,所以该参数暗示了设备的繁忙程度。一般地,如果该参数是100%表示设备已经接近满负荷运行了(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈)。

网络相关操作

netstat -ntlp 查看网络连接情况-t 列出tcp协议端口-u 列出udp协议端口-n 不使用域名与服务名,使用IP和端口-l 列出监听状态的网络服务-a 列出所有的网络连接-r 路由信息-p 列出pid,进程id
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
iptables -A OUTPUT -p tcp --dport 端口号-j DROP 关闭端口
iptables -A INPUT -ptcp --dport 端口号-j ACCEPT 打开端口
nc -lp 23 &(打开23端口,即telnet)
netstat -an | grep 23 (查看是否打开23端口) 防火墙
iptables -L 查看防火墙
lsof -i:80 查看端口是否开发

常用命令

php a.php 1>/dev/null 2>&1 & 后台运行,不打印
du -m * |sort -r -n 降序排序日志文件
ps –ef | grep aio    查询名称中包含aio的进程
netstat -an | grep 3306    查询3306端口的占用情况
 ln  -s  [源文件或目录]  [目标文件或目录]  创建软件链接 例:ln –s  /var/www/test  test
 chmod -R 777 目录  修改权限
chattr -i /home/wwwroot/fuelcard-lxy/.user.ini  解除文件锁定无法修改权限
 tar -xvf [xxx.tar] | tar -xzf [xxx.tar.gz] 解压
 netstat -nlp | grep [端口号] 查看端口是否被使用
 rm -f [文件名] 删除文件不提示
 mv [原文件名] [新文件名] 重命名文件
 mv [原文件] [新的文件路径] 移动文件
 find -name file\* 寻找当前目录下,所有以file为前缀的文件或子目录
 find /home -mtime 2 列出目录下最近两天之内有变动的文件
 mkdir test 在当前目录下创建一个test目录
 cp test1.txt test2.txt     复制test1.txt并粘贴到当前目录下,然后重命名为test2.txt
 grep abc test.txt 在test.txt文件中查找abc
 grep abc test.txt --color 在test.txt文件中查找abc,并高亮显示
 pwd    显示当前所在目录
 wget http://nginx.org/download/nginx-1.9.12.tar.gz 下载资料
kill -9  进程号   杀死进程
ps -aux|grep xxx.php 查看进程 (在不同终端) a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
netstat -nap|grep 7779 查看其占用的端口
yum install wget wget安装
cp -rf www.xx.com www.xx.con.bak 文件备份

日志文件操作

sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p'  test.log 根据日期查询日志
 cat -n test.log |grep "debug"   查询关键字的日志tac是倒序查看,是cat单词反写
head -n 10  test.log   查询日志文件中的头10行日志;
 head -n -10  test.log   查询日志文件除了最后10行的其他所有日志;
 tail -100f test.log   实时监控100行日志tail -n  10  test.log   查询日志尾部最后10行的日志; tail -n +10 test.log    查询10行之后的所有日志;
使用more和less命令, 如: cat -n test.log |grep "地形" |more     这样就分页打印了,通过点击空格键翻页
使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析.如:cat -n test.log |grep "地形"  >xxx.txt
日志筛选
你可以使用下面方法去重:
awk -F"," '{print $6 $7}' versionUpgrade_msg.log | sort -n | uniq
下面方法得出数量:
awk -F"," '{print $6 $7}' versionUpgrade_msg.log | sort -n | uniq | wc -l
nginx
 nginx -s reload 重启配置
nginx -t 检测配置文件
nohup命令
nohup php server.php > ./server_log_`date "+%Y-%m-%d"`_.log 2>&1 &  //运行php脚本,输出nohup日志导log文件
jobs -l //查看运行的后台进程(只能在同一个终端)

ftp命令

配置流程:账号-密码-路径

./pureftpd.sh //安装ftp
lnmp ftp add //添加FTP
lnmp ftp list //显示FTP用户
lnmp ftp del //删除FTP
useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test用户设置密码
usermod -d /cbbtop //修改用户权限目录
虚拟主机管理(lnmp/lnmpa/lamp)
文件

LNMP默认网站配置文件:/usr/local/nginx/conf/nginx.conf
LNMPA默认网站配置文件:/usr/local/nginx/conf/nginx.conf 和 /usr/local/apache/conf/extra/httpd-vhosts.conf
LAMP默认网站配置文件:/usr/local/apache/conf/extra/httpd-vhosts.conf
命令

lnmp vhost del 删除虚拟主机
lnmp vhost list 查看列表
lnmp vhost add   添加虚拟主机
crontab定时任务
http://www.runoob.com/linux/linux-comm-crontab.html
crontab -l 列出crontab文件
crontab -e 定时任务编辑
crontab -r 删除crontab文件
183.6.116.151:23122 */5 * * * * /home/bcb/app/php7.2.6/bin/php sendTplMsg3.php
minute hour day month week command其中:
minute:表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
*/1 * * * * php /www/wwwroot/resource.daorating.org/curl.php

crontab使用实例


实例1:每1分钟执行一次command命令:* * * * * command
实例2:每小时的第3和第15分钟执行命令:3,15 * * * * command
实例3:在上午8点到11点的第3和第15分钟执行命令:3,15 8-11 * * * command
实例4:每隔两天的上午8点到11点的第3和第15分钟执行命令:3,15 8-11 */2 * * command
实例5:每个星期一的上午8点到11点的第3和第15分钟执行命令:3,15 8-11 * * 1 command
实例6:每晚的21:30重启smb 命令:30 21 * * * /etc/init.d/smb restart
实例7:每月1、10、22日的4 : 45重启smb 命令:45 4 1,10,22 * * /etc/init.d/smb restart
实例8:每周六、周日的1 : 10重启smb命令:10 1 * * 6,0 /etc/init.d/smb restart
实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 命令:0,30 18-23 * * * /etc/init.d/smb restart
实例10:每星期六的晚上11 : 00 pm重启smb 命令:0 23 * * 6 /etc/init.d/smb restart
实例11:每一小时重启smb 命令:* */1 * * * /etc/init.d/smb restart
实例12:晚上11点到早上7点之间,每隔一小时重启smb 命令:* 23-7/1 * * * /etc/init.d/smb restart
实例13:每月的4号与每周一到周三的11点重启smb 命令:0 11 4 * mon-wed /etc/init.d/smb restart
实例14:一月一号的4点重启smb 命令:0 4 1 jan * /etc/init.d/smb restart实例15:每小时执行/etc/cron.hourly目录内的脚本命令:01 * * * * root run-parts /etc/cron.hourly

ssh使用与命令


安装:yum install ssh
启动:service sshd start
登陆:ssh -p 50022 my@127.0.0.1
修改系统变量(目的:shell脚本可以全局运行)
1.修改vim /etc/profile文件(指定你的脚本所在目录):export PATH=$PATH:/root/sh/shbat
2.重启source /etc/profile
3.执行脚本 xx.sh

php扩展安装


yaf:

https://segmentfault.com/a/1190000012006517
安装:pecl install yaf
检查:php --ri yaf
memcached

1.安装客户端
http://www.runoob.com/memcached/memcached-install.html
yum install memcached
/usr/bin/memcached -d -m 1024 -u root -l 127.0.0.1 -p 11211 -c 1024 -P /tmp/memcached.pid
2.安装扩展
https://blog.csdn.net/u011547570/article/details/78325556
yum install libmemcached libmemcached-devel
pecl install memcached
redis

1.安装redis扩展
http://www.runoob.com/redis/redis-php.html
源码编译安装
$ wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz$ cd phpredis-3.1.4 # 进入 phpredis 目录$ /usr/local/php/bin/phpize # php安装后的路径$ ./configure --with-php-config=/usr/local/php/bin/php-config$ make && make install
修改php.ini文件
vi /usr/local/php/lib/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626" extension=redis.so
2.安装redis服务
http://www.runoob.com/redis/redis-install.html
下载安装
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz$ tar xzf redis-2.8.17.tar.gz$ cd redis-2.8.17$ make$cd src$make install
具体部请访问:https://www.cnblogs.com/wangchunniu1314/p/6339416.html

文件部署和目录转移:

mkdir -p/usr/local/redis/bin
mkdir -p/usr/local/redis/ect
mv /lamp/redis-3.0.7/redis.conf /usr/local/redis/etc
cd /lamp/redis-3.0.7/src
mv mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin

修改成后台运行服务

首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)

cd etc/
vi redis.conf
再次启动redis服务,并指定启动服务配置文件

redis-server /usr/local/redis/etc/redis.conf

检查

netstat -tumpl|grep 6379

开机自启动服务

https://blog.csdn.net/gorgeouschou/article/details/79841150
vi /etc/rc.local 
/usr/local/redis/bin/redis-server /usr/local/redis/ect/redis.conf
memcache
安装:https://www.cnblogs.com/flywind/p/6021568.html

发表评论

快捷回复: 表情:
Addoil Applause Badlaugh Bomb Coffee Fabulous Facepalm Feces Frown Heyha Insidious KeepFighting NoProb PigHead Shocked Sinistersmile Slap Social Sweat Tolaugh Watermelon Witty Wow Yeah Yellowdog
提交
评论列表 (有 0 条评论, 416人围观)