技术献文-小白如何正确使用Linux(2-进阶篇)

2024-09-01 07:04

本文主要是介绍技术献文-小白如何正确使用Linux(2-进阶篇),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

先言

方面一:深入命令行与系统配置

摘要

主要讲解

正文

一、引言

二、深入命令行

(一)高级命令行工具

1. grep 与正则表达式

2. awk 和 sed

3. find 和 locate

(二)命令行脚本编写

1. 基础脚本结构

2. 函数定义与调用

3. 错误处理

(三)命令行快捷键与技巧

1. 历史命令的利用

2. 命令补全与路径补全

3. 管道与重定向

三、系统配置

(一)用户和权限管理

1. 理解用户和组

2. 文件和目录权限设置

(二)系统服务管理

1. 了解系统服务

2. 启动、停止和重启服务

3. 服务配置文件

(三)网络配置

1. IP 地址配置

2. 路由配置

3. 防火墙配置

四、总结

方面二:软件安装与服务管理

摘要

主要讲解

正文

一、引言

二、软件安装

(一)基于包管理器的安装

1. APT(Debian 系,如 Ubuntu)

2. YUM(Red Hat 系,如 CentOS)

(二)软件源的配置

1. 官方软件源

2. 第三方软件源

(三)从源代码安装

1. 获取源代码

2. 解压并配置

3. 编译与安装

三、服务管理

(一)服务的概念与类型

1. 系统服务

2. 应用服务

(二)服务的启动、停止与重启

systemctl (Systemd 系统)

service 命令

(三)服务的自启动设置

systemctl (Systemd 系统)

chkconfig (某些旧系统)

(四)服务的配置文件

四、总结

后言


先言

在上次的技术献文中,我们讲解了《小白如何正确使用Linux(1-基础篇)》,进阶篇也将从两个方面进行讲解!

方面一:深入命令行与系统配置

摘要

对于想要更深入了解和熟练使用 Linux 的小白用户来说,掌握命令行操作和系统配置是关键的进阶步骤。本文将详细介绍命令行的高级用法、系统配置的重要方面以及相关的实用技巧,帮助小白用户提升在 Linux 系统中的操作能力和效率。

主要讲解

Linux;命令行;系统配置;进阶

正文

一、引言

在初步接触 Linux 系统后,小白用户若想进一步提升自身的技能水平,从而更加高效、灵活地运用这一强大的操作系统,深入学习命令行和系统配置是必不可少的进阶之路。这不仅能让用户更深入地理解 Linux 的工作原理,还能显著提高工作效率和解决问题的能力。

二、深入命令行

(一)高级命令行工具
1. grep 与正则表达式

grep 命令是在文本中进行搜索的强大工具。对于小白用户来说,掌握基本的搜索模式已能满足一些日常需求,但要处理更复杂的文本匹配,就需要结合正则表达式。正则表达式是一种用于描述模式的规则语言,能够精确地定义所需的文本格式。

例如,要搜索包含特定格式的 IP 地址(如 192.168.0.1 这种形式),可以使用正则表达式 [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 与 grep 结合。同样,搜索有效的电子邮件地址格式也可以通过精心编写的正则表达式来实现。

2. awk 和 sed

awk 是一种用于文本处理和数据提取的工具。它可以根据指定的分隔符将每行文本分割成字段,并对这些字段进行操作。比如,可以轻松计算文本中某一列数字的总和、平均值,或者提取特定字段的内容。

sed 则专注于对文本进行流编辑,允许在不打开文件的情况下直接修改文件的内容。例如,将文件中所有出现的某个单词替换为另一个单词,或者删除特定行。

3. find 和 locate

在文件众多的 Linux 系统中,快速准确地找到所需文件至关重要。find 命令能够根据各种条件(如文件大小、修改时间、所有者等)在整个文件系统中进行深度搜索。

而 locate 则通过预先构建的数据库来快速定位文件,但其搜索结果可能不是实时的,对于新创建或最近修改的文件可能无法立即找到。

(二)命令行脚本编写
1. 基础脚本结构

一个完整的命令行脚本通常以 #!/bin/bash 开头,这告诉系统使用 Bash 解释器来执行脚本。接着,可以定义变量来存储数据,例如 my_variable="Hello, Linux" 。

条件判断语句(如 if-else )允许根据不同的条件执行不同的操作。例如, if [ $my_variable == "Hello, Linux" ]; then echo "Match"; else echo "No Match"; fi 。

循环结构(如 for 和 while )可以重复执行一段代码。 for item in "item1" "item2" "item3"; do echo $item; done 是一个简单的 for 循环示例。

2. 函数定义与调用

将经常使用的一系列操作封装为函数,可以大大提高脚本的可读性和可维护性。例如,定义一个函数来检查某个进程是否正在运行:

check_process() {pid=$(pgrep $1)if [ -z "$pid" ]; thenecho "$1 is not running"elseecho "$1 is running with PID: $pid"fi
}

然后在脚本的其他地方通过 check_process my_process_name 来调用该函数。

3. 错误处理

在脚本中,可能会遇到各种错误情况,如文件不存在、权限不足等。使用 set -e 可以使脚本在遇到错误时立即退出。

另外,还可以使用 trap 命令来捕获特定的信号(如 SIGINT 表示中断信号)并执行相应的处理代码,确保脚本在被意外中断时能进行必要的清理工作。

(三)命令行快捷键与技巧
1. 历史命令的利用

通过上下箭头键可以方便地浏览之前执行过的命令。使用 Ctrl + R 可以进行反向搜索,只需输入命令的部分关键字,就能快速找到相关的历史命令。

2. 命令补全与路径补全

按下 Tab 键,系统会尝试自动补全正在输入的命令或文件路径。如果有多个可能的选项,按两次 Tab 键会显示所有选项。

3. 管道与重定向

管道 | 允许将一个命令的输出作为另一个命令的输入,从而实现多个命令的串联操作,以完成复杂的任务。

重定向操作(如 > 用于覆盖输出、 >> 用于追加输出、 < 用于输入重定向)可以将命令的输出保存到文件,或者从文件读取数据作为命令的输入。

三、系统配置

(一)用户和权限管理
1. 理解用户和组

在 Linux 中,用户和组是进行权限控制的基础概念。每个用户都有唯一的用户名和用户 ID (UID) ,用户可以属于一个或多个组。

创建新用户可以使用 useradd 命令,同时可以指定用户的主目录、登录 shell 等属性。删除用户则使用 userdel 命令。

组的管理通过 groupadd 和 groupdel 命令进行,使用 usermod 命令可以将用户添加到或从组中移除。

2. 文件和目录权限设置

文件和目录的权限分为读(r)、写(w)和执行(x)三种。对于文件,读权限允许查看文件内容,写权限允许修改文件内容,执行权限对于脚本和程序才有意义。

对于目录,读权限允许列出目录中的文件,写权限允许在目录中创建、删除文件,执行权限允许进入目录。

可以使用 chmod 命令来修改权限,例如 chmod 755 file.txt 赋予文件所有者读、写、执行权限,组和其他用户读和执行权限。

使用 chown 命令可以更改文件或目录的所有者, chgrp 命令则用于更改所属组。

(二)系统服务管理
1. 了解系统服务

Linux 系统启动时会自动启动一系列服务,如网络服务、打印服务等。了解每个服务的功能和用途对于系统的优化和管理非常重要。

可以通过 systemctl list-units --type=service 命令查看系统中正在运行和已安装的服务。

2. 启动、停止和重启服务

使用 systemctl start service_name 启动服务, systemctl stop service_name 停止服务, systemctl restart service_name 重启服务。

还可以使用 systemctl enable service_name 使服务在系统启动时自动启动, systemctl disable service_name 禁止自动启动。

3. 服务配置文件

大多数服务都有相应的配置文件,通常位于 /etc 目录下。通过修改配置文件可以调整服务的行为,如更改监听端口、设置日志级别等。

(三)网络配置
1. IP 地址配置

可以使用 ifconfig 或 ip addr 命令查看网络接口的信息。静态 IP 地址的配置通常在 /etc/network/interfaces 文件(对于某些旧版本的系统)或通过 nmcli 命令(对于使用 NetworkManager 的系统)进行。

动态 IP 地址的获取可以通过 DHCP 服务自动完成,配置信息通常由网络中的 DHCP 服务器提供。

2. 路由配置

使用 route 命令可以查看和管理系统的路由表。添加、删除静态路由可以通过相应的命令参数实现。

3. 防火墙配置

Linux 系统中的防火墙通常使用 iptables 或 firewalld 进行配置。可以设置允许或拒绝特定的端口、IP 地址或网络协议的访问。

四、总结

对于小白用户来说,从基础操作迈向深入命令行和系统配置的进阶阶段是一个充满挑战但也极具收获的过程。通过掌握高级命令行工具、熟练编写脚本、有效利用快捷键和技巧,以及深入理解和管理系统配置,用户能够更加自如地驾驭 Linux 系统,充分发挥其强大的功能和灵活性。不断的实践和探索将进一步巩固这些技能,为在 Linux 世界中的更高级应用和创新奠定坚实的基础。

方面二:软件安装与服务管理

摘要

在 Linux 系统的使用中,软件安装与服务管理是进阶操作的重要环节。本文将针对小白用户,详细介绍 Linux 系统中软件安装的多种方法,包括包管理器的使用、源代码编译安装等,同时深入探讨服务管理的相关知识,如服务的启动、停止、自启动设置等,帮助小白用户更好地掌握 Linux 系统的软件安装与服务管理技能。

主要讲解

Linux;软件安装;服务管理;进阶技巧

正文

一、引言

随着对 Linux 系统的熟悉程度逐渐提高,小白用户需要掌握更深入的技能来满足各种需求。软件安装和服务管理是日常使用中经常遇到的操作,熟练掌握这些技能可以提高系统的可用性和功能性。

二、软件安装

(一)基于包管理器的安装

包管理器是 Linux 系统中用于安装、更新和管理软件包的工具,不同的 Linux 发行版通常会有自己特定的包管理器。

1. APT(Debian 系,如 Ubuntu)

APT(Advanced Packaging Tool)是 Debian 及其衍生发行版(如 Ubuntu)中常用的包管理器。它提供了一种方便、高效的方式来安装和管理软件。

首先,使用 sudo apt update 命令来更新软件源信息。这一步非常重要,因为它确保您获取到最新的软件包列表和可用版本信息。

然后,使用 sudo apt install package_name 命令来安装指定的软件包。例如,如果您想安装 Vim 文本编辑器,可以输入 sudo apt install vim 。

APT 还支持其他有用的操作,如 sudo apt remove package_name 用于删除软件包, sudo apt upgrade 用于升级已安装的软件包到最新版本。

2. YUM(Red Hat 系,如 CentOS)

在 Red Hat 及其衍生发行版(如 CentOS)中,YUM(Yellowdog Updater, Modified)是常用的包管理器。

类似于 APT ,在使用 YUM 进行安装之前,需要先运行 sudo yum update 命令来更新软件源。

要安装软件包,使用 sudo yum install package_name 命令。例如,安装 Apache 服务器可以输入 sudo yum install httpd 。

YUM 也支持删除软件包( sudo yum remove package_name )和升级软件包( sudo yum upgrade )等操作。

(二)软件源的配置

软件源是软件包的存储库,配置合适的软件源可以确保您能够获取到所需的软件以及最新的更新。

1. 官方软件源

大多数 Linux 发行版在安装时都会默认配置官方软件源。官方软件源通常经过发行版团队的测试和验证,稳定性较高。

然而,有时官方源中的软件版本可能不是最新的,特别是对于一些较新的或特定领域的软件。

2. 第三方软件源

为了获取最新的软件版本或特定的软件,用户可能需要添加第三方软件源。但在添加第三方源时需要格外小心,确保其来源可靠,以避免潜在的安全风险。

例如,一些流行的第三方软件源如 EPEL(Extra Packages for Enterprise Linux)为 CentOS 等系统提供了额外的软件包。

添加第三方软件源通常需要编辑相关的配置文件,如在 Ubuntu 中编辑 /etc/apt/sources.list ,在 CentOS 中编辑 /etc/yum.repos.d/*.repo 。

(三)从源代码安装

从源代码安装软件虽然相对复杂,但在某些情况下是必要的,例如获取最新的特性或满足特定的定制需求。

1. 获取源代码

用户可以从软件的官方网站或代码托管平台(如 GitHub)获取源代码压缩包。通常,源代码会以 .tar.gz 或 .tar.bz2 等格式提供。

2. 解压并配置

解压源代码后,进入解压后的目录。大多数源代码包都会包含一个 configure 脚本,用于检查系统环境和配置安装选项。

在终端中运行 ./configure 命令。这个过程中,它会检查系统是否具备所需的编译工具、库文件等,如果缺少某些依赖,configure 过程可能会报错,此时您需要根据提示安装相应的依赖。

3. 编译与安装

运行 make 命令进行编译。这一过程可能需要一些时间,具体取决于软件的大小和您的系统性能。

编译成功后,使用 sudo make install 命令进行安装。这将把软件安装到系统的指定位置。

但需要注意的是,这种方式需要用户具备一定的编译环境和依赖库的知识,否则可能会遇到各种问题。

三、服务管理

(一)服务的概念与类型

服务是在后台持续运行,为系统提供各种功能支持的程序。

1. 系统服务

系统服务是 Linux 系统本身所依赖的关键服务,如网络服务(负责网络连接和通信)、打印服务(管理打印任务)、SSH 服务(允许远程登录)等。

这些服务通常由系统自动启动,并在后台默默工作,以确保系统的正常运行和基本功能的可用。

2. 应用服务

由用户安装的应用程序可能也会作为服务运行,如数据库服务(如 MySQL 、PostgreSQL )、Web 服务器(如 Apache 、Nginx )等。

这些服务通常是为了支持特定的应用程序或提供特定的功能,用户可以根据自己的需求进行启动、停止和配置。

(二)服务的启动、停止与重启

在不同的 Linux 发行版中,可以使用不同的命令来管理服务。

  • systemctl (Systemd 系统)

在采用 Systemd 作为初始化系统的发行版(如较新的 Ubuntu 、CentOS 等)中,可以使用 systemctl 命令来管理服务。

启动服务: sudo systemctl start service_name

停止服务: sudo systemctl stop service_name

重启服务: sudo systemctl restart service_name

查看服务状态: sudo systemctl status service_name ,它会显示服务是否正在运行、启动失败的原因等详细信息。

  • service 命令

在一些较旧的发行版中,可能会使用 service 命令来管理服务。

启动服务: sudo service service_name start

停止服务: sudo service service_name stop

重启服务: sudo service service_name restart

(三)服务的自启动设置

很多服务需要在系统启动时自动启动,以确保相关功能随时可用。

  • systemctl (Systemd 系统)

启用自启动: sudo systemctl enable service_name

禁用自启动: sudo systemctl disable service_name

  • chkconfig (某些旧系统)

在一些使用 SysVinit 作为初始化系统的旧发行版中,可以使用 chkconfig 命令来设置服务的自启动。

例如, sudo chkconfig service_name on 启用自启动, sudo chkconfig service_name off 禁用自启动。

(四)服务的配置文件

大多数服务都有相应的配置文件,用于设置服务的参数和行为。

配置文件的位置通常因服务和发行版而异。例如,Apache 服务器的主要配置文件可能是 /etc/httpd/conf/httpd.conf ,MySQL 数据库的配置文件可能在 /etc/mysql/my.cnf 。

用户可以通过编辑这些配置文件来更改服务的监听端口、最大连接数、日志级别等参数。但在编辑配置文件时要格外小心,错误的配置可能导致服务无法正常启动。

四、总结

软件安装和服务管理是 Linux 系统使用中的重要技能。通过掌握基于包管理器的安装方法、源代码安装的步骤以及服务的管理操作,小白用户可以更加灵活和高效地配置自己的 Linux 系统,满足各种个性化的需求。同时,在进行这些操作时,要注意遵循最佳实践和安全原则,以确保系统的稳定和安全。随着不断的实践和经验积累,用户将能够更加熟练地驾驭 Linux 系统,充分发挥其强大的功能。

后言

进阶篇的难度不大,主要是在于操作系统的实践,在高级篇中,将展示应用的实践,如果我将的没有听懂,可以再次搜索,因为我的废话有亿点多。

这篇关于技术献文-小白如何正确使用Linux(2-进阶篇)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126269

相关文章

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

使用MongoDB进行数据存储的操作流程

《使用MongoDB进行数据存储的操作流程》在现代应用开发中,数据存储是一个至关重要的部分,随着数据量的增大和复杂性的增加,传统的关系型数据库有时难以应对高并发和大数据量的处理需求,MongoDB作为... 目录什么是MongoDB?MongoDB的优势使用MongoDB进行数据存储1. 安装MongoDB

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

mysql数据库分区的使用

《mysql数据库分区的使用》MySQL分区技术通过将大表分割成多个较小片段,提高查询性能、管理效率和数据存储效率,本文就来介绍一下mysql数据库分区的使用,感兴趣的可以了解一下... 目录【一】分区的基本概念【1】物理存储与逻辑分割【2】查询性能提升【3】数据管理与维护【4】扩展性与并行处理【二】分区的

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma