Linux操作命令-服务端测试

服务端测试,经常要用到linux命令查看日志,查看文件,故写此博客记录一下。linux还是应该多练习,在牛客网上有SHELL编程题,可以去练一练。

牛客网在线编程_SHELL篇_SHELL篇牛客网在线编程SHELL篇-SHELL篇提供超多数据结构,系统设计,编程学习,练习题等,为技术求职者提供能力提升解决方案,同时为企业级用户提供更高效的招聘解决方案,帮助求职者与企业搭建人才招募和人才培养渠道https://www.nowcoder.com/exam/oj?page=1&pageSize=50&search=&tab=SHELL%E7%AF%87&topicId=195

目录

一、三剑客

1、grep

2、awk

3、sed

二、操作文件命令

1、目录操作命令

1.1cd命令

1.2ls命令

2、创建、移动文件命令

3、查看创建文件命令

3.1、cat命令

3.2、head命令

3.3、tail命令

3.4、more命令\less命令

3.5、sed命令

3.6、vim/vi命令

3.7、sort命令

3.8、uniq命令

三、变量表达式和函数

1、变量

2、表达式函数

四、其他常用命令

1、top命令

2、系统硬件配置查询命令

3、网络相关命令

4、查看端口号占用 杀死进程释放端口


一、三剑客

1、grep

grep "str" file

两个参数:-i和-o的用法

-i (不区分大小写)

grep -i "str" file

搜索出file这个文件里包含“str”的数据,不区分大小写

例:file文件里数据为:

hello world1

Hello shell

Or yes

搜索条件:grep -i "or" file

搜索结果为:(“or”不区分大小写,都标记红色)

hello world1

Or yes

-o (只展示搜索条件的字符)

grep -o "str" file

只能搜索出file这个文件里包含的“str“

例:file文件里数据为:

hello world1

Hello shell

Or yes

搜索条件:grep -o "Or" file

搜索结果为:(结果都标记红色)

Or

也可以先用cat命令获取文件全部内容,再用竖线+grep+条件(需要查询的字符)

cat file | grep "str"

应用正则进行匹配

cat file | grep -i "s.*"

表示将带有“s”或“S”以及后面的字符都查询出来

具体正则语法请移步:

例:file文件里数据为:

hello world1

Hello shell

Or yes

查询条件为:cat file | grep -i "o.*"

查询结果为:

hello world1(第一个o后面的字符都标记红色)

Hello shell(o后面的都标记红色)

Or yes (o后面的都标记红色)

如果要同时查询多个字符,用到参数-E,每个字符用|隔开

grep -E "a|b|c|d|e"

在多个文件中查找

grep "math_pattern" file1 file2 file3……

输出包含匹配字符串的行数:

grep -n 

统计文件中包含匹配字符串的行数:

grep -c

文件打包命令:

tar -cvf 打包文件名.tar 被打包的文件/路径

c 创建新的归档

v 详细列出处理的文件

f 使用归档文件

文件解包命令:

tar -xvf 打过包的文件.tar

压缩解压命令

压缩:tar -zcvf py.tar.gz a.txt b.txt c.txt

解压:tar -zxvf py.tar.gz -C 解压到目标路径(必须已经存在)

还可以用bzip2

tar -jcvf py.tar.bz2 a.txt b.txt c.txt

2、awk

awk命令

echo "123 456 789" | awk '{print $1,$2,$3}'

默认以空格作为切分

结果为:

123 456 789

如果打印全部,则$1,$2,$3改成$0

如果以其他字符作为切分,则用-F命令

echo "123|456|789"|awk -F '|' '{print $1}'

结果为:

123

改成以"|"作为切割符

如果需要在分开的部分添加其他字符,则写成$1"str"$2

注意,这里字符串里要用双引号,不能用单引号,避免与外面的单引号混淆

举例 echo "123|345|789"|awk -F '|' '{print $1":"$2":"$3}'

结果为:

123:456:789

限定输出条件,在print后加(),里面添加条件

例如:echo "2 345 789"|awk '{print ($1>1)$1":"$2":"$3}'

限定打印结果第一列必须大于1

每一列的数相加

awk '{A = A+$1;B=B+$2}'

表示第一列的值相加,第2列的值相加

注意这里是用分号隔开的,不是逗号

加完得到的值,可以利用占位符操作进行传递

牛客SHELL30 的题解

awk '{W=W+$5;Q=Q+$6}END{printf ("MEM TOTAL\nVSZ_SUM:%sM,RSS_SUM:%sM",W/1024,Q/1024)}'

扩展:每一行的数值相加awk命令:将某一列、行的数值相加。去除列中重复值,重复行_awk 加法_小朩的博客-CSDN博客利用awk命令awk '{print $n}' | awk '{sum+=$1}END{print sum}'例:_awk 加法https://blog.csdn.net/qq_55723966/article/details/119609980

3、sed

修改文件内容

sed -i '/s/str1/str2/g' file

将file文件中str1改成str2

sed -i -e 's/str1/str2/g' file -e 's/str3/str4/g'

同时修改file文件中的str1和str3

二、操作文件命令

1、目录操作命令

1.1cd命令

cd ..返回上一层目录

cd - 返回上一次所在的目录,可用于目录的切换

cd / 返回根目录

cd ~ 回到家目录

如果是root用户登录

cd home ---回到/root

如果是普通用户登录 

cd home ---回到/home/用户名

root用户和普通用户登录切换

普通用户切换到root用户:sudo su

root用户切换回普通用户:exit

多个普通用户切换: su 用户名

此外,pwd 显示当前所处的目录

1.2ls命令

ls 查看文件和目录

ls -a 查看当前目录下的所有文件(包含隐藏文件--文件名前含.)

ls -l 当前目录下文件的详细信息(包括文件读写权限、最后修改时间)

ls -t 按文件修改时间排序

ls -lt 当前目录下文件的详细信息+按最后修改时间拍序

ls -R 当前目录下所有子目录的内容,包括文件和文件夹

ll 查看当前目录下所有文件的详细信息

2、创建、移动文件命令

创建文件夹 mkdir

mkdir dir1 dir2

以空格隔开,创建多个文件夹

创建文件 touch

touch file1

文件的重定向

echo "hello shell" >file

将hello shell输入到文件file中

文件的追加写入

echo "hello wy" >>file

在hello shell的基础上,继续追加写入"hello wy"

按行作为分隔符查看文件(查看文件for 和 while的区别)

while read x;do echo $x;done<file

while循环:会将每行的内容读入到x变量,当while出现空行,用if判断字符=0, contiune

for line in $(cat file);do echo $line;done (这种方式查看文件,每次读取由空格分开的一部分)

for循环: 将读入的内容以IFS(shell中的环境变量,Internal Field Seperator,字段分隔符)为界分隔, 然后将各个分隔开的内容,逐一读入变量line。本质上说,for循环读取的是字段,只不过可以设置IFS为\n这样能够逐行读取。

例如:文件里:hello world

用while语句查看的结果为:hello world

用for语句查看的结果为:

hello

world

移动\更名文件命令 mv

mv dir1 dir2

将dir1文件 移动到dir2中

如果dir2不存在,则dir1改名为dir2

复制文件命令 cp

cp 源文件 目标文件

注意两个参数

cp -r 若源文件是一个目录,则将这个目录下的所有文件拷贝到目标文件中

cp -f 强制覆盖 重名时不会提示用户,直接copy

3、查看创建文件命令

3.1、cat命令

cat file

file具体文件的路径,不能是文件夹和目录

3.2、head命令

head -n -5 file

查看file这个文件前五行的内容,其中-n可写可不写

3.3、tail命令

tail -n -10 file

查看file这个文件后10行的内容,其中-n可写可不写

head和tail一起使用查询中间行的命令

文档共有100行,需要查询出第30-40行的数据

head -40 file | tail -11

先查询出前40行的数据,再从查处的数据中查处最后11行的数据,就是30-40行的数据

3.4、more命令\less命令

more file

只能用回车,一直往下翻,不能用上下键进行翻页,按q退出

less file

能用上下键进行翻页,按q退出

3.5、sed命令

查询某一行的命令

sed -n '5p' file

注意 -n不能省略

查询第5行的数据

与sed很像的seq命令:

sequence是序列的意思,取前面的seq,与sed命令区分开

seq 1 100

输出1-100的正整数

seq 0 7 100

输出0-100以内可以被7整除的正整数

3.6、vim/vi命令

编辑文件命令

按i光标停在当前的字符上

按a光标停在当前字符后面

按esc键退出编辑,按:wq! 表示保存并强制退出

按:q! 表示不保存并强制退出

当前编辑的内容标记上行号,按esc键,按:set nu再回车

3.7、sort命令

排序命令,默认按升序

-r 按降序

-n 按数字排序

3.8、uniq命令

uniq命令作用是去除重复行,但重复行不相邻时,uniq命令不起作用,故经常和sort命令一起使用

uniq -c 显示重复行出现的次数

查找文件命令:

which pwd

whereis 

locate

find

文件权限相关:

用户管理

创建用户

useradd 用户名

删除用户

userdel 用户名

用户组管理

创建用户组

删除用户组

文件权限:拥有者的权限/当前用户组的权限/其他用户的权限

r - 4读

w- 2写

x - 1执行

chmod 777 赋予拥有者、用户组、其他用户,可读可写可执行的权限

三、变量表达式和函数

1、变量

变量的赋值:

a=1

将1赋给a

变量的引用:

echo ${a} (严谨的写法)

单引号双引号的使用:

引号里有变量时,需使用双引号

echo "abc $a" --->输出 abc 变量a的值

echo 'abc $a' --->输出abc $a 

预定义变量:

PWD USER HOME PATH

可以输入来查看预定义变量

echo $PWD   ---当前路径

echo $USER  ---当前用户

echo $HOME ---当前家目录

echo $PATH ---环境变量

which语句 用于查找所在的路径

比如 which python

可展示python的路径

a=`ls` --将命令ls赋值给变量a

数组相关

({1..100})---表示从1到100的整数

a=(1 2 3 4 5 6) ---表示变量a是一个数组

屏幕上输出数组,用*和@都可以

echo ${a[*]}     echo ${a[@]}

输出数组的长度,用#

echo ${#a[@]}

输入数组的第一个元素

echo ${a[0]}

数组的遍历

for x in ${a[@]};do echo $x;done

(())表示对整数的扩展,将里面的变量当作整数去处理

a=2;b=3;echo $((a+b))

表示echo $((2+3))

参数 -e的使用

echo -e 'a\nb'

输出:

a

b

可实现换行操作,如果不加-e参数,输出a\nb,将\n当成普通字符,没有进行转义

a++ /a--

与编程语言中类似,表示a=a+1/a=a-1

字符串的切片与python中使用方法一样,同样也支持正则提取

2、表达式函数

echo $? 上一个语句执行成功则返回0,执行失败则为非0

算术判断

-eq 相等

-nq 不相等

-gt 大于

-ge 大于等于

-lt 小于

-le 小于等于

举例:

[ 3 -le 8 ];echo $?

输出0,执行结果是true

3小于等于8,成立,这里的数字可以换成表达式

简单运用:

i=0;while [ $i -lt 10 ];do echo $i;((i++));done

输出:1-9的整数

当i的值加到9时,输出9,i+1等于10,10不小于10,不会输出i的值

(())也可以进行算术运算 ((10>9)) 结果为true

逻辑运算符&&、||

看一个例子:

echo "1" && echo "2" || echo "3" && echo "4" || echo "5" || echo "6" && echo "7" && echo "8" || echo "9"

先猜想一下输出结果会是什么?

答案:1 2 4 7 8

&&的意思是前面执行了,就会去执行

||的意思是前面执行了,就不存在,不去执行

与和或的使用

系统判断符号的使用

-d file 文件是一个目录

-e file 文件存在

-f file 文件是一个普通文件

-r file 文件可读

-w file 文件可写

-x file 文件可执行

-g file 文件的set-group-id被设定

-s file 文件的长度不为0

-u file 文件的set-user-id被设定

四、其他常用命令

1、top命令

top 然后按下键盘1 可显示每个CPU核心的使用情况

具体怎么看top命令可参考以下三篇文章,介绍的非常详细。

Linux性能分析工具top命令详解_top命令内容详解_OceanSky6的博客-CSDN博客top命令是linux下常用的性能分析工具,能够实时的显示系统中各个进程的资源占用情况,常用于服务端性能分析。top命令说明:top命令的结果分为两部分: 统计信息:前五行是系统的整体统计信息。进程信息:统计信息下方类似表格的区域显示的是进程的详细信息,默认5秒刷新一次。 统计信息说明:第1行:top任务队列信息(系统运行状态及平均负载),与uptime命令结..._top命令内容详解https://blog.csdn.net/yaomingyang/article/details/78968573百度安全验证https://baijiahao.baidu.com/s?id=1745901459006156810&wfr=spider&for=pcLInux知识点(三)--- 动态监控系统_linux kib mem_EOPG的博客-CSDN博客top:top与ps命令很相似。它们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的的进程。2. 基本语法:top [选项]3. 选项说明:-d:秒数 指定top命令每隔几秒更新。默认是3秒 -i:使top不显示任何闲置或者僵死进程。-p:通过指定监控进程ID来仅仅监控某个进程的状态。[root@localhost100 /]# toptop显示说明:(1)整体信息:第一行:top - 15:55:54 :当前系统时间_linux kib memhttps://blog.csdn.net/qq_40247570/article/details/124432802

2、系统硬件配置查询命令

lscpu可以查看到CPU有几个

也可以用nproc查看CPU有几个

cpu的具体信息在/proc/cpuinfo这个文件里

3、网络相关命令

ping

检测主机是否联网

ifconfig

查看本机地址

4、查看端口号占用 杀死进程释放端口

查看端口占用:netstat -apn

可以使用top命令,输入k后,输入PID,输入9

可将进程杀死

查看所有进程详写信息:ps -ef

进程查找命令,查找出火狐的进程号

ps -ef | gerp "firefox" | awk '{print $2}'

杀死进程:kill -9 pid

杀死查找出来的所有火狐的进程

可以先将查找的命令重定向到一个文件中,然后读取文件逐个删除

while read pid;do kill -9 $pid;done>firfox_pid

这样显然有点麻烦,看能不能直接删除,可以用到xargs命令

ps -ef | gerp "firefox" | awk '{print $2}'|xargs kill -9

xargs命令的详解可以参考这篇博客,xargs可以直接管道符的输出当作输入

【Linux 进阶】命令 xargs 详解_linux xargs命令详解_TakingCoding4Granted的博客-CSDN博客【Linux 进阶】命令 xargs 详解_linux xargs命令详解https://blog.csdn.net/weixin_37780776/article/details/118947353?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168862066516800186531323%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168862066516800186531323&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-118947353-null-null.142%5Ev88%5Econtrol_2,239%5Ev2%5Einsert_chatgpt&utm_term=xargs&spm=1018.2226.3001.4187

软件安装命令

sudo apt install 软件包

软件更新

sudo apt upgrade 软件包

软件卸载

sudo apt remove 软件包

远程管理

linux开启远程连接

Linux如何开启远程连接_linux开启远程连接服务_殊荣重黎的博客-CSDN博客Linux如何远程连接_linux开启远程连接服务https://blog.csdn.net/qq_63041460/article/details/129014997用一台mac远程登录linux,确保登录成功

ssh ip地址(linux的地址)-p 22

需要新开启一个窗口,因为这个终端窗口登录的是linux,不能访问mac,找不到mac的文件位置

从linux上拷贝文件到mac上

scp 用户名@linux所在的ip:文件路径 mac本地的路径

从mac上拷贝文件到linux上

scp mac本地的路径 用户名@linux所在的ip:文件路径

如果复制目录下的所有文件,scp后面加上-r参数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16786.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python自动化办公——python操作Excel、Word、PDF集合大全

本文是鉴于有些粉丝的工作需求&#xff0c;有时候需要遇到这些文件的处理。因此&#xff0c;我写了一个文章集合&#xff0c;供大家参考&#xff0c;整篇文章已经整理成书册。&#x1f447;&#x1f447;&#x1f447; 戳我领取《Python自动化大全》 戳我领取《Python自动化大全…

京东商城主图视频抓取的方法步骤

如何抓取京东商城的主图视频呢&#xff1f; 步骤1&#xff1a;首先&#xff0c;打开电商图片助手软件&#xff0c;浏览主页面 步骤2&#xff1a;把需要的京东商城商品链接复制到软件上 步骤3&#xff1a;然后再主页面下方勾选需要的选项 步骤4&#xff1a;勾选好后&#xff…

扒站工具推荐

文章目录 背景推荐程序小结 背景 网络爬行&#xff08;也称为网络抓取&#xff09;在当今的许多领域得到广泛应用。它的目标是从任何网站获取新的或更新的数据并存储数据以便于访问。Web爬虫工具越来越为人所知&#xff0c;因为Web爬虫简化并自动化了整个爬网过程&#xff0c;…

人工智能和AI到底是什么??浅谈人工智能和AI

文章目录 我们每天所谈论的人工智能&#xff0c;究竟是什么&#xff1f;我们正处于AI时代&#xff1a;衣食住行中的AI 什么是人工智能&#xff1f;AI对传统行业的冲击AI对广告行业和媒体行业的冲击AI对教育行业的影响AI对艺术创作行业的影响AI对物流行业和工业行业的影响 我们每…

Guitar Pro8(简称GTP8)正式版吉他谱神器

大家好&#xff0c;Guitar Pro8绝对是学习吉他的好帮手&#xff0c;它是法国人编写的&#xff0c;现在已经有了Guitar Pro8只有几兆大&#xff0c;安装也很简单&#xff0c;可以编辑或打开GTP格式的乐谱&#xff0c;打开后就是六线谱&#xff0c;点击演奏按钮&#xff0c;软件就…

Android Gradle插件对应的Gradle所需版本

Gradle插件对应的Gradle所需版本 插件版本 需要的 Gradle 版本 4.2.0 6.7.1 4.1.0 6.5 4.0.0 6.1.1 3.6.0 - 3.6.4 5.6.4 3.5.0 - 3.5.4 5.4.1 3.4.0 - 3.4.3 5.1.1 3.3.0 - 3.3.3 4.10.1 3.2.0 - 3.2.1 4.6 3.1.0 4.4 3.0.0 4.1 2.3.0 3.3 2.1.3 - 2.…

爬取京东商品详情页信息

之前写过爬取京东商品导航信息&#xff0c;现在献上爬取京东商品详情页信息。 #爬取京东商品详情页信息 #2017/7/30import requests from bs4 import BeautifulSoup import os import csv import re import json import time#爬取页面链接 def make_a_link(keyword,page):try:r…

利用Python爬虫爬取京东商品的简要信息

转自本人博客园博客&#xff1a;https://www.cnblogs.com/JYU-hsy/p/9673454.html 目录 一、前言 二、何为爬虫 三、JD商品详情页的网页分析 3.1详情页上指向的其他URL 3.2商品名称、价格 四、简单爬虫框架 1.爬虫总调度程序 2.URL管理器 3.HTML下载器 4.HTML解析器 5.输出…

智能车浅谈——抗干扰技术软件篇

文章目录 软件抗干扰技术数字信号的抗干扰措施数字输入信号软件抗干扰措施数字输出信号软件抗干扰措施数字滤波算术平均值滤波中值滤波滑动平均滤波归一化差比和 CPU及程序的抗干扰措施复位掉电保护Watchdog技术 总结智能车系列文章汇总 软件抗干扰技术 前面介绍了一些硬件抗干…

人工智能中RPA、NLP、OCR介绍

1、NLP 自然语言处理( Natural Language Processing, NLP)是计算机科学领域与人工智能领域中的一个重要方向。主要研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理是一门融语言学、计算机、于一体的。因此&#xff0c;这一领域的研究将涉及自然…

最新php在线扒站程序源码分享

介绍&#xff1a; 目前很火的在线扒站程序&#xff0c;免服务器&#xff0c;全站整体无shua新&#xff0c;很友好。 搭建说明&#xff1a; 上传到服务器/虚拟主机即可&#xff0c;无需数据库&#xff0c;仅占180k&#xff0c;ajax.php有能力的修改&#xff0c;index.html看到版…

凭什么国内造不出高端示波器?一起扒一扒示波器的发展史!

我是小麦&#xff0c;一名热爱电子技术的工程师 关注我&#xff0c;一起变得更加优秀&#xff01; 示波器作为电测行业最基本的综合性仪器&#xff0c;设计和制造他所涉及的领域也十分广泛,从半导体到特种材料&#xff0c;从机加工到电子设计无所不涉及。这就需要强大完善的工业…

掌握这些,你也可以轻松扒谱(下)

如果你只想要扒取歌曲的演唱旋律&#xff0c;那只需要看《掌握这些&#xff0c;你也可以轻松扒谱&#xff08;上&#xff09;》这篇文章就可以啦~ 但是如果你需要扒取音乐的伴奏&#xff0c;那就需要观看下方的内容继续学习啦~ 1.练习听分解和弦 如果我们想扒取歌曲的伴奏旋律…

【计算机视觉】pycharm自制一个吉他扒谱软件(附源码)

【计算机视觉】pycharm自制一个吉他扒谱软件&#xff08;附源码&#xff09; 构思起源结果展示吉他音频和图片附件可以从我的git上下载源码 构思起源 作为一个深度吉他爱好者&#xff0c;拥有一个自制的扒谱软件真是梦寐以求的事情&#xff0c;以前扒谱还要手画六线谱&#xf…

在线扒站源码

介绍&#xff1a; 上传就可以用 网盘下载地址&#xff1a; http://kekewl.org/zT7gE9VEwUT 图片&#xff1a;

如果你不会扒谱,来吧,这款软件给你超能力

我大学时期同寝室的一个同学&#xff0c;弹得一手好吉他。最让我们佩服的事&#xff0c;可以把任意一首歌的歌谱扒出来&#xff01;每年联欢会&#xff0c;我们选个歌&#xff0c;他就能很快把谱子扒出来&#xff0c;大家就可以拿着各种乐器开始准备表演节目。这个技能一直让我…

想要快速扒谱?快来掌握这些小技巧吧!

相信喜欢音乐的小伙伴们都遇见过这样的事情&#xff0c;有时候我们听到了一手非常好听的歌曲&#xff0c;自己也想要翻唱它&#xff0c;结果在网上找了半天&#xff0c;也没有找到这首歌曲的谱子&#xff0c;于是我们只能非常遗憾的错过了它。 这时候我们不妨来卷起袖子试试自己…

听音扒谱app_掌握这些,你也可以轻松扒谱(下)

如果你只想要扒取歌曲的演唱旋律&#xff0c;那只需要看《掌握这些&#xff0c;你也可以轻松扒谱(上)》这篇文章就可以啦~ 但是如果你需要扒取音乐的伴奏&#xff0c;那就需要观看下方的内容继续学习啦~ 图片来自EarMaster中文官网 1.练习听分解和弦 如果我们想扒取歌曲的伴奏旋…

AutoGPT 安装指南,使用避坑要点

最近&#xff0c; AIGC 中最火的可能就当属于 AutoGPT 了吧&#xff0c;首先简单介绍一下AutoGPT 背景 AutoGPT 是基于 ChatGPT API 接口开发&#xff0c;项目首推 GPT-4 模型&#xff0c;但 OpenAI 账号 API 只有 gpt-3.5-turo 权限同样也可以使用。 项目在 github 上获取的…

Langchain使用OpenAPI过程中报错openai.error.RateLimitError

Langchain使用OpenAPI过程中报错openai.error.RateLimitError 在使用agent跑demo时突然出现以下情况 最后抛出异常&#xff1a; openai.error.RateLimitError: You exceeded your current quota, please check your plan and billing details.通过查阅官方文档发现原因所在&…