linux

linux运行级别  vim /etc/inittab

0停机

1单用户模式,用于系统维护,不能远程登录

2不联网的多用户状态

3 能联网的多用户状态

4暂时无

5图形界面

6重启,反复不断地重启

找回root密码:设置为单用户模式登录,用passwd root修改root密码。(单用户模式不需要root密码登录)

 

/etc/passwd  管理用户配置文件

/etc/shadow  用户口令配置

/etc/group    管理组信息

 

常用linux命令

touch{1..10}.txt

mkdir

mv [移动,重命名]

cp -r 目录  递归

rm -r 目录    递归

rmdir

cat/tac  -n 文件名 | more  (-n分行数,more分页)

more   less 用于查看大型文件,不会一下子加载出来看到哪加载哪. enter向下一页,space向下一行)

grep:在一堆文件中查找特定字符

>覆盖    >>追加

cal显示日历

 

删除java相关所有

rpm -qa | grep java | xargs sudo rpm -e --nodeps

 

 

常用快捷键:

shift + pageUp向上翻动

shift + pageDown 向下翻动

 

软连接(快捷方式): ln  -s 文件地址 连接名

    

 

 

查找指令: whereis  find  locate

locate查询文件路径

先更新数据库updatedb;   再查找 locate  hello.txt

whereis 只从数据库中查找,只能搜索二进制文件,源代码文件

find  强大 ,不但可以通过文件类型,文件名进行搜索,还可以通过文件时间,文件权限搜索

sudo  find  /tmp/  -name(-user  -size)  first.txt

sudo  find  /tmp  -newer  /tmp/homework  找到比homework更新的文件

 

 

文件压缩解压指令:

zip 打包后的名称   文件名(文件路径)

-r递归打包  -q安静模式  -1...9 文件压缩级别(9压缩的最狠,压缩体积最小,耗时最久)

unzip 解压

unzip  压缩文件.zip  -d  指定目录

unzip  -l  文件.zip  (只查看内容不解压)

 

查看文件容量  du  -h  -d  文件名   (-h人类可读,-d 深度)

 

tar命令: tar  -zcvf 压缩     tar  -zxvf   -C解压    

tar  -cf  打包名.tar  文件名(文件路径)   对文件进行打包成 打包名.tar

tar  -xf  打包名.tar  -C   路径          对打包名.tar进行解压到路径

 

 

 

磁盘管理:

主分区:最多创建四个,当存在四个的时候就没有扩展分区,也就没有逻辑分区

扩展分区:除了主分区以外,剩下的磁盘空间都为扩展分区,扩展分区不能直接使用

逻辑分区:在扩展分区基础上划分出的分区

(只有主分区和逻辑分区可以格式化

1-4号只能是主分区和扩展分区,逻辑分区从5号开始

扩展分区不能直接使用,扩展分区基础上的逻辑分区可以使用)

 

 

df 查看整体磁盘使用容量  df  -h  /etc  (查看/etc下的磁盘容量)

du 查看文件夹容量  du  -h  /tmp (查看tmp目录下文件夹容量)

fdisk 磁盘分区

(-n添加新分区  -p 查看分区信息  -d 删除分区  -w 保存  -q直接退出)

 

 

格式化  mkfs(make  filesystem)   mkfs.ext  磁盘名

挂载磁盘到目录树   mount  -o  loop  -t ext4 磁盘名   目录名

卸载已挂载磁盘 sudo  unmount  /mnt

 

 

 

帮助命令

something  --help

man  something

 

 

Linux添加定时任务 crontab

sudo  cron  -f &    (启动crontab)

crontab  -e  (为当前用户添加定时任务)

(minute hour day month week  command)

*所有

,和     1,10  1分钟和第10分钟

-到     1-10  1分钟到第10分钟

/n每  */3   每三个月执行一次

23-7/1    从晚上23点到7点 每一个小时执行一次

crontab%是有特殊含义的,表示换行的意思,如果要用的话必须进行转义  \%

date +%Y%M%D  改成 date  +\%Y\%M\%D

 

 

 

Cut命令:

cut /etc/passwd  -d  :  -f  2,6  打印/etc/passwd :为分隔符,第二个和第六个字段

cut  /etc/passwd  -c  -5 打印/etc/passwd 文件中每一行的前5个字符

 

 

 

 

 

grep匹配字符串搜索:

-n匹配行和行号    -i忽略大小写

export  |  grep .*txt  查找以*txt结尾的环境变量

 

 

wc统计文本

wc -l  统计行数

wc -w 统计单词数

wc -c 统计字节数

 

 

sort排序

cat  /etc/passwd  |  sort

 

 

正则表达式regex

*表示前面的字符出现0-n

+表示前面的字符至少出现一次

?表示前面的字符最多出现一次

z]匹配任意小写字母 a-z

 

 

进程管理:

ps  -aux 显示所有进程信息

kill  -9  pid  强制结束进程

 

创建进程并设置优先级: nice  -n  -5  vim&

对已经存在进程修改优先级: renice  -5  pid

 

 

 linux系统变慢 查询

LINIX常用命令: (系统变慢原因 逐个排查)

1. 查看整机 top     

 top查看当前机器使用情况   

结果参数:

 

负载均衡 load average: 0.08, 0.20, 0.23  三个值代表1分钟 5分钟 15分钟系统平均负载值, 系统负载均衡   三个值相加 /3 * 100% 如果高于 60%说明系统负担压力重

%CPU — 上次更新到现在的CPU时间占用百分比
%MEM — 进程使用的物理内存百分比

uptime  简单版top

 

2. 查看CPU vmstat

vmstat - n 2 3        采样时间每次间隔2秒   采样3次

结果参数:

r   正在运行或等待cpu的进程数   理论上不能超过cpu总核数的两倍

b  等待资源的进程数  如磁盘I/O 网络I/O等 

 

us  用户进程消耗CPU时间百分比   如果长期大于50% 需要优化程序

sy  系统进程消耗CPU时间百分比

us+sy 如果大于20CPU任务重  如果大于80说明CPU不足 

id  cpu空闲率 越高越好

 

mpstat -P All 2    每两秒钟查看一次cpu状况

 

内存 free

free -m  查看内存

 

硬盘 df

df  -h  查看磁盘使用情况

 

磁盘IO  iostat

iostat -xdk 2 3  每两秒打印一次磁盘IO情况 一共三次

rKB/s  每秒读       wKB/s  没秒写   util 一秒钟有百分之几的时间用于IO操作,接近100%时表示带宽跑满

 

网络IO  ifstat

 ifstat 1  每秒打一次网络IO情况

 

ps -ef | grep java     获取java进程号

 pidstat -u  1  -p   进程号   每秒钟 打印一次该进程号cpu使用情况

 pidstat -p  进程号  -r  2    每两秒钟 打印一次该进程号的内存占用情况

 pidstat -d  2  -p  进程号     每两秒钟 打印一次磁盘IO情况

 

排查实战;

top 命令 找到cpu占比最高的进程

ps -ef 找到对应的进程号

ps -mp 进程号 -o  thread,tid,time    找出进程中具体的线程号 tid

将10进制的线程号转为16进制 (英文字母小写)

jstack 进程号 | grep tid(十六进制的线程号)   查看日志

原文地址:https://www.cnblogs.com/ttaall/p/12251007.html