《Linux 简易速速上手小册》第2章: 命令行的艺术(2024 最新版)

在这里插入图片描述

文章目录

  • 2.1 基本 Linux 命令
    • 2.1.1 重点基础知识
    • 2.1.2 重点案例:整理下载文件夹
    • 2.1.3 拓展案例 1:批量重命名文件
    • 2.1.4 拓展案例 2:查找并删除特定文件
  • 2.2 文件和目录管理
    • 2.2.1 重点基础知识
    • 2.2.2 重点案例:部署一个简单的网站
    • 2.2.3 拓展案例 1:批量转移日志文件
    • 2.2.4 拓展案例 2:查找并删除过期的备份文件
  • 2.3 文本处理工具
    • 2.3.1 重点基础知识
    • 2.3.2 重点案例:分析日志文件
    • 2.3.3 拓展案例 1:批量替换配置文件中的内容
    • 2.3.4 拓展案例 2:合并多个文本文件并排序

2.1 基本 Linux 命令

在 Linux 的世界里,掌握基本命令就像是学会了魔法咒语。这些咒语能让你轻松地与你的计算机对话,执行各种任务。让我们先从一些最基础、最常用的命令开始,这些是每个 Linux 用户都应该掌握的。

2.1.1 重点基础知识

  • ls: 列出当前目录下的文件和文件夹。使用 -l 选项(ls -l)可以查看详细信息,-a 选项(ls -a)显示隐藏文件。
  • cd: 改变当前目录。cd ~ 带你回家(家目录),而 cd .. 则上一级目录。
  • cp: 复制文件或目录。cp source.txt destination.txt 复制文件,cp -r source_dir destination_dir 复制目录。
  • mv: 移动或重命名文件。mv old.txt new.txt 重命名文件,mv file.txt ~/Documents/ 移动文件到指定目录。
  • rm: 删除文件或目录。rm file.txt 删除文件,rm -r directory 删除目录及其内容。

2.1.2 重点案例:整理下载文件夹

假设你的下载文件夹乱得像个灾难现场,里面既有 PDF 文件,也有图片和压缩包,现在你想把它们分类整理到不同的文件夹里。

  1. 创建分类文件夹:

    mkdir ~/Downloads/PDFs
    mkdir ~/Downloads/Images
    mkdir ~/Downloads/Archives
    
  2. 移动文件到相应文件夹:
    使用 mv 命令结合通配符,将文件移动到新创建的文件夹中。

    mv ~/Downloads/*.pdf ~/Downloads/PDFs/
    mv ~/Downloads/*.jpg ~/Downloads/Images/
    mv ~/Downloads/*.zip ~/Downloads/Archives/
    

这个案例不仅帮你清理了下载文件夹,还让你熟悉了如何使用基础命令来管理文件。

2.1.3 拓展案例 1:批量重命名文件

假设你有一堆图片文件,现在需要批量为它们添加前缀。虽然 mv 命令不直接支持批量重命名,但你可以结合循环来实现。

for file in ~/Downloads/Images/*.jpg; domv "$file" "${file%.jpg}_backup.jpg"
done

这个命令会为每个 jpg 文件添加 _backup 前缀。

2.1.4 拓展案例 2:查找并删除特定文件

如果你的工作目录中充满了临时文件,比如编辑器自动生成的备份文件(以 ~ 结尾),你可能想删除它们以清理工作空间。

find . -name "*~" -exec rm {} \;

这个命令会在当前目录及子目录下查找所有以 ~ 结尾的文件并删除它们。

通过这些案例,你不仅学会了如何使用基本的 Linux 命令来执行常见的文件管理任务,还能看到这些命令在实际生产和工作中的强大应用。记住,实践是学习命令行的最佳方式,不要害怕去尝试和犯错。每个错误都是一个学习的机会,让你更接近成为 Linux 命令行大师的目标。

在这里插入图片描述


2.2 文件和目录管理

在 Linux 中高效管理文件和目录是每个用户和系统管理员的基本技能。掌握了这些技巧后,你就能像在自家厨房一样,在 Linux 的文件系统中自由翱翔。

2.2.1 重点基础知识

  • mkdir: 创建新的目录。如果你想创建一个项目目录,比如 mkdir ~/Projects/MyProject,这个命令就会在你的家目录下创建一个 MyProject 文件夹。
  • touch: 创建新文件或者更新现有文件的时间戳。touch newfile.txt 就会在当前目录下创建一个名为 newfile.txt 的空文件。
  • find: 在文件系统中搜索文件。可以根据文件名、大小、修改日期等条件进行搜索,例如 find / -name "config.txt" 会搜索整个根文件系统中名为 config.txt 的文件。
  • chmod: 修改文件或目录的权限。例如,chmod 755 script.sh 会给 script.sh 文件设置可读可执行权限。
  • chown: 改变文件或目录的所有者和/或所属组。例如,chown user:group file.txt 会将 file.txt 的所有者更改为 user,所属组更改为 group

2.2.2 重点案例:部署一个简单的网站

假设你需要在 Linux 服务器上部署一个静态网站,这需要你创建目录结构,放置文件,并确保正确的权限设置。

  1. 创建网站目录结构:

    mkdir -p ~/website/public_html/{images,css,js}
    

    这个命令一次性创建网站的根目录以及存放图片、CSS 和 JavaScript 文件的子目录。

  2. 部署网页文件:
    假设你的 HTML、CSS 和图片文件已经准备好,你需要将这些文件移动到相应的目录下。

    mv index.html ~/website/public_html/
    mv style.css ~/website/public_html/css/
    mv logo.png ~/website/public_html/images/
    
  3. 设置正确的权限:
    为了让访问者能够查看网站,你需要确保公共目录对外是可读的。

    chmod -R 755 ~/website/public_html
    

2.2.3 拓展案例 1:批量转移日志文件

如果你的应用程序生成了大量日志文件,存放在 ~/logs 目录下,现在需要将它们移动到 /var/log/myapp/ 目录下进行统一管理。

mkdir -p /var/log/myapp && mv ~/logs/* /var/log/myapp/

这个命令首先确保目标目录存在,然后移动所有日志文件到这个目录下。

2.2.4 拓展案例 2:查找并删除过期的备份文件

假设你的系统定期生成备份文件,并存放在 /backup 目录下。现在你需要删除 30 天前的所有备份文件,以释放空间。

find /backup -type f -mtime +30 -exec rm {} \;

这个命令搜索 /backup 目录下所有修改时间超过 30 天的文件,并删除它们。

通过这些案例,你可以看到 Linux 提供了强大的工具集来管理文件和目录,无论是进行日常的文件管理任务,还是处理更复杂的生产环境需求。记住,实践是最好的老师,所以不要害怕实验这些命令,通过实践来掌握它们。

在这里插入图片描述


2.3 文本处理工具

Linux 提供了一系列强大的文本处理工具,这些工具让处理文本文件变得轻而易举。无论是简单的文本查看、复杂的数据分析,还是自动化编辑任务,Linux 都有合适的工具。

2.3.1 重点基础知识

  • grep: 在文件中搜索特定的字符串或模式。例如,grep 'error' logfile.txt 会在 logfile.txt 中搜索包含 “error” 的行。
  • sed: 流编辑器,用于对文本进行强大的处理,如替换、删除、插入行。sed 's/old/new/g' file.txt 会将 file.txt 中所有的 “old” 替换为 “new”。
  • awk: 一个强大的文本分析工具,特别适合处理字段数据。awk '{print $1}' file.txt 会打印 file.txt 中每一行的第一个字段。
  • cat: 查看文件内容的最简单工具。cat file.txt 会在终端显示 file.txt 的内容。
  • sort: 对文本行进行排序。sort file.txt 会按字母顺序对 file.txt 中的行进行排序。
  • uniq: 过滤或报告重复的行。通常与 sort 一起使用,如 sort file.txt | uniq,对文件排序并移除重复行。

2.3.2 重点案例:分析日志文件

假设你是系统管理员,需要分析一个服务器的访问日志文件,找出访问次数最多的 IP 地址。

  1. 提取 IP 地址:
    使用 awk 从日志文件中提取每一行的 IP 地址(假设 IP 地址在每行的第一列)。

    awk '{print $1}' access.log > ips.txt
    
  2. 排序并计数:
    对 IP 地址排序,并使用 uniq 命令计算每个 IP 地址出现的次数。

    sort ips.txt | uniq -c | sort -nr > ip_counts.txt
    
  3. 查看结果:
    查看 ip_counts.txt,找出访问次数最多的 IP 地址。

    head -n 5 ip_counts.txt
    

2.3.3 拓展案例 1:批量替换配置文件中的内容

如果你需要在多个配置文件中替换一个旧的 URL 为新的 URL,可以使用 sed 命令。

sed -i 's/oldurl.com/newurl.com/g' *.conf

这个命令会在所有 .conf 文件中查找 “oldurl.com” 并将其替换为 “newurl.com”。

2.3.4 拓展案例 2:合并多个文本文件并排序

假设你有多个文本文件,每个文件包含一列数据,你需要将它们合并成一个文件,并进行排序。

cat file1.txt file2.txt file3.txt | sort > combined.txt

这个命令首先使用 cat 命令合并文件,然后用 sort 命令对合并后的内容进行排序。

通过这些案例,你可以看到 Linux 的文本处理工具不仅强大而且灵活。掌握这些工具,你就能轻松处理各种文本处理任务,无论是日志分析、数据处理还是文件编辑。实践这些案例,加深对工具的理解和应用,将大大提升你在 Linux 环境下的工作效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685881.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringMVC速成(二)

文章目录 SpringMVC速成(二)1.SSM整合1.1 流程分析1.2 整合配置步骤1:创建Maven的web项目步骤2:添加依赖步骤3:创建项目包结构步骤4:创建SpringConfig配置类步骤5:创建JdbcConfig配置类步骤6:创建MybatisConfig配置类步骤7:创建jdbc.properti…

《Go 简易速速上手小册》第2章:控制结构与函数(2024 最新版)

文章目录 2.1 条件语句:决策的艺术2.1.1 基础知识讲解2.1.2 重点案例:用户角色权限判断实现用户角色权限判断扩展功能实现代码功能扩展:添加或删除用户 2.1.3 拓展案例 1:成绩等级判断实现成绩等级判断功能实现代码扩展功能&#…

Electron实战之进程间通信

进程间通信(IPC)并非仅限于 Electron,而是源自甚至早于 Unix 诞生的概念。尽管“进程间通信”这个术语的确创造于何时并不清楚,但将数据传递给另一个程序或进程的理念可以追溯至 1964 年,当时 Douglas McIlroy 在 Unix…

Windows 连接共享文件夹 切换/退出账号操作

工作中遇到个问题,登录公司内部共享文件夹,使用自己的账号,但需要切换别人账号找东西时,没有发现登出的地方。在网上找了两种方法:通过命令行登出账号的方法 (1)打开cmd命令提示符,…

对待不合理需求,前端工程师如何优雅的say no!

曾经有位老板, 每次给前端提需求,前端都说实现不了,后来他搜索了一下,发现网上都有答案。他就在招聘要求上加了条:麻烦你在说不行的时候,搜索一下。 上面是一个段子,说的有点极端了,…

Java集合篇之深入解析ArrayList,这六问你答的上来吗?

写在开头 开年第一篇,先祝各位新的一年身体健康,学业有成,事业有成哈,春节期间就是咔咔乱吃,咔咔乱玩,把学习都抛一边子去了,已经9天没有学习了,深深的懊悔,从今天开始&…

Leetcode1423.可获得的最大点数

文章目录 题目原题链接思路(逆向思维) 题目 原题链接 Leetcode1423.可获得的最大点数 思路(逆向思维) 由题目可知,从两侧选k张,总数为n张,即从中间选n - k张 nums总和固定,要选k张最…

[CTF]-PWN:C++文件更换libc方法(WSL)

C文件与C文件更换libc有很多不一样的地方,我是在写buu的ciscn_2019_final_3才意识到这个问题,C文件只需要更换libc和ld就可以了,但是C文件不同,除了更换libc和ld,它还需要更换libstdc.so.6和libgcc_s.so.1 更换libc和…

[SWPUCTF 2021 新生赛]crypto8

第一眼看见是乱码不确定是什么的编码 看了下感觉是UUencode编码 UUencode编码是一种古老的编码方式,通常用于将二进制数据转换成可打印字符的形式。UUencode编码采用一种基于64个字符的编码表,将每3个字节的数据编码为4个可打印字符,以实现…

vue导出word文档(图文示例)

第076个 查看专栏目录: VUE 本文章目录 示例说明示例效果图导出的文件效果截图示例源代码参数说明:重要提示:API 参考网址 示例说明 在Vue中导出Word文档,可以使用第三方库file-saver和html-docx-js。首先需要安装这两个库: npm …

库的操作【数据库】

目录 一、创建数据库 二、删除数据库 ​编辑 三、数据库编码问题 四、库的改查 查 1)查有哪些数据库: 2)使用某个数据库: 3)当前在哪个数据库: 4)有谁在使用 改alter 五、备份和恢复 …

JDK8新增的时间

设计更合理,功能更丰富,使用更方便,都是不可变的对象,修改后会返回新的事件对象不会丢失最开始的时间,线程安全,能精确到毫秒、纳秒。 这三个类都有一个静态方法now():获取系统当前时间对应的该…

Linux常用命令总结-2

文章目录 1. 关闭防火墙2. 用户组管理3. 系统的性能监控 1. 关闭防火墙 service iptables stop2. 用户组管理 1.添加用户 useradd 用户名需要在root用户下,否则没有权限 2. 删除用户 userdel 用户名3. 修改用户密码 passwd 用户名3. 系统的性能监控 1.监控cp…

Day01 javaweb开发——tlias员工管理系统

任务介绍 完成部门管理和员工管理的增删改查功能 环境搭建 前端---->后端---->数据库 准备数据库表创建springboot工程(web、mybatis、mysql驱动、lombok)application.properties中引入mybatis配置信息,准备对应的实体类准备三层架…

计算机组成原理:存储系统【四】

🌈个人主页:godspeed_lucip 🔥 系列专栏:计算机组成与原理基础 1 外存储器1.1 总览1.2 磁盘存储器1.2.1 磁盘设备的组成1.2.2 磁盘的性能指标1.2.3 磁盘的地址1.2.3 磁盘的工作过程 1.3 磁盘阵列1.3.1 解释1.3.2 分类 1.4 总结 2 …

map的key重复问题

一种需要key重复的Map 实例结果 IdentityHashMap<>(); dentityHashMap 类&#xff08;存在于java.util包中&#xff09;是一个 基于HashTable的 Map 接口的实现&#xff0c;从Java 1.4版本开始就已经存在。 这个类不是一个通用的Map 实现。尽管这个类实现了Map 接口&…

用于图像处理的Python顶级库 !!

文章目录 前言 1、OpenCV 2、Scikit-Image 3、Scipy 4、Python Image Library&#xff08;Pillow / PIL&#xff09; 5、Matplotlib 6、SimpleITK 7、Numpy 8、Mahotas 前言 正如IDC所指出的&#xff0c;数字信息将飙升至175ZB&#xff0c;而这些信息中的巨大一部分是图片。数…

DTAN: Diffusion-based Text Attention Network for medical imagesegmentation

DTAN:基于扩散的医学图像分割文本关注网络 摘要 在当今时代&#xff0c;扩散模型已经成为医学图像分割领域的一股开创性力量。在此背景下&#xff0c;我们引入了弥散文本注意网络(Diffusion text - attention Network, DTAN)&#xff0c;这是一个开创性的分割框架&#xff0c…

http“超级应用与理解”

本篇文章来介绍一下http协议和其应用 1.http协议是在OSI模型的哪一层 HTTP&#xff08;超文本传输协议&#xff09;是应用层协议&#xff0c;它是在 OSI 模型的最高层&#xff0c;即第七层——应用层。HTTP 通过互联网来传输数据和信息&#xff0c;主要用于 Web 浏览器和 Web …

前端开发,Vue的双向数据绑定的原理

目录 一、什么是前端 二、Vue.JS框架 三、双向数据绑定 四、Vue的双向数据绑定的原理 一、什么是前端 前端通常指的是网页或应用程序中用户直接交互和感知的部分&#xff0c;也称为客户端。前端开发涉及使用HTML、CSS和JavaScript等技术来构建用户界面和交互功能。前端开发…