首页 > 系统相关 >常用 Linux命令

常用 Linux命令

时间:2024-12-26 15:42:15浏览次数:7  
标签:文件 常用 示例 命令 sed file Linux txt 目录

一、文件和目录操作

  1. ls

    • 功能:列出目录中的文件和子目录。
    • 参数详解:
      • -l:以长格式显示,包括文件权限、所有者、大小、修改时间等详细信息。例如:ls -l会显示类似“-rw-r--r-- 1 user group 12345 Nov 6 10:00 file.txt”的信息。
      • -a:显示所有文件,包括以“.”开头的隐藏文件。例如在一个包含隐藏文件“.config”的目录中,使用ls -a会显示出这个隐藏文件。
      • -h:与-l一起使用时,以人类可读的格式显示文件大小,如用“K”“M”“G”表示。例如:“-rw-r--r-- 1 user group 1.2K Nov 6 10:00 file.txt”。
    • 示例用法:
      • ls -lah /home/user:以长格式、显示隐藏文件且人类可读的方式列出/home/user 目录下的所有文件和子目录信息。
  2. cd

    • 功能:切换当前工作目录。
    • 示例用法:
      • cd /usr/local/bin:切换到/usr/local/bin 目录。
      • cd..:切换到上一级目录。
      • cd ~:切换到当前用户的主目录。
  3. pwd

    • 功能:显示当前工作目录的绝对路径。
    • 示例用法:在任何目录下执行pwd,都会显示当前所在目录的完整路径,如“/home/user/documents”。
  4. mkdir

    • 功能:创建新的目录。
    • 示例用法:
      • mkdir new_folder:在当前目录下创建一个名为 new_folder 的目录。
      • mkdir -p parent/child/subchild:递归创建多级目录,如果 parent、child 和 subchild 都不存在,会依次创建它们。
  5. rmdir

    • 功能:删除空目录。
    • 示例用法:如果有一个空目录 empty_dir,执行rmdir empty_dir即可删除它。但如果目录不为空,该命令将无法执行。
  6. rm

    • 功能:删除文件或目录。
    • 参数详解:
      • -r:递归删除目录及其内容。例如要删除一个包含子目录和文件的目录 complex_dir,可以使用rm -r complex_dir
      • -f:强制删除,不提示确认。在执行一些自动化脚本时可能会用到,但使用时要非常小心,以免误删重要文件。
    • 示例用法:
      • rm unwanted_file.txt:删除一个文件。
      • rm -rf large_directory:强制递归删除一个可能包含大量文件和子目录的大型目录。
  7. cp

    • 功能:复制文件或目录。
    • 示例用法:
      • cp source_file destination_file:将 source_file 复制为 destination_file。如果 destination_file 已存在,会覆盖它。
      • cp -r source_directory destination_directory:递归复制整个目录。例如将一个包含多个子目录和文件的目录 src_dir 复制到另一个位置 dst_dir,可以使用这个命令。
  8. mv

    • 功能:移动文件或目录,也可用于重命名文件。
    • 示例用法:
      • mv old_file.txt new_file.txt:将 old_file.txt 重命名为 new_file.txt。
      • mv file.txt /destination/directory:将 file.txt 移动到/destination/directory 目录下。
      • mv old_directory new_directory:如果 new_directory 不存在,将 old_directory 重命名为 new_directory;如果 new_directory 存在且是一个目录,将 old_directory 移动到 new_directory 中。

二、文件查看和编辑

  1. cat

    • 功能:查看文件内容并输出到终端。
    • 示例用法:
      • cat file.txt:将 file.txt 的内容全部输出到终端。如果文件较大,内容会在终端上快速滚动,可能难以阅读。
      • cat file1.txt file2.txt > combined.txt:将 file1.txt 和 file2.txt 的内容合并并输出到一个新文件 combined.txt。
  2. moreless

    • 功能:分页查看文件内容。
    • more
      • 操作方法:按空格键翻页,按 Enter 键逐行滚动,按 q 键退出查看。例如查看一个大文件 large_file.txt,可以使用more large_file.txt,每次查看一屏内容,方便阅读。
    • less
      • 功能特点:比more功能更强大,支持搜索功能。可以在查看文件时输入“/search_term”来搜索特定的字符串,按 n 键查找下一个匹配项,按 N 键查找上一个匹配项。按 q 键退出查看。例如less log.txt可以方便地查看日志文件并进行搜索。
  3. head

    • 功能:查看文件开头部分内容。
    • 参数详解:
      • -n:指定显示的行数。例如head -n 20 file.txt显示 file.txt 的前 20 行内容。
    • 示例用法:查看日志文件的开头部分以快速了解最近的记录。
  4. tail

    • 功能:查看文件结尾部分内容。
    • 参数详解:
      • -n:指定显示的行数。例如tail -n 30 file.txt显示 file.txt 的后 30 行内容。
      • -f:实时跟踪文件的增长,常用于查看日志文件。例如tail -f log.txt会持续显示 log.txt 的最新内容,当文件有新的写入时,会自动更新显示。
    • 示例用法:在服务器上查看不断更新的日志文件,以便及时发现问题。
  5. vivim

    • 功能:强大的文本编辑器。
    • 操作模式:
      • 命令模式:刚打开文件时处于命令模式,在此模式下可以使用各种命令进行文件操作,如移动光标、复制、粘贴、删除等。例如按“h”“j”“k”“l”键分别向左、下、上、右移动光标;按“dd”删除一行;按“yy”复制一行;按“p”粘贴。
      • 插入模式:按“i”键进入插入模式,可以在文件中输入文本进行编辑。
      • 底线命令模式:先按 Esc 键回到命令模式,然后输入“:”进入底线命令模式,可以执行保存、退出、查找替换等操作。例如输入:wq保存并退出;:q!不保存退出;:s/old/new/g将文件中的所有“old”替换为“new”。
    • 示例用法:在服务器上编辑配置文件、代码文件等。
  6. nano

    • 功能:简单易用的文本编辑器。
    • 操作方法:打开文件后,可以直接进行编辑。底部会有一些简单的提示信息,如保存(Ctrl+O)、退出(Ctrl+X)等。适合不熟悉复杂编辑器的用户。例如nano config.txt可以打开并编辑 config.txt 文件。

三、文件权限管理

  1. chmod

    • 功能:改变文件或目录的权限。
    • 参数详解:
      • 权限表示方法:
        • u表示所有者(user),g表示所属组(group),o表示其他用户(others)。
        • r表示读权限,w表示写权限,x表示执行权限。
        • 可以用数字表示权限,如 755(所有者有读、写、执行权限,所属组和其他用户有读和执行权限)。数字权限的计算方法是:r=4,w=2,x=1,将每种用户的权限值相加得到最终的数字权限。例如 7=4+2+1,表示读、写、执行权限都有。
      • 操作示例:
        • chmod u+x file.txt:为 file.txt 的所有者添加执行权限。
        • chmod 644 file.txt:设置 file.txt 的权限为所有者有读、写权限,所属组和其他用户只有读权限。
        • chmod -R 777 directory:递归地将 directory 目录及其所有子目录和文件的权限设置为所有用户都有读、写、执行权限。但在实际使用中,将权限设置为 777 是不安全的,应谨慎使用。
  2. chown

    • 功能:改变文件或目录的所有者。
    • 参数详解:
      • chown user:group file.txt:将 file.txt 的所有者改为 user,所属组改为 group。如果只指定用户而不指定组,例如chown newuser file.txt,则只改变所有者,所属组不变。
    • 示例用法:在多用户环境下,将文件的所有权转让给其他用户或修改文件的所属组。

四、系统信息查看

  1. uname

    • 功能:显示系统信息。
    • 参数详解:
      • -a:显示系统的详细信息,包括内核版本、主机名、处理器架构等。例如uname -a可能输出“Linux hostname 5.4.0-107-generic #121-Ubuntu SMP Thu Sep 21 15:00:24 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux”。
    • 示例用法:了解系统的基本信息,以便在安装软件或进行系统配置时参考。
  2. top

    • 功能:实时显示系统的进程和资源使用情况。
    • 显示内容:
      • 系统负载:显示系统在过去 1 分钟、5 分钟和 15 分钟的平均负载。
      • 进程列表:列出正在运行的进程信息,包括进程 ID(PID)、用户、CPU 使用率、内存使用率、运行时间等。
      • 资源使用统计:显示系统的 CPU 和内存使用情况的汇总信息。
    • 操作方法:
      • 按“q”键退出 top 命令。
      • 按“P”键以 CPU 使用率排序显示进程,按“M”键以内存使用率排序。
    • 示例用法:监控系统性能,找出占用资源较多的进程,以便进行优化或故障排除。
  3. free

    • 功能:显示系统内存使用情况。
    • 参数详解:
      • -h:以人类可读的格式显示内存大小,如“1G”“2M”等。
    • 显示内容:
      • 总内存大小。
      • 已使用内存。
      • 可用内存。
      • 缓冲和缓存内存。
    • 示例用法:了解系统内存的使用情况,判断是否需要增加内存或优化内存使用。
  4. df

    • 功能:显示磁盘空间使用情况。
    • 参数详解:
      • -h:以人类可读的格式显示磁盘空间大小,如“10G”“500M”等。
      • -T:显示文件系统类型。
    • 显示内容:
      • 磁盘设备文件名。
      • 文件系统类型。
      • 总容量。
      • 已使用容量。
      • 可用容量。
      • 使用率。
      • 挂载点。
    • 示例用法:检查磁盘空间是否充足,以便及时清理不必要的文件或扩展磁盘空间。
  5. ps

    • 功能:查看系统中的进程。
    • 参数详解:
      • -aux:显示所有用户的所有进程详细信息。包括进程 ID(PID)、用户、CPU 使用率、内存使用率、启动时间、命令行等。
    • 显示内容:
      • PID:进程 ID。
      • USER:进程所有者。
      • %CPU:CPU 使用率。
      • %MEM:内存使用率。
      • VSZ:虚拟内存大小。
      • RSS:实际内存使用大小。
      • TTY:控制终端。
      • STAT:进程状态,如运行(R)、睡眠(S)、停止(T)等。
      • START:进程启动时间。
      • TIME:进程累计使用的 CPU 时间。
      • COMMAND:启动进程的命令。
    • 示例用法:查找特定进程、了解系统中正在运行的程序以及它们的资源使用情况。

五、网络相关命令

  1. ping

    • 功能:测试网络连接。
    • 参数详解:
      • -c:指定发送的 ICMP 回显请求包数量。例如ping -c 5 www.example.com会向 www.example.com 发送 5 个请求包并显示结果。
    • 显示内容:
      • 发送的请求包数量。
      • 收到的响应包数量。
      • 丢失的包数量。
      • 往返时间(RTT)的统计信息,包括最小、平均、最大时间。
    • 示例用法:检查与某个网站或服务器的网络连接是否正常,以及网络延迟情况。
  2. ifconfigip addr

    • 功能:查看网络接口配置信息。
    • ifconfig
      • 显示内容:显示网络接口的名称(如 eth0、wlan0 等)、IP 地址、子网掩码、广播地址、MAC 地址等信息。还可以显示网络接口的状态,如是否启用、是否正在接收和发送数据包等。
      • 示例用法:在服务器或本地计算机上查看网络接口的配置,以便进行网络故障排除或配置网络。
    • ip addr
      • 显示内容:以更详细的方式显示网络接口的信息,包括接口的索引、状态、MTU(最大传输单元)、IP 地址、子网掩码、广播地址等。还可以显示网络接口所属的网络命名空间(如果有)。
      • 示例用法:对于熟悉 Linux 网络配置的用户,ip addr提供了更丰富的信息,可用于高级网络配置和故障排除。
  3. netstat

    • 功能:查看网络连接状态和统计信息。
    • 参数详解:
      • -t:显示 TCP 连接。
      • -u:显示 UDP 连接。
      • -n:以数字形式显示地址和端口号,而不是尝试解析主机名和服务名。这样可以加快命令的执行速度,并且在脚本中使用时更加方便。
      • -p:显示与每个连接相关的进程 ID 和进程名称。这对于确定哪个进程正在使用特定的网络连接非常有用。
    • 显示内容:
      • Proto:连接的协议类型,如 TCP 或 UDP。
      • Recv-Q:接收队列中的字节数。
      • Send-Q:发送队列中的字节数。
      • Local Address:本地地址和端口号。
      • Foreign Address:远程地址和端口号。
      • State:连接的状态,如 ESTABLISHED(已建立)、LISTEN(监听)、TIME_WAIT 等。
      • PID/Program name:如果使用了“-p”参数,会显示与连接相关的进程 ID 和进程名称。
    • 示例用法:检查系统上正在进行的网络连接,了解哪些应用程序正在使用网络以及它们的连接状态。可以用于网络故障排除,例如确定是否有异常的连接或端口被占用的情况。

六、压缩和解压缩

  1. tar

    • 功能:打包和压缩文件。
    • 参数详解:
      • -c:创建新的归档文件。
      • -v:显示详细的操作信息。
      • -f:指定归档文件名。
      • -z:使用 gzip 压缩。
      • -j:使用 bzip2 压缩。
      • -x:解包归档文件。
    • 示例用法:
      • 打包:tar -cvf archive.tar file1 file2 directory将 file1、file2 和 directory 打包成 archive.tar。这个命令会创建一个名为 archive.tar 的文件,并将指定的文件和目录添加到其中。在执行过程中,会显示每个被添加的文件和目录的名称。
      • 解包:tar -xvf archive.tar解包 archive.tar。这个命令会将 archive.tar 中的文件和目录提取到当前目录下。同样,在执行过程中会显示每个被提取的文件和目录的名称。
      • 压缩并打包:tar -czvf archive.tar.gz file1 file2 directory使用 gzip 压缩并打包文件和目录。生成的归档文件名为 archive.tar.gz,可以节省存储空间并方便传输。
      • 解压并解包:tar -xzvf archive.tar.gz解压缩并解包 gzip 压缩的归档文件 archive.tar.gz。
  2. gzipgunzip

    • 功能:gzip 压缩和解压缩。
    • gzip
      • 参数详解:
        • -r:递归压缩目录及其内容。如果要压缩一个包含多个文件和子目录的目录,可以使用这个参数。
        • -v:显示详细的压缩信息,包括压缩前后的文件大小。
      • 示例用法:gzip file.txt将 file.txt 压缩为 file.txt.gz。压缩后的文件会

七. 补充
find:在目录中查找文件。
示例:find /path -name "file.txt"在 /path 目录及其子目录中查找名为 file.txt 的文件。

grep

常用用法:

# -r:递归搜索指定目录下的所有文件(包括子目录中的文件)
grep -r "function" /path/to/directory

# -c:仅输出匹配的行数,不显示具体的匹配行。
grep -c "warning" log.txt

# -l:只列出匹配的文件名,不输出具体的匹配行。
grep -l "keyword" /path/to/*.txt

正则相关:

# .:匹配任意单个字符。
grep "h.t" file.txt

# *:匹配前一个字符的零次或多次出现。
grep "go*gle" file.txt

# +:匹配前一个字符的一次或多次出现, |:表示或的关系 ,():用于分组。
grep -E "go+gle" file.txt
grep -E "apple|banana" fruits.txt
grep -E "gr(a|e)y" colors.txt //包含gray或grey的行

# 多文件搜索
grep "search_string" file1.txt file2.txt file3.txt
grep "search_string" *.txt

其他命令结合:

ps -ef | grep "apache"
find /path/to/directory -type f -exec grep -i "specific_text" {} +

sed

sed(stream editor)是一种流编辑器,用于对文本进行过滤和转换。它可以在不修改原始文件的情况下,对输入的文本流进行一系列编辑操作,如查找、替换、删除、插入等。

基本语法

sed [选项] '命令' 文件名

或者

sed [选项] -f 脚本文件 文件名

其中,选项用于指定一些特殊的行为,命令是具体的编辑操作,文件名是要处理的文件。如果不指定文件名sed会从标准输入读取数据。

常用选项

  • -n:默认情况下,sed会输出所有输入行。使用-n选项后,它只会输出经过编辑命令处理的行。
  • -e:用于指定多个编辑命令,多个命令之间用分号(;)分隔。例如:sed -e '命令1' -e '命令2' 文件名
  • -f:从指定的脚本文件中读取编辑命令。
  • -i:直接修改输入文件,而不是输出到标准输出。注意,使用此选项时要谨慎,因为它会直接覆盖原始文件。

常用命令

替换命令(s)

这是sed最常用的命令之一,用于替换文本中的字符串。

sed's/原字符串/新字符串/g' 文件名

其中,g表示全局替换,即替换每行中所有匹配的字符串。如果不使用g,则只替换每行中第一个匹配的字符串。

示例:

sed's/hello/world/g' file.txt

这将把file.txt文件中的所有hello替换为world

如果要替换的字符串中包含斜杠(/),可以使用其他分隔符,例如#

sed's#http://example.com#https://example.com#' file.txt

删除命令(d)

用于删除匹配指定模式的行。

sed '/模式/d' 文件名

示例:

sed '/error/d' log.txt

这将删除log.txt文件中所有包含error的行。

要删除文件中的空行,可以使用:

sed '/^$/d' file.txt

其中,^$表示空行。

打印命令(p)

-n选项一起使用,用于打印匹配指定模式的行。

sed -n '/模式/p' 文件名

示例:

sed -n '/warning/p' log.txt

这将只打印log.txt文件中包含warning的行。

插入命令(i)

在匹配指定模式的行之前插入文本。

sed '/模式/i\插入的文本' 文件名

注意,\是为了换行,使插入的文本在新的一行。

示例:

sed '/^root/i\# This is a comment' /etc/passwd

这将在/etc/passwd文件中以root开头的行之前插入# This is a comment

追加命令(a)

在匹配指定模式的行之后插入文本。

sed '/模式/a\追加的文本' 文件名

示例:

sed '/^root/a\# Added after root' /etc/passwd

这将在/etc/passwd文件中以root开头的行之后插入# Added after root

替换整行命令(c)

用指定的文本替换匹配指定模式的行。

sed '/模式/c\替换的文本' 文件名

示例:

sed '/old line/c\New line' file.txt

这将把file.txt文件中包含old line的行替换为New line

处理多个命令

可以在sed中使用多个命令,命令之间用分号(;)分隔。

sed's/hello/world/; s/foo/bar/' file.txt

这将先把hello替换为world,然后把foo替换为bar

从脚本文件中读取命令

可以将多个sed命令写入一个脚本文件,然后使用-f选项执行这些命令。

例如,创建一个名为sed_script.sed的脚本文件,内容如下:

s/hello/world/
s/foo/bar/

然后执行:

sed -f sed_script.sed file.txt

结合管道使用

sed可以与其他命令通过管道(|)结合使用,以实现更复杂的文本处理。

例如,与ps命令结合,查找并处理特定进程的信息:

ps -ef | sed -n '/apache/p'

这将列出所有与apache相关的进程信息。

sed命令功能强大且灵活,通过掌握上述常用用法,可以在文本处理和系统管理中提高工作效率。

awk

awk是一种功能强大的文本处理工具,它以其简洁而灵活的方式处理文本数据。

基本语法

awk [选项] '模式{动作}' 文件名

其中:

  • 选项:用于指定一些特殊的行为,如-F用于指定字段分隔符。
  • 模式:用于筛选符合条件的行,模式可以是正则表达式、关系表达式等。如果省略模式,则对所有行执行动作。
  • 动作:是在符合模式的行上执行的操作,通常是打印、计算等。动作部分由一对花括号{}括起来。
  • 文件名:是要处理的文件。如果不指定文件名,awk会从标准输入读取数据。

常用选项

  • -F:指定输入字段分隔符。默认情况下,awk使用空格或制表符作为字段分隔符。
    awk -F, '{print $1}' file.csv
    
    这将以逗号(,)作为字段分隔符,打印file.csv文件中每行的第一个字段。

模式

  • 正则表达式模式:使用斜杠(/)括起来的正则表达式。
    awk '/error/{print $0}' log.txt
    
    这将打印log.txt文件中包含error的行($0表示整行内容)。
  • 关系表达式模式:使用比较运算符(如><==等)。
    awk '$3 > 100{print $0}' data.txt
    
    假设data.txt文件每行有多个字段,此命令将打印第三个字段大于100的行。

动作

  • 打印字段awk将每行数据按字段分隔符分割成多个字段,通过$n来引用第n个字段(n是正整数)。
    awk '{print $1, $3}' file.txt
    
    这将打印file.txt文件中每行的第一个和第三个字段。
  • 计算和输出:可以在动作中进行算术运算。
    awk '{sum+=$2} END{print "Total sum:", sum}' data.txt
    
    此命令将计算data.txt文件中第二列所有数值的总和,并在处理完所有行后(END块)输出总和。
  • 条件语句:可以使用if - else语句进行条件判断。
    awk '{if ($1 > 10) print "Greater than 10"; else print "Less than or equal to 10"}' numbers.txt
    
    这将根据numbers.txt文件中每行第一个字段的值进行判断并输出相应的信息。

内置变量

awk有许多内置变量,常用的有:

  • NR:表示当前处理的行号。
    awk '{print NR, $0}' file.txt
    
    这将在每行输出前加上行号。
  • NF:表示当前行的字段数。
    awk '{print "Line", NR, "has", NF, "fields"}' file.txt
    
    此命令将输出每行的行号以及该行的字段数。
  • FILENAME:表示当前处理的文件名。
    awk '{print FILENAME, NR, $0}' file1.txt file2.txt
    
    这将在处理file1.txtfile2.txt时,输出每个文件的文件名、行号以及该行内容。

多行处理

awk可以通过BEGINEND关键字来处理多行数据。

  • BEGIN:在处理文件的第一行之前执行一次。
    awk 'BEGIN{print "Processing starts"} {print $0} END{print "Processing ends"}' file.txt
    
    这个例子中,在处理file.txt文件之前,先输出Processing starts,处理完所有行后,输出Processing ends

从脚本文件中读取命令

可以将awk命令写入一个脚本文件,然后使用awk执行该脚本。

例如,创建一个名为awk_script.awk的脚本文件,内容如下:

BEGIN {
    FS = ","
    total = 0
}
{
    total += $3
}
END {
    print "Total:", total
}

然后执行:

awk -f awk_script.awk data.csv

这个脚本以逗号为字段分隔符,计算data.csv文件中第三列的总和,并在最后输出结果。

awk在文本处理和数据分析中非常有用,通过不断练习和掌握上述用法,可以实现各种复杂的文本处理任务。

find

find命令是Linux系统中一个非常强大的文件查找工具,它可以根据文件的各种属性(如文件名、文件类型、文件大小、修改时间等)在指定目录及其子目录中查找符合条件的文件。

基本语法

find [路径] [条件] [操作]
  • 路径:指定要查找的目录路径。如果省略路径,则默认从当前目录开始查找。
  • 条件:用于指定查找的条件,例如文件名、文件类型、文件大小等。
  • 操作:对查找到的文件执行的操作,如打印文件名、删除文件等。如果省略操作,则默认打印查找到的文件路径。

常用条件

按文件名查找

  • -name:按照文件名进行查找,支持通配符。
    find /home/user -name "*.txt"
    
    该命令会在/home/user目录及其子目录中查找所有扩展名为.txt的文件。
  • -iname:与-name类似,但不区分大小写。
    find /home/user -iname "readme.txt"
    
    此命令会在/home/user目录及其子目录中查找文件名包含readme.txt的文件,不区分大小写。

按文件类型查找

  • -type:根据文件类型进行查找。常见的文件类型有:
    • f:普通文件
    • d:目录
    • l:符号链接
    find /var/log -type f
    
    该命令会在/var/log目录及其子目录中查找所有普通文件。

按文件大小查找

  • -size:根据文件大小进行查找。单位可以是b(块,512字节)、c(字节)、k(千字节)、M(兆字节)、G(吉字节)等。
    find /home/user -size +10M
    
    此命令会在/home/user目录及其子目录中查找大小大于10兆字节的文件。
    find /home/user -size -100k
    
    这将查找大小小于100千字节的文件。

按文件修改时间查找

  • -mmin:根据文件的最后修改时间,以分钟为单位进行查找。
    find /tmp -mmin -10
    
    该命令会在/tmp目录及其子目录中查找在过去10分钟内被修改过的文件。
  • -mtime:以天为单位,根据文件的最后修改时间进行查找。
    find /var/log -mtime +7
    
    此命令会查找/var/log目录及其子目录中最后修改时间大于7天的文件。

按文件权限查找

  • -perm:根据文件的权限进行查找。
    find /home/user -perm 755
    
    该命令会在/home/user目录及其子目录中查找权限为755的文件或目录。

常用操作

打印文件名

默认情况下,find命令会打印查找到的文件路径。也可以使用-print明确指定打印操作。

find /etc -name "*.conf" -print

执行命令

  • -exec:对查找到的每个文件执行指定的命令。命令的结尾需要加上\;
    find /home/user -name "*.txt" -exec grep "keyword" {} \;
    
    该命令会在/home/user目录及其子目录中查找所有扩展名为.txt的文件,并在每个文件中查找包含keyword的内容。
  • -ok:与-exec类似,但在执行命令前会提示用户确认。
    find /home/user -name "oldfile*" -ok rm {} \;
    
    此命令会在/home/user目录及其子目录中查找以oldfile开头的文件,并在删除每个文件前提示用户确认。

删除文件

  • -delete:直接删除查找到的文件。使用时要谨慎,因为删除操作是不可逆的。
    find /tmp -type f -mmin +60 -delete
    
    该命令会删除/tmp目录及其子目录中60分钟前修改过的普通文件。

组合条件

可以使用逻辑运算符-and(也可以省略不写)、-or-not来组合多个条件。

find /home/user -name "*.txt" -or -name "*.log"

此命令会在/home/user目录及其子目录中查找扩展名为.txt.log的文件。

find /home/user -not -name "*.txt"

这将查找/home/user目录及其子目录中文件名不是以.txt结尾的文件。

通过灵活运用find命令的各种条件和操作,可以高效地在Linux系统中查找和管理文件。

标签:文件,常用,示例,命令,sed,file,Linux,txt,目录
From: https://www.cnblogs.com/jinnandu/p/18529347

相关文章

  • MySQL8.0常用命令
    ----------------------------------------------------------------------------------------------------------------------------------------------------- --查询数据库中哪些线程正在执行showprocesslist;#查版本mysql-V或mysql> select version();mysql-h127......
  • [Linux] vim 编辑时增加颜色渲染
    修改配置文件 cp /usr/share/vim/vimrc  ~/.vimrcvim~/.vimrc文件最后加上:    syntaxon    setautoindent保存退出即可。 修改为其它配色:http://blog.csdn.net/......
  • 熟悉常用的HBase操作01
    (一)编程实现以下指定功能,并用Hadoop提供的HBaseShell命令完成相同任务:(1) 列出HBase所有的表的相关信息,例如表名;(2) 在终端打印出指定的表的所有记录数据;(3) 向已经创建好的表添加和删除指定的列族或列;(4) 清空指定的表的所有记录数据;(5) 统计表的行数。     ......
  • 熟悉常用的HBase操作02(问题)
    实验内容与完成情况:(一)编程实现以下指定功能,并用Hadoop提供的HBaseShell命令完成相同任务:  HBaseShell运行截图:(1) 列出HBase所有的表的相关信息,例如表名; (2) 在终端打印出指定的表的所有记录数据; (3) 向已经创建好的表添加和删除指定的列族或列; (4) 清空指定的表......
  • 熟悉常用的Linux操作和Hadoop操作(实验过程存在的问题和解决)
    实验步骤1)cd命令:切换目录(1) 切换到目录“/usr/local”(2) 切换到当前目录的上一级目录(3) 切换到当前登录Linux系统的用户的自己的主文件夹2)ls命令:查看文件与目录查看目录“/usr”下的所有文件和目录3)mkdir命令:新建目录(1)进入“/tmp”目录,创建一个名为“a”的目录,并查看“/tm......
  • 电商平台常用的api接口(技术必看)
    电商平台常用的API(应用程序编程接口)接口种类繁多,这些接口使得电商平台能够与各种第三方应用、服务以及内部系统进行高效的数据交互和功能调用。以下是一些电商平台常用的API接口及其功能概述:一、商品相关接口获取商品详情接口功能:获取指定商品的详细信息,包括SKU信息、详情......
  • 谷歌浏览器“你使用的是不受支持的命令行标志:--no-sandbox。这会带来稳定性和安全风
    沙盒(Sandbox)Chrome中的每一个标签页都是一个沙盒(sandbox),以“防止恶意软体自行执行安装”或“利用一个分页影响其他的分页”。Chrome浏览器会默认开启沙盒,可以拦截利用该漏洞发起的攻击。“隐私沙盒”的使命是“创建一个尊重用户以及默认隐私保护的繁荣网络生态系统”。第三......
  • Linux中如何指定dns服务器,来解析某个域名
    在Linux中,指定DNS服务器来解析某个域名主要涉及编辑DNS配置文件或使用命令行工具进行临时配置。以下是详细的步骤和说明:一、编辑DNS配置文件(永久生效)Linux系统中,DNS解析的配置通常位于/etc/resolv.conf文件中。你可以通过编辑这个文件来指定DNS服务器。步骤:打开/etc/resolv.......
  • Linux关闭系统中不用服务
    在Linux系统中,服务通常由systemd系统和服务管理器管理,这是大多数现代Linux发行版使用的默认服务管理器。以下是如何关闭系统中不必要的服务的步骤:1.查看服务状态列出所有服务:使用systemctl命令可以查看系统中所有服务的状态。systemctllist-units--type=service查看特定......
  • 在Linux中 shell 中的 hash 命令有什么作用?
    在bashshell中,hash命令与命令查找和缓存机制紧密相关。当你输入一个命令时,bash需要找到该命令的可执行文件的位置(即其路径)以便执行它。bash有几种方式来完成这个任务,其中之一就是使用哈希表(hashtable)来缓存之前查找过的命令的路径。这就是hash命令发挥作用的地方。1.hash命令......