Linux基本指令
-
连接SSH
- ssh uesrname@ip
- 例如:
ssh root@192.168.43.217
-
- 示例:
mkdir -p project/App;
- 注:删除多级文件夹:
rm -r 文件夹名
-- 表示循环删除文件夹,深入后逐个询问并删除
rm -rf 文件夹名
-- f表示强制执行,-rf直接删除,不询问。
-
- 管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。
- 连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
-
linux基本指令 awk、find、grep
- AWK是一种处理文本文件的语言,是一个强大的文本分析工具
- grep更适合单纯的查找或匹配文本;awk 更适合格式化文本,对文本进行较复杂格式处理
- grep查找具体的文本,find查找文件。
-
grep:-v 不显示匹配上的内容;-n 显示匹配上的内容
- grep -v down,显示不包含down的内容。
- grep -n down,显示包含down的内容。
-
- 两种方法:grep+wc;awk。
- grep+wc:
- 当个字符串:
grep 字符串 文件名|wc -l
,grep输出,wc -l按行统计
- 多个字符串:
grep 'objStr1\|objStr2' filename|wc -l
- awk:
- 语法1:
awk -v RS="@#$j" '{print gsub(/targetStr/,"&")}' filename
- 语法2:
awk '{s+=gsub(/targetStr/,"&")}END{print s}' filename
- 统计文件夹下特定类型文件个数
- 示例:统计文件夹下/mount/taskdata 以.log结尾的文件数量
- 法1:
find /mount/taskdata -name *.log |wc -l
-- find查找特定类型并统计
- 法2:
ls /mount/taskdata/*.log |wc -l
-- ls列出特定类型并统计
-
大文件中查找关键字出现的次数
-
查找文件:
- find /(查找范围) -name 查找关键字 -print
- find <指定目录> <指定条件> <指定动作>
- find的使用实例:
- find . -name 'my*'
:搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
- find . -name 'my*' -ls
: 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
- find . -type f -mmin -10
: 搜索当前目录中,所有过去10分钟中更新过的普通文件。
- 如果不加-type f参数,则搜索普通文件+特殊文件+目录。
- find 可以与 wc 通过管道连接,进行一些统计操作。
-
- 通过查看日志access_log文件进行统计:
- cat access_log |cut -d ' ' -f 1 | sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 100 | less
- 当前WEB服务器中联接次数最多的ip地址:
- netstat -ntu | tail -n +3|awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 100
- 通过文件test.txt查询:
- cat test.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 100
-
- 格式:uniq [options][file1 [files]]
- uniq -c file:file中的重复行输出一次,并在每行前显示重复次数
- uniq -d file:file中的重复行输出一次,但不输出唯一的行
- uniq -u file:只输出file中的唯一行
- uniq file1 file2:把file1中的重复的相邻行删除,并把每行的一个拷贝送到file2
- 示例:
cat a.txt|uniq -c
和uniq -c a.txt
获得相同结果
-
awk
-
查看端口
- netstat -tunlp 是查看所有的在使用的端口号情况
- netstat -tunlp | grep 端口号 是查看所查询的端口号情况
- 参数备注:
- -t:(tcp)仅显示TCP相关端口
- -u:(udp)仅显示UDP相关端口
- -n:不进行DNS轮询,显示IP(可以加速操作)
- -l:仅列出有在Listen(监听)的服务端口
- -p:显示建立相关链接的程序名
-
- 注:存疑,先这样吧。
- ps:使用场景:两个不同端口的微服务,当我们测试的时候,需要放到同一台服务器上,共享80端口访问
- ps -ef |grep 80

- netstat -anp |grep :80

-
查看进程
- ps -A 显示所有进程信息
- ps -u root 显示指定用户信息
- ps -ef 显示所有进程信息,连同命令行
- ps -ef|grep ssh 查找特定进程ssh
- ps -l 列出与本次登录有关的进程信息;
- ps -aux 查询内存中进程信息;
- ps -aux |more 分页显示结果
- ps -aux | grep *** 查询***进程的详细信息;
- ps -aux > ps001.txt 把所有进程显示出来,并输出到指定文件中
- ps -o pid,ppid,pgrp,session,tpgid,comm 输出指定字段
- top 查看内存中进程的动态信息;
- kill -9 pid 杀死进程。
-
- 操作:esc + 冒号 + set number + 回车
- 显示行号:
:set number
,可以简写为::set nu
- 关闭行号:
:set nonumber
,简写为::set nonu
-
- scp:secure copy的缩写, 是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,可以在linux服务器之间复制文件和目录。
- 格式:scp [参数] [原路径] [目标路径]
- 从本地服务器复制到远程服务器:
- 复制文件: scp local_file remote_username@remote_ip:remote_folder
- 复制目录: scp -r local_folder remote_username@remote_ip:remote_folder
-
- 格式:
chmod ABC Filename
- chmod: 修改文件权限命令。
- rwx:4读取,2写入,1执行,
- User、Group、及Other的权限,同组用户的权限,其他用户的权限。
| chmod u+r test.txt |
| chmod u-w test.txt |
| chmod u=rw test.txt |
| chmod u=- test.txt |
| chmod g=rw test.txt |
| |
| |
| u (user)用户(文件所有者) |
| g (group)用户组(同一组中除了当前用户的其他用户) |
| o (other)其他用户(其他用户组下的所有用户) |
| a (all)所有用户 |
| |
| |
| + 增加权限 |
| - 撤销权限 |
| = 设置权限 |
| |
| |
| r 可读,权限值4 |
| w 可写,权限值2 |
| x 可执行,权限值1 |
| - 无任何权限,权限值0 |
-
- ps -ef 指令用来查询所有进程,grep通过管道来过滤。grep -v 是反向查询的意思,grep -v grep的作用是除去包含grep的项。
-
磁盘查询:
- du:(disk use)显示每个文件和目录的磁盘使用空间。
- df:(disk free)显示磁盘分区上可以使用的磁盘空间。
END
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现