【技术积累】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:正常执行就是了,alias不会因为有一个未定义的别名就结束对剩余参数的执行。
Q:如果我这么定义alias cd='ls' ls='cd'
,会有什么后果?
A:运行cd依然会切换目录,运行ls依然会列出文件夹的内容;不要这样定义。
- 执行脚本时请注意:
- 使用
source
命令执行的bash脚本如果执行了alias
或unalias
命令,那么有可能会对终端环境的别名设置产生影响;终端环境的别名设置也可能改变运行结果; - 通过
sh
方式调用的 bash 脚本或直接运行当前用户有执行权限的脚本不受终端环境的别名影响。
- 使用
- 删除别名,请查看
unalias
命令。 - 建议您不要对
mv cp rm
等命令的别名设置危险的-f
选项,比如alias rm='rm -f'
。 - 需要注意别名是否和其他命令有冲突的情况。
- 该命令是 bash 内建命令,相关的帮助信息请查看
help
命令。
apachectl命令
命令介绍
apachectl命令是用于管理Apache HTTP服务器的命令行工具。它提供了一些常用的操作,如启动、停止、重启和重新加载Apache服务器。
命令说明
apachectl(参数)
以下是apachectl命令的一些常用选项和功能:
start:启动Apache服务器。它会启动Apache进程,并开始监听指定的端口,以便接受来自客户端的HTTP请求。
stop:停止Apache服务器。它会停止正在运行的Apache进程,并不再接受新的HTTP请求。
restart:重启Apache服务器。它会先停止正在运行的Apache进程,然后再启动一个新的Apache进程,以便重新加载配置文件和更新服务器。
graceful:优雅地重启Apache服务器。它会先启动一个新的Apache进程,然后再停止旧的Apache进程。这样可以确保在重启过程中不会中断正在处理的HTTP请求。
configtest:检查Apache配置文件的语法错误。它会验证配置文件的正确性,并输出任何错误或警告信息。
status:显示Apache服务器的当前状态。它会输出正在运行的Apache进程的信息,包括进程ID、启动时间和处理的请求数等。
fullstatus:显示详细的Apache服务器状态。它会输出每个正在运行的Apache进程的详细信息,包括进程ID、启动时间、处理的请求数和当前请求的URL等。
graceful-stop:优雅地停止Apache服务器。它会停止正在运行的Apache进程,但会等待当前正在处理的HTTP请求完成后再停止。
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命令的搜索结果通常包括以下几个字段:
- 名称(Name):搜索结果的名称,通常是命令、函数或配置文件的名称。
- 描述(Description):搜索结果的简要描述,通常包含关键字的上下文信息。
- 所属节(Section):搜索结果所属的man页节号,用于指定具体的帮助文档。
- 所属包(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中的命令行【理论篇】【二】的更多相关文章
- linux 中解析命令行参数(getopt_long用法)
linux 中解析命令行参数(getopt_long用法) http://www.educity.cn/linux/518242.html 详细解析命令行的getopt_long()函数 http:/ ...
- 如何在Linux中使用命令行卸载软件
您可以使用“dpkg”命令来查看您的计算机,按“Ctrl + Alt + T”的所有已安装包的列表,打开一个终端窗口. 在提示符下键入以下命令,然后按Enter键.dpkg -- list 要卸载程序 ...
- Linux中重定向命令行
http://www.ahlinux.com/start/base/3170.html
- (转)linux中nmcli命令的使用及网络配置
原文:https://blog.51cto.com/groot/1847482 http://www.178linux.com/44076----CentOS7中nmcli网络管理及使用详解 http ...
- 【转载】在LoadRunner向远程Linux/Unix执行命令行并收集性能数据
前面介绍过在LoadRunner的Java协议实现“使用SSH连接Linux”,当然连接之后的故事由你主导. 今天要讲的,是一个非Java版本.是对“在LoadRunner中执行命令行程序之:pope ...
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- Linux中date命令的各种实用方法--转载
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...
- 13 Basic Cat Command Examples in Linux(转) Linux中cat命令的13中基本用法
Cat (串联) 命令是Linux/Unix开源系统中比较常用的一个命令.我们可以通过Cat命令创建一个或多个文件,查看文件内容,串联文件并将内容输出到终端设备或新的文件当中,这篇文章我们将会以实例的 ...
- mysql命令行的导入导出sql,txt,excel(都在linux或windows命令行操作)(转自筑梦悠然)
原文链接https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/73805962 Mysql导入导出sql,txt,excel 首先我们通过命令行 ...
- 【转载】Linux系统下命令行连接蓝牙设备 查看查找 蓝牙
Linux系统下命令行连接蓝牙设备 2018年11月26日 10:47:27 Zz笑对一切 阅读数:741 1.打开系统蓝牙 sudo service bluetooth start 1 进入bl ...
随机推荐
- 「学习笔记」tarjan求最近公共祖先
Tarjan 算法是一种 离线算法,需要使用并查集记录某个结点的祖先结点. 并没有传说中的那么快. 过程 将询问都记录下来,将它们建成正向边和反向边. 在 dfs 的过程中,给走过的节点打上标记,同时 ...
- .NET周报 【5月第1期 2023-05-06】
国内文章 聊一聊 Valgrind 监视非托管内存泄露和崩溃 https://www.cnblogs.com/huangxincheng/p/17374315.html. 只要是程序总会出现各种莫名其 ...
- 大家都在用-神奇的Markdown格式
概述 Markdown 是一种轻量级标记语言,它可以使我们专注于写作内容,而不用过多关注排版,很多博主.作家等都用它来撰写文章~ 本文将给各位小伙伴介绍 Markdown 语法的使用,本篇文章索奇就是 ...
- ssh终端工具推荐-WindTerm
什么是WindTerm 官方github https://github.com/kingToolbox/WindTerm A Quicker and better SSH/Telnet/Serial/ ...
- golang在编程语言排行榜上排名第10,请不要说golang已死。
四月头条:编程语言 Zig 进入 TIOBE 指数前 50 名 最近,我们讨论了高性能编程语言的出现.由于需要处理的数据量越来越大,这些编程语言正在蓬勃发展.因此,C 和 C++ 在前十名中表现良好, ...
- 2023-02-13:力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号 它们之间以「服务器到服务器」点对点的形式相互连接组成了一个内部集群 其中连接 connections 是
2023-02-13:力扣数据中心有 n 台服务器,分别按从 0 到 n-1 的方式进行了编号 它们之间以「服务器到服务器」点对点的形式相互连接组成了一个内部集群 其中连接 connections 是 ...
- 2022-11-25:连续出现的数字。编写一个 SQL 查询,查找所有至少连续出现三次的数字。 答案是输出1,原因是1是唯一连续出现三次的数字。 DROP TABLE IF EXISTS logs;
2022-11-25:连续出现的数字.编写一个 SQL 查询,查找所有至少连续出现三次的数字. 答案是输出1,原因是1是唯一连续出现三次的数字. DROP TABLE IF EXISTS logs; ...
- openlayers获取绘制多边形的顶点坐标
虽使用Interaction无数次,进行图形绘制与用户交互等,但当需要获取绘制图形的顶点坐标时还是不晓得咋弄? 都知道在绘制完成后回调中能获取到当前的event对象draw.on('drawend', ...
- css设置边框四角样式
开发中使用css 伪类 是再常见不过的事情了,运用好了能轻松实现许多复杂的样式,大大减少使用图片消耗带宽的问题,今天我们就使用伪类来实现登录框的四角样式 html代码如下 <div class= ...
- 顶级生物信息学 RSS 订阅源
早在 2018 年的时候我在"生信草堂"的公众号上写过一篇关于 RSS 的文章<使用 RSS 打造你的科研资讯头条>,介绍了关于 RSS 的一些内容和如何使用 inor ...