设为首页 加入收藏

TOP

【技术积累】Linux中的命令行【理论篇】【二】(一)
2023-08-06 07:49:37 】 浏览:72
Tags:Linux

ag命令

命令介绍

ag命令是一个用于在Linux系统中进行文本搜索的工具。它是基于Silver Searcher的改进版本,具有更快的搜索速度和更强大的功能。

ag命令的基本用法是在指定的目录中搜索指定的关键字。例如,要在当前目录中搜索关键字"example",可以使用以下命令:

ag example

ag命令会递归地搜索指定目录下的所有文件,并显示包含关键字的行。搜索结果会以文件名和行号的形式显示,方便用户快速定位到关键字所在的位置。

  • 它比ack快一个数量级。
  • 它忽略了你的 .gitignore 和 .hgignore 中的文件模式。
  • 如果你的源码库里有你不想搜索的文件,只要把它们的模式添加到一个.ignore文件里。(cough .min.jscough*)
  • 这个命令的名字比ack短33%,而且所有的键都在主行上!
ag [options] pattern [path ...]
ag [可选项] 匹配模式 [路径...]

命令说明

输出选项:
     --ackmate            以 AckMate-parseable 的格式显示结果
  -A --after [LINES]      显示匹配行之后的行(默认2行)
  -B --before [LINES]     显示匹配行之前的行(默认2行)
     --[no]break          不同文件中匹配到的内容新建一行显示(默认开启)
  -c --count              只显示每个文件中匹配到的数量 (通常与匹配行数不同)
     --[no]color          在结果中打印颜色代码(默认启用)
     --color-line-number  行号的颜色代码(默认值为:1;33)。
     --color-match        匹配结果的颜色代码(默认值为:30;43)。
     --color-path         路径名称的颜色代码(默认值为:1;32)
     --column             打印结果中的列号
     --[no]filename       打印文件名(除非搜索单个文件,否则启用)。
  -H --[no]heading        在每个文件匹配前输出文件名(默认开启)
  -C --context [LINES]    显示匹配行上下两行(默认2行)
     --[no]group          和这些一样: --[no]break --[no]heading
  -g --filename-pattern PATTERN 打印匹配PATTERN的文件名
  -l --files-with-matches 显示包含匹配的文件名(不显示匹配的行)
  -L --files-without-matches  只显示不包含匹配项的文件名
     --print-all-files    打印所有搜索到的文件的标题,甚至那些不包含匹配的文件。
     --[no]numbers        打印行号。默认情况是在搜索流时省略行号。
  -o --only-matching      只输出每行匹配的部分
     --print-long-lines   在很长的行上打印匹配信息(默认:>2k字符)。
     --passthrough        当搜索一个流时,打印所有的行,即使它们不匹配。
     --silent             抑制所有的日志信息,包括错误
     --stats              打印统计(扫描的文件、花费的时间等)。
     --stats-only         打印统计信息,不打印其他信息(与搜索单个文件时的--计数相同)。
     --vimgrep            像vim的:vimgrep /pattern/g那样打印结果(它报告每一行的匹配结果)
  -0 --null --print0      用null分隔文件名(用于'xargs -0')。

搜索选项:
  -a --all-types          搜索所有文件(包括隐藏文件)
  -D --debug              可笑的调试(可能没有用)
     --depth NUM          目录搜索最大深度(默认25)
  -f --follow             跟随链接进行搜索
  -F --fixed-strings      为了与grep兼容,--literal的别名。
  -G --file-search-regex  根据正则匹配搜索指定类型的文件
     --hidden             搜索隐藏文件 (但遵从 .*ignore 文件)
  -i --ignore-case        不区分大小写匹配
     --ignore PATTERN     忽略匹配 PATTERN 的文件/目录(也允许使用文字文件/目录名称)
     --ignore-dir NAME    为了与ack兼容,--ignore的别名
  -m --max-count NUM      在一个文件中最大匹配的数量(默认: 10,000)
     --one-device         不跟随其他设备的链接搜索
  -p --path-to-ignore STRING 在STRING使用.ignore文件
  -Q --literal            不要将PATTERN解析为正则表达式
  -s --case-sensitive     敏感地匹配案例
  -S --smart-case         不区分大小写匹配,除非 PATTERN 包含大写字符
     --search-binary      搜索二进制文件
  -t --all-text           搜索所有文本文件(不包括隐藏文件)
  -u --unrestricted       搜索所有文件 (忽略 .ignore, .gitignore, 比如:搜索二进制和隐藏文件)
  -U --skip-vcs-ignores   忽略VCS的忽略文件(指的是 .gitignore,.hgignore;仍然遵从.ignore)。
  -v --invert-match       反向匹配
  -w --word-regexp        只匹配整个单词
  -W --width NUM          在NUM字符后截断匹配行
  -z --search-zip         搜索压缩文件中的内容

文件类型:
搜索可以限制在某些类型的文件中,例如:
   ag --html needle   结果输出到指定类型文件
   - 在后缀为 .htm、.html、.shtml 或 .xhtml 的文件中搜索“needle”

有关支持的文件类型的列表,可以运行:
  ag --list-file-types  列出支持的文件类型

alias命令

命令介绍

在Linux中,alias命令用于创建命令别名。它允许用户为常用的命令创建简短、易记的别名,从而提高工作效率。

alias命令的语法如下:

alias [别名]='命令'
  • 简化较长的命令。
  • 定义、修改或者显示一个或多个别名。

命令说明

-p:显示全部已定义的别名。
name(可选):指定要(定义、修改、显示)的别名。
value(可选):别名的值。

alias 返回 true 除非您要显示的别名未定义。

  • 要显示的别名未定义。
  • 当您定义(修改)别名的值的时候,由于值的字符串有空格但您没有用单引号扩起,那么会导致严重的问题:
# 为方便演示,删除全部别名
unalias -a
# 没有用单引号扩起
alias rm=rm -rf
# 执行命令后报错 bash: alias: -rf: not found
# 这时使用alias查看rm的别名时返回 alias rm='rm'
 
# 更具有迷惑性的例子
# 为方便演示,删除全部别名
unalias -a
# 仍然没有用单引号括起
alias ls=ls --color=never
# 执行命令后看起来没有报错

# 使用alias查看全部别名会发现运行结果如下:
# alias --color=never
# alias ls='ls'
# alias处理时将它们看成了两组

Q:如果我要显示一到多个别名,但不知道其中是否有未定义的该怎么办?

A:正常执行就是

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇上下文切换性能篇 下一篇跟运维学 Linux - 03

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目