Linux常见指令(二)

Linux下的基本指令大全

下面将Linux指令分成9种不同的主要类别:

  1. 文件管理指令 :这些指令用于文件和目录的创建、编辑、复制、移动和删除。例如:ls(列出目录内容),cp(复制文件或目录),mv(移动或重命名文件或目录),rm(删除文件或目录)。

  2. 文本处理指令 :这些指令用于文本文件的查看、编辑和处理。例如:cat(查看文件内容),grep(文本搜索),sed(流编辑器),awk(模式扫描和文本处理语言)。

  3. 系统管理指令 :用于监控和管理系统资源和进程。例如:top(显示进程的动态实时视图),ps(显示当前运行的进程),kill(终止进程),df(显示磁盘空间使用情况),free(显示内存使用情况)。

  4. 网络管理指令 :用于管理和诊断网络问题。例如:ping(检查网络连接),ifconfig(配置或显示网络接口参数),ssh(安全地访问远程服务器),scp(通过SSH协议安全地复制文件)。

  5. 权限和用户管理指令 :用于管理用户权限和用户账户。例如:chmod(改变文件权限),chown(改变文件所有者),useradd(添加新用户),passwd(更改用户密码)。

  6. 软件管理指令 :用于安装、更新和移除软件包。不同的Linux发行版可能使用不同的包管理器,例如:apt(在基于Debian的系统上),yum(在基于Red Hat的系统上),pacman(在Arch Linux上)。

  7. 编程和开发指令 :提供编程和脚本编写支持。例如:gcc(C语言编译器),git(版本控制系统),make(自动化编译工具)。

  8. 帮助和信息指令 :提供帮助信息和系统信息。例如:man(查看手册页),info(查看程序的信息页),whatis(显示一行命令描述)。

文本处理指令

指令cat

  • 功能cat(concatenate 的缩写)命令用于显示文件内容、创建文件、文件合并和追加文件内容到另一文件。
  • 常用用法
    • cat file.txt:显示 file.txt 的内容。
    • cat file1.txt file2.txt > merged.txt:合并 file1.txtfile2.txt 的内容,并将合并结果输出到 merged.txt
    • cat > file.txt:创建一个新的 file.txt 文件,并等待用户输入内容,使用 Ctrl-D 结束输入。

指令grep

  • 功能grep(Global Regular Expression Print 的缩写)用于在文件中搜索包含指定模式的文本行,并输出匹配的行。
  • 常用用法
    • grep "pattern" file.txt:在 file.txt 中搜索包含 "pattern" 的行。
    • grep -i "pattern" file.txt:不区分大小写地搜索 "pattern"。
    • grep -r "pattern" directory/:递归地在指定目录及其子目录中搜索 "pattern"。

指令sed

  • 功能sed(Stream Editor 的缩写)是一个流编辑器,用于执行文本文件的自动编辑。它可以添加、删除、查找和替换文本,还可以执行更复杂的模式匹配和文本转换。
  • 常用用法
    • sed 's/old/new/' file.txt:在 file.txt 中查找 "old" 并将其替换为 "new",只替换每行中的第一个匹配项。
    • sed -i 's/old/new/g' file.txt:直接修改文件,将 "old" 全部替换为 "new"。
    • sed '/pattern/d' file.txt:删除所有包含 "pattern" 的行。

指令awk

  • 功能awk 是一种编程语言,用于模式扫描和处理文本。它对处理表格数据和生成报告特别有用。
  • 常用用法
    • awk '{print $1}' file.txt:打印每一行的第一个字段(默认字段分隔符是空格)。
    • awk '/pattern/ {print $0}' file.txt:搜索包含 "pattern" 的行,并打印这些行。
    • awk -F, '{print $2}' file.txt:以逗号为分隔符,打印每行的第二个字段。

指令sort

  • 功能sort 命令用于对文件中的行进行排序。
  • 常用用法
    • sort file.txt:按字母顺序排序 file.txt 的内容。
    • sort -n file.txt:按数值进行排序。
    • sort -r file.txt:进行反向排序。

指令uniq

  • 功能uniq 命令用于从输入中删除重复的连续行。
  • 常用用法
    • uniq file.txt:显示文件中的唯一行。
    • sort file.txt | uniq:排序后删除重复行,用于非连续的重复行。
    • uniq -c file.txt:统计每行重复的次数。

指令cut

  • 功能cut 命令用于按列切割文本行。
  • 常用用法
    • cut -d':' -f1 file.txt:使用冒号作为分隔符,提取每行的第一列。
    • cut -c1-5 file.txt:提取每行的第1到第5个字符。

指令tr

  • 功能tr(translate的缩写)用于转换或删除字符。
  • 常用用法
    • tr 'a-z' 'A-Z' < file.txt:将文件中的小写字母转换为大写。
    • tr -d '0-9' < file.txt:删除所有数字。

指令wc

  • 功能paste 命令用于合并多个文件的列。
  • 常用用法
    • paste file1.txt file2.txt:并排合并两个文件的内容。
    • paste -s file.txt:将文件中的所有行合并成一行。

指令paste

  • 功能wc(word count的缩写)命令用于统计文件的字数、行数和字节数。
  • 常用用法
    • wc -l file.txt:统计文件的行数。
    • wc -w file.txt:统计文件的单词数。
    • wc -c file.txt:统计文件的字符数。

指令less

  • 功能more 是一个基础的文本分页器,用户可以向前翻页查看文件内容,但不能后退。
  • 常用用法
    • more file.txt:打开 file.txt 进行分页查看。
    • 在查看模式中,按 Space 键向下翻一页,按 Enter 键向下翻一行。
    • 使用 /pattern 搜索文本,按 n 跳转到下一个匹配项。

指令more

  • 功能less 是对 more 的扩展,提供了更多功能和更好的性能,特别是在查看大文件时。less 允许用户向前和向后翻页,并且具有搜索、跳转等高级功能。
  • 常用用法
    • less file.txt:打开 file.txt 进行分页查看。
    • 在查看模式中,按 Space 键向下翻一页,按 b 键向上翻一页。
    • 使用 /pattern 搜索文本,按 n 跳转到下一个匹配项,按 N 跳转到上一个匹配项。
    • 使用 G 跳到文件末尾,使用 g 跳到文件开头。
    • less 也支持打开压缩文件(如 .gz 文件)直接查看。

命令行管道

在Unix和Linux操作系统中,命令行管道(通常表示为符号 |)是一个非常强大的功能,允许用户将一个命令的输出直接用作另一个命令的输入。这种机制提高了不同程序之间的互操作性,并允许用户创建复杂的命令链,实现高效的数据处理。

基本概念

管道的工作原理基于操作系统提供的流控制。当使用管道符号 | 时,左侧命令的标准输出(stdout)会被重定向到右侧命令的标准输入(stdin)。这种链接可以扩展到多个命令,形成一个命令链。

简单的小问题:如何打印一个文档里的第80000 - 80010 行的内容

cpp 复制代码
head -80010 file.txt | tail -10

示例

结合 grepsort 命令

cpp 复制代码
cat file.txt | grep "some text" | sort

使用 psgrep 查找特定进程

cpp 复制代码
ps aux | grep "firefox"

计算文件中的单词数量

cpp 复制代码
cat file.txt | wc -w

高级用法

命令行管道不仅限于简单的文本处理。它们可以用于组合多个数据处理工具,如 awksedcut 等,以及自定义脚本,从而实现复杂的数据分析和处理任务。例如,你可以从日志文件中提取特定数据,对其进行排序、唯一化和计数:

cpp 复制代码
cat access.log | cut -d ' ' -f 1 | sort | uniq -c | sort -rn
相关推荐
007php0073 小时前
linux服务器上CentOS的yum和Ubuntu包管理工具apt区别与使用实战
linux·运维·服务器·ubuntu·centos·php·ai编程
人类群星闪耀时3 小时前
深度学习在灾难恢复中的作用:智能运维的新时代
运维·人工智能·深度学习
Jzin3 小时前
Ubuntu存储硬盘扩容-无脑ChatGPT方法
ubuntu·chatgpt
djykkkkkk3 小时前
ubuntu编译遇到的问题
linux·运维·ubuntu
LinkTime_Cloud3 小时前
GitLab 将停止为中国区用户提供服务,60天迁移期如何应对? | LeetTalk Daily
大数据·运维·gitlab
qq_429856573 小时前
linux 查看服务是否开机自启动
linux·运维·服务器
就爱学编程4 小时前
重生之我在异世界学编程之C语言:数据在内存中的存储篇(下)
java·服务器·c语言
Smile丶凉轩4 小时前
Docker核心技术和实现原理
运维·docker·容器
清风细雨_林木木4 小时前
Docker使用——国内Docker的安装办法
运维·docker·容器
运维&陈同学4 小时前
【Kibana01】企业级日志分析系统ELK之Kibana的安装与介绍
运维·后端·elk·elasticsearch·云原生·自动化·kibana·日志收集