linux基础命令:
目录类
1. / 根目录 cd / 进入根目录 cd ~ 或者直接cd 是进入用户目录
2. ls 展示当前文件夹下的所有文件
3. ll 竖着展示所有文件的详细信息 (工作中用的很多)
4. pwd 当前文件的路径
5. cd . 显示当前目录
cd .. 返回上一级目录
6.分清楚相对路径,绝对路径
cd /usr/bin 详细的路径地址,就是绝对路径
cd . 显示当前目录,就是相对路径
文件类
1.创建文件夹 mkdir demo
2.创建文件 touch a.txt
3.如果父目录不存在,直接创建子目录 mkdir -p /home/mtx/study
3.复制文件 cp 文件名 + 要复制的路径 例如: cp test.doc /home/
4.复制文件夹 cp -r 文件的路径 + 要复制的路径 例如 : cp -r tools/ /root/
5.移动文件(相对于剪切文件) mv test(文件名) /home/
6.删除文件夹或者文件 rm -rf tools/
7.文件执行 ./文件名
文本编辑
1.编辑文件 vi ./a.txt 按 i 进入编辑模式,可以移动光标进行文本编辑操作,按ESC退出编辑模式
然后输入 : 再输入wq :wq
:q! 强制退出不保存
在非编辑模式下的快捷键:
ctrl+f 向前翻一页 ctrl+b 向后翻一页
ctrl+d 向前翻半页 ctrl+u 向后翻半页
$ 移动光标到行尾
^ 移动光标到行首
yy 复制光标到当前行的缓冲区
p 粘贴复制的内容
dd 删除当前行
/test(要搜索的内容) 这个非常实用 , 按N找下一个符合条件的
文件查看(这个也是用的非常多的)
例如查看日志等
1.一次性读取并打印文件里的所有信息(适合小文件,只有1-20行) cat a.txt
2.读取文件,一次性读取完,每次只展示一屏(适合大文件的查看) more a.txt 按空格键展示下一页,按b显示上一页
3.读取文件,每次只读一屏,并且只展示一屏, less a.txt 按空格键展示下一页,按b显示上一页
4.读取文件,从后往前读取, tail -200 a.txt
5.实时读取文件,从后往前读取, tail -f a.txt (非常好用),退出按ctrl+c
6.展示文件的前几十行 head -50 a.txt
Linux下的包管理工具(其实就相当于手机系统里的应用商店)
yum
1. yum list 列出所有的包(已安装+可以安装的)
2. yum search 包名 搜索指定包
3. yum install -y 包名 安装指定包
如果提示需要root权限,在命令前加sudo就可以 , 例如: sudo yum install -y unzip
4. yum remove 包名 删除指定包
5. yum update 包名 更新指定包
文件压缩、解压
1. zip -r test.zip test 将test文件夹压缩为zip格式
2. unzip test.zip 将文件夹解压到当前目录
3. tar cvf test.tar.gz test 将test文件夹压缩为tar.gz格式
4. tar xvf test.tar.gz 将test.tar.gz解压到当前目录
5. unzip test.war 将test.war解压到当前目录
权限控制
1. chmod +x ./test.txt 对当前目录下的test.txt添加可执行权限
2. chmod +x ./* 对当前目录下所有文件添加可执行权限
3. chmod 777 ./test.txt 对test.txt文件设置所有人均有读写执行权限
4. chown root:root ./* 将当前所有目录文件的拥有者改为root组的root用户
5. chown -R root:root ./* 将当前所有目录和子目录文件的拥有者改为root组的root用户
小技巧:当文件名太长时,可以输入一部分,然后按tab键就会自动补全
文件搜索
1. find / -name test.txt 从根目录下全局搜索test.txt文件 (常用)
2. find / -name *test.log 从根目录下搜索后缀为test.log的文件 (常用)
3. find / -amin -10 查找在系统中最后10分钟访问的文件
4. find / -atime -2 查找在系统中最后48小时访问的文件
5. find / -mmin -5 查找在系统中最后5分钟里修改过的文件
6. find / -mtime -1 查找在系统中最后24小时里修改过的文件
7. find / -user fred 查找在系统中属于fred这个用户的文件
8. find / -size +10000c 查找出大于10000000字节的文件(c:字节,k:kb,m:mb,G:GB)
9. find / -size -1000k 查找出小于1000kb的文件
系统命令(非常重要,非常常用)
1. ip addr 查看系统IP信息
2. systemctl restart/start/stop network 网卡重启/启动/关闭 (error)
3. systemctl stop/start/status firewalld.service 防火墙关闭/开启/查看状态
4. ps -ef | grep jmeter 查看系统里与jmeter相关的进程
5. kill -9 进程号 通过进程号强行杀掉某进程
6. history | grep xxx 查看Linux命令执行历史,并过滤出包含xxx的命令
7. nohup ./xxx.sh & 在后台执行xxx.sh脚本
8. netstat -anp | grep 8080 查看系统中8080端口建立的连接和所属进程
awk格式(主要操作列数据)
awk [options] 'Pattern {Action}' file1,file2
[options] 可选项 参数
通过 -F 选项来执行分割符,分隔符默认为空白
例子:awk -F '#' '{print $1}' test.doc
{Action} 行为,一般都是打印输出,print
Pattern 模式
模式就是条件,符合条件的行,awk才会进行处理
awk '{print $2}' test.doc 只打印test文件的第二列
awk变量
FS 输入字段分隔符,默认为空白字符,一般需要加-v
OFS 输出字段分隔符,默认为空白字符,一般需要加-v
NF 分隔后的字段数量 例子: awk 'NF == 4 {print $1}' a.doc
NR 当前行的行号
经典Linux面试题
某文件有多列数据,空格隔开,统计第n列单词,打印出现频率最高的前5个
awk '{print $n}' 文件 | sort | uniq -c | sort -rn | head -3
sort 排序,把相同的排到一起, 不加参数是升序, -r倒叙 -n 按照数字排序
uniq 去重, 加了参数-c显示出现的数量
注意:uniq只能处理有序的,打乱的是不能处理的,所以第一个sort必须要加
head -3 相当于是控制输出,只显示多少个
sed命令(主要操作行数据)
命令格式: sed [选项] [动作]
选项: -n 加上这个参数之后,只有经过sed特殊处理的那一行才会被列出来
-i 直接修改读取的文件内容,而不是输出到终端
动作
[n1 [n2]] function
n1,n2 可选项,一般代表选择进行动作的行数,举例来说,如果我的动作是需要在10到行之间进行的,则 10,20【动作行为】
function:
a: 新增行, a的后面可以接字符串,而这些字符串会在新的一行出现
c: 替换行, c的后面可以接字符串,这些字符串可以取代n1,n2之间的行
d: 删除行, 因为是删除啊,所以d后面通常不接任何字符串
i: 插入行, i的后面可以接字符串,而这些字符串会在新的一行出现(目前的上一行)
p: 打印, 将某个选择的数据打印输出,通常p会与参数sed -n 一起运行
s: 替换, 可以直接进行取代的工作,通常这个s的动作可以搭配正规表示法
例如:
打印第2-4行的内容 sed -n '2,4p' a.doc
删除某几行(注意删除,sed后不能加-n) sed '2,4d' a.doc
在第一行后面加东西 sed '1a hello' a.doc
搜索某字符串并打印 sed -n '/ddd/p' a.doc
修改原文件 sed -i '2,4d' a.doc
替换文本 sed -i 's/111/777/g' a.doc 将111替换成777 g是全局替换
经典面试题
统计一篇文章出现频率最高的10个单词
sed 's/ /\n/g' 文件名 | awk '{print $1}' | sort | uniq -c | sort -rn | head -10
统计接口的使用频率
awk '{print $7}' 日志名 | awk -F '?' {print $1} | sort | uniq -c | sort -rn | head -10
grep命令
grep可以过滤文件中的数据
查看包含指定字符串的行 grep 'xxx' test.log
显示行号 grep -n 10 'xxx' test.log
n的参数有3个 (A后面, B前面, C前面加后面)
-w 精准匹配
-v 不包含某些字符串的行
多个条件进行过滤 grep 'xxx' a.log | grep 'zzz' b.log
awk,sed,grep总结
awk适合对于有规律的列数据进行处理
sed适合对于行数据进行处理,包括增删改查
grep适合对文本数据进行过滤处理
性能监控命令
操作系统监控四大项
cpu 内存 网络 磁盘
1.cpu 监控
top命令
id:CPU的空闲率,也就是使用率
us: 用户进程所占用的cpu大小 (占用高,是比较正常)
sy: 系统进程所占用的cpu大小
wa: 等待,磁盘的等待时间,如果值比较高,就是磁盘有问题了
2.内存监控
free -m
used 使用的内存
free 空闲的内存
buff、cache 预留的内存
available 真正可用的内存
3.磁盘监控
iostat -x -k 1
-x 会展示更多的数据
-k 以kb单位显示
1 1秒钟刷新一次
要注意util(I/O的使用率)的数据,如果很高,就说明磁盘已经遇到瓶颈了
rkb/s 每秒读的数据
wkb/s 每秒写的数据
df -h 看磁盘的空间
一般看 / (根目录)
综合性能监控命令
vmstat 1
性能监控工具 nmon
nmon是IBM开发的Linux性能监控工具,可以实时展示系统性能情况,也可以将监控数据写入文件中,并使用nmon 分析器做数据展示
分为两个部分,一部分监控组件,一部分是分析组件
rz 从Windows桌面上传文件到linux系统
mv 文件重命名
监控的命令 ./nmon -ft -s 5 -c 1000
-ft 将数据写入到文件里面
-s 每隔多长时间监控一次
-c 一共监控多少次
用nmon可以做稳定性测试,例如让长时间运行,然后看监控的数据
如果监控的中途想停下来
用命令 ps -ef | grep nmon 查到nmon的进程号
杀掉这个进程 kill 9 进程号
将监控文件下载到windows系统,用命令 sz
然后用分析器分析出数据,并以图表形式展示
重点需要关注的标签页
1. cpu_all
2. diskbusy
3. net
4. mem