首页 > 系统相关 >【技术积累】Linux中的命令行【理论篇】【二】

【技术积累】Linux中的命令行【理论篇】【二】

时间:2023-07-31 23:55:56浏览次数:37  
标签:积累 匹配 -- 别名 命令 搜索 命令行 Linux Apache

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,Apache
From: https://www.cnblogs.com/yyyyfly1/p/17595341.html

相关文章

  • linux 进程管理
    在Linux操作系统中,进程也是一个基本的概念,它是程序的执行实例。当我们在Linux上运行一个程序时,操作系统会创建一个进程来执行该程序的指令。每个进程都是独立的执行单元,拥有自己的内存空间、执行状态和系统资源。Linux中进程的特点包括:1.独立性:每个进程是独立的,它们之间相互隔......
  • Linux知识点总结—3
    今天主要总结了Linux知识点中的网络编程相关知识点,希望可以帮助大家梳理网络编程中的知识点,那我们直接开始吧!!网络基础1IP地址本质:uint32_t类型的整数,例如:192.168.0.0作用:用于唯一标识一个设备在网络中的位置应用:网络通信中的每一条数据都应该具备源端IP地址和对端IP地址,通过这两个......
  • Linux文件系统与日志分析
    Linux文件系统与日志分析1、inode表结构inode号存在inode表中文件数据包括,元信息与实际数据文件存储在硬盘,硬盘最小存储单位是扇区,每个扇区存512字节。连续八个扇区组成一个block(块),一块是文件存取的最小单位inode(索引节点)也称i节点,用于存储文件的元信息一个文件必须......
  • Linux18--存储管理之:MBR与GPT分区、格式化文件系统、磁盘挂载、制作swap分区、文件系
    0新增磁盘流程#磁盘整体的操作步骤1.增加磁盘编辑虚拟机设置--新增硬盘--SCSI--创建新虚拟磁盘--200G、多个文件--完成2.磁盘分区3.分区格式化成文件系统4.文件系统挂载到指定目录1磁盘分区#1分区分类主分区主引导分区,是可以安装系统的分区......
  • linux 3网络基础 tcp状态和多路IO
    1.tcp状态概念图![tcp状态](I:\网络基础3day\tcp状态.png)简化图![tcp状态简化图](I:\网络基础3day\tcp状态简化图.png)简化图未考虑特殊情况netstat命令(了解)2.半关闭状态半关闭主动方不可以在应用层发送数据,但是可以读数据FINWAIT2阶段![半关闭](I:\网络基础3......
  • linux 4 网络基础 POLL EPOLL epoll堆 线程池 udp 本地套接字
    Linux5day1.poll监听poll相对与sellect的优缺点优点:没有文件描述符1024的限制请求和返回是分离的如:selectread集合返回read集合缺点和select一样:每次都需要将需要监听的文件描述符从应用层拷贝到内核每次都需要将数组中的元素遍历一遍才知道那个变化了大量并发,少......
  • 鸟哥Linux私房菜学习笔记day5
    第十章4.Bashshell操作环境终端环境设置:sttyset登录终端时,自动获取的一些终端的输入环境的设置。stty[-a]set[-uvCHhmBx]echo$-可以显示目前所有的set设置值 通配符与特殊符号符号       意义*                 代表0到无穷多......
  • linux 中查找隐藏文件及排除隐藏文件
     001、查找当前目录下的隐藏文件[root@PC1test01]#lsa.txtdir1[root@PC1test01]#ls-a...a.txtdir1.x.txt[root@PC1test01]#find./-maxdepth1-typef-name".*"##查找当前目录下的隐藏文件./.x.txt 002、排除当前目录下的隐藏文件[roo......
  • Linux scp 命令
    一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法:一是 ftp,二是wget /fetch三是rsync 大型数据迁移用rysync,其次用fetch/wget,最次是ftp,最慢是ftp.这几天,在忙数据迁移时,用到ssh的scp方法来迁移数据。速度与效果都很好。特别是现在许多服务器为了......
  • Linux查看显卡 GPU信息
    1.Linux查看显卡信息:1.1查询显卡信息lspci|grep-ivga前边的序号“04:00.0″是显卡的代号ASPEEDTechnology,Inc.ASPEEDGraphicsFamily即为GPU型号1.2查看指定显卡的详细信息用以下指令:lspci-v-s04:00.01.3使用nvidiaGPU可以:lspci|grep-invidia......