《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://xiahunao.cn/news/2780290.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

中国电子学会2020年9月份青少年软件编程Scratch图形化等级考试试卷三级真题(编程题)

编程题(共3题,共30分) 36.题目:魔术表演“开花” 1.准备工作 (1)将舞台设置为"Party"; (2)删除默认角色,自行绘制椭圆花瓣角色; (3&#xf…

fast.ai 机器学习笔记(一)

机器学习 1:第 1 课 原文:medium.com/hiromi_suenaga/machine-learning-1-lesson-1-84a1dc2b5236 译者:飞龙 协议:CC BY-NC-SA 4.0 来自机器学习课程的个人笔记。随着我继续复习课程以“真正”理解它,这些笔记将继续更…

【Django】Django项目部署

项目部署 1 基本概念 项目部署是指在软件开发完毕后,将开发机器上运行的软件实际安装到服务器上进行长期运行。 在安装机器上安装和配置同版本的环境[python,数据库等] django项目迁移 scp /home/euansu/Code/Python/website euansuxx.xx.xx.xx:/home…

C#系列-Entity Framework 架构(18)

下图展示了EF的整体架构。现在让我们逐个地看看架构的各个组件: EF组件图 EDM(Entity Data Mode 实体数据模型):EDM 由三个主要部分组成:概念模型,映射和存储模型。 Conceptual Model(概念模型&#xff0…

【Langchain Agent研究】SalesGPT项目介绍(二)

【Langchain Agent研究】SalesGPT项目介绍(一)-CSDN博客 上节课,我们介绍了SalesGPT他的业务流程和技术架构,这节课,我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把…

【安装记录】安装 netperf 和 perf

这是一篇发疯随笔X.X 我的环境是虚拟机debian12,出于种种原因,之前直接使用apt-get install netperf apt-get install perf指令直接安装,报错找不到包 然后上网搜了一堆教程,有说下载netperf源码编译的,那些教程里面有…

Guitarpro 8.1.1.17中文解锁版2024最新安装激活图文教程

Guitarpro 8.1.1.17中文解锁版一直备受用户喜爱和关注,但也存在一个被诟病的问题,即不支持中国专属的简谱功能。作为国人为了方便学习音乐独创的一种谱写方式,简谱在国内广受欢迎,然而在国际上使用的却很少。为了解决这一问题&…

CrossOver虚拟机软件功能相似的软件

与 CrossOver 功能相似的软件有: Wine:Wine 是一款在 Unix 和 Unix-like 系统(如 Linux、macOS)上运行 Windows 应用程序的兼容层。与 CrossOver 类似,Wine 通过模拟 Windows 的 API 来实现应用程序的兼容性。它支持大…

【新书推荐】7.4节 寄存器间接和相对寻址方式

本节内容:当指令操作数为内存操作数,且内存操作数的地址使用指针寄存器表示时,称为寄存器间接寻址方式。 ■寄存器间接寻址方式:在地址表达式中,只能使用BX、SI、DI、BP四个指针寄存器用来寻址。 7.4.1 寄存器间接寻…

《深入浅出OCR》第八章:文档任务多模态预训练

✨专栏介绍: 经过几个月的精心筹备,本作者推出全新系列《深入浅出OCR》专栏,对标最全OCR教程,具体章节如导图所示,将分别从OCR技术发展、方向、概念、算法、论文、数据集等各种角度展开详细介绍。 👨‍💻面向对象: 本篇前言知识主要介绍深度学习知识,全面总结知知识…

【Rust】使用Rust实现一个简单的shell

一、Rust Rust是一门系统编程语言,由Mozilla开发并开源,专注于安全、速度和并发性。它的主要目标是解决传统系统编程语言(如C和C)中常见的内存安全和并发问题,同时保持高性能和底层控制能力。 Rust的特点包括&#x…

C++2024寒假J312实战班2.5

题目列表: #1多项式输出 #2龙虎斗 #3表达式求值 #4解密 #1多项式输出 这是第一个题目很简单,我也作对了。 我们下来看一下题目: 我们先来看一下样例: 5 100 -1 1 -3 0 10 首先100是第一项,所以不输出加号&…

【Linux技术宝典】Linux入门:揭开Linux的神秘面纱

文章目录 官网Linux 环境的搭建方式一、什么是Linux?二、Linux的起源与发展三、Linux的核心组件四、Linux企业应用现状五、Linux的发行版本六、为什么选择Linux?七、总结 Linux,一个在全球范围内广泛应用的开源操作系统,近年来越来…

枚举(C/C++)

没有什么成套的算法&#xff0c;直接上例题&#xff01;&#xff01; 例题1&#xff1a;赢球票 代码&#xff1a; #include <bits/stdc.h> using namespace std;const int maxn 105; int n,num1[maxn],num2[maxn],cnt,cnt1,sum,ans;int check1()//检查剩余个数 {cnt1…

单片机学习笔记---蜂鸣器播放提示音音乐(天空之城)

目录 蜂鸣器播放提示音 蜂鸣器播放音乐&#xff08;天空之城&#xff09; 准备工作 主程序 中断函数 上一节讲了蜂鸣器驱动原理和乐理基础知识&#xff0c;这一节开始代码演示&#xff01; 蜂鸣器播放提示音 先创建工程&#xff1a;蜂鸣器播放提示音 把我们之前模块化的…

python学习23

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

计算机网络基础 第二章——物理层 知识点

2.1物理层和物理层协议的基本概念 1.物理层的基本服务功能和设置物理层的目的。 ●物理层考虑的是怎样才能在连接各种计算机的传输媒体上 传输数据比特流&#xff0c;而不是指具体的传输媒体。 ●物理层的主要任务是:保证比特流通过传输介质的正确传 输&#xff0c;为数据链…

蓝桥杯2023年真题(1)

1.分糖果 #include <iostream> using namespace std; int a 9, b 16, c 7, d 2, e 5; int ans 0; //u是当前第几个分糖果的小朋友&#xff0c;x和y是还剩的糖果 void dfs(int u, int x, int y){if(u > c){//如果都为0&#xff0c;就是已经分完了if(!x &&…

一个小而实用的 Python 包 pangu,实现在中文和半宽字符(字母、数字和符号)之间自动插入空格

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一个小巧的库&#xff0c;可以避免自己重新开发功能。利用 Python 包 pangu&#xff0c;可以轻松实现在 CJK&#xff08;中文、日文、韩文&#xff09;和半宽字符&#xff08;字母、数字和符号&#xf…

【开源】SpringBoot框架开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…