目 录CONTENT

文章目录

Linux进阶命令

JIN
JIN
2026-02-11 / 0 评论 / 0 点赞 / 5 阅读 / 0 字
广告 广告

一、Linux查进程和端口

#查进程有两个命令
ps -ef
ps aux
#过滤掉想要查的进程
ps -ef |grep java
#杀掉某个进程
kill -9 processId
#查端口
netstat -lntup
#查看某个端口详细的信息
lsof -i:4000

二、Linux查看系统的状态

2.1、top: 实时查看进程的状态

load average: 在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。 load average 有三个值,分别代表:1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。

正在运行的进程 + 准备好等待运行的进程 在特定时间内(1分钟,5分钟,10分钟)的平均进程数 Linux进程可以分为三个状态:

  • 阻塞进程
  • 可运行的进程
  • 正在运行的进程

比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5,load average就是一定时间内的load数量均值。

2.2、free: 查看内存使用状况

linux的内存管理机制的思想包括(不敢说就是)内存利用率最大化,内核会把剩余的内存申请为cached,而cached不属于free范畴。

如果free的内存不够,内核会把部分cached的内存回收,回收的内存再分配给应用程序。所以对于linux系统,可用于分配的内存不只是free的内存,还包括cached的内存(其实还包括buffers)。

可用内存=free的内存+cached的内存+buffers

Buffer Cache和Page Cache。前者针对磁盘块的读写,后者针对文件inode的读写。这些Cache有效缩短了 I/O系统调用(比如read,write,getdents)的时间。磁盘的操作有逻辑级(文件系统)和物理级(磁盘块)


三、Linux查看日志命令

  • tail
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ] 
-f 该参数用于监视File文件增长。 
-c Number 从 Number 字节位置读取指定文件 
-n Number 从 Number 行位置读取指定文件。 
-m Number 从 Number 多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。 
-b Number 从 Number 表示的512字节块位置读取指定文件。 
-k Number 从 Number 表示的1KB块位置读取指定文件。 
File 指定操作的目标文件名称 
上述命令中,都涉及到number,假设不指定,默认显示10行。
Number前面可使用正负号,表示该偏移从顶部还是从尾部開始计算。 
  • head
head -n 10  test.log   查询日志文件中的头10行日志;  
head -n -10  test.log   查询日志文件除了最后10行的其他所有日志; 
  • grep
-c:只输出匹配行的计数。  
-I:不区分大 小写(只适用于单字符)。  
-h:查询多文件时不显示文件名。  
-l:查询多文件时只输出包含匹配字符的文件名。  
-n:显示匹配行及 行号。  
-s:不显示不存在或无匹配文本的错误信息。  
-v:显示不包含匹配文本的所有行。  
pattern正则表达式主要参数:  
: 忽略正则表达式中特殊字符的原有含义。  
^:匹配正则表达式的开始行。  
$: 匹配正则表达式的结束行。  
<:从匹配正则表达 式的行开始。  
>:到匹配正则表达式的行结束。  
[ ]:单个字符,如[A]即A符合要求 。  
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。  
。:所有的单个字符。  
 - :有字符,长度可以为0。

cat service.log | grep 13888888888 查询关键字
  • sed
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。 
  • cat
cat主要有三大功能:  
1.一次显示整个文件。$ cat filename  
2.从键盘创建一个文件。$ cat > filename   
  只能创建新文件,不能编辑已有文件.  
3.将几个文件合并为一个文件: $cat file1 file2 > file  
4. cat service.log | wc -l 统计日志多少行

参数:  
-n 或 --number 由 1 开始对所有输出的行数编号  
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号  
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行  
-v 或 --show-nonprinting  
例:  
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里  
cat -n textfile1 > textfile2  

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。  
cat -b textfile1 textfile2 >> textfile3  

把test.txt文件扔进垃圾箱,赋空值test.txt  
cat /dev/null > /etc/test.txt   
注意:>意思是创建,>>是追加。千万不要弄混了。
  • tac (反向列示)
  • 混合使用
A.  tail web.2016-06-06.log -n 300 -f  
    查看底部即最新300条日志记录,并实时刷新  

B.  grep 'nick' | tail web.2016-04-04.log -C 10   
    查看字符‘nick’前后10条日志记录, 大写C  

C.  cat -n test.log |tail -n +92|head -n 20  
    tail -n +92表示查询92行之后的日志  
    head -n 20 则表示在前面的查询结果里再查前20条记录

D.  sed -n "29496,29516p" service.log:从29496行开始检索,到29516行结束
    cat -n service.log | tail -n +29496 | head -n 20:从29496行开始检索,往前推20条

    如果关键字不太准确(日志输出的记录太多了),我们可以使用more命令来浏览或者输出到文件上再分析:
    cat service.log | grep 13 |more :将查询后的结果交由more输出
    cat service.log | grep 13 > /home/sanwai/aa.txt  将查询后的结果写到/home/sanwai/aa.txt文件上

四、Linux查找命令

which - which命令会在PATH变量指定的路径中,搜索某个系统命令的位置

which -a which  #查看命令which所在位置,-a参数表示找出所有
/usr/bin/which
/bin/which
  • whereis - whereis命令用于搜索程序的二进制文件,源代码文件或帮助文档
  • type - type用于查看命令类型
-t 输出类型名,如file
-p 如果是外部命令,则显示其所在路径
-a 对于外部命令,它会显示命令路径,命令类型等信息
  • locate - 用于快速查找任何文件。它从一个系统数据库进行文件查找,而不需要遍历磁盘,因此速度极快。通常该系统数据库每天更新一次(可以查看系统的/etc/cron.daily/mlocate,不同系统可能不一样)
-e  仅查找存在的文件
-q  安静模式,不会显示任何错误讯息
-n  至多显示 n个输出
-r  使用正规运算式
-i  查找忽略大小写
-c  打印匹配结果数量
  • find - find命令是linux下一个强大的查找命令。与locate命令相比,它需要遍历磁盘文件,因此查找速度较慢,但正因如此,它的实时性比locate好得多。另外一方面,find命令的查找条件比locate丰富得多
find ./ -name "sort*"
./sort4.txt
./sort2.txt
./sort3.txt
./sort.txt

find ./ -iname "SORT.txt" #忽略大小写
./sort.txt

五、Linux工具命令

5.1、Redis

wget -q http://download.redis.io/releases/redis-3.2.7.tar.gz
wget http://download.redis.io/releases/redis-3.2.8.tar.gz

重启:service redis_6379 restart
是否启动:ps -ef |grep redis
控制台:redis-cli
密码:auth "12345"

redis.conf #的配置信息
1、daemonize #如果需要在后台运行,把该项改为yes
2、pidfile #配置多个pid的地址 默认在/var/run/redis.pid
3、bind #绑定ip,设置后只接受来自该ip的请求
4、port #监听端口,默认是6379
5、loglevel #分为4个等级:debug verbose notice warning
6、logfile #用于配置log文件地址
7、databases #设置数据库个数,默认使用的数据库为0
8、save #设置redis进行数据库镜像的频率。
9、rdbcompression #在进行镜像备份时,是否进行压缩
10、dbfilename #镜像备份文件的文件名
11、Dir #数据库镜像备份的文件放置路径
12、Slaveof #设置数据库为其他数据库的从数据库
13、Masterauth #主数据库连接需要的密码验证
14、Requriepass #设置 登陆时需要使用密码
15、Maxclients #限制同时使用的客户数量
16、Maxmemory #设置redis能够使用的最大内存
17、Appendonly #开启append only模式
18、Appendfsync #设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
19、vm-enabled #是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
20、vm-swap-file #设置虚拟内存的交换文件路径
21、vm-max-memory #设置redis使用的最大物理内存大小
22、vm-page-size #设置虚拟内存的页大小
23、vm-pages #设置交换文件的总的page数量
24、vm-max-threads #设置VM IO同时使用的线程数量
25、Glueoutputbuf #把小的输出缓存存放在一起
26、hash-max-zipmap-entries #设置hash的临界值
27、Activerehashing #重新hash

5.2、Nginx

#Nginx的启动
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#测试配置文件格式是否正确
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf或nginx -t

nginx -s命令:
#停止
stop — fast shutdown
#退出
quit — graceful shutdown
#重新加载配置文件
reload — reloading the configuration file
#重新打开日志f
reopen — reopening the log files

5.3、防火墙相关

CentOS 7.0默认使用的是firewall作为防火墙,使用iptables须重新设置一下

5.3.1、直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

#查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
firewall-cmd --state 

5.3.2、设置 iptables service

yum -y install iptables-services

#如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables 

#增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

#保存退出后
service iptable status #查看防火墙状态

systemctl enable iptables  #设为开机自启动

systemctl restart iptables.service #重启防火墙使配置生效

systemctl enable iptables.service #设置防火墙开机启动

#最后重启防火墙使设置生效即可。

5.3.3、网络服务

#CentOS 7 重启网络服务
systemctl retart network.service 
或
systemctl restart network

#Centos 7 启动网络服务,输入下面的命令:
systemctl start network.service
或
systemctl start network

#CentOS 7 停止网络服务,输入命令:
systemctl stop network.service
或
systemctl stop network

5.3.4、Jenkins

sudo service jenkins start/restart #启动/重启

5.3.5、Tomcat

wget http://localhost:8080 #测试连接

5.3.6、MySQL

service mysqld start/stop #停止服务
rpm -qa | grep mysql  #查看是否安装mysql

netstat –atp #进程查看

sudo grep 'temporary password' /var/log/mysqld.log #查看初始密码

mysql –u root –p #登录用户名

/etc/init.d/mysql starts #查看启动方法

SET PASSWORD = PASSWORD(' root '); #更新用户密码

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

systemctl status mysqld #查看mysql启动状态

ps aux|grep mysql #查看服务是否在运行

配置文件:/etc/my.cnf 
日志文件:/var/log//var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

5.3.7、FastDFS

服务启动配置
tracker 系统启动配置
vim /etc/init.d/fdfs_trackerd
替换:
/usr/local/bin/ 为: /usr/local/FastDFS/bin/
启动服务:
/etc/init.d/fdfs_trackerd start  或 service fdfs_storaged start
加入到系统自启用服务:
chkconfig fdfs_trackerd on
storaged 系统启动配置
vim /etc/init.d/fdfs_storaged
替换:
/usr/local/bin/ 为: /usr/local/FastDFS/bin/
启动服务:
/etc/init.d/fdfs_storaged start 或  service fdfs_storaged start
加入到系统自启用服务:
chkconfig fdfs_storaged on
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
广告 广告

评论区