Linux入门参考
- Linux基础知识
- 引言
- Linux的历史简介
- Linux的普及和重要性
- 为什么学习Linux是一个明智的选择
- 一:Linux基本知识
- 什么是Linux?
- Linux操作系统的定义
- Linux的特点
- Linux与其他操作系统的比较
- Linux发行版
- 常见的Linux发行版
- Linux文件系统
- 根目录和常见目录结构
- 文件权限和所有权
- 二:Linux命令行基础
- Shell简介
- 什么是Shell
- 常见的Shell类型
- 基本命令
- 文件和目录管理命令
- 文本编辑器
- 进阶命令
- 文件查找
- 压缩和解压
- 三:用户和权限管理
- 用户账户
- 创建和管理用户
- 创建用户
- 设置密码
- 管理用户
- 修改用户信息
- 删除用户
- 用户组管理
- 添加用户组
- 删除用户组
- 修改用户组
- 权限设置
- 改变文件和目录的权限(chmod)
- 符号模式
- 数字模式
- 递归修改
- 改变文件和目录的所有者(chown)
- 基本用法
- 递归修改
- 四:网络配置
- 配置IP地址
- 具体步骤
- 五、结语
Linux基础知识
引言
Linux的历史简介
- Linux的历史始于1991年,当时芬兰大学生Linus Torvalds开始了一个个人项目,目的是创建一个自由和开源的操作系统。当时,他受到了Minix(一个用于教育的类Unix系统)的启发,但想要一个功能更全面、能够运行在普通个人电脑上的系统。他在Usenet新闻组上宣布了这一项目,并且很快就吸引了一群开发者参与到这个项目中来。
- Torvalds最初的目标是为386/486英特尔处理器开发一个简单的操作系统,但很快Linux的发展就超越了个人项目,成为了一个全球性的开源软件运动。随着更多的开发者加入,Linux系统开始支持更多的硬件平台,并且功能也越来越完善。
- Linux内核的开发过程是开放的,全球的开发者都可以参与到这个过程中。Torvalds至今仍然负责内核的合并工作,即决定哪些代码贡献会被接受并合并到Linux内核中。
- 开源软件社区在Linux的发展中扮演了至关重要的角色。除了内核之外,社区还开发了大量围绕Linux的软件,包括图形用户界面、办公软件、服务器软件等,形成了一个完整的生态系统。其中,Richard Stallman发起的GNU项目提供了大量的开源工具和库,这些工具和库与Linux内核结合,形成了完整的操作系统,通常被称为GNU/Linux。
- Linux的发行版(如Ubuntu、Fedora、Debian等)提供了预配置的Linux系统,包括内核、用户界面和应用程序,使得普通用户可以轻松地安装和使用Linux。
- 如今,Linux已经成为全球最流行的操作系统之一。它不仅在服务器领域占据主导地位,还广泛应用于超级计算机、嵌入式系统、移动设备(如安卓)以及个人电脑等多种场合。Linux的成功证明了开源模式在软件开发中的强大潜力。
Linux的普及和重要性
Linux的普及和重要性体现在多个方面,它在技术领域的影响是深远和广泛的。以下是一些关键点:
- 服务器操作系统:Linux是最受欢迎的服务器操作系统之一,它为全球大部分数据中心提供动力,包括大型互联网公司如Google、Facebook和Amazon。Linux服务器的稳定性、安全性和可伸缩性是其受欢迎的主要原因。
- 开源软件和协作:Linux是开源软件运动的典范,它展示了全球开发者如何协作创建复杂的软件系统。这种协作模式促进了技术的快速发展,并鼓励了创新。
- 自由和定制性:Linux的开放源代码允许用户自由地查看、修改和分发软件。这种自由促进了定制性,使得Linux能够适应各种不同的需求和环境。
- 嵌入式系统和物联网:Linux是许多嵌入式系统和物联网设备的操作系统选择,因为它可以轻松地定制和优化,以适应特定的硬件和性能要求。
- 超级计算和科学研究:在全球最快的超级计算机中,Linux是主导的操作系统。它的高性能和可扩展性使得Linux成为科学研究和高性能计算的理想选择。
- 移动设备和消费电子:Android操作系统是基于Linux内核的,它是世界上最流行的移动操作系统,用于数十亿的手机和平板电脑。此外,Linux也用于各种消费电子产品,如电视、游戏机和其他智能设备。
- 教育和研究:Linux提供了一个开放的平台,供教育机构和研究人员学习、实验和开发新技术。它的开源特性使得学生和研究者能够深入理解操作系统的内部工作原理。
- 企业解决方案:许多企业选择Linux作为其IT基础设施的核心部分,因为它提供了成本效益、可靠性和安全性。Linux还支持企业级功能,如虚拟化、集群和高可用性。
- 个人电脑和桌面环境:虽然Linux在个人电脑市场的份额相对较小,但它提供了一个免费或低成本的替代方案,拥有多种桌面环境,满足不同用户的偏好。
- 安全性和隐私:Linux的架构和开源特性使得它相对较少受到恶意软件和病毒的攻击。对于那些重视安全和隐私的用户来说,Linux提供了一个更加安全的选择。
为什么学习Linux是一个明智的选择
学习Linux是一个明智的选择,原因有很多,包括以下几点:
- 市场需求:Linux系统管理员、Linux开发者和DevOps工程师等职位在就业市场上有着很高的需求。掌握Linux技能可以增加就业机会,特别是在IT行业。
- 技术基础:Linux是许多现代技术的基础,包括云计算、大数据、人工智能和物联网。学习Linux可以帮助你更好地理解这些技术的工作原理。
- 开源生态系统:Linux是开源软件的一个典型代表。学习Linux不仅仅是学习一个操作系统,而是进入一个庞大的开源生态系统,这里有无数的资源和社区可以支持你的学习和成长。
- 技能转移:Linux技能很容易转移到其他操作系统上,比如Unix和类Unix系统。这些系统在企业和服务器环境中广泛使用。
- 灵活性和自定义:Linux提供了高度的灵活性和自定义能力。你可以根据需要调整和优化系统,这对于开发者和技术爱好者来说是一个巨大的优势。
- 安全性和稳定性:Linux以其安全性和稳定性而闻名。学习Linux可以帮助你更好地理解计算机安全原理,以及如何保护系统免受攻击。
- 低成本学习:Linux是免费和开源的,这意味着你可以轻松地在家中设置学习环境,而不需要额外的许可费用。
- 社区支持:Linux有一个庞大、活跃的社区,你可以从中获得帮助和支持。无论你是初学者还是有经验的专业人士,社区都能提供资源、教程和交流机会。
- 跨平台能力:Linux可以在各种硬件上运行,从个人电脑到超级计算机,再到嵌入式设备。掌握Linux技能可以使你在多个平台上工作。
- 职业发展:Linux技能对于IT行业的职业发展非常有价值。随着经验的积累,你可以发展成为系统架构师、安全专家或高级开发者等高级职位。
一:Linux基本知识
什么是Linux?
Linux操作系统的定义
Linux操作系统是一种开源的、基于Unix的操作系统内核,它由Linus Torvalds于1991年首次发布。Linux内核是操作系统的核心部分,它负责管理系统的资源,如内存、处理器、设备驱动程序和文件系统,并提供应用程序运行的基本服务。
Linux通常与GNU工具和库一起使用,这些工具和库遵循GNU通用公共许可证(GPL),共同构成了一个完整的操作系统,通常被称为GNU/Linux。这个操作系统可以在各种计算机硬件上运行,从个人电脑到超级计算机,再到嵌入式设备。
Linux的特点
- 开源性:Linux的源代码可以被任何人自由地访问、修改和分发,这促进了全球范围内的协作和快速开发。
- 多用户和多任务:Linux支持多个用户同时登录系统,并且能够同时运行多个任务和进程。
- 模块化设计:Linux的设计是模块化的,这意味着它的内核和功能可以根据需要进行增加或删除。
- 硬件支持:Linux能够在各种硬件平台上运行,支持广泛的硬件设备。
- 安全性:Linux被认为是一个相对安全的操作系统,部分原因是由于其开源特性,使得安全漏洞能够被快速发现和修复。
- 稳定性:Linux以其稳定性和可靠性而闻名,能够在长时间内无故障运行。
- 可定制性:Linux提供了高度的可定制性,用户可以根据自己的需求定制操作系统。
- 社区支持:Linux有一个庞大、活跃的社区,提供技术支持、文档和软件更新。
Linux操作系统有多种不同的发行版,如Ubuntu、Fedora、Debian、CentOS、Arch Linux等,每个发行版都有其特定的特点和目标用户群体。这些发行版通常包括Linux内核、GNU工具和库,以及额外的软件和应用程序,以便用户能够直接使用。
Linux与其他操作系统的比较
Linux操作系统经常与其他主流操作系统进行比较,尤其是与Microsoft Windows和Apple macOS。以下是一些关键的比较点:
- 开源性与闭源性:
- Linux:开源的,意味着任何人都可以自由地查看、修改和分发源代码。
- Windows:闭源的,由微软拥有和开发,源代码不公开。
- macOS:部分开源,基于Unix,但主要部分的源代码不公开。
- 成本:
- Linux:大多数Linux发行版是免费的,用户可以下载并使用而不需要支付许可费用。
- Windows:需要购买许可证,通常随着新电脑预装或单独购买。
- macOS:通常预装在苹果电脑上,不单独出售。
- 硬件兼容性:
- Linux:广泛支持各种硬件,但某些特定硬件可能需要额外的驱动程序。
- Windows:支持最广泛的硬件,因为大多数硬件制造商都为其提供驱动程序。
- macOS:仅设计用于苹果硬件,与其他硬件不兼容。
- 软件兼容性:
- Linux:虽然有许多开源应用程序,但一些流行的商业软件和游戏可能不支持Linux。
- Windows:拥有最广泛的软件和游戏兼容性。
- macOS:有一定的软件兼容性,许多主流应用程序都有macOS版本。
- 用户界面:
- Linux:有多种桌面环境可供选择,如GNOME、KDE、XFCE等,可以根据个人喜好定制。
- Windows:提供统一的用户界面,每版Windows都有类似的视觉和操作体验。
- macOS:提供独特的用户界面,以简洁和直观著称。
- 安全性:
- Linux:由于其开源特性和较小的用户基数,Linux通常被认为相对更安全。
- Windows:由于其广泛的使用,一直是恶意软件和病毒的主要目标。
- macOS:由于其封闭的生态系统和相对较小的市场份额,安全问题较少。
- 自定义和灵活性:
- Linux:提供高度的自定义和灵活性,用户可以修改几乎所有的系统组件。
- Windows:提供一定程度的自定义,但通常不如Linux灵活。
- macOS:提供有限的用户自定义选项,以保持用户体验的一致性。
- 社区和支持:
- Linux:拥有庞大、活跃的开源社区,提供论坛、文档和免费支持。
- Windows:由微软提供官方支持,包括付费的技术支持和更新。
- macOS:由苹果提供官方支持,包括技术支持和软件更新。
每个操作系统都有其优势和局限性,选择哪个操作系统取决于个人需求、预算、硬件要求、软件兼容性以及个人偏好。Linux因其开放性、灵活性和安全性而受到开发者和企业的青睐,而Windows和macOS则因其用户友好性和广泛的软件兼容性而在个人电脑市场上占主导地位。
Linux发行版
常见的Linux发行版
Linux发行版是预配置的Linux操作系统,它们包括Linux内核、GNU工具和库、桌面环境、应用程序以及用于安装和管理系统的工具。以下是一些常见的Linux发行版:
- Ubuntu:Ubuntu是基于Debian的发行版,以其用户友好性和易于安装而闻名。它有多个版本,包括桌面版、服务器版和Core版,适用于不同的用途。
- Debian:Debian是社区驱动的项目,以其稳定性和安全性而著称。它是许多其他发行版的基础,包括Ubuntu。
- Fedora:Fedora由Red Hat赞助,是自由和开源软件的先锋。它经常包含最新的软件版本,适合喜欢尝鲜的用户。
- Red Hat Enterprise Linux (RHEL):Red Hat Enterprise Linux是Red Hat公司的商业发行版,专为企业和服务器环境设计。它提供了企业级的支持和服务。
- CentOS:CentOS是基于Red Hat Enterprise Linux构建的社区版,它旨在提供与RHEL相似的功能,但没有官方的商业支持。
- openSUSE:openSUSE是一个由社区开发的发行版,提供稳定版(Leap)和滚动更新版(Tumbleweed)。
- Arch Linux:Arch Linux是一个轻量级、简单化的发行版,以其滚动更新模型和“Do It Yourself”哲学而受到欢迎。
- Manjaro:Manjaro基于Arch Linux,但它提供了更加用户友好的安装过程和预配置的桌面环境,使其更适合初学者。
- Linux Mint:Linux Mint是基于Ubuntu的发行版,以其类似于Windows的经典桌面布局和易于使用的特点而受到新用户的青睐。
- Elementary OS:Elementary OS以其优雅的界面和一致的设计语言而闻名,它专注于提供美观和用户友好的体验。
- Mageia:Mageia是摩根大通Linux的社区分支,它提供了一种稳定和用户友好的操作系统,适合家庭和办公室使用。
- Gentoo:Gentoo是一个高度可定制的发行版,它允许用户从源代码编译整个系统,适合喜欢完全控制系统的高级用户。
这些只是众多Linux发行版中的一部分。每个发行版都有其特定的目标用户群体、特点和支持周期。用户可以根据自己的需求、技能水平和偏好来选择合适的发行版。
Linux文件系统
根目录和常见目录结构
在Linux操作系统中,文件系统是以一种树状结构组织的,从根目录(/)开始,然后分支到各个子目录和文件。根目录是整个文件系统的起点,所有的文件和目录都从这里开始。
以下是一些常见的目录及其用途:
/
(根目录):这是文件系统的根,所有的文件和目录都从这里开始。/bin
(Binary):存放基本命令的二进制文件,这些命令在单用户模式下也是可用的。/sbin
(System Binary):存放系统管理的二进制文件,通常需要管理员权限才能执行。/etc
(Etcetera):存放系统的配置文件和子目录。/dev
(Devices):包含设备文件,这些文件代表系统中的硬件设备。/proc
(Processes):一个虚拟文件系统,包含系统的进程和内核信息。/var
(Variable):存放经常变化的文件,如日志文件、邮件队列和打印队列。/tmp
(Temporary):用于存放临时文件,这些文件通常在系统重启后不会被保留。/usr
(User):存放用户应用程序和文件,这个目录通常很大,包含多个子目录。/home
(Home):用户的个人主目录通常存放在这里,每个用户都有自己的子目录。/root
(Root Home):根用户(超级管理员)的主目录。/boot
(Boot):存放启动引导加载程序和内核文件。/lib
(Library):存放系统和应用程序所需的共享库和内核模块。/opt
(Optional):用于存放第三方软件包和可选的软件应用程序。/mnt
(Mount):临时挂载文件系统的目录,如USB驱动器或CD-ROM。/media
(Media):自动挂载可移动媒体(如USB驱动器、CD-ROM)的目录。/srv
(Service):存放服务数据的服务器目录。/lost+found
:在文件系统检查时,恢复的丢失文件可能会放在这里。
这些目录构成了Linux文件系统的基本结构,不同的Linux发行版可能会有一些差异,但总体上这个结构是相似的。理解和熟悉这些目录对于有效地使用和管理Linux系统是非常重要的。
文件权限和所有权
在Linux操作系统中,文件权限和所有权是控制用户和组对文件的访问的关键安全特性。每个文件和目录都有与之关联的权限和所有权信息,这些信息决定了谁可以读取、写入或执行它们。
- 文件权限
文件权限分为三组,每组包含三个权限:
- 所有者(Owner)权限:适用于文件的所有者。
- 组(Group)权限:适用于文件所属的组。
- 其他(Others)权限:适用于所有其他用户。
- 每个权限可以是以下之一:
- 读(Read,r):允许查看文件内容或列出目录内容。
- 写(Write,w):允许修改文件内容或修改目录结构(创建、删除文件)。
- 执行(Execute,x):允许执行文件或进入目录(使其成为工作目录)。
- 文件所有权
文件所有权涉及两个主要方面:
- 用户所有者(Owner):拥有文件的用户账户。
- 组所有者(Group):文件所属的组。
- 权限表示
使用ls -l
命令可以查看文件的权限和所有权信息。例如:
-rwxr-xr-- 1 user group 1000 Jan 1 10:00 file.txt
-
:表示这是一个普通文件。rwx
:所有者(user)有读、写、执行的权限。r-x
:组(group)有读和执行的权限,但没有写的权限。r--
:其他用户有读的权限,但没有写和执行的权限。1
:链接数,表示文件硬链接的数量。user
:文件的所有者。group
:文件所属的组。1000
:文件的大小(以字节为单位)。Jan 1 10:00
:文件最后修改的日期和时间。file.txt
:文件的名称。
- 修改权限和所有权
可以使用chmod
命令来修改文件权限,使用chown
命令来修改文件的所有者和组,使用chgrp
命令来修改文件的组所有者。
例如:
chmod u+x file.txt
:给所有者添加执行权限。chmod g-w file.txt
:删除组的写权限。chmod o=r file.txt
:设置其他用户的权限为只读。chown user:group file.txt
:更改文件的所有者为user,组为group。chgrp group file.txt
:更改文件的组所有者为group。
二:Linux命令行基础
Shell简介
什么是Shell
Shell是一个命令行界面(CLI)工具,它允许用户与操作系统的内核交互。在Unix-like系统(如Linux)中,Shell是一个程序,它接受从键盘输入的命令,并将其传递给操作系统执行。Shell还负责从操作系统接收输出结果,并将其显示给用户。它提供了一个环境,用户可以在其中执行各种操作,如文件操作、程序执行、文本处理等。
Shell不仅仅是一个简单的命令解释器,它还是一个强大的编程语言。大多数Shell支持变量、控制流(如循环和条件语句)、函数、重定向和管道等特性,允许用户编写脚本来自动化复杂的任务。
常见的Shell类型
在Linux系统中,有许多不同的Shell可用,最常见的是:
- Bash (Bourne Again SHell):Bash是大多数Linux发行版的默认Shell,它是Bourne Shell(sh)的扩展。
- sh (Bourne Shell):sh是Unix上的原始Shell,许多Shell脚本都是为它编写的。
- csh (C Shell):csh是提供了一些类似C语言语法的Shell。
- tcsh (Enhanced C Shell):tcsh是csh的增强版本,提供了一些额外的特性。
- zsh (Z Shell):zsh是Bash的一个功能丰富的替代品,提供了许多改进和额外的特性。
- fish (Friendly Interactive SHell):fish是一个用户友好的Shell,它专注于易用性和交互性。
Shell脚本是一种脚本语言,它允许用户编写一系列Shell命令到一个文件中,然后可以一次性执行这些命令。Shell脚本常用于自动化系统管理任务、软件安装、数据处理等。
要访问Shell,用户通常会在终端仿真器中打开一个终端窗口,或者通过控制台直接登录。在Shell中,用户可以输入命令,这些命令可以是内置的Shell命令,也可以是安装在系统上的外部程序。
基本命令
文件和目录管理命令
1.Linux文件和目录管理命令
在Linux系统中,文件和目录是基本的数据组织单元。Linux提供了一系列命令来管理这些文件和目录,以下是一些常用的命令及其功能:
2.文件和目录查看命令
ls
:列出目录内容,可以通过不同的选项显示详细信息,如文件权限、所有者、大小和修改时间。cd
:更改当前工作目录,可以使用相对路径或绝对路径。pwd
:显示当前工作目录的绝对路径。tree
:以树状结构显示目录的内容,包括所有子目录和文件。
3.文件和目录创建命令
mkdir
:创建新的目录。touch
:创建空文件或更新现有文件的时间戳。
4.文件和目录复制命令
cp
:复制文件或目录,可以使用-r
选项递归复制目录。
5.文件和目录移动命令
mv
:移动文件或目录,也可以用来重命名文件或目录。
6.文件和目录删除命令
rm
:删除文件或目录,可以使用-r
选项递归删除目录及其内容。rmdir
:删除空目录。
7.文件和目录权限管理命令
chmod
:修改文件或目录的权限。chown
:修改文件或目录的所有者。chgrp
:修改文件或目录的所属组。
8.文件和目录查找命令
find
:在文件系统中搜索文件或目录。locate
:使用预先建立的数据库快速查找文件或目录。whereis
:查找命令的二进制文件、源代码文件和man手册页的位置。
9.文件内容查看命令
cat
:显示文件内容,可以一次性输出文件的所有内容。more
和less
:分页查看文件内容,适合查看长文件。head
和tail
:显示文件的开头部分或末尾部分。grep
:在文件中搜索匹配特定模式的行,并将它们打印出来。awk
和sed
:强大的文本处理工具,可以用于提取、转换和格式化文本数据。
10.其他常用命令
clear
:清除终端显示内容,使屏幕变得干净。history
:显示最近执行的命令历史。
以上命令是Linux系统中常用的文件和目录管理命令,它们可以帮助用户有效地管理文件系统中的数据.
文本编辑器
- Linux文本编辑器简介
在Linux系统中,文本编辑器
是用于创建、编辑和查看文本文件的重要工具。Linux提供了多种文本编辑器,其中最常用的有vi
、vim
和nano
。
- vi和vim编辑器
vi
是一个经典的文本编辑器,广泛应用于Unix和类Unix系统中。vim
(Vi IMproved)是vi
的增强版,它继承了vi
的特点,并添加了更多高级功能,如语法高亮、代码折叠、多窗口编辑等。
- vi/vim的基本操作
打开文件:
vi filename
- 在普通模式下按
i
(插入)、a
(追加)、o
(在新行开始插入)等键:进入编辑模式。 - 在普通模式下输入
:w
或:w filename
:保存文件。 - 在普通模式下输入
:q
:退出编辑器。 - 在普通模式下输入
:wq
:保存并退出。 - 在普通模式下输入
/pattern
:查找文本,然后按n
查找下一个匹配项,按N
查找上一个匹配项。 - 在普通模式下输入
:%s/old/new/g
:替换文本,其中old
是要被替换的文本,new
是替换后的文本。
- nano编辑器
nano
是一个更易于上手的文本编辑器,它提供了友好的用户界面和内置的帮助系统。nano
的设计目标是简化文本编辑过程,使得新手能够快速学会使用。
- nano的基本操作
nano filename
:打开文件。- 直接开始输入:进入编辑模式。
- 在命令模式下输入
Ctrl + O
:保存文件。 - 在命令模式下输入
Ctrl + X
:退出编辑器,然后按Y
键确认保存,最后按Enter
键退出。 - 在命令模式下输入
Ctrl + W
:查找文本,然后输入要查找的字符串并按Enter
键。 - 在命令模式下输入
Ctrl + T
:替换文本,然后输入旧文本和新文本并按Enter
键。
- 使用场景和优势
vi
和vim
:适用于需要高级编辑功能的用户,特别是那些熟悉Unix风格命令行的用户。nano
:适用于初学者或者那些偏好图形界面风格的用户,因为它的界面直观且易于使用。
进阶命令
文件查找
- Linux文件查找命令
在Linux系统中,文件查找是一个常见的任务,尤其是在处理大量文件和复杂目录结构时。Linux提供了多种命令来帮助用户查找文件,其中最常用的命令有find
和locate
。
- find命令
find
命令是Linux中最强大的文件查找工具之一,它可以在文件系统中搜索符合特定条件的文件或目录。find
命令的基本语法如下:
find [搜索路径] [选项] [表达式]
一些常用的find
命令选项和表达式包括:
-name
:按文件名查找,支持通配符。-type
:按文件类型查找,如文件(f
)、目录(d
)、符号链接(l
)等。-size
:按文件大小查找,可以使用+
、-
或=
来指定大小范围。-user
:按文件所有者查找。-group
:按文件所属组查找。-mtime
:按文件修改时间查找。-atime
:按文件访问时间查找。-ctime
:按文件状态改变时间查找。-exec
:对找到的文件执行指定的命令。
例如,要在当前目录下查找所有名为example.txt
的文件,可以使用以下命令:
find . -name example.txt
如果要查找最近30天内修改过的所有.log
文件,可以使用:
find . -type f -name "*.log" -mtime -30
- locate命令
locate
命令使用预先建立的数据库来快速定位文件,这个数据库通常由updatedb
命令定期更新。locate
命令的优点是搜索速度快,但缺点是可能不会立即反映出最近创建或移动的文件。
locate
命令的基本语法如下:
locate [选项] [文件名]
例如,要查找所有名为example.txt
的文件,可以使用以下命令:
locate example.txt
注意事项
在使用find
命令时,确保理解每个选项和表达式的含义,以避免不必要的错误。
locate
命令依赖于定期更新的数据库,因此可能不适用于刚刚创建或移动的文件。
压缩和解压
- Linux中的压缩和解压命令
在Linux系统中,压缩和解压命令是用于减小文件大小、节省存储空间、加速文件传输以及便于文件管理的重要工具。以下是一些常用的Linux压缩和解压命令及其用法。
- tar命令
tar
命令是一个多功能的文件归档工具,它可以用来创建、维护、提取和解压文件归档。tar
本身并不压缩文件,但它可以与压缩工具如gzip
、bzip2
或xz
结合使用,以创建压缩归档文件。
创建压缩归档文件:
tar -czvf archive.tar.gz directory_or_file
这个命令会创建一个名为archive.tar.gz
的压缩归档文件,其中-c
代表创建,-z
代表使用gzip
压缩,-v
代表在压缩过程中显示详细信息,-f
代表指定输出文件名。
解压压缩归档文件:
tar -xzvf archive.tar.gz
这个命令会解压名为archive.tar.gz
的压缩归档文件。
列出压缩归档文件内容:
tar -tzvf archive.tar.gz
这个命令会列出archive.tar.gz
压缩归档文件中的内容,但不会解压它们。
- gzip命令
gzip
命令是一个用于压缩文件的工具,它可以将文件压缩成.gz
格式。
压缩文件:
gzip filename
这个命令会将filename
文件压缩成filename.gz
。
解压文件:
gunzip filename.gz
这个命令会解压filename.gz
文件,恢复为原始的filename
。
- zip命令
zip
命令是一个跨平台的压缩工具,它可以创建.zip
格式的压缩文件。
压缩文件或目录:
zip -r archive.zip directory_or_file
这个命令会创建一个名为archive.zip
的压缩文件,其中-r
代表递归压缩所有子目录和文件。
解压文件:
unzip archive.zip
这个命令会解压archive.zip
文件。
- bzip2命令
bzip2
命令是另一个压缩工具,它提供比gzip
更高的压缩比率,但压缩和解压速度相对较慢。
压缩文件:
bzip2 filename
这个命令会将filename
文件压缩成filename.bz2
。
解压文件:
bunzip2 filename.bz2
这个命令会解压filename.bz2
文件,恢复为原始的filename
。
- xz命令
xz
命令是一个使用LZMA/LZMA2压缩算法的工具,它提供非常高的压缩比率,但同样压缩和解压速度较慢。
压缩文件:
xz filename
这个命令会将filename
文件压缩成filename.xz
。
解压文件:
unxz filename.xz
这个命令会解压filename.xz
文件,恢复为原始的filename
。
三:用户和权限管理
用户账户
创建和管理用户
创建用户
在Linux系统中,创建用户通常使用useradd
命令。例如,要创建一个名为username
的新用户,可以使用以下命令:
sudo useradd username
如果需要为新用户创建家目录,可以使用-m
选项:
sudo useradd -m username
设置密码
创建用户后,需要为用户设置密码。可以使用passwd
命令来设置密码:
sudo passwd username
系统会提示输入新密码,并再次确认。
管理用户
修改用户信息
可以使用usermod
命令来修改用户的信息,例如修改用户的家目录或登录Shell:
sudo usermod -d /path/to/directory username
sudo usermod -s /bin/bash username
删除用户
如果需要删除用户,可以使用userdel
命令:
sudo userdel username
如果需要连同用户的家目录一起删除,可以使用-r
选项:
sudo userdel -r username
用户组管理
添加用户组
可以使用groupadd
命令来添加新的用户组:
sudo groupadd groupname
删除用户组
可以使用groupdel
命令来删除用户组:
sudo groupdel groupname
修改用户组
可以使用groupmod
命令来修改用户组的信息,例如修改用户组的名称或GID:
sudo groupmod -n newgroupname groupname
sudo groupmod -g newgid groupname
注意事项
在执行用户管理命令时,通常需要管理员权限,因此可能需要在命令前加上sudo
。
在删除用户之前,确保备份了用户的重要数据,以防意外丢失。
权限设置
改变文件和目录的权限(chmod)
在Linux系统中,chmod
命令用于改变文件或目录的权限。权限分为三种类型:读(r)、写(w)、执行(x),并且可以分别应用于文件的所有者(u)、所属组(g)和其他用户(o)。
符号模式
使用符号模式可以通过指定用户类别和权限来改变权限。例如:
chmod u+x filename
:给文件的所有者添加执行权限。chmod g-w filename
:移除文件的组写权限。chmod o+x filename
:给其他用户添加执行权限。
数字模式
数字模式使用数字来表示权限,其中读权限为4,写权限为2,执行权限为1。例如:
chmod 755 filename
:设置所有者为读/写/执行,组和其他用户为读/执行。chmod 644 filename
:设置所有者为读/写,组和其他用户为只读。
递归修改
要递归地修改目录及其内容的权限,可以使用-R
选项:
chmod -R 755 directoryname
:将目录及其所有文件和子目录的权限设置为755。
改变文件和目录的所有者(chown)
chown
命令用于改变文件或目录的所有者。通常只有root用户或具有相应权限的用户才能执行此命令。
基本用法
chown username filename
:将文件的所有者改为指定的用户。chown username:groupname filename
:将文件的所有者和所属组都改为指定的用户和组。
递归修改
要递归地改变目录及其内容的所有者,可以使用-R
选项:
chown -R username:groupname directoryname
:将目录及其所有文件和子目录的所有者和所属组都改为指定的用户和组。
四:网络配置
配置IP地址
创建完成的虚拟机默认为动态IP地址,若重启系统后IP地
址很可能会发生改变,非常不利于实际开发,所以有必要将IP
地址修改为静态的。
具体步骤
- (1)首先查看VMware Workstation提供的默认网段
在配置虚拟机网卡前,需要查看VMware Workstation为
创建虚拟机时提供的默认网络信息。可在VMware Workstation
的主界面依次选择"编辑"->“虚拟网络编辑器”,打开"虚拟网络
编辑器"界面,选中网卡名称为VMnet8、类型为NAT模式,再
点击"NAT设置"按钮,查看子网IP、子网掩码、网关。
- (2)编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfgens33,注:不同虚拟机,文件名可能不同
vi /etc/sysconfig/network-scripts/ifcfg-ens33
- (3)将参数BOOTPROTO的值由dhcp(动态路由协议)修改为
static(静态路由协议),由于网卡设置为静态路由协议,需要添
加IPADDR、GATEWAY(网关)、NETMASK(子网掩码)以及
DNS1(域名解析器)参数,具体如下所示:
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="4433e43d-ab6a-4dee-b287-f498e0172939"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.121.131
NETMASK=255.255.255.0
GATEWAY=192.168.121.2
DNS1=223.5.5.5
- (4)修改完网卡配置文件后即可保存退出,然后执行重启网
卡命令
systemctl restart network
五、结语
Linux作为一种强大而灵活的操作系统,为各种计算需求提供了坚实的基础。从服务器到个人电脑,从嵌入式设备到超级计算机,Linux的身影无处不在。掌握Linux的基本概念和操作技巧,不仅能够提升个人的技术水平,还能在职业生涯中开辟更多的可能性。
本文已经涉及了Linux的一些核心知识点,包括文件系统的基本结构、常用命令的使用、文本编辑器的操作、用户和权限的管理等。这些都是成为一名合格Linux用户所必需的技能。然而,Linux的世界远不止于此,它包含了无数的工具、服务和应用程序,等待着探索和发现。比如系统监控、软件包管理、Shell脚本编程等。这将进一步提高您自动化任务的能力,并使您能够编写自己的脚本来自定义和扩展Linux的功能。