当前位置: 首页 > news >正文

Linux入门1(2/2)

6、查找命令

在 Linux/Unix 系统中,whichfind 是两个常用的查找命令,但它们的用途和功能有显著区别。

6.1、which

which - 查找可执行文件的路径

①、功能
  • 用于定位 可执行程序(命令)的绝对路径。

  • $PATH 环境变量指定的目录中搜索。

②、示例
  # 基本语法which [选项] 命令名​which ls      # 查找 `ls` 命令的路径(通常输出 `/bin/ls`)which python  # 查找当前使用的 Python 解释器路径which -a git  # 显示所有匹配的路径(如果有多个同名命令)
③、特点
  • 仅搜索 $PATH 中的目录。

  • 只能查找可执行文件(二进制文件或脚本)。

  • 不支持模糊匹配(如通配符 *)。

6.2、find

find - 递归查找文件或目录

要想在整个系统完成搜索可以通过命令:su进入超级管理员模式(root用户)来获取更大的权限

①、功能
  • 在指定目录及其子目录中 递归搜索文件或目录

  • 支持按名称、类型、大小、时间等条件过滤。

②、示例
  # 基本语法find [搜索路径] [选项] [操作]​# 按名称查找文件find /home -name "*.txt"       # 查找 `/home` 下所有 `.txt` 文件find . -name "file*"           # 当前目录下文件名以 `file` 开头的文件# 按类型查找文件find /var/log -type f          # 查找 `/var/log` 下的所有文件(不包括目录)find ~ -type d -name "docs"    # 查找用户主目录下名为 `docs` 的目录# 按时间查找文件find /tmp -mtime +30           # 查找 `/tmp` 下 30 天前修改的文件find . -newer reference.txt    # 查找比 `reference.txt` 更新的文件
③、常用选项
选项作用
-name按文件名匹配(支持通配符 * ?
-type按类型过滤(f 文件,d 目录)
-size按文件大小(如 +1M 表示大于 1MB)
-mtime按修改时间(如 -7 表示 7 天内)
-exec对搜索结果执行命令(如删除、压缩)
④、特点
  • 功能强大,支持复杂条件组合。

  • 可以搜索任意文件类型(包括隐藏文件)。

  • 递归搜索子目录。

  • 支持模糊匹配(如-name 、通配符"*.txt"等)。

7、grep、wc和管道符

在 Linux/Unix 系统中,grepwc 和管道符 | 是文本处理和数据统计的常用工具,它们可以单独使用,也可以组合起来实现强大的功能

7.1、grep

grep - 文本搜索工具

①、功能
  • 在文件或输入流中搜索匹配指定模式(正则表达式或普通字符串)的行。

②、示例
  # 基本语法grep [选项] "搜索模式" 文件名​grep "error" log.txt       # 查找包含 "error" 的行grep -i "warning" log.txt  # 忽略大小写搜索 "warning"grep -v "#" config.conf    # 显示不包含 `#` 的行(过滤注释)grep -r "main" /src        # 递归搜索 `/src` 目录下所有文件# 如果在要过滤的关键字中含有特殊符号或者空格,建议使用双引号“”引起来
③、常用选项
选项作用
-i忽略大小写
-v反向匹配(显示不包含模式的行)
-n显示匹配行的行号
-c统计匹配的行数
-r递归搜索目录
-E使用扩展正则表达式(等同于 egrep
7.2、wc

wc - 统计行数、单词数、字符数

①、功能
  • 统计文件或输入流的行数(-l)、单词数(-w)、字符数(-c)。

②、示例
  # 基本语法wc [选项] 文件名​wc log.txt              # 输出:行数 单词数 字节数 文件名wc -l log.txt           # 只统计行数wc -w *.txt             # 统计所有 `.txt` 文件的单词数
③、常用选项
选项作用
-l只统计行数
-w只统计单词数
-c只统计字节数
-m只统计字符数(与 -c 区别在于多字节字符)
7.3、管道符

管道符 | - 组合命令

左边内容的输出作为右边指令的输入

①、功能
  • 将前一个命令的输出作为后一个命令的输入。

②、示例
 # 基本语法命令1 | 命令2 | 命令3...​# 统计日志中错误出现的次数grep -i "error" log.txt | wc -l # 先通过 grep 过滤出包含 "error" 的行,再通过 wc -l 统计行数# 统计代码中函数定义的行数grep -n "def " script.py | wc -l # 查找 script.py 中所有 def开头的行(函数定义),并统计数量。# 过滤注释后统计有效代码行数grep -v "^#" config.conf | wc -l # 排除以 # 开头的行(注释),统计剩余行数。# 统计当前目录下 .sh 文件的总行数find . -name "*.sh" -exec cat {} \; | wc -l # 查找所有 .sh 文件,cat 合并内容后统计总行数。# 统计文件中每个单词的频率cat text.txt | tr -s ' ' '\n' | sort | uniq -c | sort -nr# - tr -s ' ' '\n':将空格替换为换行(每行一个单词)# - sort:排序# - uniq -c:统计重复次数# - sort -nr:按频率降序排列

8、echo、tail、重定向符

在 Linux/Unix 系统中,echotail 和重定向符(>>>< 等)是处理文本输出和文件操作的基础工具

8.1、echo

echo - 输出文本

①、功能
  • 在终端打印文本或变量内容。

  • 常用于脚本调试、生成文件内容或传递数据给其他命令。

②、示例
  # 基本语法echo [选项] "文本内容"​echo "Hello World"           # 输出文本(自动换行)# 示例输出:Hello Worldecho -n "No newline"; echo "Continued"  # 两行合并为一行# 示例输出:No newlineContinuedecho -e "Line1\nLine2"       # 输出多行(启用转义符)# 示例输出:# Line1# Line2echo $PATH                   # 打印环境变量
③、常用选项
选项作用
-n不自动换行(默认 echo 会在末尾加换行符)
-e启用转义字符(如 \n 换行、\t 制表符)
④、补充:反引号

反引号是使用英文输出时的tap上方,数字1的左方那个键,中文输出是~

正常使用echo pwd时会默认将pwd当成普通字符,我们要想将其作为命令执行,只需将pwd用反引号``包裹即可

  echo pwd# 示例输出:pwdecho `pwd`# 示例输出:/home/user
8.2、tail

tail - 查看文件尾部内容

①、功能
  • 显示文件的末尾部分(默认最后 10 行)。

  • 常用于实时监控日志文件更新。

②、示例
  # 基本语法tail [选项] 文件名​tail log.txt                # 查看文件最后 10 行tail -n 20 log.txt          # 查看最后 20 行tail -f /var/log/syslog     # 实时监控日志更新(按 `Ctrl+C` 退出)tail -F /var/log/nginx/access.log  # 即使文件被重建也能继续跟踪# 注意;(路径下必须包含该文件)
③、常用选项
选项作用
-n <行数>指定显示的行数(如 -n 5
-f实时追踪文件变化(日志监控)
-F类似 -f,但会处理文件被轮替(如日志切割)的情况
-q不显示文件名(多文件时默认会显示)
8.3、重定向

重定向符 - 控制输入/输出流向

①、功能
  • 将命令的输入/输出重定向到文件或其他设备。

②、常用符号
符号作用
>符号左侧命令结果覆盖输出到符号右侧文件(若文件不存在则创建)
>>符号左侧命令结果追加输出到符号右侧文件(不覆盖原有内容)
<从文件读取输入(代替键盘输入)
2>重定向错误输出(如 2> error.log
&>重定向标准输出和错误输出(如 &> all.log
③、示例
  # 输出重定向echo "Hello" > output.txt    # 覆盖写入文件(文件原有内容丢失)# 原来的文件内容清空消失,output.txt只剩下 Helloecho "World" >> output.txt   # 追加到文件末尾# 原来的文件内容仍在,output.txt内容为 Hello World# 只要是左边有输出结果的都可以通过>或>>写入右边文件中wc test1.txt >> input.txt     # 将 test1.txt 文件的行数 单词数 字节数 文件名追加到 output.txt 中​# 输入重定向wc -l < input.txt           # 统计文件行数(从文件读取输入)​# 错误重定向ls /nonexistent 2> error.log # 将错误信息保存到文件​# 合并输出和错误ls /tmp /nonexistent &> all.log  # 所有输出(正常+错误)保存到文件

9、文本编辑器

9.1、vi/vim编辑器

vivim 是 Unix/Linux 系统上最常见的文本编辑器之一

vim编辑器是vi编辑器的增强版

工作模式
①、 普通模式(Normal Mode)
  • 默认模式,启动后自动进入。

  • 功能:执行命令、导航文本、删除/复制/粘贴等操作。

  • 常用操作:

    • h/j/k/l:左/下/上/右移动光标。

    • dd:删除整行;yy:复制整行;p:粘贴。

    • u:撤销;Ctrl + r:重做。

    • :w:保存;:q:退出(需组合使用,如 :wq)。

②、插入模式(Insert Mode)
  • 输入文本的模式,类似常规编辑器。

  • 进入方式(在 Normal 模式下):

    • i:光标前插入;a:光标后插入。

    • o:下方新行插入;O:上方新行插入。

  • 退出:按 Esc 返回 Normal 模式。

③、可视模式(Visual Mode)
  • 选择文本以进行操作。

  • 子模式:

    • v:字符可视模式(按字符选择)。

    • V:行可视模式(按行选择)。

    • Ctrl + v:块可视模式(矩形选择)。

  • 操作:选中后可用 d(删除)、y(复制)等命令。

④、命令行模式(Command-Line Mode)
  • 执行复杂命令,如保存、退出、搜索替换等。

  • 进入方式:Normal 模式下按 :

  • 常用命令:

    • :w:保存;:q!:强制退出不保存;:q:仅退出。

    • :%s/old/new/g:全局替换文本。

    • :set nu:显示行号;:set nonu:隐藏行号。

⑤、替换模式(Replace Mode)
  • 直接覆盖文本而非插入。

  • 进入方式:Normal 模式下按 R

  • 退出:按 Esc

模式切换总结:

  1. Normal → Insert:按 iao 等。

  2. Insert → Normal:按 Esc

  3. Normal → Visual:按 vVCtrl + v

  4. Normal → Command-Line:按 :

  5. Normal → Replace:按 R

9.2、nano编辑器

在 Linux 中,nano 是一个简单易用的命令行文本编辑器,适合快速编辑配置文件。以下是使用 nano 的完整指南:

  # 打开/创建文件nano 文件名          # 打开或新建文件sudo nano /etc/ssh/sshd_config  # 编辑系统文件(需root权限)
常用快捷键
快捷键功能
Ctrl + O保存文件(需按回车确认)
Ctrl + X退出(若未保存会提示)
Ctrl + K剪切当前行
Ctrl + U粘贴
Ctrl + W搜索文本
Ctrl + \替换文本
Ctrl + G打开帮助菜单
Alt + U撤销操作
Ctrl + _跳转到指定行号
http://www.dtcms.com/a/540027.html

相关文章:

  • ubuntu24安装mysql遇到的坑----解决Mysql报错缺少libaio.so.1
  • 【星光不负 码向未来 | 万字解析:基于ArkUI声明式UI与分布式数据服务构建生产级跨设备音乐播放器】
  • UniApp 在手机端(Android)打开选择文件和文件写入
  • HarmonyOS分布式媒体播放器——跨设备音视频无缝流转
  • 【金融行业案例】基于Vaadin全栈Java框架重构内部系统,全面提升开发效率与用户体验
  • 小型网站开发要多少钱苏州专业做网站的公司哪家好
  • RocketMQ 生产环境性能调优实战:从 0 到 1 打造高可用消息队列系统
  • 脉冲按摩贴方案开发, 脉冲按摩贴MCU控制方案设计
  • 特别酷炫网站做网站有费用吗
  • DrissionPage 基于 Python 的网页自动化工具
  • Next.js vs Vue.js:2025年全栈战场,谁主沉浮?
  • DAY01笔记
  • 10-js基础(ESMAScript)
  • 一次深入排查:Spring Cloud Gateway TCP 连接复用导致 K8s 负载均衡失效
  • 基于 Vue3 及TypeScript 项目后的总结
  • Android下解决滑动冲突的常见思路是什么?
  • 建筑外观设计网站如何做一个门户网站
  • SQL多表查询完全指南-从JOIN到复杂关联的数据整合利器
  • Redis主从复制与哨兵集群
  • 电科金仓“异构多活架构”:破解浙江省人民医院集团化信创难题的密钥
  • 从零搭建群晖私有影音库:NasTool自动化追剧全流程拆解与远程访问协议优化实践
  • Maven项目管理:高效构建与依赖管理!
  • 【win11】funasr 1:配置conda环境
  • 2025年--Lc219-590. N 叉树的后序遍历(递归版,带测试用例)-Java版
  • YOLO11追踪简单应用
  • Spring Web MVC 入门秘籍:从概念到实践的快速通道(上)
  • 网站是什么字体企业内网模板
  • 建一个小型购物网站要有服务器网易博客搬家wordpress
  • 申威服务器安装Nacos 2.0.3 RPM包详细步骤(Kylin V10 sw_64架构)​附安装包
  • 当同一个弹性云服务器所在子网同时设置了snat和弹性公网IP时,会优先使用哪个