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:正常执行就是了,alias不会因为有一个未定义的别名就结束对剩余参数的执行。

Q:如果我这么定义alias cd='ls' ls='cd',会有什么后果?

A:运行cd依然会切换目录,运行ls依然会列出文件夹的内容;不要这样定义。

  1. 执行脚本时请注意:

    • 使用 source 命令执行的bash脚本如果执行了 alias 或 unalias 命令,那么有可能会对终端环境的别名设置产生影响;终端环境的别名设置也可能改变运行结果;
    • 通过 sh 方式调用的 bash 脚本或直接运行当前用户有执行权限的脚本不受终端环境的别名影响。
  2. 删除别名,请查看unalias命令。
  3. 建议您不要对 mv cp rm 等命令的别名设置危险的 -f 选项,比如 alias rm='rm -f'
  4. 需要注意别名是否和其他命令有冲突的情况。
  5. 该命令是 bash 内建命令,相关的帮助信息请查看 help 命令。

apachectl命令

命令介绍

apachectl命令是用于管理Apache HTTP服务器的命令行工具。它提供了一些常用的操作,如启动、停止、重启和重新加载Apache服务器。

命令说明

apachectl(参数)

以下是apachectl命令的一些常用选项和功能:

  1. start:启动Apache服务器。它会启动Apache进程,并开始监听指定的端口,以便接受来自客户端的HTTP请求。

  2. stop:停止Apache服务器。它会停止正在运行的Apache进程,并不再接受新的HTTP请求。

  3. restart:重启Apache服务器。它会先停止正在运行的Apache进程,然后再启动一个新的Apache进程,以便重新加载配置文件和更新服务器。

  4. graceful:优雅地重启Apache服务器。它会先启动一个新的Apache进程,然后再停止旧的Apache进程。这样可以确保在重启过程中不会中断正在处理的HTTP请求。

  5. configtest:检查Apache配置文件的语法错误。它会验证配置文件的正确性,并输出任何错误或警告信息。

  6. status:显示Apache服务器的当前状态。它会输出正在运行的Apache进程的信息,包括进程ID、启动时间和处理的请求数等。

  7. fullstatus:显示详细的Apache服务器状态。它会输出每个正在运行的Apache进程的详细信息,包括进程ID、启动时间、处理的请求数和当前请求的URL等。

  8. graceful-stop:优雅地停止Apache服务器。它会停止正在运行的Apache进程,但会等待当前正在处理的HTTP请求完成后再停止。

  9. help:显示apachectl命令的帮助信息。它会列出所有可用的选项和功能,并提供简要的说明。

总之,apachectl命令是一个方便的工具,用于管理和控制Apache HTTP服务器的运行。它提供了一些常用的操作,如启动、停止、重启和重新加载服务器,以及检查配置文件的语法错误和显示服务器状态等功能。

apk命令

命令介绍

APK是Alpine Linux包管理器的命令行工具,用于处理Alpine Linux的软件包。

它用于安装、升级、删除和管理软件包。

命令说明

以下是 APK 命令行的一些常见用法:

  • apk add:安装包或包组。例如,要安装一个名为 'httpd'的软件包,你需要运行 "apk add httpd"。

  • apk del:删除包或包组。例如,要删除一个名为'httpd'的包,你需要运行 "apk del httpd"。

  • apk update:更新包索引。这会从你在Alpine Linux中配置的所有仓库中获取最新的包索引。

  • apk upgrade:升级所有已安装的包到它们最新的版本。

  • apk search:检索可用的包。这个功能类似于 apt-cache search 或 yum search,在软件仓库中查找软件包。

  • apk info:显示关于已安装的包的信息。例如, "apk info httpd" 将显示有关'httpd'包的信息。

  • apk cache:管理本地缓存的软件包。你可以使用 'apk cache clean' 来清除所有没有在使用的软件包。

  • apk version:显示所有已安装包的版本。

APK 配置文件一般位于/etc/apk/目录下,主配置文件是/etc/apk/repositories,其中包含了可以下载的软件仓库源列表。可以手动编辑此文件以添加,删除或更改软件源。

apropos命令

命令介绍

apropos命令是Linux系统中的一个非常有用的命令,用于搜索系统中的帮助文档。它可以根据关键字搜索系统中的man页(manual page)和其他帮助文档,以便用户快速找到所需的信息。

使用apropos命令非常简单,只需要在命令后面跟上要搜索的关键字即可。例如,要搜索关于文件操作的帮助文档,可以使用以下命令:

apropos file

命令说明

apropos命令会在系统的man页数据库中搜索包含关键字"file"的所有帮助文档,并将结果显示出来。搜索结果通常包括命令、函数、配置文件等相关的文档。

apropos命令的搜索结果通常包括以下几个字段:

  1. 名称(Name):搜索结果的名称,通常是命令、函数或配置文件的名称。
  2. 描述(Description):搜索结果的简要描述,通常包含关键字的上下文信息。
  3. 所属节(Section):搜索结果所属的man页节号,用于指定具体的帮助文档。
  4. 所属包(Package):搜索结果所属的软件包,用于指定具体的软件。

通过apropos命令,用户可以快速查找到与关键字相关的帮助文档,并进一步使用man命令查看详细的帮助信息。例如,要查看关于"file"命令的帮助文档,可以使用以下命令:

man file

apropos命令还支持使用通配符进行模糊搜索。例如,要搜索以"file"开头的所有命令,可以使用以下命令:

apropos file*

总之,apropos命令是Linux系统中一个非常有用的工具,可以帮助用户快速搜索并找到所需的帮助文档。它可以提高用户的工作效率,并且非常适合在命令行环境下使用。

apropos [-dalhvV] -e|-[w|-r] [-s section] [-m system[,...]] [-M path] [-L locale] -C [file] keyword ...
-d, --debug:输出调试信息。
-v, --verbose:输出详细的警告信息。
-r, -- regex:将每个keyword作为正则表达式解释。这是默认行为。每个keyword将匹配手册页和描述。
-w, --wildcard:将每个keyword作为shell样式的通配符解释。
-e, --exact:每个keyword将精确匹配手册页名字和描述。
-a, --and:只显示匹配所有keyword的手册页和描述。默认显示匹配任何keyword的项。
-l, --long:不根据终端宽度缩减输出。
-s section, --section section:只查找指定的手册section。
-m system[,...], --systems=system[,...]:用于查找其它操作系统的手册页。
-M path, --manpath=path:指定从其它以冒号分隔的手册页层次查找。默认使用 $MANPATH 环境变量。这个选项覆盖 $MANPATH 的内容。
-L locale, --locale=locale:apropos调用C函数setlocale来得到当前本地化信息,包括 $LC_MESSAGE 和 $LANG 。使用该选项提供一个locale字符串来临时更改本地化信息。
-C file, --config-file=file:使用这个用户配置文件而不是默认的~/.manpath。
-h, --help:打印帮助信息并退出。
-V, --version:打印版本信息并退出。

返回0表示成功,1表示用法、语法或配置文件错误,2表示操作错误,16表示没有找到匹配的内容。

【技术积累】Linux中的命令行【理论篇】【二】的更多相关文章

  1. linux 中解析命令行参数(getopt_long用法)

    linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...

  2. 如何在Linux中使用命令行卸载软件

    您可以使用“dpkg”命令来查看您的计算机,按“Ctrl + Alt + T”的所有已安装包的列表,打开一个终端窗口. 在提示符下键入以下命令,然后按Enter键.dpkg -- list 要卸载程序 ...

  3. Linux中重定向命令行

    http://www.ahlinux.com/start/base/3170.html

  4. (转)linux中nmcli命令的使用及网络配置

    原文:https://blog.51cto.com/groot/1847482 http://www.178linux.com/44076----CentOS7中nmcli网络管理及使用详解 http ...

  5. 【转载】在LoadRunner向远程Linux/Unix执行命令行并收集性能数据

    前面介绍过在LoadRunner的Java协议实现“使用SSH连接Linux”,当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对“在LoadRunner中执行命令行程序之:pope ...

  6. Linux中监控命令top命令使用方法详解

    收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...

  7. Linux中date命令的各种实用方法--转载

    在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...

  8. 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法

    Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...

  9. mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)

    原文链接https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/73805962 Mysql导入导出sql,txt,excel 首先我们通过命令行 ...

  10. 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙

    Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741   1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...

随机推荐

  1. Prism Sample 1

    这个样例版本上已经过时了,但与8.1版本仍然兼容. 在本版本中,指定启动项: App.xaml.cs: protected override void OnStartup(StartupEventAr ...

  2. KaiOS 2.5.X 使用 WebIDE 安装以及调试第三方应用程序

    本教程将展示使用 Waterfox Classic 安装为 KaiOS 2.5.x 设计的应用,同时我们也非常推荐使用它来进行安装和调试应用. 本教程本身不会对手机产生任何损害,但请注意,你必须信任你 ...

  3. 2022-09-23:整数数组 stations 表示 水平数轴 上各个加油站的位置。给你一个整数 k 。 请你在数轴上增设 k 个加油站, 新增加油站可以位于 水平数轴 上的任意位置,而不必放在整数

    2022-09-23:整数数组 stations 表示 水平数轴 上各个加油站的位置.给你一个整数 k . 请你在数轴上增设 k 个加油站, 新增加油站可以位于 水平数轴 上的任意位置,而不必放在整数 ...

  4. 2022-08-19:以下go语言代码输出什么?A:equal;B:not equal;C:不确定。 package main import ( “fmt“ “reflect“ )

    2022-08-19:以下go语言代码输出什么?A:equal:B:not equal:C:不确定. package main import ( "fmt" "refle ...

  5. 2021-02-09:如何删除一个链表的倒数第n个元素?

    2021-02-09:如何删除一个链表的倒数第n个元素? 福哥答案2021-02-09: 1.创建虚拟头元素,虚拟头元素的Next指针指向头元素.2.根据快慢指针求倒数第n+1个元素,假设这个元素是s ...

  6. 2022-04-22:给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X‘ 或者是一个空位 ‘.‘ ,返回在甲板 board 上放置的 战舰 的数量。 战舰

    2022-04-22:给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量. 战舰 ...

  7. Selenium - 元素操作(2) - 页面滚动条

    Selenium - 元素操作 函数滚动 一般元素定位,元素如果不在浏览器的可视位置(即可见只是不在可视位置),会自动把元素滚动到可视位置,但也有不会自己滚动的(比较少). 那我们就可以用seleni ...

  8. Django4全栈进阶之路23 项目实战(报修类型表):应用程序命名空间app_name和分页组件paginator

    1.应用程序命名空间app_name from django.urls import path from . import views from .views import RepairDetailV ...

  9. c++函数参数和返回值

    c++函数参数和返回值 函数存储位置 函数参数入栈顺序 初始化列表 函数的返回值 用参数引用来返回 返回一个参数指针 返回一个对象 总结 函数的几种变体 inline 函数 函数对象 lambda 函 ...

  10. KO之间互相调用

    需求 假设有两个KO,命名为moduleA.KO,moduleB.KO,现在要实现在moduleB.KO中调用moduleA.KO中的函数. 实现 ModuleA实现 源码: #include < ...