【工作记录】linux使用总结

一、常用命令详细介绍及使用

1、|管道符

1.介绍

管道符`|`,它的作用是将前一个命令的输出作为后一个命令的输入

2.使用

ps -ef | grep java | grep jar

ps -ef`这个命令是用来查看当前系统中正在运行的进程的。
`ps`是进程状态的缩写,`-e`参数显示所有进程,而`-f`则是全格式输出,会显示更详细的信息,比如UID、PID、PPID等等。
所以`ps -ef`的结果应该是一个包含所有运行中进程的列表,每一行对应一个进程,并带有详细信息。

接下来是管道符`|`,它的作用是将前一个命令的输出作为后一个命令的输入。所以第一个管道把`ps -ef`的结果传给`grep java`。这里`grep java`的作用是从输入中筛选出包含“java”关键词的行。也就是说,这一步会过滤出所有和Java相关的进程。

然后第二个管道将`grep java`的结果传给`grep jar`,这进一步过滤出那些包含“jar”的行。所以最终的结果应该是所有运行中的Java进程,并且这些进程的命令行参数中包含“jar”字符串,通常这意味着这些进程是通过运行一个JAR文件启动的,比如`java -jar myapp.jar`这样的命令。

2、grep文本搜索

1. 介绍

`grep`是一个强大的文本搜索工具,它使用正则表达式来匹配文本,并输出符合条件的行。基本语法是`grep [选项] 模式 [文件]`。如果没有指定文件,它会从标准输入读取数据。

常见的选项有:

- `-i`:忽略大小写。

- `-v`:反向匹配,显示不包含模式的行。

- `-n`:显示匹配行的行号。

- `-c`:统计匹配的行数。

- `-r` 或 `-R`:递归搜索目录中的文件。

- `-l`:仅显示包含匹配模式的文件名。

- `-w`:精确匹配整个单词。

- `-A num`:显示匹配行之后的num行。

- `-B num`:显示匹配行之前的num行。

- `-C num`:显示匹配行前后各num行。

2.使用

1.文件中搜索


grep "error" server.log     # 输出 server.log 中所有含 "error" 的行

grep -i "error" server.log     # 忽略大小写,一般是ERROR



2.结合管道过滤进程

ps -ef | grep java   # 查找所有 Java 进程


3.递归搜索文件内容

grep -r "public class" /src         # 搜索 /src 目录下所有含 "public class" 的文件
1. 在文件中搜索特定字符串:`grep "error" logfile.txt`,这会找出logfile.txt中所有包含“error”的行。

2. 忽略大小写:`grep -i "warning" logfile.txt`,这会匹配“Warning”、“WARNING”等。

3. 反向搜索:`grep -v "success" logfile.txt`,显示不包含“success”的行。

4. 统计匹配行数:`grep -c "error" logfile.txt`。

5. 递归搜索目录:`grep -r "main" /src`,在/src目录及其子目录的所有文件中搜索“main”。

6. 精确匹配单词:`grep -w "class" file.java`,避免匹配到“classic”或“subclass”等。

7. 显示行号:`grep -n "Exception" logfile.txt`,输出时会显示行号。

8. 结合管道使用:`ps -ef | grep java`,查找Java进程。

3、ls查看目录

1.介绍

显示目录下全部文件

2.使用

4、cd打开

1.介绍

切换当前终端的工作目录(类似于“打开”目录)。

2.使用

cd [目标目录路径]

常用操作示例

1. 进入 dist 目录
假设当前目录下存在 dist 目录:
cd dist

2. 返回上一级目录
从 dist 目录退回到父目录:
cd ..

3. 进入绝对路径的目录
直接通过绝对路径进入 /var/www/html/dist:
cd /var/www/html/dist

4. 返回用户主目录(HOME)
快速回到用户的主目录(如 /home/username):
cd ~
# 或简写为
cd

5. 返回根目录
cd /

5、zip压缩

1.介绍

将文件或目录压缩为 .zip 格式。

2.使用

常用选项:

-r:递归压缩目录及其子内容。

-q:静默模式(不显示压缩过程)。

-e:加密压缩文件(需设置密码)。
目录:
将当前目录下的 dist 目录压缩为 dist.zip:
zip -r 新的文件 旧的文件
zip -r dist.zip dist/


文件:
将当前目录下的 npp.jar 文件压缩到 npp.zip 中。
zip 新的文件 旧的文件(单文件压缩无需 -r 参数(仅目录需要)。)
zip npp.zip npp.jar

6、unzip解压缩

1.介绍

解压 .zip 文件。

2.使用

常用选项:

-d:指定解压路径。

-o:覆盖已存在的文件(无需确认)。

-l:仅列出压缩包内容,不解压。
操作 dist.zip 的示例:
将 dist.zip 解压到当前目录或指定目录:

# 解压到当前目录
unzip dist.zip

# 解压到指定目录(如 ./output)
unzip dist.zip -d ./output


若省略 -d,默认解压到当前目录。
若目标目录已存在同名文件,使用 -o 强制覆盖:
unzip -o dist.zip

7、mv移动

1.介绍

移动文件/目录或重命名。

2.使用

常用场景:

重命名:mv 旧名 新名

移动:mv 源路径 目标路径
目录:
# 重命名 dist 目录为 dist_backup
mv dist dist_backup

# 将 dist 目录移动到 /var/www/html 下
mv dist /var/www/html/

# 移动并重命名(将 dist 移动到 /backup 并重命名为 dist_old)
mv dist /backup/dist_old

若目标路径是目录且存在,mv 会将源目录移动至目标目录内(如 /var/www/html/dist)。
若目标路径不存在,则视为重命名操作。


文件:

# 将 npp.zip 移动到当前目录下的 test 目录中
mv npp.zip test/

# 将 npp.zip重命名0408.zip
mv npp.zip 0408.zip

8、mkdir创建目录

# mkdir 目录

mkdir my_folder

9、rm删除文件/目录

# rm -rf old_data
rm -rf old_data

10、top实时监控系统进程

top

11、jps列出Java进程信息

# 详细,显示完整包名或 JAR 路径
jps -l

# 列出 Java 进程的 PID 和主类名(简短格式)
jps

12、ps显示进程状态

# 查看所有进程
ps -ef   
ps -ef | grep "java"

# 查看指定 PID 的进程信息
ps -p pid
ps -p 8888

13、kill终止进程

kill 8888          # 终止 PID 为 8888 的进程(默认发送 SIGTERM 信号)
kill -9 8888       # 强制终止 PID 为 8888 的进程(发送 SIGKILL 信号)

14、tail查看文件末尾内容

# 实时监控日志文件
tail -f file.log

# 实时监控日志文件 + 筛选关键字
tail -f file.log | grep "error"

# 查看 access.log 的最后 20 行,不实时加载
tail -n 20 file.log  

15、pwd显示当前目录

pwd                    # 输入

/home/user/Documents   # 输出

16、tar 命令压缩与解压

tar    [选项]         [归档文件名]             [文件/目录列表]

命令参数说明

  • -c: 创建新的归档文件(压缩)

  • -x: 从归档文件中提取文件(解压)

  • -z: 使用 gzip 压缩/解压

  • -v: 显示操作过程(verbose)

  • -f: 指定归档文件名(必须放在最后)

1. 压缩 app 目录
tar -czvf app.tar.gz app/
2. 压缩 dist 文件
tar -czvf npp.tar.gz np.jar


1. 解压 app.tar.gz
tar -xzvf app.tar.gz
2. 解压 npp.tar.gz
tar -xzvf npp.tar.gz

17、

待补充...

二、文件与目录操作

命令语法常用选项示例适用场景
lsls [选项] [目录]-l(详细信息)、-a(显示隐藏文件)、-h(易读文件大小)ls -lah /home查看目录内容
cdcd [目录路径]~(家目录)、-(返回上一次目录)cd /var/log切换工作目录
cpcp [选项] 源文件 目标路径-r(递归复制目录)、-i(覆盖前确认)cp -r dir1/ dir2/复制文件或目录
mvmv [选项] 源文件 目标路径-i(覆盖前确认)、-v(显示移动过程)mv old.txt new.txt移动/重命名文件
rmrm [选项] 文件或目录-r(递归删除)、-f(强制删除不提示)rm -rf tmp/谨慎使用!删除文件/目录
mkdirmkdir [选项] 目录名-p(自动创建父目录)mkdir -p project/src创建多级目录
findfind [路径] [条件]-name(按名称搜索)、-type(按类型搜索)find / -name "*.log"全局搜索文件
rsyncrsync [选项] 源 目标-a(归档模式)、-v(显示进度)、-z(压缩传输)rsync -avz dir/ user@remote:/backup/高效同步文件(本地或远程)

三、文本处理

命令语法常用选项示例适用场景
catcat [文件]-n(显示行号)cat -n config.conf查看文件内容
headhead [选项] 文件-n 5(显示前5行)head -n 10 access.log查看文件头部内容
tailtail [选项] 文件-n 5(显示末尾5行)、-f(实时追踪日志)tail -f app.log监控日志更新
grepgrep [选项] 模式 文件-i(忽略大小写)、-v(反向匹配)、-C 3(显示上下文3行)grep -i "error" system.log过滤关键信息
sedsed [选项] '命令' 文件-i(直接修改文件)、-e(多命令组合)sed -i 's/old/new/g' file.txt批量替换文本
awkawk '模式 {动作}' 文件-F(指定分隔符)awk -F: '{print $1}' /etc/passwd提取特定列数据

四、系统管理与监控

命令语法常用选项示例适用场景
toptop-d 2(刷新间隔2秒)、-p PID(监控指定进程)top -d 1实时监控系统资源占用
htophtop交互式操作(支持鼠标点击)htop更友好的进程监控工具(需安装)
psps [选项]-ef(显示所有进程)、aux(BSD格式)ps -ef | grep nginx查看进程状态
killkill [信号] PID-9(强制终止进程)kill -9 1234终止无响应的进程
dfdf [选项]-h(易读单位)df -h查看磁盘空间使用情况
freefree [选项]-h(易读单位)free -h查看内存使用情况

六、网络工具

命令语法常用选项示例适用场景
pingping [目标]-c 4(发送4个包后停止)ping -c 4 google.com测试网络连通性
curlcurl [选项] URL-O(下载文件)、-I(仅显示响应头)curl -O https://example.com/file.zip发送HTTP请求或下载文件
wgetwget [选项] URL-c(断点续传)、-r(递归下载)wget -c http://example.com/large.iso下载大文件
netstatnetstat [选项]-tuln(查看监听端口)、-p(显示进程名)netstat -tuln | grep 80检查端口占用情况
sshssh 用户@主机-p 2222(指定端口)ssh -p 2222 user@192.168.1.100远程登录服务器

七、压缩与解压

命令语法常用选项示例适用场景
tartar [选项] 文件-c(创建压缩包)、-x(解压)、-z(gzip压缩)、-v(显示过程)tar -czvf backup.tar.gz dir/打包并压缩目录
gzipgzip [文件]-d(解压)、-9(最高压缩率)gzip -9 large.log压缩单个文件
unzipunzip [压缩包]-l(查看内容)、-d(指定解压目录)unzip data.zip -d target/解压ZIP文件

六、权限管理

命令语法常用选项示例适用场景
chmodchmod [权限] 文件u+x(给所有者添加执行权限)、755(数字模式)chmod 755 script.sh修改文件权限
chownchown 用户:组 文件-R(递归修改目录)chown -R www:www /var/www/修改文件所有者
sudosudo 命令-i(切换为root环境)sudo apt update以管理员权限执行命令

查看mqtt进程[root@localhost ~]# ps -ef |grep "mqtt":root     19308  1398  0 14:45 pts/1    00:00:00 grep --color=auto mqtt
打开MQTT文件路径[root@localhost /]# cd MQTT:[root@localhost MQTT]# ll
查看日志[root@localhost MQTT]# tail -f mqtt27804.log 
2024-04-08 05:38:22.153 INFO [nioEventLoopGroup-3-7] com.jinhetech.xiotmqtt.server.handler.NettyMqttHandler : info--MqttMessage[fixedHeader=MqttFixedHeader[messageType=PINGREQ, isDup=false, qosLevel=AT_MOST_ONCE, isRetain=false, remainingLength=0], variableHeader=, payload=]
2024-04-08 05:38:22.154 INFO [nioEventLoopGroup-3-7] com.jinhetech.xiotmqtt.server.handler.NettyMqttHandler : NettyMqttHandler-channelReadComplete
2024-04-08 05:38:50.445 INFO [nioEventLoopGroup-3-3] com.jinhetech.xiotmqtt.server.handler.NettyMqttHandler : info--MqttMessage[fixedHeader=MqttFixedHeader[messageType=PINGREQ, isDup=false, qosLevel=AT_MOST_ONCE, isRetain=false, remainingLength=0], variableHeader=, payload=]
2024-04-08 05:38:50.445 INFO [nioEventLoopGroup-3-3] com.jinhetech.xiotmqtt.server.handler.NettyMqttHandler : NettyMqttHandler-channelReadComplete
查看100行日志[root@localhost MQTT]# tail -100f mqtt27804.log :2024-04-08 05:38:50.445 INFO [nioEventLoopGroup-3-3] com.jinhetech.xiotmqtt.server.handler.NettyMqttHandler : NettyMqttHandler-channelReadComplete
下载服务器文件到本地[root@localhost MQTT]# sz mqtt27804.log :-bash: sz: 未找到命令
安装插件,支持sz命令[root@localhost MQTT]# scp root@10.51.240.31:/MQTT/mqtt27804.log:已安装:lrzsz.x86_64 0:0.12.20-36.el7    完毕!
查看文件下内容[root@localhost MQTT]# ls:D:             mqtt27805.log  xiotmqtt-test-27804-0.0.1-SNAPSHOT.jar  xiotmqtt-test-27806-0.0.1-SNAPSHOT.jar mqtt27804.log  mqtt27806.log  xiotmqtt-test-27805-0.0.1-SNAPSHOT.jar
删除mqtt日志文件:[root@localhost MQTT]# rm -rf mqtt27804.log 
重启mqtt服务:[root@localhost MQTT]# nohup java -jar xiotmqtt-test-27804-0.0.1-SNAPSHOT.jar > mqtt27804.log 2>&1 &:[1] 20919,执行完会有进程号
nohup java -jar xiotmqtt-test-27804-0.0.1-SNAPSHOT.jar > mqtt27804.log 2>&1 &
nohup java -jar xiotmqtt-test-27805-0.0.1-SNAPSHOT.jar > mqtt27805.log 2>&1 &
nohup java -jar xiotmqtt-test-27806-0.0.1-SNAPSHOT.jar > mqtt27806.log 2>&1 &
查看cpu命令:top
内存使用率:free -h

在linux系统中查看jar包进程,可以使用ps命令来查看,具体代码如下:ps -ef | grep java | grep jar
使用jps先得到进程pid:jps -l
使用ps -ef 查询java进程更详细一点运行时参数(只想要进程号可以用jps):ps -ef | grep java
解压缩zip文件:unzip xxx.zip

杀进程 kill -9
以普通用户登录的,可以使用以下命令切换到root用户:sudo su -
如果你已经以root用户身份登录,可以直接在命令行中执行以下命令:su -
[root@localhost MQTT]# sh xiotmqtt-test-27804_stop.sh 
[root@localhost MQTT]# sh xiotmqtt-test-27805_stop.sh 
[root@localhost MQTT]# sh xiotmqtt-test-27806_stop.sh 
[root@localhost MQTT]# sh xiotmqtt-test-27804_start.sh 
[root@localhost MQTT]# sh xiotmqtt-test-27805_start.sh 
[root@localhost MQTT]# sh xiotmqtt-test-27806_start.sh 
[root@localhost MQTT]# ps -ef |grep "mqtt"

cd ..
[root@localhost /]# cd root
[root@localhost ~]# ls
anaconda-ks.cfg  emqx-5.6.0-el7-amd64.tar.gz  mqtt27804.log  mqtt27806.log  zabbix-agent-3.4.10-1.el7.x86_64.rpm
emqx             logs                         mqtt27805.log  nacos
[root@localhost ~]# cd emqx/bin/
[root@localhost bin]# cd ..
[root@localhost emqx]# ls
bin  data  dynlibs  erts-14.2.1  etc  lib  log  plugins  releases
[root@localhost emqx]# cd bin/
[root@localhost bin]# ./emqx start

cd - 命令可用于返回上次访问的目录。这在两个目录之间频繁切换时非常方便
切回根目录cd /


sh脚本启动命令:sh start.sh
查看日志tail -f mqtt27804.log
tail 命令是最常用的查看日志语句。以日志文件 server.log 为例,tail 命令可以用于查看日志文件的最后几行或实时追踪日志文件。
常用的 tail 命令选项:
-n: 指定显示行数。
-f: 以跟随模式运行。
-c: 指定要显示的字符数。
-r: 从文件末尾倒序显示。
查看日志文件的最后几行,显示 server.log 文件的最后 100 行tail -n 100 server.log
显示 server.log 文件100行之后的所有日志tail  -n +100 server.log   
实时追踪日志文件,跟随模式运行 tail 命令,实时显示新加入的内容。(默认最后10行,相当于增加参数 -n 10):,tail -f server.log
查找日志文件中包含指定字符串的行,显示 server.log 文件中包含关键字的行grep "关键字" server.log
显示 server.log 文件的最后 100 个字符,如果 -c 选项后面没有跟随数字,则会默认显示最后 100 个字符tail -c 100 server.log
查看日志文件中包含 “ERROR” 的行,并从文件末尾倒序显示tail -r -n 100 | grep "ERROR"
退出tail命令Ctrl+c
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值